solfaces 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- export { ADJECTIVES, BLOCKED_COMBOS, NOUNS, SOLNAMES_VERSION, deriveIdentity, deriveName, isValidSolName, parseSolName } from '../chunk-N5DDJ3WQ.js';
1
+ export { ADJECTIVES, BLOCKED_COMBOS, NOUNS, SOLNAMES_VERSION, deriveIdentity, deriveName, isValidSolName, parseSolName } from '../chunk-UTT764K6.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkF54WHRCE_cjs = require('../chunk-F54WHRCE.cjs');
4
- var chunkXXJJH56O_cjs = require('../chunk-XXJJH56O.cjs');
4
+ var chunkYGD7EQEX_cjs = require('../chunk-YGD7EQEX.cjs');
5
5
  var react = require('react');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
7
 
@@ -572,7 +572,7 @@ function SolFace({
572
572
  if (theme?._glass) {
573
573
  const glassEl = /* @__PURE__ */ jsxRuntime.jsx(GlassWrapper, { size, theme, children: svgElement });
574
574
  if (!showName) return glassEl;
575
- const glassName = chunkXXJJH56O_cjs.deriveName(walletAddress, nameFormat);
575
+ const glassName = chunkYGD7EQEX_cjs.deriveName(walletAddress, nameFormat);
576
576
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "inline-flex", flexDirection: "column", alignItems: "center", gap: 4 }, children: [
577
577
  namePosition === "above" && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: Math.max(10, size / 5), fontFamily: "inherit" }, children: glassName }),
578
578
  glassEl,
@@ -580,7 +580,7 @@ function SolFace({
580
580
  ] });
581
581
  }
582
582
  if (!showName) return svgElement;
583
- const walletName = chunkXXJJH56O_cjs.deriveName(walletAddress, nameFormat);
583
+ const walletName = chunkYGD7EQEX_cjs.deriveName(walletAddress, nameFormat);
584
584
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "inline-flex", flexDirection: "column", alignItems: "center", gap: 4 }, children: [
585
585
  namePosition === "above" && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontSize: Math.max(10, size / 5), fontFamily: "inherit" }, children: walletName }),
586
586
  svgElement,
