diff --git a/_data/transformer-evaluation.yml b/_data/transformer-evaluation.yml index f62b49a..6e5a4c7 100644 --- a/_data/transformer-evaluation.yml +++ b/_data/transformer-evaluation.yml @@ -1,3 +1,15 @@ +- paper: + type: preprint + text: '[Yoav Kan-Tor et al. 2024](https://arxiv.org/abs/2412.04075)' + url: https://arxiv.org/abs/2412.04075 + code: + type: reproducible + text: "[ð\x9F\x9B\_ï¸\x8FGitHub](https://github.com/BiomedSciAI/gene-benchmark)" + url: https://github.com/BiomedSciAI/gene-benchmark + omic_modalities: Natural Language, scRNAseq, protein sequence, DNA sequence + evaluated_transformers: Mistral, MPnet, CellPLM, GeneFormer, scGPT, DNABert2, ESM (plus bag-of-words, gene2vec) + tasks: genomic properties, gene regulatory functions, gene localization, gene biological processes, protein properties + notes: 'Evaluating model performance using gene embeddings allows comparing models utilizing different data modalities. The performance profile of a diverse set of models across ~300 gene related tasks was shown to be most influenced by the training modality.' - paper: type: preprint text: '[Ahlmann-Eltze et al. 2024](https://www.biorxiv.org/content/10.1101/2024.09.16.613342)' diff --git a/_site/_data/transformer-evaluation.yml b/_site/_data/transformer-evaluation.yml index f62b49a..55aa966 100644 --- a/_site/_data/transformer-evaluation.yml +++ b/_site/_data/transformer-evaluation.yml @@ -1,3 +1,15 @@ +- paper: + type: preprint + text: '[Yoav Kan-Tor et al. 2024](https://arxiv.org/abs/2412.04075)' + url: https://arxiv.org/abs/2412.04075 + code: + type: reproducible + text: "[ð\x9F\x9B\_ï¸\x8FGitHub](https://github.com/BiomedSciAI/gene-benchmark)" + url: https://github.com/BiomedSciAI/gene-benchmark + omic_modalities: Natural Language, scRNAseq, protein sequence, DNA sequence + evaluated_transformers: Mistral, MPnet, CellPLM, GeneFormer, scGPT, DNABert2, ESM (plus bag-of-words, gene2vec) + tasks: genomic properties, gene regulatory functions, gene localization, gene biological processes, protein properties + notes: '-' - paper: type: preprint text: '[Ahlmann-Eltze et al. 2024](https://www.biorxiv.org/content/10.1101/2024.09.16.613342)' diff --git a/_site/_pages/implementations.html b/_site/_pages/implementations.html index bb5d8df..8c37983 100644 --- a/_site/_pages/implementations.html +++ b/_site/_pages/implementations.html @@ -976,7 +976,7 @@

NVIDIA BioNeMo Framewo diff --git a/_site/assets/js/components/FilterButton.jsx b/_site/assets/js/components/FilterButton.jsx index ecab0c3..5ba096b 100644 --- a/_site/assets/js/components/FilterButton.jsx +++ b/_site/assets/js/components/FilterButton.jsx @@ -6,7 +6,7 @@ const FILTER_OPTIONS = { { value: 'peer_reviewed', label: 'Peer Reviewed 📄' }, ], code: [ - { value: 'reproducible', label: 'Reproducible 🛠️' }, + { value: 'reproducible', label: 'Training Code Available 🛠️' }, { value: 'evaluation_only', label: 'Evaluation Only 🔍' }, { value: 'none', label: 'None' }, ], diff --git a/_site/assets/js/components/FilterPanel.jsx b/_site/assets/js/components/FilterPanel.jsx index 3af62ba..026ba37 100644 --- a/_site/assets/js/components/FilterPanel.jsx +++ b/_site/assets/js/components/FilterPanel.jsx @@ -8,7 +8,7 @@ const FILTER_OPTIONS = { { value: 'peer_reviewed', label: 'Peer Reviewed 📄' }, ], code: [ - { value: 'reproducible', label: 'Reproducible 🛠️' }, + { value: 'reproducible', label: 'Training Code Available 🛠️' }, { value: 'evaluation_only', label: 'Evaluation Only 🔍' }, { value: 'none', label: 'None' }, ], diff --git a/_site/assets/js/components/FilterSidebar.jsx b/_site/assets/js/components/FilterSidebar.jsx index 293f6c3..bb7ae11 100644 --- a/_site/assets/js/components/FilterSidebar.jsx +++ b/_site/assets/js/components/FilterSidebar.jsx @@ -8,7 +8,7 @@ const FILTER_OPTIONS = { { value: 'peer_reviewed', label: 'Peer Reviewed 📄' }, ], code: [ - { value: 'reproducible', label: 'Reproducible 🛠️' }, + { value: 'reproducible', label: 'Training Code Available 🛠️' }, { value: 'evaluation_only', label: 'Evaluation Only 🔍' }, { value: 'none', label: 'None' }, ], diff --git a/_site/assets/js/dist/single-cell-transformers.bundle.js b/_site/assets/js/dist/single-cell-transformers.bundle.js index 447a9ee..2c1bd9a 100644 --- a/_site/assets/js/dist/single-cell-transformers.bundle.js +++ b/_site/assets/js/dist/single-cell-transformers.bundle.js @@ -1,3 +1,3 @@ /*! For license information please see single-cell-transformers.bundle.js.LICENSE.txt */ -(()=>{"use strict";var e={20:(e,r,t)=>{var n=t(594),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var n,a={},c=null,d=null;for(n in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,n)&&!s.hasOwnProperty(n)&&(a[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===a[n]&&(a[n]=r[n]);return{$$typeof:o,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);const s=ReactDOM;var c=t.n(s);function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}var u={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},p=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:n=24,strokeWidth:o=2,absoluteStrokeWidth:a,children:i,...s},c)=>{return(0,l.createElement)("svg",{ref:c,...u,width:n,height:n,stroke:t,strokeWidth:a?24*Number(o)/Number(n):o,className:`lucide lucide-${d=e,d.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var d}));return t.displayName=`${e}`,t};const f=p("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function m(e,r,t){return(r=function(e){var r=function(e){if("object"!=d(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=d(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==d(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,y=function(){for(var e,r,t=0,n="";t{const r=C(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),E(t,r)||k(e)},getConflictingClassGroupIds:(e,r)=>{const o=t[e]||[];return r&&n[e]?[...o,...n[e]]:o}}},E=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],n=r.nextPart.get(t),o=n?E(e.slice(1),n):void 0;if(o)return o;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},N=/^\[(.+)\]$/,k=e=>{if(N.test(e)){const r=N.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},C=e=>{const{theme:r,prefix:t}=e,n={nextPart:new Map,validators:[]};return A(Object.entries(e.classGroups),t).forEach((([e,t])=>{S(t,n,e,r)})),n},S=(e,r,t,n)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return j(e)?void S(e(n),r,t,n):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,o])=>{S(o,O(r,e),t,n)}))}else(""===e?r:O(r,e)).classGroupId=t}))},O=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},j=e=>e.isThemeGetter,A=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,P=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,n=new Map;const o=(o,a)=>{t.set(o,a),r++,r>e&&(r=0,n=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=n.get(e))?(o(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):o(e,r)}}},T=e=>{const{separator:r,experimentalParseClassName:t}=e,n=1===r.length,o=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},R=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},z=/\s+/;function I(){let e,r,t=0,n="";for(;t{if("string"==typeof e)return e;let r,t="";for(let n=0;nr(e)),e());return t=(e=>({cache:P(e.cacheSize),parseClassName:T(e),...w(e)}))(s),n=t.cache.get,o=t.cache.set,a=l,l(i)};function l(e){const r=n(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:o}=r,a=[],l=e.trim().split(z);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=n(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=n(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=R(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=o(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return o(e,a),a}return function(){return a(I.apply(null,arguments))}}const D=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},L=/^\[(?:([a-z-]+):)?(.+)\]$/i,G=/^\d+\/\d+$/,U=new Set(["px","full","screen"]),$=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,W=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,B=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,F=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,q=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,V=e=>K(e)||U.has(e)||G.test(e),H=e=>ie(e,"length",se),K=e=>Boolean(e)&&!Number.isNaN(Number(e)),Z=e=>ie(e,"number",K),X=e=>Boolean(e)&&Number.isInteger(Number(e)),Y=e=>e.endsWith("%")&&K(e.slice(0,-1)),J=e=>L.test(e),Q=e=>$.test(e),ee=new Set(["length","size","percentage"]),re=e=>ie(e,ee,ce),te=e=>ie(e,"position",ce),ne=new Set(["image","url"]),oe=e=>ie(e,ne,ue),ae=e=>ie(e,"",de),le=()=>!0,ie=(e,r,t)=>{const n=L.exec(e);return!!n&&(n[1]?"string"==typeof r?n[1]===r:r.has(n[1]):t(n[2]))},se=e=>W.test(e)&&!B.test(e),ce=()=>!1,de=e=>F.test(e),ue=e=>q.test(e),pe=_((Symbol.toStringTag,()=>{const e=D("colors"),r=D("spacing"),t=D("blur"),n=D("brightness"),o=D("borderColor"),a=D("borderRadius"),l=D("borderSpacing"),i=D("borderWidth"),s=D("contrast"),c=D("grayscale"),d=D("hueRotate"),u=D("invert"),p=D("gap"),f=D("gradientColorStops"),m=D("gradientColorStopPositions"),b=D("inset"),g=D("margin"),v=D("opacity"),h=D("padding"),y=D("saturate"),x=D("scale"),w=D("sepia"),E=D("skew"),N=D("space"),k=D("translate"),C=()=>["auto",J,r],S=()=>[J,r],O=()=>["",V,H],j=()=>["auto",K,J],A=()=>["","0",J],P=()=>[K,J];return{cacheSize:500,separator:":",theme:{colors:[le],spacing:[V,H],blur:["none","",Q,J],brightness:P(),borderColor:[e],borderRadius:["none","","full",Q,J],borderSpacing:S(),borderWidth:O(),contrast:P(),grayscale:A(),hueRotate:P(),invert:A(),gap:S(),gradientColorStops:[e],gradientColorStopPositions:[Y,H],inset:C(),margin:C(),opacity:P(),padding:S(),saturate:P(),scale:P(),sepia:A(),skew:P(),space:S(),translate:S()},classGroups:{aspect:[{aspect:["auto","square","video",J]}],container:["container"],columns:[{columns:[Q]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",J]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",X,J]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",J]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",X,J]}],"grid-cols":[{"grid-cols":[le]}],"col-start-end":[{col:["auto",{span:["full",X,J]},J]}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":[le]}],"row-start-end":[{row:["auto",{span:[X,J]},J]}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",J]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",J]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",J,r]}],"min-w":[{"min-w":[J,r,"min","max","fit"]}],"max-w":[{"max-w":[J,r,"none","full","min","max","fit","prose",{screen:[Q]},Q]}],h:[{h:[J,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[J,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[J,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[J,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Q,H]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Z]}],"font-family":[{font:[le]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",J]}],"line-clamp":[{"line-clamp":["none",K,Z]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",V,J]}],"list-image":[{"list-image":["none",J]}],"list-style-type":[{list:["none","disc","decimal",J]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",V,H]}],"underline-offset":[{"underline-offset":["auto",V,J]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",J]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",J]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",te]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",re]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},oe]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[V,J]}],"outline-w":[{outline:[V,H]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:O()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[V,H]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Q,ae]}],"shadow-color":[{shadow:[le]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[n]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Q,J]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",J]}],duration:[{duration:P()}],ease:[{ease:["linear","in","out","in-out",J]}],delay:[{delay:P()}],animate:[{animate:["none","spin","ping","pulse","bounce",J]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[X,J]}],"translate-x":[{"translate-x":[k]}],"translate-y":[{"translate-y":[k]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",J]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",J]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",J]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[V,H,Z]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function fe(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==be?void 0:be.variants))return y(me,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:n}=be,o=Object.keys(t).map((r=>{const o=null==e?void 0:e[r],a=null==n?void 0:n[r];if(null===o)return null;const l=h(o)||h(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,n]=r;return void 0===n||(e[t]=n),e}),{}),l=null==be||null===(r=be.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:o,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...n,...a}[r]):{...n,...a}[r]===t}))?[...e,t,o]:e}),[]);return y(me,o,l,null==e?void 0:e.class,null==e?void 0:e.className)});function he(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ye(...e){return l.useCallback(he(...e),e)}l.forwardRef((function(e,r){var t=e.className,n=e.variant,o=e.size,a=g(e,ge);return l.createElement("button",b({className:fe(ve({variant:n,size:o,className:t})),ref:r},a))})).displayName="Button";var xe=t(848);function we(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const n=t.reduce(((r,{useScope:t,scopeName:n})=>({...r,...t(e)[`__scope${n}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:n})),[n])}};return t.scopeName=r.scopeName,t}function Ee(e,r,{checkForDefaultPrevented:t=!0}={}){return function(n){if(e?.(n),!1===t||!n.defaultPrevented)return r?.(n)}}function Ne(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var ke=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},Ce=e=>{const{present:r,children:t}=e,n=function(e){const[r,t]=l.useState(),n=l.useRef({}),o=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=Se(n.current);a.current="mounted"===s?e:"none"}),[s]),ke((()=>{const r=n.current,t=o.current;if(t!==e){const n=a.current,l=Se(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&n!==l?"ANIMATION_OUT":"UNMOUNT"),o.current=e}}),[e,c]),ke((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=Se(n.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!o.current)){const n=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=n)}))}},i=e=>{e.target===r&&(a.current=Se(n.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(n.current=getComputedStyle(e)),t(e)}),[])}}(r),o="function"==typeof t?t({present:n.isPresent}):l.Children.only(t),a=ye(n.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(o));return"function"==typeof t||n.isPresent?l.cloneElement(o,{ref:a}):null};function Se(e){return e?.animationName||"none"}Ce.displayName="Presence";var Oe=l.forwardRef(((e,r)=>{const{children:t,...n}=e,o=l.Children.toArray(t),a=o.find(Pe);if(a){const e=a.props.children,t=o.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,xe.jsx)(je,{...n,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,xe.jsx)(je,{...n,ref:r,children:t})}));Oe.displayName="Slot";var je=l.forwardRef(((e,r)=>{const{children:t,...n}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Te(n,t.props),ref:r?he(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));je.displayName="SlotClone";var Ae=({children:e})=>(0,xe.jsx)(xe.Fragment,{children:e});function Pe(e){return l.isValidElement(e)&&e.type===Ae}function Te(e,r){const t={...r};for(const n in r){const o=e[n],a=r[n];/^on[A-Z]/.test(n)?o&&a?t[n]=(...e)=>{a(...e),o(...e)}:o&&(t[n]=o):"style"===n?t[n]={...o,...a}:"className"===n&&(t[n]=[o,a].filter(Boolean).join(" "))}return{...e,...t}}var Re=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:n,...o}=e,a=n?Oe:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,xe.jsx)(a,{...o,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),ze="Checkbox",[Ie,Me]=function(e,r=[]){let t=[];const n=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const n=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:n}})),[t,n])}};return n.scopeName=e,[function(r,n){const o=l.createContext(n),a=t.length;t=[...t,n];const i=r=>{const{scope:t,children:n,...i}=r,s=t?.[e]?.[a]||o,c=l.useMemo((()=>i),Object.values(i));return(0,xe.jsx)(s.Provider,{value:c,children:n})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||o,c=l.useContext(s);if(c)return c;if(void 0!==n)return n;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},we(n,...r)]}(ze),[_e,De]=Ie(ze),Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:n,checked:o,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ye(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[n,o]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[n]=t,o=l.useRef(n),a=Ne(r);return l.useEffect((()=>{o.current!==n&&(a(n),o.current=n)}),[n,o,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:n,s=Ne(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else o(r)}),[a,e,o,s])]}({prop:o,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,xe.jsxs)(_e,{scope:t,state:h,disabled:s,children:[(0,xe.jsx)(Re.button,{type:"button",role:"checkbox","aria-checked":We(h)?"mixed":h,"aria-required":i,"data-state":Be(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:Ee(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:Ee(e.onClick,(e=>{y((e=>!!We(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,xe.jsx)($e,{control:f,bubbles:!g.current,name:n,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!We(a)&&a})]})}));Le.displayName=ze;var Ge="CheckboxIndicator",Ue=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:n,...o}=e,a=De(Ge,t);return(0,xe.jsx)(Ce,{present:n||We(a.state)||!0===a.state,children:(0,xe.jsx)(Re.span,{"data-state":Be(a.state),"data-disabled":a.disabled?"":void 0,...o,ref:r,style:{pointerEvents:"none",...e.style}})})}));Ue.displayName=Ge;var $e=e=>{const{control:r,checked:t,bubbles:n=!0,defaultChecked:o,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return ke((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const n=r[0];let o,a;if("borderBoxSize"in n){const e=n.borderBoxSize,r=Array.isArray(e)?e[0]:e;o=r.inlineSize,a=r.blockSize}else o=e.offsetWidth,a=e.offsetHeight;t({width:o,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,o=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&o){const r=new Event("click",{bubbles:n});e.indeterminate=We(t),o.call(e,!We(t)&&t),e.dispatchEvent(r)}}),[s,t,n]);const d=l.useRef(!We(t)&&t);return(0,xe.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:o??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function We(e){return"indeterminate"===e}function Be(e){return We(e)?"indeterminate":e?"checked":"unchecked"}var Fe=Le,qe=Ue;const Ve=p("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var He=["className"];function Ke(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function Ze(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===n){var s=t.text||t,c=t.type||"preprint",u=s.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Je[c]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===n){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Je[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===n)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(n)){var x=o(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},o(t))};const er=function(e){var r=e.data,t=e.columns,n=a((0,l.useState)(!1),2),o=n[0],s=n[1],c=a((0,l.useState)(r),2),d=c[0],u=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!o)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(f,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(o?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Qe,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ye,{isOpen:o,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,n,o,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(n=e.code)||void 0===n?void 0:n.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(o=e.omicModalities)||void 0===o?void 0:o.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));u(t),s(!1)}}))};function rr(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],n=a((0,l.useState)(null),2),o=n[0],s=n[1],c=a((0,l.useState)(null),2),d=c[0],u=c[1],p=a((0,l.useState)(!0),2),f=p[0],m=p[1],b=a((0,l.useState)(!1),2),g=b[0],v=b[1];(0,l.useEffect)((function(){try{if(void 0!==window.singleCellTransformers){var e=window.singleCellTransformers.map((function(e){var r=function(e){return""===e||null==e||"None"===e?"-":e};return{Model:e.model,Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Pre-Training Dataset":r(e.pre_training_dataset),"Input Embedding":r(e.input_embedding),Architecture:r(e.architecture),"SSL Tasks":r(e.ssl_tasks),"Supervised Tasks":r(e.supervised_tasks)}}));t(e),s(e)}else u("Data not available")}catch(e){console.error("Error accessing data:",e),u(e.message)}finally{m(!1)}}),[]);return f?i().createElement("div",{className:"p-4"},"Loading..."):d?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",d):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Single-cell Transformers"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(er,{data:o,columns:["Model","Paper","Code","Omic Modalities","Pre-Training Dataset","Input Embedding","Architecture","SSL Tasks","Supervised Tasks"]})),i().createElement(Ye,{isOpen:g,onClose:function(){return v(!1)},onApplyFilters:function(e){var t=function(e,r){return e.filter((function(e){var t,n,o,a,l;if((null===(t=r.paper)||void 0===t?void 0:t.length)>0&&!r.paper.includes(e.Paper.type))return!1;if((null===(n=r.code)||void 0===n?void 0:n.length)>0&&!r.code.includes(e.Code.type))return!1;if((null===(o=r.omicModalities)||void 0===o?void 0:o.length)>0){var i=String(e["Omic Modalities"]).toLowerCase();if(!r.omicModalities.some((function(e){return i.includes(e.toLowerCase())})))return!1}if((null===(a=r.inputEmbeddings)||void 0===a?void 0:a.length)>0){var s=String(e["Input Embedding"]).toLowerCase();if(!r.inputEmbeddings.some((function(e){return s.includes(e.toLowerCase())})))return!1}if((null===(l=r.architecture)||void 0===l?void 0:l.length)>0){var c=String(e.Architecture).toLowerCase();if(!r.architecture.some((function(e){return c.includes(e.toLowerCase())})))return!1}return!0}))}(r,e);s(t)}})):i().createElement("div",{className:"p-4"},"No data available")}document.getElementById("single-cell-transformers-root")&&c().createRoot(document.getElementById("single-cell-transformers-root")).render(i().createElement(rr,null))})(); +(()=>{"use strict";var e={20:(e,r,t)=>{var n=t(594),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var n,a={},c=null,d=null;for(n in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,n)&&!s.hasOwnProperty(n)&&(a[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===a[n]&&(a[n]=r[n]);return{$$typeof:o,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);const s=ReactDOM;var c=t.n(s);function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}var u={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},p=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:n=24,strokeWidth:o=2,absoluteStrokeWidth:a,children:i,...s},c)=>{return(0,l.createElement)("svg",{ref:c,...u,width:n,height:n,stroke:t,strokeWidth:a?24*Number(o)/Number(n):o,className:`lucide lucide-${d=e,d.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var d}));return t.displayName=`${e}`,t};const f=p("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function m(e,r,t){return(r=function(e){var r=function(e){if("object"!=d(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=d(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==d(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,y=function(){for(var e,r,t=0,n="";t{const r=C(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),E(t,r)||k(e)},getConflictingClassGroupIds:(e,r)=>{const o=t[e]||[];return r&&n[e]?[...o,...n[e]]:o}}},E=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],n=r.nextPart.get(t),o=n?E(e.slice(1),n):void 0;if(o)return o;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},N=/^\[(.+)\]$/,k=e=>{if(N.test(e)){const r=N.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},C=e=>{const{theme:r,prefix:t}=e,n={nextPart:new Map,validators:[]};return A(Object.entries(e.classGroups),t).forEach((([e,t])=>{S(t,n,e,r)})),n},S=(e,r,t,n)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return j(e)?void S(e(n),r,t,n):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,o])=>{S(o,O(r,e),t,n)}))}else(""===e?r:O(r,e)).classGroupId=t}))},O=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},j=e=>e.isThemeGetter,A=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,P=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,n=new Map;const o=(o,a)=>{t.set(o,a),r++,r>e&&(r=0,n=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=n.get(e))?(o(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):o(e,r)}}},T=e=>{const{separator:r,experimentalParseClassName:t}=e,n=1===r.length,o=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},R=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},z=/\s+/;function I(){let e,r,t=0,n="";for(;t{if("string"==typeof e)return e;let r,t="";for(let n=0;nr(e)),e());return t=(e=>({cache:P(e.cacheSize),parseClassName:T(e),...w(e)}))(s),n=t.cache.get,o=t.cache.set,a=l,l(i)};function l(e){const r=n(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:o}=r,a=[],l=e.trim().split(z);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=n(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=n(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=R(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=o(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return o(e,a),a}return function(){return a(I.apply(null,arguments))}}const D=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},L=/^\[(?:([a-z-]+):)?(.+)\]$/i,G=/^\d+\/\d+$/,U=new Set(["px","full","screen"]),$=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,W=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,B=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,F=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,q=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,V=e=>K(e)||U.has(e)||G.test(e),H=e=>ie(e,"length",se),K=e=>Boolean(e)&&!Number.isNaN(Number(e)),Z=e=>ie(e,"number",K),X=e=>Boolean(e)&&Number.isInteger(Number(e)),Y=e=>e.endsWith("%")&&K(e.slice(0,-1)),J=e=>L.test(e),Q=e=>$.test(e),ee=new Set(["length","size","percentage"]),re=e=>ie(e,ee,ce),te=e=>ie(e,"position",ce),ne=new Set(["image","url"]),oe=e=>ie(e,ne,ue),ae=e=>ie(e,"",de),le=()=>!0,ie=(e,r,t)=>{const n=L.exec(e);return!!n&&(n[1]?"string"==typeof r?n[1]===r:r.has(n[1]):t(n[2]))},se=e=>W.test(e)&&!B.test(e),ce=()=>!1,de=e=>F.test(e),ue=e=>q.test(e),pe=_((Symbol.toStringTag,()=>{const e=D("colors"),r=D("spacing"),t=D("blur"),n=D("brightness"),o=D("borderColor"),a=D("borderRadius"),l=D("borderSpacing"),i=D("borderWidth"),s=D("contrast"),c=D("grayscale"),d=D("hueRotate"),u=D("invert"),p=D("gap"),f=D("gradientColorStops"),m=D("gradientColorStopPositions"),b=D("inset"),g=D("margin"),v=D("opacity"),h=D("padding"),y=D("saturate"),x=D("scale"),w=D("sepia"),E=D("skew"),N=D("space"),k=D("translate"),C=()=>["auto",J,r],S=()=>[J,r],O=()=>["",V,H],j=()=>["auto",K,J],A=()=>["","0",J],P=()=>[K,J];return{cacheSize:500,separator:":",theme:{colors:[le],spacing:[V,H],blur:["none","",Q,J],brightness:P(),borderColor:[e],borderRadius:["none","","full",Q,J],borderSpacing:S(),borderWidth:O(),contrast:P(),grayscale:A(),hueRotate:P(),invert:A(),gap:S(),gradientColorStops:[e],gradientColorStopPositions:[Y,H],inset:C(),margin:C(),opacity:P(),padding:S(),saturate:P(),scale:P(),sepia:A(),skew:P(),space:S(),translate:S()},classGroups:{aspect:[{aspect:["auto","square","video",J]}],container:["container"],columns:[{columns:[Q]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",J]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",X,J]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",J]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",X,J]}],"grid-cols":[{"grid-cols":[le]}],"col-start-end":[{col:["auto",{span:["full",X,J]},J]}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":[le]}],"row-start-end":[{row:["auto",{span:[X,J]},J]}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",J]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",J]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",J,r]}],"min-w":[{"min-w":[J,r,"min","max","fit"]}],"max-w":[{"max-w":[J,r,"none","full","min","max","fit","prose",{screen:[Q]},Q]}],h:[{h:[J,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[J,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[J,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[J,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Q,H]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Z]}],"font-family":[{font:[le]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",J]}],"line-clamp":[{"line-clamp":["none",K,Z]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",V,J]}],"list-image":[{"list-image":["none",J]}],"list-style-type":[{list:["none","disc","decimal",J]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",V,H]}],"underline-offset":[{"underline-offset":["auto",V,J]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",J]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",J]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",te]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",re]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},oe]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[V,J]}],"outline-w":[{outline:[V,H]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:O()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[V,H]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Q,ae]}],"shadow-color":[{shadow:[le]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[n]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Q,J]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",J]}],duration:[{duration:P()}],ease:[{ease:["linear","in","out","in-out",J]}],delay:[{delay:P()}],animate:[{animate:["none","spin","ping","pulse","bounce",J]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[X,J]}],"translate-x":[{"translate-x":[k]}],"translate-y":[{"translate-y":[k]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",J]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",J]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",J]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[V,H,Z]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function fe(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==be?void 0:be.variants))return y(me,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:n}=be,o=Object.keys(t).map((r=>{const o=null==e?void 0:e[r],a=null==n?void 0:n[r];if(null===o)return null;const l=h(o)||h(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,n]=r;return void 0===n||(e[t]=n),e}),{}),l=null==be||null===(r=be.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:o,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...n,...a}[r]):{...n,...a}[r]===t}))?[...e,t,o]:e}),[]);return y(me,o,l,null==e?void 0:e.class,null==e?void 0:e.className)});function he(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ye(...e){return l.useCallback(he(...e),e)}l.forwardRef((function(e,r){var t=e.className,n=e.variant,o=e.size,a=g(e,ge);return l.createElement("button",b({className:fe(ve({variant:n,size:o,className:t})),ref:r},a))})).displayName="Button";var xe=t(848);function we(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const n=t.reduce(((r,{useScope:t,scopeName:n})=>({...r,...t(e)[`__scope${n}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:n})),[n])}};return t.scopeName=r.scopeName,t}function Ee(e,r,{checkForDefaultPrevented:t=!0}={}){return function(n){if(e?.(n),!1===t||!n.defaultPrevented)return r?.(n)}}function Ne(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var ke=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},Ce=e=>{const{present:r,children:t}=e,n=function(e){const[r,t]=l.useState(),n=l.useRef({}),o=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=Se(n.current);a.current="mounted"===s?e:"none"}),[s]),ke((()=>{const r=n.current,t=o.current;if(t!==e){const n=a.current,l=Se(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&n!==l?"ANIMATION_OUT":"UNMOUNT"),o.current=e}}),[e,c]),ke((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=Se(n.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!o.current)){const n=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=n)}))}},i=e=>{e.target===r&&(a.current=Se(n.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(n.current=getComputedStyle(e)),t(e)}),[])}}(r),o="function"==typeof t?t({present:n.isPresent}):l.Children.only(t),a=ye(n.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(o));return"function"==typeof t||n.isPresent?l.cloneElement(o,{ref:a}):null};function Se(e){return e?.animationName||"none"}Ce.displayName="Presence";var Oe=l.forwardRef(((e,r)=>{const{children:t,...n}=e,o=l.Children.toArray(t),a=o.find(Pe);if(a){const e=a.props.children,t=o.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,xe.jsx)(je,{...n,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,xe.jsx)(je,{...n,ref:r,children:t})}));Oe.displayName="Slot";var je=l.forwardRef(((e,r)=>{const{children:t,...n}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Te(n,t.props),ref:r?he(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));je.displayName="SlotClone";var Ae=({children:e})=>(0,xe.jsx)(xe.Fragment,{children:e});function Pe(e){return l.isValidElement(e)&&e.type===Ae}function Te(e,r){const t={...r};for(const n in r){const o=e[n],a=r[n];/^on[A-Z]/.test(n)?o&&a?t[n]=(...e)=>{a(...e),o(...e)}:o&&(t[n]=o):"style"===n?t[n]={...o,...a}:"className"===n&&(t[n]=[o,a].filter(Boolean).join(" "))}return{...e,...t}}var Re=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:n,...o}=e,a=n?Oe:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,xe.jsx)(a,{...o,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),ze="Checkbox",[Ie,Me]=function(e,r=[]){let t=[];const n=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const n=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:n}})),[t,n])}};return n.scopeName=e,[function(r,n){const o=l.createContext(n),a=t.length;t=[...t,n];const i=r=>{const{scope:t,children:n,...i}=r,s=t?.[e]?.[a]||o,c=l.useMemo((()=>i),Object.values(i));return(0,xe.jsx)(s.Provider,{value:c,children:n})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||o,c=l.useContext(s);if(c)return c;if(void 0!==n)return n;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},we(n,...r)]}(ze),[_e,De]=Ie(ze),Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:n,checked:o,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ye(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[n,o]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[n]=t,o=l.useRef(n),a=Ne(r);return l.useEffect((()=>{o.current!==n&&(a(n),o.current=n)}),[n,o,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:n,s=Ne(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else o(r)}),[a,e,o,s])]}({prop:o,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,xe.jsxs)(_e,{scope:t,state:h,disabled:s,children:[(0,xe.jsx)(Re.button,{type:"button",role:"checkbox","aria-checked":We(h)?"mixed":h,"aria-required":i,"data-state":Be(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:Ee(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:Ee(e.onClick,(e=>{y((e=>!!We(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,xe.jsx)($e,{control:f,bubbles:!g.current,name:n,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!We(a)&&a})]})}));Le.displayName=ze;var Ge="CheckboxIndicator",Ue=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:n,...o}=e,a=De(Ge,t);return(0,xe.jsx)(Ce,{present:n||We(a.state)||!0===a.state,children:(0,xe.jsx)(Re.span,{"data-state":Be(a.state),"data-disabled":a.disabled?"":void 0,...o,ref:r,style:{pointerEvents:"none",...e.style}})})}));Ue.displayName=Ge;var $e=e=>{const{control:r,checked:t,bubbles:n=!0,defaultChecked:o,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return ke((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const n=r[0];let o,a;if("borderBoxSize"in n){const e=n.borderBoxSize,r=Array.isArray(e)?e[0]:e;o=r.inlineSize,a=r.blockSize}else o=e.offsetWidth,a=e.offsetHeight;t({width:o,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,o=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&o){const r=new Event("click",{bubbles:n});e.indeterminate=We(t),o.call(e,!We(t)&&t),e.dispatchEvent(r)}}),[s,t,n]);const d=l.useRef(!We(t)&&t);return(0,xe.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:o??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function We(e){return"indeterminate"===e}function Be(e){return We(e)?"indeterminate":e?"checked":"unchecked"}var Fe=Le,qe=Ue;const Ve=p("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var He=["className"];function Ke(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function Ze(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===n){var s=t.text||t,c=t.type||"preprint",u=s.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Je[c]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===n){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Je[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===n)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(n)){var x=o(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},o(t))};const er=function(e){var r=e.data,t=e.columns,n=a((0,l.useState)(!1),2),o=n[0],s=n[1],c=a((0,l.useState)(r),2),d=c[0],u=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!o)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(f,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(o?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Qe,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ye,{isOpen:o,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,n,o,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(n=e.code)||void 0===n?void 0:n.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(o=e.omicModalities)||void 0===o?void 0:o.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));u(t),s(!1)}}))};function rr(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],n=a((0,l.useState)(null),2),o=n[0],s=n[1],c=a((0,l.useState)(null),2),d=c[0],u=c[1],p=a((0,l.useState)(!0),2),f=p[0],m=p[1],b=a((0,l.useState)(!1),2),g=b[0],v=b[1];(0,l.useEffect)((function(){try{if(void 0!==window.singleCellTransformers){var e=window.singleCellTransformers.map((function(e){var r=function(e){return""===e||null==e||"None"===e?"-":e};return{Model:e.model,Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Pre-Training Dataset":r(e.pre_training_dataset),"Input Embedding":r(e.input_embedding),Architecture:r(e.architecture),"SSL Tasks":r(e.ssl_tasks),"Supervised Tasks":r(e.supervised_tasks)}}));t(e),s(e)}else u("Data not available")}catch(e){console.error("Error accessing data:",e),u(e.message)}finally{m(!1)}}),[]);return f?i().createElement("div",{className:"p-4"},"Loading..."):d?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",d):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Single-cell Transformers"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(er,{data:o,columns:["Model","Paper","Code","Omic Modalities","Pre-Training Dataset","Input Embedding","Architecture","SSL Tasks","Supervised Tasks"]})),i().createElement(Ye,{isOpen:g,onClose:function(){return v(!1)},onApplyFilters:function(e){var t=function(e,r){return e.filter((function(e){var t,n,o,a,l;if((null===(t=r.paper)||void 0===t?void 0:t.length)>0&&!r.paper.includes(e.Paper.type))return!1;if((null===(n=r.code)||void 0===n?void 0:n.length)>0&&!r.code.includes(e.Code.type))return!1;if((null===(o=r.omicModalities)||void 0===o?void 0:o.length)>0){var i=String(e["Omic Modalities"]).toLowerCase();if(!r.omicModalities.some((function(e){return i.includes(e.toLowerCase())})))return!1}if((null===(a=r.inputEmbeddings)||void 0===a?void 0:a.length)>0){var s=String(e["Input Embedding"]).toLowerCase();if(!r.inputEmbeddings.some((function(e){return s.includes(e.toLowerCase())})))return!1}if((null===(l=r.architecture)||void 0===l?void 0:l.length)>0){var c=String(e.Architecture).toLowerCase();if(!r.architecture.some((function(e){return c.includes(e.toLowerCase())})))return!1}return!0}))}(r,e);s(t)}})):i().createElement("div",{className:"p-4"},"No data available")}document.getElementById("single-cell-transformers-root")&&c().createRoot(document.getElementById("single-cell-transformers-root")).render(i().createElement(rr,null))})(); //# sourceMappingURL=single-cell-transformers.bundle.js.map \ No newline at end of file diff --git a/_site/assets/js/dist/single-cell-transformers.bundle.js.map b/_site/assets/js/dist/single-cell-transformers.bundle.js.map index 6394d24..02bd9f6 100644 --- a/_site/assets/js/dist/single-cell-transformers.bundle.js.map +++ b/_site/assets/js/dist/single-cell-transformers.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"single-cell-transformers.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/single-cell-transformers.jsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","const __WEBPACK_NAMESPACE_OBJECT__ = ReactDOM;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Reproducible 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","// assets/js/pages/single-cell-transformers.jsx\nimport React, { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport FilterableTable from '../components/FilterableTable';\nimport FilterPanel from '../components/FilterPanel';\n\nfunction SingleCellTransformers() {\n const [data, setData] = useState(null);\n const [filteredData, setFilteredData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n\n useEffect(() => {\n try {\n if (typeof window.singleCellTransformers !== 'undefined') {\n const processedData = window.singleCellTransformers.map(item => {\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None') {\n return '-';\n }\n return value;\n };\n\n return {\n Model: item.model,\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Pre-Training Dataset': processEmptyValue(item.pre_training_dataset),\n 'Input Embedding': processEmptyValue(item.input_embedding),\n Architecture: processEmptyValue(item.architecture),\n 'SSL Tasks': processEmptyValue(item.ssl_tasks),\n 'Supervised Tasks': processEmptyValue(item.supervised_tasks)\n };\n });\n \n setData(processedData);\n setFilteredData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n const handleApplyFilters = (filters) => {\n const filtered = filterData(data, filters);\n setFilteredData(filtered);\n };\n\n const filterData = (data, filters) => {\n return data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n if (!filters.paper.includes(item.Paper.type)) {\n return false;\n }\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n if (!filters.code.includes(item.Code.type)) {\n return false;\n }\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities']).toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality =>\n modalitiesStr.includes(modality.toLowerCase())\n );\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding']).toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture).toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n };\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Single-cell Transformers

\n
\n \n
\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n}\n\nexport default SingleCellTransformers;\n\nif (document.getElementById('single-cell-transformers-root')) {\n const root = ReactDOM.createRoot(document.getElementById('single-cell-transformers-root'));\n root.render();\n}"],"names":["f","k","Symbol","for","l","m","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","_slicedToArray","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","ReactDOM","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","_defineProperty","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","SingleCellTransformers","setData","_useState6","error","setError","_useState8","isLoading","setIsLoading","_useState10","useEffect","singleCellTransformers","processedData","processEmptyValue","Model","model","omic_modalities","pre_training_dataset","input_embedding","ssl_tasks","supervised_tasks","err","console","message","FilterableTable","filterData","getElementById","render"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"single-cell-transformers.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/single-cell-transformers.jsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","const __WEBPACK_NAMESPACE_OBJECT__ = ReactDOM;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Training Code Available 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","// assets/js/pages/single-cell-transformers.jsx\nimport React, { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport FilterableTable from '../components/FilterableTable';\nimport FilterPanel from '../components/FilterPanel';\n\nfunction SingleCellTransformers() {\n const [data, setData] = useState(null);\n const [filteredData, setFilteredData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n\n useEffect(() => {\n try {\n if (typeof window.singleCellTransformers !== 'undefined') {\n const processedData = window.singleCellTransformers.map(item => {\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None') {\n return '-';\n }\n return value;\n };\n\n return {\n Model: item.model,\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Pre-Training Dataset': processEmptyValue(item.pre_training_dataset),\n 'Input Embedding': processEmptyValue(item.input_embedding),\n Architecture: processEmptyValue(item.architecture),\n 'SSL Tasks': processEmptyValue(item.ssl_tasks),\n 'Supervised Tasks': processEmptyValue(item.supervised_tasks)\n };\n });\n \n setData(processedData);\n setFilteredData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n const handleApplyFilters = (filters) => {\n const filtered = filterData(data, filters);\n setFilteredData(filtered);\n };\n\n const filterData = (data, filters) => {\n return data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n if (!filters.paper.includes(item.Paper.type)) {\n return false;\n }\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n if (!filters.code.includes(item.Code.type)) {\n return false;\n }\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities']).toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality =>\n modalitiesStr.includes(modality.toLowerCase())\n );\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding']).toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture).toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n };\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Single-cell Transformers

\n
\n \n
\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n}\n\nexport default SingleCellTransformers;\n\nif (document.getElementById('single-cell-transformers-root')) {\n const root = ReactDOM.createRoot(document.getElementById('single-cell-transformers-root'));\n root.render();\n}"],"names":["f","k","Symbol","for","l","m","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","_slicedToArray","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","ReactDOM","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","_defineProperty","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","SingleCellTransformers","setData","_useState6","error","setError","_useState8","isLoading","setIsLoading","_useState10","useEffect","singleCellTransformers","processedData","processEmptyValue","Model","model","omic_modalities","pre_training_dataset","input_embedding","ssl_tasks","supervised_tasks","err","console","message","FilterableTable","filterData","getElementById","render"],"sourceRoot":""} \ No newline at end of file diff --git a/_site/assets/js/dist/transformer-evaluation.bundle.js b/_site/assets/js/dist/transformer-evaluation.bundle.js index 9eb9f12..5aa7513 100644 --- a/_site/assets/js/dist/transformer-evaluation.bundle.js +++ b/_site/assets/js/dist/transformer-evaluation.bundle.js @@ -1,3 +1,3 @@ /*! For license information please see transformer-evaluation.bundle.js.LICENSE.txt */ -(()=>{"use strict";var e={338:(e,r,t)=>{var o=t(206);o.createRoot,o.hydrateRoot},20:(e,r,t)=>{var o=t(594),n=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var o,a={},c=null,d=null;for(o in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,o)&&!s.hasOwnProperty(o)&&(a[o]=r[o]);if(e&&e.defaultProps)for(o in r=e.defaultProps)void 0===a[o]&&(a[o]=r[o]);return{$$typeof:n,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React},206:e=>{e.exports=ReactDOM}},r={};function t(o){var n=r[o];if(void 0!==n)return n.exports;var a=r[o]={exports:{}};return e[o](a,a.exports,t),a.exports}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},d=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:o=24,strokeWidth:n=2,absoluteStrokeWidth:a,children:i,...s},d)=>{return(0,l.createElement)("svg",{ref:d,...c,width:o,height:o,stroke:t,strokeWidth:a?24*Number(n)/Number(o):n,className:`lucide lucide-${u=e,u.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var u}));return t.displayName=`${e}`,t};const u=d("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function p(e,r,t){return(r=function(e){var r=function(e){if("object"!=s(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=s(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,v=function(){for(var e,r,t=0,o="";t{const r=N(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),x(t,r)||E(e)},getConflictingClassGroupIds:(e,r)=>{const n=t[e]||[];return r&&o[e]?[...n,...o[e]]:n}}},x=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),n=o?x(e.slice(1),o):void 0;if(n)return n;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},w=/^\[(.+)\]$/,E=e=>{if(w.test(e)){const r=w.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},N=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return j(Object.entries(e.classGroups),t).forEach((([e,t])=>{k(t,o,e,r)})),o},k=(e,r,t,o)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return O(e)?void k(e(o),r,t,o):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,n])=>{k(n,C(r,e),t,o)}))}else(""===e?r:C(r,e)).classGroupId=t}))},C=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},O=e=>e.isThemeGetter,j=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,S=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,o=new Map;const n=(n,a)=>{t.set(n,a),r++,r>e&&(r=0,o=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=o.get(e))?(n(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):n(e,r)}}},A=e=>{const{separator:r,experimentalParseClassName:t}=e,o=1===r.length,n=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},P=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},R=/\s+/;function z(){let e,r,t=0,o="";for(;t{if("string"==typeof e)return e;let r,t="";for(let o=0;or(e)),e());return t=(e=>({cache:S(e.cacheSize),parseClassName:A(e),...y(e)}))(s),o=t.cache.get,n=t.cache.set,a=l,l(i)};function l(e){const r=o(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:n}=r,a=[],l=e.trim().split(R);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=o(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=o(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=P(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=n(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return n(e,a),a}return function(){return a(z.apply(null,arguments))}}const M=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},_=/^\[(?:([a-z-]+):)?(.+)\]$/i,D=/^\d+\/\d+$/,L=new Set(["px","full","screen"]),G=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,U=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,W=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,q=e=>V(e)||L.has(e)||D.test(e),F=e=>ae(e,"length",le),V=e=>Boolean(e)&&!Number.isNaN(Number(e)),H=e=>ae(e,"number",V),K=e=>Boolean(e)&&Number.isInteger(Number(e)),Z=e=>e.endsWith("%")&&V(e.slice(0,-1)),X=e=>_.test(e),Y=e=>G.test(e),J=new Set(["length","size","percentage"]),Q=e=>ae(e,J,ie),ee=e=>ae(e,"position",ie),re=new Set(["image","url"]),te=e=>ae(e,re,ce),oe=e=>ae(e,"",se),ne=()=>!0,ae=(e,r,t)=>{const o=_.exec(e);return!!o&&(o[1]?"string"==typeof r?o[1]===r:r.has(o[1]):t(o[2]))},le=e=>U.test(e)&&!$.test(e),ie=()=>!1,se=e=>W.test(e),ce=e=>B.test(e),de=I((Symbol.toStringTag,()=>{const e=M("colors"),r=M("spacing"),t=M("blur"),o=M("brightness"),n=M("borderColor"),a=M("borderRadius"),l=M("borderSpacing"),i=M("borderWidth"),s=M("contrast"),c=M("grayscale"),d=M("hueRotate"),u=M("invert"),p=M("gap"),f=M("gradientColorStops"),m=M("gradientColorStopPositions"),b=M("inset"),g=M("margin"),v=M("opacity"),h=M("padding"),y=M("saturate"),x=M("scale"),w=M("sepia"),E=M("skew"),N=M("space"),k=M("translate"),C=()=>["auto",X,r],O=()=>[X,r],j=()=>["",q,F],S=()=>["auto",V,X],A=()=>["","0",X],P=()=>[V,X];return{cacheSize:500,separator:":",theme:{colors:[ne],spacing:[q,F],blur:["none","",Y,X],brightness:P(),borderColor:[e],borderRadius:["none","","full",Y,X],borderSpacing:O(),borderWidth:j(),contrast:P(),grayscale:A(),hueRotate:P(),invert:A(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[Z,F],inset:C(),margin:C(),opacity:P(),padding:O(),saturate:P(),scale:P(),sepia:A(),skew:P(),space:O(),translate:O()},classGroups:{aspect:[{aspect:["auto","square","video",X]}],container:["container"],columns:[{columns:[Y]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",X]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",K,X]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",X]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",K,X]}],"grid-cols":[{"grid-cols":[ne]}],"col-start-end":[{col:["auto",{span:["full",K,X]},X]}],"col-start":[{"col-start":S()}],"col-end":[{"col-end":S()}],"grid-rows":[{"grid-rows":[ne]}],"row-start-end":[{row:["auto",{span:[K,X]},X]}],"row-start":[{"row-start":S()}],"row-end":[{"row-end":S()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",X]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",X]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",X,r]}],"min-w":[{"min-w":[X,r,"min","max","fit"]}],"max-w":[{"max-w":[X,r,"none","full","min","max","fit","prose",{screen:[Y]},Y]}],h:[{h:[X,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[X,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Y,F]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",H]}],"font-family":[{font:[ne]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",X]}],"line-clamp":[{"line-clamp":["none",V,H]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",q,X]}],"list-image":[{"list-image":["none",X]}],"list-style-type":[{list:["none","disc","decimal",X]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",q,F]}],"underline-offset":[{"underline-offset":["auto",q,X]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",X]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",ee]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Q]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[q,X]}],"outline-w":[{outline:[q,F]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:j()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[q,F]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Y,oe]}],"shadow-color":[{shadow:[ne]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[o]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Y,X]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",X]}],duration:[{duration:P()}],ease:[{ease:["linear","in","out","in-out",X]}],delay:[{delay:P()}],animate:[{animate:["none","spin","ping","pulse","bounce",X]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[K,X]}],"translate-x":[{"translate-x":[k]}],"translate-y":[{"translate-y":[k]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",X]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",X]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",X]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[q,F,H]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function ue(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==fe?void 0:fe.variants))return v(pe,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:o}=fe,n=Object.keys(t).map((r=>{const n=null==e?void 0:e[r],a=null==o?void 0:o[r];if(null===n)return null;const l=g(n)||g(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,o]=r;return void 0===o||(e[t]=o),e}),{}),l=null==fe||null===(r=fe.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:n,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...o,...a}[r]):{...o,...a}[r]===t}))?[...e,t,n]:e}),[]);return v(pe,n,l,null==e?void 0:e.class,null==e?void 0:e.className)});function ge(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ve(...e){return l.useCallback(ge(...e),e)}l.forwardRef((function(e,r){var t=e.className,o=e.variant,n=e.size,a=m(e,me);return l.createElement("button",f({className:ue(be({variant:o,size:n,className:t})),ref:r},a))})).displayName="Button";var he=t(848);function ye(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const o=t.reduce(((r,{useScope:t,scopeName:o})=>({...r,...t(e)[`__scope${o}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:o})),[o])}};return t.scopeName=r.scopeName,t}function xe(e,r,{checkForDefaultPrevented:t=!0}={}){return function(o){if(e?.(o),!1===t||!o.defaultPrevented)return r?.(o)}}function we(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var Ee=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},Ne=e=>{const{present:r,children:t}=e,o=function(e){const[r,t]=l.useState(),o=l.useRef({}),n=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=ke(o.current);a.current="mounted"===s?e:"none"}),[s]),Ee((()=>{const r=o.current,t=n.current;if(t!==e){const o=a.current,l=ke(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&o!==l?"ANIMATION_OUT":"UNMOUNT"),n.current=e}}),[e,c]),Ee((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=ke(o.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!n.current)){const o=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=o)}))}},i=e=>{e.target===r&&(a.current=ke(o.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(o.current=getComputedStyle(e)),t(e)}),[])}}(r),n="function"==typeof t?t({present:o.isPresent}):l.Children.only(t),a=ve(o.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(n));return"function"==typeof t||o.isPresent?l.cloneElement(n,{ref:a}):null};function ke(e){return e?.animationName||"none"}Ne.displayName="Presence",t(206);var Ce=l.forwardRef(((e,r)=>{const{children:t,...o}=e,n=l.Children.toArray(t),a=n.find(Se);if(a){const e=a.props.children,t=n.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,he.jsx)(Oe,{...o,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,he.jsx)(Oe,{...o,ref:r,children:t})}));Ce.displayName="Slot";var Oe=l.forwardRef(((e,r)=>{const{children:t,...o}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Ae(o,t.props),ref:r?ge(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));Oe.displayName="SlotClone";var je=({children:e})=>(0,he.jsx)(he.Fragment,{children:e});function Se(e){return l.isValidElement(e)&&e.type===je}function Ae(e,r){const t={...r};for(const o in r){const n=e[o],a=r[o];/^on[A-Z]/.test(o)?n&&a?t[o]=(...e)=>{a(...e),n(...e)}:n&&(t[o]=n):"style"===o?t[o]={...n,...a}:"className"===o&&(t[o]=[n,a].filter(Boolean).join(" "))}return{...e,...t}}var Pe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:o,...n}=e,a=o?Ce:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,he.jsx)(a,{...n,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),Re="Checkbox",[ze,Te]=function(e,r=[]){let t=[];const o=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const o=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:o}})),[t,o])}};return o.scopeName=e,[function(r,o){const n=l.createContext(o),a=t.length;t=[...t,o];const i=r=>{const{scope:t,children:o,...i}=r,s=t?.[e]?.[a]||n,c=l.useMemo((()=>i),Object.values(i));return(0,he.jsx)(s.Provider,{value:c,children:o})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||n,c=l.useContext(s);if(c)return c;if(void 0!==o)return o;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},ye(o,...r)]}(Re),[Ie,Me]=ze(Re),_e=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:o,checked:n,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ve(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[o,n]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[o]=t,n=l.useRef(o),a=we(r);return l.useEffect((()=>{n.current!==o&&(a(o),n.current=o)}),[o,n,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:o,s=we(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else n(r)}),[a,e,n,s])]}({prop:n,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,he.jsxs)(Ie,{scope:t,state:h,disabled:s,children:[(0,he.jsx)(Pe.button,{type:"button",role:"checkbox","aria-checked":Ue(h)?"mixed":h,"aria-required":i,"data-state":$e(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:xe(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:xe(e.onClick,(e=>{y((e=>!!Ue(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,he.jsx)(Ge,{control:f,bubbles:!g.current,name:o,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!Ue(a)&&a})]})}));_e.displayName=Re;var De="CheckboxIndicator",Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:o,...n}=e,a=Me(De,t);return(0,he.jsx)(Ne,{present:o||Ue(a.state)||!0===a.state,children:(0,he.jsx)(Pe.span,{"data-state":$e(a.state),"data-disabled":a.disabled?"":void 0,...n,ref:r,style:{pointerEvents:"none",...e.style}})})}));Le.displayName=De;var Ge=e=>{const{control:r,checked:t,bubbles:o=!0,defaultChecked:n,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return Ee((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const o=r[0];let n,a;if("borderBoxSize"in o){const e=o.borderBoxSize,r=Array.isArray(e)?e[0]:e;n=r.inlineSize,a=r.blockSize}else n=e.offsetWidth,a=e.offsetHeight;t({width:n,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&n){const r=new Event("click",{bubbles:o});e.indeterminate=Ue(t),n.call(e,!Ue(t)&&t),e.dispatchEvent(r)}}),[s,t,o]);const d=l.useRef(!Ue(t)&&t);return(0,he.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Ue(e){return"indeterminate"===e}function $e(e){return Ue(e)?"indeterminate":e?"checked":"unchecked"}var We=_e,Be=Le;const qe=d("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var Fe=["className"];function Ve(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function He(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===o){var c=t.text||t,d=t.type||"preprint",u=c.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Xe[d]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===o){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Xe[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===o)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(o)){var x=n(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},n(t))};const Je=function(e){var r=e.data,t=e.columns,o=a((0,l.useState)(!1),2),n=o[0],s=o[1],c=a((0,l.useState)(r),2),d=c[0],p=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!n)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(u,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(n?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Ye,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ze,{isOpen:n,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,o,n,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(o=e.code)||void 0===o?void 0:o.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(n=e.omicModalities)||void 0===n?void 0:n.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));p(t),s(!1)}}))};function Qe(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],o=a((0,l.useState)(null),2),n=o[0],s=o[1],c=a((0,l.useState)(!0),2),d=c[0],u=c[1];return(0,l.useEffect)((function(){try{if(void 0!==window.transformerEvaluation){var e=window.transformerEvaluation.map((function(e){var r=function(e){return""===e||null==e||"None"===e?"-":e};return{Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Evaluated Transformers":r(e.evaluated_transformers),Tasks:r(e.tasks),Notes:r(e.notes)}}));t(e)}else s("Data not available")}catch(e){console.error("Error accessing data:",e),s(e.message)}finally{u(!1)}}),[]),console.log("Rendering state:",{isLoading:d,error:n,hasData:!!r}),d?i().createElement("div",{className:"p-4"},"Loading..."):n?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",n):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Transformer Evaluation"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(Je,{data:r,columns:["Paper","Code","Omic Modalities","Evaluated Transformers","Tasks","Notes"]}))):i().createElement("div",{className:"p-4"},"No data available")}t(338),document.getElementById("transformer-evaluation-root")&&(console.log("Mounting TransformerEvaluation component"),ReactDOM.createRoot(document.getElementById("transformer-evaluation-root")).render(i().createElement(Qe,null)))})(); +(()=>{"use strict";var e={338:(e,r,t)=>{var o=t(206);o.createRoot,o.hydrateRoot},20:(e,r,t)=>{var o=t(594),n=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var o,a={},c=null,d=null;for(o in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,o)&&!s.hasOwnProperty(o)&&(a[o]=r[o]);if(e&&e.defaultProps)for(o in r=e.defaultProps)void 0===a[o]&&(a[o]=r[o]);return{$$typeof:n,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React},206:e=>{e.exports=ReactDOM}},r={};function t(o){var n=r[o];if(void 0!==n)return n.exports;var a=r[o]={exports:{}};return e[o](a,a.exports,t),a.exports}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},d=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:o=24,strokeWidth:n=2,absoluteStrokeWidth:a,children:i,...s},d)=>{return(0,l.createElement)("svg",{ref:d,...c,width:o,height:o,stroke:t,strokeWidth:a?24*Number(n)/Number(o):n,className:`lucide lucide-${u=e,u.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var u}));return t.displayName=`${e}`,t};const u=d("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function p(e,r,t){return(r=function(e){var r=function(e){if("object"!=s(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=s(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,v=function(){for(var e,r,t=0,o="";t{const r=N(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),x(t,r)||E(e)},getConflictingClassGroupIds:(e,r)=>{const n=t[e]||[];return r&&o[e]?[...n,...o[e]]:n}}},x=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),n=o?x(e.slice(1),o):void 0;if(n)return n;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},w=/^\[(.+)\]$/,E=e=>{if(w.test(e)){const r=w.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},N=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return j(Object.entries(e.classGroups),t).forEach((([e,t])=>{k(t,o,e,r)})),o},k=(e,r,t,o)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return O(e)?void k(e(o),r,t,o):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,n])=>{k(n,C(r,e),t,o)}))}else(""===e?r:C(r,e)).classGroupId=t}))},C=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},O=e=>e.isThemeGetter,j=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,S=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,o=new Map;const n=(n,a)=>{t.set(n,a),r++,r>e&&(r=0,o=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=o.get(e))?(n(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):n(e,r)}}},A=e=>{const{separator:r,experimentalParseClassName:t}=e,o=1===r.length,n=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},P=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},R=/\s+/;function T(){let e,r,t=0,o="";for(;t{if("string"==typeof e)return e;let r,t="";for(let o=0;or(e)),e());return t=(e=>({cache:S(e.cacheSize),parseClassName:A(e),...y(e)}))(s),o=t.cache.get,n=t.cache.set,a=l,l(i)};function l(e){const r=o(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:n}=r,a=[],l=e.trim().split(R);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=o(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=o(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=P(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=n(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return n(e,a),a}return function(){return a(T.apply(null,arguments))}}const M=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},_=/^\[(?:([a-z-]+):)?(.+)\]$/i,D=/^\d+\/\d+$/,L=new Set(["px","full","screen"]),G=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,U=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,W=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,q=e=>V(e)||L.has(e)||D.test(e),F=e=>ae(e,"length",le),V=e=>Boolean(e)&&!Number.isNaN(Number(e)),H=e=>ae(e,"number",V),K=e=>Boolean(e)&&Number.isInteger(Number(e)),Z=e=>e.endsWith("%")&&V(e.slice(0,-1)),X=e=>_.test(e),Y=e=>G.test(e),J=new Set(["length","size","percentage"]),Q=e=>ae(e,J,ie),ee=e=>ae(e,"position",ie),re=new Set(["image","url"]),te=e=>ae(e,re,ce),oe=e=>ae(e,"",se),ne=()=>!0,ae=(e,r,t)=>{const o=_.exec(e);return!!o&&(o[1]?"string"==typeof r?o[1]===r:r.has(o[1]):t(o[2]))},le=e=>U.test(e)&&!$.test(e),ie=()=>!1,se=e=>W.test(e),ce=e=>B.test(e),de=I((Symbol.toStringTag,()=>{const e=M("colors"),r=M("spacing"),t=M("blur"),o=M("brightness"),n=M("borderColor"),a=M("borderRadius"),l=M("borderSpacing"),i=M("borderWidth"),s=M("contrast"),c=M("grayscale"),d=M("hueRotate"),u=M("invert"),p=M("gap"),f=M("gradientColorStops"),m=M("gradientColorStopPositions"),b=M("inset"),g=M("margin"),v=M("opacity"),h=M("padding"),y=M("saturate"),x=M("scale"),w=M("sepia"),E=M("skew"),N=M("space"),k=M("translate"),C=()=>["auto",X,r],O=()=>[X,r],j=()=>["",q,F],S=()=>["auto",V,X],A=()=>["","0",X],P=()=>[V,X];return{cacheSize:500,separator:":",theme:{colors:[ne],spacing:[q,F],blur:["none","",Y,X],brightness:P(),borderColor:[e],borderRadius:["none","","full",Y,X],borderSpacing:O(),borderWidth:j(),contrast:P(),grayscale:A(),hueRotate:P(),invert:A(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[Z,F],inset:C(),margin:C(),opacity:P(),padding:O(),saturate:P(),scale:P(),sepia:A(),skew:P(),space:O(),translate:O()},classGroups:{aspect:[{aspect:["auto","square","video",X]}],container:["container"],columns:[{columns:[Y]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",X]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",K,X]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",X]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",K,X]}],"grid-cols":[{"grid-cols":[ne]}],"col-start-end":[{col:["auto",{span:["full",K,X]},X]}],"col-start":[{"col-start":S()}],"col-end":[{"col-end":S()}],"grid-rows":[{"grid-rows":[ne]}],"row-start-end":[{row:["auto",{span:[K,X]},X]}],"row-start":[{"row-start":S()}],"row-end":[{"row-end":S()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",X]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",X]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",X,r]}],"min-w":[{"min-w":[X,r,"min","max","fit"]}],"max-w":[{"max-w":[X,r,"none","full","min","max","fit","prose",{screen:[Y]},Y]}],h:[{h:[X,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[X,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Y,F]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",H]}],"font-family":[{font:[ne]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",X]}],"line-clamp":[{"line-clamp":["none",V,H]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",q,X]}],"list-image":[{"list-image":["none",X]}],"list-style-type":[{list:["none","disc","decimal",X]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",q,F]}],"underline-offset":[{"underline-offset":["auto",q,X]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",X]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",ee]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Q]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[q,X]}],"outline-w":[{outline:[q,F]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:j()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[q,F]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Y,oe]}],"shadow-color":[{shadow:[ne]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[o]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Y,X]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",X]}],duration:[{duration:P()}],ease:[{ease:["linear","in","out","in-out",X]}],delay:[{delay:P()}],animate:[{animate:["none","spin","ping","pulse","bounce",X]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[K,X]}],"translate-x":[{"translate-x":[k]}],"translate-y":[{"translate-y":[k]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",X]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",X]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",X]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[q,F,H]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function ue(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==fe?void 0:fe.variants))return v(pe,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:o}=fe,n=Object.keys(t).map((r=>{const n=null==e?void 0:e[r],a=null==o?void 0:o[r];if(null===n)return null;const l=g(n)||g(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,o]=r;return void 0===o||(e[t]=o),e}),{}),l=null==fe||null===(r=fe.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:n,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...o,...a}[r]):{...o,...a}[r]===t}))?[...e,t,n]:e}),[]);return v(pe,n,l,null==e?void 0:e.class,null==e?void 0:e.className)});function ge(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ve(...e){return l.useCallback(ge(...e),e)}l.forwardRef((function(e,r){var t=e.className,o=e.variant,n=e.size,a=m(e,me);return l.createElement("button",f({className:ue(be({variant:o,size:n,className:t})),ref:r},a))})).displayName="Button";var he=t(848);function ye(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const o=t.reduce(((r,{useScope:t,scopeName:o})=>({...r,...t(e)[`__scope${o}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:o})),[o])}};return t.scopeName=r.scopeName,t}function xe(e,r,{checkForDefaultPrevented:t=!0}={}){return function(o){if(e?.(o),!1===t||!o.defaultPrevented)return r?.(o)}}function we(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var Ee=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},Ne=e=>{const{present:r,children:t}=e,o=function(e){const[r,t]=l.useState(),o=l.useRef({}),n=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=ke(o.current);a.current="mounted"===s?e:"none"}),[s]),Ee((()=>{const r=o.current,t=n.current;if(t!==e){const o=a.current,l=ke(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&o!==l?"ANIMATION_OUT":"UNMOUNT"),n.current=e}}),[e,c]),Ee((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=ke(o.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!n.current)){const o=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=o)}))}},i=e=>{e.target===r&&(a.current=ke(o.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(o.current=getComputedStyle(e)),t(e)}),[])}}(r),n="function"==typeof t?t({present:o.isPresent}):l.Children.only(t),a=ve(o.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(n));return"function"==typeof t||o.isPresent?l.cloneElement(n,{ref:a}):null};function ke(e){return e?.animationName||"none"}Ne.displayName="Presence",t(206);var Ce=l.forwardRef(((e,r)=>{const{children:t,...o}=e,n=l.Children.toArray(t),a=n.find(Se);if(a){const e=a.props.children,t=n.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,he.jsx)(Oe,{...o,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,he.jsx)(Oe,{...o,ref:r,children:t})}));Ce.displayName="Slot";var Oe=l.forwardRef(((e,r)=>{const{children:t,...o}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Ae(o,t.props),ref:r?ge(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));Oe.displayName="SlotClone";var je=({children:e})=>(0,he.jsx)(he.Fragment,{children:e});function Se(e){return l.isValidElement(e)&&e.type===je}function Ae(e,r){const t={...r};for(const o in r){const n=e[o],a=r[o];/^on[A-Z]/.test(o)?n&&a?t[o]=(...e)=>{a(...e),n(...e)}:n&&(t[o]=n):"style"===o?t[o]={...n,...a}:"className"===o&&(t[o]=[n,a].filter(Boolean).join(" "))}return{...e,...t}}var Pe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:o,...n}=e,a=o?Ce:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,he.jsx)(a,{...n,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),Re="Checkbox",[Te,ze]=function(e,r=[]){let t=[];const o=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const o=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:o}})),[t,o])}};return o.scopeName=e,[function(r,o){const n=l.createContext(o),a=t.length;t=[...t,o];const i=r=>{const{scope:t,children:o,...i}=r,s=t?.[e]?.[a]||n,c=l.useMemo((()=>i),Object.values(i));return(0,he.jsx)(s.Provider,{value:c,children:o})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||n,c=l.useContext(s);if(c)return c;if(void 0!==o)return o;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},ye(o,...r)]}(Re),[Ie,Me]=Te(Re),_e=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:o,checked:n,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ve(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[o,n]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[o]=t,n=l.useRef(o),a=we(r);return l.useEffect((()=>{n.current!==o&&(a(o),n.current=o)}),[o,n,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:o,s=we(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else n(r)}),[a,e,n,s])]}({prop:n,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,he.jsxs)(Ie,{scope:t,state:h,disabled:s,children:[(0,he.jsx)(Pe.button,{type:"button",role:"checkbox","aria-checked":Ue(h)?"mixed":h,"aria-required":i,"data-state":$e(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:xe(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:xe(e.onClick,(e=>{y((e=>!!Ue(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,he.jsx)(Ge,{control:f,bubbles:!g.current,name:o,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!Ue(a)&&a})]})}));_e.displayName=Re;var De="CheckboxIndicator",Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:o,...n}=e,a=Me(De,t);return(0,he.jsx)(Ne,{present:o||Ue(a.state)||!0===a.state,children:(0,he.jsx)(Pe.span,{"data-state":$e(a.state),"data-disabled":a.disabled?"":void 0,...n,ref:r,style:{pointerEvents:"none",...e.style}})})}));Le.displayName=De;var Ge=e=>{const{control:r,checked:t,bubbles:o=!0,defaultChecked:n,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return Ee((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const o=r[0];let n,a;if("borderBoxSize"in o){const e=o.borderBoxSize,r=Array.isArray(e)?e[0]:e;n=r.inlineSize,a=r.blockSize}else n=e.offsetWidth,a=e.offsetHeight;t({width:n,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&n){const r=new Event("click",{bubbles:o});e.indeterminate=Ue(t),n.call(e,!Ue(t)&&t),e.dispatchEvent(r)}}),[s,t,o]);const d=l.useRef(!Ue(t)&&t);return(0,he.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Ue(e){return"indeterminate"===e}function $e(e){return Ue(e)?"indeterminate":e?"checked":"unchecked"}var We=_e,Be=Le;const qe=d("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var Fe=["className"];function Ve(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function He(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===o){var c=t.text||t,d=t.type||"preprint",u=c.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Xe[d]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===o){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Xe[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===o)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(o)){var x=n(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},n(t))};const Je=function(e){var r=e.data,t=e.columns,o=a((0,l.useState)(!1),2),n=o[0],s=o[1],c=a((0,l.useState)(r),2),d=c[0],p=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!n)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(u,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(n?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Ye,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ze,{isOpen:n,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,o,n,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(o=e.code)||void 0===o?void 0:o.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(n=e.omicModalities)||void 0===n?void 0:n.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));p(t),s(!1)}}))};function Qe(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],o=a((0,l.useState)(null),2),n=o[0],s=o[1],c=a((0,l.useState)(!0),2),d=c[0],u=c[1];return(0,l.useEffect)((function(){try{if(void 0!==window.transformerEvaluation){var e=window.transformerEvaluation.map((function(e){var r=function(e){return""===e||null==e||"None"===e?"-":e};return{Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Evaluated Transformers":r(e.evaluated_transformers),Tasks:r(e.tasks),Notes:r(e.notes)}}));t(e)}else s("Data not available")}catch(e){console.error("Error accessing data:",e),s(e.message)}finally{u(!1)}}),[]),console.log("Rendering state:",{isLoading:d,error:n,hasData:!!r}),d?i().createElement("div",{className:"p-4"},"Loading..."):n?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",n):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Transformer Evaluation"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(Je,{data:r,columns:["Paper","Code","Omic Modalities","Evaluated Transformers","Tasks","Notes"]}))):i().createElement("div",{className:"p-4"},"No data available")}t(338),document.getElementById("transformer-evaluation-root")&&(console.log("Mounting TransformerEvaluation component"),ReactDOM.createRoot(document.getElementById("transformer-evaluation-root")).render(i().createElement(Qe,null)))})(); //# sourceMappingURL=transformer-evaluation.bundle.js.map \ No newline at end of file diff --git a/_site/assets/js/dist/transformer-evaluation.bundle.js.map b/_site/assets/js/dist/transformer-evaluation.bundle.js.map index 7a8e495..709b3b0 100644 --- a/_site/assets/js/dist/transformer-evaluation.bundle.js.map +++ b/_site/assets/js/dist/transformer-evaluation.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"transformer-evaluation.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react-dom/client.js","webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/transformer-evaluation.jsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","module.exports = ReactDOM;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Reproducible 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","import React, { useState, useEffect } from 'react';\nimport FilterableTable from '../components/FilterableTable';\nimport { mountReactComponent } from '../utils/mount';\nimport FilterButton from '../components/FilterButton';\nimport FilterPanel from '../components/FilterPanel';\n\n\nfunction TransformerEvaluation() {\n const [data, setData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n \n useEffect(() => {\n try {\n if (typeof window.transformerEvaluation !== 'undefined') {\n const processedData = window.transformerEvaluation.map(item => {\n // Helper function to handle empty/null values\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None') {\n return '-';\n }\n return value;\n };\n\n return {\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Evaluated Transformers': processEmptyValue(item.evaluated_transformers),\n 'Tasks': processEmptyValue(item.tasks),\n 'Notes': processEmptyValue(item.notes)\n };\n });\n \n setData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n console.log('Rendering state:', { isLoading, error, hasData: !!data });\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Transformer Evaluation

\n
\n \n
\n
\n );\n}\n\nexport default TransformerEvaluation;\n\nif (document.getElementById('transformer-evaluation-root')) {\n console.log('Mounting TransformerEvaluation component');\n const root = ReactDOM.createRoot(document.getElementById('transformer-evaluation-root'));\n root.render();\n}"],"names":["m","createRoot","hydrateRoot","f","k","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","ReactDOM","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","_slicedToArray","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","_defineProperty","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","TransformerEvaluation","setData","error","setError","_useState6","isLoading","setIsLoading","useEffect","transformerEvaluation","processedData","processEmptyValue","omic_modalities","evaluated_transformers","tasks","notes","err","console","message","log","hasData","FilterableTable","getElementById","render"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"transformer-evaluation.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react-dom/client.js","webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/transformer-evaluation.jsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","module.exports = ReactDOM;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Training Code Available 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","import React, { useState, useEffect } from 'react';\nimport FilterableTable from '../components/FilterableTable';\nimport { mountReactComponent } from '../utils/mount';\nimport FilterButton from '../components/FilterButton';\nimport FilterPanel from '../components/FilterPanel';\n\n\nfunction TransformerEvaluation() {\n const [data, setData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n \n useEffect(() => {\n try {\n if (typeof window.transformerEvaluation !== 'undefined') {\n const processedData = window.transformerEvaluation.map(item => {\n // Helper function to handle empty/null values\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None') {\n return '-';\n }\n return value;\n };\n\n return {\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Evaluated Transformers': processEmptyValue(item.evaluated_transformers),\n 'Tasks': processEmptyValue(item.tasks),\n 'Notes': processEmptyValue(item.notes)\n };\n });\n \n setData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n console.log('Rendering state:', { isLoading, error, hasData: !!data });\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Transformer Evaluation

\n
\n \n
\n
\n );\n}\n\nexport default TransformerEvaluation;\n\nif (document.getElementById('transformer-evaluation-root')) {\n console.log('Mounting TransformerEvaluation component');\n const root = ReactDOM.createRoot(document.getElementById('transformer-evaluation-root'));\n root.render();\n}"],"names":["m","createRoot","hydrateRoot","f","k","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","ReactDOM","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","_slicedToArray","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","_defineProperty","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","TransformerEvaluation","setData","error","setError","_useState6","isLoading","setIsLoading","useEffect","transformerEvaluation","processedData","processEmptyValue","omic_modalities","evaluated_transformers","tasks","notes","err","console","message","log","hasData","FilterableTable","getElementById","render"],"sourceRoot":""} \ No newline at end of file diff --git a/_site/assets/js/dist/transformer-llms.bundle.js b/_site/assets/js/dist/transformer-llms.bundle.js index f76f427..b33a8f1 100644 --- a/_site/assets/js/dist/transformer-llms.bundle.js +++ b/_site/assets/js/dist/transformer-llms.bundle.js @@ -1,3 +1,3 @@ /*! For license information please see transformer-llms.bundle.js.LICENSE.txt */ -(()=>{"use strict";var e={338:(e,r,t)=>{var o=t(206);o.createRoot,o.hydrateRoot},20:(e,r,t)=>{var o=t(594),n=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var o,a={},c=null,d=null;for(o in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,o)&&!s.hasOwnProperty(o)&&(a[o]=r[o]);if(e&&e.defaultProps)for(o in r=e.defaultProps)void 0===a[o]&&(a[o]=r[o]);return{$$typeof:n,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React},206:e=>{e.exports=ReactDOM}},r={};function t(o){var n=r[o];if(void 0!==n)return n.exports;var a=r[o]={exports:{}};return e[o](a,a.exports,t),a.exports}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},d=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:o=24,strokeWidth:n=2,absoluteStrokeWidth:a,children:i,...s},d)=>{return(0,l.createElement)("svg",{ref:d,...c,width:o,height:o,stroke:t,strokeWidth:a?24*Number(n)/Number(o):n,className:`lucide lucide-${u=e,u.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var u}));return t.displayName=`${e}`,t};const u=d("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function p(e,r,t){return(r=function(e){var r=function(e){if("object"!=s(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=s(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,v=function(){for(var e,r,t=0,o="";t{const r=k(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),x(t,r)||E(e)},getConflictingClassGroupIds:(e,r)=>{const n=t[e]||[];return r&&o[e]?[...n,...o[e]]:n}}},x=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),n=o?x(e.slice(1),o):void 0;if(n)return n;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},w=/^\[(.+)\]$/,E=e=>{if(w.test(e)){const r=w.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},k=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return S(Object.entries(e.classGroups),t).forEach((([e,t])=>{N(t,o,e,r)})),o},N=(e,r,t,o)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return O(e)?void N(e(o),r,t,o):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,n])=>{N(n,C(r,e),t,o)}))}else(""===e?r:C(r,e)).classGroupId=t}))},C=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},O=e=>e.isThemeGetter,S=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,j=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,o=new Map;const n=(n,a)=>{t.set(n,a),r++,r>e&&(r=0,o=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=o.get(e))?(n(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):n(e,r)}}},P=e=>{const{separator:r,experimentalParseClassName:t}=e,o=1===r.length,n=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},A=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},R=/\s+/;function T(){let e,r,t=0,o="";for(;t{if("string"==typeof e)return e;let r,t="";for(let o=0;or(e)),e());return t=(e=>({cache:j(e.cacheSize),parseClassName:P(e),...y(e)}))(s),o=t.cache.get,n=t.cache.set,a=l,l(i)};function l(e){const r=o(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:n}=r,a=[],l=e.trim().split(R);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=o(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=o(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=A(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=n(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return n(e,a),a}return function(){return a(T.apply(null,arguments))}}const I=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},_=/^\[(?:([a-z-]+):)?(.+)\]$/i,D=/^\d+\/\d+$/,L=new Set(["px","full","screen"]),G=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,U=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,W=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,q=e=>V(e)||L.has(e)||D.test(e),F=e=>ae(e,"length",le),V=e=>Boolean(e)&&!Number.isNaN(Number(e)),H=e=>ae(e,"number",V),K=e=>Boolean(e)&&Number.isInteger(Number(e)),Z=e=>e.endsWith("%")&&V(e.slice(0,-1)),X=e=>_.test(e),Y=e=>G.test(e),J=new Set(["length","size","percentage"]),Q=e=>ae(e,J,ie),ee=e=>ae(e,"position",ie),re=new Set(["image","url"]),te=e=>ae(e,re,ce),oe=e=>ae(e,"",se),ne=()=>!0,ae=(e,r,t)=>{const o=_.exec(e);return!!o&&(o[1]?"string"==typeof r?o[1]===r:r.has(o[1]):t(o[2]))},le=e=>U.test(e)&&!$.test(e),ie=()=>!1,se=e=>W.test(e),ce=e=>B.test(e),de=M((Symbol.toStringTag,()=>{const e=I("colors"),r=I("spacing"),t=I("blur"),o=I("brightness"),n=I("borderColor"),a=I("borderRadius"),l=I("borderSpacing"),i=I("borderWidth"),s=I("contrast"),c=I("grayscale"),d=I("hueRotate"),u=I("invert"),p=I("gap"),f=I("gradientColorStops"),m=I("gradientColorStopPositions"),b=I("inset"),g=I("margin"),v=I("opacity"),h=I("padding"),y=I("saturate"),x=I("scale"),w=I("sepia"),E=I("skew"),k=I("space"),N=I("translate"),C=()=>["auto",X,r],O=()=>[X,r],S=()=>["",q,F],j=()=>["auto",V,X],P=()=>["","0",X],A=()=>[V,X];return{cacheSize:500,separator:":",theme:{colors:[ne],spacing:[q,F],blur:["none","",Y,X],brightness:A(),borderColor:[e],borderRadius:["none","","full",Y,X],borderSpacing:O(),borderWidth:S(),contrast:A(),grayscale:P(),hueRotate:A(),invert:P(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[Z,F],inset:C(),margin:C(),opacity:A(),padding:O(),saturate:A(),scale:A(),sepia:P(),skew:A(),space:O(),translate:O()},classGroups:{aspect:[{aspect:["auto","square","video",X]}],container:["container"],columns:[{columns:[Y]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",X]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",K,X]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",X]}],grow:[{grow:P()}],shrink:[{shrink:P()}],order:[{order:["first","last","none",K,X]}],"grid-cols":[{"grid-cols":[ne]}],"col-start-end":[{col:["auto",{span:["full",K,X]},X]}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":[ne]}],"row-start-end":[{row:["auto",{span:[K,X]},X]}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",X]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",X]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[k]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[k]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",X,r]}],"min-w":[{"min-w":[X,r,"min","max","fit"]}],"max-w":[{"max-w":[X,r,"none","full","min","max","fit","prose",{screen:[Y]},Y]}],h:[{h:[X,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[X,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Y,F]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",H]}],"font-family":[{font:[ne]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",X]}],"line-clamp":[{"line-clamp":["none",V,H]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",q,X]}],"list-image":[{"list-image":["none",X]}],"list-style-type":[{list:["none","disc","decimal",X]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",q,F]}],"underline-offset":[{"underline-offset":["auto",q,X]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",X]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",ee]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Q]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[q,X]}],"outline-w":[{outline:[q,F]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:S()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[q,F]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Y,oe]}],"shadow-color":[{shadow:[ne]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[o]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Y,X]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",X]}],duration:[{duration:A()}],ease:[{ease:["linear","in","out","in-out",X]}],delay:[{delay:A()}],animate:[{animate:["none","spin","ping","pulse","bounce",X]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[K,X]}],"translate-x":[{"translate-x":[N]}],"translate-y":[{"translate-y":[N]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",X]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",X]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",X]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[q,F,H]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function ue(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==fe?void 0:fe.variants))return v(pe,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:o}=fe,n=Object.keys(t).map((r=>{const n=null==e?void 0:e[r],a=null==o?void 0:o[r];if(null===n)return null;const l=g(n)||g(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,o]=r;return void 0===o||(e[t]=o),e}),{}),l=null==fe||null===(r=fe.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:n,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...o,...a}[r]):{...o,...a}[r]===t}))?[...e,t,n]:e}),[]);return v(pe,n,l,null==e?void 0:e.class,null==e?void 0:e.className)});function ge(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ve(...e){return l.useCallback(ge(...e),e)}l.forwardRef((function(e,r){var t=e.className,o=e.variant,n=e.size,a=m(e,me);return l.createElement("button",f({className:ue(be({variant:o,size:n,className:t})),ref:r},a))})).displayName="Button";var he=t(848);function ye(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const o=t.reduce(((r,{useScope:t,scopeName:o})=>({...r,...t(e)[`__scope${o}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:o})),[o])}};return t.scopeName=r.scopeName,t}function xe(e,r,{checkForDefaultPrevented:t=!0}={}){return function(o){if(e?.(o),!1===t||!o.defaultPrevented)return r?.(o)}}function we(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var Ee=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},ke=e=>{const{present:r,children:t}=e,o=function(e){const[r,t]=l.useState(),o=l.useRef({}),n=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=Ne(o.current);a.current="mounted"===s?e:"none"}),[s]),Ee((()=>{const r=o.current,t=n.current;if(t!==e){const o=a.current,l=Ne(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&o!==l?"ANIMATION_OUT":"UNMOUNT"),n.current=e}}),[e,c]),Ee((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=Ne(o.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!n.current)){const o=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=o)}))}},i=e=>{e.target===r&&(a.current=Ne(o.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(o.current=getComputedStyle(e)),t(e)}),[])}}(r),n="function"==typeof t?t({present:o.isPresent}):l.Children.only(t),a=ve(o.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(n));return"function"==typeof t||o.isPresent?l.cloneElement(n,{ref:a}):null};function Ne(e){return e?.animationName||"none"}ke.displayName="Presence",t(206);var Ce=l.forwardRef(((e,r)=>{const{children:t,...o}=e,n=l.Children.toArray(t),a=n.find(je);if(a){const e=a.props.children,t=n.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,he.jsx)(Oe,{...o,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,he.jsx)(Oe,{...o,ref:r,children:t})}));Ce.displayName="Slot";var Oe=l.forwardRef(((e,r)=>{const{children:t,...o}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Pe(o,t.props),ref:r?ge(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));Oe.displayName="SlotClone";var Se=({children:e})=>(0,he.jsx)(he.Fragment,{children:e});function je(e){return l.isValidElement(e)&&e.type===Se}function Pe(e,r){const t={...r};for(const o in r){const n=e[o],a=r[o];/^on[A-Z]/.test(o)?n&&a?t[o]=(...e)=>{a(...e),n(...e)}:n&&(t[o]=n):"style"===o?t[o]={...n,...a}:"className"===o&&(t[o]=[n,a].filter(Boolean).join(" "))}return{...e,...t}}var Ae=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:o,...n}=e,a=o?Ce:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,he.jsx)(a,{...n,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),Re="Checkbox",[Te,ze]=function(e,r=[]){let t=[];const o=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const o=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:o}})),[t,o])}};return o.scopeName=e,[function(r,o){const n=l.createContext(o),a=t.length;t=[...t,o];const i=r=>{const{scope:t,children:o,...i}=r,s=t?.[e]?.[a]||n,c=l.useMemo((()=>i),Object.values(i));return(0,he.jsx)(s.Provider,{value:c,children:o})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||n,c=l.useContext(s);if(c)return c;if(void 0!==o)return o;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},ye(o,...r)]}(Re),[Me,Ie]=Te(Re),_e=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:o,checked:n,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ve(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[o,n]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[o]=t,n=l.useRef(o),a=we(r);return l.useEffect((()=>{n.current!==o&&(a(o),n.current=o)}),[o,n,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:o,s=we(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else n(r)}),[a,e,n,s])]}({prop:n,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,he.jsxs)(Me,{scope:t,state:h,disabled:s,children:[(0,he.jsx)(Ae.button,{type:"button",role:"checkbox","aria-checked":Ue(h)?"mixed":h,"aria-required":i,"data-state":$e(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:xe(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:xe(e.onClick,(e=>{y((e=>!!Ue(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,he.jsx)(Ge,{control:f,bubbles:!g.current,name:o,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!Ue(a)&&a})]})}));_e.displayName=Re;var De="CheckboxIndicator",Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:o,...n}=e,a=Ie(De,t);return(0,he.jsx)(ke,{present:o||Ue(a.state)||!0===a.state,children:(0,he.jsx)(Ae.span,{"data-state":$e(a.state),"data-disabled":a.disabled?"":void 0,...n,ref:r,style:{pointerEvents:"none",...e.style}})})}));Le.displayName=De;var Ge=e=>{const{control:r,checked:t,bubbles:o=!0,defaultChecked:n,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return Ee((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const o=r[0];let n,a;if("borderBoxSize"in o){const e=o.borderBoxSize,r=Array.isArray(e)?e[0]:e;n=r.inlineSize,a=r.blockSize}else n=e.offsetWidth,a=e.offsetHeight;t({width:n,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&n){const r=new Event("click",{bubbles:o});e.indeterminate=Ue(t),n.call(e,!Ue(t)&&t),e.dispatchEvent(r)}}),[s,t,o]);const d=l.useRef(!Ue(t)&&t);return(0,he.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Ue(e){return"indeterminate"===e}function $e(e){return Ue(e)?"indeterminate":e?"checked":"unchecked"}var We=_e,Be=Le;const qe=d("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var Fe=["className"];function Ve(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function He(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===o){var c=t.text||t,d=t.type||"preprint",u=c.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Xe[d]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===o){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Xe[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===o)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(o)){var x=n(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},n(t))};const Je=function(e){var r=e.data,t=e.columns,o=a((0,l.useState)(!1),2),n=o[0],s=o[1],c=a((0,l.useState)(r),2),d=c[0],p=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!n)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(u,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(n?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Ye,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ze,{isOpen:n,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,o,n,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(o=e.code)||void 0===o?void 0:o.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(n=e.omicModalities)||void 0===n?void 0:n.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));p(t),s(!1)}}))};function Qe(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],o=a((0,l.useState)(null),2),n=o[0],s=o[1],c=a((0,l.useState)(!0),2),d=c[0],u=c[1];return(0,l.useEffect)((function(){try{if(void 0!==window.transformerLLMs){var e=window.transformerLLMs.map((function(e){var r=function(e){return""===e||null==e||"None"===e||"-"===e?"-":e};return console.log("Processing item architecture:",e.architecture),{Model:e.model,Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Pre-Training Dataset":r(e.pre_training_dataset),"Input Embedding":r(e.input_embedding),Architecture:function(){var r=e.architecture;if(!r)return"-";var t=r.match(/\[(.*?)\]\((.*?)\)/);return t?{text:t[1],url:t[2],type:"link"}:r}(),"SSL Tasks":r(e.ssl_tasks),"Supervised Tasks":r(e.supervised_tasks),"Zero-Shot Tasks":r(e.zero_shot_tasks)}}));t(e)}else s("Data not available")}catch(e){console.error("Error accessing data:",e),s(e.message)}finally{u(!1)}}),[]),console.log("Rendering state:",{isLoading:d,error:n,hasData:!!r}),d?i().createElement("div",{className:"p-4"},"Loading..."):n?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",n):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Transformer LLMs"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(Je,{data:r,columns:["Model","Paper","Code","Omic Modalities","Pre-Training Dataset","Input Embedding","Architecture","SSL Tasks","Supervised Tasks","Zero-Shot Tasks"]}))):i().createElement("div",{className:"p-4"},"No data available")}t(338),document.getElementById("transformer-llms-root")&&(console.log("Mounting TransformerLLMs component"),ReactDOM.createRoot(document.getElementById("transformer-llms-root")).render(i().createElement(Qe,null)))})(); +(()=>{"use strict";var e={338:(e,r,t)=>{var n=t(206);n.createRoot,n.hydrateRoot},20:(e,r,t)=>{var n=t(594),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var n,a={},c=null,d=null;for(n in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,n)&&!s.hasOwnProperty(n)&&(a[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===a[n]&&(a[n]=r[n]);return{$$typeof:o,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React},206:e=>{e.exports=ReactDOM}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},d=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:n=24,strokeWidth:o=2,absoluteStrokeWidth:a,children:i,...s},d)=>{return(0,l.createElement)("svg",{ref:d,...c,width:n,height:n,stroke:t,strokeWidth:a?24*Number(o)/Number(n):o,className:`lucide lucide-${u=e,u.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var u}));return t.displayName=`${e}`,t};const u=d("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function p(e,r,t){return(r=function(e){var r=function(e){if("object"!=s(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=s(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,v=function(){for(var e,r,t=0,n="";t{const r=k(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),x(t,r)||E(e)},getConflictingClassGroupIds:(e,r)=>{const o=t[e]||[];return r&&n[e]?[...o,...n[e]]:o}}},x=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],n=r.nextPart.get(t),o=n?x(e.slice(1),n):void 0;if(o)return o;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},w=/^\[(.+)\]$/,E=e=>{if(w.test(e)){const r=w.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},k=e=>{const{theme:r,prefix:t}=e,n={nextPart:new Map,validators:[]};return S(Object.entries(e.classGroups),t).forEach((([e,t])=>{N(t,n,e,r)})),n},N=(e,r,t,n)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return O(e)?void N(e(n),r,t,n):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,o])=>{N(o,C(r,e),t,n)}))}else(""===e?r:C(r,e)).classGroupId=t}))},C=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},O=e=>e.isThemeGetter,S=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,j=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,n=new Map;const o=(o,a)=>{t.set(o,a),r++,r>e&&(r=0,n=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=n.get(e))?(o(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):o(e,r)}}},A=e=>{const{separator:r,experimentalParseClassName:t}=e,n=1===r.length,o=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},P=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},R=/\s+/;function T(){let e,r,t=0,n="";for(;t{if("string"==typeof e)return e;let r,t="";for(let n=0;nr(e)),e());return t=(e=>({cache:j(e.cacheSize),parseClassName:A(e),...y(e)}))(s),n=t.cache.get,o=t.cache.set,a=l,l(i)};function l(e){const r=n(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:o}=r,a=[],l=e.trim().split(R);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=n(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=n(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=P(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=o(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return o(e,a),a}return function(){return a(T.apply(null,arguments))}}const I=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},_=/^\[(?:([a-z-]+):)?(.+)\]$/i,D=/^\d+\/\d+$/,L=new Set(["px","full","screen"]),G=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,U=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,W=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,q=e=>V(e)||L.has(e)||D.test(e),F=e=>ae(e,"length",le),V=e=>Boolean(e)&&!Number.isNaN(Number(e)),H=e=>ae(e,"number",V),K=e=>Boolean(e)&&Number.isInteger(Number(e)),Z=e=>e.endsWith("%")&&V(e.slice(0,-1)),X=e=>_.test(e),Y=e=>G.test(e),J=new Set(["length","size","percentage"]),Q=e=>ae(e,J,ie),ee=e=>ae(e,"position",ie),re=new Set(["image","url"]),te=e=>ae(e,re,ce),ne=e=>ae(e,"",se),oe=()=>!0,ae=(e,r,t)=>{const n=_.exec(e);return!!n&&(n[1]?"string"==typeof r?n[1]===r:r.has(n[1]):t(n[2]))},le=e=>U.test(e)&&!$.test(e),ie=()=>!1,se=e=>W.test(e),ce=e=>B.test(e),de=M((Symbol.toStringTag,()=>{const e=I("colors"),r=I("spacing"),t=I("blur"),n=I("brightness"),o=I("borderColor"),a=I("borderRadius"),l=I("borderSpacing"),i=I("borderWidth"),s=I("contrast"),c=I("grayscale"),d=I("hueRotate"),u=I("invert"),p=I("gap"),f=I("gradientColorStops"),m=I("gradientColorStopPositions"),b=I("inset"),g=I("margin"),v=I("opacity"),h=I("padding"),y=I("saturate"),x=I("scale"),w=I("sepia"),E=I("skew"),k=I("space"),N=I("translate"),C=()=>["auto",X,r],O=()=>[X,r],S=()=>["",q,F],j=()=>["auto",V,X],A=()=>["","0",X],P=()=>[V,X];return{cacheSize:500,separator:":",theme:{colors:[oe],spacing:[q,F],blur:["none","",Y,X],brightness:P(),borderColor:[e],borderRadius:["none","","full",Y,X],borderSpacing:O(),borderWidth:S(),contrast:P(),grayscale:A(),hueRotate:P(),invert:A(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[Z,F],inset:C(),margin:C(),opacity:P(),padding:O(),saturate:P(),scale:P(),sepia:A(),skew:P(),space:O(),translate:O()},classGroups:{aspect:[{aspect:["auto","square","video",X]}],container:["container"],columns:[{columns:[Y]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",X]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",K,X]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",X]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",K,X]}],"grid-cols":[{"grid-cols":[oe]}],"col-start-end":[{col:["auto",{span:["full",K,X]},X]}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":[oe]}],"row-start-end":[{row:["auto",{span:[K,X]},X]}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",X]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",X]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[k]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[k]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",X,r]}],"min-w":[{"min-w":[X,r,"min","max","fit"]}],"max-w":[{"max-w":[X,r,"none","full","min","max","fit","prose",{screen:[Y]},Y]}],h:[{h:[X,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[X,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Y,F]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",H]}],"font-family":[{font:[oe]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",X]}],"line-clamp":[{"line-clamp":["none",V,H]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",q,X]}],"list-image":[{"list-image":["none",X]}],"list-style-type":[{list:["none","disc","decimal",X]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",q,F]}],"underline-offset":[{"underline-offset":["auto",q,X]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",X]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",ee]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Q]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[q,X]}],"outline-w":[{outline:[q,F]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:S()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[q,F]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Y,ne]}],"shadow-color":[{shadow:[oe]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[n]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Y,X]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",X]}],duration:[{duration:P()}],ease:[{ease:["linear","in","out","in-out",X]}],delay:[{delay:P()}],animate:[{animate:["none","spin","ping","pulse","bounce",X]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[K,X]}],"translate-x":[{"translate-x":[N]}],"translate-y":[{"translate-y":[N]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",X]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",X]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",X]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[q,F,H]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function ue(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==fe?void 0:fe.variants))return v(pe,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:n}=fe,o=Object.keys(t).map((r=>{const o=null==e?void 0:e[r],a=null==n?void 0:n[r];if(null===o)return null;const l=g(o)||g(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,n]=r;return void 0===n||(e[t]=n),e}),{}),l=null==fe||null===(r=fe.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:o,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...n,...a}[r]):{...n,...a}[r]===t}))?[...e,t,o]:e}),[]);return v(pe,o,l,null==e?void 0:e.class,null==e?void 0:e.className)});function ge(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ve(...e){return l.useCallback(ge(...e),e)}l.forwardRef((function(e,r){var t=e.className,n=e.variant,o=e.size,a=m(e,me);return l.createElement("button",f({className:ue(be({variant:n,size:o,className:t})),ref:r},a))})).displayName="Button";var he=t(848);function ye(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const n=t.reduce(((r,{useScope:t,scopeName:n})=>({...r,...t(e)[`__scope${n}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:n})),[n])}};return t.scopeName=r.scopeName,t}function xe(e,r,{checkForDefaultPrevented:t=!0}={}){return function(n){if(e?.(n),!1===t||!n.defaultPrevented)return r?.(n)}}function we(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var Ee=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},ke=e=>{const{present:r,children:t}=e,n=function(e){const[r,t]=l.useState(),n=l.useRef({}),o=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=Ne(n.current);a.current="mounted"===s?e:"none"}),[s]),Ee((()=>{const r=n.current,t=o.current;if(t!==e){const n=a.current,l=Ne(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&n!==l?"ANIMATION_OUT":"UNMOUNT"),o.current=e}}),[e,c]),Ee((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=Ne(n.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!o.current)){const n=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=n)}))}},i=e=>{e.target===r&&(a.current=Ne(n.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(n.current=getComputedStyle(e)),t(e)}),[])}}(r),o="function"==typeof t?t({present:n.isPresent}):l.Children.only(t),a=ve(n.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(o));return"function"==typeof t||n.isPresent?l.cloneElement(o,{ref:a}):null};function Ne(e){return e?.animationName||"none"}ke.displayName="Presence",t(206);var Ce=l.forwardRef(((e,r)=>{const{children:t,...n}=e,o=l.Children.toArray(t),a=o.find(je);if(a){const e=a.props.children,t=o.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,he.jsx)(Oe,{...n,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,he.jsx)(Oe,{...n,ref:r,children:t})}));Ce.displayName="Slot";var Oe=l.forwardRef(((e,r)=>{const{children:t,...n}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Ae(n,t.props),ref:r?ge(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));Oe.displayName="SlotClone";var Se=({children:e})=>(0,he.jsx)(he.Fragment,{children:e});function je(e){return l.isValidElement(e)&&e.type===Se}function Ae(e,r){const t={...r};for(const n in r){const o=e[n],a=r[n];/^on[A-Z]/.test(n)?o&&a?t[n]=(...e)=>{a(...e),o(...e)}:o&&(t[n]=o):"style"===n?t[n]={...o,...a}:"className"===n&&(t[n]=[o,a].filter(Boolean).join(" "))}return{...e,...t}}var Pe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:n,...o}=e,a=n?Ce:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,he.jsx)(a,{...o,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),Re="Checkbox",[Te,ze]=function(e,r=[]){let t=[];const n=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const n=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:n}})),[t,n])}};return n.scopeName=e,[function(r,n){const o=l.createContext(n),a=t.length;t=[...t,n];const i=r=>{const{scope:t,children:n,...i}=r,s=t?.[e]?.[a]||o,c=l.useMemo((()=>i),Object.values(i));return(0,he.jsx)(s.Provider,{value:c,children:n})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||o,c=l.useContext(s);if(c)return c;if(void 0!==n)return n;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},ye(n,...r)]}(Re),[Me,Ie]=Te(Re),_e=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:n,checked:o,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ve(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[n,o]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[n]=t,o=l.useRef(n),a=we(r);return l.useEffect((()=>{o.current!==n&&(a(n),o.current=n)}),[n,o,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:n,s=we(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else o(r)}),[a,e,o,s])]}({prop:o,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,he.jsxs)(Me,{scope:t,state:h,disabled:s,children:[(0,he.jsx)(Pe.button,{type:"button",role:"checkbox","aria-checked":Ue(h)?"mixed":h,"aria-required":i,"data-state":$e(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:xe(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:xe(e.onClick,(e=>{y((e=>!!Ue(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,he.jsx)(Ge,{control:f,bubbles:!g.current,name:n,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!Ue(a)&&a})]})}));_e.displayName=Re;var De="CheckboxIndicator",Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:n,...o}=e,a=Ie(De,t);return(0,he.jsx)(ke,{present:n||Ue(a.state)||!0===a.state,children:(0,he.jsx)(Pe.span,{"data-state":$e(a.state),"data-disabled":a.disabled?"":void 0,...o,ref:r,style:{pointerEvents:"none",...e.style}})})}));Le.displayName=De;var Ge=e=>{const{control:r,checked:t,bubbles:n=!0,defaultChecked:o,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return Ee((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const n=r[0];let o,a;if("borderBoxSize"in n){const e=n.borderBoxSize,r=Array.isArray(e)?e[0]:e;o=r.inlineSize,a=r.blockSize}else o=e.offsetWidth,a=e.offsetHeight;t({width:o,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,o=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&o){const r=new Event("click",{bubbles:n});e.indeterminate=Ue(t),o.call(e,!Ue(t)&&t),e.dispatchEvent(r)}}),[s,t,n]);const d=l.useRef(!Ue(t)&&t);return(0,he.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:o??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Ue(e){return"indeterminate"===e}function $e(e){return Ue(e)?"indeterminate":e?"checked":"unchecked"}var We=_e,Be=Le;const qe=d("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var Fe=["className"];function Ve(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function He(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===n){var c=t.text||t,d=t.type||"preprint",u=c.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Xe[d]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===n){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Xe[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===n)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(n)){var x=o(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},o(t))};const Je=function(e){var r=e.data,t=e.columns,n=a((0,l.useState)(!1),2),o=n[0],s=n[1],c=a((0,l.useState)(r),2),d=c[0],p=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!o)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(u,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(o?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Ye,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ze,{isOpen:o,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,n,o,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(n=e.code)||void 0===n?void 0:n.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(o=e.omicModalities)||void 0===o?void 0:o.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));p(t),s(!1)}}))};function Qe(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],n=a((0,l.useState)(null),2),o=n[0],s=n[1],c=a((0,l.useState)(!0),2),d=c[0],u=c[1];return(0,l.useEffect)((function(){try{if(void 0!==window.transformerLLMs){var e=window.transformerLLMs.map((function(e){var r=function(e){return""===e||null==e||"None"===e||"-"===e?"-":e};return console.log("Processing item architecture:",e.architecture),{Model:e.model,Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Pre-Training Dataset":r(e.pre_training_dataset),"Input Embedding":r(e.input_embedding),Architecture:function(){var r=e.architecture;if(!r)return"-";var t=r.match(/\[(.*?)\]\((.*?)\)/);return t?{text:t[1],url:t[2],type:"link"}:r}(),"SSL Tasks":r(e.ssl_tasks),"Supervised Tasks":r(e.supervised_tasks),"Zero-Shot Tasks":r(e.zero_shot_tasks)}}));t(e)}else s("Data not available")}catch(e){console.error("Error accessing data:",e),s(e.message)}finally{u(!1)}}),[]),console.log("Rendering state:",{isLoading:d,error:o,hasData:!!r}),d?i().createElement("div",{className:"p-4"},"Loading..."):o?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",o):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Transformer LLMs"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(Je,{data:r,columns:["Model","Paper","Code","Omic Modalities","Pre-Training Dataset","Input Embedding","Architecture","SSL Tasks","Supervised Tasks","Zero-Shot Tasks"]}))):i().createElement("div",{className:"p-4"},"No data available")}t(338),document.getElementById("transformer-llms-root")&&(console.log("Mounting TransformerLLMs component"),ReactDOM.createRoot(document.getElementById("transformer-llms-root")).render(i().createElement(Qe,null)))})(); //# sourceMappingURL=transformer-llms.bundle.js.map \ No newline at end of file diff --git a/_site/assets/js/dist/transformer-llms.bundle.js.map b/_site/assets/js/dist/transformer-llms.bundle.js.map index 58e5581..083141e 100644 --- a/_site/assets/js/dist/transformer-llms.bundle.js.map +++ b/_site/assets/js/dist/transformer-llms.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"transformer-llms.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react-dom/client.js","webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/transformer-llms.jsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","module.exports = ReactDOM;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Reproducible 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","import React, { useState, useEffect } from 'react';\nimport FilterableTable from '../components/FilterableTable';\nimport { mountReactComponent } from '../utils/mount';\nimport FilterButton from '../components/FilterButton';\nimport FilterPanel from '../components/FilterPanel';\n\n\nfunction TransformerLLMs() {\n const [data, setData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n \n useEffect(() => {\n try {\n if (typeof window.transformerLLMs !== 'undefined') {\n const processedData = window.transformerLLMs.map(item => {\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None' || value === '-') {\n return '-';\n }\n return value;\n };\n\n console.log('Processing item architecture:', item.architecture);\n\n return {\n Model: item.model,\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Pre-Training Dataset': processEmptyValue(item.pre_training_dataset),\n 'Input Embedding': processEmptyValue(item.input_embedding),\n Architecture: (() => {\n const arch = item.architecture;\n if (!arch) return '-';\n \n const linkMatch = arch.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (linkMatch) {\n return {\n text: linkMatch[1],\n url: linkMatch[2],\n type: 'link'\n };\n }\n \n return arch;\n })(),\n 'SSL Tasks': processEmptyValue(item.ssl_tasks),\n 'Supervised Tasks': processEmptyValue(item.supervised_tasks),\n 'Zero-Shot Tasks': processEmptyValue(item.zero_shot_tasks)\n };\n });\n \n setData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n console.log('Rendering state:', { isLoading, error, hasData: !!data });\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Transformer LLMs

\n
\n \n
\n
\n );\n}\n\nexport default TransformerLLMs;\n\nif (document.getElementById('transformer-llms-root')) {\n console.log('Mounting TransformerLLMs component');\n const root = ReactDOM.createRoot(document.getElementById('transformer-llms-root'));\n root.render();\n}\n"],"names":["m","createRoot","hydrateRoot","f","k","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","ReactDOM","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","_slicedToArray","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","_defineProperty","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","TransformerLLMs","setData","error","setError","_useState6","isLoading","setIsLoading","useEffect","transformerLLMs","processedData","processEmptyValue","console","log","Model","model","omic_modalities","pre_training_dataset","input_embedding","linkMatch","ssl_tasks","supervised_tasks","zero_shot_tasks","err","message","hasData","FilterableTable","getElementById","render"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"transformer-llms.bundle.js","mappings":";4CAEIA,EAAI,EAAQ,KAEOA,EAAEC,WACDD,EAAEE,0BCIb,IAAIC,EAAE,EAAQ,KAASC,EAAEC,OAAOC,IAAI,iBAAiBC,EAAEF,OAAOC,IAAI,kBAAkBN,EAAEQ,OAAOC,UAAUC,eAAeC,EAAER,EAAES,mDAAmDC,kBAAkBC,EAAE,CAACC,KAAI,EAAGC,KAAI,EAAGC,QAAO,EAAGC,UAAS,GAChP,SAASC,EAAEC,EAAEC,EAAEC,GAAG,IAAIC,EAAEC,EAAE,CAAC,EAAEC,EAAE,KAAKC,EAAE,KAAiF,IAAIH,UAAhF,IAASD,IAAIG,EAAE,GAAGH,QAAG,IAASD,EAAEN,MAAMU,EAAE,GAAGJ,EAAEN,UAAK,IAASM,EAAEL,MAAMU,EAAEL,EAAEL,KAAcK,EAAErB,EAAE2B,KAAKN,EAAEE,KAAKT,EAAEJ,eAAea,KAAKC,EAAED,GAAGF,EAAEE,IAAI,GAAGH,GAAGA,EAAEQ,aAAa,IAAIL,KAAKF,EAAED,EAAEQ,kBAAe,IAASJ,EAAED,KAAKC,EAAED,GAAGF,EAAEE,IAAI,MAAM,CAACM,SAASzB,EAAE0B,KAAKV,EAAEL,IAAIU,EAAET,IAAIU,EAAEK,MAAMP,EAAEQ,OAAOrB,EAAEsB,QAAQ,CAACC,EAAQC,SAAS5B,EAAE2B,EAAQE,IAAIjB,EAAEe,EAAQG,KAAKlB,iBCPxWmB,EAAOJ,QAAU,EAAjB,aCHFI,EAAOJ,QAAUK,eCAjBD,EAAOJ,QAAUM,WCCbC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaV,QAGrB,IAAII,EAASG,EAAyBE,GAAY,CAGjDT,QAAS,CAAC,GAOX,OAHAY,EAAoBH,GAAUL,EAAQA,EAAOJ,QAASQ,GAG/CJ,EAAOJ,OACf,CCtBA,SAASa,EAAkBC,EAAG3B,IAC3B,MAAQA,GAAKA,EAAI2B,EAAEC,UAAY5B,EAAI2B,EAAEC,QACtC,IAAK,IAAIxB,EAAI,EAAGd,EAAIuC,MAAM7B,GAAII,EAAIJ,EAAGI,IAAKd,EAAEc,GAAKuB,EAAEvB,GACnD,OAAOd,CACT,CCHA,SAASwC,EAA4BH,EAAG3B,GACtC,GAAI2B,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAO,EAAiBA,EAAG3B,GACrD,IAAI+B,EAAI,CAAC,EAAEC,SAAS1B,KAAKqB,GAAGM,MAAM,GAAI,GACtC,MAAO,WAAaF,GAAKJ,EAAEO,cAAgBH,EAAIJ,EAAEO,YAAYC,MAAO,QAAUJ,GAAK,QAAUA,EAAIF,MAAMO,KAAKT,GAAK,cAAgBI,GAAK,2CAA2CM,KAAKN,GAAK,EAAiBJ,EAAG3B,QAAK,CACtN,CACF,CCHA,SAAS,EAAe2B,EAAGvB,GACzB,OCLF,SAAyBuB,GACvB,GAAIE,MAAMS,QAAQX,GAAI,OAAOA,CAC/B,CDGS,CAAeA,IELxB,SAA+BA,EAAGzC,GAChC,IAAI6C,EAAI,MAAQJ,EAAI,KAAO,oBAAsB3C,QAAU2C,EAAE3C,OAAOuD,WAAaZ,EAAE,cACnF,GAAI,MAAQI,EAAG,CACb,IAAI3B,EACFd,EACAkD,EACAC,EACAzC,EAAI,GACJlB,GAAI,EACJ4D,GAAI,EACN,IACE,GAAIF,GAAKT,EAAIA,EAAEzB,KAAKqB,IAAIgB,KAAM,IAAMzD,EAAG,CACrC,GAAIC,OAAO4C,KAAOA,EAAG,OACrBjD,GAAI,CACN,MAAO,OAASA,GAAKsB,EAAIoC,EAAElC,KAAKyB,IAAIa,QAAU5C,EAAE6C,KAAKzC,EAAE0C,OAAQ9C,EAAE4B,SAAW1C,GAAIJ,GAAI,GACtF,CAAE,MAAO6C,GACPe,GAAI,EAAIpD,EAAIqC,CACd,CAAE,QACA,IACE,IAAK7C,GAAK,MAAQiD,EAAU,SAAMU,EAAIV,EAAU,SAAK5C,OAAOsD,KAAOA,GAAI,MACzE,CAAE,QACA,GAAIC,EAAG,MAAMpD,CACf,CACF,CACA,OAAOU,CACT,CACF,CFrB8B,CAAqB2B,EAAGvB,IAAM,EAA2BuB,EAAGvB,IGL1F,WACE,MAAM,IAAI2C,UAAU,4IACtB,CHGgG,EAChG,CILA1B,EAAoB/B,EAAK2B,IACxB,IAAI+B,EAAS/B,GAAUA,EAAOgC,WAC7B,IAAOhC,EAAiB,QACxB,IAAM,EAEP,OADAI,EAAoBlB,EAAE6C,EAAQ,CAAEhD,EAAGgD,IAC5BA,CAAM,ECLd3B,EAAoBlB,EAAI,CAACU,EAASqC,KACjC,IAAI,IAAIxD,KAAOwD,EACX7B,EAAoBqB,EAAEQ,EAAYxD,KAAS2B,EAAoBqB,EAAE7B,EAASnB,IAC5EP,OAAOgE,eAAetC,EAASnB,EAAK,CAAE0D,YAAY,EAAMC,IAAKH,EAAWxD,IAE1E,ECND2B,EAAoBqB,EAAI,CAACY,EAAKC,IAAUpE,OAAOC,UAAUC,eAAeiB,KAAKgD,EAAKC,yBCAlF,SAASC,EAAQd,GAGf,OAAOc,EAAU,mBAAqBxE,QAAU,iBAAmBA,OAAOuD,SAAW,SAAUG,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqB1D,QAAU0D,EAAER,cAAgBlD,QAAU0D,IAAM1D,OAAOI,UAAY,gBAAkBsD,CACpH,EAAGc,EAAQd,EACb,CCJA,IAAIe,EAAoB,CACtBC,MAAO,6BACPC,MAAO,GACPC,OAAQ,GACRC,QAAS,YACTC,KAAM,OACNC,OAAQ,eACRC,YAAa,EACbC,cAAe,QACfC,eAAgB,SCkBdC,EAvBqB,CAACC,EAAUC,KAClC,MAAMC,GAAY,IAAAC,aAChB,EAAGC,QAAQ,eAAgBC,OAAO,GAAIT,cAAc,EAAGU,sBAAqBC,cAAaC,GAAQjF,KAAQ,WAAAkF,eACvG,MACA,CACElF,SACG8D,EACHE,MAAOc,EACPb,OAAQa,EACRV,OAAQS,EACRR,YAAaU,EAA4C,GAAtBI,OAAOd,GAAoBc,OAAOL,GAAQT,EAC7Ee,UAAW,iBAZEC,EAY2BZ,EAZhBY,EAAOC,QAAQ,qBAAsB,SAASC,mBAanEN,GAEL,IACKP,EAASc,KAAI,EAAEC,EAAKC,MAAW,IAAAR,eAAcO,EAAKC,SACjDxD,MAAMS,QAAQqC,GAAYA,EAAW,CAACA,KAAc,KAjB5C,IAACK,CAoBnB,IAEA,OADAV,EAAUgB,YAAc,GAAGlB,IACpBE,CAAS,ECvBlB,MAAMiB,EAAS,EAAiB,SAAU,CACxC,CACE,UACA,CAAEC,OAAQ,8CAA+C9F,IAAK,aCRlE,SAAS,EAAgBU,EAAGuB,EAAGI,GAC7B,OAAQJ,ECAV,SAAuBI,GACrB,IAAIS,ECFN,SAAqBT,GACnB,GAAI,UAAYyB,EAAQzB,KAAOA,EAAG,OAAOA,EACzC,IAAI3B,EAAI2B,EAAE/C,OAAOyG,aACjB,QAAI,IAAWrF,EAAG,CAChB,IAAIoC,EAAIpC,EAAEE,KAAKyB,EAAGJ,UAClB,GAAI,UAAY6B,EAAQhB,GAAI,OAAOA,EACnC,MAAM,IAAIO,UAAU,+CACtB,CACA,OAAyB2C,OAAiB3D,EAC5C,CDPU0D,CAAY1D,GACpB,MAAO,UAAYyB,EAAQhB,GAAKA,EAAIA,EAAI,EAC1C,CDHcmD,CAAchE,MAAOvB,EAAIjB,OAAOgE,eAAe/C,EAAGuB,EAAG,CAC/DmB,MAAOf,EACPqB,YAAY,EACZwC,cAAc,EACdC,UAAU,IACPzF,EAAEuB,GAAKI,EAAG3B,CACjB,CGRA,SAAS0F,IACP,OAAOA,EAAW3G,OAAO4G,OAAS5G,OAAO4G,OAAOC,OAAS,SAAU1G,GACjE,IAAK,IAAIc,EAAI,EAAGA,EAAI6F,UAAUrE,OAAQxB,IAAK,CACzC,IAAI2B,EAAIkE,UAAU7F,GAClB,IAAK,IAAIuB,KAAKI,GAAG,CAAG,GAAE1C,eAAeiB,KAAKyB,EAAGJ,KAAOrC,EAAEqC,GAAKI,EAAEJ,GAC/D,CACA,OAAOrC,CACT,EAAGwG,EAASI,MAAM,KAAMD,UAC1B,CCPA,SAASE,EAAyB/F,EAAG2B,GACnC,GAAI,MAAQ3B,EAAG,MAAO,CAAC,EACvB,IAAIsC,EACFf,EACAa,ECLJ,SAAuCb,EAAGvB,GACxC,GAAI,MAAQuB,EAAG,MAAO,CAAC,EACvB,IAAII,EAAI,CAAC,EACT,IAAK,IAAIzC,KAAKqC,EAAG,GAAI,CAAC,EAAEtC,eAAeiB,KAAKqB,EAAGrC,GAAI,CACjD,GAAIc,EAAEgG,SAAS9G,GAAI,SACnByC,EAAEzC,GAAKqC,EAAErC,EACX,CACA,OAAOyC,CACT,CDHQ,CAA6B3B,EAAG2B,GACtC,GAAI5C,OAAOkH,sBAAuB,CAChC,IAAIC,EAAInH,OAAOkH,sBAAsBjG,GACrC,IAAKuB,EAAI,EAAGA,EAAI2E,EAAE1E,OAAQD,IAAKe,EAAI4D,EAAE3E,GAAII,EAAEqE,SAAS1D,IAAM,CAAC,EAAE6D,qBAAqBjG,KAAKF,EAAGsC,KAAOF,EAAEE,GAAKtC,EAAEsC,GAC5G,CACA,OAAOF,CACT,CEXA,SAASb,EAAEvB,GAAG,IAAI2B,EAAEjD,EAAEQ,EAAE,GAAG,GAAG,iBAAiBc,GAAG,iBAAiBA,EAAEd,GAAGc,OAAO,GAAG,iBAAiBA,EAAE,GAAGyB,MAAMS,QAAQlC,GAAG,IAAI2B,EAAE,EAAEA,EAAE3B,EAAEwB,OAAOG,IAAI3B,EAAE2B,KAAKjD,EAAE6C,EAAEvB,EAAE2B,OAAOzC,IAAIA,GAAG,KAAKA,GAAGR,QAAQ,IAAIiD,KAAK3B,EAAEA,EAAE2B,KAAKzC,IAAIA,GAAG,KAAKA,GAAGyC,GAAG,OAAOzC,CAAC,CAA2H,MCC5VkH,EAAiB1D,GAAyB,kBAAVA,EAAsB,GAAG2D,OAAO3D,GAAmB,IAAVA,EAAc,IAAMA,EACtF4D,EDFkO,WAAgB,IAAI,IAAItG,EAAE2B,EAAEjD,EAAE,EAAEQ,EAAE,GAAGR,EAAEmH,UAAUrE,SAASxB,EAAE6F,UAAUnH,QAAQiD,EAAEJ,EAAEvB,MAAMd,IAAIA,GAAG,KAAKA,GAAGyC,GAAG,OAAOzC,CAAC,EEAjW,SAAS,EAAEc,GAAG,IAAI2B,EAAEjD,EAAEQ,EAAE,GAAG,GAAG,iBAAiBc,GAAG,iBAAiBA,EAAEd,GAAGc,OAAO,GAAG,iBAAiBA,EAAE,GAAGyB,MAAMS,QAAQlC,GAAG,CAAC,IAAIsC,EAAEtC,EAAEwB,OAAO,IAAIG,EAAE,EAAEA,EAAEW,EAAEX,IAAI3B,EAAE2B,KAAKjD,EAAE,EAAEsB,EAAE2B,OAAOzC,IAAIA,GAAG,KAAKA,GAAGR,EAAE,MAAM,IAAIA,KAAKsB,EAAEA,EAAEtB,KAAKQ,IAAIA,GAAG,KAAKA,GAAGR,GAAG,OAAOQ,CAAC,CAAgI,MCC1WqH,EAAwBC,IAC5B,MAAMC,EAAWC,EAAeF,IAC1B,uBACJG,EAAsB,+BACtBC,GACEJ,EAgBJ,MAAO,CACLK,gBAhBsBlC,IACtB,MAAMmC,EAAanC,EAAUoC,MARJ,KAazB,MAHsB,KAAlBD,EAAW,IAAmC,IAAtBA,EAAWtF,QACrCsF,EAAWE,QAENC,EAAkBH,EAAYL,IAAaS,EAA+BvC,EAAU,EAW3FwC,4BATkC,CAACC,EAAcC,KACjD,MAAMC,EAAYX,EAAuBS,IAAiB,GAC1D,OAAIC,GAAsBT,EAA+BQ,GAChD,IAAIE,KAAcV,EAA+BQ,IAEnDE,CAAS,EAKjB,EAEGL,EAAoB,CAACH,EAAYS,KACrC,GAA0B,IAAtBT,EAAWtF,OACb,OAAO+F,EAAgBH,aAEzB,MAAMI,EAAmBV,EAAW,GAC9BW,EAAsBF,EAAgBG,SAASzE,IAAIuE,GACnDG,EAA8BF,EAAsBR,EAAkBH,EAAWjF,MAAM,GAAI4F,QAAuBrG,EACxH,GAAIuG,EACF,OAAOA,EAET,GAA0C,IAAtCJ,EAAgBK,WAAWpG,OAC7B,OAEF,MAAMqG,EAAYf,EAAWgB,KAxCF,KAyC3B,OAAOP,EAAgBK,WAAWG,MAAK,EACrCC,eACIA,EAAUH,MAAaT,YAAY,EAErCa,EAAyB,aACzBf,EAAiCvC,IACrC,GAAIsD,EAAuBhG,KAAK0C,GAAY,CAC1C,MAAMuD,EAA6BD,EAAuBE,KAAKxD,GAAW,GACpEyD,EAAWF,GAA4BG,UAAU,EAAGH,EAA2BI,QAAQ,MAC7F,GAAIF,EAEF,MAAO,cAAgBA,CAE3B,GAKI1B,EAAiBF,IACrB,MAAM,MACJ+B,EAAK,OACLC,GACEhC,EACEC,EAAW,CACfiB,SAAU,IAAIe,IACdb,WAAY,IAMd,OAJkCc,EAA6B3J,OAAO4J,QAAQnC,EAAOoC,aAAcJ,GACzEK,SAAQ,EAAEzB,EAAc0B,MAChDC,EAA0BD,EAAYrC,EAAUW,EAAcmB,EAAM,IAE/D9B,CAAQ,EAEXsC,EAA4B,CAACD,EAAYvB,EAAiBH,EAAcmB,KAC5EO,EAAWD,SAAQG,IACjB,GAA+B,iBAApBA,EAAX,CAKA,GAA+B,mBAApBA,EACT,OAAIC,EAAcD,QAChBD,EAA0BC,EAAgBT,GAAQhB,EAAiBH,EAAcmB,QAGnFhB,EAAgBK,WAAWnF,KAAK,CAC9BuF,UAAWgB,EACX5B,iBAIJrI,OAAO4J,QAAQK,GAAiBH,SAAQ,EAAEvJ,EAAKwJ,MAC7CC,EAA0BD,EAAYI,EAAQ3B,EAAiBjI,GAAM8H,EAAcmB,EAAM,GAb3F,MAHoD,KAApBS,EAAyBzB,EAAkB2B,EAAQ3B,EAAiByB,IAC5E5B,aAAeA,CAgBrC,GACF,EAEE8B,EAAU,CAAC3B,EAAiB4B,KAChC,IAAIC,EAAyB7B,EAU7B,OATA4B,EAAKpC,MAnGsB,KAmGM8B,SAAQQ,IAClCD,EAAuB1B,SAAS4B,IAAID,IACvCD,EAAuB1B,SAAS6B,IAAIF,EAAU,CAC5C3B,SAAU,IAAIe,IACdb,WAAY,KAGhBwB,EAAyBA,EAAuB1B,SAASzE,IAAIoG,EAAS,IAEjED,CAAsB,EAEzBH,EAAgBO,GAAQA,EAAKP,cAC7BP,EAA+B,CAACe,EAAmBjB,IAClDA,EAGEiB,EAAkB1E,KAAI,EAAEqC,EAAc0B,KAUpC,CAAC1B,EATmB0B,EAAW/D,KAAIiE,GACT,iBAApBA,EACFR,EAASQ,EAEa,iBAApBA,EACFjK,OAAO2K,YAAY3K,OAAO4J,QAAQK,GAAiBjE,KAAI,EAAEzF,EAAKoD,KAAW,CAAC8F,EAASlJ,EAAKoD,MAE1FsG,OAVFS,EAiBLE,EAAiBC,IACrB,GAAIA,EAAe,EACjB,MAAO,CACL3G,IAAK,KAAe,EACpBsG,IAAK,QAGT,IAAIM,EAAY,EACZC,EAAQ,IAAIrB,IACZsB,EAAgB,IAAItB,IACxB,MAAMuB,EAAS,CAAC1K,EAAKoD,KACnBoH,EAAMP,IAAIjK,EAAKoD,GACfmH,IACIA,EAAYD,IACdC,EAAY,EACZE,EAAgBD,EAChBA,EAAQ,IAAIrB,IACd,EAEF,MAAO,CACL,GAAAxF,CAAI3D,GACF,IAAIoD,EAAQoH,EAAM7G,IAAI3D,GACtB,YAAc8B,IAAVsB,EACKA,OAEgCtB,KAApCsB,EAAQqH,EAAc9G,IAAI3D,KAC7B0K,EAAO1K,EAAKoD,GACLA,QAFT,CAIF,EACA,GAAA6G,CAAIjK,EAAKoD,GACHoH,EAAMR,IAAIhK,GACZwK,EAAMP,IAAIjK,EAAKoD,GAEfsH,EAAO1K,EAAKoD,EAEhB,EACD,EAGGuH,EAAuBzD,IAC3B,MAAM,UACJ0D,EAAS,2BACTC,GACE3D,EACE4D,EAAkD,IAArBF,EAAU1I,OACvC6I,EAA0BH,EAAU,GACpCI,EAAkBJ,EAAU1I,OAE5B+I,EAAiB5F,IACrB,MAAM6F,EAAY,GAClB,IAEIC,EAFAC,EAAe,EACfC,EAAgB,EAEpB,IAAK,IAAIC,EAAQ,EAAGA,EAAQjG,EAAUnD,OAAQoJ,IAAS,CACrD,IAAIC,EAAmBlG,EAAUiG,GACjC,GAAqB,IAAjBF,EAAoB,CACtB,GAAIG,IAAqBR,IAA4BD,GAA8BzF,EAAU9C,MAAM+I,EAAOA,EAAQN,KAAqBJ,GAAY,CACjJM,EAAU/H,KAAKkC,EAAU9C,MAAM8I,EAAeC,IAC9CD,EAAgBC,EAAQN,EACxB,QACF,CACA,GAAyB,MAArBO,EAA0B,CAC5BJ,EAA0BG,EAC1B,QACF,CACF,CACyB,MAArBC,EACFH,IAC8B,MAArBG,GACTH,GAEJ,CACA,MAAMI,EAA0D,IAArBN,EAAUhJ,OAAemD,EAAYA,EAAU0D,UAAUsC,GAC9FI,EAAuBD,EAAmCE,WAnCzC,KAsCvB,MAAO,CACLR,YACAO,uBACAE,cALoBF,EAAuBD,EAAmCzC,UAAU,GAAKyC,EAM7FI,6BALmCT,GAA2BA,EAA0BE,EAAgBF,EAA0BE,OAAgBvJ,EAMnJ,EAEH,OAAI+I,EACKxF,GAAawF,EAA2B,CAC7CxF,YACA4F,mBAGGA,CAAc,EAOjBY,EAAgBX,IACpB,GAAIA,EAAUhJ,QAAU,EACtB,OAAOgJ,EAET,MAAMY,EAAkB,GACxB,IAAIC,EAAoB,GAWxB,OAVAb,EAAU3B,SAAQyC,IAC2B,MAAhBA,EAAS,IAElCF,EAAgB3I,QAAQ4I,EAAkBE,OAAQD,GAClDD,EAAoB,IAEpBA,EAAkB5I,KAAK6I,EACzB,IAEFF,EAAgB3I,QAAQ4I,EAAkBE,QACnCH,CAAe,EAOlBI,EAAsB,MAqE5B,SAASC,IACP,IACIC,EACAC,EAFAf,EAAQ,EAGRhG,EAAS,GACb,KAAOgG,EAAQ/E,UAAUrE,SACnBkK,EAAW7F,UAAU+E,QACnBe,EAAgBC,EAAQF,MAC1B9G,IAAWA,GAAU,KACrBA,GAAU+G,GAIhB,OAAO/G,CACT,CACA,MAAMgH,EAAUC,IACd,GAAmB,iBAARA,EACT,OAAOA,EAET,IAAIF,EACA/G,EAAS,GACb,IAAK,IAAIjG,EAAI,EAAGA,EAAIkN,EAAIrK,OAAQ7C,IAC1BkN,EAAIlN,KACFgN,EAAgBC,EAAQC,EAAIlN,OAC9BiG,IAAWA,GAAU,KACrBA,GAAU+G,GAIhB,OAAO/G,CAAM,EAEf,SAASkH,EAAoBC,KAAsBC,GACjD,IAAIC,EACAC,EACAC,EACAC,EACJ,SAA2BC,GACzB,MAAM7F,EAASwF,EAAiBM,QAAO,CAACC,EAAgBC,IAAwBA,EAAoBD,IAAiBR,KAKrH,OAJAE,EAhHsBzF,KAAU,CAClCsD,MAAOH,EAAenD,EAAOqD,WAC7BU,eAAgBN,EAAqBzD,MAClCD,EAAsBC,KA6GTiG,CAAkBjG,GAChC0F,EAAWD,EAAYnC,MAAM7G,IAC7BkJ,EAAWF,EAAYnC,MAAMP,IAC7B6C,EAAiBM,EACVA,EAAcL,EACvB,EACA,SAASK,EAAcL,GACrB,MAAMM,EAAeT,EAASG,GAC9B,GAAIM,EACF,OAAOA,EAET,MAAMC,EArHa,EAACP,EAAWJ,KACjC,MAAM,eACJ1B,EAAc,gBACd1D,EAAe,4BACfM,GACE8E,EAQEY,EAAwB,GACxBC,EAAaT,EAAUU,OAAOhG,MAAMyE,GAC1C,IAAIoB,EAAS,GACb,IAAK,IAAIhC,EAAQkC,EAAWtL,OAAS,EAAGoJ,GAAS,EAAGA,GAAS,EAAG,CAC9D,MAAMoC,EAAoBF,EAAWlC,IAC/B,UACJJ,EAAS,qBACTO,EAAoB,cACpBE,EAAa,6BACbC,GACEX,EAAeyC,GACnB,IAAI3F,EAAqB4F,QAAQ/B,GAC7B9D,EAAeP,EAAgBQ,EAAqB4D,EAAc5C,UAAU,EAAG6C,GAAgCD,GACnH,IAAK7D,EAAc,CACjB,IAAKC,EAAoB,CAEvBuF,EAASI,GAAqBJ,EAAOpL,OAAS,EAAI,IAAMoL,EAASA,GACjE,QACF,CAEA,GADAxF,EAAeP,EAAgBoE,IAC1B7D,EAAc,CAEjBwF,EAASI,GAAqBJ,EAAOpL,OAAS,EAAI,IAAMoL,EAASA,GACjE,QACF,CACAvF,GAAqB,CACvB,CACA,MAAM6F,EAAkB/B,EAAcX,GAAW1C,KAAK,KAChDqF,EAAapC,EAAuBmC,EA3HnB,IA2H0DA,EAC3EE,EAAUD,EAAa/F,EAC7B,GAAIyF,EAAsB7G,SAASoH,GAEjC,SAEFP,EAAsBpK,KAAK2K,GAC3B,MAAMC,EAAiBlG,EAA4BC,EAAcC,GACjE,IAAK,IAAIjF,EAAI,EAAGA,EAAIiL,EAAe7L,SAAUY,EAAG,CAC9C,MAAMkL,EAAQD,EAAejL,GAC7ByK,EAAsBpK,KAAK0K,EAAaG,EAC1C,CAEAV,EAASI,GAAqBJ,EAAOpL,OAAS,EAAI,IAAMoL,EAASA,EACnE,CACA,OAAOA,CAAM,EA6DIW,CAAelB,EAAWJ,GAEzC,OADAE,EAASE,EAAWO,GACbA,CACT,CACA,OAAO,WACL,OAAOR,EAAeX,EAAO3F,MAAM,KAAMD,WAC3C,CACF,CACA,MAAM2H,EAAYlO,IAChB,MAAMmO,EAAclF,GAASA,EAAMjJ,IAAQ,GAE3C,OADAmO,EAAYxE,eAAgB,EACrBwE,CAAW,EAEdC,EAAsB,6BACtBC,EAAgB,aAChBC,EAA6B,IAAIC,IAAI,CAAC,KAAM,OAAQ,WACpDC,EAAkB,mCAClBC,EAAkB,4HAClBC,EAAqB,2CAErBC,EAAc,kEACdC,EAAa,+FACbC,EAAWzL,GAAS0L,EAAS1L,IAAUkL,EAActE,IAAI5G,IAAUiL,EAAc1L,KAAKS,GACtF2L,EAAoB3L,GAAS4L,GAAoB5L,EAAO,SAAU6L,IAClEH,EAAW1L,GAASuK,QAAQvK,KAAWgC,OAAO8J,MAAM9J,OAAOhC,IAC3D+L,EAAoB/L,GAAS4L,GAAoB5L,EAAO,SAAU0L,GAClEM,EAAYhM,GAASuK,QAAQvK,IAAUgC,OAAOgK,UAAUhK,OAAOhC,IAC/DiM,EAAYjM,GAASA,EAAMkM,SAAS,MAAQR,EAAS1L,EAAMb,MAAM,GAAI,IACrEgN,EAAmBnM,GAASgL,EAAoBzL,KAAKS,GACrDoM,EAAepM,GAASoL,EAAgB7L,KAAKS,GAC7CqM,EAA0B,IAAIlB,IAAI,CAAC,SAAU,OAAQ,eACrDmB,EAAkBtM,GAAS4L,GAAoB5L,EAAOqM,EAAYE,IAClEC,GAAsBxM,GAAS4L,GAAoB5L,EAAO,WAAYuM,IACtEE,GAA2B,IAAItB,IAAI,CAAC,QAAS,QAC7CuB,GAAmB1M,GAAS4L,GAAoB5L,EAAOyM,GAAaE,IACpEC,GAAoB5M,GAAS4L,GAAoB5L,EAAO,GAAI6M,IAC5DC,GAAQ,KAAM,EACdlB,GAAsB,CAAC5L,EAAO+M,EAAOC,KACzC,MAAM9C,EAASc,EAAoBvF,KAAKzF,GACxC,QAAIkK,IACEA,EAAO,GACe,iBAAV6C,EAAqB7C,EAAO,KAAO6C,EAAQA,EAAMnG,IAAIsD,EAAO,IAErE8C,EAAU9C,EAAO,IAEd,EAER2B,GAAe7L,GAIrBqL,EAAgB9L,KAAKS,KAAWsL,EAAmB/L,KAAKS,GAClDuM,GAAU,KAAM,EAChBM,GAAW7M,GAASuL,EAAYhM,KAAKS,GACrC2M,GAAU3M,GAASwL,EAAWjM,KAAKS,GAslEnCiN,GAAuB7D,GAtkE1BlN,OAAOgR,YAGe,KACvB,MAAMC,EAASrC,EAAU,UACnBsC,EAAUtC,EAAU,WACpBuC,EAAOvC,EAAU,QACjBwC,EAAaxC,EAAU,cACvByC,EAAczC,EAAU,eACxB0C,EAAe1C,EAAU,gBACzB2C,EAAgB3C,EAAU,iBAC1B4C,EAAc5C,EAAU,eACxB6C,EAAW7C,EAAU,YACrB8C,EAAY9C,EAAU,aACtB+C,EAAY/C,EAAU,aACtBgD,EAAShD,EAAU,UACnBiD,EAAMjD,EAAU,OAChBkD,EAAqBlD,EAAU,sBAC/BmD,EAA6BnD,EAAU,8BACvCoD,EAAQpD,EAAU,SAClBqD,EAASrD,EAAU,UACnBsD,EAAUtD,EAAU,WACpBuD,EAAUvD,EAAU,WACpBwD,EAAWxD,EAAU,YACrByD,EAAQzD,EAAU,SAClB0D,EAAQ1D,EAAU,SAClB2D,EAAO3D,EAAU,QACjB4D,EAAQ5D,EAAU,SAClB6D,EAAY7D,EAAU,aAGtB8D,EAAiC,IAAM,CAAC,OAAQzC,EAAkBiB,GAClEyB,EAA0B,IAAM,CAAC1C,EAAkBiB,GACnD0B,EAAiC,IAAM,CAAC,GAAIrD,EAAUE,GACtDoD,EAAgC,IAAM,CAAC,OAAQrD,EAAUS,GAKzD6C,EAAkB,IAAM,CAAC,GAAI,IAAK7C,GAElC8C,EAAwB,IAAM,CAACvD,EAAUS,GAC/C,MAAO,CACLhF,UAAW,IACXK,UAAW,IACX3B,MAAO,CACLsH,OAAQ,CAACL,IACTM,QAAS,CAAC3B,EAAUE,GACpB0B,KAAM,CAAC,OAAQ,GAAIjB,EAAcD,GACjCmB,WAAY2B,IACZ1B,YAAa,CAACJ,GACdK,aAAc,CAAC,OAAQ,GAAI,OAAQpB,EAAcD,GACjDsB,cAAeoB,IACfnB,YAAaoB,IACbnB,SAAUsB,IACVrB,UAAWoB,IACXnB,UAAWoB,IACXnB,OAAQkB,IACRjB,IAAKc,IACLb,mBAAoB,CAACb,GACrBc,2BAA4B,CAAChC,EAAWN,GACxCuC,MAAOU,IACPT,OAAQS,IACRR,QAASa,IACTZ,QAASQ,IACTP,SAAUW,IACVV,MAAOU,IACPT,MAAOQ,IACPP,KAAMQ,IACNP,MAAOG,IACPF,UAAWE,KAEb3I,YAAa,CAMXgJ,OAAQ,CAAC,CACPA,OAAQ,CAAC,OAAQ,SAAU,QAAS/C,KAMtCgD,UAAW,CAAC,aAKZC,QAAS,CAAC,CACRA,QAAS,CAAChD,KAMZ,cAAe,CAAC,CACd,cA1DkB,CAAC,OAAQ,QAAS,MAAO,aAAc,OAAQ,OAAQ,QAAS,YAgEpF,eAAgB,CAAC,CACf,eAjEkB,CAAC,OAAQ,QAAS,MAAO,aAAc,OAAQ,OAAQ,QAAS,YAuEpF,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,QAAS,aAAc,kBAMlD,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,QAAS,WAM9BiD,IAAK,CAAC,CACJA,IAAK,CAAC,SAAU,aAMlBC,QAAS,CAAC,QAAS,eAAgB,SAAU,OAAQ,cAAe,QAAS,eAAgB,gBAAiB,aAAc,eAAgB,qBAAsB,qBAAsB,qBAAsB,kBAAmB,YAAa,YAAa,OAAQ,cAAe,WAAY,YAAa,UAK3SC,MAAO,CAAC,CACNA,MAAO,CAAC,QAAS,OAAQ,OAAQ,QAAS,SAM5CC,MAAO,CAAC,CACNA,MAAO,CAAC,OAAQ,QAAS,OAAQ,OAAQ,QAAS,SAMpDC,UAAW,CAAC,UAAW,kBAKvB,aAAc,CAAC,CACbC,OAAQ,CAAC,UAAW,QAAS,OAAQ,OAAQ,gBAM/C,kBAAmB,CAAC,CAClBA,OAAQ,CAjIc,SAAU,SAAU,OAAQ,cAAe,WAAY,QAAS,eAAgB,YAAa,MAiIvFvD,KAM9BwD,SAAU,CAAC,CACTA,SA7IoB,CAAC,OAAQ,SAAU,OAAQ,UAAW,YAmJ5D,aAAc,CAAC,CACb,aApJoB,CAAC,OAAQ,SAAU,OAAQ,UAAW,YA0J5D,aAAc,CAAC,CACb,aA3JoB,CAAC,OAAQ,SAAU,OAAQ,UAAW,YAiK5DC,WAAY,CAAC,CACXA,WAnKsB,CAAC,OAAQ,UAAW,UAyK5C,eAAgB,CAAC,CACf,eA1KsB,CAAC,OAAQ,UAAW,UAgL5C,eAAgB,CAAC,CACf,eAjLsB,CAAC,OAAQ,UAAW,UAuL5CC,SAAU,CAAC,SAAU,QAAS,WAAY,WAAY,UAKtD3B,MAAO,CAAC,CACNA,MAAO,CAACA,KAMV,UAAW,CAAC,CACV,UAAW,CAACA,KAMd,UAAW,CAAC,CACV,UAAW,CAACA,KAMd4B,MAAO,CAAC,CACNA,MAAO,CAAC5B,KAMV6B,IAAK,CAAC,CACJA,IAAK,CAAC7B,KAMR8B,IAAK,CAAC,CACJA,IAAK,CAAC9B,KAMR+B,MAAO,CAAC,CACNA,MAAO,CAAC/B,KAMVgC,OAAQ,CAAC,CACPA,OAAQ,CAAChC,KAMXiC,KAAM,CAAC,CACLA,KAAM,CAACjC,KAMTkC,WAAY,CAAC,UAAW,YAAa,YAKrCC,EAAG,CAAC,CACFA,EAAG,CAAC,OAAQrE,EAAWG,KAOzBmE,MAAO,CAAC,CACNA,MAAO1B,MAMT,iBAAkB,CAAC,CACjB2B,KAAM,CAAC,MAAO,cAAe,MAAO,iBAMtC,YAAa,CAAC,CACZA,KAAM,CAAC,OAAQ,eAAgB,YAMjCA,KAAM,CAAC,CACLA,KAAM,CAAC,IAAK,OAAQ,UAAW,OAAQpE,KAMzCqE,KAAM,CAAC,CACLA,KAAMxB,MAMRyB,OAAQ,CAAC,CACPA,OAAQzB,MAMV0B,MAAO,CAAC,CACNA,MAAO,CAAC,QAAS,OAAQ,OAAQ1E,EAAWG,KAM9C,YAAa,CAAC,CACZ,YAAa,CAACW,MAMhB,gBAAiB,CAAC,CAChB6D,IAAK,CAAC,OAAQ,CACZC,KAAM,CAAC,OAAQ5E,EAAWG,IACzBA,KAML,YAAa,CAAC,CACZ,YAAa4C,MAMf,UAAW,CAAC,CACV,UAAWA,MAMb,YAAa,CAAC,CACZ,YAAa,CAACjC,MAMhB,gBAAiB,CAAC,CAChB+D,IAAK,CAAC,OAAQ,CACZD,KAAM,CAAC5E,EAAWG,IACjBA,KAML,YAAa,CAAC,CACZ,YAAa4C,MAMf,UAAW,CAAC,CACV,UAAWA,MAMb,YAAa,CAAC,CACZ,YAAa,CAAC,MAAO,MAAO,QAAS,YAAa,eAMpD,YAAa,CAAC,CACZ,YAAa,CAAC,OAAQ,MAAO,MAAO,KAAM5C,KAM5C,YAAa,CAAC,CACZ,YAAa,CAAC,OAAQ,MAAO,MAAO,KAAMA,KAM5C4B,IAAK,CAAC,CACJA,IAAK,CAACA,KAMR,QAAS,CAAC,CACR,QAAS,CAACA,KAMZ,QAAS,CAAC,CACR,QAAS,CAACA,KAMZ,kBAAmB,CAAC,CAClB+C,QAAS,CAAC,SAvZQ,QAAS,MAAO,SAAU,UAAW,SAAU,SAAU,aA6Z7E,gBAAiB,CAAC,CAChB,gBAAiB,CAAC,QAAS,MAAO,SAAU,aAM9C,eAAgB,CAAC,CACf,eAAgB,CAAC,OAAQ,QAAS,MAAO,SAAU,aAMrD,gBAAiB,CAAC,CAChBC,QAAS,CAAC,SA5aQ,QAAS,MAAO,SAAU,UAAW,SAAU,SAAU,UA4axC,cAMrC,cAAe,CAAC,CACdC,MAAO,CAAC,QAAS,MAAO,SAAU,WAAY,aAMhD,aAAc,CAAC,CACbC,KAAM,CAAC,OAAQ,QAAS,MAAO,SAAU,UAAW,cAMtD,gBAAiB,CAAC,CAChB,gBAAiB,CAjcC,QAAS,MAAO,SAAU,UAAW,SAAU,SAAU,UAic1C,cAMnC,cAAe,CAAC,CACd,cAAe,CAAC,QAAS,MAAO,SAAU,WAAY,aAMxD,aAAc,CAAC,CACb,aAAc,CAAC,OAAQ,QAAS,MAAO,SAAU,aAOnDtU,EAAG,CAAC,CACFA,EAAG,CAAC0R,KAMN6C,GAAI,CAAC,CACHA,GAAI,CAAC7C,KAMP8C,GAAI,CAAC,CACHA,GAAI,CAAC9C,KAMP+C,GAAI,CAAC,CACHA,GAAI,CAAC/C,KAMPgD,GAAI,CAAC,CACHA,GAAI,CAAChD,KAMPiD,GAAI,CAAC,CACHA,GAAI,CAACjD,KAMPkD,GAAI,CAAC,CACHA,GAAI,CAAClD,KAMPmD,GAAI,CAAC,CACHA,GAAI,CAACnD,KAMPoD,GAAI,CAAC,CACHA,GAAI,CAACpD,KAMPxS,EAAG,CAAC,CACFA,EAAG,CAACsS,KAMNuD,GAAI,CAAC,CACHA,GAAI,CAACvD,KAMPwD,GAAI,CAAC,CACHA,GAAI,CAACxD,KAMPyD,GAAI,CAAC,CACHA,GAAI,CAACzD,KAMP0D,GAAI,CAAC,CACHA,GAAI,CAAC1D,KAMP2D,GAAI,CAAC,CACHA,GAAI,CAAC3D,KAMP4D,GAAI,CAAC,CACHA,GAAI,CAAC5D,KAMP6D,GAAI,CAAC,CACHA,GAAI,CAAC7D,KAMP8D,GAAI,CAAC,CACHA,GAAI,CAAC9D,KAMP,UAAW,CAAC,CACV,UAAW,CAACO,KAMd,kBAAmB,CAAC,mBAKpB,UAAW,CAAC,CACV,UAAW,CAACA,KAMd,kBAAmB,CAAC,mBAMpBwD,EAAG,CAAC,CACFA,EAAG,CAAC,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO/F,EAAkBiB,KAM1E,QAAS,CAAC,CACR,QAAS,CAACjB,EAAkBiB,EAAS,MAAO,MAAO,SAMrD,QAAS,CAAC,CACR,QAAS,CAACjB,EAAkBiB,EAAS,OAAQ,OAAQ,MAAO,MAAO,MAAO,QAAS,CACjF+E,OAAQ,CAAC/F,IACRA,KAML7O,EAAG,CAAC,CACFA,EAAG,CAAC4O,EAAkBiB,EAAS,OAAQ,MAAO,MAAO,MAAO,MAAO,MAAO,SAM5E,QAAS,CAAC,CACR,QAAS,CAACjB,EAAkBiB,EAAS,MAAO,MAAO,MAAO,MAAO,MAAO,SAM1E,QAAS,CAAC,CACR,QAAS,CAACjB,EAAkBiB,EAAS,MAAO,MAAO,MAAO,MAAO,MAAO,SAM1EzL,KAAM,CAAC,CACLA,KAAM,CAACwK,EAAkBiB,EAAS,OAAQ,MAAO,MAAO,SAO1D,YAAa,CAAC,CACZgF,KAAM,CAAC,OAAQhG,EAAcT,KAM/B,iBAAkB,CAAC,cAAe,wBAKlC,aAAc,CAAC,SAAU,cAKzB,cAAe,CAAC,CACd0G,KAAM,CAAC,OAAQ,aAAc,QAAS,SAAU,SAAU,WAAY,OAAQ,YAAa,QAAStG,KAMtG,cAAe,CAAC,CACdsG,KAAM,CAACvF,MAMT,aAAc,CAAC,eAKf,cAAe,CAAC,WAKhB,mBAAoB,CAAC,gBAKrB,aAAc,CAAC,cAAe,iBAK9B,cAAe,CAAC,oBAAqB,gBAKrC,eAAgB,CAAC,qBAAsB,oBAKvCwF,SAAU,CAAC,CACTA,SAAU,CAAC,UAAW,QAAS,SAAU,OAAQ,QAAS,SAAUnG,KAMtE,aAAc,CAAC,CACb,aAAc,CAAC,OAAQT,EAAUK,KAMnCwG,QAAS,CAAC,CACRA,QAAS,CAAC,OAAQ,QAAS,OAAQ,SAAU,UAAW,QAAS9G,EAAUU,KAM7E,aAAc,CAAC,CACb,aAAc,CAAC,OAAQA,KAMzB,kBAAmB,CAAC,CAClBqG,KAAM,CAAC,OAAQ,OAAQ,UAAWrG,KAMpC,sBAAuB,CAAC,CACtBqG,KAAM,CAAC,SAAU,aAOnB,oBAAqB,CAAC,CACpBC,YAAa,CAACtF,KAMhB,sBAAuB,CAAC,CACtB,sBAAuB,CAACiB,KAM1B,iBAAkB,CAAC,CACjBgE,KAAM,CAAC,OAAQ,SAAU,QAAS,UAAW,QAAS,SAMxD,aAAc,CAAC,CACbA,KAAM,CAACjF,KAMT,eAAgB,CAAC,CACf,eAAgB,CAACiB,KAMnB,kBAAmB,CAAC,YAAa,WAAY,eAAgB,gBAK7D,wBAAyB,CAAC,CACxBsE,WAAY,CApzBW,QAAS,SAAU,SAAU,SAAU,OAozB7B,UAMnC,4BAA6B,CAAC,CAC5BA,WAAY,CAAC,OAAQ,YAAajH,EAAUE,KAM9C,mBAAoB,CAAC,CACnB,mBAAoB,CAAC,OAAQF,EAAUU,KAMzC,wBAAyB,CAAC,CACxBuG,WAAY,CAACvF,KAMf,iBAAkB,CAAC,YAAa,YAAa,aAAc,eAK3D,gBAAiB,CAAC,WAAY,gBAAiB,aAK/C,YAAa,CAAC,CACZiF,KAAM,CAAC,OAAQ,SAAU,UAAW,YAMtCO,OAAQ,CAAC,CACPA,OAAQ9D,MAMV,iBAAkB,CAAC,CACjB+D,MAAO,CAAC,WAAY,MAAO,SAAU,SAAU,WAAY,cAAe,MAAO,QAASzG,KAM5F0G,WAAY,CAAC,CACXA,WAAY,CAAC,SAAU,SAAU,MAAO,WAAY,WAAY,kBAMlEC,MAAO,CAAC,CACNA,MAAO,CAAC,SAAU,QAAS,MAAO,UAMpCC,QAAS,CAAC,CACRA,QAAS,CAAC,OAAQ,SAAU,UAM9BhC,QAAS,CAAC,CACRA,QAAS,CAAC,OAAQ5E,KAOpB,gBAAiB,CAAC,CAChB6G,GAAI,CAAC,QAAS,QAAS,YAMzB,UAAW,CAAC,CACV,UAAW,CAAC,SAAU,UAAW,UAAW,UAO9C,aAAc,CAAC,CACb,aAAc,CAAC5E,KAMjB,YAAa,CAAC,CACZ,YAAa,CAAC,SAAU,UAAW,aAMrC,cAAe,CAAC,CACd4E,GAAI,CA16BkB,SAAU,SAAU,OAAQ,cAAe,WAAY,QAAS,eAAgB,YAAa,MA06B3FxG,MAM1B,YAAa,CAAC,CACZwG,GAAI,CAAC,YAAa,CAChBC,OAAQ,CAAC,GAAI,IAAK,IAAK,QAAS,aAOpC,UAAW,CAAC,CACVD,GAAI,CAAC,OAAQ,QAAS,UAAW1G,KAMnC,WAAY,CAAC,CACX0G,GAAI,CAAC,OAAQ,CACX,cAAe,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,OACrDtG,MAML,WAAY,CAAC,CACXsG,GAAI,CAAC7F,KAMP,oBAAqB,CAAC,CACpB7N,KAAM,CAAC2O,KAMT,mBAAoB,CAAC,CACnBiF,IAAK,CAACjF,KAMR,kBAAmB,CAAC,CAClBkF,GAAI,CAAClF,KAMP,gBAAiB,CAAC,CAChB3O,KAAM,CAAC0O,KAMT,eAAgB,CAAC,CACfkF,IAAK,CAAClF,KAMR,cAAe,CAAC,CACdmF,GAAI,CAACnF,KAOPoF,QAAS,CAAC,CACRA,QAAS,CAAC5F,KAMZ,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,YAAa,CAAC,CACZ,YAAa,CAACA,KAMhB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,aAAc,CAAC,CACb,aAAc,CAACA,KAMjB,WAAY,CAAC,CACX6F,OAAQ,CAAC3F,KAMX,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,aAAc,CAAC,CACb,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,iBAAkB,CAACU,KAMrB,eAAgB,CAAC,CACfiF,OAAQ,CA1qCe,QAAS,SAAU,SAAU,SAAU,OA0qCjC,YAM/B,WAAY,CAAC,CACX,WAAY,CAAC3F,KAMf,mBAAoB,CAAC,oBAKrB,WAAY,CAAC,CACX,WAAY,CAACA,KAMf,mBAAoB,CAAC,oBAKrB,iBAAkB,CAAC,CACjB,iBAAkB,CAACU,KAMrB,eAAgB,CAAC,CACfkF,OAhtCsB,CAAC,QAAS,SAAU,SAAU,SAAU,UAstChE,eAAgB,CAAC,CACfD,OAAQ,CAAC9F,KAMX,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,iBAAkB,CAAC,CACjB,WAAY,CAACA,KAMf,eAAgB,CAAC,CACf+F,OAAQ,CAAC/F,KAMX,gBAAiB,CAAC,CAChBgG,QAAS,CAAC,GA7xCa,QAAS,SAAU,SAAU,SAAU,UAmyChE,iBAAkB,CAAC,CACjB,iBAAkB,CAAC9H,EAAUU,KAM/B,YAAa,CAAC,CACZoH,QAAS,CAAC9H,EAAUE,KAMtB,gBAAiB,CAAC,CAChB4H,QAAS,CAACpG,KAMZ,SAAU,CAAC,CACTqG,KAAM1E,MAMR,eAAgB,CAAC,cAKjB,aAAc,CAAC,CACb0E,KAAM,CAACrG,KAMT,eAAgB,CAAC,CACf,eAAgB,CAACiB,KAMnB,gBAAiB,CAAC,CAChB,cAAe,CAAC3C,EAAUE,KAM5B,oBAAqB,CAAC,CACpB,cAAe,CAACwB,KAOlBsG,OAAQ,CAAC,CACPA,OAAQ,CAAC,GAAI,QAAS,OAAQrH,EAAcQ,MAM9C,eAAgB,CAAC,CACf6G,OAAQ,CAAC3G,MAMXsB,QAAS,CAAC,CACRA,QAAS,CAACA,KAMZ,YAAa,CAAC,CACZ,YAAa,CAt3CU,SAAU,WAAY,SAAU,UAAW,SAAU,UAAW,cAAe,aAAc,aAAc,aAAc,aAAc,YAAa,MAAO,aAAc,QAAS,aAs3CvK,eAAgB,iBAMpD,WAAY,CAAC,CACX,WA73CsB,CAAC,SAAU,WAAY,SAAU,UAAW,SAAU,UAAW,cAAe,aAAc,aAAc,aAAc,aAAc,YAAa,MAAO,aAAc,QAAS,gBAq4C3MsF,OAAQ,CAAC,CACPA,OAAQ,CAAC,GAAI,UAMfrG,KAAM,CAAC,CACLA,KAAM,CAACA,KAMTC,WAAY,CAAC,CACXA,WAAY,CAACA,KAMfK,SAAU,CAAC,CACTA,SAAU,CAACA,KAMb,cAAe,CAAC,CACd,cAAe,CAAC,GAAI,OAAQvB,EAAcD,KAM5CyB,UAAW,CAAC,CACVA,UAAW,CAACA,KAMd,aAAc,CAAC,CACb,aAAc,CAACC,KAMjBC,OAAQ,CAAC,CACPA,OAAQ,CAACA,KAMXQ,SAAU,CAAC,CACTA,SAAU,CAACA,KAMbE,MAAO,CAAC,CACNA,MAAO,CAACA,KAOV,kBAAmB,CAAC,CAClB,kBAAmB,CAAC,GAAI,UAM1B,gBAAiB,CAAC,CAChB,gBAAiB,CAACnB,KAMpB,sBAAuB,CAAC,CACtB,sBAAuB,CAACC,KAM1B,oBAAqB,CAAC,CACpB,oBAAqB,CAACK,KAMxB,qBAAsB,CAAC,CACrB,qBAAsB,CAACC,KAMzB,sBAAuB,CAAC,CACtB,sBAAuB,CAACC,KAM1B,kBAAmB,CAAC,CAClB,kBAAmB,CAACC,KAMtB,mBAAoB,CAAC,CACnB,mBAAoB,CAACM,KAMvB,oBAAqB,CAAC,CACpB,oBAAqB,CAACE,KAMxB,iBAAkB,CAAC,CACjB,iBAAkB,CAACE,KAOrB,kBAAmB,CAAC,CAClB6E,OAAQ,CAAC,WAAY,cAMvB,iBAAkB,CAAC,CACjB,iBAAkB,CAAC5F,KAMrB,mBAAoB,CAAC,CACnB,mBAAoB,CAACA,KAMvB,mBAAoB,CAAC,CACnB,mBAAoB,CAACA,KAMvB,eAAgB,CAAC,CACfkG,MAAO,CAAC,OAAQ,WAMlBC,QAAS,CAAC,CACRA,QAAS,CAAC,MAAO,YAOnBC,WAAY,CAAC,CACXA,WAAY,CAAC,OAAQ,MAAO,GAAI,SAAU,UAAW,SAAU,YAAa1H,KAM9E2H,SAAU,CAAC,CACTA,SAAU7E,MAMZ8E,KAAM,CAAC,CACLA,KAAM,CAAC,SAAU,KAAM,MAAO,SAAU5H,KAM1C6H,MAAO,CAAC,CACNA,MAAO/E,MAMTgF,QAAS,CAAC,CACRA,QAAS,CAAC,OAAQ,OAAQ,OAAQ,QAAS,SAAU9H,KAOvD+H,UAAW,CAAC,CACVA,UAAW,CAAC,GAAI,MAAO,UAMzB3F,MAAO,CAAC,CACNA,MAAO,CAACA,KAMV,UAAW,CAAC,CACV,UAAW,CAACA,KAMd,UAAW,CAAC,CACV,UAAW,CAACA,KAMd4F,OAAQ,CAAC,CACPA,OAAQ,CAACnI,EAAWG,KAMtB,cAAe,CAAC,CACd,cAAe,CAACwC,KAMlB,cAAe,CAAC,CACd,cAAe,CAACA,KAMlB,SAAU,CAAC,CACT,SAAU,CAACF,KAMb,SAAU,CAAC,CACT,SAAU,CAACA,KAMb,mBAAoB,CAAC,CACnB2F,OAAQ,CAAC,SAAU,MAAO,YAAa,QAAS,eAAgB,SAAU,cAAe,OAAQ,WAAYjI,KAO/GkI,OAAQ,CAAC,CACPA,OAAQ,CAAC,OAAQlH,KAMnBmH,WAAY,CAAC,CACXA,WAAY,CAAC,OAAQ,UAMvBC,OAAQ,CAAC,CACPA,OAAQ,CAAC,OAAQ,UAAW,UAAW,OAAQ,OAAQ,OAAQ,OAAQ,cAAe,OAAQ,eAAgB,WAAY,OAAQ,YAAa,gBAAiB,QAAS,OAAQ,UAAW,OAAQ,WAAY,aAAc,aAAc,aAAc,WAAY,WAAY,WAAY,WAAY,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,cAAe,cAAe,UAAW,WAAYpI,KAM/a,cAAe,CAAC,CACdqI,MAAO,CAACrH,KAMV,iBAAkB,CAAC,CACjB,iBAAkB,CAAC,OAAQ,UAM7BsH,OAAQ,CAAC,CACPA,OAAQ,CAAC,OAAQ,IAAK,IAAK,MAM7B,kBAAmB,CAAC,CAClBC,OAAQ,CAAC,OAAQ,YAMnB,WAAY,CAAC,CACX,WAAY7F,MAMd,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,WAAY,CAAC,CACX,WAAYA,MAMd,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,YAAa,CAAC,CACZ,YAAaA,MAMf,aAAc,CAAC,CACb8F,KAAM,CAAC,QAAS,MAAO,SAAU,gBAMnC,YAAa,CAAC,CACZA,KAAM,CAAC,SAAU,YAMnB,YAAa,CAAC,CACZA,KAAM,CAAC,OAAQ,IAAK,IAAK,UAM3B,kBAAmB,CAAC,CAClBA,KAAM,CAAC,YAAa,eAMtBC,MAAO,CAAC,CACNA,MAAO,CAAC,OAAQ,OAAQ,kBAM1B,UAAW,CAAC,CACV,YAAa,CAAC,IAAK,OAAQ,WAM7B,UAAW,CAAC,CACV,YAAa,CAAC,IAAK,KAAM,UAM3B,WAAY,CAAC,oBAKbC,OAAQ,CAAC,CACPA,OAAQ,CAAC,OAAQ,OAAQ,MAAO,UAMlC,cAAe,CAAC,CACd,cAAe,CAAC,OAAQ,SAAU,WAAY,YAAa1I,KAO7DnL,KAAM,CAAC,CACLA,KAAM,CAACmM,EAAQ,UAMjB,WAAY,CAAC,CACXlM,OAAQ,CAACwK,EAAUE,EAAmBI,KAMxC9K,OAAQ,CAAC,CACPA,OAAQ,CAACkM,EAAQ,UAOnB2H,GAAI,CAAC,UAAW,eAKhB,sBAAuB,CAAC,CACtB,sBAAuB,CAAC,OAAQ,WAGpC7Q,uBAAwB,CACtB0L,SAAU,CAAC,aAAc,cACzBC,WAAY,CAAC,eAAgB,gBAC7B1B,MAAO,CAAC,UAAW,UAAW,QAAS,MAAO,MAAO,QAAS,SAAU,QACxE,UAAW,CAAC,QAAS,QACrB,UAAW,CAAC,MAAO,UACnBqC,KAAM,CAAC,QAAS,OAAQ,UACxBxC,IAAK,CAAC,QAAS,SACfpR,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC9CuU,GAAI,CAAC,KAAM,MACXC,GAAI,CAAC,KAAM,MACXtV,EAAG,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC9C6V,GAAI,CAAC,KAAM,MACXC,GAAI,CAAC,KAAM,MACXhQ,KAAM,CAAC,IAAK,KACZ,YAAa,CAAC,WACd,aAAc,CAAC,cAAe,mBAAoB,aAAc,cAAe,gBAC/E,cAAe,CAAC,cAChB,mBAAoB,CAAC,cACrB,aAAc,CAAC,cACf,cAAe,CAAC,cAChB,eAAgB,CAAC,cACjB,aAAc,CAAC,UAAW,YAC1ByR,QAAS,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,cAC1L,YAAa,CAAC,aAAc,cAC5B,YAAa,CAAC,aAAc,cAC5B,YAAa,CAAC,aAAc,cAC5B,YAAa,CAAC,aAAc,cAC5B,YAAa,CAAC,aAAc,cAC5B,YAAa,CAAC,aAAc,cAC5B,iBAAkB,CAAC,mBAAoB,oBACvC,WAAY,CAAC,aAAc,aAAc,aAAc,aAAc,aAAc,cACnF,aAAc,CAAC,aAAc,cAC7B,aAAc,CAAC,aAAc,cAC7B,eAAgB,CAAC,iBAAkB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,kBAC3G,iBAAkB,CAAC,iBAAkB,kBACrC,iBAAkB,CAAC,iBAAkB,kBACrC,WAAY,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,aACxG,YAAa,CAAC,YAAa,aAC3B,YAAa,CAAC,YAAa,aAC3B,WAAY,CAAC,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,YAAa,aACxG,YAAa,CAAC,YAAa,aAC3B,YAAa,CAAC,YAAa,aAC3BwB,MAAO,CAAC,UAAW,UAAW,YAC9B,UAAW,CAAC,SACZ,UAAW,CAAC,SACZ,WAAY,CAAC,UAEf1Q,+BAAgC,CAC9B,YAAa,CAAC,YAEjB,ICv8EI,SAAS6Q,KAAc,QAAAC,EAAA7R,UAAArE,OAARmW,EAAM,IAAAlW,MAAAiW,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAND,EAAMC,GAAA/R,UAAA+R,GAC1B,OAAOjI,GFJ+O,WAAgB,IAAI,IAAI3P,EAAE2B,EAAEjD,EAAE,EAAEQ,EAAE,GAAGoD,EAAEuD,UAAUrE,OAAO9C,EAAE4D,EAAE5D,KAAKsB,EAAE6F,UAAUnH,MAAMiD,EAAE,EAAE3B,MAAMd,IAAIA,GAAG,KAAKA,GAAGyC,GAAG,OAAOzC,CAAC,CEI9V2Y,CAAKF,GACtB,KHFoBG,GAAMtR,qCIEpBuR,IJFcD,GIGlB,sOJHwBtR,GIIxB,CACEwR,SAAU,CACRC,QAAS,CACPC,QAAS,gEACTjC,QAAS,kFAEX5R,KAAM,CACJ6T,QAAS,gBACTC,GAAI,8BACJC,GAAI,uBACJC,KAAM,YAGVC,gBAAiB,CACfL,QAAS,UACT5T,KAAM,YJlBA/D,IACJ,IAAIf,EACJ,GAAyE,OAApEiH,cAAuC,EAASA,GAAOwR,UAAmB,OAAO1R,EAAGwR,GAAMxX,aAAqC,EAASA,EAAMiY,MAAOjY,aAAqC,EAASA,EAAMqE,WAC9M,MAAM,SAAEqT,EAAS,gBAAEM,GAAqB9R,GAClCgS,EAAuBzZ,OAAO0Z,KAAKT,GAAUjT,KAAKkT,IACpD,MAAMS,EAAcpY,aAAqC,EAASA,EAAM2X,GAClEU,EAAqBL,aAAyD,EAASA,EAAgBL,GAC7G,GAAoB,OAAhBS,EAAsB,OAAO,KACjC,MAAME,EAAaxS,EAAcsS,IAAgBtS,EAAcuS,GAC/D,OAAOX,EAASC,GAASW,EAAW,IAElCC,EAAwBvY,GAASvB,OAAO4J,QAAQrI,GAAOgM,QAAO,CAACwM,EAAKC,KACtE,IAAKzZ,EAAKoD,GAASqW,EACnB,YAAc3X,IAAVsB,IAGJoW,EAAIxZ,GAAOoD,GAFAoW,CAGD,GACX,CAAC,GACEE,EAA+BxS,UAAoF,QAAnCjH,EAAMiH,GAAOyS,wBAAsC,IAAR1Z,OAArD,EAA+EA,EAAI+M,QAAO,CAACwM,EAAKI,KACxK,IAAMX,MAAOY,EAAUxU,UAAWyU,KAAiBC,GAA2BH,EAC9E,OAAOna,OAAO4J,QAAQ0Q,GAAwBC,OAAOP,IACjD,IAAKzZ,EAAKoD,GAASqW,EACnB,OAAOtX,MAAMS,QAAQQ,GAASA,EAAMsD,SAAS,IACtCsS,KACAO,GACLvZ,IAAQ,IACHgZ,KACAO,GACJvZ,KAASoD,CAAK,IAChB,IACEoW,EACHK,EACAC,GACAN,CAAG,GACR,IACH,OAAOxS,EAAGwR,GAAMU,EAAsBQ,EAA8B1Y,aAAqC,EAASA,EAAMiY,MAAOjY,aAAqC,EAASA,EAAMqE,UAAU,GK/BrM,SAAS4U,MAAeC,GACtB,OAAQC,GAASD,EAAK3Q,SAAStJ,GARjC,SAAgBA,EAAKmD,GACA,mBAARnD,EACTA,EAAImD,GACKnD,UACTA,EAAIiB,QAAUkC,EAElB,CAEyCgX,CAAOna,EAAKka,IACrD,CACA,SAASE,MAAmBH,GAC1B,OAAO,cAAkBD,MAAeC,GAAOA,EACjD,CDae1Y,EAAAA,YAAiB,SAAA8Y,EAAyCra,GAAQ,IAA9CoF,EAASiV,EAATjV,UAAWsT,EAAO2B,EAAP3B,QAAS5T,EAAIuV,EAAJvV,KAAS/D,EAAKyF,EAAA6T,EAAAC,IACnE,OACE/Y,EAAAA,cAAA,SAAA4E,EAAA,CACEf,UAAW8S,GAAGM,GAAe,CAAEE,QAAAA,EAAS5T,KAAAA,EAAMM,UAAAA,KAC9CpF,IAAKA,GACDe,GAGV,IACO4E,YAAc,uBEoBrB,SAAS4U,MAAwBC,GAC/B,MAAMC,EAAYD,EAAO,GACzB,GAAsB,IAAlBA,EAAOvY,OAAc,OAAOwY,EAChC,MAAMC,EAAc,KAClB,MAAMC,EAAaH,EAAOhV,KAAKoV,IAAiB,CAC9CC,SAAUD,IACVE,UAAWF,EAAaE,cAE1B,OAAO,SAA2BC,GAChC,MAAMC,EAAaL,EAAW5N,QAAO,CAACkO,GAAeJ,WAAUC,gBAGtD,IAAKG,KAFOJ,EAASE,GACI,UAAUD,QAEzC,CAAC,GACJ,OAAO,WAAc,KAAM,CAAG,CAAC,UAAUL,EAAUK,aAAcE,KAAe,CAACA,GACnF,CAAC,EAGH,OADAN,EAAYI,UAAYL,EAAUK,UAC3BJ,CACT,CC1EA,SAASQ,GAAqBC,EAAsBC,GAAiB,yBAAEC,GAA2B,GAAS,CAAC,GAC1G,OAAO,SAAqBC,GAE1B,GADAH,IAAuBG,IACU,IAA7BD,IAAuCC,EAAMC,iBAC/C,OAAOH,IAAkBE,EAE7B,CACF,CCNA,SAASE,GAAeC,GACtB,MAAMC,EAAc,SAAaD,GAIjC,OAHA,aAAgB,KACdC,EAAYza,QAAUwa,CAAQ,IAEzB,WAAc,IAAM,IAAIE,IAASD,EAAYza,aAAa0a,IAAO,GAC1E,CCNA,IAAIC,GAAmBlO,QAAQmO,YAAYC,UAAY,kBAAwB,OCe3EC,GAAYhb,IACd,MAAM,QAAEib,EAAO,SAAEhX,GAAajE,EACxBkb,EAOR,SAAqBD,GACnB,MAAO9B,EAAMgC,GAAW,aAClBC,EAAY,SAAc,CAAC,GAC3BC,EAAiB,SAAcJ,GAC/BK,EAAuB,SAAc,QACrCC,EAAeN,EAAU,UAAY,aACpCO,EAAOC,GAvBhB,SAAyBF,EAAcG,GACrC,OAAO,cAAiB,CAACF,EAAOjB,IACZmB,EAAQF,GAAOjB,IACbiB,GACnBD,EACL,CAkBwBI,CAAgBJ,EAAc,CAClDK,QAAS,CACPC,QAAS,YACTC,cAAe,oBAEjBC,iBAAkB,CAChBC,MAAO,UACPC,cAAe,aAEjBC,UAAW,CACTF,MAAO,aAmEX,OAhEA,aAAiB,KACf,MAAMG,EAAuBC,GAAiBhB,EAAUlb,SACxDob,EAAqBpb,QAAoB,YAAVsb,EAAsBW,EAAuB,MAAM,GACjF,CAACX,IACJ,IAAgB,KACd,MAAMa,EAASjB,EAAUlb,QACnBoc,EAAajB,EAAenb,QAElC,GAD0Boc,IAAerB,EAClB,CACrB,MAAMsB,EAAoBjB,EAAqBpb,QACzCic,EAAuBC,GAAiBC,GAE5CZ,EADER,EACG,QAC6B,SAAzBkB,GAAuD,SAApBE,GAAQ3K,QAC/C,UAGD4K,GADgBC,IAAsBJ,EAEnC,gBAEA,WAGTd,EAAenb,QAAU+a,CAC3B,IACC,CAACA,EAASQ,IACb,IAAgB,KACd,GAAItC,EAAM,CACR,IAAIqD,EACJ,MAAMC,EAActD,EAAKuD,cAAcC,aAAeC,OAChDC,EAAsBtC,IAC1B,MACMuC,EADuBV,GAAiBhB,EAAUlb,SACRwF,SAAS6U,EAAMwC,eAC/D,GAAIxC,EAAMyC,SAAW7D,GAAQ2D,IAC3BrB,EAAK,kBACAJ,EAAenb,SAAS,CAC3B,MAAM+c,EAAkB9D,EAAK+D,MAAMC,kBACnChE,EAAK+D,MAAMC,kBAAoB,WAC/BX,EAAYC,EAAYW,YAAW,KACI,aAAjCjE,EAAK+D,MAAMC,oBACbhE,EAAK+D,MAAMC,kBAAoBF,EACjC,GAEJ,CACF,EAEII,EAAwB9C,IACxBA,EAAMyC,SAAW7D,IACnBmC,EAAqBpb,QAAUkc,GAAiBhB,EAAUlb,SAC5D,EAKF,OAHAiZ,EAAKmE,iBAAiB,iBAAkBD,GACxClE,EAAKmE,iBAAiB,kBAAmBT,GACzC1D,EAAKmE,iBAAiB,eAAgBT,GAC/B,KACLJ,EAAYc,aAAaf,GACzBrD,EAAKqE,oBAAoB,iBAAkBH,GAC3ClE,EAAKqE,oBAAoB,kBAAmBX,GAC5C1D,EAAKqE,oBAAoB,eAAgBX,EAAmB,CAEhE,CACEpB,EAAK,gBACP,GACC,CAACtC,EAAMsC,IACH,CACLgC,UAAW,CAAC,UAAW,oBAAoB/X,SAAS8V,GACpDvc,IAAK,eAAoBye,IACnBA,IAAOtC,EAAUlb,QAAUyd,iBAAiBD,IAChDvC,EAAQuC,EAAM,GACb,IAEP,CAjGmBE,CAAY3C,GACvB4C,EAA4B,mBAAb5Z,EAA0BA,EAAS,CAAEgX,QAASC,EAASuC,YAAe,WAAgBK,KAAK7Z,GAC1GhF,EAAMoa,GAAgB6B,EAASjc,IAmGvC,SAAuB8e,GACrB,IAAIzb,EAAS7D,OAAOuf,yBAAyBD,EAAQ/d,MAAO,QAAQ2C,IAChEsb,EAAU3b,GAAU,mBAAoBA,GAAUA,EAAO4b,eAC7D,OAAID,EACKF,EAAQ9e,KAEjBqD,EAAS7D,OAAOuf,yBAAyBD,EAAS,QAAQpb,IAC1Dsb,EAAU3b,GAAU,mBAAoBA,GAAUA,EAAO4b,eACrDD,EACKF,EAAQ/d,MAAMf,IAEhB8e,EAAQ/d,MAAMf,KAAO8e,EAAQ9e,IACtC,CA/G4Ckf,CAAcN,IAExD,MADuC,mBAAb5Z,GACLiX,EAASuC,UAAY,eAAoBI,EAAO,CAAE5e,QAAS,IAAI,EA8FtF,SAASmd,GAAiBC,GACxB,OAAOA,GAAQU,eAAiB,MAClC,CA9FA/B,GAASpW,YAAc,sBCrBnBwZ,GAAO,cAAiB,CAACpe,EAAOqe,KAClC,MAAM,SAAEpa,KAAaqa,GAActe,EAC7Bue,EAAgB,WAAeC,QAAQva,GACvCwa,EAAYF,EAAc9W,KAAKiX,IACrC,GAAID,EAAW,CACb,MAAME,EAAaF,EAAUze,MAAMiE,SAC7B2a,EAAcL,EAAc9Z,KAAKoZ,GACjCA,IAAUY,EACR,WAAeI,MAAMF,GAAc,EAAU,WAAeb,KAAK,MAC9D,iBAAqBa,GAAcA,EAAW3e,MAAMiE,SAAW,KAE/D4Z,IAGX,OAAuB,KAAAxd,KAAIye,GAAW,IAAKR,EAAWrf,IAAKof,EAAcpa,SAAU,iBAAqB0a,GAAc,eAAmBA,OAAY,EAAQC,GAAe,MAC9K,CACA,OAAuB,KAAAve,KAAIye,GAAW,IAAKR,EAAWrf,IAAKof,EAAcpa,YAAW,IAEtFma,GAAKxZ,YAAc,OACnB,IAAIka,GAAY,cAAiB,CAAC9e,EAAOqe,KACvC,MAAM,SAAEpa,KAAaqa,GAActe,EACnC,GAAI,iBAAqBiE,GAAW,CAClC,MAAM8a,EAuCV,SAAuBhB,GACrB,IAAIzb,EAAS7D,OAAOuf,yBAAyBD,EAAQ/d,MAAO,QAAQ2C,IAChEsb,EAAU3b,GAAU,mBAAoBA,GAAUA,EAAO4b,eAC7D,OAAID,EACKF,EAAQ9e,KAEjBqD,EAAS7D,OAAOuf,yBAAyBD,EAAS,QAAQpb,IAC1Dsb,EAAU3b,GAAU,mBAAoBA,GAAUA,EAAO4b,eACrDD,EACKF,EAAQ/d,MAAMf,IAEhB8e,EAAQ/d,MAAMf,KAAO8e,EAAQ9e,IACtC,CAnDwB,CAAcgF,GAClC,OAAO,eAAmBA,EAAU,IAC/B+a,GAAWV,EAAWra,EAASjE,OAElCf,IAAKof,EAAepF,GAAYoF,EAAcU,GAAeA,GAEjE,CACA,OAAO,WAAeF,MAAM5a,GAAY,EAAI,WAAe6Z,KAAK,MAAQ,IAAI,IAE9EgB,GAAUla,YAAc,YACxB,IAAIqa,GAAY,EAAGhb,eACM,KAAA5D,KAAI,GAAAD,SAAU,CAAE6D,aAEzC,SAASya,GAAYb,GACnB,OAAO,iBAAqBA,IAAUA,EAAM9d,OAASkf,EACvD,CACA,SAASD,GAAWV,EAAWY,GAC7B,MAAMC,EAAgB,IAAKD,GAC3B,IAAK,MAAME,KAAYF,EAAY,CACjC,MAAMG,EAAgBf,EAAUc,GAC1BE,EAAiBJ,EAAWE,GAChB,WAAWzd,KAAKyd,GAE5BC,GAAiBC,EACnBH,EAAcC,GAAY,IAAIxE,KAC5B0E,KAAkB1E,GAClByE,KAAiBzE,EAAK,EAEfyE,IACTF,EAAcC,GAAYC,GAEN,UAAbD,EACTD,EAAcC,GAAY,IAAKC,KAAkBC,GAC3B,cAAbF,IACTD,EAAcC,GAAY,CAACC,EAAeC,GAAgBxJ,OAAOnJ,SAASnF,KAAK,KAEnF,CACA,MAAO,IAAK8W,KAAca,EAC5B,CAcA,ICvDII,GAlBQ,CACV,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,OACA,MACA,MAEoBvT,QAAO,CAACwT,EAAWrG,KACvC,MAAMsG,EAAO,cAAiB,CAACzf,EAAOqe,KACpC,MAAM,QAAEqB,KAAYC,GAAmB3f,EACjC4f,EAAOF,EAAUtB,GAAOjF,EAI9B,MAHsB,oBAAXyD,SACTA,OAAOte,OAAOC,IAAI,cAAe,IAEZ,KAAA8B,KAAIuf,EAAM,IAAKD,EAAgB1gB,IAAKof,GAAe,IAG5E,OADAoB,EAAK7a,YAAc,aAAauU,IACzB,IAAKqG,EAAW,CAACrG,GAAOsG,EAAM,GACpC,CAAC,GCrBAI,GAAgB,YACfC,GAAuBC,IPK5B,SAA4BhG,EAAWiG,EAAyB,IAC9D,IAAIC,EAAkB,GAqBtB,MAAMtG,EAAc,KAClB,MAAMuG,EAAgBD,EAAgBxb,KAAK0b,GAClC,gBAAoBA,KAE7B,OAAO,SAAkBC,GACvB,MAAMC,EAAWD,IAAQrG,IAAcmG,EACvC,OAAO,WACL,KAAM,CAAG,CAAC,UAAUnG,KAAc,IAAKqG,EAAO,CAACrG,GAAYsG,MAC3D,CAACD,EAAOC,GAEZ,CAAC,EAGH,OADA1G,EAAYI,UAAYA,EACjB,CAjCP,SAAwBuG,EAAmBH,GACzC,MAAMI,EAAc,gBAAoBJ,GAClC7V,EAAQ2V,EAAgB/e,OAC9B+e,EAAkB,IAAIA,EAAiBE,GACvC,MAAMK,EAAYxgB,IAChB,MAAM,MAAEogB,EAAK,SAAEnc,KAAawc,GAAYzgB,EAClC0gB,EAAUN,IAAQrG,KAAazP,IAAUiW,EACzCne,EAAQ,WAAc,IAAMqe,GAAShiB,OAAOkiB,OAAOF,IACzD,OAAuB,KAAApgB,KAAIqgB,EAAQF,SAAU,CAAEpe,QAAO6B,YAAW,EAUnE,OARAuc,EAAS5b,YAAc0b,EAAoB,WAQpC,CAACE,EAPR,SAAqBI,EAAcR,GACjC,MAAMM,EAAUN,IAAQrG,KAAazP,IAAUiW,EACzCE,EAAU,aAAiBC,GACjC,GAAID,EAAS,OAAOA,EACpB,QAAuB,IAAnBN,EAA2B,OAAOA,EACtC,MAAM,IAAIU,MAAM,KAAKD,6BAAwCN,MAC/D,EAEF,EAcwB9G,GAAqBG,KAAgBqG,GAC/D,COzCmDc,CAAmBjB,KACjEkB,GAAkBC,IAAsBlB,GAAsBD,IAC/D,GAAW,cACb,CAAC7f,EAAOqe,KACN,MAAM,gBACJ4C,EAAe,KACfxf,EACAyf,QAASC,EAAW,eACpBC,EAAc,SACdC,EAAQ,SACRC,EAAQ,MACRlf,EAAQ,KAAI,gBACZmf,EAAe,KACfC,KACGC,GACDzhB,GACG0hB,EAAQC,GAAa,WAAe,MACrCC,EAAevI,GAAgBgF,GAAelF,GAASwI,EAAUxI,KACjE0I,EAAmC,UAAa,GAChDC,GAAgBJ,GAASF,KAAUE,EAAOK,QAAQ,SACjDb,GAAU,EAAOc,GC/B5B,UAA8B,KAC5Bnf,EAAI,YACJof,EAAW,SACXC,EAAW,SAGX,MAAOC,EAAkBC,GAkB3B,UAA8B,YAC5BH,EAAW,SACXC,IAEA,MAAMG,EAAoB,WAAeJ,IAClC7f,GAASigB,EACVC,EAAe,SAAalgB,GAC5BmgB,EAAe9H,GAAeyH,GAOpC,OANA,aAAgB,KACVI,EAAapiB,UAAYkC,IAC3BmgB,EAAangB,GACbkgB,EAAapiB,QAAUkC,EACzB,GACC,CAACA,EAAOkgB,EAAcC,IAClBF,CACT,CAjCkDG,CAAqB,CAAEP,cAAaC,aAC9EO,OAAwB,IAAT5f,EACfT,EAAQqgB,EAAe5f,EAAOsf,EAC9BI,EAAe9H,GAAeyH,GAapC,MAAO,CAAC9f,EAZS,eACdsgB,IACC,GAAID,EAAc,CAChB,MACME,EAA8B,mBAAdD,EADPA,EACyC7f,GAAQ6f,EAC5DC,IAAW9f,GAAM0f,EAAaI,EACpC,MACEP,EAAoBM,EACtB,GAEF,CAACD,EAAc5f,EAAMuf,EAAqBG,IAG9C,CDQ0CK,CAAqB,CACzD/f,KAAMse,EACNc,YAAab,EACbc,SAAUX,IAENsB,EAAyB,SAAa3B,GAS5C,OARA,aAAgB,KACd,MAAM4B,EAAQpB,GAAQF,KACtB,GAAIsB,EAAO,CACT,MAAMC,EAAQ,IAAMf,EAAWa,EAAuB3iB,SAEtD,OADA4iB,EAAMxF,iBAAiB,QAASyF,GACzB,IAAMD,EAAMtF,oBAAoB,QAASuF,EAClD,IACC,CAACrB,EAAQM,KACW,KAAA1hB,MAAKygB,GAAkB,CAAEX,MAAOa,EAAiBzF,MAAO0F,EAASI,WAAUrd,SAAU,EAC1F,KAAA5D,KACdkf,GAAUmC,OACV,CACE3hB,KAAM,SACNijB,KAAM,WACN,eAAgBC,GAAgB/B,GAAW,QAAUA,EACrD,gBAAiBG,EACjB,aAAc6B,GAAShC,GACvB,gBAAiBI,EAAW,QAAK,EACjCA,WACAlf,WACGqf,EACHxiB,IAAK2iB,EACLuB,UAAWhJ,GAAqBna,EAAMmjB,WAAY5I,IAC9B,UAAdA,EAAMvb,KAAiBub,EAAM6I,gBAAgB,IAEnDC,QAASlJ,GAAqBna,EAAMqjB,SAAU9I,IAC5CyH,GAAYsB,KAAgBL,GAAgBK,KAAuBA,IAC/DxB,IACFD,EAAiC3hB,QAAUqa,EAAMgJ,uBAC5C1B,EAAiC3hB,SAASqa,EAAMiJ,kBACvD,MAIN1B,IAAiC,KAAAzhB,KAC/BojB,GACA,CACEC,QAAShC,EACTiC,SAAU9B,EAAiC3hB,QAC3CuB,OACAW,QACA8e,UACAG,WACAC,WACAE,OACAtE,MAAO,CAAE5G,UAAW,qBACpB8K,gBAAgB6B,GAAgB7B,IAA0BA,MAG5D,IAGR,GAASxc,YAAcib,GACvB,IAAI+D,GAAiB,oBACjBC,GAAoB,cACtB,CAAC7jB,EAAOqe,KACN,MAAM,gBAAE4C,EAAe,WAAE6C,KAAeC,GAAmB/jB,EACrDygB,EAAUO,GAAmB4C,GAAgB3C,GACnD,OAAuB,KAAA5gB,KAAI2a,GAAU,CAAEC,QAAS6I,GAAcb,GAAgBxC,EAAQjF,SAA4B,IAAlBiF,EAAQjF,MAAgBvX,UAA0B,KAAA5D,KAChJkf,GAAUvM,KACV,CACE,aAAckQ,GAASzC,EAAQjF,OAC/B,gBAAiBiF,EAAQa,SAAW,QAAK,KACtCyC,EACH9kB,IAAKof,EACLnB,MAAO,CAAE8G,cAAe,UAAWhkB,EAAMkd,UAEzC,IAGR2G,GAAkBjf,YAAcgf,GAChC,IAAIH,GAAezjB,IACjB,MAAM,QAAE0jB,EAAO,QAAExC,EAAO,QAAEyC,GAAU,EAAI,eAAEvC,KAAmB6C,GAAejkB,EACtEf,EAAM,SAAa,MACnBqkB,EEhHR,SAAqBlhB,GACnB,MAAMnD,EAAM,SAAa,CAAEmD,QAAO8hB,SAAU9hB,IAC5C,OAAO,WAAc,KACfnD,EAAIiB,QAAQkC,QAAUA,IACxBnD,EAAIiB,QAAQgkB,SAAWjlB,EAAIiB,QAAQkC,MACnCnD,EAAIiB,QAAQkC,MAAQA,GAEfnD,EAAIiB,QAAQgkB,WAClB,CAAC9hB,GACN,CFuGsB+hB,CAAYjD,GAC1BkD,EGhHR,SAAiBrG,GACf,MAAOha,EAAMsgB,GAAW,gBAAe,GA+BvC,OA9BA,IAAgB,KACd,GAAItG,EAAS,CACXsG,EAAQ,CAAEphB,MAAO8a,EAAQuG,YAAaphB,OAAQ6a,EAAQwG,eACtD,MAAMC,EAAiB,IAAIC,gBAAgBpc,IACzC,IAAKlH,MAAMS,QAAQyG,GACjB,OAEF,IAAKA,EAAQnH,OACX,OAEF,MAAMwjB,EAAQrc,EAAQ,GACtB,IAAIpF,EACAC,EACJ,GAAI,kBAAmBwhB,EAAO,CAC5B,MAAMC,EAAkBD,EAAqB,cACvCE,EAAazjB,MAAMS,QAAQ+iB,GAAmBA,EAAgB,GAAKA,EACzE1hB,EAAQ2hB,EAAuB,WAC/B1hB,EAAS0hB,EAAsB,SACjC,MACE3hB,EAAQ8a,EAAQuG,YAChBphB,EAAS6a,EAAQwG,aAEnBF,EAAQ,CAAEphB,QAAOC,UAAS,IAG5B,OADAshB,EAAeK,QAAQ9G,EAAS,CAAEtM,IAAK,eAChC,IAAM+S,EAAeM,UAAU/G,EACxC,CACEsG,OAAQ,EACV,GACC,CAACtG,IACGha,CACT,CH+EsBghB,CAAQrB,GAC5B,aAAgB,KACd,MAAMsB,EAAQ/lB,EAAIiB,QACZ+kB,EAAarI,OAAOsI,iBAAiBxmB,UAErCsjB,EADavjB,OAAOuf,yBAAyBiH,EAAY,WACjChc,IAC9B,GAAIqa,IAAgBpC,GAAWc,EAAY,CACzC,MAAMzH,EAAQ,IAAI4K,MAAM,QAAS,CAAExB,YACnCqB,EAAMI,cAAgBnC,GAAgB/B,GACtCc,EAAWpiB,KAAKolB,GAAO/B,GAAgB/B,IAAmBA,GAC1D8D,EAAMK,cAAc9K,EACtB,IACC,CAAC+I,EAAapC,EAASyC,IAC1B,MAAM2B,EAAoB,UAAarC,GAAgB/B,IAAmBA,GAC1E,OAAuB,KAAA7gB,KACrB,QACA,CACEN,KAAM,WACN,eAAe,EACfqhB,eAAgBA,GAAkBkE,EAAkBplB,WACjD+jB,EACHsB,UAAW,EACXtmB,MACAie,MAAO,IACFld,EAAMkd,SACNkH,EACHnS,SAAU,WACV+R,cAAe,OACfxT,QAAS,EACTD,OAAQ,IAGb,EAEH,SAAS0S,GAAgB/B,GACvB,MAAmB,kBAAZA,CACT,CACA,SAASgC,GAAShC,GAChB,OAAO+B,GAAgB/B,GAAW,gBAAkBA,EAAU,UAAY,WAC5E,CACA,IAAI,GAAO,GACPsE,GAAY3B,GItJhB,MAAM4B,GAAQ,EAAiB,QAAS,CACtC,CAAC,WAAY,CAAE3gB,OAAQ,iBAAkB9F,IAAK,qmBCF/BwB,EAAAA,YAAiB,SAAA8Y,EAA0Bra,GAAG,IAA1BoF,EAASiV,EAATjV,UAAcrE,EAAKyF,EAAA6T,EAAAC,IAAA,OACtD/Y,EAAAA,cAACklB,GAAsBtgB,EAAA,CACrBnG,IAAKA,EACLoF,UAAW8S,GACT,iTACA9S,IAEErE,GAEJQ,EAAAA,cAACklB,GAA2B,CAACrhB,UAAW8S,GAAG,kDACzC3W,EAAAA,cAACilB,GAAK,CAACphB,UAAU,aAEI,IAElBO,YAAc,WCfvB,IAAM+gB,GAAiB,CACrBC,MAAO,CACL,CAAExjB,MAAO,WAAY+M,MAAO,eAC5B,CAAE/M,MAAO,gBAAiB+M,MAAO,qBAEnC0W,KAAM,CACJ,CAAEzjB,MAAO,eAAgB+M,MAAO,+BAChC,CAAE/M,MAAO,kBAAmB+M,MAAO,sBACnC,CAAE/M,MAAO,OAAQ+M,MAAO,SAE1B2W,eAAgB,CACd,CAAE1jB,MAAO,eAAgB+M,MAAO,gBAChC,CAAE/M,MAAO,YAAa+M,MAAO,aAC7B,CAAE/M,MAAO,OAAQ+M,MAAO,QACxB,CAAE/M,MAAO,aAAc+M,MAAO,cAC9B,CAAE/M,MAAO,mBAAoB+M,MAAO,oBACpC,CAAE/M,MAAO,aAAc+M,MAAO,cAC9B,CAAE/M,MAAO,WAAY+M,MAAO,YAC5B,CAAE/M,MAAO,0BAA2B+M,MAAO,2BAC3C,CAAE/M,MAAO,6BAA8B+M,MAAO,mBAEhD4W,gBAAiB,CACf,CAAE3jB,MAAO,kBAAmB+M,MAAO,mBACnC,CAAE/M,MAAO,WAAY+M,MAAO,YAC5B,CAAE/M,MAAO,QAAS+M,MAAO,SACzB,CAAE/M,MAAO,uBAAwB+M,MAAO,wBACxC,CAAE/M,MAAO,mBAAoB+M,MAAO,qBAEtC6W,aAAc,CACZ,CAAE5jB,MAAO,UAAW+M,MAAO,WAC3B,CAAE/M,MAAO,UAAW+M,MAAO,WAC3B,CAAE/M,MAAO,kBAAmB+M,MAAO,mBACnC,CAAE/M,MAAO,QAAS+M,MAAO,WA0F7B,SAtFoB,SAAHmK,GAA4C,IAAtC2M,EAAM3M,EAAN2M,OAAQC,EAAO5M,EAAP4M,QAASC,EAAc7M,EAAd6M,eAOpCC,EAAAC,GANoCC,EAAAA,EAAAA,UAAS,CAC7CV,MAAO,GACPC,KAAM,GACNC,eAAgB,GAChBC,gBAAiB,GACjBC,aAAc,KACd,GANKO,EAAWH,EAAA,GAAEI,EAAcJ,EAAA,GAQlC,OAAKH,EAGHzlB,IAAAA,cAAA,OAAK6D,UAAU,0FACb7D,IAAAA,cAAA,OAAK6D,UAAU,4BACb7D,IAAAA,cAAA,OAAK6D,UAAU,8EACb7D,IAAAA,cAAA,MAAI6D,UAAU,uBAAsB,WACpC7D,IAAAA,cAAA,UACE6iB,QAAS6C,EACT7hB,UAAU,qCACV,aAAW,iBAEX7D,IAAAA,cAAA,QAAM6D,UAAU,WAAU,OAI9B7D,IAAAA,cAAA,OAAK6D,UAAU,gCACZ5F,OAAO4J,QAAQsd,IAAgBlhB,KAAI,SAAAgiB,GAAA,IAAAC,EAAAL,EAAAI,EAAA,GAAEE,EAAUD,EAAA,GAAEE,EAAOF,EAAA,UACvDlmB,IAAAA,cAAA,OAAKxB,IAAK2nB,EAAYtiB,UAAU,QAC9B7D,IAAAA,cAAA,MAAI6D,UAAU,oDACXsiB,EAAWE,OAAO,GAAGC,cAAgBH,EAAWplB,MAAM,IAEzDf,IAAAA,cAAA,OAAK6D,UAAU,aACZuiB,EAAQniB,KAAI,SAACsiB,GAAM,OAClBvmB,IAAAA,cAAA,SACExB,IAAK+nB,EAAO3kB,MACZiC,UAAU,oFAEV7D,IAAAA,cAAA,SACET,KAAK,WACLmhB,QAASqF,EAAYI,GAAYjhB,SAASqhB,EAAO3kB,OACjD8f,SAAU,SAACxiB,GACT,IAAMsnB,EAAYtnB,EAAEsd,OAAOkE,QAAO,GAAAnb,OC7E1D,SAA4B9E,GAC1B,OCJF,SAA4BA,GAC1B,GAAIE,MAAMS,QAAQX,GAAI,OAAO,EAAiBA,EAChD,CDES,CAAkBA,IEL3B,SAA0BA,GACxB,GAAI,oBAAsB3C,QAAU,MAAQ2C,EAAE3C,OAAOuD,WAAa,MAAQZ,EAAE,cAAe,OAAOE,MAAMO,KAAKT,EAC/G,CFGiC,CAAgBA,IAAM,EAA2BA,IGLlF,WACE,MAAM,IAAIoB,UAAU,uIACtB,CHGwF,EACxF,CD2E0D4kB,CAC1BV,EAAYI,IAAW,CAAEI,EAAO3kB,QACpCmkB,EAAYI,GAAY7Q,QAAO,SAAAoR,GAAC,OAAIA,IAAMH,EAAO3kB,KAAK,IAC1DokB,GAAe,SAAAW,GAAI,OAAAC,GAAAA,GAAA,GACdD,GAAI,GAAAE,EAAA,GACNV,EAAaK,GAAS,GAE3B,EACA3iB,UAAU,oCAEZ7D,IAAAA,cAAA,QAAM6D,UAAU,WAAW0iB,EAAO5X,OAC5B,KAGR,KAIV3O,IAAAA,cAAA,OAAK6D,UAAU,mBACb7D,IAAAA,cAAA,UACE6D,UAAU,sEACVgf,QAAS,WACPmD,EAAe,CACbZ,MAAO,GACPC,KAAM,GACNC,eAAgB,GAChBC,gBAAiB,GACjBC,aAAc,IAElB,GACD,SAGDxlB,IAAAA,cAAA,UACE6D,UAAU,uEACVgf,QAAS,WAAF,OAAQ8C,EAAeI,EAAY,GAC3C,YApEW,IA2EtB,EKxHA,IAAMe,GAAQ,CACVC,SAAU,KACVC,cAAe,KACfC,aAAc,MACdC,gBAAiB,MAGfC,GAAY,SAAHrO,GAA4B,IAEjB9E,EAFLrB,EAAOmG,EAAPnG,QAASyU,EAAMtO,EAANsO,OAYpBC,EAAe,SAAC1U,GAClB,MAAuB,WAAnBrQ,EAAOqQ,IAAoC,OAAZA,EAC3BA,EAAQqB,KAAarB,EAAQqB,KAC7BrB,EAAQ/Q,MAAc+Q,EAAQ/Q,MAC3B3D,OAAOkiB,OAAOxN,GAAS3L,KAAK,MAEhC2L,CACX,EAGA,IAAKA,GAAuB,SAAZA,GAAkC,KAAZA,EAClC,OAAO3S,IAAAA,cAAA,MAAI6D,UAAU,aAAY,KAIrC,GAAe,oBAAXujB,GAA2C,yBAAXA,EAAmC,CACnE,IAAME,GA1BYtT,EA0BoBrB,GAtB/BqB,EAAKjQ,QADM,uBACa,SAACwjB,EAAOvT,EAAMwT,GACzC,MAAO,YAAPjiB,OAAmBiiB,EAAG,sFAAAjiB,OAAqFyO,EAAI,OACnH,IALkB,IA0BlB,OACIhU,IAAAA,cAAA,MACI6D,UAAU,YACV4jB,wBAAyB,CAAEC,OAAQJ,IAG/C,CAGA,GAAe,UAAXF,EAAoB,CACpB,IAAMO,EAAehV,EAAQqB,MAAQrB,EAC/BiV,EAAYjV,EAAQpT,MAAQ,WAC5BgoB,EAAQI,EAAaJ,MAAM,sBACjC,GAAIA,EAAO,CACP,IAAAM,EAAAhC,EAAwB0B,EAAK,GAAnBO,GAAFD,EAAA,GAAOA,EAAA,IAAEL,EAAGK,EAAA,GACpB,OACI7nB,IAAAA,cAAA,MAAI6D,UAAU,aACV7D,IAAAA,cAAA,QAAM6D,UAAU,QAAQijB,GAAMc,IAC9B5nB,IAAAA,cAAA,KAAG+nB,KAAMP,EAAK3jB,UAAU,gCAAgC2Y,OAAO,SAASwL,IAAI,uBACvEF,GAIjB,CACJ,CAGA,GAAe,SAAXV,EAAmB,CACnB,IAAMa,EAActV,EAAQqB,MAAQrB,EAC9BuV,EAAWvV,EAAQpT,MAAQ,kBAC3BgoB,EAAQU,aAAW,EAAXA,EAAaV,MAAM,sBACjC,GAAIA,EAAO,CACP,IAAAY,EAAAtC,EAAqB0B,EAAK,GAAZC,GAANW,EAAA,GAAIA,EAAA,GAAKA,EAAA,IACjB,OACInoB,IAAAA,cAAA,MAAI6D,UAAU,aACV7D,IAAAA,cAAA,KAAG+nB,KAAMP,EAAK3jB,UAAU,oCAAoC2Y,OAAO,SAASwL,IAAI,uBAC3ElB,GAAMoB,IAIvB,CACA,OAAOloB,IAAAA,cAAA,MAAI6D,UAAU,aAAY,IACrC,CAGA,GAAe,yBAAXujB,EACA,OAAOpnB,IAAAA,cAAA,MAAI6D,UAAU,aAAyB,KAAZ8O,EAAiB,IAAMA,GAc7D,GAVuB,CACnB,kBACA,uBACA,kBACA,eACA,YACA,mBACA,mBAGezN,SAASkiB,GAAS,CACjC,IAAMxlB,EAAQylB,EAAa1U,GAC3B,OAAO3S,IAAAA,cAAA,MAAI6D,UAAU,aAAajC,GAAS,IAC/C,CAGA,OAAO5B,IAAAA,cAAA,MAAI6D,UAAU,aAAawjB,EAAa1U,GACnD,EAiHA,SA/GwB,SAAHsT,GAA0B,IAApBmC,EAAInC,EAAJmC,KAAMpX,EAAOiV,EAAPjV,QACoC4U,EAAAC,GAAfC,EAAAA,EAAAA,WAAS,GAAM,GAA1DuC,EAAiBzC,EAAA,GAAE0C,EAAoB1C,EAAA,GACQ2C,EAAA1C,GAAdC,EAAAA,EAAAA,UAASsC,GAAK,GAA/CI,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GA2DpC,OACIvoB,IAAAA,cAAA,OAAK6D,UAAU,UACX7D,IAAAA,cAAA,OAAK6D,UAAU,yBACX7D,IAAAA,cAAA,UACI6iB,QAAS,WAAF,OAAQyF,GAAsBD,EAAkB,EACvDxkB,UAAU,wGAEV,cAAY,iBAEZ7D,IAAAA,cAACqE,EAAM,CAACR,UAAU,YAClB7D,IAAAA,cAAA,QAAM6D,UAAU,oBAAmB,YAI3C7D,IAAAA,cAAA,OAAK6D,UAAS,+BAAA0B,OAAiC8iB,EAAoB,oBAAsB,KACrFroB,IAAAA,cAAA,SAAO6D,UAAU,cACb7D,IAAAA,cAAA,aACIA,IAAAA,cAAA,UACKgR,EAAQ/M,KAAI,SAAAmjB,GAAM,OACfpnB,IAAAA,cAAA,MAAIxB,IAAK4oB,EAAQvjB,UAAU,+CACtBujB,EACA,MAIjBpnB,IAAAA,cAAA,cACMwoB,GAAgBJ,GAAMnkB,KAAI,SAACwO,EAAK3I,GAAK,OACnC9J,IAAAA,cAAA,MAAIxB,IAAKsL,EAAOjG,UAAWiG,EAAQ,GAAM,EAAI,WAAa,cACrDkH,EAAQ/M,KAAI,SAAAmjB,GAAM,OACfpnB,IAAAA,cAACmnB,GAAS,CACN3oB,IAAK4oB,EACLzU,QAASF,EAAI2U,GACbA,OAAQA,EAAOd,eACjB,IAEL,OAMrBtmB,IAAAA,cAAC0oB,GAAW,CACRjD,OAAQ4C,EACR3C,QAAS,WAAF,OAAQ4C,GAAqB,EAAM,EAC1C3C,eAjGe,SAACgD,GACxB,IAAMC,EAAWR,EAAK9S,QAAO,SAAAuT,GAAQ,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAEjC,IAAiB,QAAbJ,EAAAH,EAAQvD,aAAK,IAAA0D,OAAA,EAAbA,EAAepoB,QAAS,EAAG,KAAAyoB,EACrBvB,EAAsB,QAAbuB,EAAGN,EAAKO,aAAK,IAAAD,OAAA,EAAVA,EAAY5pB,KAC9B,IAAKopB,EAAQvD,MAAMlgB,SAAS0iB,GAAY,OAAO,CACnD,CAGA,IAAgB,QAAZmB,EAAAJ,EAAQtD,YAAI,IAAA0D,OAAA,EAAZA,EAAcroB,QAAS,EAAG,KAAA2oB,EACpBnB,EAAoB,QAAZmB,EAAGR,EAAKS,YAAI,IAAAD,OAAA,EAATA,EAAW9pB,KAC5B,IAAKopB,EAAQtD,KAAKngB,SAASgjB,GAAW,OAAO,CACjD,CAGA,IAA0B,QAAtBc,EAAAL,EAAQrD,sBAAc,IAAA0D,OAAA,EAAtBA,EAAwBtoB,QAAS,EAAG,CACpC,IAAM6oB,EAAgB/kB,OAAOqkB,EAAK,oBAAsB,IAAI7kB,cAS5D,IAR4B2kB,EAAQrD,eAAekE,MAAK,SAAAC,GACpD,MAAiB,iBAAbA,EAEO,QAAQtoB,KAAKooB,GAGjBA,EAAcrkB,SAASukB,EAASzlB,cAC3C,IAC0B,OAAO,CACrC,CAGA,IAA2B,QAAvBilB,EAAAN,EAAQpD,uBAAe,IAAA0D,OAAA,EAAvBA,EAAyBvoB,QAAS,EAAG,CACrC,IAAMgpB,EAAYllB,OAAOqkB,EAAK,oBAAsB,IAAI7kB,cAIxD,IAH6B2kB,EAAQpD,gBAAgBiE,MAAK,SAAAG,GAAG,OACzDD,EAAUxkB,SAASykB,EAAI3lB,cAAc,IAEd,OAAO,CACtC,CAGA,IAAwB,QAApBklB,EAAAP,EAAQnD,oBAAY,IAAA0D,OAAA,EAApBA,EAAsBxoB,QAAS,EAAG,CAClC,IAAM8kB,EAAehhB,OAAOqkB,EAAKe,cAAgB,IAAI5lB,cAIrD,IAHgC2kB,EAAQnD,aAAagE,MAAK,SAAAK,GAAI,OAC1DrE,EAAatgB,SAAS2kB,EAAK7lB,cAAc,IAEf,OAAO,CACzC,CAEA,OAAO,CACX,IAEAykB,EAAgBG,GAChBN,GAAqB,EACzB,IAkDJ,ECnNA,SAASwB,KACL,IAAsClE,EAAAC,GAAdC,EAAAA,EAAAA,UAAS,MAAK,GAA/BsC,EAAIxC,EAAA,GAAEmE,EAAOnE,EAAA,GACoB2C,EAAA1C,GAAdC,EAAAA,EAAAA,UAAS,MAAK,GAAjCkE,EAAKzB,EAAA,GAAE0B,EAAQ1B,EAAA,GAC0B2B,EAAArE,GAAdC,EAAAA,EAAAA,WAAS,GAAK,GAAzCqE,EAASD,EAAA,GAAEE,EAAYF,EAAA,GAiE9B,OA/DAG,EAAAA,EAAAA,YAAU,WACN,IACI,QAAsC,IAA3BjO,OAAOkO,gBAAiC,CAC/C,IAAMC,EAAgBnO,OAAOkO,gBAAgBrmB,KAAI,SAAA4kB,GAC7C,IAAM2B,EAAoB,SAAC5oB,GACvB,MAAc,KAAVA,SAAgBA,GAAmD,SAAVA,GAA8B,MAAVA,EACtE,IAEJA,CACX,EAIA,OAFA6oB,QAAQC,IAAI,gCAAiC7B,EAAKrD,cAE3C,CACHmF,MAAO9B,EAAK+B,MACZxB,MAAO,CACHpV,KAAM6U,EAAKzD,MAAMpR,KACjBzU,KAAMspB,EAAKzD,MAAM7lB,MAErB+pB,KAAM,CACFtV,KAAM6U,EAAKxD,KAAKrR,KAChBzU,KAAMspB,EAAKxD,KAAK9lB,MAEpB,kBAAmBoB,MAAMS,QAAQynB,EAAKgC,iBAChChC,EAAKgC,gBAAgB7jB,KAAK,MAC1BwjB,EAAkB3B,EAAKgC,iBAC7B,uBAAwBL,EAAkB3B,EAAKiC,sBAC/C,kBAAmBN,EAAkB3B,EAAKkC,iBAC1CnB,aAAe,WACX,IAAMC,EAAOhB,EAAKrD,aAClB,IAAKqE,EAAM,MAAO,IAElB,IAAMmB,EAAYnB,EAAKtC,MAAM,sBAC7B,OAAIyD,EACO,CACHhX,KAAMgX,EAAU,GAChBxD,IAAKwD,EAAU,GACfzrB,KAAM,QAIPsqB,CACX,CAde,GAef,YAAaW,EAAkB3B,EAAKoC,WACpC,mBAAoBT,EAAkB3B,EAAKqC,kBAC3C,kBAAmBV,EAAkB3B,EAAKsC,iBAElD,IAEApB,EAAQQ,EACZ,MACIN,EAAS,qBAEjB,CAAE,MAAOmB,GACLX,QAAQT,MAAM,wBAAyBoB,GACvCnB,EAASmB,EAAIC,QACjB,CAAE,QACEjB,GAAa,EACjB,CACJ,GAAG,IAEHK,QAAQC,IAAI,mBAAoB,CAAEP,UAAAA,EAAWH,MAAAA,EAAOsB,UAAWlD,IAE3D+B,EAAkBnqB,IAAAA,cAAA,OAAK6D,UAAU,OAAM,cACvCmmB,EAAchqB,IAAAA,cAAA,OAAK6D,UAAU,oBAAmB,UAAQmmB,GACvD5B,SAAAA,EAAM1nB,OAGPV,IAAAA,cAAA,OAAK6D,UAAU,UACX7D,IAAAA,cAAA,MAAI6D,UAAU,yCAAwC,oBACtD7D,IAAAA,cAAA,OAAK6D,UAAU,0BACX7D,IAAAA,cAACurB,GAAe,CACZnD,KAAMA,EACNpX,QAAS,CACL,QACA,QACA,OACA,kBACA,uBACA,kBACA,eACA,YACA,mBACA,uBAlBMhR,IAAAA,cAAA,OAAK6D,UAAU,OAAM,oBAwBnD,QAII0W,SAASiR,eAAe,2BACxBf,QAAQC,IAAI,sCACCzqB,SAASvC,WAAW6c,SAASiR,eAAe,0BACpDC,OAAOzrB,IAAAA,cAAC8pB,GAAe","sources":["webpack://single-cell-transformers/./node_modules/react-dom/client.js","webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/transformer-llms.jsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","module.exports = ReactDOM;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Training Code Available 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","import React, { useState, useEffect } from 'react';\nimport FilterableTable from '../components/FilterableTable';\nimport { mountReactComponent } from '../utils/mount';\nimport FilterButton from '../components/FilterButton';\nimport FilterPanel from '../components/FilterPanel';\n\n\nfunction TransformerLLMs() {\n const [data, setData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n \n useEffect(() => {\n try {\n if (typeof window.transformerLLMs !== 'undefined') {\n const processedData = window.transformerLLMs.map(item => {\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None' || value === '-') {\n return '-';\n }\n return value;\n };\n\n console.log('Processing item architecture:', item.architecture);\n\n return {\n Model: item.model,\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Pre-Training Dataset': processEmptyValue(item.pre_training_dataset),\n 'Input Embedding': processEmptyValue(item.input_embedding),\n Architecture: (() => {\n const arch = item.architecture;\n if (!arch) return '-';\n \n const linkMatch = arch.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (linkMatch) {\n return {\n text: linkMatch[1],\n url: linkMatch[2],\n type: 'link'\n };\n }\n \n return arch;\n })(),\n 'SSL Tasks': processEmptyValue(item.ssl_tasks),\n 'Supervised Tasks': processEmptyValue(item.supervised_tasks),\n 'Zero-Shot Tasks': processEmptyValue(item.zero_shot_tasks)\n };\n });\n \n setData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n console.log('Rendering state:', { isLoading, error, hasData: !!data });\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Transformer LLMs

\n
\n \n
\n
\n );\n}\n\nexport default TransformerLLMs;\n\nif (document.getElementById('transformer-llms-root')) {\n console.log('Mounting TransformerLLMs component');\n const root = ReactDOM.createRoot(document.getElementById('transformer-llms-root'));\n root.render();\n}\n"],"names":["m","createRoot","hydrateRoot","f","k","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","ReactDOM","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","_slicedToArray","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","_defineProperty","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","TransformerLLMs","setData","error","setError","_useState6","isLoading","setIsLoading","useEffect","transformerLLMs","processedData","processEmptyValue","console","log","Model","model","omic_modalities","pre_training_dataset","input_embedding","linkMatch","ssl_tasks","supervised_tasks","zero_shot_tasks","err","message","hasData","FilterableTable","getElementById","render"],"sourceRoot":""} \ No newline at end of file diff --git a/_site/feed.xml b/_site/feed.xml index ca66045..d5d7dc1 100644 --- a/_site/feed.xml +++ b/_site/feed.xml @@ -1 +1 @@ -Jekyll2024-12-18T09:50:36+01:00http://localhost:4000/single-cell-transformer-papers/feed.xmlTransformers in Single-Cell OmicsA curated collection of papers on transformers in single-cell analysis \ No newline at end of file +Jekyll2024-12-18T20:50:24+01:00http://localhost:4000/single-cell-transformer-papers/feed.xmlTransformers in Single-Cell OmicsA curated collection of papers on transformers in single-cell analysis \ No newline at end of file diff --git a/_site/implementations.html b/_site/implementations.html index bb5d8df..8c37983 100644 --- a/_site/implementations.html +++ b/_site/implementations.html @@ -976,7 +976,7 @@

NVIDIA BioNeMo Framewo diff --git a/_site/index.html b/_site/index.html index 2a21051..790a8d6 100644 --- a/_site/index.html +++ b/_site/index.html @@ -766,11 +766,11 @@

Legend

📄 - Peer-Reviewed Publication + Peer-reviewed publication
🛠️ - Fully reproducible + Training code available
🔍 @@ -1006,7 +1006,7 @@

Citing this work window.singleCellTransformers = [{"model":"Precious3GPT","paper":{"type":"preprint","text":"[Galkin et al. 2024](https://doi.org/10.1101/2024.07.25.605062)","url":"https://doi.org/10.1101/2024.07.25.605062"},"code":{"type":"evaluation_only","text":"[🔍️🤗](https://huggingface.co/insilicomedicine/precious3-gpt-multi-modal)","url":"https://huggingface.co/insilicomedicine/precious3-gpt-multi-modal"},"omic_modalities":"Bulk/scRNA-seq, DNAm, proteomics, natural language annotations","pre_training_dataset":"Omics data with KG and text embeddings, Closed source","input_embedding":"?","architecture":"Decoder-only LLaMA-like transformer model with modality mapper units","ssl_tasks":"Emulation of chemical response, cross-species/tissue/omics transference, emulation of clinical conditions","supervised_tasks":"Age prediction, gene classification"},{"model":"LangCell","paper":{"type":"peer_reviewed","text":"[Zhao et al. 2024](https://arxiv.org/abs/2405.06708)","url":"https://arxiv.org/abs/2405.06708"},"code":{"type":"reproducible","text":"[🛠️Github](https://github.com/PharMolix/LangCell)","url":"https://github.com/PharMolix/LangCell"},"omic_modalities":"scRNA-seq, natural language","pre_training_dataset":"27M / cross-tissue, human ([CELLxGENE](https://cellxgene.cziscience.com/))","input_embedding":"Ordering: rank-based, natural language cell description","architecture":"Other: two encoders (cell and text)","ssl_tasks":"MLM with CE loss, intra- and inter-modal contrastive loss, cell-text matching with CE loss","supervised_tasks":"Cell type annotation, pathway identification"},{"model":"ScRAT","paper":{"type":"peer_reviewed","text":"[Mao et al. 2024](https://academic.oup.com/bioinformatics/article/40/2/btae067/7613064)","url":"https://academic.oup.com/bioinformatics/article/40/2/btae067/7613064"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/yuzhenmao/ScRAT)","url":"https://github.com/yuzhenmao/ScRAT"},"omic_modalities":"scRNA-seq","pre_training_dataset":"-","input_embedding":"Cells as tokens","architecture":"Encoder","ssl_tasks":"-","supervised_tasks":"Phenotype prediction: aggregated per sample cell embeddings are used to predict sample label (e.g., health condition)"},{"model":"scPRINT","paper":{"type":"preprint","text":"[Kalfon et al. 2024](https://www.biorxiv.org/content/10.1101/2024.07.29.605556v1)","url":"https://www.biorxiv.org/content/10.1101/2024.07.29.605556v1"},"code":{"type":"reproducible","text":"[🛠️Github](https://github.com/cantinilab/scPRINT)","url":"https://github.com/cantinilab/scPRINT"},"omic_modalities":"scRNA-seq","pre_training_dataset":"50M / cross-tissue, cross-species ([CELLxGENE](https://cellxgene.cziscience.com/))","input_embedding":"Other: [ESM-2](https://www.science.org/doi/10.1126/science.ade2574) based gene embeddings. Gene embeddings are randomly sampled and order determined by position on chromosomes","architecture":"Encoder","ssl_tasks":"Multi task Pre-training: Denoising, Botleneck learning (+ many additional losses available)","supervised_tasks":"Cell label prediction (these supervised tasks are part of the pre-training)"},{"model":"scMulan","paper":{"type":"peer_reviewed","text":"[Bian et al. 2024](https://link.springer.com/chapter/10.1007/978-1-0716-3989-4_57)","url":"https://link.springer.com/chapter/10.1007/978-1-0716-3989-4_57"},"code":{"type":"evaluation_only","text":"[🔍Github](https://github.com/SuperBianC/scMulan/tree/main)","url":"https://github.com/SuperBianC/scMulan/tree/main"},"omic_modalities":"scRNA-seq","pre_training_dataset":"10M / cross-tissue, human ([hECA](https://www.sciencedirect.com/science/article/pii/S2589004222005892))","input_embedding":"Not specified","architecture":"Decoder","ssl_tasks":"Conditional cell generation","supervised_tasks":"cell type annotation, cell metadata annotation (both also used in training)"},{"model":"BioFormers","paper":{"type":"preprint","text":"[Belgadi and Li et al. 2023](https://www.biorxiv.org/content/10.1101/2023.11.29.569320v1.full.pdf)","url":"https://www.biorxiv.org/content/10.1101/2023.11.29.569320v1.full.pdf"},"code":{"type":"none","text":"None","url":""},"omic_modalities":"scRNA-seq","pre_training_dataset":"8K / single tissue, human ([PBMC](https://docs.scvi-tools.org/en/stable/api/reference/scvi.data.pbmc_dataset.html), [Adamson et al. 2016](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE90546))","input_embedding":"Value categorization: value binning","architecture":"Encoder","ssl_tasks":"MLM with CE loss","supervised_tasks":"-"},{"model":"Geneformer","paper":{"type":"peer_reviewed","text":"[Theodoris et al. 2023](https://www.nature.com/articles/s41586-023-06139-9)","url":"https://www.nature.com/articles/s41586-023-06139-9"},"code":{"type":"reproducible","text":"[🛠🤗](https://huggingface.co/ctheodoris/Geneformer)","url":"https://huggingface.co/ctheodoris/Geneformer"},"omic_modalities":"scRNA-seq","pre_training_dataset":"36M / cross-tissue, human ([Genecorpus](https://huggingface.co/datasets/ctheodoris/Genecorpus-30M))","input_embedding":"Ordering: rank-based","architecture":"Encoder","ssl_tasks":"MLM with CE loss, gene ID prediction","supervised_tasks":"Gene function prediction, cell annotation"},{"model":"Universal Cell Embedding","paper":{"type":"preprint","text":"[Rosen et al. 2023](https://www.biorxiv.org/content/10.1101/2023.11.28.568918v1.full.pdf)","url":"https://www.biorxiv.org/content/10.1101/2023.11.28.568918v1.full.pdf"},"code":{"type":"evaluation_only","text":"[🔍Github](https://github.com/snap-stanford/uce)","url":"https://github.com/snap-stanford/uce"},"omic_modalities":"scRNA-seq","pre_training_dataset":"36M / cross-tissue, cross-species ([CELLxGENE](https://cellxgene.cziscience.com/) and [other](https://www.biorxiv.org/content/biorxiv/early/2023/11/29/2023.11.28.568918/DC3/embed/media-3.xlsx?download=true))","input_embedding":"Other: [ESM-2](https://www.science.org/doi/10.1126/science.ade2574) based gene embeddings. Gene embeddings are sampled according to expression levels and order determined by position on chromosomes.","architecture":"Encoder","ssl_tasks":"Modified MLM, binary CE loss predicting whether a gene is expressed or not. Uses CLS embedding instead of token-embeddings.","supervised_tasks":"Cell annotation"},{"model":"scGPT","paper":{"type":"peer_reviewed","text":"[Cui et al. 2024](https://www.nature.com/articles/s41592-024-02201-0)","url":"https://www.nature.com/articles/s41592-024-02201-0"},"code":{"type":"evaluation_only","text":"[🔍GitHub](https://github.com/bowang-lab/scGPT)","url":"https://github.com/bowang-lab/scGPT"},"omic_modalities":"scRNA-seq, scATAC-seq, CITE-seq, Spatial transcriptomics","pre_training_dataset":"33M / cross-tissue, human, non-disease ([CELLxGENE](https://cellxgene.cziscience.com/))","input_embedding":"Value categorization: value binning","architecture":"Other: attention masking in encoder","ssl_tasks":"Iterative MLM variant with MSE loss, cell token expression prediction, gene expression prediction","supervised_tasks":"Cell type annotation, genetic perturbation effect prediction, reverse perturbation prediction, cell clustering, multimodal embedding, gene function prediction"},{"model":"TOSICA","paper":{"type":"peer_reviewed","text":"[Chen et al. 2023](https://www.nature.com/articles/s41467-023-35923-4)","url":"https://www.nature.com/articles/s41467-023-35923-4"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/JackieHanLab/TOSICA)","url":"https://github.com/JackieHanLab/TOSICA"},"omic_modalities":"scRNA-seq","pre_training_dataset":"-","input_embedding":"Value projection","architecture":"Encoder","ssl_tasks":"-","supervised_tasks":"Cell type annotation"},{"model":"scMoFormer","paper":{"type":"peer_reviewed","text":"[Tang et al. 2023](https://dl.acm.org/doi/10.1145/3583780.3615061)","url":"https://dl.acm.org/doi/10.1145/3583780.3615061"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/OmicsML/scMoFormer)","url":"https://github.com/OmicsML/scMoFormer"},"omic_modalities":"scRNA-seq, scATAC-seq, CITE-seq","pre_training_dataset":"-","input_embedding":"Other, SVD-based","architecture":"Encoder and graph transformers","ssl_tasks":"-","supervised_tasks":"Cross-modality prediction"},{"model":"tGPT","paper":{"type":"peer_reviewed","text":"[Shen et al. 2023](https://www.cell.com/iscience/pdf/S2589-0042(23)","url":"https://www.cell.com/iscience/pdf/S2589-0042(23"},"code":{"type":"reproducible","text":"[🛠GitHub️](https://github.com/deeplearningplus/tGPT)","url":"https://github.com/deeplearningplus/tGPT"},"omic_modalities":"scRNA-seq","pre_training_dataset":"22M / cross-tissue, cross-species, disease and non-disease, organoids ([list](https://www.cell.com/cms/10.1016/j.isci.2023.106536/attachment/1e95114b-5ea0-4596-afd8-0cb04bae0f6d/mmc2))","input_embedding":"Ordering","architecture":"Decoder","ssl_tasks":"NTP with CE loss, gene ID prediction","supervised_tasks":"-"},{"model":"SpaFormer","paper":{"type":"preprint","text":"[Wen et al. 2023](https://arxiv.org/abs/2302.03038)","url":"https://arxiv.org/abs/2302.03038"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/wehos/CellT)","url":"https://github.com/wehos/CellT"},"omic_modalities":"Spatial transcriptomics","pre_training_dataset":"-","input_embedding":"Cells as tokens, value projection","architecture":"Encoder","ssl_tasks":"Modified MLM with MSE loss, gene expression prediction","supervised_tasks":"Gene expression imputation"},{"model":"scFoundation","paper":{"type":"peer_reviewed","text":"[Hao et al. 2024](https://www.nature.com/articles/s41592-024-02305-7)","url":"https://www.nature.com/articles/s41592-024-02305-7"},"code":{"type":"evaluation_only","text":"[🔍GitHub](https://github.com/biomap-research/scFoundation)","url":"https://github.com/biomap-research/scFoundation"},"omic_modalities":"scRNA-seq","pre_training_dataset":"50M / cross-tissue, human, disease and non-disease ([GEO](https://www.ncbi.nlm.nih.gov/geo/), [Single Cell Portal](https://singlecell.broadinstitute.org/single_cell), [HCA](https://data.humancellatlas.org/), [EMBL-EBI](https://www.ebi.ac.uk/))","input_embedding":"Value projection","architecture":"Other: two encoders","ssl_tasks":"Modified MLM with MSE loss, gene expression prediction","supervised_tasks":"Drug response prediction, genetic perturbation effect prediction"},{"model":"CellLM","paper":{"type":"preprint","text":"[Zhao et al. 2023](https://arxiv.org/abs/2306.04371)","url":"https://arxiv.org/abs/2306.04371"},"code":{"type":"evaluation_only","text":"[🔍GitHub](https://github.com/PharMolix/OpenBioMed)","url":"https://github.com/PharMolix/OpenBioMed"},"omic_modalities":"scRNA-seq","pre_training_dataset":"1.8M / cross-tissue, human, disease and non-disease ([PanglaoDB](https://panglaodb.se/), [CancerSCEM](https://ngdc.cncb.ac.cn/cancerscem/))","input_embedding":"Value categorization","architecture":"Encoder","ssl_tasks":"Contrastive loss, MLM with CE loss","supervised_tasks":"Non-disease vs cancer prediction, cell type annotation, drug response prediction"},{"model":"scCLIP","paper":{"type":"preprint","text":"[Xiong et al. 2023](https://openreview.net/forum?id=KMtM5ZHxct&referrer=%5Bthe%20profile%20of%20Tianlong%20Chen%5D(%2Fprofile%3Fid%3D~Tianlong_Chen1)","url":"https://openreview.net/forum?id=KMtM5ZHxct&referrer=%5Bthe%20profile%20of%20Tianlong%20Chen%5D(%2Fprofile%3Fid%3D~Tianlong_Chen1"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://anonymous.4open.science/r/scCLIP-61F6/README.md)","url":"https://anonymous.4open.science/r/scCLIP-61F6/README.md"},"omic_modalities":"scRNA-seq, scATAC-seq","pre_training_dataset":"377k / cross-tissue, human fetal ([ATAC](https://www.science.org/doi/10.1126/science.aba7612), [RNA](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7780123/))","input_embedding":"Value projection","architecture":"Encoder","ssl_tasks":"Contrastive loss, CE matching modalities","supervised_tasks":"-"},{"model":"GeneCompass","paper":{"type":"preprint","text":"[Yang et al. 2023](https://www.biorxiv.org/content/10.1101/2023.09.26.559542v1)","url":"https://www.biorxiv.org/content/10.1101/2023.09.26.559542v1"},"code":{"type":"reproducible","text":"[🛠 GitHub](https://github.com/xCompass-AI/GeneCompass)","url":"https://github.com/xCompass-AI/GeneCompass"},"omic_modalities":"scRNA-seq","pre_training_dataset":"126M / cross-tissue, human and mouse, disease and non-disease ([GEO](https://www.ncbi.nlm.nih.gov/geo/), [SRA](https://www.ncbi.nlm.nih.gov/sra), [CELLxGENE](https://cellxgene.cziscience.com/), [GSA](https://ngdc.cncb.ac.cn/gsa/), [Single Cell Portal](https://singlecell.broadinstitute.org/single_cell), [HCA](https://data.humancellatlas.org/), [EMBL-EBI](https://www.ebi.ac.uk/), [3CA](https://www.weizmann.ac.il/sites/3CA/), [Cell BLAST](https://cblast.gao-lab.org/), [TEDD](https://TEDD.obg.cuhk.edu.hk/), and [other](https://www.biorxiv.org/content/10.1101/2023.09.26.559542v1.full))","input_embedding":"?","architecture":"Other: two encoders","ssl_tasks":"MLM with CE and MSE loss, gene ID and expression prediction","supervised_tasks":"Cell type annotation, drug response prediction, gene function prediction"},{"model":"CellPLM","paper":{"type":"peer_reviewed","text":"[Wen et al. 2024](https://openreview.net/forum?id=BKXvPDekud)","url":"https://openreview.net/forum?id=BKXvPDekud"},"code":{"type":"evaluation_only","text":"[🔍GitHub](https://github.com/OmicsML/CellPLM)","url":"https://github.com/OmicsML/CellPLM"},"omic_modalities":"scRNA-seq, Spatial transcriptomics","pre_training_dataset":"11M / cross-tissue, human, disease and non-disease ([HTCA](https://humantumoratlas.org/), [HCA](https://data.humancellatlas.org/), [GEO](https://www.ncbi.nlm.nih.gov/geo/))","input_embedding":"Cells as tokens, value projection","architecture":"Encoder","ssl_tasks":"Modified MLM with MSE loss and KL losses, gene expression prediction","supervised_tasks":"Gene expression imputation, cell type annotation, genetic perturbation effect prediction"},{"model":"scMAE","paper":{"type":"preprint","text":"[Kim et al. 2023](https://openreview.net/pdf?id=2mq6uezuGj)","url":"https://openreview.net/pdf?id=2mq6uezuGj"},"code":{"type":"none","text":"None","url":""},"omic_modalities":"single-cell flow cytometry","pre_training_dataset":"6.5M / human, disease and non-disease (source?)","input_embedding":"Other, concatenation of values with learnable protein embeddings","architecture":"Other: two encoders","ssl_tasks":"MLM with MSE loss, protein expression prediction","supervised_tasks":"Cell type annotation, protein expression imputation"},{"model":"CAN/CGRAN","paper":{"type":"peer_reviewed","text":"[Wang et al. 2023](https://ebooks.iospress.nl/volumearticle/64489)","url":"https://ebooks.iospress.nl/volumearticle/64489"},"code":{"type":"none","text":"None","url":""},"omic_modalities":"scRNA-seq","pre_training_dataset":"-","input_embedding":"Value projection","architecture":"Encoder","ssl_tasks":"-","supervised_tasks":"Cell type annotation"},{"model":"scTranslator","paper":{"type":"preprint","text":"[Liu et al. 2023](https://www.biorxiv.org/content/10.1101/2023.07.04.547619v2.full)","url":"https://www.biorxiv.org/content/10.1101/2023.07.04.547619v2.full"},"code":{"type":"evaluation_only","text":"[🔍️GitHub](https://github.com/TencentAILabHealthcare/sctranslator)","url":"https://github.com/TencentAILabHealthcare/sctranslator"},"omic_modalities":"scRNA-seq, CITE-seq","pre_training_dataset":"-","input_embedding":"Value projection","architecture":"Other: two encoders","ssl_tasks":"-","supervised_tasks":"Cross-modality prediction"},{"model":"scTransSort","paper":{"type":"peer_reviewed","text":"[Jiao et al. 2023](https://www.mdpi.com/2218-273X/13/4/611)","url":"https://www.mdpi.com/2218-273X/13/4/611"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/jiaojiao-123/scTransSort)","url":"https://github.com/jiaojiao-123/scTransSort"},"omic_modalities":"scRNA-seq","pre_training_dataset":"-","input_embedding":"Value projection","architecture":"Encoder","ssl_tasks":"-","supervised_tasks":"Cell type annotation"},{"model":"STGRNS","paper":{"type":"peer_reviewed","text":"[Xu et al. 2023](https://academic.oup.com/bioinformatics/article/39/4/btad165/7099621)","url":"https://academic.oup.com/bioinformatics/article/39/4/btad165/7099621"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/zhanglab-wbgcas/STGRNS)","url":"https://github.com/zhanglab-wbgcas/STGRNS"},"omic_modalities":"scRNA-seq","pre_training_dataset":"-","input_embedding":"Other","architecture":"Encoder","ssl_tasks":"-","supervised_tasks":"GRN inference"},{"model":"CIForm","paper":{"type":"peer_reviewed","text":"[Xu et al. 2023](https://academic.oup.com/bib/article-abstract/24/4/bbad195/7169137?redirectedFrom=fulltext)","url":"https://academic.oup.com/bib/article-abstract/24/4/bbad195/7169137?redirectedFrom=fulltext"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/zhanglab-wbgcas/CIForm)","url":"https://github.com/zhanglab-wbgcas/CIForm"},"omic_modalities":"scRNA-seq","pre_training_dataset":"-","input_embedding":"Value projection","architecture":"Encoder","ssl_tasks":"-","supervised_tasks":"Cell type annotation"},{"model":"scFormer","paper":{"type":"preprint","text":"[Cui et al. 2023](https://openreview.net/forum?id=7hdmA0qtr5)","url":"https://openreview.net/forum?id=7hdmA0qtr5"},"code":{"type":"partial","text":"[️GitHub](https://github.com/bowang-lab/scFormer)","url":"https://github.com/bowang-lab/scFormer"},"omic_modalities":"scRNA-seq","pre_training_dataset":"Task specific","input_embedding":"Value categorization: value binning","architecture":"Encoder","ssl_tasks":"Modified MLM with CE, cell token expression prediction, contrastive loss with cosine similarity, gene expression prediction","supervised_tasks":"Cell type annotation, genetic perturbation effect prediction"},{"model":"Exceiver","paper":{"type":"preprint","text":"[Connell et al. 2022](https://openreview.net/forum?id=XxRuCIgq2LX)","url":"https://openreview.net/forum?id=XxRuCIgq2LX"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/keiserlab/exceiver)","url":"https://github.com/keiserlab/exceiver"},"omic_modalities":"scRNA-seq","pre_training_dataset":"0.5M / cross-tissue, human ([Tabula Sapiens](https://figshare.com/ndownloader/files/34702114))","input_embedding":"Other: value scaled embeddings","architecture":"Encoder","ssl_tasks":"Modified MLM with MSE, gene expression prediction","supervised_tasks":"Cell type annotation, drug response prediction"},{"model":"TransCluster","paper":{"type":"peer_reviewed","text":"[Song et al. 2022](https://www.frontiersin.org/articles/10.3389/fgene.2022.1038919/full)","url":"https://www.frontiersin.org/articles/10.3389/fgene.2022.1038919/full"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/Danica123/TransCluster)","url":"https://github.com/Danica123/TransCluster"},"omic_modalities":"scRNA-seq","pre_training_dataset":"-","input_embedding":"Value projection with LDA","architecture":"Encoder","ssl_tasks":"-","supervised_tasks":"Cell type annotation"},{"model":"scBERT","paper":{"type":"peer_reviewed","text":"[Yang et al. 2022](https://www.nature.com/articles/s42256-022-00534-z)","url":"https://www.nature.com/articles/s42256-022-00534-z"},"code":{"type":"evaluation_only","text":"[🔍GitHub](https://github.com/TencentAILabHealthcare/scBERT)","url":"https://github.com/TencentAILabHealthcare/scBERT"},"omic_modalities":"scRNA-seq","pre_training_dataset":"1M / cross-tissue, human ([PanglaoDB](https://panglaodb.se/))","input_embedding":"Value categorization, binning","architecture":"Encoder","ssl_tasks":"MLM with CE loss, gene expression prediction","supervised_tasks":"Cell type annotation, unseen cell type detection"},{"model":"iSEEEK","paper":{"type":"peer_reviewed","text":"[Shen et al. 2022](https://academic.oup.com/bib/article/23/2/bbab573/6511497?login=false)","url":"https://academic.oup.com/bib/article/23/2/bbab573/6511497?login=false"},"code":{"type":"evaluation_only","text":"[🔍Github](https://github.com/lixiangchun/iSEEEK)","url":"https://github.com/lixiangchun/iSEEEK"},"omic_modalities":"scRNA-seq","pre_training_dataset":"11.9M / cross-tissue, cross-species ([list](https://oup.silverchair-cdn.com/oup/backfile/Content_public/Journal/bib/23/2/10.1093_bib_bbab573/1/supplementary_table_1_data_source_information_bbab573.xlsx?Expires=1710130756&Signature=EKqLNLeqpYl320~rRpsK79fA4RC1KvQcWeYqpGALwIQ2SK-IAqZmyXnU-tuYG4xzZqeOhjKc2oyhqBRkO8xJBGO~EMja5KhbNP8PS4nV1eFCrZW6GvbluqyqCP9v-z2ExYhSo3f4jisWi9irRL0y7fxIPk3dPV4f3NACrRjDinqpUZ2eJTKOWwQ8GTbL3dySxPNJa8XQ0y2lGv0lBO~KMG-PJROYDi-PQyHHkTz5AbAnhpD5jnK1BSdxNg8oFuIErS7U0ej8V86eA3AqZyFdI4RZtq-iPTkAEFSQROhQdv1aTh3Cj5EuIZvVgmivr~qF571C9m4IHnI0bEsrhI4f3w__&Key-Pair-Id=APKAIE5G5CRDK6RD3PGA))","input_embedding":"Ordering: rank-based","architecture":"Encoder","ssl_tasks":"MLM with CE loss","supervised_tasks":"Marker gene classification"},{"model":"Multitask learning","paper":{"type":"preprint","text":"[Pang et al. 2020](https://www.biorxiv.org/content/10.1101/2020.02.05.935239v2)","url":"https://www.biorxiv.org/content/10.1101/2020.02.05.935239v2"},"code":{"type":"none","text":"None","url":""},"omic_modalities":"scRNA-seq","pre_training_dataset":"160k / brain, mouse ([MBA](http://mousebrain.org/))","input_embedding":"Value projection","architecture":"Other: autoencoder with two transformer encoders (?)","ssl_tasks":"Modified MLM with MSE loss, gene expression prediction","supervised_tasks":"-"}]; window.transformerLLMs = [{"model":"scChat","paper":{"type":"preprint","text":"[Lu et al. 2024](https://www.biorxiv.org/content/10.1101/2024.10.01.616063v2.abstract)","url":"https://www.biorxiv.org/content/10.1101/2024.10.01.616063v2.abstract"},"code":{"type":"reproducible","text":"[🛠GitHub](https://github.com/li-group/scChat)","url":"https://github.com/li-group/scChat"},"omic_modalities":"scRNA-seq","pre_training_dataset":"[GPT-4o](https://api.openai.com/)","input_embedding":"Other: Natural language descriptions","architecture":"[GPT-4o](https://api.openai.com/)","ssl_tasks":"-","supervised_tasks":"-","zero_shot_tasks":"Cell type annotation, research hypothesis validation and generation, experiment design suggestions"},{"model":"CELLama","paper":{"type":"preprint","text":"[Choi et al. 2024](https://www.biorxiv.org/content/10.1101/2024.05.08.593094v1.full#ref-16)","url":"https://www.biorxiv.org/content/10.1101/2024.05.08.593094v1.full#ref-16"},"code":{"type":"reproducible","text":"[🛠GitHub](https://github.com/portrai-io/CELLama)","url":"https://github.com/portrai-io/CELLama"},"omic_modalities":"scRNA-seq, Spatial transcriptomics","pre_training_dataset":"Natural Language [SBERT](https://fq.pkwyx.com/default/https/aclanthology.org/D19-1410.pdf)","input_embedding":"Other: Ordering with embedding of the natural language representation, additional cell annotations are added in natural language","architecture":"[SBERT](https://fq.pkwyx.com/default/https/aclanthology.org/D19-1410.pdf)","ssl_tasks":"Contrastive loss","supervised_tasks":"Cell type annotation","zero_shot_tasks":"Cell type annotation, niche cell type featuring"},{"model":"CellWhisperer","paper":{"type":"preprint","text":"[Schaefer et al. 2024](https://www.biorxiv.org/content/10.1101/2024.10.15.618501v1)","url":"https://www.biorxiv.org/content/10.1101/2024.10.15.618501v1"},"code":{"type":"reproducible","text":"[🛠GitHub](https://github.com/epigen/cellwhisperer)","url":"https://github.com/epigen/cellwhisperer"},"omic_modalities":"Bulk/scRNA-seq","pre_training_dataset":"Transcriptome data paired with natural language annotations","input_embedding":"Geneformer- and BioBERT-based embedding models (contrastively fine-tuned)","architecture":"Multimodal contrastive training of embedding models (CLIP) and transcriptome instruction fine-tuning of LLM (LLaVA)","ssl_tasks":"-","supervised_tasks":"Transcriptome-aware question-answering","zero_shot_tasks":"Reference-free cell property prediction (cell types & states, disease states, organ of cell origin, ...)"},{"model":"scInterpreter","paper":{"type":"preprint","text":"[Li et al. 2024](https://arxiv.org/abs/2402.12405)","url":"https://arxiv.org/abs/2402.12405"},"code":{"type":"none","text":"None","url":""},"omic_modalities":"scRNA-seq","pre_training_dataset":"Natural Language [GPT-3.5](https://api.openai.com/) and [Llama-13b](https://arxiv.org/abs/2302.13971)","input_embedding":"Other: Ordering with embedding of the natural language representation","architecture":"[GPT-3.5](https://api.openai.com/)","ssl_tasks":"NTP with CE loss and instruction finetuning (GPT-3.5 closed-source)","supervised_tasks":"-","zero_shot_tasks":"Cell type annotation (LLMs frozen, only small MLP trained)"},{"model":"ChatCell","paper":{"type":"preprint","text":"[Fang et al. 2024](https://arxiv.org/abs/2402.08303)","url":"https://arxiv.org/abs/2402.08303"},"code":{"type":"reproducible","text":"[🛠GitHub](https://github.com/zjunlp/ChatCell)","url":"https://github.com/zjunlp/ChatCell"},"omic_modalities":"scRNA-seq","pre_training_dataset":"Natural Language [T5](https://huggingface.co/docs/transformers/en/model_doc/t5) and [natural language instructions](https://huggingface.co/datasets/zjunlp/ChatCell-Instructions)","input_embedding":"Other: Ordering with embedding as natural language with additional terms","architecture":"[T5](https://huggingface.co/docs/transformers/en/model_doc/t5)","ssl_tasks":"NTP with CE loss","supervised_tasks":"None (conditional sequence generation, prompting)","zero_shot_tasks":"Simulation, cell type annotation, drug sensitivity prediction"},{"model":"MarkerGeneBERT","paper":{"type":"preprint","text":"[Cheng et al. 2023](https://www.biorxiv.org/content/10.1101/2024.01.30.578115v1)","url":"https://www.biorxiv.org/content/10.1101/2024.01.30.578115v1"},"code":{"type":"none","text":"None","url":""},"omic_modalities":"scRNA-seq","pre_training_dataset":"Natural Language, [PubMed](https://pubmed.ncbi.nlm.nih.gov/) and [PubMed Central](https://www.ncbi.nlm.nih.gov/pmc/)","input_embedding":"Other: Natural language preprocessed with [SciBERT](https://arxiv.org/abs/1903.10676)","architecture":"Encoder","ssl_tasks":"MLM","supervised_tasks":"Named Entity Recognition (NER), cell-biomarker sentence classification","zero_shot_tasks":"-"},{"model":"scELMo","paper":{"type":"preprint","text":"[Liu, Chen and Zheng 2023](https://www.biorxiv.org/content/10.1101/2023.12.07.569910v1.full.pdf)","url":"https://www.biorxiv.org/content/10.1101/2023.12.07.569910v1.full.pdf"},"code":{"type":"evaluation_only","text":"[🔍GitHub](https://github.com/HelloWorldLTY/scELMo)","url":"https://github.com/HelloWorldLTY/scELMo"},"omic_modalities":"scRNA-seq, CITE-seq","pre_training_dataset":"Natural Language, Closed source","input_embedding":"Other: NLP model embeddings of features weighted by the feature level in a cell (e.g. expression level)","architecture":"Closed source (some open)","ssl_tasks":"Closed source (some open)","supervised_tasks":"Cell type annotation, Genetic perturbation effect prediction","zero_shot_tasks":"Cell and gene embeddings in other perturbation models"},{"model":"GenePT","paper":{"type":"preprint","text":"[Chen and Zou 2023](https://www.biorxiv.org/content/10.1101/2023.10.16.562533v1.full)","url":"https://www.biorxiv.org/content/10.1101/2023.10.16.562533v1.full"},"code":{"type":"evaluation_only","text":"[🔍GitHub](https://github.com/yiqunchen/GenePT)","url":"https://github.com/yiqunchen/GenePT"},"omic_modalities":"scRNA-seq","pre_training_dataset":"Natural Language, Closed source","input_embedding":"Ordering: embedding as natural language","architecture":"Closed source","ssl_tasks":"Closed source","supervised_tasks":"Gene function prediction","zero_shot_tasks":"Cell clustering, GRN inference"},{"model":"GPT-4","paper":{"type":"peer_reviewed","text":"[W. Hou and Z. Ji 2024](https://www.nature.com/articles/s41592-024-02235-4)","url":"https://www.nature.com/articles/s41592-024-02235-4"},"code":{"type":"evaluation_only","text":"[🔍GitHub](https://github.com/Winnie09/GPTCelltype)","url":"https://github.com/Winnie09/GPTCelltype"},"omic_modalities":"scRNA-seq","pre_training_dataset":"Natural Language, Closed source","input_embedding":"Ordering: embedding as natural language","architecture":"Closed source","ssl_tasks":"Closed source","supervised_tasks":"None (conditional sequence generation, prompting)","zero_shot_tasks":"Cell type annotation"},{"model":"Cell2Sentence","paper":{"type":"peer_reviewed","text":"[Levine et al. 2024](https://openreview.net/forum?id=EWt5wsEdvc&referrer=%5Bthe%20profile%20of%20Josue%20Ortega%20Caro%5D(%2Fprofile%3Fid%3D~Josue_Ortega_Caro1)","url":"https://openreview.net/forum?id=EWt5wsEdvc&referrer=%5Bthe%20profile%20of%20Josue%20Ortega%20Caro%5D(%2Fprofile%3Fid%3D~Josue_Ortega_Caro1"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/vandijklab/cell2sentence-ft)","url":"https://github.com/vandijklab/cell2sentence-ft"},"omic_modalities":"scRNA-seq","pre_training_dataset":"Natural Language ([GPT2](https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf)) and [scRNA-seq](https://www.science.org/doi/full/10.1126/science.abl5197?casa_token=KSZInYXxqU4AAAAA%3AuNgeqoX4vxOaMPGAv4UW9_GMy1lMmZ1-QGyx2VBCSbsGWvchKCzdNUvwt-h_yemzugH075TGz6N8fw) (40k / immune, human)","input_embedding":"Ordering: embedding as natural language","architecture":"Decoder","ssl_tasks":"NTP with CE loss","supervised_tasks":"-","zero_shot_tasks":"Simulation, cell type annotation"}]; - window.transformerEvaluation = [{"paper":{"type":"preprint","text":"[Ahlmann-Eltze et al. 2024](https://www.biorxiv.org/content/10.1101/2024.09.16.613342)","url":"https://www.biorxiv.org/content/10.1101/2024.09.16.613342"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/const-ae/linear_perturbation_prediction-Paper/)","url":"https://github.com/const-ae/linear_perturbation_prediction-Paper/"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scGPT, scFoundation","tasks":"Genetic perturbation effect prediction","notes":"A simple linear model performs better than scGPT and scFoundation (and GEARS)."},{"paper":{"type":"preprint","text":"[He et al. 2024](https://www.biorxiv.org/content/10.1101/2024.01.27.577455v1)","url":"https://www.biorxiv.org/content/10.1101/2024.01.27.577455v1"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/laolintou/scPEFT)","url":"https://github.com/laolintou/scPEFT"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scGPT","tasks":"Cell type annotation","notes":"Evaluation of Parameter-Efficient Fine-Tuning (PEFT) for scGPT. Indicates that PEFT not only is more compute-efficient, but also results in better cell type prediction."},{"paper":{"type":"peer_reviewed","text":"[Khan et al. 2023](https://www.nature.com/articles/s42256-023-00757-8)","url":"https://www.nature.com/articles/s42256-023-00757-8"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/TranslationalBioinformaticsUnit/scbert-reusability)","url":"https://github.com/TranslationalBioinformaticsUnit/scbert-reusability"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scBERT","tasks":"Cell type annotation. Unseen cell type detection","notes":"Focused on imbalanced cell type classification. scBERT is sensitive to class imbalance. scBERT outperforms Seurat. scBERT doesn't perform well in unseen cell type detection. It benefits from SSL pretraining."},{"paper":{"type":"preprint","text":"[Liu et al. 2023](https://www.biorxiv.org/content/10.1101/2023.09.08.555192v4)","url":"https://www.biorxiv.org/content/10.1101/2023.09.08.555192v4"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/HelloWorldLTY/scEval)","url":"https://github.com/HelloWorldLTY/scEval"},"omic_modalities":"scRNA-seq, scATAC-seq, Spatial transcriptomics","evaluated_transformers":"scGPT, Geneformer, scBERT, tGPT, CellLM","tasks":"Cell clustering, cell type annotation, multimodal embedding, GRN inference, gene expression imputation, genetic perturbation effect prediction, simulation, gene function prediction","notes":"Models aren't trained on the same datasets. scGPT is positioned as most versatile in terms of task diversity that it can tackle. Models other than transformer appear to be at least as good as transformers in most tasks. Transformers were shown to be sensitive to the choice of hyperparameters, such as learning rate and epochs."},{"paper":{"type":"preprint","text":"[Boiarsky et al. 2023](https://www.biorxiv.org/content/10.1101/2023.10.19.563100v1)","url":"https://www.biorxiv.org/content/10.1101/2023.10.19.563100v1"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/clinicalml/sc-foundation-eval)","url":"https://github.com/clinicalml/sc-foundation-eval"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scBERT, scGPT","tasks":"Cell type annotation","notes":"Logistic regression appears to be as good as transformers in cell type annotation, even in low-data scenarios."},{"paper":{"type":"preprint","text":"[Kedzierska et al. 2023](https://www.biorxiv.org/content/10.1101/2023.10.16.561085v2)","url":"https://www.biorxiv.org/content/10.1101/2023.10.16.561085v2"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/microsoft/zero-shot-scfoundation)","url":"https://github.com/microsoft/zero-shot-scfoundation"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scGPT, Geneformer","tasks":"Cell clustering","notes":"Zero-shot performance only. Both models appear unreliable."},{"paper":{"type":"preprint","text":"[Alsabbagh et al. 2023](https://www.biorxiv.org/content/10.1101/2023.10.24.563625v1)","url":"https://www.biorxiv.org/content/10.1101/2023.10.24.563625v1"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/SabbaghCodes/ImbalancedLearningForSingleCellFoundationModels)","url":"https://github.com/SabbaghCodes/ImbalancedLearningForSingleCellFoundationModels"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scGPT, Geneformer, scBERT","tasks":"Cell type annotation","notes":"Focused on imbalanced cell type classification. Geneformer appears to be outperformed by scGPT and scBERT, where the two latter perform similarly."}]; + window.transformerEvaluation = [{"paper":{"type":"preprint","text":"[Yoav Kan-Tor et al. 2024](https://arxiv.org/abs/2412.04075)","url":"https://arxiv.org/abs/2412.04075"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/BiomedSciAI/gene-benchmark)","url":"https://github.com/BiomedSciAI/gene-benchmark"},"omic_modalities":"Natural Language, scRNAseq, protein sequence, DNA sequence","evaluated_transformers":"Mistral, MPnet, CellPLM, GeneFormer, scGPT, DNABert2, ESM (plus bag-of-words, gene2vec)","tasks":"genomic properties, gene regulatory functions, gene localization, gene biological processes, protein properties","notes":"-"},{"paper":{"type":"preprint","text":"[Ahlmann-Eltze et al. 2024](https://www.biorxiv.org/content/10.1101/2024.09.16.613342)","url":"https://www.biorxiv.org/content/10.1101/2024.09.16.613342"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/const-ae/linear_perturbation_prediction-Paper/)","url":"https://github.com/const-ae/linear_perturbation_prediction-Paper/"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scGPT, scFoundation","tasks":"Genetic perturbation effect prediction","notes":"A simple linear model performs better than scGPT and scFoundation (and GEARS)."},{"paper":{"type":"preprint","text":"[He et al. 2024](https://www.biorxiv.org/content/10.1101/2024.01.27.577455v1)","url":"https://www.biorxiv.org/content/10.1101/2024.01.27.577455v1"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/laolintou/scPEFT)","url":"https://github.com/laolintou/scPEFT"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scGPT","tasks":"Cell type annotation","notes":"Evaluation of Parameter-Efficient Fine-Tuning (PEFT) for scGPT. Indicates that PEFT not only is more compute-efficient, but also results in better cell type prediction."},{"paper":{"type":"peer_reviewed","text":"[Khan et al. 2023](https://www.nature.com/articles/s42256-023-00757-8)","url":"https://www.nature.com/articles/s42256-023-00757-8"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/TranslationalBioinformaticsUnit/scbert-reusability)","url":"https://github.com/TranslationalBioinformaticsUnit/scbert-reusability"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scBERT","tasks":"Cell type annotation. Unseen cell type detection","notes":"Focused on imbalanced cell type classification. scBERT is sensitive to class imbalance. scBERT outperforms Seurat. scBERT doesn't perform well in unseen cell type detection. It benefits from SSL pretraining."},{"paper":{"type":"preprint","text":"[Liu et al. 2023](https://www.biorxiv.org/content/10.1101/2023.09.08.555192v4)","url":"https://www.biorxiv.org/content/10.1101/2023.09.08.555192v4"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/HelloWorldLTY/scEval)","url":"https://github.com/HelloWorldLTY/scEval"},"omic_modalities":"scRNA-seq, scATAC-seq, Spatial transcriptomics","evaluated_transformers":"scGPT, Geneformer, scBERT, tGPT, CellLM","tasks":"Cell clustering, cell type annotation, multimodal embedding, GRN inference, gene expression imputation, genetic perturbation effect prediction, simulation, gene function prediction","notes":"Models aren't trained on the same datasets. scGPT is positioned as most versatile in terms of task diversity that it can tackle. Models other than transformer appear to be at least as good as transformers in most tasks. Transformers were shown to be sensitive to the choice of hyperparameters, such as learning rate and epochs."},{"paper":{"type":"preprint","text":"[Boiarsky et al. 2023](https://www.biorxiv.org/content/10.1101/2023.10.19.563100v1)","url":"https://www.biorxiv.org/content/10.1101/2023.10.19.563100v1"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/clinicalml/sc-foundation-eval)","url":"https://github.com/clinicalml/sc-foundation-eval"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scBERT, scGPT","tasks":"Cell type annotation","notes":"Logistic regression appears to be as good as transformers in cell type annotation, even in low-data scenarios."},{"paper":{"type":"preprint","text":"[Kedzierska et al. 2023](https://www.biorxiv.org/content/10.1101/2023.10.16.561085v2)","url":"https://www.biorxiv.org/content/10.1101/2023.10.16.561085v2"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/microsoft/zero-shot-scfoundation)","url":"https://github.com/microsoft/zero-shot-scfoundation"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scGPT, Geneformer","tasks":"Cell clustering","notes":"Zero-shot performance only. Both models appear unreliable."},{"paper":{"type":"preprint","text":"[Alsabbagh et al. 2023](https://www.biorxiv.org/content/10.1101/2023.10.24.563625v1)","url":"https://www.biorxiv.org/content/10.1101/2023.10.24.563625v1"},"code":{"type":"reproducible","text":"[🛠️GitHub](https://github.com/SabbaghCodes/ImbalancedLearningForSingleCellFoundationModels)","url":"https://github.com/SabbaghCodes/ImbalancedLearningForSingleCellFoundationModels"},"omic_modalities":"scRNA-seq","evaluated_transformers":"scGPT, Geneformer, scBERT","tasks":"Cell type annotation","notes":"Focused on imbalanced cell type classification. Geneformer appears to be outperformed by scGPT and scBERT, where the two latter perform similarly."}]; diff --git a/_site/single-cell-transformers.html b/_site/single-cell-transformers.html index 42440b8..353397a 100644 --- a/_site/single-cell-transformers.html +++ b/_site/single-cell-transformers.html @@ -964,7 +964,7 @@

Navigation

diff --git a/_site/transformer-evaluation.html b/_site/transformer-evaluation.html index 0440cb9..9a4f3b9 100644 --- a/_site/transformer-evaluation.html +++ b/_site/transformer-evaluation.html @@ -964,7 +964,7 @@

Navigation

diff --git a/_site/transformer-llms.html b/_site/transformer-llms.html index f24833c..d11baaa 100644 --- a/_site/transformer-llms.html +++ b/_site/transformer-llms.html @@ -964,7 +964,7 @@

Navigation

diff --git a/assets/js/components/FilterButton.jsx b/assets/js/components/FilterButton.jsx index ecab0c3..5ba096b 100644 --- a/assets/js/components/FilterButton.jsx +++ b/assets/js/components/FilterButton.jsx @@ -6,7 +6,7 @@ const FILTER_OPTIONS = { { value: 'peer_reviewed', label: 'Peer Reviewed 📄' }, ], code: [ - { value: 'reproducible', label: 'Reproducible 🛠️' }, + { value: 'reproducible', label: 'Training Code Available 🛠️' }, { value: 'evaluation_only', label: 'Evaluation Only 🔍' }, { value: 'none', label: 'None' }, ], diff --git a/assets/js/components/FilterPanel.jsx b/assets/js/components/FilterPanel.jsx index 3af62ba..026ba37 100644 --- a/assets/js/components/FilterPanel.jsx +++ b/assets/js/components/FilterPanel.jsx @@ -8,7 +8,7 @@ const FILTER_OPTIONS = { { value: 'peer_reviewed', label: 'Peer Reviewed 📄' }, ], code: [ - { value: 'reproducible', label: 'Reproducible 🛠️' }, + { value: 'reproducible', label: 'Training Code Available 🛠️' }, { value: 'evaluation_only', label: 'Evaluation Only 🔍' }, { value: 'none', label: 'None' }, ], diff --git a/assets/js/components/FilterSidebar.jsx b/assets/js/components/FilterSidebar.jsx index 293f6c3..bb7ae11 100644 --- a/assets/js/components/FilterSidebar.jsx +++ b/assets/js/components/FilterSidebar.jsx @@ -8,7 +8,7 @@ const FILTER_OPTIONS = { { value: 'peer_reviewed', label: 'Peer Reviewed 📄' }, ], code: [ - { value: 'reproducible', label: 'Reproducible 🛠️' }, + { value: 'reproducible', label: 'Training Code Available 🛠️' }, { value: 'evaluation_only', label: 'Evaluation Only 🔍' }, { value: 'none', label: 'None' }, ], diff --git a/assets/js/dist/single-cell-transformers.bundle.js b/assets/js/dist/single-cell-transformers.bundle.js index 447a9ee..2c1bd9a 100644 --- a/assets/js/dist/single-cell-transformers.bundle.js +++ b/assets/js/dist/single-cell-transformers.bundle.js @@ -1,3 +1,3 @@ /*! For license information please see single-cell-transformers.bundle.js.LICENSE.txt */ -(()=>{"use strict";var e={20:(e,r,t)=>{var n=t(594),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var n,a={},c=null,d=null;for(n in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,n)&&!s.hasOwnProperty(n)&&(a[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===a[n]&&(a[n]=r[n]);return{$$typeof:o,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);const s=ReactDOM;var c=t.n(s);function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}var u={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},p=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:n=24,strokeWidth:o=2,absoluteStrokeWidth:a,children:i,...s},c)=>{return(0,l.createElement)("svg",{ref:c,...u,width:n,height:n,stroke:t,strokeWidth:a?24*Number(o)/Number(n):o,className:`lucide lucide-${d=e,d.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var d}));return t.displayName=`${e}`,t};const f=p("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function m(e,r,t){return(r=function(e){var r=function(e){if("object"!=d(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=d(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==d(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,y=function(){for(var e,r,t=0,n="";t{const r=C(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),E(t,r)||k(e)},getConflictingClassGroupIds:(e,r)=>{const o=t[e]||[];return r&&n[e]?[...o,...n[e]]:o}}},E=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],n=r.nextPart.get(t),o=n?E(e.slice(1),n):void 0;if(o)return o;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},N=/^\[(.+)\]$/,k=e=>{if(N.test(e)){const r=N.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},C=e=>{const{theme:r,prefix:t}=e,n={nextPart:new Map,validators:[]};return A(Object.entries(e.classGroups),t).forEach((([e,t])=>{S(t,n,e,r)})),n},S=(e,r,t,n)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return j(e)?void S(e(n),r,t,n):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,o])=>{S(o,O(r,e),t,n)}))}else(""===e?r:O(r,e)).classGroupId=t}))},O=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},j=e=>e.isThemeGetter,A=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,P=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,n=new Map;const o=(o,a)=>{t.set(o,a),r++,r>e&&(r=0,n=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=n.get(e))?(o(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):o(e,r)}}},T=e=>{const{separator:r,experimentalParseClassName:t}=e,n=1===r.length,o=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},R=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},z=/\s+/;function I(){let e,r,t=0,n="";for(;t{if("string"==typeof e)return e;let r,t="";for(let n=0;nr(e)),e());return t=(e=>({cache:P(e.cacheSize),parseClassName:T(e),...w(e)}))(s),n=t.cache.get,o=t.cache.set,a=l,l(i)};function l(e){const r=n(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:o}=r,a=[],l=e.trim().split(z);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=n(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=n(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=R(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=o(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return o(e,a),a}return function(){return a(I.apply(null,arguments))}}const D=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},L=/^\[(?:([a-z-]+):)?(.+)\]$/i,G=/^\d+\/\d+$/,U=new Set(["px","full","screen"]),$=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,W=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,B=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,F=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,q=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,V=e=>K(e)||U.has(e)||G.test(e),H=e=>ie(e,"length",se),K=e=>Boolean(e)&&!Number.isNaN(Number(e)),Z=e=>ie(e,"number",K),X=e=>Boolean(e)&&Number.isInteger(Number(e)),Y=e=>e.endsWith("%")&&K(e.slice(0,-1)),J=e=>L.test(e),Q=e=>$.test(e),ee=new Set(["length","size","percentage"]),re=e=>ie(e,ee,ce),te=e=>ie(e,"position",ce),ne=new Set(["image","url"]),oe=e=>ie(e,ne,ue),ae=e=>ie(e,"",de),le=()=>!0,ie=(e,r,t)=>{const n=L.exec(e);return!!n&&(n[1]?"string"==typeof r?n[1]===r:r.has(n[1]):t(n[2]))},se=e=>W.test(e)&&!B.test(e),ce=()=>!1,de=e=>F.test(e),ue=e=>q.test(e),pe=_((Symbol.toStringTag,()=>{const e=D("colors"),r=D("spacing"),t=D("blur"),n=D("brightness"),o=D("borderColor"),a=D("borderRadius"),l=D("borderSpacing"),i=D("borderWidth"),s=D("contrast"),c=D("grayscale"),d=D("hueRotate"),u=D("invert"),p=D("gap"),f=D("gradientColorStops"),m=D("gradientColorStopPositions"),b=D("inset"),g=D("margin"),v=D("opacity"),h=D("padding"),y=D("saturate"),x=D("scale"),w=D("sepia"),E=D("skew"),N=D("space"),k=D("translate"),C=()=>["auto",J,r],S=()=>[J,r],O=()=>["",V,H],j=()=>["auto",K,J],A=()=>["","0",J],P=()=>[K,J];return{cacheSize:500,separator:":",theme:{colors:[le],spacing:[V,H],blur:["none","",Q,J],brightness:P(),borderColor:[e],borderRadius:["none","","full",Q,J],borderSpacing:S(),borderWidth:O(),contrast:P(),grayscale:A(),hueRotate:P(),invert:A(),gap:S(),gradientColorStops:[e],gradientColorStopPositions:[Y,H],inset:C(),margin:C(),opacity:P(),padding:S(),saturate:P(),scale:P(),sepia:A(),skew:P(),space:S(),translate:S()},classGroups:{aspect:[{aspect:["auto","square","video",J]}],container:["container"],columns:[{columns:[Q]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",J]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",X,J]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",J]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",X,J]}],"grid-cols":[{"grid-cols":[le]}],"col-start-end":[{col:["auto",{span:["full",X,J]},J]}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":[le]}],"row-start-end":[{row:["auto",{span:[X,J]},J]}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",J]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",J]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",J,r]}],"min-w":[{"min-w":[J,r,"min","max","fit"]}],"max-w":[{"max-w":[J,r,"none","full","min","max","fit","prose",{screen:[Q]},Q]}],h:[{h:[J,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[J,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[J,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[J,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Q,H]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Z]}],"font-family":[{font:[le]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",J]}],"line-clamp":[{"line-clamp":["none",K,Z]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",V,J]}],"list-image":[{"list-image":["none",J]}],"list-style-type":[{list:["none","disc","decimal",J]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",V,H]}],"underline-offset":[{"underline-offset":["auto",V,J]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",J]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",J]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",te]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",re]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},oe]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[V,J]}],"outline-w":[{outline:[V,H]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:O()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[V,H]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Q,ae]}],"shadow-color":[{shadow:[le]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[n]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Q,J]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",J]}],duration:[{duration:P()}],ease:[{ease:["linear","in","out","in-out",J]}],delay:[{delay:P()}],animate:[{animate:["none","spin","ping","pulse","bounce",J]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[X,J]}],"translate-x":[{"translate-x":[k]}],"translate-y":[{"translate-y":[k]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",J]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",J]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",J]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[V,H,Z]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function fe(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==be?void 0:be.variants))return y(me,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:n}=be,o=Object.keys(t).map((r=>{const o=null==e?void 0:e[r],a=null==n?void 0:n[r];if(null===o)return null;const l=h(o)||h(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,n]=r;return void 0===n||(e[t]=n),e}),{}),l=null==be||null===(r=be.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:o,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...n,...a}[r]):{...n,...a}[r]===t}))?[...e,t,o]:e}),[]);return y(me,o,l,null==e?void 0:e.class,null==e?void 0:e.className)});function he(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ye(...e){return l.useCallback(he(...e),e)}l.forwardRef((function(e,r){var t=e.className,n=e.variant,o=e.size,a=g(e,ge);return l.createElement("button",b({className:fe(ve({variant:n,size:o,className:t})),ref:r},a))})).displayName="Button";var xe=t(848);function we(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const n=t.reduce(((r,{useScope:t,scopeName:n})=>({...r,...t(e)[`__scope${n}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:n})),[n])}};return t.scopeName=r.scopeName,t}function Ee(e,r,{checkForDefaultPrevented:t=!0}={}){return function(n){if(e?.(n),!1===t||!n.defaultPrevented)return r?.(n)}}function Ne(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var ke=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},Ce=e=>{const{present:r,children:t}=e,n=function(e){const[r,t]=l.useState(),n=l.useRef({}),o=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=Se(n.current);a.current="mounted"===s?e:"none"}),[s]),ke((()=>{const r=n.current,t=o.current;if(t!==e){const n=a.current,l=Se(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&n!==l?"ANIMATION_OUT":"UNMOUNT"),o.current=e}}),[e,c]),ke((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=Se(n.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!o.current)){const n=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=n)}))}},i=e=>{e.target===r&&(a.current=Se(n.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(n.current=getComputedStyle(e)),t(e)}),[])}}(r),o="function"==typeof t?t({present:n.isPresent}):l.Children.only(t),a=ye(n.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(o));return"function"==typeof t||n.isPresent?l.cloneElement(o,{ref:a}):null};function Se(e){return e?.animationName||"none"}Ce.displayName="Presence";var Oe=l.forwardRef(((e,r)=>{const{children:t,...n}=e,o=l.Children.toArray(t),a=o.find(Pe);if(a){const e=a.props.children,t=o.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,xe.jsx)(je,{...n,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,xe.jsx)(je,{...n,ref:r,children:t})}));Oe.displayName="Slot";var je=l.forwardRef(((e,r)=>{const{children:t,...n}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Te(n,t.props),ref:r?he(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));je.displayName="SlotClone";var Ae=({children:e})=>(0,xe.jsx)(xe.Fragment,{children:e});function Pe(e){return l.isValidElement(e)&&e.type===Ae}function Te(e,r){const t={...r};for(const n in r){const o=e[n],a=r[n];/^on[A-Z]/.test(n)?o&&a?t[n]=(...e)=>{a(...e),o(...e)}:o&&(t[n]=o):"style"===n?t[n]={...o,...a}:"className"===n&&(t[n]=[o,a].filter(Boolean).join(" "))}return{...e,...t}}var Re=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:n,...o}=e,a=n?Oe:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,xe.jsx)(a,{...o,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),ze="Checkbox",[Ie,Me]=function(e,r=[]){let t=[];const n=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const n=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:n}})),[t,n])}};return n.scopeName=e,[function(r,n){const o=l.createContext(n),a=t.length;t=[...t,n];const i=r=>{const{scope:t,children:n,...i}=r,s=t?.[e]?.[a]||o,c=l.useMemo((()=>i),Object.values(i));return(0,xe.jsx)(s.Provider,{value:c,children:n})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||o,c=l.useContext(s);if(c)return c;if(void 0!==n)return n;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},we(n,...r)]}(ze),[_e,De]=Ie(ze),Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:n,checked:o,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ye(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[n,o]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[n]=t,o=l.useRef(n),a=Ne(r);return l.useEffect((()=>{o.current!==n&&(a(n),o.current=n)}),[n,o,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:n,s=Ne(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else o(r)}),[a,e,o,s])]}({prop:o,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,xe.jsxs)(_e,{scope:t,state:h,disabled:s,children:[(0,xe.jsx)(Re.button,{type:"button",role:"checkbox","aria-checked":We(h)?"mixed":h,"aria-required":i,"data-state":Be(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:Ee(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:Ee(e.onClick,(e=>{y((e=>!!We(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,xe.jsx)($e,{control:f,bubbles:!g.current,name:n,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!We(a)&&a})]})}));Le.displayName=ze;var Ge="CheckboxIndicator",Ue=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:n,...o}=e,a=De(Ge,t);return(0,xe.jsx)(Ce,{present:n||We(a.state)||!0===a.state,children:(0,xe.jsx)(Re.span,{"data-state":Be(a.state),"data-disabled":a.disabled?"":void 0,...o,ref:r,style:{pointerEvents:"none",...e.style}})})}));Ue.displayName=Ge;var $e=e=>{const{control:r,checked:t,bubbles:n=!0,defaultChecked:o,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return ke((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const n=r[0];let o,a;if("borderBoxSize"in n){const e=n.borderBoxSize,r=Array.isArray(e)?e[0]:e;o=r.inlineSize,a=r.blockSize}else o=e.offsetWidth,a=e.offsetHeight;t({width:o,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,o=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&o){const r=new Event("click",{bubbles:n});e.indeterminate=We(t),o.call(e,!We(t)&&t),e.dispatchEvent(r)}}),[s,t,n]);const d=l.useRef(!We(t)&&t);return(0,xe.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:o??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function We(e){return"indeterminate"===e}function Be(e){return We(e)?"indeterminate":e?"checked":"unchecked"}var Fe=Le,qe=Ue;const Ve=p("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var He=["className"];function Ke(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function Ze(e){for(var r=1;r').concat(r,"
")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===n){var s=t.text||t,c=t.type||"preprint",u=s.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Je[c]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===n){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Je[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===n)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(n)){var x=o(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},o(t))};const er=function(e){var r=e.data,t=e.columns,n=a((0,l.useState)(!1),2),o=n[0],s=n[1],c=a((0,l.useState)(r),2),d=c[0],u=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!o)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(f,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(o?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Qe,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ye,{isOpen:o,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,n,o,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(n=e.code)||void 0===n?void 0:n.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(o=e.omicModalities)||void 0===o?void 0:o.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));u(t),s(!1)}}))};function rr(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],n=a((0,l.useState)(null),2),o=n[0],s=n[1],c=a((0,l.useState)(null),2),d=c[0],u=c[1],p=a((0,l.useState)(!0),2),f=p[0],m=p[1],b=a((0,l.useState)(!1),2),g=b[0],v=b[1];(0,l.useEffect)((function(){try{if(void 0!==window.singleCellTransformers){var e=window.singleCellTransformers.map((function(e){var r=function(e){return""===e||null==e||"None"===e?"-":e};return{Model:e.model,Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Pre-Training Dataset":r(e.pre_training_dataset),"Input Embedding":r(e.input_embedding),Architecture:r(e.architecture),"SSL Tasks":r(e.ssl_tasks),"Supervised Tasks":r(e.supervised_tasks)}}));t(e),s(e)}else u("Data not available")}catch(e){console.error("Error accessing data:",e),u(e.message)}finally{m(!1)}}),[]);return f?i().createElement("div",{className:"p-4"},"Loading..."):d?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",d):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Single-cell Transformers"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(er,{data:o,columns:["Model","Paper","Code","Omic Modalities","Pre-Training Dataset","Input Embedding","Architecture","SSL Tasks","Supervised Tasks"]})),i().createElement(Ye,{isOpen:g,onClose:function(){return v(!1)},onApplyFilters:function(e){var t=function(e,r){return e.filter((function(e){var t,n,o,a,l;if((null===(t=r.paper)||void 0===t?void 0:t.length)>0&&!r.paper.includes(e.Paper.type))return!1;if((null===(n=r.code)||void 0===n?void 0:n.length)>0&&!r.code.includes(e.Code.type))return!1;if((null===(o=r.omicModalities)||void 0===o?void 0:o.length)>0){var i=String(e["Omic Modalities"]).toLowerCase();if(!r.omicModalities.some((function(e){return i.includes(e.toLowerCase())})))return!1}if((null===(a=r.inputEmbeddings)||void 0===a?void 0:a.length)>0){var s=String(e["Input Embedding"]).toLowerCase();if(!r.inputEmbeddings.some((function(e){return s.includes(e.toLowerCase())})))return!1}if((null===(l=r.architecture)||void 0===l?void 0:l.length)>0){var c=String(e.Architecture).toLowerCase();if(!r.architecture.some((function(e){return c.includes(e.toLowerCase())})))return!1}return!0}))}(r,e);s(t)}})):i().createElement("div",{className:"p-4"},"No data available")}document.getElementById("single-cell-transformers-root")&&c().createRoot(document.getElementById("single-cell-transformers-root")).render(i().createElement(rr,null))})(); +(()=>{"use strict";var e={20:(e,r,t)=>{var n=t(594),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var n,a={},c=null,d=null;for(n in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,n)&&!s.hasOwnProperty(n)&&(a[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===a[n]&&(a[n]=r[n]);return{$$typeof:o,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);const s=ReactDOM;var c=t.n(s);function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}var u={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},p=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:n=24,strokeWidth:o=2,absoluteStrokeWidth:a,children:i,...s},c)=>{return(0,l.createElement)("svg",{ref:c,...u,width:n,height:n,stroke:t,strokeWidth:a?24*Number(o)/Number(n):o,className:`lucide lucide-${d=e,d.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var d}));return t.displayName=`${e}`,t};const f=p("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function m(e,r,t){return(r=function(e){var r=function(e){if("object"!=d(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=d(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==d(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function b(){return b=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,y=function(){for(var e,r,t=0,n="";t{const r=C(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),E(t,r)||k(e)},getConflictingClassGroupIds:(e,r)=>{const o=t[e]||[];return r&&n[e]?[...o,...n[e]]:o}}},E=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],n=r.nextPart.get(t),o=n?E(e.slice(1),n):void 0;if(o)return o;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},N=/^\[(.+)\]$/,k=e=>{if(N.test(e)){const r=N.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},C=e=>{const{theme:r,prefix:t}=e,n={nextPart:new Map,validators:[]};return A(Object.entries(e.classGroups),t).forEach((([e,t])=>{S(t,n,e,r)})),n},S=(e,r,t,n)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return j(e)?void S(e(n),r,t,n):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,o])=>{S(o,O(r,e),t,n)}))}else(""===e?r:O(r,e)).classGroupId=t}))},O=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},j=e=>e.isThemeGetter,A=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,P=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,n=new Map;const o=(o,a)=>{t.set(o,a),r++,r>e&&(r=0,n=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=n.get(e))?(o(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):o(e,r)}}},T=e=>{const{separator:r,experimentalParseClassName:t}=e,n=1===r.length,o=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},R=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},z=/\s+/;function I(){let e,r,t=0,n="";for(;t{if("string"==typeof e)return e;let r,t="";for(let n=0;nr(e)),e());return t=(e=>({cache:P(e.cacheSize),parseClassName:T(e),...w(e)}))(s),n=t.cache.get,o=t.cache.set,a=l,l(i)};function l(e){const r=n(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:o}=r,a=[],l=e.trim().split(z);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=n(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=n(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=R(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=o(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return o(e,a),a}return function(){return a(I.apply(null,arguments))}}const D=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},L=/^\[(?:([a-z-]+):)?(.+)\]$/i,G=/^\d+\/\d+$/,U=new Set(["px","full","screen"]),$=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,W=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,B=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,F=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,q=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,V=e=>K(e)||U.has(e)||G.test(e),H=e=>ie(e,"length",se),K=e=>Boolean(e)&&!Number.isNaN(Number(e)),Z=e=>ie(e,"number",K),X=e=>Boolean(e)&&Number.isInteger(Number(e)),Y=e=>e.endsWith("%")&&K(e.slice(0,-1)),J=e=>L.test(e),Q=e=>$.test(e),ee=new Set(["length","size","percentage"]),re=e=>ie(e,ee,ce),te=e=>ie(e,"position",ce),ne=new Set(["image","url"]),oe=e=>ie(e,ne,ue),ae=e=>ie(e,"",de),le=()=>!0,ie=(e,r,t)=>{const n=L.exec(e);return!!n&&(n[1]?"string"==typeof r?n[1]===r:r.has(n[1]):t(n[2]))},se=e=>W.test(e)&&!B.test(e),ce=()=>!1,de=e=>F.test(e),ue=e=>q.test(e),pe=_((Symbol.toStringTag,()=>{const e=D("colors"),r=D("spacing"),t=D("blur"),n=D("brightness"),o=D("borderColor"),a=D("borderRadius"),l=D("borderSpacing"),i=D("borderWidth"),s=D("contrast"),c=D("grayscale"),d=D("hueRotate"),u=D("invert"),p=D("gap"),f=D("gradientColorStops"),m=D("gradientColorStopPositions"),b=D("inset"),g=D("margin"),v=D("opacity"),h=D("padding"),y=D("saturate"),x=D("scale"),w=D("sepia"),E=D("skew"),N=D("space"),k=D("translate"),C=()=>["auto",J,r],S=()=>[J,r],O=()=>["",V,H],j=()=>["auto",K,J],A=()=>["","0",J],P=()=>[K,J];return{cacheSize:500,separator:":",theme:{colors:[le],spacing:[V,H],blur:["none","",Q,J],brightness:P(),borderColor:[e],borderRadius:["none","","full",Q,J],borderSpacing:S(),borderWidth:O(),contrast:P(),grayscale:A(),hueRotate:P(),invert:A(),gap:S(),gradientColorStops:[e],gradientColorStopPositions:[Y,H],inset:C(),margin:C(),opacity:P(),padding:S(),saturate:P(),scale:P(),sepia:A(),skew:P(),space:S(),translate:S()},classGroups:{aspect:[{aspect:["auto","square","video",J]}],container:["container"],columns:[{columns:[Q]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",J]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",X,J]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",J]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",X,J]}],"grid-cols":[{"grid-cols":[le]}],"col-start-end":[{col:["auto",{span:["full",X,J]},J]}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":[le]}],"row-start-end":[{row:["auto",{span:[X,J]},J]}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",J]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",J]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",J,r]}],"min-w":[{"min-w":[J,r,"min","max","fit"]}],"max-w":[{"max-w":[J,r,"none","full","min","max","fit","prose",{screen:[Q]},Q]}],h:[{h:[J,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[J,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[J,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[J,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Q,H]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Z]}],"font-family":[{font:[le]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",J]}],"line-clamp":[{"line-clamp":["none",K,Z]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",V,J]}],"list-image":[{"list-image":["none",J]}],"list-style-type":[{list:["none","disc","decimal",J]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",V,H]}],"underline-offset":[{"underline-offset":["auto",V,J]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",J]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",J]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",te]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",re]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},oe]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[V,J]}],"outline-w":[{outline:[V,H]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:O()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[V,H]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Q,ae]}],"shadow-color":[{shadow:[le]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[n]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Q,J]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",J]}],duration:[{duration:P()}],ease:[{ease:["linear","in","out","in-out",J]}],delay:[{delay:P()}],animate:[{animate:["none","spin","ping","pulse","bounce",J]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[X,J]}],"translate-x":[{"translate-x":[k]}],"translate-y":[{"translate-y":[k]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",J]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",J]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",J]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[V,H,Z]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function fe(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==be?void 0:be.variants))return y(me,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:n}=be,o=Object.keys(t).map((r=>{const o=null==e?void 0:e[r],a=null==n?void 0:n[r];if(null===o)return null;const l=h(o)||h(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,n]=r;return void 0===n||(e[t]=n),e}),{}),l=null==be||null===(r=be.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:o,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...n,...a}[r]):{...n,...a}[r]===t}))?[...e,t,o]:e}),[]);return y(me,o,l,null==e?void 0:e.class,null==e?void 0:e.className)});function he(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ye(...e){return l.useCallback(he(...e),e)}l.forwardRef((function(e,r){var t=e.className,n=e.variant,o=e.size,a=g(e,ge);return l.createElement("button",b({className:fe(ve({variant:n,size:o,className:t})),ref:r},a))})).displayName="Button";var xe=t(848);function we(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const n=t.reduce(((r,{useScope:t,scopeName:n})=>({...r,...t(e)[`__scope${n}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:n})),[n])}};return t.scopeName=r.scopeName,t}function Ee(e,r,{checkForDefaultPrevented:t=!0}={}){return function(n){if(e?.(n),!1===t||!n.defaultPrevented)return r?.(n)}}function Ne(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var ke=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},Ce=e=>{const{present:r,children:t}=e,n=function(e){const[r,t]=l.useState(),n=l.useRef({}),o=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=Se(n.current);a.current="mounted"===s?e:"none"}),[s]),ke((()=>{const r=n.current,t=o.current;if(t!==e){const n=a.current,l=Se(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&n!==l?"ANIMATION_OUT":"UNMOUNT"),o.current=e}}),[e,c]),ke((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=Se(n.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!o.current)){const n=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=n)}))}},i=e=>{e.target===r&&(a.current=Se(n.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(n.current=getComputedStyle(e)),t(e)}),[])}}(r),o="function"==typeof t?t({present:n.isPresent}):l.Children.only(t),a=ye(n.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(o));return"function"==typeof t||n.isPresent?l.cloneElement(o,{ref:a}):null};function Se(e){return e?.animationName||"none"}Ce.displayName="Presence";var Oe=l.forwardRef(((e,r)=>{const{children:t,...n}=e,o=l.Children.toArray(t),a=o.find(Pe);if(a){const e=a.props.children,t=o.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,xe.jsx)(je,{...n,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,xe.jsx)(je,{...n,ref:r,children:t})}));Oe.displayName="Slot";var je=l.forwardRef(((e,r)=>{const{children:t,...n}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Te(n,t.props),ref:r?he(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));je.displayName="SlotClone";var Ae=({children:e})=>(0,xe.jsx)(xe.Fragment,{children:e});function Pe(e){return l.isValidElement(e)&&e.type===Ae}function Te(e,r){const t={...r};for(const n in r){const o=e[n],a=r[n];/^on[A-Z]/.test(n)?o&&a?t[n]=(...e)=>{a(...e),o(...e)}:o&&(t[n]=o):"style"===n?t[n]={...o,...a}:"className"===n&&(t[n]=[o,a].filter(Boolean).join(" "))}return{...e,...t}}var Re=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:n,...o}=e,a=n?Oe:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,xe.jsx)(a,{...o,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),ze="Checkbox",[Ie,Me]=function(e,r=[]){let t=[];const n=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const n=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:n}})),[t,n])}};return n.scopeName=e,[function(r,n){const o=l.createContext(n),a=t.length;t=[...t,n];const i=r=>{const{scope:t,children:n,...i}=r,s=t?.[e]?.[a]||o,c=l.useMemo((()=>i),Object.values(i));return(0,xe.jsx)(s.Provider,{value:c,children:n})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||o,c=l.useContext(s);if(c)return c;if(void 0!==n)return n;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},we(n,...r)]}(ze),[_e,De]=Ie(ze),Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:n,checked:o,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ye(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[n,o]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[n]=t,o=l.useRef(n),a=Ne(r);return l.useEffect((()=>{o.current!==n&&(a(n),o.current=n)}),[n,o,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:n,s=Ne(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else o(r)}),[a,e,o,s])]}({prop:o,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,xe.jsxs)(_e,{scope:t,state:h,disabled:s,children:[(0,xe.jsx)(Re.button,{type:"button",role:"checkbox","aria-checked":We(h)?"mixed":h,"aria-required":i,"data-state":Be(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:Ee(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:Ee(e.onClick,(e=>{y((e=>!!We(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,xe.jsx)($e,{control:f,bubbles:!g.current,name:n,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!We(a)&&a})]})}));Le.displayName=ze;var Ge="CheckboxIndicator",Ue=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:n,...o}=e,a=De(Ge,t);return(0,xe.jsx)(Ce,{present:n||We(a.state)||!0===a.state,children:(0,xe.jsx)(Re.span,{"data-state":Be(a.state),"data-disabled":a.disabled?"":void 0,...o,ref:r,style:{pointerEvents:"none",...e.style}})})}));Ue.displayName=Ge;var $e=e=>{const{control:r,checked:t,bubbles:n=!0,defaultChecked:o,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return ke((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const n=r[0];let o,a;if("borderBoxSize"in n){const e=n.borderBoxSize,r=Array.isArray(e)?e[0]:e;o=r.inlineSize,a=r.blockSize}else o=e.offsetWidth,a=e.offsetHeight;t({width:o,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,o=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&o){const r=new Event("click",{bubbles:n});e.indeterminate=We(t),o.call(e,!We(t)&&t),e.dispatchEvent(r)}}),[s,t,n]);const d=l.useRef(!We(t)&&t);return(0,xe.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:o??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function We(e){return"indeterminate"===e}function Be(e){return We(e)?"indeterminate":e?"checked":"unchecked"}var Fe=Le,qe=Ue;const Ve=p("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var He=["className"];function Ke(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function Ze(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===n){var s=t.text||t,c=t.type||"preprint",u=s.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Je[c]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===n){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Je[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===n)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(n)){var x=o(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},o(t))};const er=function(e){var r=e.data,t=e.columns,n=a((0,l.useState)(!1),2),o=n[0],s=n[1],c=a((0,l.useState)(r),2),d=c[0],u=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!o)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(f,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(o?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Qe,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ye,{isOpen:o,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,n,o,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(n=e.code)||void 0===n?void 0:n.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(o=e.omicModalities)||void 0===o?void 0:o.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));u(t),s(!1)}}))};function rr(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],n=a((0,l.useState)(null),2),o=n[0],s=n[1],c=a((0,l.useState)(null),2),d=c[0],u=c[1],p=a((0,l.useState)(!0),2),f=p[0],m=p[1],b=a((0,l.useState)(!1),2),g=b[0],v=b[1];(0,l.useEffect)((function(){try{if(void 0!==window.singleCellTransformers){var e=window.singleCellTransformers.map((function(e){var r=function(e){return""===e||null==e||"None"===e?"-":e};return{Model:e.model,Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Pre-Training Dataset":r(e.pre_training_dataset),"Input Embedding":r(e.input_embedding),Architecture:r(e.architecture),"SSL Tasks":r(e.ssl_tasks),"Supervised Tasks":r(e.supervised_tasks)}}));t(e),s(e)}else u("Data not available")}catch(e){console.error("Error accessing data:",e),u(e.message)}finally{m(!1)}}),[]);return f?i().createElement("div",{className:"p-4"},"Loading..."):d?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",d):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Single-cell Transformers"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(er,{data:o,columns:["Model","Paper","Code","Omic Modalities","Pre-Training Dataset","Input Embedding","Architecture","SSL Tasks","Supervised Tasks"]})),i().createElement(Ye,{isOpen:g,onClose:function(){return v(!1)},onApplyFilters:function(e){var t=function(e,r){return e.filter((function(e){var t,n,o,a,l;if((null===(t=r.paper)||void 0===t?void 0:t.length)>0&&!r.paper.includes(e.Paper.type))return!1;if((null===(n=r.code)||void 0===n?void 0:n.length)>0&&!r.code.includes(e.Code.type))return!1;if((null===(o=r.omicModalities)||void 0===o?void 0:o.length)>0){var i=String(e["Omic Modalities"]).toLowerCase();if(!r.omicModalities.some((function(e){return i.includes(e.toLowerCase())})))return!1}if((null===(a=r.inputEmbeddings)||void 0===a?void 0:a.length)>0){var s=String(e["Input Embedding"]).toLowerCase();if(!r.inputEmbeddings.some((function(e){return s.includes(e.toLowerCase())})))return!1}if((null===(l=r.architecture)||void 0===l?void 0:l.length)>0){var c=String(e.Architecture).toLowerCase();if(!r.architecture.some((function(e){return c.includes(e.toLowerCase())})))return!1}return!0}))}(r,e);s(t)}})):i().createElement("div",{className:"p-4"},"No data available")}document.getElementById("single-cell-transformers-root")&&c().createRoot(document.getElementById("single-cell-transformers-root")).render(i().createElement(rr,null))})(); //# sourceMappingURL=single-cell-transformers.bundle.js.map \ No newline at end of file diff --git a/assets/js/dist/single-cell-transformers.bundle.js.map b/assets/js/dist/single-cell-transformers.bundle.js.map index 6394d24..02bd9f6 100644 --- a/assets/js/dist/single-cell-transformers.bundle.js.map +++ b/assets/js/dist/single-cell-transformers.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"single-cell-transformers.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/single-cell-transformers.jsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","const __WEBPACK_NAMESPACE_OBJECT__ = ReactDOM;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Reproducible 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","// assets/js/pages/single-cell-transformers.jsx\nimport React, { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport FilterableTable from '../components/FilterableTable';\nimport FilterPanel from '../components/FilterPanel';\n\nfunction SingleCellTransformers() {\n const [data, setData] = useState(null);\n const [filteredData, setFilteredData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n\n useEffect(() => {\n try {\n if (typeof window.singleCellTransformers !== 'undefined') {\n const processedData = window.singleCellTransformers.map(item => {\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None') {\n return '-';\n }\n return value;\n };\n\n return {\n Model: item.model,\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Pre-Training Dataset': processEmptyValue(item.pre_training_dataset),\n 'Input Embedding': processEmptyValue(item.input_embedding),\n Architecture: processEmptyValue(item.architecture),\n 'SSL Tasks': processEmptyValue(item.ssl_tasks),\n 'Supervised Tasks': processEmptyValue(item.supervised_tasks)\n };\n });\n \n setData(processedData);\n setFilteredData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n const handleApplyFilters = (filters) => {\n const filtered = filterData(data, filters);\n setFilteredData(filtered);\n };\n\n const filterData = (data, filters) => {\n return data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n if (!filters.paper.includes(item.Paper.type)) {\n return false;\n }\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n if (!filters.code.includes(item.Code.type)) {\n return false;\n }\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities']).toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality =>\n modalitiesStr.includes(modality.toLowerCase())\n );\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding']).toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture).toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n };\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Single-cell Transformers

\n
\n \n
\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n}\n\nexport default SingleCellTransformers;\n\nif (document.getElementById('single-cell-transformers-root')) {\n const root = ReactDOM.createRoot(document.getElementById('single-cell-transformers-root'));\n root.render();\n}"],"names":["f","k","Symbol","for","l","m","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","_slicedToArray","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","ReactDOM","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","_defineProperty","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","SingleCellTransformers","setData","_useState6","error","setError","_useState8","isLoading","setIsLoading","_useState10","useEffect","singleCellTransformers","processedData","processEmptyValue","Model","model","omic_modalities","pre_training_dataset","input_embedding","ssl_tasks","supervised_tasks","err","console","message","FilterableTable","filterData","getElementById","render"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"single-cell-transformers.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/single-cell-transformers.jsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","const __WEBPACK_NAMESPACE_OBJECT__ = ReactDOM;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Training Code Available 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","// assets/js/pages/single-cell-transformers.jsx\nimport React, { useState, useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport FilterableTable from '../components/FilterableTable';\nimport FilterPanel from '../components/FilterPanel';\n\nfunction SingleCellTransformers() {\n const [data, setData] = useState(null);\n const [filteredData, setFilteredData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n\n useEffect(() => {\n try {\n if (typeof window.singleCellTransformers !== 'undefined') {\n const processedData = window.singleCellTransformers.map(item => {\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None') {\n return '-';\n }\n return value;\n };\n\n return {\n Model: item.model,\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Pre-Training Dataset': processEmptyValue(item.pre_training_dataset),\n 'Input Embedding': processEmptyValue(item.input_embedding),\n Architecture: processEmptyValue(item.architecture),\n 'SSL Tasks': processEmptyValue(item.ssl_tasks),\n 'Supervised Tasks': processEmptyValue(item.supervised_tasks)\n };\n });\n \n setData(processedData);\n setFilteredData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n const handleApplyFilters = (filters) => {\n const filtered = filterData(data, filters);\n setFilteredData(filtered);\n };\n\n const filterData = (data, filters) => {\n return data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n if (!filters.paper.includes(item.Paper.type)) {\n return false;\n }\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n if (!filters.code.includes(item.Code.type)) {\n return false;\n }\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities']).toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality =>\n modalitiesStr.includes(modality.toLowerCase())\n );\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding']).toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture).toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n };\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Single-cell Transformers

\n
\n \n
\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n}\n\nexport default SingleCellTransformers;\n\nif (document.getElementById('single-cell-transformers-root')) {\n const root = ReactDOM.createRoot(document.getElementById('single-cell-transformers-root'));\n root.render();\n}"],"names":["f","k","Symbol","for","l","m","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","_slicedToArray","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","ReactDOM","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","_defineProperty","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","SingleCellTransformers","setData","_useState6","error","setError","_useState8","isLoading","setIsLoading","_useState10","useEffect","singleCellTransformers","processedData","processEmptyValue","Model","model","omic_modalities","pre_training_dataset","input_embedding","ssl_tasks","supervised_tasks","err","console","message","FilterableTable","filterData","getElementById","render"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/js/dist/transformer-evaluation.bundle.js b/assets/js/dist/transformer-evaluation.bundle.js index 9eb9f12..5aa7513 100644 --- a/assets/js/dist/transformer-evaluation.bundle.js +++ b/assets/js/dist/transformer-evaluation.bundle.js @@ -1,3 +1,3 @@ /*! For license information please see transformer-evaluation.bundle.js.LICENSE.txt */ -(()=>{"use strict";var e={338:(e,r,t)=>{var o=t(206);o.createRoot,o.hydrateRoot},20:(e,r,t)=>{var o=t(594),n=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var o,a={},c=null,d=null;for(o in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,o)&&!s.hasOwnProperty(o)&&(a[o]=r[o]);if(e&&e.defaultProps)for(o in r=e.defaultProps)void 0===a[o]&&(a[o]=r[o]);return{$$typeof:n,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React},206:e=>{e.exports=ReactDOM}},r={};function t(o){var n=r[o];if(void 0!==n)return n.exports;var a=r[o]={exports:{}};return e[o](a,a.exports,t),a.exports}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},d=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:o=24,strokeWidth:n=2,absoluteStrokeWidth:a,children:i,...s},d)=>{return(0,l.createElement)("svg",{ref:d,...c,width:o,height:o,stroke:t,strokeWidth:a?24*Number(n)/Number(o):n,className:`lucide lucide-${u=e,u.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var u}));return t.displayName=`${e}`,t};const u=d("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function p(e,r,t){return(r=function(e){var r=function(e){if("object"!=s(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=s(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,v=function(){for(var e,r,t=0,o="";t{const r=N(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),x(t,r)||E(e)},getConflictingClassGroupIds:(e,r)=>{const n=t[e]||[];return r&&o[e]?[...n,...o[e]]:n}}},x=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),n=o?x(e.slice(1),o):void 0;if(n)return n;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},w=/^\[(.+)\]$/,E=e=>{if(w.test(e)){const r=w.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},N=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return j(Object.entries(e.classGroups),t).forEach((([e,t])=>{k(t,o,e,r)})),o},k=(e,r,t,o)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return O(e)?void k(e(o),r,t,o):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,n])=>{k(n,C(r,e),t,o)}))}else(""===e?r:C(r,e)).classGroupId=t}))},C=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},O=e=>e.isThemeGetter,j=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,S=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,o=new Map;const n=(n,a)=>{t.set(n,a),r++,r>e&&(r=0,o=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=o.get(e))?(n(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):n(e,r)}}},A=e=>{const{separator:r,experimentalParseClassName:t}=e,o=1===r.length,n=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},P=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},R=/\s+/;function z(){let e,r,t=0,o="";for(;t{if("string"==typeof e)return e;let r,t="";for(let o=0;or(e)),e());return t=(e=>({cache:S(e.cacheSize),parseClassName:A(e),...y(e)}))(s),o=t.cache.get,n=t.cache.set,a=l,l(i)};function l(e){const r=o(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:n}=r,a=[],l=e.trim().split(R);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=o(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=o(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=P(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=n(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return n(e,a),a}return function(){return a(z.apply(null,arguments))}}const M=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},_=/^\[(?:([a-z-]+):)?(.+)\]$/i,D=/^\d+\/\d+$/,L=new Set(["px","full","screen"]),G=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,U=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,W=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,q=e=>V(e)||L.has(e)||D.test(e),F=e=>ae(e,"length",le),V=e=>Boolean(e)&&!Number.isNaN(Number(e)),H=e=>ae(e,"number",V),K=e=>Boolean(e)&&Number.isInteger(Number(e)),Z=e=>e.endsWith("%")&&V(e.slice(0,-1)),X=e=>_.test(e),Y=e=>G.test(e),J=new Set(["length","size","percentage"]),Q=e=>ae(e,J,ie),ee=e=>ae(e,"position",ie),re=new Set(["image","url"]),te=e=>ae(e,re,ce),oe=e=>ae(e,"",se),ne=()=>!0,ae=(e,r,t)=>{const o=_.exec(e);return!!o&&(o[1]?"string"==typeof r?o[1]===r:r.has(o[1]):t(o[2]))},le=e=>U.test(e)&&!$.test(e),ie=()=>!1,se=e=>W.test(e),ce=e=>B.test(e),de=I((Symbol.toStringTag,()=>{const e=M("colors"),r=M("spacing"),t=M("blur"),o=M("brightness"),n=M("borderColor"),a=M("borderRadius"),l=M("borderSpacing"),i=M("borderWidth"),s=M("contrast"),c=M("grayscale"),d=M("hueRotate"),u=M("invert"),p=M("gap"),f=M("gradientColorStops"),m=M("gradientColorStopPositions"),b=M("inset"),g=M("margin"),v=M("opacity"),h=M("padding"),y=M("saturate"),x=M("scale"),w=M("sepia"),E=M("skew"),N=M("space"),k=M("translate"),C=()=>["auto",X,r],O=()=>[X,r],j=()=>["",q,F],S=()=>["auto",V,X],A=()=>["","0",X],P=()=>[V,X];return{cacheSize:500,separator:":",theme:{colors:[ne],spacing:[q,F],blur:["none","",Y,X],brightness:P(),borderColor:[e],borderRadius:["none","","full",Y,X],borderSpacing:O(),borderWidth:j(),contrast:P(),grayscale:A(),hueRotate:P(),invert:A(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[Z,F],inset:C(),margin:C(),opacity:P(),padding:O(),saturate:P(),scale:P(),sepia:A(),skew:P(),space:O(),translate:O()},classGroups:{aspect:[{aspect:["auto","square","video",X]}],container:["container"],columns:[{columns:[Y]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",X]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",K,X]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",X]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",K,X]}],"grid-cols":[{"grid-cols":[ne]}],"col-start-end":[{col:["auto",{span:["full",K,X]},X]}],"col-start":[{"col-start":S()}],"col-end":[{"col-end":S()}],"grid-rows":[{"grid-rows":[ne]}],"row-start-end":[{row:["auto",{span:[K,X]},X]}],"row-start":[{"row-start":S()}],"row-end":[{"row-end":S()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",X]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",X]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",X,r]}],"min-w":[{"min-w":[X,r,"min","max","fit"]}],"max-w":[{"max-w":[X,r,"none","full","min","max","fit","prose",{screen:[Y]},Y]}],h:[{h:[X,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[X,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Y,F]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",H]}],"font-family":[{font:[ne]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",X]}],"line-clamp":[{"line-clamp":["none",V,H]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",q,X]}],"list-image":[{"list-image":["none",X]}],"list-style-type":[{list:["none","disc","decimal",X]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",q,F]}],"underline-offset":[{"underline-offset":["auto",q,X]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",X]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",ee]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Q]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[q,X]}],"outline-w":[{outline:[q,F]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:j()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[q,F]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Y,oe]}],"shadow-color":[{shadow:[ne]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[o]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Y,X]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",X]}],duration:[{duration:P()}],ease:[{ease:["linear","in","out","in-out",X]}],delay:[{delay:P()}],animate:[{animate:["none","spin","ping","pulse","bounce",X]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[K,X]}],"translate-x":[{"translate-x":[k]}],"translate-y":[{"translate-y":[k]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",X]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",X]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",X]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[q,F,H]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function ue(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==fe?void 0:fe.variants))return v(pe,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:o}=fe,n=Object.keys(t).map((r=>{const n=null==e?void 0:e[r],a=null==o?void 0:o[r];if(null===n)return null;const l=g(n)||g(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,o]=r;return void 0===o||(e[t]=o),e}),{}),l=null==fe||null===(r=fe.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:n,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...o,...a}[r]):{...o,...a}[r]===t}))?[...e,t,n]:e}),[]);return v(pe,n,l,null==e?void 0:e.class,null==e?void 0:e.className)});function ge(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ve(...e){return l.useCallback(ge(...e),e)}l.forwardRef((function(e,r){var t=e.className,o=e.variant,n=e.size,a=m(e,me);return l.createElement("button",f({className:ue(be({variant:o,size:n,className:t})),ref:r},a))})).displayName="Button";var he=t(848);function ye(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const o=t.reduce(((r,{useScope:t,scopeName:o})=>({...r,...t(e)[`__scope${o}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:o})),[o])}};return t.scopeName=r.scopeName,t}function xe(e,r,{checkForDefaultPrevented:t=!0}={}){return function(o){if(e?.(o),!1===t||!o.defaultPrevented)return r?.(o)}}function we(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var Ee=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},Ne=e=>{const{present:r,children:t}=e,o=function(e){const[r,t]=l.useState(),o=l.useRef({}),n=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=ke(o.current);a.current="mounted"===s?e:"none"}),[s]),Ee((()=>{const r=o.current,t=n.current;if(t!==e){const o=a.current,l=ke(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&o!==l?"ANIMATION_OUT":"UNMOUNT"),n.current=e}}),[e,c]),Ee((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=ke(o.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!n.current)){const o=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=o)}))}},i=e=>{e.target===r&&(a.current=ke(o.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(o.current=getComputedStyle(e)),t(e)}),[])}}(r),n="function"==typeof t?t({present:o.isPresent}):l.Children.only(t),a=ve(o.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(n));return"function"==typeof t||o.isPresent?l.cloneElement(n,{ref:a}):null};function ke(e){return e?.animationName||"none"}Ne.displayName="Presence",t(206);var Ce=l.forwardRef(((e,r)=>{const{children:t,...o}=e,n=l.Children.toArray(t),a=n.find(Se);if(a){const e=a.props.children,t=n.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,he.jsx)(Oe,{...o,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,he.jsx)(Oe,{...o,ref:r,children:t})}));Ce.displayName="Slot";var Oe=l.forwardRef(((e,r)=>{const{children:t,...o}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Ae(o,t.props),ref:r?ge(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));Oe.displayName="SlotClone";var je=({children:e})=>(0,he.jsx)(he.Fragment,{children:e});function Se(e){return l.isValidElement(e)&&e.type===je}function Ae(e,r){const t={...r};for(const o in r){const n=e[o],a=r[o];/^on[A-Z]/.test(o)?n&&a?t[o]=(...e)=>{a(...e),n(...e)}:n&&(t[o]=n):"style"===o?t[o]={...n,...a}:"className"===o&&(t[o]=[n,a].filter(Boolean).join(" "))}return{...e,...t}}var Pe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:o,...n}=e,a=o?Ce:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,he.jsx)(a,{...n,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),Re="Checkbox",[ze,Te]=function(e,r=[]){let t=[];const o=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const o=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:o}})),[t,o])}};return o.scopeName=e,[function(r,o){const n=l.createContext(o),a=t.length;t=[...t,o];const i=r=>{const{scope:t,children:o,...i}=r,s=t?.[e]?.[a]||n,c=l.useMemo((()=>i),Object.values(i));return(0,he.jsx)(s.Provider,{value:c,children:o})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||n,c=l.useContext(s);if(c)return c;if(void 0!==o)return o;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},ye(o,...r)]}(Re),[Ie,Me]=ze(Re),_e=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:o,checked:n,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ve(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[o,n]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[o]=t,n=l.useRef(o),a=we(r);return l.useEffect((()=>{n.current!==o&&(a(o),n.current=o)}),[o,n,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:o,s=we(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else n(r)}),[a,e,n,s])]}({prop:n,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,he.jsxs)(Ie,{scope:t,state:h,disabled:s,children:[(0,he.jsx)(Pe.button,{type:"button",role:"checkbox","aria-checked":Ue(h)?"mixed":h,"aria-required":i,"data-state":$e(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:xe(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:xe(e.onClick,(e=>{y((e=>!!Ue(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,he.jsx)(Ge,{control:f,bubbles:!g.current,name:o,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!Ue(a)&&a})]})}));_e.displayName=Re;var De="CheckboxIndicator",Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:o,...n}=e,a=Me(De,t);return(0,he.jsx)(Ne,{present:o||Ue(a.state)||!0===a.state,children:(0,he.jsx)(Pe.span,{"data-state":$e(a.state),"data-disabled":a.disabled?"":void 0,...n,ref:r,style:{pointerEvents:"none",...e.style}})})}));Le.displayName=De;var Ge=e=>{const{control:r,checked:t,bubbles:o=!0,defaultChecked:n,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return Ee((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const o=r[0];let n,a;if("borderBoxSize"in o){const e=o.borderBoxSize,r=Array.isArray(e)?e[0]:e;n=r.inlineSize,a=r.blockSize}else n=e.offsetWidth,a=e.offsetHeight;t({width:n,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&n){const r=new Event("click",{bubbles:o});e.indeterminate=Ue(t),n.call(e,!Ue(t)&&t),e.dispatchEvent(r)}}),[s,t,o]);const d=l.useRef(!Ue(t)&&t);return(0,he.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Ue(e){return"indeterminate"===e}function $e(e){return Ue(e)?"indeterminate":e?"checked":"unchecked"}var We=_e,Be=Le;const qe=d("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var Fe=["className"];function Ve(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function He(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===o){var c=t.text||t,d=t.type||"preprint",u=c.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Xe[d]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===o){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Xe[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===o)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(o)){var x=n(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},n(t))};const Je=function(e){var r=e.data,t=e.columns,o=a((0,l.useState)(!1),2),n=o[0],s=o[1],c=a((0,l.useState)(r),2),d=c[0],p=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!n)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(u,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(n?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Ye,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ze,{isOpen:n,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,o,n,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(o=e.code)||void 0===o?void 0:o.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(n=e.omicModalities)||void 0===n?void 0:n.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));p(t),s(!1)}}))};function Qe(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],o=a((0,l.useState)(null),2),n=o[0],s=o[1],c=a((0,l.useState)(!0),2),d=c[0],u=c[1];return(0,l.useEffect)((function(){try{if(void 0!==window.transformerEvaluation){var e=window.transformerEvaluation.map((function(e){var r=function(e){return""===e||null==e||"None"===e?"-":e};return{Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Evaluated Transformers":r(e.evaluated_transformers),Tasks:r(e.tasks),Notes:r(e.notes)}}));t(e)}else s("Data not available")}catch(e){console.error("Error accessing data:",e),s(e.message)}finally{u(!1)}}),[]),console.log("Rendering state:",{isLoading:d,error:n,hasData:!!r}),d?i().createElement("div",{className:"p-4"},"Loading..."):n?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",n):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Transformer Evaluation"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(Je,{data:r,columns:["Paper","Code","Omic Modalities","Evaluated Transformers","Tasks","Notes"]}))):i().createElement("div",{className:"p-4"},"No data available")}t(338),document.getElementById("transformer-evaluation-root")&&(console.log("Mounting TransformerEvaluation component"),ReactDOM.createRoot(document.getElementById("transformer-evaluation-root")).render(i().createElement(Qe,null)))})(); +(()=>{"use strict";var e={338:(e,r,t)=>{var o=t(206);o.createRoot,o.hydrateRoot},20:(e,r,t)=>{var o=t(594),n=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var o,a={},c=null,d=null;for(o in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,o)&&!s.hasOwnProperty(o)&&(a[o]=r[o]);if(e&&e.defaultProps)for(o in r=e.defaultProps)void 0===a[o]&&(a[o]=r[o]);return{$$typeof:n,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React},206:e=>{e.exports=ReactDOM}},r={};function t(o){var n=r[o];if(void 0!==n)return n.exports;var a=r[o]={exports:{}};return e[o](a,a.exports,t),a.exports}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},d=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:o=24,strokeWidth:n=2,absoluteStrokeWidth:a,children:i,...s},d)=>{return(0,l.createElement)("svg",{ref:d,...c,width:o,height:o,stroke:t,strokeWidth:a?24*Number(n)/Number(o):n,className:`lucide lucide-${u=e,u.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var u}));return t.displayName=`${e}`,t};const u=d("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function p(e,r,t){return(r=function(e){var r=function(e){if("object"!=s(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=s(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,v=function(){for(var e,r,t=0,o="";t{const r=N(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),x(t,r)||E(e)},getConflictingClassGroupIds:(e,r)=>{const n=t[e]||[];return r&&o[e]?[...n,...o[e]]:n}}},x=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),n=o?x(e.slice(1),o):void 0;if(n)return n;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},w=/^\[(.+)\]$/,E=e=>{if(w.test(e)){const r=w.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},N=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return j(Object.entries(e.classGroups),t).forEach((([e,t])=>{k(t,o,e,r)})),o},k=(e,r,t,o)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return O(e)?void k(e(o),r,t,o):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,n])=>{k(n,C(r,e),t,o)}))}else(""===e?r:C(r,e)).classGroupId=t}))},C=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},O=e=>e.isThemeGetter,j=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,S=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,o=new Map;const n=(n,a)=>{t.set(n,a),r++,r>e&&(r=0,o=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=o.get(e))?(n(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):n(e,r)}}},A=e=>{const{separator:r,experimentalParseClassName:t}=e,o=1===r.length,n=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},P=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},R=/\s+/;function T(){let e,r,t=0,o="";for(;t{if("string"==typeof e)return e;let r,t="";for(let o=0;or(e)),e());return t=(e=>({cache:S(e.cacheSize),parseClassName:A(e),...y(e)}))(s),o=t.cache.get,n=t.cache.set,a=l,l(i)};function l(e){const r=o(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:n}=r,a=[],l=e.trim().split(R);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=o(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=o(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=P(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=n(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return n(e,a),a}return function(){return a(T.apply(null,arguments))}}const M=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},_=/^\[(?:([a-z-]+):)?(.+)\]$/i,D=/^\d+\/\d+$/,L=new Set(["px","full","screen"]),G=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,U=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,W=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,q=e=>V(e)||L.has(e)||D.test(e),F=e=>ae(e,"length",le),V=e=>Boolean(e)&&!Number.isNaN(Number(e)),H=e=>ae(e,"number",V),K=e=>Boolean(e)&&Number.isInteger(Number(e)),Z=e=>e.endsWith("%")&&V(e.slice(0,-1)),X=e=>_.test(e),Y=e=>G.test(e),J=new Set(["length","size","percentage"]),Q=e=>ae(e,J,ie),ee=e=>ae(e,"position",ie),re=new Set(["image","url"]),te=e=>ae(e,re,ce),oe=e=>ae(e,"",se),ne=()=>!0,ae=(e,r,t)=>{const o=_.exec(e);return!!o&&(o[1]?"string"==typeof r?o[1]===r:r.has(o[1]):t(o[2]))},le=e=>U.test(e)&&!$.test(e),ie=()=>!1,se=e=>W.test(e),ce=e=>B.test(e),de=I((Symbol.toStringTag,()=>{const e=M("colors"),r=M("spacing"),t=M("blur"),o=M("brightness"),n=M("borderColor"),a=M("borderRadius"),l=M("borderSpacing"),i=M("borderWidth"),s=M("contrast"),c=M("grayscale"),d=M("hueRotate"),u=M("invert"),p=M("gap"),f=M("gradientColorStops"),m=M("gradientColorStopPositions"),b=M("inset"),g=M("margin"),v=M("opacity"),h=M("padding"),y=M("saturate"),x=M("scale"),w=M("sepia"),E=M("skew"),N=M("space"),k=M("translate"),C=()=>["auto",X,r],O=()=>[X,r],j=()=>["",q,F],S=()=>["auto",V,X],A=()=>["","0",X],P=()=>[V,X];return{cacheSize:500,separator:":",theme:{colors:[ne],spacing:[q,F],blur:["none","",Y,X],brightness:P(),borderColor:[e],borderRadius:["none","","full",Y,X],borderSpacing:O(),borderWidth:j(),contrast:P(),grayscale:A(),hueRotate:P(),invert:A(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[Z,F],inset:C(),margin:C(),opacity:P(),padding:O(),saturate:P(),scale:P(),sepia:A(),skew:P(),space:O(),translate:O()},classGroups:{aspect:[{aspect:["auto","square","video",X]}],container:["container"],columns:[{columns:[Y]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",X]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",K,X]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",X]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",K,X]}],"grid-cols":[{"grid-cols":[ne]}],"col-start-end":[{col:["auto",{span:["full",K,X]},X]}],"col-start":[{"col-start":S()}],"col-end":[{"col-end":S()}],"grid-rows":[{"grid-rows":[ne]}],"row-start-end":[{row:["auto",{span:[K,X]},X]}],"row-start":[{"row-start":S()}],"row-end":[{"row-end":S()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",X]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",X]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",X,r]}],"min-w":[{"min-w":[X,r,"min","max","fit"]}],"max-w":[{"max-w":[X,r,"none","full","min","max","fit","prose",{screen:[Y]},Y]}],h:[{h:[X,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[X,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Y,F]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",H]}],"font-family":[{font:[ne]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",X]}],"line-clamp":[{"line-clamp":["none",V,H]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",q,X]}],"list-image":[{"list-image":["none",X]}],"list-style-type":[{list:["none","disc","decimal",X]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",q,F]}],"underline-offset":[{"underline-offset":["auto",q,X]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",X]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",ee]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Q]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[q,X]}],"outline-w":[{outline:[q,F]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:j()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[q,F]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Y,oe]}],"shadow-color":[{shadow:[ne]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[o]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Y,X]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",X]}],duration:[{duration:P()}],ease:[{ease:["linear","in","out","in-out",X]}],delay:[{delay:P()}],animate:[{animate:["none","spin","ping","pulse","bounce",X]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[K,X]}],"translate-x":[{"translate-x":[k]}],"translate-y":[{"translate-y":[k]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",X]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",X]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",X]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[q,F,H]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function ue(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==fe?void 0:fe.variants))return v(pe,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:o}=fe,n=Object.keys(t).map((r=>{const n=null==e?void 0:e[r],a=null==o?void 0:o[r];if(null===n)return null;const l=g(n)||g(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,o]=r;return void 0===o||(e[t]=o),e}),{}),l=null==fe||null===(r=fe.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:n,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...o,...a}[r]):{...o,...a}[r]===t}))?[...e,t,n]:e}),[]);return v(pe,n,l,null==e?void 0:e.class,null==e?void 0:e.className)});function ge(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ve(...e){return l.useCallback(ge(...e),e)}l.forwardRef((function(e,r){var t=e.className,o=e.variant,n=e.size,a=m(e,me);return l.createElement("button",f({className:ue(be({variant:o,size:n,className:t})),ref:r},a))})).displayName="Button";var he=t(848);function ye(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const o=t.reduce(((r,{useScope:t,scopeName:o})=>({...r,...t(e)[`__scope${o}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:o})),[o])}};return t.scopeName=r.scopeName,t}function xe(e,r,{checkForDefaultPrevented:t=!0}={}){return function(o){if(e?.(o),!1===t||!o.defaultPrevented)return r?.(o)}}function we(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var Ee=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},Ne=e=>{const{present:r,children:t}=e,o=function(e){const[r,t]=l.useState(),o=l.useRef({}),n=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=ke(o.current);a.current="mounted"===s?e:"none"}),[s]),Ee((()=>{const r=o.current,t=n.current;if(t!==e){const o=a.current,l=ke(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&o!==l?"ANIMATION_OUT":"UNMOUNT"),n.current=e}}),[e,c]),Ee((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=ke(o.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!n.current)){const o=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=o)}))}},i=e=>{e.target===r&&(a.current=ke(o.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(o.current=getComputedStyle(e)),t(e)}),[])}}(r),n="function"==typeof t?t({present:o.isPresent}):l.Children.only(t),a=ve(o.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(n));return"function"==typeof t||o.isPresent?l.cloneElement(n,{ref:a}):null};function ke(e){return e?.animationName||"none"}Ne.displayName="Presence",t(206);var Ce=l.forwardRef(((e,r)=>{const{children:t,...o}=e,n=l.Children.toArray(t),a=n.find(Se);if(a){const e=a.props.children,t=n.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,he.jsx)(Oe,{...o,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,he.jsx)(Oe,{...o,ref:r,children:t})}));Ce.displayName="Slot";var Oe=l.forwardRef(((e,r)=>{const{children:t,...o}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Ae(o,t.props),ref:r?ge(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));Oe.displayName="SlotClone";var je=({children:e})=>(0,he.jsx)(he.Fragment,{children:e});function Se(e){return l.isValidElement(e)&&e.type===je}function Ae(e,r){const t={...r};for(const o in r){const n=e[o],a=r[o];/^on[A-Z]/.test(o)?n&&a?t[o]=(...e)=>{a(...e),n(...e)}:n&&(t[o]=n):"style"===o?t[o]={...n,...a}:"className"===o&&(t[o]=[n,a].filter(Boolean).join(" "))}return{...e,...t}}var Pe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:o,...n}=e,a=o?Ce:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,he.jsx)(a,{...n,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),Re="Checkbox",[Te,ze]=function(e,r=[]){let t=[];const o=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const o=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:o}})),[t,o])}};return o.scopeName=e,[function(r,o){const n=l.createContext(o),a=t.length;t=[...t,o];const i=r=>{const{scope:t,children:o,...i}=r,s=t?.[e]?.[a]||n,c=l.useMemo((()=>i),Object.values(i));return(0,he.jsx)(s.Provider,{value:c,children:o})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||n,c=l.useContext(s);if(c)return c;if(void 0!==o)return o;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},ye(o,...r)]}(Re),[Ie,Me]=Te(Re),_e=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:o,checked:n,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ve(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[o,n]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[o]=t,n=l.useRef(o),a=we(r);return l.useEffect((()=>{n.current!==o&&(a(o),n.current=o)}),[o,n,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:o,s=we(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else n(r)}),[a,e,n,s])]}({prop:n,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,he.jsxs)(Ie,{scope:t,state:h,disabled:s,children:[(0,he.jsx)(Pe.button,{type:"button",role:"checkbox","aria-checked":Ue(h)?"mixed":h,"aria-required":i,"data-state":$e(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:xe(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:xe(e.onClick,(e=>{y((e=>!!Ue(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,he.jsx)(Ge,{control:f,bubbles:!g.current,name:o,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!Ue(a)&&a})]})}));_e.displayName=Re;var De="CheckboxIndicator",Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:o,...n}=e,a=Me(De,t);return(0,he.jsx)(Ne,{present:o||Ue(a.state)||!0===a.state,children:(0,he.jsx)(Pe.span,{"data-state":$e(a.state),"data-disabled":a.disabled?"":void 0,...n,ref:r,style:{pointerEvents:"none",...e.style}})})}));Le.displayName=De;var Ge=e=>{const{control:r,checked:t,bubbles:o=!0,defaultChecked:n,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return Ee((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const o=r[0];let n,a;if("borderBoxSize"in o){const e=o.borderBoxSize,r=Array.isArray(e)?e[0]:e;n=r.inlineSize,a=r.blockSize}else n=e.offsetWidth,a=e.offsetHeight;t({width:n,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&n){const r=new Event("click",{bubbles:o});e.indeterminate=Ue(t),n.call(e,!Ue(t)&&t),e.dispatchEvent(r)}}),[s,t,o]);const d=l.useRef(!Ue(t)&&t);return(0,he.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Ue(e){return"indeterminate"===e}function $e(e){return Ue(e)?"indeterminate":e?"checked":"unchecked"}var We=_e,Be=Le;const qe=d("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var Fe=["className"];function Ve(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function He(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===o){var c=t.text||t,d=t.type||"preprint",u=c.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Xe[d]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===o){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Xe[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===o)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(o)){var x=n(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},n(t))};const Je=function(e){var r=e.data,t=e.columns,o=a((0,l.useState)(!1),2),n=o[0],s=o[1],c=a((0,l.useState)(r),2),d=c[0],p=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!n)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(u,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(n?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Ye,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ze,{isOpen:n,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,o,n,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(o=e.code)||void 0===o?void 0:o.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(n=e.omicModalities)||void 0===n?void 0:n.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));p(t),s(!1)}}))};function Qe(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],o=a((0,l.useState)(null),2),n=o[0],s=o[1],c=a((0,l.useState)(!0),2),d=c[0],u=c[1];return(0,l.useEffect)((function(){try{if(void 0!==window.transformerEvaluation){var e=window.transformerEvaluation.map((function(e){var r=function(e){return""===e||null==e||"None"===e?"-":e};return{Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Evaluated Transformers":r(e.evaluated_transformers),Tasks:r(e.tasks),Notes:r(e.notes)}}));t(e)}else s("Data not available")}catch(e){console.error("Error accessing data:",e),s(e.message)}finally{u(!1)}}),[]),console.log("Rendering state:",{isLoading:d,error:n,hasData:!!r}),d?i().createElement("div",{className:"p-4"},"Loading..."):n?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",n):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Transformer Evaluation"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(Je,{data:r,columns:["Paper","Code","Omic Modalities","Evaluated Transformers","Tasks","Notes"]}))):i().createElement("div",{className:"p-4"},"No data available")}t(338),document.getElementById("transformer-evaluation-root")&&(console.log("Mounting TransformerEvaluation component"),ReactDOM.createRoot(document.getElementById("transformer-evaluation-root")).render(i().createElement(Qe,null)))})(); //# sourceMappingURL=transformer-evaluation.bundle.js.map \ No newline at end of file diff --git a/assets/js/dist/transformer-evaluation.bundle.js.map b/assets/js/dist/transformer-evaluation.bundle.js.map index 7a8e495..709b3b0 100644 --- a/assets/js/dist/transformer-evaluation.bundle.js.map +++ b/assets/js/dist/transformer-evaluation.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"transformer-evaluation.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react-dom/client.js","webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/transformer-evaluation.jsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","module.exports = ReactDOM;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Reproducible 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","import React, { useState, useEffect } from 'react';\nimport FilterableTable from '../components/FilterableTable';\nimport { mountReactComponent } from '../utils/mount';\nimport FilterButton from '../components/FilterButton';\nimport FilterPanel from '../components/FilterPanel';\n\n\nfunction TransformerEvaluation() {\n const [data, setData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n \n useEffect(() => {\n try {\n if (typeof window.transformerEvaluation !== 'undefined') {\n const processedData = window.transformerEvaluation.map(item => {\n // Helper function to handle empty/null values\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None') {\n return '-';\n }\n return value;\n };\n\n return {\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Evaluated Transformers': processEmptyValue(item.evaluated_transformers),\n 'Tasks': processEmptyValue(item.tasks),\n 'Notes': processEmptyValue(item.notes)\n };\n });\n \n setData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n console.log('Rendering state:', { isLoading, error, hasData: !!data });\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Transformer Evaluation

\n
\n \n
\n
\n );\n}\n\nexport default TransformerEvaluation;\n\nif (document.getElementById('transformer-evaluation-root')) {\n console.log('Mounting TransformerEvaluation component');\n const root = ReactDOM.createRoot(document.getElementById('transformer-evaluation-root'));\n root.render();\n}"],"names":["m","createRoot","hydrateRoot","f","k","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","ReactDOM","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","_slicedToArray","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","_defineProperty","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","TransformerEvaluation","setData","error","setError","_useState6","isLoading","setIsLoading","useEffect","transformerEvaluation","processedData","processEmptyValue","omic_modalities","evaluated_transformers","tasks","notes","err","console","message","log","hasData","FilterableTable","getElementById","render"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"transformer-evaluation.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react-dom/client.js","webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/transformer-evaluation.jsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","module.exports = ReactDOM;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Training Code Available 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","import React, { useState, useEffect } from 'react';\nimport FilterableTable from '../components/FilterableTable';\nimport { mountReactComponent } from '../utils/mount';\nimport FilterButton from '../components/FilterButton';\nimport FilterPanel from '../components/FilterPanel';\n\n\nfunction TransformerEvaluation() {\n const [data, setData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n \n useEffect(() => {\n try {\n if (typeof window.transformerEvaluation !== 'undefined') {\n const processedData = window.transformerEvaluation.map(item => {\n // Helper function to handle empty/null values\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None') {\n return '-';\n }\n return value;\n };\n\n return {\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Evaluated Transformers': processEmptyValue(item.evaluated_transformers),\n 'Tasks': processEmptyValue(item.tasks),\n 'Notes': processEmptyValue(item.notes)\n };\n });\n \n setData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n console.log('Rendering state:', { isLoading, error, hasData: !!data });\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Transformer Evaluation

\n
\n \n
\n
\n );\n}\n\nexport default TransformerEvaluation;\n\nif (document.getElementById('transformer-evaluation-root')) {\n console.log('Mounting TransformerEvaluation component');\n const root = ReactDOM.createRoot(document.getElementById('transformer-evaluation-root'));\n root.render();\n}"],"names":["m","createRoot","hydrateRoot","f","k","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","ReactDOM","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","_slicedToArray","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","_defineProperty","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","TransformerEvaluation","setData","error","setError","_useState6","isLoading","setIsLoading","useEffect","transformerEvaluation","processedData","processEmptyValue","omic_modalities","evaluated_transformers","tasks","notes","err","console","message","log","hasData","FilterableTable","getElementById","render"],"sourceRoot":""} \ No newline at end of file diff --git a/assets/js/dist/transformer-llms.bundle.js b/assets/js/dist/transformer-llms.bundle.js index f76f427..b33a8f1 100644 --- a/assets/js/dist/transformer-llms.bundle.js +++ b/assets/js/dist/transformer-llms.bundle.js @@ -1,3 +1,3 @@ /*! For license information please see transformer-llms.bundle.js.LICENSE.txt */ -(()=>{"use strict";var e={338:(e,r,t)=>{var o=t(206);o.createRoot,o.hydrateRoot},20:(e,r,t)=>{var o=t(594),n=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var o,a={},c=null,d=null;for(o in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,o)&&!s.hasOwnProperty(o)&&(a[o]=r[o]);if(e&&e.defaultProps)for(o in r=e.defaultProps)void 0===a[o]&&(a[o]=r[o]);return{$$typeof:n,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React},206:e=>{e.exports=ReactDOM}},r={};function t(o){var n=r[o];if(void 0!==n)return n.exports;var a=r[o]={exports:{}};return e[o](a,a.exports,t),a.exports}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,o=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},d=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:o=24,strokeWidth:n=2,absoluteStrokeWidth:a,children:i,...s},d)=>{return(0,l.createElement)("svg",{ref:d,...c,width:o,height:o,stroke:t,strokeWidth:a?24*Number(n)/Number(o):n,className:`lucide lucide-${u=e,u.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var u}));return t.displayName=`${e}`,t};const u=d("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function p(e,r,t){return(r=function(e){var r=function(e){if("object"!=s(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=s(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,v=function(){for(var e,r,t=0,o="";t{const r=k(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),x(t,r)||E(e)},getConflictingClassGroupIds:(e,r)=>{const n=t[e]||[];return r&&o[e]?[...n,...o[e]]:n}}},x=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],o=r.nextPart.get(t),n=o?x(e.slice(1),o):void 0;if(n)return n;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},w=/^\[(.+)\]$/,E=e=>{if(w.test(e)){const r=w.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},k=e=>{const{theme:r,prefix:t}=e,o={nextPart:new Map,validators:[]};return S(Object.entries(e.classGroups),t).forEach((([e,t])=>{N(t,o,e,r)})),o},N=(e,r,t,o)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return O(e)?void N(e(o),r,t,o):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,n])=>{N(n,C(r,e),t,o)}))}else(""===e?r:C(r,e)).classGroupId=t}))},C=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},O=e=>e.isThemeGetter,S=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,j=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,o=new Map;const n=(n,a)=>{t.set(n,a),r++,r>e&&(r=0,o=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=o.get(e))?(n(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):n(e,r)}}},P=e=>{const{separator:r,experimentalParseClassName:t}=e,o=1===r.length,n=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},A=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},R=/\s+/;function T(){let e,r,t=0,o="";for(;t{if("string"==typeof e)return e;let r,t="";for(let o=0;or(e)),e());return t=(e=>({cache:j(e.cacheSize),parseClassName:P(e),...y(e)}))(s),o=t.cache.get,n=t.cache.set,a=l,l(i)};function l(e){const r=o(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:n}=r,a=[],l=e.trim().split(R);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=o(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=o(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=A(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=n(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return n(e,a),a}return function(){return a(T.apply(null,arguments))}}const I=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},_=/^\[(?:([a-z-]+):)?(.+)\]$/i,D=/^\d+\/\d+$/,L=new Set(["px","full","screen"]),G=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,U=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,W=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,q=e=>V(e)||L.has(e)||D.test(e),F=e=>ae(e,"length",le),V=e=>Boolean(e)&&!Number.isNaN(Number(e)),H=e=>ae(e,"number",V),K=e=>Boolean(e)&&Number.isInteger(Number(e)),Z=e=>e.endsWith("%")&&V(e.slice(0,-1)),X=e=>_.test(e),Y=e=>G.test(e),J=new Set(["length","size","percentage"]),Q=e=>ae(e,J,ie),ee=e=>ae(e,"position",ie),re=new Set(["image","url"]),te=e=>ae(e,re,ce),oe=e=>ae(e,"",se),ne=()=>!0,ae=(e,r,t)=>{const o=_.exec(e);return!!o&&(o[1]?"string"==typeof r?o[1]===r:r.has(o[1]):t(o[2]))},le=e=>U.test(e)&&!$.test(e),ie=()=>!1,se=e=>W.test(e),ce=e=>B.test(e),de=M((Symbol.toStringTag,()=>{const e=I("colors"),r=I("spacing"),t=I("blur"),o=I("brightness"),n=I("borderColor"),a=I("borderRadius"),l=I("borderSpacing"),i=I("borderWidth"),s=I("contrast"),c=I("grayscale"),d=I("hueRotate"),u=I("invert"),p=I("gap"),f=I("gradientColorStops"),m=I("gradientColorStopPositions"),b=I("inset"),g=I("margin"),v=I("opacity"),h=I("padding"),y=I("saturate"),x=I("scale"),w=I("sepia"),E=I("skew"),k=I("space"),N=I("translate"),C=()=>["auto",X,r],O=()=>[X,r],S=()=>["",q,F],j=()=>["auto",V,X],P=()=>["","0",X],A=()=>[V,X];return{cacheSize:500,separator:":",theme:{colors:[ne],spacing:[q,F],blur:["none","",Y,X],brightness:A(),borderColor:[e],borderRadius:["none","","full",Y,X],borderSpacing:O(),borderWidth:S(),contrast:A(),grayscale:P(),hueRotate:A(),invert:P(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[Z,F],inset:C(),margin:C(),opacity:A(),padding:O(),saturate:A(),scale:A(),sepia:P(),skew:A(),space:O(),translate:O()},classGroups:{aspect:[{aspect:["auto","square","video",X]}],container:["container"],columns:[{columns:[Y]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",X]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",K,X]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",X]}],grow:[{grow:P()}],shrink:[{shrink:P()}],order:[{order:["first","last","none",K,X]}],"grid-cols":[{"grid-cols":[ne]}],"col-start-end":[{col:["auto",{span:["full",K,X]},X]}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":[ne]}],"row-start-end":[{row:["auto",{span:[K,X]},X]}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",X]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",X]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[k]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[k]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",X,r]}],"min-w":[{"min-w":[X,r,"min","max","fit"]}],"max-w":[{"max-w":[X,r,"none","full","min","max","fit","prose",{screen:[Y]},Y]}],h:[{h:[X,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[X,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Y,F]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",H]}],"font-family":[{font:[ne]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",X]}],"line-clamp":[{"line-clamp":["none",V,H]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",q,X]}],"list-image":[{"list-image":["none",X]}],"list-style-type":[{list:["none","disc","decimal",X]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",q,F]}],"underline-offset":[{"underline-offset":["auto",q,X]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",X]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",ee]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Q]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[q,X]}],"outline-w":[{outline:[q,F]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:S()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[q,F]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Y,oe]}],"shadow-color":[{shadow:[ne]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[o]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Y,X]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",X]}],duration:[{duration:A()}],ease:[{ease:["linear","in","out","in-out",X]}],delay:[{delay:A()}],animate:[{animate:["none","spin","ping","pulse","bounce",X]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[K,X]}],"translate-x":[{"translate-x":[N]}],"translate-y":[{"translate-y":[N]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",X]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",X]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",X]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[q,F,H]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function ue(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==fe?void 0:fe.variants))return v(pe,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:o}=fe,n=Object.keys(t).map((r=>{const n=null==e?void 0:e[r],a=null==o?void 0:o[r];if(null===n)return null;const l=g(n)||g(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,o]=r;return void 0===o||(e[t]=o),e}),{}),l=null==fe||null===(r=fe.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:n,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...o,...a}[r]):{...o,...a}[r]===t}))?[...e,t,n]:e}),[]);return v(pe,n,l,null==e?void 0:e.class,null==e?void 0:e.className)});function ge(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ve(...e){return l.useCallback(ge(...e),e)}l.forwardRef((function(e,r){var t=e.className,o=e.variant,n=e.size,a=m(e,me);return l.createElement("button",f({className:ue(be({variant:o,size:n,className:t})),ref:r},a))})).displayName="Button";var he=t(848);function ye(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const o=t.reduce(((r,{useScope:t,scopeName:o})=>({...r,...t(e)[`__scope${o}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:o})),[o])}};return t.scopeName=r.scopeName,t}function xe(e,r,{checkForDefaultPrevented:t=!0}={}){return function(o){if(e?.(o),!1===t||!o.defaultPrevented)return r?.(o)}}function we(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var Ee=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},ke=e=>{const{present:r,children:t}=e,o=function(e){const[r,t]=l.useState(),o=l.useRef({}),n=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=Ne(o.current);a.current="mounted"===s?e:"none"}),[s]),Ee((()=>{const r=o.current,t=n.current;if(t!==e){const o=a.current,l=Ne(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&o!==l?"ANIMATION_OUT":"UNMOUNT"),n.current=e}}),[e,c]),Ee((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=Ne(o.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!n.current)){const o=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=o)}))}},i=e=>{e.target===r&&(a.current=Ne(o.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(o.current=getComputedStyle(e)),t(e)}),[])}}(r),n="function"==typeof t?t({present:o.isPresent}):l.Children.only(t),a=ve(o.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(n));return"function"==typeof t||o.isPresent?l.cloneElement(n,{ref:a}):null};function Ne(e){return e?.animationName||"none"}ke.displayName="Presence",t(206);var Ce=l.forwardRef(((e,r)=>{const{children:t,...o}=e,n=l.Children.toArray(t),a=n.find(je);if(a){const e=a.props.children,t=n.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,he.jsx)(Oe,{...o,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,he.jsx)(Oe,{...o,ref:r,children:t})}));Ce.displayName="Slot";var Oe=l.forwardRef(((e,r)=>{const{children:t,...o}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Pe(o,t.props),ref:r?ge(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));Oe.displayName="SlotClone";var Se=({children:e})=>(0,he.jsx)(he.Fragment,{children:e});function je(e){return l.isValidElement(e)&&e.type===Se}function Pe(e,r){const t={...r};for(const o in r){const n=e[o],a=r[o];/^on[A-Z]/.test(o)?n&&a?t[o]=(...e)=>{a(...e),n(...e)}:n&&(t[o]=n):"style"===o?t[o]={...n,...a}:"className"===o&&(t[o]=[n,a].filter(Boolean).join(" "))}return{...e,...t}}var Ae=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:o,...n}=e,a=o?Ce:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,he.jsx)(a,{...n,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),Re="Checkbox",[Te,ze]=function(e,r=[]){let t=[];const o=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const o=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:o}})),[t,o])}};return o.scopeName=e,[function(r,o){const n=l.createContext(o),a=t.length;t=[...t,o];const i=r=>{const{scope:t,children:o,...i}=r,s=t?.[e]?.[a]||n,c=l.useMemo((()=>i),Object.values(i));return(0,he.jsx)(s.Provider,{value:c,children:o})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||n,c=l.useContext(s);if(c)return c;if(void 0!==o)return o;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},ye(o,...r)]}(Re),[Me,Ie]=Te(Re),_e=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:o,checked:n,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ve(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[o,n]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[o]=t,n=l.useRef(o),a=we(r);return l.useEffect((()=>{n.current!==o&&(a(o),n.current=o)}),[o,n,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:o,s=we(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else n(r)}),[a,e,n,s])]}({prop:n,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,he.jsxs)(Me,{scope:t,state:h,disabled:s,children:[(0,he.jsx)(Ae.button,{type:"button",role:"checkbox","aria-checked":Ue(h)?"mixed":h,"aria-required":i,"data-state":$e(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:xe(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:xe(e.onClick,(e=>{y((e=>!!Ue(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,he.jsx)(Ge,{control:f,bubbles:!g.current,name:o,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!Ue(a)&&a})]})}));_e.displayName=Re;var De="CheckboxIndicator",Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:o,...n}=e,a=Ie(De,t);return(0,he.jsx)(ke,{present:o||Ue(a.state)||!0===a.state,children:(0,he.jsx)(Ae.span,{"data-state":$e(a.state),"data-disabled":a.disabled?"":void 0,...n,ref:r,style:{pointerEvents:"none",...e.style}})})}));Le.displayName=De;var Ge=e=>{const{control:r,checked:t,bubbles:o=!0,defaultChecked:n,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return Ee((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const o=r[0];let n,a;if("borderBoxSize"in o){const e=o.borderBoxSize,r=Array.isArray(e)?e[0]:e;n=r.inlineSize,a=r.blockSize}else n=e.offsetWidth,a=e.offsetHeight;t({width:n,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&n){const r=new Event("click",{bubbles:o});e.indeterminate=Ue(t),n.call(e,!Ue(t)&&t),e.dispatchEvent(r)}}),[s,t,o]);const d=l.useRef(!Ue(t)&&t);return(0,he.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Ue(e){return"indeterminate"===e}function $e(e){return Ue(e)?"indeterminate":e?"checked":"unchecked"}var We=_e,Be=Le;const qe=d("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var Fe=["className"];function Ve(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}function He(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===o){var c=t.text||t,d=t.type||"preprint",u=c.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Xe[d]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===o){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Xe[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===o)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(o)){var x=n(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},n(t))};const Je=function(e){var r=e.data,t=e.columns,o=a((0,l.useState)(!1),2),n=o[0],s=o[1],c=a((0,l.useState)(r),2),d=c[0],p=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!n)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(u,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(n?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Ye,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ze,{isOpen:n,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,o,n,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(o=e.code)||void 0===o?void 0:o.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(n=e.omicModalities)||void 0===n?void 0:n.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));p(t),s(!1)}}))};function Qe(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],o=a((0,l.useState)(null),2),n=o[0],s=o[1],c=a((0,l.useState)(!0),2),d=c[0],u=c[1];return(0,l.useEffect)((function(){try{if(void 0!==window.transformerLLMs){var e=window.transformerLLMs.map((function(e){var r=function(e){return""===e||null==e||"None"===e||"-"===e?"-":e};return console.log("Processing item architecture:",e.architecture),{Model:e.model,Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Pre-Training Dataset":r(e.pre_training_dataset),"Input Embedding":r(e.input_embedding),Architecture:function(){var r=e.architecture;if(!r)return"-";var t=r.match(/\[(.*?)\]\((.*?)\)/);return t?{text:t[1],url:t[2],type:"link"}:r}(),"SSL Tasks":r(e.ssl_tasks),"Supervised Tasks":r(e.supervised_tasks),"Zero-Shot Tasks":r(e.zero_shot_tasks)}}));t(e)}else s("Data not available")}catch(e){console.error("Error accessing data:",e),s(e.message)}finally{u(!1)}}),[]),console.log("Rendering state:",{isLoading:d,error:n,hasData:!!r}),d?i().createElement("div",{className:"p-4"},"Loading..."):n?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",n):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Transformer LLMs"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(Je,{data:r,columns:["Model","Paper","Code","Omic Modalities","Pre-Training Dataset","Input Embedding","Architecture","SSL Tasks","Supervised Tasks","Zero-Shot Tasks"]}))):i().createElement("div",{className:"p-4"},"No data available")}t(338),document.getElementById("transformer-llms-root")&&(console.log("Mounting TransformerLLMs component"),ReactDOM.createRoot(document.getElementById("transformer-llms-root")).render(i().createElement(Qe,null)))})(); +(()=>{"use strict";var e={338:(e,r,t)=>{var n=t(206);n.createRoot,n.hydrateRoot},20:(e,r,t)=>{var n=t(594),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,i=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var n,a={},c=null,d=null;for(n in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(d=r.ref),r)l.call(r,n)&&!s.hasOwnProperty(n)&&(a[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===a[n]&&(a[n]=r[n]);return{$$typeof:o,type:e,key:c,ref:d,props:a,_owner:i.current}}r.Fragment=a,r.jsx=c,r.jsxs=c},848:(e,r,t)=>{e.exports=t(20)},594:e=>{e.exports=React},206:e=>{e.exports=ReactDOM}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var a=r[n]={exports:{}};return e[n](a,a.exports,t),a.exports}function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var l=t(594),i=t.n(l);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},d=(e,r)=>{const t=(0,l.forwardRef)((({color:t="currentColor",size:n=24,strokeWidth:o=2,absoluteStrokeWidth:a,children:i,...s},d)=>{return(0,l.createElement)("svg",{ref:d,...c,width:n,height:n,stroke:t,strokeWidth:a?24*Number(o)/Number(n):o,className:`lucide lucide-${u=e,u.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,...s},[...r.map((([e,r])=>(0,l.createElement)(e,r))),...(Array.isArray(i)?i:[i])||[]]);var u}));return t.displayName=`${e}`,t};const u=d("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);function p(e,r,t){return(r=function(e){var r=function(e){if("object"!=s(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=s(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function f(){return f=Object.assign?Object.assign.bind():function(e){for(var r=1;r"boolean"==typeof e?"".concat(e):0===e?"0":e,v=function(){for(var e,r,t=0,n="";t{const r=k(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{const t=e.split("-");return""===t[0]&&1!==t.length&&t.shift(),x(t,r)||E(e)},getConflictingClassGroupIds:(e,r)=>{const o=t[e]||[];return r&&n[e]?[...o,...n[e]]:o}}},x=(e,r)=>{if(0===e.length)return r.classGroupId;const t=e[0],n=r.nextPart.get(t),o=n?x(e.slice(1),n):void 0;if(o)return o;if(0===r.validators.length)return;const a=e.join("-");return r.validators.find((({validator:e})=>e(a)))?.classGroupId},w=/^\[(.+)\]$/,E=e=>{if(w.test(e)){const r=w.exec(e)[1],t=r?.substring(0,r.indexOf(":"));if(t)return"arbitrary.."+t}},k=e=>{const{theme:r,prefix:t}=e,n={nextPart:new Map,validators:[]};return S(Object.entries(e.classGroups),t).forEach((([e,t])=>{N(t,n,e,r)})),n},N=(e,r,t,n)=>{e.forEach((e=>{if("string"!=typeof e){if("function"==typeof e)return O(e)?void N(e(n),r,t,n):void r.validators.push({validator:e,classGroupId:t});Object.entries(e).forEach((([e,o])=>{N(o,C(r,e),t,n)}))}else(""===e?r:C(r,e)).classGroupId=t}))},C=(e,r)=>{let t=e;return r.split("-").forEach((e=>{t.nextPart.has(e)||t.nextPart.set(e,{nextPart:new Map,validators:[]}),t=t.nextPart.get(e)})),t},O=e=>e.isThemeGetter,S=(e,r)=>r?e.map((([e,t])=>[e,t.map((e=>"string"==typeof e?r+e:"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,t])=>[r+e,t]))):e))])):e,j=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,t=new Map,n=new Map;const o=(o,a)=>{t.set(o,a),r++,r>e&&(r=0,n=t,t=new Map)};return{get(e){let r=t.get(e);return void 0!==r?r:void 0!==(r=n.get(e))?(o(e,r),r):void 0},set(e,r){t.has(e)?t.set(e,r):o(e,r)}}},A=e=>{const{separator:r,experimentalParseClassName:t}=e,n=1===r.length,o=r[0],a=r.length,l=e=>{const t=[];let l,i=0,s=0;for(let c=0;cs?l-s:void 0}};return t?e=>t({className:e,parseClassName:l}):l},P=e=>{if(e.length<=1)return e;const r=[];let t=[];return e.forEach((e=>{"["===e[0]?(r.push(...t.sort(),e),t=[]):t.push(e)})),r.push(...t.sort()),r},R=/\s+/;function T(){let e,r,t=0,n="";for(;t{if("string"==typeof e)return e;let r,t="";for(let n=0;nr(e)),e());return t=(e=>({cache:j(e.cacheSize),parseClassName:A(e),...y(e)}))(s),n=t.cache.get,o=t.cache.set,a=l,l(i)};function l(e){const r=n(e);if(r)return r;const a=((e,r)=>{const{parseClassName:t,getClassGroupId:n,getConflictingClassGroupIds:o}=r,a=[],l=e.trim().split(R);let i="";for(let e=l.length-1;e>=0;e-=1){const r=l[e],{modifiers:s,hasImportantModifier:c,baseClassName:d,maybePostfixModifierPosition:u}=t(r);let p=Boolean(u),f=n(p?d.substring(0,u):d);if(!f){if(!p){i=r+(i.length>0?" "+i:i);continue}if(f=n(d),!f){i=r+(i.length>0?" "+i:i);continue}p=!1}const m=P(s).join(":"),b=c?m+"!":m,g=b+f;if(a.includes(g))continue;a.push(g);const v=o(f,p);for(let e=0;e0?" "+i:i)}return i})(e,t);return o(e,a),a}return function(){return a(T.apply(null,arguments))}}const I=e=>{const r=r=>r[e]||[];return r.isThemeGetter=!0,r},_=/^\[(?:([a-z-]+):)?(.+)\]$/i,D=/^\d+\/\d+$/,L=new Set(["px","full","screen"]),G=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,U=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,W=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,B=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,q=e=>V(e)||L.has(e)||D.test(e),F=e=>ae(e,"length",le),V=e=>Boolean(e)&&!Number.isNaN(Number(e)),H=e=>ae(e,"number",V),K=e=>Boolean(e)&&Number.isInteger(Number(e)),Z=e=>e.endsWith("%")&&V(e.slice(0,-1)),X=e=>_.test(e),Y=e=>G.test(e),J=new Set(["length","size","percentage"]),Q=e=>ae(e,J,ie),ee=e=>ae(e,"position",ie),re=new Set(["image","url"]),te=e=>ae(e,re,ce),ne=e=>ae(e,"",se),oe=()=>!0,ae=(e,r,t)=>{const n=_.exec(e);return!!n&&(n[1]?"string"==typeof r?n[1]===r:r.has(n[1]):t(n[2]))},le=e=>U.test(e)&&!$.test(e),ie=()=>!1,se=e=>W.test(e),ce=e=>B.test(e),de=M((Symbol.toStringTag,()=>{const e=I("colors"),r=I("spacing"),t=I("blur"),n=I("brightness"),o=I("borderColor"),a=I("borderRadius"),l=I("borderSpacing"),i=I("borderWidth"),s=I("contrast"),c=I("grayscale"),d=I("hueRotate"),u=I("invert"),p=I("gap"),f=I("gradientColorStops"),m=I("gradientColorStopPositions"),b=I("inset"),g=I("margin"),v=I("opacity"),h=I("padding"),y=I("saturate"),x=I("scale"),w=I("sepia"),E=I("skew"),k=I("space"),N=I("translate"),C=()=>["auto",X,r],O=()=>[X,r],S=()=>["",q,F],j=()=>["auto",V,X],A=()=>["","0",X],P=()=>[V,X];return{cacheSize:500,separator:":",theme:{colors:[oe],spacing:[q,F],blur:["none","",Y,X],brightness:P(),borderColor:[e],borderRadius:["none","","full",Y,X],borderSpacing:O(),borderWidth:S(),contrast:P(),grayscale:A(),hueRotate:P(),invert:A(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[Z,F],inset:C(),margin:C(),opacity:P(),padding:O(),saturate:P(),scale:P(),sepia:A(),skew:P(),space:O(),translate:O()},classGroups:{aspect:[{aspect:["auto","square","video",X]}],container:["container"],columns:[{columns:[Y]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",X]}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[b]}],"inset-x":[{"inset-x":[b]}],"inset-y":[{"inset-y":[b]}],start:[{start:[b]}],end:[{end:[b]}],top:[{top:[b]}],right:[{right:[b]}],bottom:[{bottom:[b]}],left:[{left:[b]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",K,X]}],basis:[{basis:C()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",X]}],grow:[{grow:A()}],shrink:[{shrink:A()}],order:[{order:["first","last","none",K,X]}],"grid-cols":[{"grid-cols":[oe]}],"col-start-end":[{col:["auto",{span:["full",K,X]},X]}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":[oe]}],"row-start-end":[{row:["auto",{span:[K,X]},X]}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",X]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",X]}],gap:[{gap:[p]}],"gap-x":[{"gap-x":[p]}],"gap-y":[{"gap-y":[p]}],"justify-content":[{justify:["normal","start","end","center","between","around","evenly","stretch"]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[k]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[k]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",X,r]}],"min-w":[{"min-w":[X,r,"min","max","fit"]}],"max-w":[{"max-w":[X,r,"none","full","min","max","fit","prose",{screen:[Y]},Y]}],h:[{h:[X,r,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[X,r,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[X,r,"auto","min","max","fit"]}],"font-size":[{text:["base",Y,F]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",H]}],"font-family":[{font:[oe]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractons"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",X]}],"line-clamp":[{"line-clamp":["none",V,H]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",q,X]}],"list-image":[{"list-image":["none",X]}],"list-style-type":[{list:["none","disc","decimal",X]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[v]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[v]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","none","wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",q,F]}],"underline-offset":[{"underline-offset":["auto",q,X]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",X]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",X]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[v]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top",ee]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Q]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},te]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[v]}],"border-style":[{border:["solid","dashed","dotted","double","none","hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[v]}],"divide-style":[{divide:["solid","dashed","dotted","double","none"]}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["","solid","dashed","dotted","double","none"]}],"outline-offset":[{"outline-offset":[q,X]}],"outline-w":[{outline:[q,F]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:S()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[v]}],"ring-offset-w":[{"ring-offset":[q,F]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Y,ne]}],"shadow-color":[{shadow:[oe]}],opacity:[{opacity:[v]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],filter:[{filter:["","none"]}],blur:[{blur:[t]}],brightness:[{brightness:[n]}],contrast:[{contrast:[s]}],"drop-shadow":[{"drop-shadow":["","none",Y,X]}],grayscale:[{grayscale:[c]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[u]}],saturate:[{saturate:[y]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[t]}],"backdrop-brightness":[{"backdrop-brightness":[n]}],"backdrop-contrast":[{"backdrop-contrast":[s]}],"backdrop-grayscale":[{"backdrop-grayscale":[c]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[v]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",X]}],duration:[{duration:P()}],ease:[{ease:["linear","in","out","in-out",X]}],delay:[{delay:P()}],animate:[{animate:["none","spin","ping","pulse","bounce",X]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[K,X]}],"translate-x":[{"translate-x":[N]}],"translate-y":[{"translate-y":[N]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",X]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",X]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",X]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[q,F,H]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}}));function ue(){for(var e=arguments.length,r=new Array(e),t=0;t{var r;if(null==(null==fe?void 0:fe.variants))return v(pe,null==e?void 0:e.class,null==e?void 0:e.className);const{variants:t,defaultVariants:n}=fe,o=Object.keys(t).map((r=>{const o=null==e?void 0:e[r],a=null==n?void 0:n[r];if(null===o)return null;const l=g(o)||g(a);return t[r][l]})),a=e&&Object.entries(e).reduce(((e,r)=>{let[t,n]=r;return void 0===n||(e[t]=n),e}),{}),l=null==fe||null===(r=fe.compoundVariants)||void 0===r?void 0:r.reduce(((e,r)=>{let{class:t,className:o,...l}=r;return Object.entries(l).every((e=>{let[r,t]=e;return Array.isArray(t)?t.includes({...n,...a}[r]):{...n,...a}[r]===t}))?[...e,t,o]:e}),[]);return v(pe,o,l,null==e?void 0:e.class,null==e?void 0:e.className)});function ge(...e){return r=>e.forEach((e=>function(e,r){"function"==typeof e?e(r):null!=e&&(e.current=r)}(e,r)))}function ve(...e){return l.useCallback(ge(...e),e)}l.forwardRef((function(e,r){var t=e.className,n=e.variant,o=e.size,a=m(e,me);return l.createElement("button",f({className:ue(be({variant:n,size:o,className:t})),ref:r},a))})).displayName="Button";var he=t(848);function ye(...e){const r=e[0];if(1===e.length)return r;const t=()=>{const t=e.map((e=>({useScope:e(),scopeName:e.scopeName})));return function(e){const n=t.reduce(((r,{useScope:t,scopeName:n})=>({...r,...t(e)[`__scope${n}`]})),{});return l.useMemo((()=>({[`__scope${r.scopeName}`]:n})),[n])}};return t.scopeName=r.scopeName,t}function xe(e,r,{checkForDefaultPrevented:t=!0}={}){return function(n){if(e?.(n),!1===t||!n.defaultPrevented)return r?.(n)}}function we(e){const r=l.useRef(e);return l.useEffect((()=>{r.current=e})),l.useMemo((()=>(...e)=>r.current?.(...e)),[])}var Ee=Boolean(globalThis?.document)?l.useLayoutEffect:()=>{},ke=e=>{const{present:r,children:t}=e,n=function(e){const[r,t]=l.useState(),n=l.useRef({}),o=l.useRef(e),a=l.useRef("none"),i=e?"mounted":"unmounted",[s,c]=function(e,r){return l.useReducer(((e,t)=>r[e][t]??e),e)}(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return l.useEffect((()=>{const e=Ne(n.current);a.current="mounted"===s?e:"none"}),[s]),Ee((()=>{const r=n.current,t=o.current;if(t!==e){const n=a.current,l=Ne(r);c(e?"MOUNT":"none"===l||"none"===r?.display?"UNMOUNT":t&&n!==l?"ANIMATION_OUT":"UNMOUNT"),o.current=e}}),[e,c]),Ee((()=>{if(r){let e;const t=r.ownerDocument.defaultView??window,l=a=>{const l=Ne(n.current).includes(a.animationName);if(a.target===r&&l&&(c("ANIMATION_END"),!o.current)){const n=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout((()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=n)}))}},i=e=>{e.target===r&&(a.current=Ne(n.current))};return r.addEventListener("animationstart",i),r.addEventListener("animationcancel",l),r.addEventListener("animationend",l),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",i),r.removeEventListener("animationcancel",l),r.removeEventListener("animationend",l)}}c("ANIMATION_END")}),[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:l.useCallback((e=>{e&&(n.current=getComputedStyle(e)),t(e)}),[])}}(r),o="function"==typeof t?t({present:n.isPresent}):l.Children.only(t),a=ve(n.ref,function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(o));return"function"==typeof t||n.isPresent?l.cloneElement(o,{ref:a}):null};function Ne(e){return e?.animationName||"none"}ke.displayName="Presence",t(206);var Ce=l.forwardRef(((e,r)=>{const{children:t,...n}=e,o=l.Children.toArray(t),a=o.find(je);if(a){const e=a.props.children,t=o.map((r=>r===a?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:r));return(0,he.jsx)(Oe,{...n,ref:r,children:l.isValidElement(e)?l.cloneElement(e,void 0,t):null})}return(0,he.jsx)(Oe,{...n,ref:r,children:t})}));Ce.displayName="Slot";var Oe=l.forwardRef(((e,r)=>{const{children:t,...n}=e;if(l.isValidElement(t)){const e=function(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning;return t?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=r&&"isReactWarning"in r&&r.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}(t);return l.cloneElement(t,{...Ae(n,t.props),ref:r?ge(r,e):e})}return l.Children.count(t)>1?l.Children.only(null):null}));Oe.displayName="SlotClone";var Se=({children:e})=>(0,he.jsx)(he.Fragment,{children:e});function je(e){return l.isValidElement(e)&&e.type===Se}function Ae(e,r){const t={...r};for(const n in r){const o=e[n],a=r[n];/^on[A-Z]/.test(n)?o&&a?t[n]=(...e)=>{a(...e),o(...e)}:o&&(t[n]=o):"style"===n?t[n]={...o,...a}:"className"===n&&(t[n]=[o,a].filter(Boolean).join(" "))}return{...e,...t}}var Pe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce(((e,r)=>{const t=l.forwardRef(((e,t)=>{const{asChild:n,...o}=e,a=n?Ce:r;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,he.jsx)(a,{...o,ref:t})}));return t.displayName=`Primitive.${r}`,{...e,[r]:t}}),{}),Re="Checkbox",[Te,ze]=function(e,r=[]){let t=[];const n=()=>{const r=t.map((e=>l.createContext(e)));return function(t){const n=t?.[e]||r;return l.useMemo((()=>({[`__scope${e}`]:{...t,[e]:n}})),[t,n])}};return n.scopeName=e,[function(r,n){const o=l.createContext(n),a=t.length;t=[...t,n];const i=r=>{const{scope:t,children:n,...i}=r,s=t?.[e]?.[a]||o,c=l.useMemo((()=>i),Object.values(i));return(0,he.jsx)(s.Provider,{value:c,children:n})};return i.displayName=r+"Provider",[i,function(t,i){const s=i?.[e]?.[a]||o,c=l.useContext(s);if(c)return c;if(void 0!==n)return n;throw new Error(`\`${t}\` must be used within \`${r}\``)}]},ye(n,...r)]}(Re),[Me,Ie]=Te(Re),_e=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,name:n,checked:o,defaultChecked:a,required:i,disabled:s,value:c="on",onCheckedChange:d,form:u,...p}=e,[f,m]=l.useState(null),b=ve(r,(e=>m(e))),g=l.useRef(!1),v=!f||u||!!f.closest("form"),[h=!1,y]=function({prop:e,defaultProp:r,onChange:t=()=>{}}){const[n,o]=function({defaultProp:e,onChange:r}){const t=l.useState(e),[n]=t,o=l.useRef(n),a=we(r);return l.useEffect((()=>{o.current!==n&&(a(n),o.current=n)}),[n,o,a]),t}({defaultProp:r,onChange:t}),a=void 0!==e,i=a?e:n,s=we(t);return[i,l.useCallback((r=>{if(a){const t="function"==typeof r?r(e):r;t!==e&&s(t)}else o(r)}),[a,e,o,s])]}({prop:o,defaultProp:a,onChange:d}),x=l.useRef(h);return l.useEffect((()=>{const e=f?.form;if(e){const r=()=>y(x.current);return e.addEventListener("reset",r),()=>e.removeEventListener("reset",r)}}),[f,y]),(0,he.jsxs)(Me,{scope:t,state:h,disabled:s,children:[(0,he.jsx)(Pe.button,{type:"button",role:"checkbox","aria-checked":Ue(h)?"mixed":h,"aria-required":i,"data-state":$e(h),"data-disabled":s?"":void 0,disabled:s,value:c,...p,ref:b,onKeyDown:xe(e.onKeyDown,(e=>{"Enter"===e.key&&e.preventDefault()})),onClick:xe(e.onClick,(e=>{y((e=>!!Ue(e)||!e)),v&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())}))}),v&&(0,he.jsx)(Ge,{control:f,bubbles:!g.current,name:n,value:c,checked:h,required:i,disabled:s,form:u,style:{transform:"translateX(-100%)"},defaultChecked:!Ue(a)&&a})]})}));_e.displayName=Re;var De="CheckboxIndicator",Le=l.forwardRef(((e,r)=>{const{__scopeCheckbox:t,forceMount:n,...o}=e,a=Ie(De,t);return(0,he.jsx)(ke,{present:n||Ue(a.state)||!0===a.state,children:(0,he.jsx)(Pe.span,{"data-state":$e(a.state),"data-disabled":a.disabled?"":void 0,...o,ref:r,style:{pointerEvents:"none",...e.style}})})}));Le.displayName=De;var Ge=e=>{const{control:r,checked:t,bubbles:n=!0,defaultChecked:o,...a}=e,i=l.useRef(null),s=function(e){const r=l.useRef({value:e,previous:e});return l.useMemo((()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous)),[e])}(t),c=function(e){const[r,t]=l.useState(void 0);return Ee((()=>{if(e){t({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver((r=>{if(!Array.isArray(r))return;if(!r.length)return;const n=r[0];let o,a;if("borderBoxSize"in n){const e=n.borderBoxSize,r=Array.isArray(e)?e[0]:e;o=r.inlineSize,a=r.blockSize}else o=e.offsetWidth,a=e.offsetHeight;t({width:o,height:a})}));return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}t(void 0)}),[e]),r}(r);l.useEffect((()=>{const e=i.current,r=window.HTMLInputElement.prototype,o=Object.getOwnPropertyDescriptor(r,"checked").set;if(s!==t&&o){const r=new Event("click",{bubbles:n});e.indeterminate=Ue(t),o.call(e,!Ue(t)&&t),e.dispatchEvent(r)}}),[s,t,n]);const d=l.useRef(!Ue(t)&&t);return(0,he.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:o??d.current,...a,tabIndex:-1,ref:i,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function Ue(e){return"indeterminate"===e}function $e(e){return Ue(e)?"indeterminate":e?"checked":"unchecked"}var We=_e,Be=Le;const qe=d("Check",[["polyline",{points:"20 6 9 17 4 12",key:"10jjfj"}]]);var Fe=["className"];function Ve(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function He(e){for(var r=1;r').concat(r,"")})):"-";return i().createElement("td",{className:"px-4 py-2",dangerouslySetInnerHTML:{__html:l}})}if("PAPER"===n){var c=t.text||t,d=t.type||"preprint",u=c.match(/\[(.*?)\]\((.*?)\)/);if(u){var p=a(u,3),f=(p[0],p[1]),m=p[2];return i().createElement("td",{className:"px-4 py-2"},i().createElement("span",{className:"mr-2"},Xe[d]),i().createElement("a",{href:m,className:"text-blue-600 hover:underline",target:"_blank",rel:"noopener noreferrer"},f))}}if("CODE"===n){var b=t.text||t,g=t.type||"evaluation_only",v=null==b?void 0:b.match(/\[(.*?)\]\((.*?)\)/);if(v){var h=a(v,3),y=(h[0],h[1],h[2]);return i().createElement("td",{className:"px-4 py-2"},i().createElement("a",{href:y,className:"text-gray-600 hover:text-gray-800",target:"_blank",rel:"noopener noreferrer"},Xe[g]))}return i().createElement("td",{className:"px-4 py-2"},"-")}if("PRE-TRAINING DATASET"===n)return i().createElement("td",{className:"px-4 py-2"},""===t?"-":t);if(["OMIC MODALITIES","PRE-TRAINING DATASET","INPUT EMBEDDING","ARCHITECTURE","SSL TASKS","SUPERVISED TASKS","ZERO-SHOT TASKS"].includes(n)){var x=o(t);return i().createElement("td",{className:"px-4 py-2"},x||"-")}return i().createElement("td",{className:"px-4 py-2"},o(t))};const Je=function(e){var r=e.data,t=e.columns,n=a((0,l.useState)(!1),2),o=n[0],s=n[1],c=a((0,l.useState)(r),2),d=c[0],p=c[1];return i().createElement("div",{className:"w-full"},i().createElement("div",{className:"flex justify-end mb-4"},i().createElement("button",{onClick:function(){return s(!o)},className:"flex items-center gap-2 px-3 py-2 text-sm bg-gray-100 hover:bg-gray-200 rounded-md transition-colors","data-testid":"filter-button"},i().createElement(u,{className:"w-4 h-4"}),i().createElement("span",{className:"hidden sm:inline"},"Filter"))),i().createElement("div",{className:"transition-all duration-300 ".concat(o?"sm:mr-96 md:mr-80":"")},i().createElement("table",{className:"min-w-full"},i().createElement("thead",null,i().createElement("tr",null,t.map((function(e){return i().createElement("th",{key:e,className:"px-4 py-2 text-left bg-gray-100 font-medium"},e)})))),i().createElement("tbody",null,(d||r).map((function(e,r){return i().createElement("tr",{key:r,className:r%2==0?"bg-white":"bg-gray-50"},t.map((function(r){return i().createElement(Ye,{key:r,content:e[r],column:r.toUpperCase()})})))}))))),i().createElement(Ze,{isOpen:o,onClose:function(){return s(!1)},onApplyFilters:function(e){var t=r.filter((function(r){var t,n,o,a,l;if((null===(t=e.paper)||void 0===t?void 0:t.length)>0){var i,s=null===(i=r.Paper)||void 0===i?void 0:i.type;if(!e.paper.includes(s))return!1}if((null===(n=e.code)||void 0===n?void 0:n.length)>0){var c,d=null===(c=r.Code)||void 0===c?void 0:c.type;if(!e.code.includes(d))return!1}if((null===(o=e.omicModalities)||void 0===o?void 0:o.length)>0){var u=String(r["Omic Modalities"]||"").toLowerCase();if(!e.omicModalities.some((function(e){return"Bulk RNA-seq"===e?/bulk/i.test(u):u.includes(e.toLowerCase())})))return!1}if((null===(a=e.inputEmbeddings)||void 0===a?void 0:a.length)>0){var p=String(r["Input Embedding"]||"").toLowerCase();if(!e.inputEmbeddings.some((function(e){return p.includes(e.toLowerCase())})))return!1}if((null===(l=e.architecture)||void 0===l?void 0:l.length)>0){var f=String(r.Architecture||"").toLowerCase();if(!e.architecture.some((function(e){return f.includes(e.toLowerCase())})))return!1}return!0}));p(t),s(!1)}}))};function Qe(){var e=a((0,l.useState)(null),2),r=e[0],t=e[1],n=a((0,l.useState)(null),2),o=n[0],s=n[1],c=a((0,l.useState)(!0),2),d=c[0],u=c[1];return(0,l.useEffect)((function(){try{if(void 0!==window.transformerLLMs){var e=window.transformerLLMs.map((function(e){var r=function(e){return""===e||null==e||"None"===e||"-"===e?"-":e};return console.log("Processing item architecture:",e.architecture),{Model:e.model,Paper:{text:e.paper.text,type:e.paper.type},Code:{text:e.code.text,type:e.code.type},"Omic Modalities":Array.isArray(e.omic_modalities)?e.omic_modalities.join(", "):r(e.omic_modalities),"Pre-Training Dataset":r(e.pre_training_dataset),"Input Embedding":r(e.input_embedding),Architecture:function(){var r=e.architecture;if(!r)return"-";var t=r.match(/\[(.*?)\]\((.*?)\)/);return t?{text:t[1],url:t[2],type:"link"}:r}(),"SSL Tasks":r(e.ssl_tasks),"Supervised Tasks":r(e.supervised_tasks),"Zero-Shot Tasks":r(e.zero_shot_tasks)}}));t(e)}else s("Data not available")}catch(e){console.error("Error accessing data:",e),s(e.message)}finally{u(!1)}}),[]),console.log("Rendering state:",{isLoading:d,error:o,hasData:!!r}),d?i().createElement("div",{className:"p-4"},"Loading..."):o?i().createElement("div",{className:"p-4 text-red-600"},"Error: ",o):null!=r&&r.length?i().createElement("div",{className:"w-full"},i().createElement("h1",{className:"text-2xl font-normal mb-4 text-center"},"Transformer LLMs"),i().createElement("div",{className:"w-full overflow-hidden"},i().createElement(Je,{data:r,columns:["Model","Paper","Code","Omic Modalities","Pre-Training Dataset","Input Embedding","Architecture","SSL Tasks","Supervised Tasks","Zero-Shot Tasks"]}))):i().createElement("div",{className:"p-4"},"No data available")}t(338),document.getElementById("transformer-llms-root")&&(console.log("Mounting TransformerLLMs component"),ReactDOM.createRoot(document.getElementById("transformer-llms-root")).render(i().createElement(Qe,null)))})(); //# sourceMappingURL=transformer-llms.bundle.js.map \ No newline at end of file diff --git a/assets/js/dist/transformer-llms.bundle.js.map b/assets/js/dist/transformer-llms.bundle.js.map index 58e5581..083141e 100644 --- a/assets/js/dist/transformer-llms.bundle.js.map +++ b/assets/js/dist/transformer-llms.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"transformer-llms.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react-dom/client.js","webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/transformer-llms.jsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","module.exports = ReactDOM;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Reproducible 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","import React, { useState, useEffect } from 'react';\nimport FilterableTable from '../components/FilterableTable';\nimport { mountReactComponent } from '../utils/mount';\nimport FilterButton from '../components/FilterButton';\nimport FilterPanel from '../components/FilterPanel';\n\n\nfunction TransformerLLMs() {\n const [data, setData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n \n useEffect(() => {\n try {\n if (typeof window.transformerLLMs !== 'undefined') {\n const processedData = window.transformerLLMs.map(item => {\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None' || value === '-') {\n return '-';\n }\n return value;\n };\n\n console.log('Processing item architecture:', item.architecture);\n\n return {\n Model: item.model,\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Pre-Training Dataset': processEmptyValue(item.pre_training_dataset),\n 'Input Embedding': processEmptyValue(item.input_embedding),\n Architecture: (() => {\n const arch = item.architecture;\n if (!arch) return '-';\n \n const linkMatch = arch.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (linkMatch) {\n return {\n text: linkMatch[1],\n url: linkMatch[2],\n type: 'link'\n };\n }\n \n return arch;\n })(),\n 'SSL Tasks': processEmptyValue(item.ssl_tasks),\n 'Supervised Tasks': processEmptyValue(item.supervised_tasks),\n 'Zero-Shot Tasks': processEmptyValue(item.zero_shot_tasks)\n };\n });\n \n setData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n console.log('Rendering state:', { isLoading, error, hasData: !!data });\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Transformer LLMs

\n
\n \n
\n
\n );\n}\n\nexport default TransformerLLMs;\n\nif (document.getElementById('transformer-llms-root')) {\n console.log('Mounting TransformerLLMs component');\n const root = ReactDOM.createRoot(document.getElementById('transformer-llms-root'));\n root.render();\n}\n"],"names":["m","createRoot","hydrateRoot","f","k","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","ReactDOM","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","_slicedToArray","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","_defineProperty","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","TransformerLLMs","setData","error","setError","_useState6","isLoading","setIsLoading","useEffect","transformerLLMs","processedData","processEmptyValue","console","log","Model","model","omic_modalities","pre_training_dataset","input_embedding","linkMatch","ssl_tasks","supervised_tasks","zero_shot_tasks","err","message","hasData","FilterableTable","getElementById","render"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"transformer-llms.bundle.js","mappings":"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","sources":["webpack://single-cell-transformers/./node_modules/react-dom/client.js","webpack://single-cell-transformers/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://single-cell-transformers/./node_modules/react/jsx-runtime.js","webpack://single-cell-transformers/external var \"React\"","webpack://single-cell-transformers/external var \"ReactDOM\"","webpack://single-cell-transformers/webpack/bootstrap","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://single-cell-transformers/webpack/runtime/compat get default export","webpack://single-cell-transformers/webpack/runtime/define property getters","webpack://single-cell-transformers/webpack/runtime/hasOwnProperty shorthand","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/defaultAttributes.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/createLucideIcon.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/filter.mjs","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://single-cell-transformers/./node_modules/class-variance-authority/node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/class-variance-authority/dist/index.mjs","webpack://single-cell-transformers/./node_modules/clsx/dist/clsx.mjs","webpack://single-cell-transformers/./node_modules/tailwind-merge/dist/bundle-mjs.mjs","webpack://single-cell-transformers/./assets/js/lib/utils.js","webpack://single-cell-transformers/./assets/js/components/ui/button.jsx","webpack://single-cell-transformers/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://single-cell-transformers/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://single-cell-transformers/./node_modules/lucide-react/dist/esm/icons/check.mjs","webpack://single-cell-transformers/./assets/js/components/ui/checkbox.jsx","webpack://single-cell-transformers/./assets/js/components/FilterPanel.jsx","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://single-cell-transformers/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://single-cell-transformers/./assets/js/components/FilterableTable.jsx","webpack://single-cell-transformers/./assets/js/pages/transformer-llms.jsx"],"sourcesContent":["'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = React;","module.exports = ReactDOM;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * lucide-react v0.0.1 - ISC\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, children, ...rest }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: `lucide lucide-${toKebabCase(iconName)}`,\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]) || []\n ]\n )\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\nvar createLucideIcon$1 = createLucideIcon;\n\nexport { createLucideIcon$1 as default, toKebabCase };\n//# sourceMappingURL=createLucideIcon.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Filter = createLucideIcon(\"Filter\", [\n [\n \"polygon\",\n { points: \"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\", key: \"1yg77f\" }\n ]\n]);\n\nexport { Filter as default };\n//# sourceMappingURL=filter.mjs.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n prefix\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);\n prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {\n processClassesRecursively(classGroup, classMap, classGroupId, theme);\n });\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\nconst getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {\n if (!prefix) {\n return classGroupEntries;\n }\n return classGroupEntries.map(([classGroupId, classGroup]) => {\n const prefixedClassGroup = classGroup.map(classDefinition => {\n if (typeof classDefinition === 'string') {\n return prefix + classDefinition;\n }\n if (typeof classDefinition === 'object') {\n return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));\n }\n return classDefinition;\n });\n return [classGroupId, prefixedClassGroup];\n });\n};\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst createParseClassName = config => {\n const {\n separator,\n experimentalParseClassName\n } = config;\n const isSeparatorSingleCharacter = separator.length === 1;\n const firstSeparatorCharacter = separator[0];\n const separatorLength = separator.length;\n // parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n const parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0) {\n if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + separatorLength;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);\n const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (experimentalParseClassName) {\n return className => experimentalParseClassName({\n className,\n parseClassName\n });\n }\n return parseClassName;\n};\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isArbitraryVariant = modifier[0] === '[';\n if (isArbitraryVariant) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n let hasPostfixModifier = Boolean(maybePostfixModifierPosition);\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:([a-z-]+):)?(.+)\\]$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst stringLengths = /*#__PURE__*/new Set(['px', 'full', 'screen']);\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isLength = value => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, 'length', isLengthOnly);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isArbitraryNumber = value => getIsArbitraryValue(value, 'number', isNumber);\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isArbitrarySize = value => getIsArbitraryValue(value, sizeLabels, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, 'position', isNever);\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isArbitraryImage = value => getIsArbitraryValue(value, imageLabels, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, '', isShadow);\nconst isAny = () => true;\nconst getIsArbitraryValue = (value, label, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return typeof label === 'string' ? result[1] === label : label.has(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isInteger,\n isLength,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n const colors = fromTheme('colors');\n const spacing = fromTheme('spacing');\n const blur = fromTheme('blur');\n const brightness = fromTheme('brightness');\n const borderColor = fromTheme('borderColor');\n const borderRadius = fromTheme('borderRadius');\n const borderSpacing = fromTheme('borderSpacing');\n const borderWidth = fromTheme('borderWidth');\n const contrast = fromTheme('contrast');\n const grayscale = fromTheme('grayscale');\n const hueRotate = fromTheme('hueRotate');\n const invert = fromTheme('invert');\n const gap = fromTheme('gap');\n const gradientColorStops = fromTheme('gradientColorStops');\n const gradientColorStopPositions = fromTheme('gradientColorStopPositions');\n const inset = fromTheme('inset');\n const margin = fromTheme('margin');\n const opacity = fromTheme('opacity');\n const padding = fromTheme('padding');\n const saturate = fromTheme('saturate');\n const scale = fromTheme('scale');\n const sepia = fromTheme('sepia');\n const skew = fromTheme('skew');\n const space = fromTheme('space');\n const translate = fromTheme('translate');\n const getOverscroll = () => ['auto', 'contain', 'none'];\n const getOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const getSpacingWithAutoAndArbitrary = () => ['auto', isArbitraryValue, spacing];\n const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];\n const getLengthWithEmptyAndArbitrary = () => ['', isLength, isArbitraryLength];\n const getNumberWithAutoAndArbitrary = () => ['auto', isNumber, isArbitraryValue];\n const getPositions = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const getLineStyles = () => ['solid', 'dashed', 'dotted', 'double', 'none'];\n const getBlendModes = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const getAlign = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch'];\n const getZeroAndEmpty = () => ['', '0', isArbitraryValue];\n const getBreaks = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];\n return {\n cacheSize: 500,\n separator: ':',\n theme: {\n colors: [isAny],\n spacing: [isLength, isArbitraryLength],\n blur: ['none', '', isTshirtSize, isArbitraryValue],\n brightness: getNumberAndArbitrary(),\n borderColor: [colors],\n borderRadius: ['none', '', 'full', isTshirtSize, isArbitraryValue],\n borderSpacing: getSpacingWithArbitrary(),\n borderWidth: getLengthWithEmptyAndArbitrary(),\n contrast: getNumberAndArbitrary(),\n grayscale: getZeroAndEmpty(),\n hueRotate: getNumberAndArbitrary(),\n invert: getZeroAndEmpty(),\n gap: getSpacingWithArbitrary(),\n gradientColorStops: [colors],\n gradientColorStopPositions: [isPercent, isArbitraryLength],\n inset: getSpacingWithAutoAndArbitrary(),\n margin: getSpacingWithAutoAndArbitrary(),\n opacity: getNumberAndArbitrary(),\n padding: getSpacingWithArbitrary(),\n saturate: getNumberAndArbitrary(),\n scale: getNumberAndArbitrary(),\n sepia: getZeroAndEmpty(),\n skew: getNumberAndArbitrary(),\n space: getSpacingWithArbitrary(),\n translate: getSpacingWithArbitrary()\n },\n classGroups: {\n // Layout\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', 'video', isArbitraryValue]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isTshirtSize]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': getBreaks()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': getBreaks()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...getPositions(), isArbitraryValue]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: getOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': getOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': getOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: getOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': getOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': getOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: [inset]\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': [inset]\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': [inset]\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: [inset]\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: [inset]\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: [inset]\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: [inset]\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: [inset]\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: [inset]\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: ['auto', isInteger, isArbitraryValue]\n }],\n // Flexbox and Grid\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: getSpacingWithAutoAndArbitrary()\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['wrap', 'wrap-reverse', 'nowrap']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: ['1', 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: getZeroAndEmpty()\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: getZeroAndEmpty()\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: ['first', 'last', 'none', isInteger, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': [isAny]\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: ['auto', {\n span: ['full', isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': [isAny]\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: ['auto', {\n span: [isInteger, isArbitraryValue]\n }, isArbitraryValue]\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': getNumberWithAutoAndArbitrary()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': ['auto', 'min', 'max', 'fr', isArbitraryValue]\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: [gap]\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': [gap]\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': [gap]\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: ['normal', ...getAlign()]\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': ['start', 'end', 'center', 'stretch']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...getAlign(), 'baseline']\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', 'start', 'end', 'center', 'stretch', 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': [...getAlign(), 'baseline']\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': ['start', 'end', 'center', 'baseline', 'stretch']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', 'start', 'end', 'center', 'stretch']\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: [padding]\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: [padding]\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: [padding]\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: [padding]\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: [padding]\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: [padding]\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: [padding]\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: [padding]\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: [padding]\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: [margin]\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: [margin]\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: [margin]\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: [margin]\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: [margin]\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: [margin]\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: [margin]\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: [margin]\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: [margin]\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x': [{\n 'space-x': [space]\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y': [{\n 'space-y': [space]\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/space\n */\n 'space-y-reverse': ['space-y-reverse'],\n // Sizing\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: ['auto', 'min', 'max', 'fit', 'svw', 'lvw', 'dvw', isArbitraryValue, spacing]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [isArbitraryValue, spacing, 'min', 'max', 'fit']\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [isArbitraryValue, spacing, 'none', 'full', 'min', 'max', 'fit', 'prose', {\n screen: [isTshirtSize]\n }, isTshirtSize]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': [isArbitraryValue, spacing, 'min', 'max', 'fit', 'svh', 'lvh', 'dvh']\n }],\n /**\n * Size\n * @see https://tailwindcss.com/docs/size\n */\n size: [{\n size: [isArbitraryValue, spacing, 'auto', 'min', 'max', 'fit']\n }],\n // Typography\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', isTshirtSize, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black', isArbitraryNumber]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isAny]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractons'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest', isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': ['none', isNumber, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose', isLength, isArbitraryValue]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryValue]\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['none', 'disc', 'decimal', isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: [colors]\n }],\n /**\n * Placeholder Opacity\n * @see https://tailwindcss.com/docs/placeholder-opacity\n */\n 'placeholder-opacity': [{\n 'placeholder-opacity': [opacity]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: [colors]\n }],\n /**\n * Text Opacity\n * @see https://tailwindcss.com/docs/text-opacity\n */\n 'text-opacity': [{\n 'text-opacity': [opacity]\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...getLineStyles(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: ['auto', 'from-font', isLength, isArbitraryLength]\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': ['auto', isLength, isArbitraryValue]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: [colors]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: getSpacingWithArbitrary()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryValue]\n }],\n // Backgrounds\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Opacity\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/background-opacity\n */\n 'bg-opacity': [{\n 'bg-opacity': [opacity]\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...getPositions(), isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'round', 'space']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n 'gradient-to': ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: [colors]\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: [gradientColorStopPositions]\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: [gradientColorStops]\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: [gradientColorStops]\n }],\n // Borders\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: [borderRadius]\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': [borderRadius]\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': [borderRadius]\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': [borderRadius]\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': [borderRadius]\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': [borderRadius]\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': [borderRadius]\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': [borderRadius]\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': [borderRadius]\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': [borderRadius]\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': [borderRadius]\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': [borderRadius]\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': [borderRadius]\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': [borderRadius]\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': [borderRadius]\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: [borderWidth]\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': [borderWidth]\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': [borderWidth]\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': [borderWidth]\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': [borderWidth]\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': [borderWidth]\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': [borderWidth]\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': [borderWidth]\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': [borderWidth]\n }],\n /**\n * Border Opacity\n * @see https://tailwindcss.com/docs/border-opacity\n */\n 'border-opacity': [{\n 'border-opacity': [opacity]\n }],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...getLineStyles(), 'hidden']\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x': [{\n 'divide-x': [borderWidth]\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y': [{\n 'divide-y': [borderWidth]\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/divide-width\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Divide Opacity\n * @see https://tailwindcss.com/docs/divide-opacity\n */\n 'divide-opacity': [{\n 'divide-opacity': [opacity]\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/divide-style\n */\n 'divide-style': [{\n divide: getLineStyles()\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: [borderColor]\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': [borderColor]\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': [borderColor]\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': [borderColor]\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': [borderColor]\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': [borderColor]\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': [borderColor]\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': [borderColor]\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': [borderColor]\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: [borderColor]\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: ['', ...getLineStyles()]\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isLength, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: [isLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [colors]\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w': [{\n ring: getLengthWithEmptyAndArbitrary()\n }],\n /**\n * Ring Width Inset\n * @see https://tailwindcss.com/docs/ring-width\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/ring-color\n */\n 'ring-color': [{\n ring: [colors]\n }],\n /**\n * Ring Opacity\n * @see https://tailwindcss.com/docs/ring-opacity\n */\n 'ring-opacity': [{\n 'ring-opacity': [opacity]\n }],\n /**\n * Ring Offset Width\n * @see https://tailwindcss.com/docs/ring-offset-width\n */\n 'ring-offset-w': [{\n 'ring-offset': [isLength, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://tailwindcss.com/docs/ring-offset-color\n */\n 'ring-offset-color': [{\n 'ring-offset': [colors]\n }],\n // Effects\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: ['', 'inner', 'none', isTshirtSize, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow-color\n */\n 'shadow-color': [{\n shadow: [isAny]\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [opacity]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...getBlendModes(), 'plus-lighter', 'plus-darker']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': getBlendModes()\n }],\n // Filters\n /**\n * Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: ['', 'none']\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: [blur]\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [brightness]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [contrast]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': ['', 'none', isTshirtSize, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: [grayscale]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [hueRotate]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: [invert]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [saturate]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: [sepia]\n }],\n /**\n * Backdrop Filter\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': ['', 'none']\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': [blur]\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [brightness]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [contrast]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': [grayscale]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [hueRotate]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': [invert]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [opacity]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [saturate]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': [sepia]\n }],\n // Tables\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': [borderSpacing]\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': [borderSpacing]\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': [borderSpacing]\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // Transitions and Animation\n /**\n * Tranisition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['none', 'all', '', 'colors', 'opacity', 'shadow', 'transform', isArbitraryValue]\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: getNumberAndArbitrary()\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'in', 'out', 'in-out', isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: getNumberAndArbitrary()\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', 'spin', 'ping', 'pulse', 'bounce', isArbitraryValue]\n }],\n // Transforms\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: ['', 'gpu', 'none']\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: [scale]\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': [scale]\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': [scale]\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: [isInteger, isArbitraryValue]\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': [translate]\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': [translate]\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': [skew]\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': [skew]\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryValue]\n }],\n // Interactivity\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: ['auto', colors]\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryValue]\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: [colors]\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['none', 'auto']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', 'y', 'x', '']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': getSpacingWithArbitrary()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryValue]\n }],\n // SVG\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: [colors, 'none']\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: [colors, 'none']\n }],\n // Accessibility\n /**\n * Screen Readers\n * @see https://tailwindcss.com/docs/screen-readers\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n }\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n separator,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'separator', separator);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n for (const configKey in override) {\n overrideConfigProperties(baseConfig[configKey], override[configKey]);\n }\n for (const key in extend) {\n mergeConfigProperties(baseConfig[key], extend[key]);\n }\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = (baseObject[key] || []).concat(mergeValue);\n }\n }\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs) {\n return twMerge(clsx(inputs))\n}","// components/ui/button.jsx\nimport * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-10 rounded-md px-8\",\n icon: \"h-9 w-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Button = React.forwardRef(({ className, variant, size, ...props }, ref) => {\n return (\n \n )\n})\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form2 = button?.form;\n if (form2) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form2.addEventListener(\"reset\", reset);\n return () => form2.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" },\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, defaultChecked, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/useSize.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * lucide-react v0.0.1 - ISC\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst Check = createLucideIcon(\"Check\", [\n [\"polyline\", { points: \"20 6 9 17 4 12\", key: \"10jjfj\" }]\n]);\n\nexport { Check as default };\n//# sourceMappingURL=check.mjs.map\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = \"Checkbox\"\n\nexport { Checkbox }","import React, { useState } from 'react';\nimport { Button } from './ui/button';\nimport FilterGroup from './FilterGroup';\n\nconst FILTER_OPTIONS = {\n paper: [\n { value: 'preprint', label: 'Preprint 📝' },\n { value: 'peer_reviewed', label: 'Peer Reviewed 📄' },\n ],\n code: [\n { value: 'reproducible', label: 'Training Code Available 🛠️' },\n { value: 'evaluation_only', label: 'Evaluation Only 🔍' },\n { value: 'none', label: 'None' },\n ],\n omicModalities: [\n { value: 'Bulk RNA-seq', label: 'Bulk RNA-seq' },\n { value: 'scRNA-seq', label: 'scRNA-seq' },\n { value: 'DNAm', label: 'DNAm' },\n { value: 'proteomics', label: 'Proteomics' },\n { value: 'natural language', label: 'Natural Language' },\n { value: 'scATAC-seq', label: 'scATAC-seq' },\n { value: 'CITE-seq', label: 'CITE-seq' },\n { value: 'Spatial transcriptomics', label: 'Spatial Transcriptomics' },\n { value: 'single-cell flow cytometry', label: 'Flow Cytometry' },\n ],\n inputEmbeddings: [\n { value: 'cells as tokens', label: 'Cells as Tokens' },\n { value: 'ordering', label: 'Ordering' },\n { value: 'other', label: 'Other' },\n { value: 'value categorization', label: 'Value Categorization' },\n { value: 'value projection', label: 'Value Projection' },\n ],\n architecture: [\n { value: 'encoder', label: 'Encoder' },\n { value: 'decoder', label: 'Decoder' },\n { value: 'encoder-decoder', label: 'Encoder-Decoder' },\n { value: 'other', label: 'Other' },\n ],\n};\n\nconst FilterPanel = ({ isOpen, onClose, onApplyFilters }) => {\n const [tempFilters, setTempFilters] = useState({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n\n if (!isOpen) return null;\n\n return (\n
\n
\n
\n

Filters

\n \n ×\n \n
\n\n
\n {Object.entries(FILTER_OPTIONS).map(([filterType, options]) => (\n
\n

\n {filterType.charAt(0).toUpperCase() + filterType.slice(1)}\n

\n
\n {options.map((option) => (\n \n {\n const newValues = e.target.checked\n ? [...tempFilters[filterType], option.value]\n : tempFilters[filterType].filter(v => v !== option.value);\n setTempFilters(prev => ({\n ...prev,\n [filterType]: newValues,\n }));\n }}\n className=\"w-4 h-4 rounded border-gray-300\"\n />\n {option.label}\n \n ))}\n
\n
\n ))}\n
\n\n
\n {\n setTempFilters({\n paper: [],\n code: [],\n omicModalities: [],\n inputEmbeddings: [],\n architecture: [],\n });\n }}\n >\n Reset\n \n onApplyFilters(tempFilters)}\n >\n Apply\n \n
\n
\n
\n );\n};\n\nexport default FilterPanel;","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import React, { useState } from 'react';\nimport { Filter } from 'lucide-react';\nimport FilterPanel from './FilterPanel';\n\nconst ICONS = {\n preprint: '📝',\n peer_reviewed: '📄',\n reproducible: '🛠️',\n evaluation_only: '🔍',\n};\n\nconst TableCell = ({ content, column }) => {\n // Helper function to process links in text\n const processLinks = (text) => {\n if (!text) return '-';\n // Match URLs in text like [ESM-2](https://...)\n const linkRegex = /\\[(.*?)\\]\\((.*?)\\)/g;\n return text.replace(linkRegex, (match, text, url) => {\n return `${text}`;\n });\n };\n\n // Helper function to extract value from YAML structure\n const extractValue = (content) => {\n if (typeof content === 'object' && content !== null) {\n if (content.text) return content.text;\n if (content.value) return content.value;\n return Object.values(content).join(', ');\n }\n return content;\n };\n\n // Handle empty or null content\n if (!content || content === 'None' || content === '') {\n return -;\n }\n\n // Special handling for columns that might contain links\n if (column === 'INPUT EMBEDDING' || column === 'PRE-TRAINING DATASET') {\n const processedContent = processLinks(content);\n return (\n \n );\n }\n\n // Special handling for Paper column\n if (column === 'PAPER') {\n const paperContent = content.text || content;\n const paperType = content.type || 'preprint';\n const match = paperContent.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, title, url] = match;\n return (\n \n {ICONS[paperType]}\n \n {title}\n \n \n );\n }\n }\n\n // Special handling for Code column\n if (column === 'CODE') {\n const codeContent = content.text || content;\n const codeType = content.type || 'evaluation_only';\n const match = codeContent?.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (match) {\n const [_, __, url] = match;\n return (\n \n \n {ICONS[codeType]}\n \n \n );\n }\n return -;\n }\n\n // Special handling for Pre-Training Dataset\n if (column === 'PRE-TRAINING DATASET') {\n return {content === '' ? '-' : content};\n }\n\n // Handle special columns that might be nested\n const specialColumns = [\n 'OMIC MODALITIES',\n 'PRE-TRAINING DATASET',\n 'INPUT EMBEDDING',\n 'ARCHITECTURE',\n 'SSL TASKS',\n 'SUPERVISED TASKS',\n 'ZERO-SHOT TASKS'\n ];\n\n if (specialColumns.includes(column)) {\n const value = extractValue(content);\n return {value || '-'};\n }\n\n // Default handling for other columns\n return {extractValue(content)};\n};\n\nconst FilterableTable = ({ data, columns }) => {\n const [isFilterPanelOpen, setIsFilterPanelOpen] = useState(false);\n const [filteredData, setFilteredData] = useState(data);\n\n const handleFilterClick = () => {\n setIsFilterPanelOpen(!isFilterPanelOpen);\n };\n\n const handleApplyFilters = (filters) => {\n const filtered = data.filter(item => {\n // Paper type filter\n if (filters.paper?.length > 0) {\n const paperType = item.Paper?.type;\n if (!filters.paper.includes(paperType)) return false;\n }\n\n // Code type filter\n if (filters.code?.length > 0) {\n const codeType = item.Code?.type;\n if (!filters.code.includes(codeType)) return false;\n }\n\n // Omic modalities filter\n if (filters.omicModalities?.length > 0) {\n const modalitiesStr = String(item['Omic Modalities'] || '').toLowerCase();\n const hasMatchingModality = filters.omicModalities.some(modality => {\n if (modality === 'Bulk RNA-seq') {\n // Match any form of \"bulk\" in the string\n return /bulk/i.test(modalitiesStr);\n }\n // For other modalities, use exact matching as before\n return modalitiesStr.includes(modality.toLowerCase());\n });\n if (!hasMatchingModality) return false;\n }\n\n // Input embeddings filter\n if (filters.inputEmbeddings?.length > 0) {\n const embedding = String(item['Input Embedding'] || '').toLowerCase();\n const hasMatchingEmbedding = filters.inputEmbeddings.some(emb =>\n embedding.includes(emb.toLowerCase())\n );\n if (!hasMatchingEmbedding) return false;\n }\n\n // Architecture filter\n if (filters.architecture?.length > 0) {\n const architecture = String(item.Architecture || '').toLowerCase();\n const hasMatchingArchitecture = filters.architecture.some(arch =>\n architecture.includes(arch.toLowerCase())\n );\n if (!hasMatchingArchitecture) return false;\n }\n\n return true;\n });\n\n setFilteredData(filtered);\n setIsFilterPanelOpen(false);\n };\n\n return (\n
\n
\n \n
\n\n
\n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {(filteredData || data).map((row, index) => (\n \n {columns.map(column => (\n \n ))}\n \n ))}\n \n
\n {column}\n
\n
\n\n setIsFilterPanelOpen(false)}\n onApplyFilters={handleApplyFilters}\n />\n
\n );\n};\n\nexport default FilterableTable;","import React, { useState, useEffect } from 'react';\nimport FilterableTable from '../components/FilterableTable';\nimport { mountReactComponent } from '../utils/mount';\nimport FilterButton from '../components/FilterButton';\nimport FilterPanel from '../components/FilterPanel';\n\n\nfunction TransformerLLMs() {\n const [data, setData] = useState(null);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n \n useEffect(() => {\n try {\n if (typeof window.transformerLLMs !== 'undefined') {\n const processedData = window.transformerLLMs.map(item => {\n const processEmptyValue = (value) => {\n if (value === '' || value === null || value === undefined || value === 'None' || value === '-') {\n return '-';\n }\n return value;\n };\n\n console.log('Processing item architecture:', item.architecture);\n\n return {\n Model: item.model,\n Paper: {\n text: item.paper.text,\n type: item.paper.type\n },\n Code: {\n text: item.code.text,\n type: item.code.type\n },\n 'Omic Modalities': Array.isArray(item.omic_modalities) \n ? item.omic_modalities.join(', ') \n : processEmptyValue(item.omic_modalities),\n 'Pre-Training Dataset': processEmptyValue(item.pre_training_dataset),\n 'Input Embedding': processEmptyValue(item.input_embedding),\n Architecture: (() => {\n const arch = item.architecture;\n if (!arch) return '-';\n \n const linkMatch = arch.match(/\\[(.*?)\\]\\((.*?)\\)/);\n if (linkMatch) {\n return {\n text: linkMatch[1],\n url: linkMatch[2],\n type: 'link'\n };\n }\n \n return arch;\n })(),\n 'SSL Tasks': processEmptyValue(item.ssl_tasks),\n 'Supervised Tasks': processEmptyValue(item.supervised_tasks),\n 'Zero-Shot Tasks': processEmptyValue(item.zero_shot_tasks)\n };\n });\n \n setData(processedData);\n } else {\n setError('Data not available');\n }\n } catch (err) {\n console.error('Error accessing data:', err);\n setError(err.message);\n } finally {\n setIsLoading(false);\n }\n }, []);\n\n console.log('Rendering state:', { isLoading, error, hasData: !!data });\n\n if (isLoading) return
Loading...
;\n if (error) return
Error: {error}
;\n if (!data?.length) return
No data available
;\n\n return (\n
\n

Transformer LLMs

\n
\n \n
\n
\n );\n}\n\nexport default TransformerLLMs;\n\nif (document.getElementById('transformer-llms-root')) {\n console.log('Mounting TransformerLLMs component');\n const root = ReactDOM.createRoot(document.getElementById('transformer-llms-root'));\n root.render();\n}\n"],"names":["m","createRoot","hydrateRoot","f","k","Symbol","for","l","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","React","ReactDOM","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","_arrayLikeToArray","r","length","Array","_unsupportedIterableToArray","t","toString","slice","constructor","name","from","test","isArray","iterator","i","u","o","next","done","push","value","TypeError","getter","__esModule","definition","defineProperty","enumerable","get","obj","prop","_typeof","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","createLucideIcon$1","iconName","iconNode","Component","forwardRef","color","size","absoluteStrokeWidth","children","rest","createElement","Number","className","string","replace","toLowerCase","map","tag","attrs","displayName","Filter","points","toPrimitive","String","toPropertyKey","configurable","writable","_extends","assign","bind","arguments","apply","_objectWithoutProperties","includes","getOwnPropertySymbols","s","propertyIsEnumerable","falsyToString","concat","cx","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","nextPart","classGroupFromNextClassPart","validators","classRest","join","find","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","prefix","Map","getPrefixedClassGroupEntries","entries","classGroups","forEach","classGroup","processClassesRecursively","classDefinition","isThemeGetter","getPart","path","currentClassPartObject","pathPart","has","set","func","classGroupEntries","fromEntries","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","createParseClassName","separator","experimentalParseClassName","isSeparatorSingleCharacter","firstSeparatorCharacter","separatorLength","parseClassName","modifiers","postfixModifierPosition","bracketDepth","modifierStart","index","currentCharacter","baseClassNameWithImportantModifier","hasImportantModifier","startsWith","baseClassName","maybePostfixModifierPosition","sortModifiers","sortedModifiers","unsortedModifiers","modifier","sort","SPLIT_CLASSES_REGEX","twJoin","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","configUtils","cacheGet","cacheSet","functionToCall","classList","reduce","previousConfig","createConfigCurrent","createConfigUtils","tailwindMerge","cachedResult","result","classGroupsInConflict","classNames","trim","originalClassName","Boolean","variantModifier","modifierId","classId","conflictGroups","group","mergeClassList","fromTheme","themeGetter","arbitraryValueRegex","fractionRegex","stringLengths","Set","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isLength","isNumber","isArbitraryLength","getIsArbitraryValue","isLengthOnly","isNaN","isArbitraryNumber","isInteger","isPercent","endsWith","isArbitraryValue","isTshirtSize","sizeLabels","isArbitrarySize","isNever","isArbitraryPosition","imageLabels","isArbitraryImage","isImage","isArbitraryShadow","isShadow","isAny","label","testValue","twMerge","toStringTag","colors","spacing","blur","brightness","borderColor","borderRadius","borderSpacing","borderWidth","contrast","grayscale","hueRotate","invert","gap","gradientColorStops","gradientColorStopPositions","inset","margin","opacity","padding","saturate","scale","sepia","skew","space","translate","getSpacingWithAutoAndArbitrary","getSpacingWithArbitrary","getLengthWithEmptyAndArbitrary","getNumberWithAutoAndArbitrary","getZeroAndEmpty","getNumberAndArbitrary","aspect","container","columns","box","display","float","clear","isolation","object","overflow","overscroll","position","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","span","row","justify","content","items","self","px","py","ps","pe","pt","pr","pb","pl","mx","my","ms","me","mt","mr","mb","ml","w","screen","text","font","tracking","leading","list","placeholder","decoration","indent","align","whitespace","break","hyphens","bg","repeat","via","to","rounded","border","divide","outline","ring","shadow","filter","table","caption","transition","duration","ease","delay","animate","transform","rotate","origin","accent","appearance","cursor","caret","resize","scroll","snap","touch","select","sr","cn","_len","inputs","_key","clsx","base","buttonVariants","variants","variant","default","sm","lg","icon","defaultVariants","class","getVariantClassNames","keys","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","compoundVariants","param1","cvClass","cvClassName","compoundVariantOptions","every","composeRefs","refs","node","setRef","useComposedRefs","_ref","_excluded","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","defaultPrevented","useCallbackRef","callback","callbackRef","args","useLayoutEffect2","globalThis","document","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","initialState","state","send","machine","useStateMachine","mounted","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","timeoutId","ownerWindow","ownerDocument","defaultView","window","handleAnimationEnd","isCurrentAnimation","animationName","target","currentFillMode","style","animationFillMode","setTimeout","handleAnimationStart","addEventListener","clearTimeout","removeEventListener","isPresent","node2","getComputedStyle","usePresence","child","only","element","getOwnPropertyDescriptor","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","toArray","slottable","isSlottable","newElement","newChildren","count","SlotClone","childrenRef","mergeProps","Slottable","childProps","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","Node","asChild","primitiveProps","Comp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","Provider","context","Context","values","consumerName","Error","createContextScope","CheckboxProvider","useCheckboxContext","__scopeCheckbox","checked","checkedProp","defaultChecked","required","disabled","onCheckedChange","form","checkboxProps","button","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","handleChange","useUncontrolledState","isControlled","nextValue","value2","useControllableState","initialCheckedStateRef","form2","reset","role","isIndeterminate","getState","onKeyDown","preventDefault","onClick","prevChecked","isPropagationStopped","stopPropagation","BubbleInput","control","bubbles","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","pointerEvents","inputProps","previous","usePrevious","controlSize","setSize","offsetWidth","offsetHeight","resizeObserver","ResizeObserver","entry","borderSizeEntry","borderSize","observe","unobserve","useSize","input","inputProto","HTMLInputElement","Event","indeterminate","dispatchEvent","defaultCheckedRef","tabIndex","Indicator","Check","CheckboxPrimitive","FILTER_OPTIONS","paper","code","omicModalities","inputEmbeddings","architecture","isOpen","onClose","onApplyFilters","_useState2","_slicedToArray","useState","tempFilters","setTempFilters","_ref2","_ref3","filterType","options","charAt","toUpperCase","option","newValues","_toConsumableArray","v","prev","_objectSpread","_defineProperty","ICONS","preprint","peer_reviewed","reproducible","evaluation_only","TableCell","column","extractValue","processedContent","match","url","dangerouslySetInnerHTML","__html","paperContent","paperType","_match","title","href","rel","codeContent","codeType","_match3","data","isFilterPanelOpen","setIsFilterPanelOpen","_useState4","filteredData","setFilteredData","FilterPanel","filters","filtered","item","_filters$paper","_filters$code","_filters$omicModaliti","_filters$inputEmbeddi","_filters$architecture","_item$Paper","Paper","_item$Code","Code","modalitiesStr","some","modality","embedding","emb","Architecture","arch","TransformerLLMs","setData","error","setError","_useState6","isLoading","setIsLoading","useEffect","transformerLLMs","processedData","processEmptyValue","console","log","Model","model","omic_modalities","pre_training_dataset","input_embedding","linkMatch","ssl_tasks","supervised_tasks","zero_shot_tasks","err","message","hasData","FilterableTable","getElementById","render"],"sourceRoot":""} \ No newline at end of file