@@ -589,8 +589,8 @@ function SolFace({
589
589
  }
590
590
  function useSolName(wallet, format) {
591
591
  return react.useMemo(() => {
592
- if (format) return chunkXXJJH56O_cjs.deriveName(wallet, format);
593
- return chunkXXJJH56O_cjs.deriveIdentity(wallet);
592
+ if (format) return chunkYGD7EQEX_cjs.deriveName(wallet, format);
593
+ return chunkYGD7EQEX_cjs.deriveIdentity(wallet);
594
594
  }, [wallet, format]);
595
595
  }
596
596
 
@@ -1,5 +1,5 @@
1
1
  import { generateTraits, SKIN_COLORS, EYE_COLORS, HAIR_COLORS, BG_COLORS, deriveSkinColors, blend, effectiveAccessory, renderSolFaceSVG, lighten, darken, buzzOpacity } from '../chunk-3CE7Q44S.js';
2
- import { deriveName, deriveIdentity } from '../chunk-N5DDJ3WQ.js';
2
+ import { deriveName, deriveIdentity } from '../chunk-UTT764K6.js';
3
3
  import { useMemo } from 'react';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
 
@@ -1,3 +1,3 @@
1
- "use strict";var SolFaces=(()=>{var Z=Object.defineProperty;var Qe=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var ze=Object.prototype.hasOwnProperty;var je=(r,e)=>{for(var t in e)Z(r,t,{get:e[t],enumerable:!0})},Ue=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ve(e))!ze.call(r,a)&&a!==t&&Z(r,a,{get:()=>e[a],enumerable:!(n=Qe(e,a))||n.enumerable});return r};var Ke=r=>Ue(Z({},"__esModule",{value:!0}),r);var Hr={};je(Hr,{default:()=>Gr});var ye=["#faeae5","#efd6c8","#e4c5aa","#d5b590","#c59e77","#b4875f","#9d6d4d","#805742","#654134","#4b2d25"],pe=["#382414","#3868A8","#38784C","#808838","#586878"],fe=["#1A1A24","#4C3428","#887058","#D4B868","#A84830","#C0C0CC","#484858","#783850","#D8B0A0","#C08048"],me=["#b98387","#a9a360","#9eb785","#69ab79","#81bbb0","#6499af","#7f8bbd","#8869ab","#b785b3","#ab6984"];function xe(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function qe(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function N(r,e){let t=xe(r),n=qe(t),a={faceShape:Math.floor(n()*4),skinColor:Math.floor(n()*10),eyeStyle:Math.floor(n()*8),eyeColor:Math.floor(n()*5),eyebrows:Math.floor(n()*5),nose:Math.floor(n()*4),mouth:Math.floor(n()*8),hairStyle:Math.floor(n()*10),hairColor:Math.floor(n()*10),accessory:Math.floor(n()*10),bgColor:Math.floor(n()*10)};return e?{...a,...e}:a}function R(r){let e=r.accessory%10,t=r.hairStyle%10;return(e===4||e===7)&&(t===5||t===6)?0:e}var Ye=["Squircle"],Je=["Porcelain","Ivory","Fair","Light","Sand","Golden","Warm","Caramel","Brown","Deep"],Ze=["Round","Minimal","Almond","Wide","Relaxed","Joyful","Bright","Gentle"],Xe=["Chocolate","Sky","Emerald","Hazel","Storm"],er=["Wispy","Straight","Natural","Arched","Angled"],rr=["Shadow","Button","Soft","Nostrils"],tr=["Smile","Calm","Happy","Oh","Smirk","Grin","Flat","Pout"],nr=["Bald","Short","Curly","Side Sweep","Puff","Long","Bob","Buzz","Wavy","Topknot"],ir=["Black","Espresso","Walnut","Honey","Copper","Silver","Charcoal","Burgundy","Strawberry","Ginger"],ar=["None","Beauty Mark","Round Glasses","Rect Glasses","Earring","Headband","Freckles","Stud Earrings","Aviators","Band-Aid"],or=["Rose","Olive","Sage","Fern","Mint","Ocean","Sky","Lavender","Orchid","Blush"];function Se(r){return{faceShape:Ye[0],skinColor:Je[r.skinColor]??"Fair",eyeStyle:Ze[r.eyeStyle]??"Round",eyeColor:Xe[r.eyeColor]??"Chocolate",eyebrows:er[r.eyebrows]??"Wispy",nose:rr[r.nose]??"Shadow",mouth:tr[r.mouth]??"Smile",hairStyle:nr[r.hairStyle]??"Bald",hairColor:ir[r.hairColor]??"Black",accessory:ar[R(r)]??"None",bgColor:or[r.bgColor]??"Rose"}}function be(r){return(xe(r)>>>0).toString(16).padStart(8,"0")}function $e(r,e){if(!(!r||!e))return e[r]}var lr=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function P(r,e){return e>>>r|e<<32-r}function X(r){let t=new TextEncoder().encode(r),n=t.length*8,a=64-(t.length+9)%64,o=t.length+1+(a===64?0:a)+8,s=new Uint8Array(o);s.set(t),s[t.length]=128;let c=new DataView(s.buffer);c.setUint32(o-4,n,!1);let i=1779033703,d=3144134277,h=1013904242,l=2773480762,x=1359893119,p=2600822924,S=528734635,b=1541459225,y=new Int32Array(64);for(let D=0;D<o;D+=64){for(let u=0;u<16;u++)y[u]=c.getInt32(D+u*4,!1);for(let u=16;u<64;u++){let L=P(7,y[u-15])^P(18,y[u-15])^y[u-15]>>>3,E=P(17,y[u-2])^P(19,y[u-2])^y[u-2]>>>10;y[u]=y[u-16]+L+y[u-7]+E|0}let g=i,v=d,M=h,_=l,$=x,A=p,F=S,G=b;for(let u=0;u<64;u++){let L=P(6,$)^P(11,$)^P(25,$),E=$&A^~$&F,k=G+L+E+lr[u]+y[u]|0,I=P(2,g)^P(13,g)^P(22,g),W=g&v^g&M^v&M,Y=I+W|0;G=F,F=A,A=$,$=_+k|0,_=M,M=v,v=g,g=k+Y|0}i=i+g|0,d=d+v|0,h=h+M|0,l=l+_|0,x=x+$|0,p=p+A|0,S=S+F|0,b=b+G|0}let O=new Uint8Array(32),m=new DataView(O.buffer);return m.setUint32(0,i,!1),m.setUint32(4,d,!1),m.setUint32(8,h,!1),m.setUint32(12,l,!1),m.setUint32(16,x,!1),m.setUint32(20,p,!1),m.setUint32(24,S,!1),m.setUint32(28,b,!1),O}function Ce(r){return Array.from(X(r)).map(e=>e.toString(16).padStart(2,"0")).join("")}var ke=Object.freeze(["Frost","Solar","Coral","Amber","Mossy","Lunar","Misty","Alpine","Autumn","Breeze","Cerulean","Cloudy","Cosmic","Crystal","Dewy","Dusty","Earthy","Floral","Forest","Frozen","Glacial","Golden","Grassy","Harbor","Ivory","Jasmine","Lagoon","Leafy","Lush","Marine","Meadow","Mineral","Mosaic","Nectar","Nordic","Oceanic","Orchid","Pearly","Petal","Polar","Prairie","Rain","River","Rocky","Sandy","Savanna","Shore","Sierra","Snowy","Spring","Starry","Stone","Summer","Sunset","Tidal","Timber","Tropic","Tundra","Valley","Verdant","Winding","Winter","Woody","Bloom","Blossom","Brook","Canyon","Cedar","Cloud","Comet","Copper","Dawn","Delta","Dune","Eclipse","Fern","Flame","Flora","Glade","Azure","Cobalt","Crimson","Indigo","Scarlet","Sapphire","Emerald","Ruby","Garnet","Onyx","Jade","Turquoise","Magenta","Plum","Russet","Tawny","Burnt","Gilded","Platinum","Bronze","Chrome","Pearl","Opal","Blush","Rosy","Dusky","Inky","Ashen","Cream","Slate","Charcoal","Steel","Pewter","Honey","Saffron","Citrus","Lemon","Tangerine","Peach","Apricot","Vermilion","Mauve","Lilac","Periwinkle","Cerise","Maroon","Burgundy","Wine","Berry","Cherry","Mint","Olive","Teal","Navy","Cyan","Neon","Pastel","Muted","Lustrous","Gleaming","Glossy","Shining","Glowing","Luminous","Brilliant","Sparkling","Shimmering","Iridescent","Prismatic","Spectral","Twilight","Sunrise","Sunlit","Moonlit","Starlit","Candlelit","Firelit","Sunbeam","Afterglow","Halo","Flicker","Glow","Ray","Beam","Blaze","Glint","Spark","Arc","Prism","Spectrum","Rainbow","Aurora","Nebula","Stellar","Astral","Lucent","Frosted","Swift","Bold","Keen","Brave","Noble","Serene","Fierce","Gentle","Agile","Alert","Astute","Candid","Clever","Daring","Eager","Earnest","Fair","Gallant","Graceful","Hardy","Honest","Humble","Jovial","Joyful","Kind","Loyal","Merry","Mindful","Nimble","Patient","Plucky","Proud","Quick","Ready","Resilient","Savvy","Sincere","Skilled","Steady","Stout","Strong","Sure","Tender","True","Valiant","Willing","Wise","Witty","Worthy","Zealous","Active","Adept","Ardent","Avid","Benign","Bright","Civil","Clean","Clear","Composed","Content","Courtly","Crafty","Curious","Decent","Devout","Diligent","Direct","Driven","Dynamic","Elegant","Elite","Even","Exact","Famed","Fervent","Fine","Firm","Fit","Fluid","Focal","Fond","Frank","Free","Fresh","Friendly","Frugal","Gifted","Glad","Grand","Great","Green","Grounded","Hale","Happy","Hearty","Heroic","Ideal","Infinite","Inner","Intact","Intent","Just","Lively","Lucky","Major","Mellow","Mighty","Modest","Natural","Neat","Optimal","Original","Pacific","Peaceful","Pious","Pleased","Poised","Polite","Popular","Potent","Precious","Premier","Prime","Proper","Proven","Pure","Quiet","Rapid","Rare","Real","Regal","Rich","Rising","Robust","Royal","Sacred","Safe","Scenic","Secure","Senior","Sharp","Simple","Smart","Smooth","Snug","Social","Solid","Sound","Special","Stable","Stately","Still","Super","Supreme","Sweet","Thorough","Tidy","Top","Total","Tough","Trim","Trusted","Ultimate","Unique","United","Upper","Useful","Valid","Valued","Varied","Vital","Vivid","Vocal","Whole","Wide","Young","Zesty","Iron","Gold","Silver","Marble","Granite","Velvet","Satin","Silk","Linen","Cotton","Suede","Denim","Canvas","Leather","Wooden","Bamboo","Wicker","Woven","Braided","Knit","Lace","Mesh","Fiber","Glass","Mirror","Diamond","Flint","Basalt","Obsidian","Chalk","Clay","Gravel","Pebble","Cobble","Brick","Tile","Resin","Fossil","Shell","Bone","Feather","Plush","Brushed","Polished","Hammered","Forged","Cast","Molten","Tempered","Etched","Carved","Sculpted","Spun","Pressed","Rolled","Folded","Layered","Stacked","Ribbed","Matte","Lacquered","Enameled","Glazed","Painted","Dyed","Stained","Refined","Distilled","Purified","Filtered","Alloyed","Plated","Coated","Sealed","Bonded","Fused","Welded","Riveted","Textured","Grained","Veined","Flecked","Speckled","Dappled","Streaked","Banded","Striped","Checkered","Waxed","Oiled","Cured","Tanned","Smoked","Burnished","Antiqued","Patina","Weathered","Aged","Rustic","Hewn","Vast","Broad","Deep","High","Tall","Giant","Colossal","Massive","Immense","Boundless","Endless","Sweeping","Spanning","Extended","Towering","Soaring","Lofty","Elevated","Raised","Summit","Apex","Crest","Crown","Pinnacle","Zenith","Ridge","Ledge","Level","Hollow","Compact","Dense","Thick","Narrow","Slender","Micro","Mini","Small","Ample","Hefty","Jumbo","Mega","Ultra","Macro","Central","Core","Outer","Lateral","Radial","Spiral","Orbital","Linear","Planar","Spherical","Rounded","Angular","Pointed","Tapered","Curved","Arced","Twisted","Coiled","Fractal","Cellular","Quantum","Photon","Plasma","Kinetic","Static","Charged","Maximal","Atomic","Nano","Tiered","Strata","Nested","Stepped","Graded","Scaled","Proportioned","Modular","Symmetric","Parallel","Flowing","Drifting","Gliding","Sailing","Floating","Climbing","Leaping","Bounding","Sprinting","Dashing","Rushing","Surging","Cascading","Rolling","Tumbling","Spinning","Whirling","Twisting","Swirling","Pulsing","Beating","Humming","Buzzing","Ringing","Chiming","Singing","Dancing","Swaying","Waving","Rippling","Bubbling","Fizzing","Crackling","Snapping","Clicking","Tapping","Drumming","Thrumming","Vibrant","Magnetic","Electric","Blazing","Burning","Fiery","Volcanic","Thermal","Warming","Cooling","Chilling","Brisk","Crisp","Breezy","Gusty","Windy","Airy","Light","Buoyant","Weightless","Fleet","Peppy","Zippy","Snappy","Speedy","Sonic","Turbo","Warp","Express","Instant","Darting","Flying","Jetting","Cruising","Coasting","Rhythmic","Cycling","Pacing","Striding","Marching","Trotting","Galloping","Bouncing","Vaulting","Arching","Launched","Propelled","Hovering","Orbiting","Revolving","Rotating","Pivoting","Swinging","Rocking","Tilting","Shifting","Sliding","Skating","Surfing","Diving","Plunging","Dipping","Wading","Celestial","Ethereal","Mystic","Arcane","Ancient","Eternal","Timeless","Ageless","Enduring","Lasting","Perpetual","Legendary","Mythic","Epic","Fabled","Storied","Historic","Classic","Vintage","Retro","Modern","Future","Digital","Cyber","Virtual","Pixel","Binary","Omega","Alpha","Beta","Gamma","Sigma","Theta","Lambda","Kappa","Zeta","Epsilon","Omni","Dual","Triple","Nexus","Vertex","Vector","Matrix","Cipher","Enigma","Phantom","Mirage","Dream","Vision","Oracle","Prophet","Sage","Shaman","Druid","Artisan","Maestro","Virtuoso","Savant","Prodigy","Maven","Guru","Mentor","Guide","Scout","Pioneer","Voyager","Wanderer","Nomad","Rover","Ranger","Sentinel","Guardian","Keeper","Warden","Champion","Vanguard","Herald","Emissary","Envoy","Ambassador","Steward","Curator","Patron","Benefactor","Founder","Architect","Builder","Maker","Crafter","Weaver","Forger","Smith","Wright","Mason","Brewer","Baker","Tanner","Dyer","Scribe","Bard","Minstrel","Troubadour","Storyteller","Chronicler","Lorekeeper","Archivist","Tranquil","Placid","Hushed","Muffled","Soft","Subtle","Faint","Dim","Pale","Warm","Cool","Taut","Tense","Cozy","Homey","Pastoral","Sylvan","Bucolic","Idyllic","Quaint","Charming","Lovely","Pretty","Dapper","Natty","Chic","Posh","Classy","Fancy","Ornate","Lavish","Opulent","Majestic","Dignified","August","Solemn","Sober","Heartfelt","Genuine","Authentic","Novel","Singular","Distinct","Chosen","Select","Premium","Deluxe","Superior","Exquisite","Superb","Splendid","Glorious","Sublime","Resonant","Harmonic","Melodic","Lyrical","Poetic","Seamless","Effortless","Organic","Primal","Devoted","Dedicated","Committed","Focused","Determined","Resolute","Steadfast","Unwavering","Constant","Faithful","Reliable","Dependable","Trusty","Anchored","Moored","Sheltered","Protected","Guarded","Shielded","Fortified","Reinforced","Braced","Bolstered","Supported","Upheld","Sustained","Preserved","Conserved","Stored","Vaulted","Locked","Secured","Fastened","Linked","Joined","Connected","Paired","Matched","Balanced","Aligned","Centered","Aimed","Directed","Guided","Steered","Piloted","Navigated","Charted","Mapped","Tracked","Pursued","Discovered","Unveiled","Displayed","Presented","Granted","Bestowed","Conferred","Sapient","Sentient","Radiant","Fertile","Abundant","Bountiful","Plentiful","Prolific","Thriving","Flourishing","Blooming","Budding","Growing","Expanding","Advancing","Progressing","Evolving","Maturing","Ripening","Developing","Emerging","Nascent","Incipient","Dawning","Unfolding","Awakening","Stirring","Kindling","Igniting","Sparking","Triggering","Launching","Initiating","Pioneering","Trailblazing","Groundbreaking","Innovative","Inventive","Creative","Imaginative","Inspired","Visionary","Prophetic","Prescient","Insightful","Perceptive","Observant","Watchful","Vigilant","Attentive","Thoughtful","Considerate","Caring","Nurturing","Fostering","Cultivating","Tending","Pruning","Trimming","Shaping","Forming","Molding","Fashioning","Designing","Drafting","Sketching","Drawing","Painting","Coloring","Tinting","Shading","Blending","Mixing","Merging","Combining","Uniting","Fusing","Melding","Weaving","Knitting","Stitching","Sewing","Quilting","Patching","Mending","Healing","Restoring","Renewing","Reviving","Refreshing","Rejuvenating","Invigorating","Energizing","Empowering","Strengthening","Fortifying","Hardening","Tempering","Seasoning","Curing","Aging","Mellowing","Softening","Smoothing","Leveling","Planing","Sanding","Buffing","Burnishing","Radiating","Beaming","Lighting","Illuminating","Brightening","Clarifying","Purifying","Filtering","Distilling","Condensing","Concentrating","Focusing","Directing","Channeling","Terraced","Ascending","Streaming","Umber","Careful","Perfecting","Glittering","Twinkling","Verdure","Auroral","Boreal","Austral","Temperate"]),we=Object.freeze(["Falcon","Hawk","Eagle","Owl","Heron","Crane","Swan","Dove","Raven","Finch","Robin","Wren","Lark","Jay","Ibis","Kite","Osprey","Condor","Pelican","Stork","Sparrow","Tern","Puffin","Parrot","Toucan","Kingfisher","Flamingo","Quail","Pheasant","Grouse","Oriole","Warbler","Thrush","Starling","Magpie","Swallow","Martin","Plover","Curlew","Sandpiper","Wolf","Fox","Bear","Stag","Elk","Moose","Bison","Lynx","Cougar","Panther","Jaguar","Leopard","Tiger","Lion","Cheetah","Gazelle","Antelope","Impala","Zebra","Giraffe","Rhino","Hippo","Otter","Beaver","Badger","Marten","Ferret","Mink","Hare","Rabbit","Squirrel","Chipmunk","Porcupine","Hedgehog","Armadillo","Pangolin","Lemur","Gibbon","Tamarin","Capybara","Chinchilla","Ocelot","Margay","Coati","Kinkajou","Tapir","Okapi","Kudu","Oryx","Chamois","Orca","Dolphin","Whale","Narwhal","Walrus","Seal","Manatee","Turtle","Iguana","Gecko","Chameleon","Newt","Salamander","Crab","Lobster","Seahorse","Starfish","Octopus","Squid","Jellyfish","Stingray","Barracuda","Marlin","Sailfish","Trout","Salmon","Mantis","Cricket","Firefly","Dragonfly","Cedar","Oak","Pine","Birch","Maple","Elm","Ash","Willow","Cypress","Redwood","Sequoia","Spruce","Fir","Larch","Yew","Beech","Alder","Poplar","Aspen","Walnut","Hickory","Teak","Mahogany","Ebony","Bamboo","Palm","Acacia","Baobab","Banyan","Olive","Laurel","Magnolia","Lotus","Orchid","Iris","Lily","Rose","Tulip","Daisy","Aster","Dahlia","Peony","Jasmine","Violet","Clover","Fern","Moss","Lichen","Ivy","Vine","Reed","Sage","Basil","Thyme","Mint","Dill","Fennel","Sorrel","Yarrow","Thistle","Heather","Bluebell","Primrose","Marigold","Sunflower","Zinnia","Pansy","Poppy","Crocus","Snowdrop","Foxglove","Honeysuckle","Wisteria","Hibiscus","Plumeria","Gardenia","Camellia","Begonia","Azalea","Oleander","Canyon","Ridge","Peak","Summit","Cliff","Bluff","Mesa","Butte","Plateau","Terrace","Valley","Basin","Gorge","Ravine","Gulch","Fjord","Inlet","Bay","Cove","Harbor","Lagoon","Reef","Atoll","Isle","Peninsula","Cape","Shoal","Bank","Ledge","Shelf","Dune","Desert","Steppe","Tundra","Glacier","Moraine","Geyser","Oasis","Delta","Estuary","Marsh","Bog","Swamp","Fen","Moor","Heath","Meadow","Prairie","Savanna","Glen","Dale","Dell","Vale","Hollow","Grove","Copse","Thicket","Taiga","Mangrove","Wetland","Cascade","Brook","Creek","Stream","River","Lake","Pond","Pool","Tarn","Loch","Falls","Fountain","Grotto","Cavern","Cave","Tunnel","Arch","Bridge","Ford","Pass","Trail","Path","Route","Caldera","Crater","Vent","Spire","Needle","Dome","Gateway","Portal","Threshold","Verge","Brink","Edge","Rim","Brow","Crest","Promontory","Headland","Spit","Tombolo","Isthmus","Strait","Narrows","Sound","Bight","Reach","Stretch","Expanse","Clearing","Glade","Knoll","Hillock","Mound","Tor","Crag","Scarp","Escarpment","Comet","Meteor","Asteroid","Nebula","Galaxy","Quasar","Pulsar","Star","Sun","Moon","Planet","Orbit","Eclipse","Corona","Flare","Nova","Cosmos","Void","Abyss","Ether","Zenith","Nadir","Horizon","Aurora","Meridian","Equinox","Solstice","Phase","Cycle","Epoch","Eon","Era","Dawn","Dusk","Twilight","Night","Noon","Morning","Evening","Sunset","Sunrise","Daybreak","Nightfall","Starlight","Moonbeam","Sunray","Skyline","Firmament","Canopy","Infinity","Vega","Rigel","Altair","Deneb","Sirius","Polaris","Arcturus","Antares","Lyra","Orion","Draco","Phoenix","Hydra","Corvus","Cygnus","Aquila","Andromeda","Pegasus","Perseus","Gemini","Centauri","Cassiopeia","Scorpius","Sagittarius","Capella","Procyon","Aldebaran","Betelgeuse","Spica","Prism","Quill","Forge","Anvil","Helm","Rune","Atlas","Compass","Anchor","Beacon","Bell","Bugle","Drum","Flute","Harp","Horn","Lyre","Pipe","Gong","Chime","Cymbal","Fiddle","Trumpet","Viola","Cello","Oboe","Lute","Mandolin","Zither","Sitar","Banjo","Lantern","Torch","Candle","Lamp","Globe","Lens","Scope","Mirror","Frame","Easel","Palette","Brush","Chisel","Mallet","Hammer","Tongs","Ladle","Kettle","Crucible","Mortar","Pestle","Flask","Vial","Beaker","Alembic","Furnace","Kiln","Loom","Shuttle","Bobbin","Spool","Thimble","Pin","Clasp","Buckle","Brooch","Pendant","Amulet","Talisman","Charm","Token","Coin","Medal","Badge","Shield","Banner","Flag","Pennant","Sigil","Stamp","Emblem","Totem","Icon","Statue","Obelisk","Monolith","Cairn","Tablet","Scroll","Tome","Codex","Ledger","Journal","Chronicle","Almanac","Manual","Gazette","Folio","Pamphlet","Broadsheet","Parchment","Vellum","Papyrus","Inkwell","Quiver","Satchel","Pouch","Casket","Coffer","Chest","Crate","Barrel","Quartz","Opal","Onyx","Agate","Garnet","Topaz","Beryl","Zircon","Spinel","Peridot","Jasper","Amethyst","Citrine","Tourmaline","Malachite","Azurite","Lapis","Pyrite","Galena","Mica","Talc","Gypsum","Calcite","Dolomite","Basalt","Granite","Marble","Slate","Shale","Sandstone","Limestone","Obsidian","Pumice","Tuff","Chert","Flint","Chalcedony","Carnelian","Sardonyx","Moonstone","Sunstone","Labradorite","Tanzanite","Kunzite","Rhodonite","Sodalite","Chrysocolla","Aventurine","Fluorite","Seraphinite","Charoite","Sugilite","Larimar","Prehnite","Danburite","Scolecite","Celestite","Amazonite","Howlite","Lepidolite","Storm","Thunder","Lightning","Breeze","Gale","Squall","Typhoon","Cyclone","Monsoon","Tempest","Zephyr","Chinook","Mistral","Sirocco","Foehn","Bora","Rain","Drizzle","Shower","Downpour","Deluge","Flood","Torrent","Current","Tide","Wave","Swell","Surf","Spray","Foam","Mist","Fog","Haze","Dew","Frost","Ice","Snow","Sleet","Hail","Rime","Thaw","Flow","Drift","Eddy","Vortex","Whirl","Spiral","Funnel","Column","Plume","Wisp","Streak","Band","Front","Trough","Rainbow","Halo","Mirage","Shimmer","Glimmer","Tower","Turret","Bastion","Citadel","Fortress","Castle","Palace","Manor","Lodge","Cabin","Cottage","Villa","Ranch","Barn","Silo","Mill","Foundry","Workshop","Studio","Gallery","Museum","Library","Archive","Treasury","Vault","Chamber","Hall","Court","Plaza","Garden","Balcony","Porch","Arcade","Colonnade","Pergola","Pavilion","Gazebo","Kiosk","Chapel","Temple","Shrine","Monastery","Abbey","Cathedral","Basilica","Minaret","Pagoda","Stupa","Pyramid","Arena","Stadium","Forum","Market","Bazaar","Emporium","Depot","Station","Terminal","Dock","Wharf","Pier","Jetty","Quay","Marina","Lighthouse","Watchtower","Outpost","Camp","Shelter","Refuge","Sanctuary","Haven","Retreat","Nest","Aerie","Burrow","Den","Lair","Roost","Perch","Bower","Arbor","Alcove","Sextant","Astrolabe","Sundial","Hourglass","Pendulum","Gyroscope","Turbine","Dynamo","Generator","Piston","Valve","Lever","Pulley","Winch","Derrick","Gantry","Scaffold","Trellis","Lattice","Grid","Net","Web","Axle","Gear","Cog","Sprocket","Chain","Link","Cable","Wire","Thread","Cord","Rope","Rigging","Mast","Boom","Spar","Keel","Hull","Rudder","Tiller","Wheel","Chart","Map","Gauge","Meter","Scale","Caliper","Ruler","Level","Plumb","Protractor","Template","Stencil","Mold","Die","Lathe","Bellows","Retort","Condenser","Centrifuge","Spectrometer","Oscilloscope","Theodolite","Transit","Sounding","Probe","Sensor","Relay","Switch","Circuit","Diode","Quest","Saga","Legend","Myth","Fable","Ballad","Anthem","Hymn","Ode","Sonnet","Verse","Stanza","Canto","Chorus","Refrain","Motif","Theme","Arc","Prologue","Epilogue","Prelude","Overture","Finale","Crescendo","Cadence","Tempo","Rhythm","Pulse","Beat","Tone","Note","Chord","Harmony","Melody","Lyric","Opus","Suite","Etude","Fugue","Canon","March","Waltz","Rondo","Aria","Duet","Trio","Quartet","Ensemble","Guild","League","Order","Council","Assembly","Conclave","Synod","Quorum","Cohort","Legion","Brigade","Battalion","Regiment","Division","Corps","Fleet","Squadron","Patrol","Convoy","Caravan","Expedition","Voyage","Journey","Trek","Odyssey","Passage","Crossing","Venture","Enterprise","Mission","Campaign","Crusade","Pilgrimage","Safari","Sortie","Foray","Rally","Charge","Advance","Concord","Ember","Blaze","Inferno","Pyre","Spark","Cinder","Smoke","Vapor","Steam","Nimbus","Cumulus","Cirrus","Stratus","Billow","Puff","Wake","Ripple","Surge","Ebb","Flux","Gush","Rush","Spring","Well","Font","Source","Origin","Root","Seed","Sprout","Bud","Bloom","Petal","Leaf","Branch","Limb","Trunk","Bark","Grain","Fiber","Pulp","Core","Sap","Resin","Nectar","Pollen","Spore","Frond","Tendril","Runner","Shoot","Stalk","Stem","Thorn","Burr","Cone","Acorn","Pinecone","Nutshell","Keystone","Capstone","Milestone","Cornerstone","Foundation","Bedrock","Pillar","Buttress","Parapet","Battlement","Barbican","Gatehouse","Drawbridge","Portcullis","Moat","Stockade","Palisade","Bulwark","Levee","Embankment","Causeway","Aqueduct","Viaduct","Trestle","Span","Lintel","Plinth","Pedestal","Dais","Rostrum","Podium","Stage","Platform","Deck","Landing","Berth","Channel","Lock","Weir","Dam","Spillway","Flume","Chute","Sluice","Nozzle","Spout","Faucet","Cistern","Wellspring","Headwater","Watershed","Alluvium","Loam","Humus","Peat","Marl","Silt","Writ","Clamp","Eyepiece","Traverse","Stride","Parley","Char","Trace","Confluence","Rampart"]),Te=Object.freeze(new Set([]));function cr(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}var dr=`solnames-${"v1"}:`;function ee(r,e="display",t){let n=U(r,t);switch(e){case"short":return n.short;case"display":return n.name;case"tag":return n.tag;case"full":return n.full}}function U(r,e){let t=e?.adjectives??ke,n=e?.nouns??we,a=e?.blockedCombos??Te,o=e?.domain?`${e.domain}:`:dr,s=X(o+r),c=Ce(o+r),i=(s[0]<<24|s[1]<<16|s[2]<<8|s[3])>>>0,d=cr(i),h=t[Math.floor(d()*t.length)],l=n[Math.floor(d()*n.length)];for(;a.has(h+l);)h=t[Math.floor(d()*t.length)],l=n[Math.floor(d()*n.length)];let x=t[Math.floor(d()*t.length)],p=n[Math.floor(d()*n.length)],S=c.slice(16,20);return{short:h,name:h+l,tag:h+l+"#"+S,full:h+l+"-"+x+p,adjective:h,noun:l,hash:c,discriminator:S}}function T(r){let e=r.replace("#","");return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}function H(r,e,t){return"#"+[r,e,t].map(n=>Math.max(0,Math.min(255,Math.round(n))).toString(16).padStart(2,"0")).join("")}function w(r,e=.12){let[t,n,a]=T(r);return H(t*(1-e),n*(1-e),a*(1-e))}function B(r,e=.15){let[t,n,a]=T(r);return H(t+(255-t)*e,n+(255-n)*e,a+(255-a)*e)}function C(r,e,t=.5){let[n,a,o]=T(r),[s,c,i]=T(e);return H(n+(s-n)*t,a+(c-a)*t,o+(i-o)*t)}function re(r){let[e,t,n]=T(r);return(e+t+n)/3}function K(r){let e=re(r),t=e<100,n=B(r,.1),a=w(r,.22),o=w(r,.05),[s,c,i]=T(r),d;if(e>120){let k=e>180?.03:.06,I=e>180?.3:.28,W=e>180?.25:.22;d=H(Math.min(255,s+s*k),Math.max(0,c-c*I),Math.max(0,i-i*W))}else d=H(Math.min(255,s+50),Math.max(0,c-10),Math.max(0,i-5));let h=.15+.18*(1-Math.min(1,e/240)),l=Math.max(0,Math.min(1,(e-60)/180)),x=C("#D89090","#A83848",l),p=1-Math.abs(e-140)/80,S=(t?.7:.62)+Math.max(0,p)*.12,b=C(r,x,Math.min(.82,S)),[y,O,m]=T(b),g=Math.abs(s-y)+Math.abs(c-O)+Math.abs(i-m)<60?C(r,x,.78):b,v=t?B(r,e<80?.35:.25):w(r,.55),M=t?B(r,.2):w(r,.2),_=Math.max(0,Math.min(1,(e-100)/60)),$=C(B(r,.08),o,_),A=w(r,.1+.06*(1-Math.min(1,e/160))),F=t?B(r,.18):w(r,.15),G=Math.max(0,Math.min(1,(e-60)/180)),u=C("#EDE8E0","#FBF8F2",G),L=e>140?.3:e>100?.5:.7,E=C("#808890",C(r,"#B0A898",.3),L);return{skinHi:n,skinLo:a,skinMid:o,isDark:t,cheekColor:d,cheekOpacity:h,lipColor:g,noseFill:M,browColor:v,earFill:$,earShadow:A,eyeWhiteAdapted:u,lidColor:F,accessoryColor:E}}function Me(r,e){let[t,n,a]=T(r),[o,s,c]=T(e);return Math.abs(t-o)+Math.abs(n-s)+Math.abs(a-c)<80?.7:.5}function ur(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function gr(r,e,t,n,a,o,s,c,i,d,h){if(i)return"";let l="<defs>";return l+=`<linearGradient id="${r}sg" x1="0" y1="0" x2="0" y2="1">`,l+=`<stop offset="0%" stop-color="${t}"/>`,l+=`<stop offset="100%" stop-color="${n}"/>`,l+="</linearGradient>",l+=`<linearGradient id="${r}hg" x1="0" y1="0" x2="0" y2="1">`,l+=`<stop offset="0%" stop-color="${B(a,.15)}"/>`,l+=`<stop offset="100%" stop-color="${w(a,.15)}"/>`,l+="</linearGradient>",l+=`<linearGradient id="${r}bg" x1="0" y1="0" x2="1" y2="1">`,l+=`<stop offset="0%" stop-color="${B(o,.12)}"/>`,l+=`<stop offset="100%" stop-color="${w(o,.12)}"/>`,l+="</linearGradient>",d&&(l+=`<radialGradient id="${r}glow" cx="0.5" cy="0.28" r="0.45">`,l+=`<stop offset="0%" stop-color="#ffffff" stop-opacity="${h}"/>`,l+='<stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>',l+="</radialGradient>",l+=`<radialGradient id="${r}chin" cx="0.5" cy="0.85" r="0.35">`,l+=`<stop offset="0%" stop-color="${n}" stop-opacity="0.30"/>`,l+=`<stop offset="100%" stop-color="${n}" stop-opacity="0"/>`,l+="</radialGradient>",l+=`<radialGradient id="${r}cL" cx="0.5" cy="0.5" r="0.5">`,l+=`<stop offset="0%" stop-color="${s}" stop-opacity="${c.toFixed(2)}"/>`,l+=`<stop offset="100%" stop-color="${s}" stop-opacity="0"/>`,l+="</radialGradient>",l+=`<radialGradient id="${r}cR" cx="0.5" cy="0.5" r="0.5">`,l+=`<stop offset="0%" stop-color="${s}" stop-opacity="${c.toFixed(2)}"/>`,l+=`<stop offset="100%" stop-color="${s}" stop-opacity="0"/>`,l+="</radialGradient>"),l+="</defs>",l}function hr(r,e,t){let n=t?"currentColor":`url(#${e}hg)`;switch(r){case 5:return`<g fill="${n}"><rect x="10" y="14" width="44" height="42" rx="6"/></g>`;case 6:return`<g fill="${n}"><rect x="12" y="14" width="40" height="32" rx="8"/></g>`;case 8:return`<g fill="${n}"><rect x="11" y="14" width="42" height="38" rx="8"/></g>`;default:return""}}function yr(r,e){return`<ellipse cx="11" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="11" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/><ellipse cx="53" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="53" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/>`}function pr(r,e,t,n=1){let a=t?e:`url(#${r}sg)`,o=n<1?` opacity="${n}"`:"";return`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="${a}"${o}/>`}function fr(r,e){return e?"":`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}glow)"/><rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}chin)"/><ellipse cx="22" cy="42" rx="5" ry="3.5" fill="url(#${r}cL)"/><ellipse cx="42" cy="42" rx="5" ry="3.5" fill="url(#${r}cR)"/><line x1="20" y1="50" x2="44" y2="50" stroke="currentColor" stroke-width="0.3" opacity="0.08" stroke-linecap="round"/>`}function mr(r,e,t,n,a){let o=a?t:`url(#${e}hg)`;switch(r){case 0:return"";case 1:return`<path d="M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z" fill="${o}"/>`;case 2:return`<g fill="${o}"><circle cx="20" cy="14" r="5"/><circle cx="28" cy="11" r="5.5"/><circle cx="36" cy="11" r="5.5"/><circle cx="44" cy="14" r="5"/><circle cx="16" cy="20" r="4"/><circle cx="48" cy="20" r="4"/></g>`;case 3:return`<path d="M14 26 Q14 12 32 10 Q50 12 50 26 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><path d="M14 20 Q8 16 10 8 Q14 10 20 16 Z" fill="${o}"/>`;case 4:return`<ellipse cx="32" cy="10" rx="14" ry="8" fill="${o}"/>`;case 5:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/>`;case 6:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><rect x="10" y="28" width="8" height="14" rx="4" fill="${o}"/><rect x="46" y="28" width="8" height="14" rx="4" fill="${o}"/>`;case 7:{let s=Me(t,n);return`<rect x="15" y="13" width="34" height="16" rx="10" ry="8" fill="${t}" opacity="${s.toFixed(2)}"/>`}case 8:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><path d="M12 30 Q10 20 14 16" fill="none" stroke="${o}" stroke-width="4" stroke-linecap="round"/><path d="M52 30 Q54 20 50 16" fill="none" stroke="${o}" stroke-width="4" stroke-linecap="round"/>`;case 9:return`<path d="M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z" fill="${o}"/><ellipse cx="32" cy="6" rx="6" ry="5" fill="${o}"/>`;default:return""}}function xr(r,e,t,n,a){let i="";switch(r){case 0:i+=`<circle cx="25" cy="33" r="4" fill="${t}"/>`,i+=`<circle cx="${25+.8}" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="4" fill="${t}"/>`,i+=`<circle cx="${39+.8}" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`);break;case 1:i+=`<circle cx="25" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="39" cy="33" r="2" fill="${e}"/>`;break;case 2:i+=`<ellipse cx="25" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,i+=`<circle cx="${25+.5}" cy="33" r="1.8" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`),i+=`<ellipse cx="39" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,i+=`<circle cx="${39+.5}" cy="33" r="1.8" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`);break;case 3:i+=`<circle cx="25" cy="33" r="5" fill="${t}"/>`,i+=`<circle cx="25" cy="${33+.5}" r="2.8" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="5" fill="${t}"/>`,i+=`<circle cx="39" cy="${33+.5}" r="2.8" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`);break;case 4:i+=`<ellipse cx="25" cy="34" rx="4" ry="2.2" fill="${t}"/>`,i+=`<circle cx="25" cy="34" r="1.5" fill="${e}"/>`,a&&(i+=`<line x1="${25-4.5}" y1="${33-.5}" x2="${25+4.5}" y2="${33-.5}" stroke="${n}" stroke-width="0.8" stroke-linecap="round"/>`),i+=`<ellipse cx="39" cy="34" rx="4" ry="2.2" fill="${t}"/>`,i+=`<circle cx="39" cy="34" r="1.5" fill="${e}"/>`,a&&(i+=`<line x1="${39-4.5}" y1="${33-.5}" x2="${39+4.5}" y2="${33-.5}" stroke="${n}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 5:i+=`<path d="M21 33 Q25 37 29 33" fill="none" stroke="${e}" stroke-width="1.8" stroke-linecap="round"/>`,i+=`<path d="M35 33 Q39 37 43 33" fill="none" stroke="${e}" stroke-width="1.8" stroke-linecap="round"/>`;break;case 6:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${25+.5}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="${25+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,a&&(i+=`<line x1="${25+2.5}" y1="${33-3.5}" x2="29" y2="28" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`,i+=`<line x1="${25+3.5}" y1="${33-2.5}" x2="30" y2="${33-3.5}" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`),i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${39+.5}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="${39+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,a&&(i+=`<line x1="${39+2.5}" y1="${33-3.5}" x2="43" y2="28" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`,i+=`<line x1="${39+3.5}" y1="${33-2.5}" x2="44" y2="${33-3.5}" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 7:i+=`<ellipse cx="25" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,i+=`<ellipse cx="${25+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`,i+=`<ellipse cx="39" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,i+=`<ellipse cx="${39+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`;break;default:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${25+.8}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${39+.8}" cy="33" r="2" fill="${e}"/>`}return a&&r!==1&&r!==5&&(i+=`<path d="M21 ${33-1.5} Q25 29 29 ${33-1.5}" fill="none" stroke="${n}" stroke-width="0.5" opacity="0.4"/>`,i+=`<path d="M35 ${33-1.5} Q39 29 43 ${33-1.5}" fill="none" stroke="${n}" stroke-width="0.5" opacity="0.4"/>`),i}function Sr(r,e){switch(r){case 0:return`<line x1="22" y1="27" x2="28" y2="${27-.5}" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/><line x1="36" y1="${27-.5}" x2="42" y2="27" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/>`;case 1:return`<line x1="${25-3.5}" y1="27" x2="${25+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><line x1="${39-3.5}" y1="27" x2="${39+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M${25-3.5} ${27+.5} Q25 ${27-1.5} ${25+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><path d="M${39-3.5} ${27+.5} Q39 ${27-1.5} ${39+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 3:return`<path d="M21 28 Q25 24 29 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/><path d="M35 28 Q39 24 43 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/>`;case 4:return`<polyline points="22,28 25,25 28,27" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/><polyline points="36,27 39,25 42,28" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>`;default:return""}}function br(r,e){switch(r){case 0:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`;case 1:return`<circle cx="32" cy="39" r="1.8" fill="${e}" opacity="0.5"/>`;case 2:return`<path d="M30 40 Q32 37 34 40" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round" opacity="0.5"/>`;case 3:return`<circle cx="${32-1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/><circle cx="${32+1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/>`;default:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`}}function $r(r,e,t){let o=t?"#e8e0d8":"#ffffff";switch(r){case 0:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`;case 1:return`<line x1="29" y1="46" x2="35" y2="46" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M27 45 Q32 50 37 45" fill="none" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 3:return`<ellipse cx="32" cy="46" rx="2.5" ry="3" fill="${e}" opacity="0.7"/>`;case 4:return`<path d="M28 46 Q33 46 36 ${45-1.5}" fill="none" stroke="${e}" stroke-width="1.3" stroke-linecap="round"/>`;case 5:return`<path d="M27 45 Q32 51 37 45" fill="${o}" stroke="${e}" stroke-width="1"/><line x1="28" y1="${45+1.5}" x2="36" y2="${45+1.5}" stroke="${e}" stroke-width="0.3" opacity="0.3"/>`;case 6:return`<line x1="28" y1="46" x2="36" y2="46" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 7:return`<ellipse cx="32" cy="46" rx="3.5" ry="2" fill="${e}" opacity="0.25"/><path d="M29 45 Q32 ${45+2.5} 35 45" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;default:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`}}function Pe(r,e,t,n,a){switch(r){case 0:return"";case 1:return'<circle cx="40" cy="44" r="0.8" fill="#3a2a2a"/>';case 2:return`<g fill="none" stroke="${t}" stroke-width="1"><circle cx="25" cy="33" r="5.5"/><circle cx="39" cy="33" r="5.5"/><line x1="30.5" y1="33" x2="33.5" y2="33"/><line x1="19.5" y1="33" x2="14" y2="31"/><line x1="44.5" y1="33" x2="50" y2="31"/></g>`;case 3:return`<g fill="none" stroke="${t}" stroke-width="1"><rect x="19" y="29" width="12" height="8" rx="1.5"/><rect x="33" y="29" width="12" height="8" rx="1.5"/><line x1="31" y1="33" x2="33" y2="33"/><line x1="19" y1="33" x2="14" y2="31"/><line x1="45" y1="33" x2="50" y2="31"/></g>`;case 4:return`<circle cx="10" cy="38" r="1.5" fill="${n}"/><circle cx="10" cy="41" r="2" fill="${n}" opacity="0.8"/>`;case 5:return`<rect x="13" y="20" width="38" height="3.5" rx="1.5" fill="${a}" opacity="0.85"/>`;case 6:return'<g fill="#a0785a" opacity="0.35"><circle cx="21" cy="40" r="0.6"/><circle cx="23" cy="42" r="0.5"/><circle cx="19" cy="41.5" r="0.5"/><circle cx="43" cy="40" r="0.6"/><circle cx="41" cy="42" r="0.5"/><circle cx="45" cy="41.5" r="0.5"/></g>';case 7:return`<circle cx="10" cy="37" r="1.2" fill="${n}"/><circle cx="54" cy="37" r="1.2" fill="${n}"/>`;case 8:return`<g fill="none" stroke="${t}" stroke-width="1.2"><path d="M19 30 Q19 28 25 28 Q31 28 31 33 Q31 38 25 38 Q19 38 19 33 Z" fill="${t}" fill-opacity="0.15"/><path d="M33 30 Q33 28 39 28 Q45 28 45 33 Q45 38 39 38 Q33 38 33 33 Z" fill="${t}" fill-opacity="0.15"/><line x1="31" y1="32" x2="33" y2="32"/><line x1="19" y1="31" x2="14" y2="29"/><line x1="45" y1="31" x2="50" y2="29"/></g>`;case 9:return'<g><rect x="38" y="38" width="8" height="4" rx="1" fill="#f0d0a0" transform="rotate(-15 42 40)"/><line x1="40" y1="39" x2="40" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/><line x1="42" y1="39" x2="42" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/><line x1="44" y1="39" x2="44" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/></g>';default:return""}}function V(r,e){let{size:t=64,theme:n,traitOverrides:a,enableBlink:o,className:s,colorOverrides:c}=e??{},i=N(r,a),d=e?.detail??"auto",h=d==="full"||d==="auto"&&t>=48,l=n?.flat??!1,x=n?.skinColors??ye,p=n?.eyeColors??pe,S=n?.hairColors??fe,b=n?.bgColors??me,y=c?.skin??x[i.skinColor%x.length],O=c?.eyes??p[i.eyeColor%p.length],m=c?.hair??S[i.hairColor%S.length],D=c?.bg??b[i.bgColor%b.length],g=K(y),v=n?.bgOpacity??1,M=n?.bgRadius??4,_=c?.eyebrow??n?.eyebrowColor??g.browColor,$=c?.nose??n?.noseColor??g.noseFill,A=c?.mouth??n?.mouthColor??g.lipColor,F=c?.accessory??n?.accessoryColor??g.accessoryColor,G=c?.eyeWhite??n?.eyeWhiteColor??g.eyeWhiteAdapted,u=n?.glassesColor??"#4a4a5a",L=n?.earringColor??C(y,"#d4a840",.4),E=n?.headbandColor??C(m,"#c04040",.5),k="sf"+ur(r).toString(36),I=n?.cheekEnabled??!0,W=n?.cheekColor??g.cheekColor,Y=n?.cheekOpacity??g.cheekOpacity,ge=i.hairStyle%10,j=R(i),De=s?` class="${s}"`:"",f=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="${t}" height="${t}"${De}>`,_e=n?.glowIntensity??.1;f+=gr(k,y,g.skinHi,g.skinLo,m,D,W,Y,l,h&&I,_e);let J=!!o,Ge=typeof o=="object"?o.duration??4:4,he=typeof o=="object"?o.delay??0:0;if(J){let Q=`sf-${r.slice(0,8)}`,We=he?` ${he}s`:"";f+=`<style>@keyframes ${Q}-blink{0%,90%,100%{transform:scaleY(1)}95%{transform:scaleY(0.1)}}.${Q}-eyes{animation:${Q}-blink ${Ge}s ease-in-out${We} infinite;transform-origin:32px 33px}</style>`}let He=l?D:`url(#${k}bg)`;f+=`<rect x="0" y="0" width="64" height="64" fill="${He}" opacity="${v}" rx="${M}"/>`,f+=hr(ge,k,l),f+=yr(g.earFill,g.earShadow);let Ie=n?.skinOpacity??1;f+=pr(k,y,l,Ie);let Ne=n?.shadowEnabled??!0;if(h&&I&&Ne&&(f+=fr(k,l)),j===5&&(f+=Pe(5,F,u,L,E)),f+=mr(ge,k,m,y,l),J){let Q=`sf-${r.slice(0,8)}`;f+=`<g class="${Q}-eyes">`}return f+=xr(i.eyeStyle%8,O,G,g.lidColor,h),J&&(f+="</g>"),f+=Sr(i.eyebrows%5,_),f+=br(i.nose%4,$),f+=$r(i.mouth%8,A,g.isDark),j!==0&&j!==5&&(f+=Pe(j,F,u,L,E)),n?.border&&(f+=`<rect x="0" y="0" width="64" height="64" fill="none" stroke="${n.border.color}" stroke-width="${n.border.width}" rx="${M}"/>`),f+="</svg>",f}function te(r,e){let t=V(r,e);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}function Be(r,e){let t=V(r,e);return`data:image/svg+xml;base64,${btoa(t)}`}var ne={0:"porcelain",1:"ivory",2:"fair",3:"light",4:"sand",5:"golden",6:"warm",7:"caramel",8:"brown",9:"deep"},ie={0:"round, wide-open",1:"small and minimal",2:"almond-shaped",3:"wide and expressive",4:"relaxed, half-lidded",5:"joyful, crescent-shaped",6:"bright and sparkling",7:"gentle and narrow"},ae={0:"dark brown",1:"blue",2:"green",3:"hazel",4:"gray"},ve={0:"wispy",1:"straight",2:"natural",3:"elegantly arched",4:"sharply angled"},Fe={0:"a subtle shadow nose",1:"a small button nose",2:"a soft curved nose",3:"a button nose with visible nostrils"},oe={0:"a gentle smile",1:"a calm, neutral expression",2:"a happy grin",3:"a surprised O-shaped mouth",4:"a confident smirk",5:"a wide, toothy grin",6:"a flat, straight expression",7:"a soft pout"},le={0:"bald, with no hair",1:"short, neatly cropped hair",2:"bouncy, curly hair",3:"side-swept hair",4:"a voluminous puff",5:"long hair that falls past the shoulders",6:"a clean bob cut",7:"a close buzz cut",8:"flowing, wavy hair",9:"a neat topknot"},se={0:"jet black",1:"espresso brown",2:"walnut",3:"honey blonde",4:"copper red",5:"silver",6:"charcoal",7:"burgundy",8:"strawberry",9:"ginger"},ce={0:"",1:"a beauty mark",2:"round glasses",3:"rectangular glasses",4:"a dangling earring",5:"a headband",6:"freckles",7:"stud earrings",8:"aviator sunglasses",9:"a band-aid"},Re={0:"rose",1:"olive",2:"sage",3:"fern",4:"mint",5:"ocean",6:"sky",7:"lavender",8:"orchid",9:"blush"};function q(r,e){let t=N(r),{includeBackground:n=!0,format:a="paragraph",perspective:o="third",name:s}=e??{};return a==="structured"?kr(t,n):a==="compact"?wr(t):Cr(t,o,s,n)}function Cr(r,e,t,n){let a=[],o=R(r),s=e==="first"?t?`I'm ${t}. I have`:"I have":t?`${t} has`:"This SolFace has",c=e==="first"?"I'm":"They're";a.push(`${s} a squircle face with ${ne[r.skinColor]??"warm"} skin`);let i=ie[r.eyeStyle]??"round",d=ae[r.eyeColor]??"dark";a.push(`${i} ${d} eyes`);let h=ve[r.eyebrows];h&&a.push(`${h} eyebrows`);let l=le[r.hairStyle]??"",x=se[r.hairColor]??"";r.hairStyle===0?a.push(e==="first"?"and am bald":"and is bald"):l.startsWith("a ")?a.push(`and a ${x} ${l.slice(2)}`):a.push(`and ${x} ${l}`);let p=a[0];a.length>2?p+=", "+a.slice(1,-1).join(", ")+", "+a[a.length-1]:a.length===2&&(p+=" and "+a[1]),p+=".";let S=Fe[r.nose];if(S){let m=e==="first"?"I have":(t??"They")+(t?" has":" have");p+=` ${m} ${S}.`}let b=ce[o];b&&(p+=` ${c} wearing ${b}.`);let y=oe[r.mouth]??"a smile",O=e==="first"?"I have":(t??"They")+(t?" has":" have");if(p+=` ${O} ${y}.`,n){let m=Re[r.bgColor]??"colorful";p+=` The background is ${m}.`}return p}function kr(r,e){let t=R(r),n=["Face: squircle",`Skin: ${ne[r.skinColor]??"warm"}`,`Eyes: ${ie[r.eyeStyle]??"round"}, ${ae[r.eyeColor]??"dark"}`,`Eyebrows: ${ve[r.eyebrows]??"wispy"}`],a=Fe[r.nose];if(a&&n.push(`Nose: ${a.replace(/^a /,"")}`),n.push(`Mouth: ${oe[r.mouth]??"smile"}`),r.hairStyle===0)n.push("Hair: bald");else{let s=le[r.hairStyle]??"",c=se[r.hairColor]??"";n.push(`Hair: ${c} ${s.startsWith("a ")?s.slice(2):s}`)}let o=ce[t];return o&&n.push(`Accessory: ${o}`),e&&n.push(`Background: ${Re[r.bgColor]??"colorful"}`),n.join(`
1
+ "use strict";var SolFaces=(()=>{var Z=Object.defineProperty;var Qe=Object.getOwnPropertyDescriptor;var Ve=Object.getOwnPropertyNames;var ze=Object.prototype.hasOwnProperty;var je=(r,e)=>{for(var t in e)Z(r,t,{get:e[t],enumerable:!0})},Ue=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ve(e))!ze.call(r,a)&&a!==t&&Z(r,a,{get:()=>e[a],enumerable:!(n=Qe(e,a))||n.enumerable});return r};var Ke=r=>Ue(Z({},"__esModule",{value:!0}),r);var Hr={};je(Hr,{default:()=>Gr});var ye=["#faeae5","#efd6c8","#e4c5aa","#d5b590","#c59e77","#b4875f","#9d6d4d","#805742","#654134","#4b2d25"],pe=["#382414","#3868A8","#38784C","#808838","#586878"],fe=["#1A1A24","#4C3428","#887058","#D4B868","#A84830","#C0C0CC","#484858","#783850","#D8B0A0","#C08048"],me=["#b98387","#a9a360","#9eb785","#69ab79","#81bbb0","#6499af","#7f8bbd","#8869ab","#b785b3","#ab6984"];function xe(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function qe(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function N(r,e){let t=xe(r),n=qe(t),a={faceShape:Math.floor(n()*4),skinColor:Math.floor(n()*10),eyeStyle:Math.floor(n()*8),eyeColor:Math.floor(n()*5),eyebrows:Math.floor(n()*5),nose:Math.floor(n()*4),mouth:Math.floor(n()*8),hairStyle:Math.floor(n()*10),hairColor:Math.floor(n()*10),accessory:Math.floor(n()*10),bgColor:Math.floor(n()*10)};return e?{...a,...e}:a}function R(r){let e=r.accessory%10,t=r.hairStyle%10;return(e===4||e===7)&&(t===5||t===6)?0:e}var Ye=["Squircle"],Je=["Porcelain","Ivory","Fair","Light","Sand","Golden","Warm","Caramel","Brown","Deep"],Ze=["Round","Minimal","Almond","Wide","Relaxed","Joyful","Bright","Gentle"],Xe=["Chocolate","Sky","Emerald","Hazel","Storm"],er=["Wispy","Straight","Natural","Arched","Angled"],rr=["Shadow","Button","Soft","Nostrils"],tr=["Smile","Calm","Happy","Oh","Smirk","Grin","Flat","Pout"],nr=["Bald","Short","Curly","Side Sweep","Puff","Long","Bob","Buzz","Wavy","Topknot"],ir=["Black","Espresso","Walnut","Honey","Copper","Silver","Charcoal","Burgundy","Strawberry","Ginger"],ar=["None","Beauty Mark","Round Glasses","Rect Glasses","Earring","Headband","Freckles","Stud Earrings","Aviators","Band-Aid"],or=["Rose","Olive","Sage","Fern","Mint","Ocean","Sky","Lavender","Orchid","Blush"];function Se(r){return{faceShape:Ye[0],skinColor:Je[r.skinColor]??"Fair",eyeStyle:Ze[r.eyeStyle]??"Round",eyeColor:Xe[r.eyeColor]??"Chocolate",eyebrows:er[r.eyebrows]??"Wispy",nose:rr[r.nose]??"Shadow",mouth:tr[r.mouth]??"Smile",hairStyle:nr[r.hairStyle]??"Bald",hairColor:ir[r.hairColor]??"Black",accessory:ar[R(r)]??"None",bgColor:or[r.bgColor]??"Rose"}}function be(r){return(xe(r)>>>0).toString(16).padStart(8,"0")}function $e(r,e){if(!(!r||!e))return e[r]}var lr=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function P(r,e){return e>>>r|e<<32-r}function X(r){let t=new TextEncoder().encode(r),n=t.length*8,a=64-(t.length+9)%64,o=t.length+1+(a===64?0:a)+8,s=new Uint8Array(o);s.set(t),s[t.length]=128;let c=new DataView(s.buffer);c.setUint32(o-4,n,!1);let i=1779033703,d=3144134277,h=1013904242,l=2773480762,S=1359893119,p=2600822924,b=528734635,m=1541459225,y=new Int32Array(64);for(let D=0;D<o;D+=64){for(let u=0;u<16;u++)y[u]=c.getInt32(D+u*4,!1);for(let u=16;u<64;u++){let L=P(7,y[u-15])^P(18,y[u-15])^y[u-15]>>>3,E=P(17,y[u-2])^P(19,y[u-2])^y[u-2]>>>10;y[u]=y[u-16]+L+y[u-7]+E|0}let g=i,v=d,M=h,_=l,$=S,A=p,F=b,G=m;for(let u=0;u<64;u++){let L=P(6,$)^P(11,$)^P(25,$),E=$&A^~$&F,k=G+L+E+lr[u]+y[u]|0,I=P(2,g)^P(13,g)^P(22,g),W=g&v^g&M^v&M,Y=I+W|0;G=F,F=A,A=$,$=_+k|0,_=M,M=v,v=g,g=k+Y|0}i=i+g|0,d=d+v|0,h=h+M|0,l=l+_|0,S=S+$|0,p=p+A|0,b=b+F|0,m=m+G|0}let O=new Uint8Array(32),x=new DataView(O.buffer);return x.setUint32(0,i,!1),x.setUint32(4,d,!1),x.setUint32(8,h,!1),x.setUint32(12,l,!1),x.setUint32(16,S,!1),x.setUint32(20,p,!1),x.setUint32(24,b,!1),x.setUint32(28,m,!1),O}function Ce(r){return Array.from(X(r)).map(e=>e.toString(16).padStart(2,"0")).join("")}var ke=Object.freeze(["Frost","Solar","Coral","Amber","Mossy","Lunar","Misty","Alpine","Autumn","Breeze","Cerulean","Cloudy","Cosmic","Crystal","Dewy","Dusty","Earthy","Floral","Forest","Frozen","Glacial","Golden","Grassy","Harbor","Ivory","Jasmine","Lagoon","Leafy","Lush","Marine","Meadow","Mineral","Mosaic","Nectar","Nordic","Oceanic","Orchid","Pearly","Petal","Polar","Prairie","Rain","River","Rocky","Sandy","Savanna","Shore","Sierra","Snowy","Spring","Starry","Stone","Summer","Sunset","Tidal","Timber","Tropic","Tundra","Valley","Verdant","Winding","Winter","Woody","Bloom","Blossom","Brook","Canyon","Cedar","Cloud","Comet","Copper","Dawn","Delta","Dune","Eclipse","Fern","Flame","Flora","Glade","Azure","Cobalt","Crimson","Indigo","Scarlet","Sapphire","Emerald","Ruby","Garnet","Onyx","Jade","Turquoise","Magenta","Plum","Russet","Tawny","Burnt","Gilded","Platinum","Bronze","Chrome","Pearl","Opal","Blush","Rosy","Dusky","Inky","Ashen","Cream","Slate","Charcoal","Steel","Pewter","Honey","Saffron","Citrus","Lemon","Tangerine","Peach","Apricot","Vermilion","Mauve","Lilac","Periwinkle","Cerise","Maroon","Burgundy","Wine","Berry","Cherry","Mint","Olive","Teal","Navy","Cyan","Neon","Pastel","Muted","Lustrous","Gleaming","Glossy","Shining","Glowing","Luminous","Brilliant","Sparkling","Shimmering","Iridescent","Prismatic","Spectral","Twilight","Sunrise","Sunlit","Moonlit","Starlit","Candlelit","Firelit","Sunbeam","Afterglow","Halo","Flicker","Glow","Ray","Beam","Blaze","Glint","Spark","Arc","Prism","Spectrum","Rainbow","Aurora","Nebula","Stellar","Astral","Lucent","Frosted","Swift","Bold","Keen","Brave","Noble","Serene","Fierce","Gentle","Agile","Alert","Astute","Candid","Clever","Daring","Eager","Earnest","Fair","Gallant","Graceful","Hardy","Honest","Humble","Jovial","Joyful","Kind","Loyal","Merry","Mindful","Nimble","Patient","Plucky","Proud","Quick","Ready","Resilient","Savvy","Sincere","Skilled","Steady","Stout","Strong","Sure","Tender","True","Valiant","Willing","Wise","Witty","Worthy","Zealous","Active","Adept","Ardent","Avid","Benign","Bright","Civil","Clean","Clear","Composed","Content","Courtly","Crafty","Curious","Decent","Devout","Diligent","Direct","Driven","Dynamic","Elegant","Elite","Even","Exact","Famed","Fervent","Fine","Firm","Fit","Fluid","Focal","Fond","Frank","Free","Fresh","Friendly","Frugal","Gifted","Glad","Grand","Great","Green","Grounded","Hale","Happy","Hearty","Heroic","Ideal","Infinite","Inner","Intact","Intent","Just","Lively","Lucky","Major","Mellow","Mighty","Modest","Natural","Neat","Optimal","Original","Pacific","Peaceful","Pious","Pleased","Poised","Polite","Popular","Potent","Precious","Premier","Prime","Proper","Proven","Pure","Quiet","Rapid","Rare","Real","Regal","Rich","Rising","Robust","Royal","Sacred","Safe","Scenic","Secure","Senior","Sharp","Simple","Smart","Smooth","Snug","Social","Solid","Sound","Special","Stable","Stately","Still","Super","Supreme","Sweet","Thorough","Tidy","Top","Total","Tough","Trim","Trusted","Ultimate","Unique","United","Upper","Useful","Valid","Valued","Varied","Vital","Vivid","Vocal","Whole","Wide","Young","Zesty","Iron","Gold","Silver","Marble","Granite","Velvet","Satin","Silk","Linen","Cotton","Suede","Denim","Canvas","Leather","Wooden","Bamboo","Wicker","Woven","Braided","Knit","Lace","Mesh","Fiber","Glass","Mirror","Diamond","Flint","Basalt","Obsidian","Chalk","Clay","Gravel","Pebble","Cobble","Brick","Tile","Resin","Fossil","Shell","Bone","Feather","Plush","Brushed","Polished","Hammered","Forged","Cast","Molten","Tempered","Etched","Carved","Sculpted","Spun","Pressed","Rolled","Folded","Layered","Stacked","Ribbed","Matte","Lacquered","Enameled","Glazed","Painted","Dyed","Stained","Refined","Distilled","Purified","Filtered","Alloyed","Plated","Coated","Sealed","Bonded","Fused","Welded","Riveted","Textured","Grained","Veined","Flecked","Speckled","Dappled","Streaked","Banded","Striped","Checkered","Waxed","Oiled","Cured","Tanned","Smoked","Burnished","Antiqued","Patina","Weathered","Aged","Rustic","Hewn","Vast","Broad","Deep","High","Tall","Giant","Colossal","Massive","Immense","Boundless","Endless","Sweeping","Spanning","Extended","Towering","Soaring","Lofty","Elevated","Raised","Summit","Apex","Crest","Crown","Pinnacle","Zenith","Ridge","Ledge","Level","Hollow","Compact","Dense","Thick","Narrow","Slender","Micro","Mini","Small","Ample","Hefty","Jumbo","Mega","Ultra","Macro","Central","Core","Outer","Lateral","Radial","Spiral","Orbital","Linear","Planar","Spherical","Rounded","Angular","Pointed","Tapered","Curved","Arced","Twisted","Coiled","Fractal","Cellular","Quantum","Photon","Plasma","Kinetic","Static","Charged","Maximal","Atomic","Nano","Tiered","Strata","Nested","Stepped","Graded","Scaled","Proportioned","Modular","Symmetric","Parallel","Flowing","Drifting","Gliding","Sailing","Floating","Climbing","Leaping","Bounding","Sprinting","Dashing","Rushing","Surging","Cascading","Rolling","Tumbling","Spinning","Whirling","Twisting","Swirling","Pulsing","Beating","Humming","Buzzing","Ringing","Chiming","Singing","Dancing","Swaying","Waving","Rippling","Bubbling","Fizzing","Crackling","Snapping","Clicking","Tapping","Drumming","Thrumming","Vibrant","Magnetic","Electric","Blazing","Burning","Fiery","Volcanic","Thermal","Warming","Cooling","Chilling","Brisk","Crisp","Breezy","Gusty","Windy","Airy","Light","Buoyant","Weightless","Fleet","Peppy","Zippy","Snappy","Speedy","Sonic","Turbo","Warp","Express","Instant","Darting","Flying","Jetting","Cruising","Coasting","Rhythmic","Cycling","Pacing","Striding","Marching","Trotting","Galloping","Bouncing","Vaulting","Arching","Launched","Propelled","Hovering","Orbiting","Revolving","Rotating","Pivoting","Swinging","Rocking","Tilting","Shifting","Sliding","Skating","Surfing","Diving","Plunging","Dipping","Wading","Celestial","Ethereal","Mystic","Arcane","Ancient","Eternal","Timeless","Ageless","Enduring","Lasting","Perpetual","Legendary","Mythic","Epic","Fabled","Storied","Historic","Classic","Vintage","Retro","Modern","Future","Digital","Cyber","Virtual","Pixel","Binary","Omega","Alpha","Beta","Gamma","Sigma","Theta","Lambda","Kappa","Zeta","Epsilon","Omni","Dual","Triple","Nexus","Vertex","Vector","Matrix","Cipher","Enigma","Phantom","Mirage","Dream","Vision","Oracle","Prophet","Sage","Shaman","Druid","Artisan","Maestro","Virtuoso","Savant","Prodigy","Maven","Guru","Mentor","Guide","Scout","Pioneer","Voyager","Wanderer","Nomad","Rover","Ranger","Sentinel","Guardian","Keeper","Warden","Champion","Vanguard","Herald","Emissary","Envoy","Ambassador","Steward","Curator","Patron","Benefactor","Founder","Architect","Builder","Maker","Crafter","Weaver","Forger","Smith","Wright","Mason","Brewer","Baker","Tanner","Dyer","Scribe","Bard","Minstrel","Troubadour","Storyteller","Chronicler","Lorekeeper","Archivist","Tranquil","Placid","Hushed","Muffled","Soft","Subtle","Faint","Dim","Pale","Warm","Cool","Taut","Tense","Cozy","Homey","Pastoral","Sylvan","Bucolic","Idyllic","Quaint","Charming","Lovely","Pretty","Dapper","Natty","Chic","Posh","Classy","Fancy","Ornate","Lavish","Opulent","Majestic","Dignified","August","Solemn","Sober","Heartfelt","Genuine","Authentic","Novel","Singular","Distinct","Chosen","Select","Premium","Deluxe","Superior","Exquisite","Superb","Splendid","Glorious","Sublime","Resonant","Harmonic","Melodic","Lyrical","Poetic","Seamless","Effortless","Organic","Primal","Devoted","Dedicated","Committed","Focused","Determined","Resolute","Steadfast","Unwavering","Constant","Faithful","Reliable","Dependable","Trusty","Anchored","Moored","Sheltered","Protected","Guarded","Shielded","Fortified","Reinforced","Braced","Bolstered","Supported","Upheld","Sustained","Preserved","Conserved","Stored","Vaulted","Locked","Secured","Fastened","Linked","Joined","Connected","Paired","Matched","Balanced","Aligned","Centered","Aimed","Directed","Guided","Steered","Piloted","Navigated","Charted","Mapped","Tracked","Pursued","Discovered","Unveiled","Displayed","Presented","Granted","Bestowed","Conferred","Sapient","Sentient","Radiant","Fertile","Abundant","Bountiful","Plentiful","Prolific","Thriving","Flourishing","Blooming","Budding","Growing","Expanding","Advancing","Progressing","Evolving","Maturing","Ripening","Developing","Emerging","Nascent","Incipient","Dawning","Unfolding","Awakening","Stirring","Kindling","Igniting","Sparking","Triggering","Launching","Initiating","Pioneering","Trailblazing","Groundbreaking","Innovative","Inventive","Creative","Imaginative","Inspired","Visionary","Prophetic","Prescient","Insightful","Perceptive","Observant","Watchful","Vigilant","Attentive","Thoughtful","Considerate","Caring","Nurturing","Fostering","Cultivating","Tending","Pruning","Trimming","Shaping","Forming","Molding","Fashioning","Designing","Drafting","Sketching","Drawing","Painting","Coloring","Tinting","Shading","Blending","Mixing","Merging","Combining","Uniting","Fusing","Melding","Weaving","Knitting","Stitching","Sewing","Quilting","Patching","Mending","Healing","Restoring","Renewing","Reviving","Refreshing","Rejuvenating","Invigorating","Energizing","Empowering","Strengthening","Fortifying","Hardening","Tempering","Seasoning","Curing","Aging","Mellowing","Softening","Smoothing","Leveling","Planing","Sanding","Buffing","Burnishing","Radiating","Beaming","Lighting","Illuminating","Brightening","Clarifying","Purifying","Filtering","Distilling","Condensing","Concentrating","Focusing","Directing","Channeling","Terraced","Ascending","Streaming","Umber","Careful","Perfecting","Glittering","Twinkling","Verdure","Auroral","Boreal","Austral","Temperate"]),we=Object.freeze(["Falcon","Hawk","Eagle","Owl","Heron","Crane","Swan","Dove","Raven","Finch","Robin","Wren","Lark","Jay","Ibis","Kite","Osprey","Condor","Pelican","Stork","Sparrow","Tern","Puffin","Parrot","Toucan","Kingfisher","Flamingo","Quail","Pheasant","Grouse","Oriole","Warbler","Thrush","Starling","Magpie","Swallow","Martin","Plover","Curlew","Sandpiper","Wolf","Fox","Bear","Stag","Elk","Moose","Bison","Lynx","Cougar","Panther","Jaguar","Leopard","Tiger","Lion","Cheetah","Gazelle","Antelope","Impala","Zebra","Giraffe","Rhino","Hippo","Otter","Beaver","Badger","Marten","Ferret","Mink","Hare","Rabbit","Squirrel","Chipmunk","Porcupine","Hedgehog","Armadillo","Pangolin","Lemur","Gibbon","Tamarin","Capybara","Chinchilla","Ocelot","Margay","Coati","Kinkajou","Tapir","Okapi","Kudu","Oryx","Chamois","Orca","Dolphin","Whale","Narwhal","Walrus","Seal","Manatee","Turtle","Iguana","Gecko","Chameleon","Newt","Salamander","Crab","Lobster","Seahorse","Starfish","Octopus","Squid","Jellyfish","Stingray","Barracuda","Marlin","Sailfish","Trout","Salmon","Mantis","Cricket","Firefly","Dragonfly","Cedar","Oak","Pine","Birch","Maple","Elm","Ash","Willow","Cypress","Redwood","Sequoia","Spruce","Fir","Larch","Yew","Beech","Alder","Poplar","Aspen","Walnut","Hickory","Teak","Mahogany","Ebony","Bamboo","Palm","Acacia","Baobab","Banyan","Olive","Laurel","Magnolia","Lotus","Orchid","Iris","Lily","Rose","Tulip","Daisy","Aster","Dahlia","Peony","Jasmine","Violet","Clover","Fern","Moss","Lichen","Ivy","Vine","Reed","Sage","Basil","Thyme","Mint","Dill","Fennel","Sorrel","Yarrow","Thistle","Heather","Bluebell","Primrose","Marigold","Sunflower","Zinnia","Pansy","Poppy","Crocus","Snowdrop","Foxglove","Honeysuckle","Wisteria","Hibiscus","Plumeria","Gardenia","Camellia","Begonia","Azalea","Oleander","Canyon","Ridge","Peak","Summit","Cliff","Bluff","Mesa","Butte","Plateau","Terrace","Valley","Basin","Gorge","Ravine","Gulch","Fjord","Inlet","Bay","Cove","Harbor","Lagoon","Reef","Atoll","Isle","Peninsula","Cape","Shoal","Bank","Ledge","Shelf","Dune","Desert","Steppe","Tundra","Glacier","Moraine","Geyser","Oasis","Delta","Estuary","Marsh","Bog","Swamp","Fen","Moor","Heath","Meadow","Prairie","Savanna","Glen","Dale","Dell","Vale","Hollow","Grove","Copse","Thicket","Taiga","Mangrove","Wetland","Cascade","Brook","Creek","Stream","River","Lake","Pond","Pool","Tarn","Loch","Falls","Fountain","Grotto","Cavern","Cave","Tunnel","Arch","Bridge","Ford","Pass","Trail","Path","Route","Caldera","Crater","Vent","Spire","Needle","Dome","Gateway","Portal","Threshold","Verge","Brink","Edge","Rim","Brow","Crest","Promontory","Headland","Spit","Tombolo","Isthmus","Strait","Narrows","Sound","Bight","Reach","Stretch","Expanse","Clearing","Glade","Knoll","Hillock","Mound","Tor","Crag","Scarp","Escarpment","Comet","Meteor","Asteroid","Nebula","Galaxy","Quasar","Pulsar","Star","Sun","Moon","Planet","Orbit","Eclipse","Corona","Flare","Nova","Cosmos","Void","Abyss","Ether","Zenith","Nadir","Horizon","Aurora","Meridian","Equinox","Solstice","Phase","Cycle","Epoch","Eon","Era","Dawn","Dusk","Twilight","Night","Noon","Morning","Evening","Sunset","Sunrise","Daybreak","Nightfall","Starlight","Moonbeam","Sunray","Skyline","Firmament","Canopy","Infinity","Vega","Rigel","Altair","Deneb","Sirius","Polaris","Arcturus","Antares","Lyra","Orion","Draco","Phoenix","Hydra","Corvus","Cygnus","Aquila","Andromeda","Pegasus","Perseus","Gemini","Centauri","Cassiopeia","Scorpius","Sagittarius","Capella","Procyon","Aldebaran","Betelgeuse","Spica","Prism","Quill","Forge","Anvil","Helm","Rune","Atlas","Compass","Anchor","Beacon","Bell","Bugle","Drum","Flute","Harp","Horn","Lyre","Pipe","Gong","Chime","Cymbal","Fiddle","Trumpet","Viola","Cello","Oboe","Lute","Mandolin","Zither","Sitar","Banjo","Lantern","Torch","Candle","Lamp","Globe","Lens","Scope","Mirror","Frame","Easel","Palette","Brush","Chisel","Mallet","Hammer","Tongs","Ladle","Kettle","Crucible","Mortar","Pestle","Flask","Vial","Beaker","Alembic","Furnace","Kiln","Loom","Shuttle","Bobbin","Spool","Thimble","Pin","Clasp","Buckle","Brooch","Pendant","Amulet","Talisman","Charm","Token","Coin","Medal","Badge","Shield","Banner","Flag","Pennant","Sigil","Stamp","Emblem","Totem","Icon","Statue","Obelisk","Monolith","Cairn","Tablet","Scroll","Tome","Codex","Ledger","Journal","Chronicle","Almanac","Manual","Gazette","Folio","Pamphlet","Broadsheet","Parchment","Vellum","Papyrus","Inkwell","Quiver","Satchel","Pouch","Casket","Coffer","Chest","Crate","Barrel","Quartz","Opal","Onyx","Agate","Garnet","Topaz","Beryl","Zircon","Spinel","Peridot","Jasper","Amethyst","Citrine","Tourmaline","Malachite","Azurite","Lapis","Pyrite","Galena","Mica","Talc","Gypsum","Calcite","Dolomite","Basalt","Granite","Marble","Slate","Shale","Sandstone","Limestone","Obsidian","Pumice","Tuff","Chert","Flint","Chalcedony","Carnelian","Sardonyx","Moonstone","Sunstone","Labradorite","Tanzanite","Kunzite","Rhodonite","Sodalite","Chrysocolla","Aventurine","Fluorite","Seraphinite","Charoite","Sugilite","Larimar","Prehnite","Danburite","Scolecite","Celestite","Amazonite","Howlite","Lepidolite","Storm","Thunder","Lightning","Breeze","Gale","Squall","Typhoon","Cyclone","Monsoon","Tempest","Zephyr","Chinook","Mistral","Sirocco","Foehn","Bora","Rain","Drizzle","Shower","Downpour","Deluge","Flood","Torrent","Current","Tide","Wave","Swell","Surf","Spray","Foam","Mist","Fog","Haze","Dew","Frost","Ice","Snow","Sleet","Hail","Rime","Thaw","Flow","Drift","Eddy","Vortex","Whirl","Spiral","Funnel","Column","Plume","Wisp","Streak","Band","Front","Trough","Rainbow","Halo","Mirage","Shimmer","Glimmer","Tower","Turret","Bastion","Citadel","Fortress","Castle","Palace","Manor","Lodge","Cabin","Cottage","Villa","Ranch","Barn","Silo","Mill","Foundry","Workshop","Studio","Gallery","Museum","Library","Archive","Treasury","Vault","Chamber","Hall","Court","Plaza","Garden","Balcony","Porch","Arcade","Colonnade","Pergola","Pavilion","Gazebo","Kiosk","Chapel","Temple","Shrine","Monastery","Abbey","Cathedral","Basilica","Minaret","Pagoda","Stupa","Pyramid","Arena","Stadium","Forum","Market","Bazaar","Emporium","Depot","Station","Terminal","Dock","Wharf","Pier","Jetty","Quay","Marina","Lighthouse","Watchtower","Outpost","Camp","Shelter","Refuge","Sanctuary","Haven","Retreat","Nest","Aerie","Burrow","Den","Lair","Roost","Perch","Bower","Arbor","Alcove","Sextant","Astrolabe","Sundial","Hourglass","Pendulum","Gyroscope","Turbine","Dynamo","Generator","Piston","Valve","Lever","Pulley","Winch","Derrick","Gantry","Scaffold","Trellis","Lattice","Grid","Net","Web","Axle","Gear","Cog","Sprocket","Chain","Link","Cable","Wire","Thread","Cord","Rope","Rigging","Mast","Boom","Spar","Keel","Hull","Rudder","Tiller","Wheel","Chart","Map","Gauge","Meter","Scale","Caliper","Ruler","Level","Plumb","Protractor","Template","Stencil","Mold","Die","Lathe","Bellows","Retort","Condenser","Centrifuge","Spectrometer","Oscilloscope","Theodolite","Transit","Sounding","Probe","Sensor","Relay","Switch","Circuit","Diode","Quest","Saga","Legend","Myth","Fable","Ballad","Anthem","Hymn","Ode","Sonnet","Verse","Stanza","Canto","Chorus","Refrain","Motif","Theme","Arc","Prologue","Epilogue","Prelude","Overture","Finale","Crescendo","Cadence","Tempo","Rhythm","Pulse","Beat","Tone","Note","Chord","Harmony","Melody","Lyric","Opus","Suite","Etude","Fugue","Canon","March","Waltz","Rondo","Aria","Duet","Trio","Quartet","Ensemble","Guild","League","Order","Council","Assembly","Conclave","Synod","Quorum","Cohort","Legion","Brigade","Battalion","Regiment","Division","Corps","Fleet","Squadron","Patrol","Convoy","Caravan","Expedition","Voyage","Journey","Trek","Odyssey","Passage","Crossing","Venture","Enterprise","Mission","Campaign","Crusade","Pilgrimage","Safari","Sortie","Foray","Rally","Charge","Advance","Concord","Ember","Blaze","Inferno","Pyre","Spark","Cinder","Smoke","Vapor","Steam","Nimbus","Cumulus","Cirrus","Stratus","Billow","Puff","Wake","Ripple","Surge","Ebb","Flux","Gush","Rush","Spring","Well","Font","Source","Origin","Root","Seed","Sprout","Bud","Bloom","Petal","Leaf","Branch","Limb","Trunk","Bark","Grain","Fiber","Pulp","Core","Sap","Resin","Nectar","Pollen","Spore","Frond","Tendril","Runner","Shoot","Stalk","Stem","Thorn","Burr","Cone","Acorn","Pinecone","Nutshell","Keystone","Capstone","Milestone","Cornerstone","Foundation","Bedrock","Pillar","Buttress","Parapet","Battlement","Barbican","Gatehouse","Drawbridge","Portcullis","Moat","Stockade","Palisade","Bulwark","Levee","Embankment","Causeway","Aqueduct","Viaduct","Trestle","Span","Lintel","Plinth","Pedestal","Dais","Rostrum","Podium","Stage","Platform","Deck","Landing","Berth","Channel","Lock","Weir","Dam","Spillway","Flume","Chute","Sluice","Nozzle","Spout","Faucet","Cistern","Wellspring","Headwater","Watershed","Alluvium","Loam","Humus","Peat","Marl","Silt","Writ","Clamp","Eyepiece","Traverse","Stride","Parley","Char","Trace","Confluence","Rampart"]),Te=Object.freeze(new Set([]));function cr(r){let e=r|0;return()=>{e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}var dr=`solnames-${"v1"}:`;function ee(r,e="display",t){let n=U(r,t);switch(e){case"short":return n.short;case"display":return n.name;case"tag":return n.tag;case"full":return n.full}}function U(r,e){let t=e?.adjectives??ke,n=e?.nouns??we,a=e?.blockedCombos??Te,o=e?.domain?`${e.domain}:`:dr,s=X(o+r),c=Ce(o+r),i=(s[0]<<24|s[1]<<16|s[2]<<8|s[3])>>>0,d=cr(i),h=t[Math.floor(d()*t.length)],l=n[Math.floor(d()*n.length)];for(;a.has(h+l);)h=t[Math.floor(d()*t.length)],l=n[Math.floor(d()*n.length)];let S=t[Math.floor(d()*t.length)],p=n[Math.floor(d()*n.length)],b=c.slice(16,20),m=e?.separator??" ";return{short:h,name:h+m+l,tag:h+m+l+"#"+b,full:h+m+l+"-"+S+m+p,adjective:h,noun:l,hash:c,discriminator:b}}function T(r){let e=r.replace("#","");return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}function H(r,e,t){return"#"+[r,e,t].map(n=>Math.max(0,Math.min(255,Math.round(n))).toString(16).padStart(2,"0")).join("")}function w(r,e=.12){let[t,n,a]=T(r);return H(t*(1-e),n*(1-e),a*(1-e))}function B(r,e=.15){let[t,n,a]=T(r);return H(t+(255-t)*e,n+(255-n)*e,a+(255-a)*e)}function C(r,e,t=.5){let[n,a,o]=T(r),[s,c,i]=T(e);return H(n+(s-n)*t,a+(c-a)*t,o+(i-o)*t)}function re(r){let[e,t,n]=T(r);return(e+t+n)/3}function K(r){let e=re(r),t=e<100,n=B(r,.1),a=w(r,.22),o=w(r,.05),[s,c,i]=T(r),d;if(e>120){let k=e>180?.03:.06,I=e>180?.3:.28,W=e>180?.25:.22;d=H(Math.min(255,s+s*k),Math.max(0,c-c*I),Math.max(0,i-i*W))}else d=H(Math.min(255,s+50),Math.max(0,c-10),Math.max(0,i-5));let h=.15+.18*(1-Math.min(1,e/240)),l=Math.max(0,Math.min(1,(e-60)/180)),S=C("#D89090","#A83848",l),p=1-Math.abs(e-140)/80,b=(t?.7:.62)+Math.max(0,p)*.12,m=C(r,S,Math.min(.82,b)),[y,O,x]=T(m),g=Math.abs(s-y)+Math.abs(c-O)+Math.abs(i-x)<60?C(r,S,.78):m,v=t?B(r,e<80?.35:.25):w(r,.55),M=t?B(r,.2):w(r,.2),_=Math.max(0,Math.min(1,(e-100)/60)),$=C(B(r,.08),o,_),A=w(r,.1+.06*(1-Math.min(1,e/160))),F=t?B(r,.18):w(r,.15),G=Math.max(0,Math.min(1,(e-60)/180)),u=C("#EDE8E0","#FBF8F2",G),L=e>140?.3:e>100?.5:.7,E=C("#808890",C(r,"#B0A898",.3),L);return{skinHi:n,skinLo:a,skinMid:o,isDark:t,cheekColor:d,cheekOpacity:h,lipColor:g,noseFill:M,browColor:v,earFill:$,earShadow:A,eyeWhiteAdapted:u,lidColor:F,accessoryColor:E}}function Me(r,e){let[t,n,a]=T(r),[o,s,c]=T(e);return Math.abs(t-o)+Math.abs(n-s)+Math.abs(a-c)<80?.7:.5}function ur(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}function gr(r,e,t,n,a,o,s,c,i,d,h){if(i)return"";let l="<defs>";return l+=`<linearGradient id="${r}sg" x1="0" y1="0" x2="0" y2="1">`,l+=`<stop offset="0%" stop-color="${t}"/>`,l+=`<stop offset="100%" stop-color="${n}"/>`,l+="</linearGradient>",l+=`<linearGradient id="${r}hg" x1="0" y1="0" x2="0" y2="1">`,l+=`<stop offset="0%" stop-color="${B(a,.15)}"/>`,l+=`<stop offset="100%" stop-color="${w(a,.15)}"/>`,l+="</linearGradient>",l+=`<linearGradient id="${r}bg" x1="0" y1="0" x2="1" y2="1">`,l+=`<stop offset="0%" stop-color="${B(o,.12)}"/>`,l+=`<stop offset="100%" stop-color="${w(o,.12)}"/>`,l+="</linearGradient>",d&&(l+=`<radialGradient id="${r}glow" cx="0.5" cy="0.28" r="0.45">`,l+=`<stop offset="0%" stop-color="#ffffff" stop-opacity="${h}"/>`,l+='<stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>',l+="</radialGradient>",l+=`<radialGradient id="${r}chin" cx="0.5" cy="0.85" r="0.35">`,l+=`<stop offset="0%" stop-color="${n}" stop-opacity="0.30"/>`,l+=`<stop offset="100%" stop-color="${n}" stop-opacity="0"/>`,l+="</radialGradient>",l+=`<radialGradient id="${r}cL" cx="0.5" cy="0.5" r="0.5">`,l+=`<stop offset="0%" stop-color="${s}" stop-opacity="${c.toFixed(2)}"/>`,l+=`<stop offset="100%" stop-color="${s}" stop-opacity="0"/>`,l+="</radialGradient>",l+=`<radialGradient id="${r}cR" cx="0.5" cy="0.5" r="0.5">`,l+=`<stop offset="0%" stop-color="${s}" stop-opacity="${c.toFixed(2)}"/>`,l+=`<stop offset="100%" stop-color="${s}" stop-opacity="0"/>`,l+="</radialGradient>"),l+="</defs>",l}function hr(r,e,t){let n=t?"currentColor":`url(#${e}hg)`;switch(r){case 5:return`<g fill="${n}"><rect x="10" y="14" width="44" height="42" rx="6"/></g>`;case 6:return`<g fill="${n}"><rect x="12" y="14" width="40" height="32" rx="8"/></g>`;case 8:return`<g fill="${n}"><rect x="11" y="14" width="42" height="38" rx="8"/></g>`;default:return""}}function yr(r,e){return`<ellipse cx="11" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="11" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/><ellipse cx="53" cy="34" rx="4" ry="5" fill="${r}"/><ellipse cx="53" cy="34" rx="2.5" ry="3.5" fill="${e}" opacity="0.3"/>`}function pr(r,e,t,n=1){let a=t?e:`url(#${r}sg)`,o=n<1?` opacity="${n}"`:"";return`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="${a}"${o}/>`}function fr(r,e){return e?"":`<rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}glow)"/><rect x="14" y="16" width="36" height="38" rx="12" ry="12" fill="url(#${r}chin)"/><ellipse cx="22" cy="42" rx="5" ry="3.5" fill="url(#${r}cL)"/><ellipse cx="42" cy="42" rx="5" ry="3.5" fill="url(#${r}cR)"/><line x1="20" y1="50" x2="44" y2="50" stroke="currentColor" stroke-width="0.3" opacity="0.08" stroke-linecap="round"/>`}function mr(r,e,t,n,a){let o=a?t:`url(#${e}hg)`;switch(r){case 0:return"";case 1:return`<path d="M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z" fill="${o}"/>`;case 2:return`<g fill="${o}"><circle cx="20" cy="14" r="5"/><circle cx="28" cy="11" r="5.5"/><circle cx="36" cy="11" r="5.5"/><circle cx="44" cy="14" r="5"/><circle cx="16" cy="20" r="4"/><circle cx="48" cy="20" r="4"/></g>`;case 3:return`<path d="M14 26 Q14 12 32 10 Q50 12 50 26 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><path d="M14 20 Q8 16 10 8 Q14 10 20 16 Z" fill="${o}"/>`;case 4:return`<ellipse cx="32" cy="10" rx="14" ry="8" fill="${o}"/>`;case 5:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/>`;case 6:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><rect x="10" y="28" width="8" height="14" rx="4" fill="${o}"/><rect x="46" y="28" width="8" height="14" rx="4" fill="${o}"/>`;case 7:{let s=Me(t,n);return`<rect x="15" y="13" width="34" height="16" rx="10" ry="8" fill="${t}" opacity="${s.toFixed(2)}"/>`}case 8:return`<path d="M14 28 Q14 12 32 10 Q50 12 50 28 L50 20 Q50 10 32 8 Q14 10 14 20 Z" fill="${o}"/><path d="M12 30 Q10 20 14 16" fill="none" stroke="${o}" stroke-width="4" stroke-linecap="round"/><path d="M52 30 Q54 20 50 16" fill="none" stroke="${o}" stroke-width="4" stroke-linecap="round"/>`;case 9:return`<path d="M14 28 Q14 14 32 12 Q50 14 50 28 L50 22 Q50 12 32 10 Q14 12 14 22 Z" fill="${o}"/><ellipse cx="32" cy="6" rx="6" ry="5" fill="${o}"/>`;default:return""}}function xr(r,e,t,n,a){let i="";switch(r){case 0:i+=`<circle cx="25" cy="33" r="4" fill="${t}"/>`,i+=`<circle cx="${25+.8}" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="4" fill="${t}"/>`,i+=`<circle cx="${39+.8}" cy="33" r="2.2" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.5}" cy="32" r="0.7" fill="white" opacity="0.8"/>`);break;case 1:i+=`<circle cx="25" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="39" cy="33" r="2" fill="${e}"/>`;break;case 2:i+=`<ellipse cx="25" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,i+=`<circle cx="${25+.5}" cy="33" r="1.8" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`),i+=`<ellipse cx="39" cy="33" rx="4.5" ry="2.8" fill="${t}"/>`,i+=`<circle cx="${39+.5}" cy="33" r="1.8" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.2}" cy="${33-.8}" r="0.6" fill="white" opacity="0.7"/>`);break;case 3:i+=`<circle cx="25" cy="33" r="5" fill="${t}"/>`,i+=`<circle cx="25" cy="${33+.5}" r="2.8" fill="${e}"/>`,a&&(i+=`<circle cx="${25+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`),i+=`<circle cx="39" cy="33" r="5" fill="${t}"/>`,i+=`<circle cx="39" cy="${33+.5}" r="2.8" fill="${e}"/>`,a&&(i+=`<circle cx="${39+1.5}" cy="32" r="0.8" fill="white" opacity="0.8"/>`);break;case 4:i+=`<ellipse cx="25" cy="34" rx="4" ry="2.2" fill="${t}"/>`,i+=`<circle cx="25" cy="34" r="1.5" fill="${e}"/>`,a&&(i+=`<line x1="${25-4.5}" y1="${33-.5}" x2="${25+4.5}" y2="${33-.5}" stroke="${n}" stroke-width="0.8" stroke-linecap="round"/>`),i+=`<ellipse cx="39" cy="34" rx="4" ry="2.2" fill="${t}"/>`,i+=`<circle cx="39" cy="34" r="1.5" fill="${e}"/>`,a&&(i+=`<line x1="${39-4.5}" y1="${33-.5}" x2="${39+4.5}" y2="${33-.5}" stroke="${n}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 5:i+=`<path d="M21 33 Q25 37 29 33" fill="none" stroke="${e}" stroke-width="1.8" stroke-linecap="round"/>`,i+=`<path d="M35 33 Q39 37 43 33" fill="none" stroke="${e}" stroke-width="1.8" stroke-linecap="round"/>`;break;case 6:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${25+.5}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="${25+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,a&&(i+=`<line x1="${25+2.5}" y1="${33-3.5}" x2="29" y2="28" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`,i+=`<line x1="${25+3.5}" y1="${33-2.5}" x2="30" y2="${33-3.5}" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`),i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${39+.5}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="${39+1.5}" cy="32" r="1" fill="white" opacity="0.9"/>`,a&&(i+=`<line x1="${39+2.5}" y1="${33-3.5}" x2="43" y2="28" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`,i+=`<line x1="${39+3.5}" y1="${33-2.5}" x2="44" y2="${33-3.5}" stroke="${e}" stroke-width="0.8" stroke-linecap="round"/>`);break;case 7:i+=`<ellipse cx="25" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,i+=`<ellipse cx="${25+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`,i+=`<ellipse cx="39" cy="33" rx="4.5" ry="1.5" fill="${t}"/>`,i+=`<ellipse cx="${39+.5}" cy="33" rx="2.2" ry="1.2" fill="${e}"/>`;break;default:i+=`<circle cx="25" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${25+.8}" cy="33" r="2" fill="${e}"/>`,i+=`<circle cx="39" cy="33" r="3.5" fill="${t}"/>`,i+=`<circle cx="${39+.8}" cy="33" r="2" fill="${e}"/>`}return a&&r!==1&&r!==5&&(i+=`<path d="M21 ${33-1.5} Q25 29 29 ${33-1.5}" fill="none" stroke="${n}" stroke-width="0.5" opacity="0.4"/>`,i+=`<path d="M35 ${33-1.5} Q39 29 43 ${33-1.5}" fill="none" stroke="${n}" stroke-width="0.5" opacity="0.4"/>`),i}function Sr(r,e){switch(r){case 0:return`<line x1="22" y1="27" x2="28" y2="${27-.5}" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/><line x1="36" y1="${27-.5}" x2="42" y2="27" stroke="${e}" stroke-width="0.7" stroke-linecap="round"/>`;case 1:return`<line x1="${25-3.5}" y1="27" x2="${25+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><line x1="${39-3.5}" y1="27" x2="${39+3.5}" y2="27" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M${25-3.5} ${27+.5} Q25 ${27-1.5} ${25+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/><path d="M${39-3.5} ${27+.5} Q39 ${27-1.5} ${39+3.5} ${27+.5}" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 3:return`<path d="M21 28 Q25 24 29 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/><path d="M35 28 Q39 24 43 28" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round"/>`;case 4:return`<polyline points="22,28 25,25 28,27" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/><polyline points="36,27 39,25 42,28" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>`;default:return""}}function br(r,e){switch(r){case 0:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`;case 1:return`<circle cx="32" cy="39" r="1.8" fill="${e}" opacity="0.5"/>`;case 2:return`<path d="M30 40 Q32 37 34 40" fill="none" stroke="${e}" stroke-width="1" stroke-linecap="round" opacity="0.5"/>`;case 3:return`<circle cx="${32-1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/><circle cx="${32+1.8}" cy="39" r="1.2" fill="${e}" opacity="0.4"/>`;default:return`<ellipse cx="32" cy="39" rx="2" ry="1.2" fill="${e}" opacity="0.35"/>`}}function $r(r,e,t){let o=t?"#e8e0d8":"#ffffff";switch(r){case 0:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`;case 1:return`<line x1="29" y1="46" x2="35" y2="46" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;case 2:return`<path d="M27 45 Q32 50 37 45" fill="none" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 3:return`<ellipse cx="32" cy="46" rx="2.5" ry="3" fill="${e}" opacity="0.7"/>`;case 4:return`<path d="M28 46 Q33 46 36 ${45-1.5}" fill="none" stroke="${e}" stroke-width="1.3" stroke-linecap="round"/>`;case 5:return`<path d="M27 45 Q32 51 37 45" fill="${o}" stroke="${e}" stroke-width="1"/><line x1="28" y1="${45+1.5}" x2="36" y2="${45+1.5}" stroke="${e}" stroke-width="0.3" opacity="0.3"/>`;case 6:return`<line x1="28" y1="46" x2="36" y2="46" stroke="${e}" stroke-width="1.5" stroke-linecap="round"/>`;case 7:return`<ellipse cx="32" cy="46" rx="3.5" ry="2" fill="${e}" opacity="0.25"/><path d="M29 45 Q32 ${45+2.5} 35 45" fill="none" stroke="${e}" stroke-width="1.2" stroke-linecap="round"/>`;default:return`<path d="M28 45 Q32 49 36 45" fill="none" stroke="${e}" stroke-width="1.4" stroke-linecap="round"/>`}}function Pe(r,e,t,n,a){switch(r){case 0:return"";case 1:return'<circle cx="40" cy="44" r="0.8" fill="#3a2a2a"/>';case 2:return`<g fill="none" stroke="${t}" stroke-width="1"><circle cx="25" cy="33" r="5.5"/><circle cx="39" cy="33" r="5.5"/><line x1="30.5" y1="33" x2="33.5" y2="33"/><line x1="19.5" y1="33" x2="14" y2="31"/><line x1="44.5" y1="33" x2="50" y2="31"/></g>`;case 3:return`<g fill="none" stroke="${t}" stroke-width="1"><rect x="19" y="29" width="12" height="8" rx="1.5"/><rect x="33" y="29" width="12" height="8" rx="1.5"/><line x1="31" y1="33" x2="33" y2="33"/><line x1="19" y1="33" x2="14" y2="31"/><line x1="45" y1="33" x2="50" y2="31"/></g>`;case 4:return`<circle cx="10" cy="38" r="1.5" fill="${n}"/><circle cx="10" cy="41" r="2" fill="${n}" opacity="0.8"/>`;case 5:return`<rect x="13" y="20" width="38" height="3.5" rx="1.5" fill="${a}" opacity="0.85"/>`;case 6:return'<g fill="#a0785a" opacity="0.35"><circle cx="21" cy="40" r="0.6"/><circle cx="23" cy="42" r="0.5"/><circle cx="19" cy="41.5" r="0.5"/><circle cx="43" cy="40" r="0.6"/><circle cx="41" cy="42" r="0.5"/><circle cx="45" cy="41.5" r="0.5"/></g>';case 7:return`<circle cx="10" cy="37" r="1.2" fill="${n}"/><circle cx="54" cy="37" r="1.2" fill="${n}"/>`;case 8:return`<g fill="none" stroke="${t}" stroke-width="1.2"><path d="M19 30 Q19 28 25 28 Q31 28 31 33 Q31 38 25 38 Q19 38 19 33 Z" fill="${t}" fill-opacity="0.15"/><path d="M33 30 Q33 28 39 28 Q45 28 45 33 Q45 38 39 38 Q33 38 33 33 Z" fill="${t}" fill-opacity="0.15"/><line x1="31" y1="32" x2="33" y2="32"/><line x1="19" y1="31" x2="14" y2="29"/><line x1="45" y1="31" x2="50" y2="29"/></g>`;case 9:return'<g><rect x="38" y="38" width="8" height="4" rx="1" fill="#f0d0a0" transform="rotate(-15 42 40)"/><line x1="40" y1="39" x2="40" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/><line x1="42" y1="39" x2="42" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/><line x1="44" y1="39" x2="44" y2="41" stroke="#c0a080" stroke-width="0.4" transform="rotate(-15 42 40)"/></g>';default:return""}}function V(r,e){let{size:t=64,theme:n,traitOverrides:a,enableBlink:o,className:s,colorOverrides:c}=e??{},i=N(r,a),d=e?.detail??"auto",h=d==="full"||d==="auto"&&t>=48,l=n?.flat??!1,S=n?.skinColors??ye,p=n?.eyeColors??pe,b=n?.hairColors??fe,m=n?.bgColors??me,y=c?.skin??S[i.skinColor%S.length],O=c?.eyes??p[i.eyeColor%p.length],x=c?.hair??b[i.hairColor%b.length],D=c?.bg??m[i.bgColor%m.length],g=K(y),v=n?.bgOpacity??1,M=n?.bgRadius??4,_=c?.eyebrow??n?.eyebrowColor??g.browColor,$=c?.nose??n?.noseColor??g.noseFill,A=c?.mouth??n?.mouthColor??g.lipColor,F=c?.accessory??n?.accessoryColor??g.accessoryColor,G=c?.eyeWhite??n?.eyeWhiteColor??g.eyeWhiteAdapted,u=n?.glassesColor??"#4a4a5a",L=n?.earringColor??C(y,"#d4a840",.4),E=n?.headbandColor??C(x,"#c04040",.5),k="sf"+ur(r).toString(36),I=n?.cheekEnabled??!0,W=n?.cheekColor??g.cheekColor,Y=n?.cheekOpacity??g.cheekOpacity,ge=i.hairStyle%10,j=R(i),De=s?` class="${s}"`:"",f=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="${t}" height="${t}"${De}>`,_e=n?.glowIntensity??.1;f+=gr(k,y,g.skinHi,g.skinLo,x,D,W,Y,l,h&&I,_e);let J=!!o,Ge=typeof o=="object"?o.duration??4:4,he=typeof o=="object"?o.delay??0:0;if(J){let Q=`sf-${r.slice(0,8)}`,We=he?` ${he}s`:"";f+=`<style>@keyframes ${Q}-blink{0%,90%,100%{transform:scaleY(1)}95%{transform:scaleY(0.1)}}.${Q}-eyes{animation:${Q}-blink ${Ge}s ease-in-out${We} infinite;transform-origin:32px 33px}</style>`}let He=l?D:`url(#${k}bg)`;f+=`<rect x="0" y="0" width="64" height="64" fill="${He}" opacity="${v}" rx="${M}"/>`,f+=hr(ge,k,l),f+=yr(g.earFill,g.earShadow);let Ie=n?.skinOpacity??1;f+=pr(k,y,l,Ie);let Ne=n?.shadowEnabled??!0;if(h&&I&&Ne&&(f+=fr(k,l)),j===5&&(f+=Pe(5,F,u,L,E)),f+=mr(ge,k,x,y,l),J){let Q=`sf-${r.slice(0,8)}`;f+=`<g class="${Q}-eyes">`}return f+=xr(i.eyeStyle%8,O,G,g.lidColor,h),J&&(f+="</g>"),f+=Sr(i.eyebrows%5,_),f+=br(i.nose%4,$),f+=$r(i.mouth%8,A,g.isDark),j!==0&&j!==5&&(f+=Pe(j,F,u,L,E)),n?.border&&(f+=`<rect x="0" y="0" width="64" height="64" fill="none" stroke="${n.border.color}" stroke-width="${n.border.width}" rx="${M}"/>`),f+="</svg>",f}function te(r,e){let t=V(r,e);return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}function Be(r,e){let t=V(r,e);return`data:image/svg+xml;base64,${btoa(t)}`}var ne={0:"porcelain",1:"ivory",2:"fair",3:"light",4:"sand",5:"golden",6:"warm",7:"caramel",8:"brown",9:"deep"},ie={0:"round, wide-open",1:"small and minimal",2:"almond-shaped",3:"wide and expressive",4:"relaxed, half-lidded",5:"joyful, crescent-shaped",6:"bright and sparkling",7:"gentle and narrow"},ae={0:"dark brown",1:"blue",2:"green",3:"hazel",4:"gray"},ve={0:"wispy",1:"straight",2:"natural",3:"elegantly arched",4:"sharply angled"},Fe={0:"a subtle shadow nose",1:"a small button nose",2:"a soft curved nose",3:"a button nose with visible nostrils"},oe={0:"a gentle smile",1:"a calm, neutral expression",2:"a happy grin",3:"a surprised O-shaped mouth",4:"a confident smirk",5:"a wide, toothy grin",6:"a flat, straight expression",7:"a soft pout"},le={0:"bald, with no hair",1:"short, neatly cropped hair",2:"bouncy, curly hair",3:"side-swept hair",4:"a voluminous puff",5:"long hair that falls past the shoulders",6:"a clean bob cut",7:"a close buzz cut",8:"flowing, wavy hair",9:"a neat topknot"},se={0:"jet black",1:"espresso brown",2:"walnut",3:"honey blonde",4:"copper red",5:"silver",6:"charcoal",7:"burgundy",8:"strawberry",9:"ginger"},ce={0:"",1:"a beauty mark",2:"round glasses",3:"rectangular glasses",4:"a dangling earring",5:"a headband",6:"freckles",7:"stud earrings",8:"aviator sunglasses",9:"a band-aid"},Re={0:"rose",1:"olive",2:"sage",3:"fern",4:"mint",5:"ocean",6:"sky",7:"lavender",8:"orchid",9:"blush"};function q(r,e){let t=N(r),{includeBackground:n=!0,format:a="paragraph",perspective:o="third",name:s}=e??{};return a==="structured"?kr(t,n):a==="compact"?wr(t):Cr(t,o,s,n)}function Cr(r,e,t,n){let a=[],o=R(r),s=e==="first"?t?`I'm ${t}. I have`:"I have":t?`${t} has`:"This SolFace has",c=e==="first"?"I'm":"They're";a.push(`${s} a squircle face with ${ne[r.skinColor]??"warm"} skin`);let i=ie[r.eyeStyle]??"round",d=ae[r.eyeColor]??"dark";a.push(`${i} ${d} eyes`);let h=ve[r.eyebrows];h&&a.push(`${h} eyebrows`);let l=le[r.hairStyle]??"",S=se[r.hairColor]??"";r.hairStyle===0?a.push(e==="first"?"and am bald":"and is bald"):l.startsWith("a ")?a.push(`and a ${S} ${l.slice(2)}`):a.push(`and ${S} ${l}`);let p=a[0];a.length>2?p+=", "+a.slice(1,-1).join(", ")+", "+a[a.length-1]:a.length===2&&(p+=" and "+a[1]),p+=".";let b=Fe[r.nose];if(b){let x=e==="first"?"I have":(t??"They")+(t?" has":" have");p+=` ${x} ${b}.`}let m=ce[o];m&&(p+=` ${c} wearing ${m}.`);let y=oe[r.mouth]??"a smile",O=e==="first"?"I have":(t??"They")+(t?" has":" have");if(p+=` ${O} ${y}.`,n){let x=Re[r.bgColor]??"colorful";p+=` The background is ${x}.`}return p}function kr(r,e){let t=R(r),n=["Face: squircle",`Skin: ${ne[r.skinColor]??"warm"}`,`Eyes: ${ie[r.eyeStyle]??"round"}, ${ae[r.eyeColor]??"dark"}`,`Eyebrows: ${ve[r.eyebrows]??"wispy"}`],a=Fe[r.nose];if(a&&n.push(`Nose: ${a.replace(/^a /,"")}`),n.push(`Mouth: ${oe[r.mouth]??"smile"}`),r.hairStyle===0)n.push("Hair: bald");else{let s=le[r.hairStyle]??"",c=se[r.hairColor]??"";n.push(`Hair: ${c} ${s.startsWith("a ")?s.slice(2):s}`)}let o=ce[t];return o&&n.push(`Accessory: ${o}`),e&&n.push(`Background: ${Re[r.bgColor]??"colorful"}`),n.join(`
2
2
  `)}function wr(r){let e=R(r),t=[];if(t.push("squircle face"),t.push(`${ne[r.skinColor]??"warm"} skin`),t.push(`${ae[r.eyeColor]??"dark"} ${ie[r.eyeStyle]??"round"} eyes`),r.hairStyle===0)t.push("bald");else{let a=le[r.hairStyle]??"hair",o=a.includes(",")?a.replace(/.*,\s*/,""):a,s=se[r.hairColor]??"";t.push(`${s} ${o.startsWith("a ")?o.slice(2):o}`)}let n=ce[e];return n&&t.push(n),t.push((oe[r.mouth]??"smiling").replace(/^a /,"")),t.join(", ")}function de(r){return`SolFace avatar: ${q(r,{format:"compact",includeBackground:!1})}`}function Oe(r,e){let t=q(r,{perspective:"first",name:e,includeBackground:!1,format:"paragraph"});return`My visual identity is a SolFace avatar (ID: ${(Tr(r)>>>0).toString(16).padStart(8,"0")}) derived from my wallet address. ${t} This appearance is deterministic \u2014 anyone who looks up my wallet will see the same face.`}function Tr(r){let e=5381;for(let t=0;t<r.length;t++)e=(e<<5)+e+r.charCodeAt(t)|0;return e>>>0}var Mr={},Pr={bgColors:["#1a1b23","#1e1428","#0a1e38","#1b2838","#201028","#141a28","#18122a","#1a2020","#221822","#1e1020"],eyeWhiteColor:"#d8d0c8",bgOpacity:1,bgRadius:4,border:{color:"#333340",width:.5}},Br={bgColors:["#f5e8ea","#f0f0d8","#e4f0e6","#d8f0e8","#e0ece8","#dce8f0","#e0e4f0","#e0d8f0","#f0e0ee","#f0d8e4"],bgOpacity:1,bgRadius:8},vr={skinColors:["#e8e8e8","#d4d4d4","#c0c0c0","#a8a8a8","#909090","#787878","#606060","#505050","#404040","#303030"],eyeColors:["#333","#555","#777","#999","#bbb"],hairColors:["#1a1a1a","#2a2a2a","#404040","#555","#707070","#888","#a0a0a0","#b8b8b8","#d0d0d0","#e0e0e0"],bgColors:["#e8e0e0","#e0e0d0","#d8e0d8","#d0e0d8","#d8e0e0","#d0d8e0","#d4d4e0","#d4d0e0","#e0d8e0","#e0d0d8"],mouthColor:"#666",eyebrowColor:"#555",accessoryColor:"#777",eyeWhiteColor:"#f0f0f0",bgOpacity:.5,bgRadius:4},Fr={flat:!0},Rr={flat:!0,bgOpacity:0},Or={bgOpacity:.15,bgRadius:16,_glass:!0,_blurRadius:12,_saturate:1.8,_tintOpacity:.12,_tintColor:"rgba(255,255,255,1)",_borderOpacity:.25,_borderWidth:1,_borderColor:"rgba(255,255,255,0.25)",_specularOpacity:.25,_specularColor:"rgba(255,255,255,1)",_specularEnd:50,_lightAngle:135,_rimIntensity:.08,_shadow:"0 8px 32px rgba(0,0,0,0.12)"},Ar={bgOpacity:.2,bgRadius:16,_glass:!0,_blurRadius:16,_saturate:2,_tintOpacity:.08,_tintColor:"rgba(0,0,0,1)",_borderOpacity:.15,_borderWidth:1,_borderColor:"rgba(255,255,255,0.15)",_specularOpacity:.15,_specularColor:"rgba(255,255,255,1)",_specularEnd:40,_lightAngle:135,_rimIntensity:.05,_shadow:"0 8px 32px rgba(0,0,0,0.25)"},Lr={flat:!0,_pixel:!0,_pixelDensity:16,_pixelRounded:!0,_pixelOutline:!0,_pixelOutlineColor:"#222",_pixelOutlineWidth:2},Er={flat:!0,_pixel:!0,_pixelDensity:12,_pixelRounded:!1,_pixelOutline:!0,_pixelOutlineColor:"#000",_pixelOutlineWidth:2,_pixelScanlines:!0,_pixelScanlineOpacity:.1,_pixelScanlineSpacing:2,_pixelShadow:!0,_pixelShadowColor:"rgba(0,0,0,0.4)",_pixelShadowOffset:3},Dr={flat:!0,_pixel:!0,_pixelDensity:24,_pixelRounded:!0,_pixelOutline:!1},z={default:Mr,dark:Pr,light:Br,mono:vr,flat:Fr,transparent:Rr,glass:Or,glassDark:Ar,pixel:Lr,pixelRetro:Er,pixelClean:Dr};function Ae(r,e){let t=z[r];return t?e?{...t,...e}:t:e??{}}function Le(r,e,t){let n=typeof r=="string"?document.querySelector(r):r;return n?(n.innerHTML=V(e,t),()=>{n.innerHTML=""}):(console.warn(`[SolFaces] Element not found: ${r}`),()=>{})}function _r(r,e,t){let n=typeof r=="string"?document.querySelector(r):r;n&&(n.src=te(e,t),n.alt=de(e))}function ue(r=document){r.querySelectorAll("[data-solface]").forEach(t=>{let n=t.getAttribute("data-solface");if(!n)return;let a=parseInt(t.getAttribute("data-solface-size")??"64",10),o=t.getAttribute("data-solface-blink")==="true",s=t.getAttribute("data-solface-theme"),c=t.getAttribute("data-solface-flat")==="true",i=t.getAttribute("data-solface-detail"),d=s&&s in z?z[s]:void 0;c&&d?d={...d,flat:!0}:c&&(d={flat:!0}),Le(t,n,{size:a,enableBlink:o,theme:d,detail:i??"auto"})})}var Ee={generateTraits:N,deriveName:ee,deriveIdentity:U,getTraitLabels:Se,traitHash:be,resolveTheme:$e,effectiveAccessory:R,renderSVG:V,renderDataURI:te,renderBase64:Be,describe:q,altText:de,agentPrompt:Oe,mount:Le,setImg:_r,autoInit:ue,themes:z,getTheme:Ae,colors:{hexToRgb:T,rgbToHex:H,darken:w,lighten:B,blend:C,luminance:re,deriveSkinColors:K}};typeof window<"u"&&(window.SolFaces=Ee);typeof document<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{document.querySelector("[data-solface]")&&ue()}):document.querySelector("[data-solface]")&&ue());var Gr=Ee;return Ke(Hr);})();
3
3
  //# sourceMappingURL=solfaces.cdn.global.js.map