@takumi-rs/helpers 2.11.0 → 2.13.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.
package/README.md CHANGED
@@ -16,12 +16,12 @@ npm install @takumi-rs/helpers
16
16
 
17
17
  ### JSX to Node Tree
18
18
 
19
- Convert React-like elements into a serializable node tree + stylesheets.
19
+ Convert React-like elements into a serializable node tree + CSS.
20
20
 
21
21
  ```tsx
22
22
  import { fromJsx } from "@takumi-rs/helpers/jsx";
23
23
 
24
- const { node, stylesheets } = await fromJsx(<div style={{ display: "flex" }}>Hello</div>);
24
+ const { node, css } = await fromJsx(<div style={{ display: "flex" }}>Hello</div>);
25
25
  ```
26
26
 
27
27
  ### HTML to Node Tree
@@ -31,7 +31,7 @@ Parse HTML strings into Takumi nodes.
31
31
  ```ts
32
32
  import { fromHtml } from "@takumi-rs/helpers/html";
33
33
 
34
- const { node, stylesheets } = await fromHtml("<div style='color: red'>Hello</div>");
34
+ const { node, css } = await fromHtml("<div style='color: red'>Hello</div>");
35
35
  ```
36
36
 
37
37
  ### Emoji Processing
package/dist/emoji.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { r as Node } from "./types-Bfi8SERZ.cjs";
1
+ import { c as Node } from "./types-BWYDTgEO.cjs";
2
2
  //#region src/emoji.d.ts
3
3
  type EmojiType = "twemoji" | "blobmoji" | "noto" | "openmoji" | "fluent" | "fluentFlat";
4
4
  declare function extractEmojis(node: Node, emojiType: EmojiType): Node;
package/dist/emoji.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { r as Node } from "./types-Bfi8SERZ.mjs";
1
+ import { c as Node } from "./types-BWYDTgEO.mjs";
2
2
  //#region src/emoji.d.ts
3
3
  type EmojiType = "twemoji" | "blobmoji" | "noto" | "openmoji" | "fluent" | "fluentFlat";
4
4
  declare function extractEmojis(node: Node, emojiType: EmojiType): Node;
@@ -1,4 +1,4 @@
1
- import { r as Node } from "./types-Bfi8SERZ.mjs";
1
+ import { c as Node } from "./types-BWYDTgEO.mjs";
2
2
  //#region src/google-fonts-catalog.d.ts
3
3
  interface GoogleFontShapes {
4
4
  S0: {
@@ -764,10 +764,10 @@ interface GoogleFontShapes {
764
764
  }
765
765
  interface GoogleFontShapeFamilies {
766
766
  S0: "ABeeZee" | "Alumni Sans Collegiate One" | "Alumni Sans Inline One" | "Alumni Sans Pinstripe" | "Arapey" | "Bevan" | "Castoro" | "Changa One" | "Chau Philomene One" | "Crete Round" | "DM Serif Display" | "DM Serif Text" | "Fanwood Text" | "Fondamento" | "Fragment Mono" | "Fruktur" | "Geo" | "IM Fell DW Pica" | "IM Fell Double Pica" | "IM Fell English" | "IM Fell French Canon" | "IM Fell Great Primer" | "Instrument Serif" | "Linden Hill" | "Mate" | "Oregano" | "PT Serif Caption" | "Playwrite AT Guides" | "Playwrite GB J Guides" | "Playwrite GB S Guides" | "Poly" | "Radley" | "Ropa Sans" | "Rosarivo" | "Sanchez" | "Sedan" | "Sorts Mill Goudy" | "Tiro Bangla" | "Tiro Devanagari Hindi" | "Tiro Devanagari Marathi" | "Tiro Devanagari Sanskrit" | "Tiro Gurmukhi" | "Tiro Kannada" | "Tiro Tamil" | "Tiro Telugu" | "Xanh Mono" | "Zen Loop";
767
- S1: "ADLaM Display" | "Abel" | "Aboreto" | "Abril Fatface" | "Abyssinica SIL" | "Aclonica" | "Acme" | "Actor" | "Adamina" | "Agbalumo" | "Aguafina Script" | "Akaya Kanadaka" | "Akaya Telivigala" | "Akronim" | "Aladin" | "Alata" | "Alatsi" | "Aldrich" | "Alex Brush" | "Alfa Slab One" | "Alice" | "Alien Block" | "Alike" | "Alike Angular" | "Alkalami" | "Allerta" | "Allerta Stencil" | "Allison" | "Allkin" | "Allura" | "Almendra Display" | "Almendra SC" | "Amarante" | "Amethysta" | "Amiri Quran" | "Angkor" | "Annie Use Your Telescope" | "Anta" | "Antic" | "Antic Didone" | "Antic Slab" | "Anton" | "Anton SC" | "Aoboshi One" | "Arbutus" | "Arbutus Slab" | "Architects Daughter" | "Archivo Black" | "Are You Serious" | "Arizonia" | "Armata" | "Artifika" | "Asar" | "Asimovian" | "Asset" | "Atomic Age" | "Aubrey" | "Audiowide" | "Autour One" | "Average" | "Average Sans" | "Averia Gruesa Libre" | "BBH Bartle" | "BBH Bogle" | "BBH Hegarty" | "Babylonica" | "Bacasime Antique" | "Bad Script" | "Badeen Display" | "Bagel Fat One" | "Bahiana" | "Bahianita" | "Bakbak One" | "Balthazar" | "Bangers" | "Barriecito" | "Barrio" | "Basic" | "Baumans" | "Bayon" | "Beau Rivage" | "Bebas Neue" | "Belgrano" | "Bellefair" | "Belleza" | "Benne" | "Bentham" | "Berkshire Swash" | "Betania Patmos" | "Betania Patmos GDL" | "Betania Patmos In" | "Betania Patmos In GDL" | "Beth Ellen" | "BhuTuka Expanded One" | "Bigelow Rules" | "Bigshot One" | "Bilbo" | "Bilbo Swash Caps" | "Birthstone" | "Black And White Picture" | "Black Han Sans" | "Black Ops One" | "Blaka" | "Blaka Hollow" | "Blaka Ink" | "Bokor" | "Boldonse" | "Bonbon" | "Bonheur Royale" | "Boogaloo" | "Borel" | "Bowlby One" | "Bowlby One SC" | "Bpmf Huninn" | "Bpmf Iansui" | "Bpmf Zihi Kai Std" | "Braah One" | "Bree Serif" | "Bruno Ace" | "Bruno Ace SC" | "Bubblegum Sans" | "Bubbler One" | "Bungee" | "Bungee Hairline" | "Bungee Inline" | "Bungee Outline" | "Bungee Shade" | "Bungee Spice" | "Bungee Tint" | "Butcherman" | "Butterfly Kids" | "Bytesized" | "Cactus Classical Serif" | "Caesar Dressing" | "Cagliostro" | "Cal Sans" | "Calistoga" | "Calligraffitti" | "Cambo" | "Candal" | "Cantata One" | "Cantora One" | "Caprasimo" | "Capriola" | "Caramel" | "Carattere" | "Carme" | "Carrois Gothic" | "Carrois Gothic SC" | "Carter One" | "Castoro Titling" | "Caveat Brush" | "Cedarville Cursive" | "Ceviche One" | "Chango" | "Chela One" | "Chelsea Market" | "Chenla" | "Cherish" | "Cherry Bomb One" | "Cherry Cream Soda" | "Chewy" | "Chicle" | "Chilanka" | "Chocolate Classical Sans" | "Chokokutai" | "Chonburi" | "Clicker Script" | "Coiny" | "Combo" | "Comforter" | "Comforter Brush" | "Coming Soon" | "Concert One" | "Condiment" | "Contrail One" | "Convergence" | "Cookie" | "Copse" | "Coral Pixels" | "Courgette" | "Covered By Your Grace" | "Crafty Girls" | "Creepster" | "Croissant One" | "Crushed" | "Cute Font" | "Cutive" | "Cutive Mono" | "Damion" | "Dangrek" | "Darumadrop One" | "Dawning of a New Day" | "Days One" | "Dekko" | "Dela Gothic One" | "Delicious Handrawn" | "Delius" | "Delius Swash Caps" | "Della Respira" | "Denk One" | "Devonshire" | "Dhurjati" | "Didact Gothic" | "Diphylleia" | "Diplomata" | "Diplomata SC" | "Do Hyeon" | "Dokdo" | "Donegal One" | "Doppio One" | "Dorsa" | "DotGothic16" | "Dr Sugiyama" | "Duru Sans" | "Dynalight" | "Eagle Lake" | "East Sea Dokdo" | "Eater" | "Electrolize" | "Emblema One" | "Emilys Candy" | "Engagement" | "Englebert" | "Ephesis" | "Erica One" | "Esteban" | "Estonia" | "Euphoria Script" | "Ewert" | "Exile" | "Explora" | "Faculty Glyphic" | "Farsan" | "Fascinate" | "Fascinate Inline" | "Faster One" | "Fasthand" | "Fauna One" | "Federant" | "Federo" | "Felipa" | "Fenix" | "Festive" | "Finger Paint" | "Fjalla One" | "Fjord One" | "Flavors" | "Fleur De Leah" | "Flow Block" | "Flow Circular" | "Flow Rounded" | "Fontdiner Swanky" | "Forum" | "Francois One" | "Freckle Face" | "Fredericka the Great" | "Freehand" | "Freeman" | "Fresca" | "Frijole" | "Fugaz One" | "Fuggles" | "GFS Didot" | "Ga Maamli" | "Gabriela" | "Gafata" | "Gajraj One" | "Galada" | "Galdeano" | "Galindo" | "Gamja Flower" | "Gasoek One" | "Geostar" | "Geostar Fill" | "Germania One" | "Gideon Roman" | "Gidole" | "Gidugu" | "Gilda Display" | "Girassol" | "Give You Glory" | "Glass Antiqua" | "Gloock" | "Gloria Hallelujah" | "Goblin One" | "Gochi Hand" | "Gotu" | "Goudy Bookletter 1911" | "Gowun Dodum" | "Graduate" | "Grand Hotel" | "Grandiflora One" | "Grape Nuts" | "Gravitas One" | "Great Vibes" | "Grechen Fuemen" | "Grey Qo" | "Griffy" | "Gruppo" | "Gugi" | "Gulzar" | "Gurajada" | "Gveret Levin" | "Habibi" | "Hachi Maru Pop" | "Hammersmith One" | "Hanalei" | "Hanalei Fill" | "Handlee" | "Happy Monkey" | "Headland One" | "Hedvig Letters Sans" | "Henny Penny" | "Herr Von Muellerhoff" | "Hi Melody" | "Hibur Mono" | "Hina Mincho" | "Holtwood One SC" | "Homemade Apple" | "Homenaje" | "Hubballi" | "Huninn" | "Hurricane" | "IM Fell DW Pica SC" | "IM Fell Double Pica SC" | "IM Fell English SC" | "IM Fell French Canon SC" | "IM Fell Great Primer SC" | "Iansui" | "Iceberg" | "Iceland" | "Imperial Script" | "Imprima" | "Inder" | "Indie Flower" | "Ingrid Darling" | "Inspiration" | "Irish Grover" | "Island Moments" | "Italiana" | "Italianno" | "Itim" | "Jacquard 12" | "Jacquard 12 Charted" | "Jacquard 24" | "Jacquard 24 Charted" | "Jacquarda Bastarda 9" | "Jacquarda Bastarda 9 Charted" | "Jacques Francois" | "Jacques Francois Shadow" | "Jaini" | "Jaini Purva" | "Jersey 10" | "Jersey 10 Charted" | "Jersey 15" | "Jersey 15 Charted" | "Jersey 20" | "Jersey 20 Charted" | "Jersey 25" | "Jersey 25 Charted" | "Jim Nightshade" | "Joan" | "Jockey One" | "Jolly Lodger" | "Jomhuria" | "Jomolhari" | "Joti One" | "Jua" | "Julee" | "Julius Sans One" | "Junge" | "Just Another Hand" | "Just Me Again Down Here" | "Katibeh" | "Kaushan Script" | "Kavivanar" | "Kavoon" | "Kdam Thmor Pro" | "Keania One" | "Kelly Slab" | "Kenia" | "Khmer" | "Kings" | "Kirang Haerang" | "Kite One" | "Knewave" | "Kolker Brush" | "Konkhmer Sleokchher" | "Kosugi" | "Kosugi Maru" | "Kotta One" | "Koulen" | "Kranky" | "Kristi" | "Krona One" | "Kumar One" | "Kumar One Outline" | "Kurale" | "LXGW Marker Gothic" | "La Belle Aurore" | "Lacquer" | "Lakki Reddy" | "Lalezar" | "Lancelot" | "Langar" | "Lavishly Yours" | "League Script" | "Leckerli One" | "Ledger" | "Lemon" | "Libertinus Keyboard" | "Libertinus Math" | "Libertinus Mono" | "Libertinus Serif Display" | "Libre Barcode 128" | "Libre Barcode 128 Text" | "Libre Barcode 39" | "Libre Barcode 39 Extended" | "Libre Barcode 39 Extended Text" | "Libre Barcode 39 Text" | "Libre Barcode EAN13 Text" | "Libre Caslon Display" | "Licorice" | "Lilita One" | "Lily Script One" | "Limelight" | "Liter" | "Liu Jian Mao Cao" | "Lobster" | "Londrina Outline" | "Londrina Shadow" | "Londrina Sketch" | "Long Cang" | "Love Light" | "Love Ya Like A Sister" | "Loved by the King" | "Lovers Quarrel" | "Luckiest Guy" | "Lugrasimo" | "Lumanosimo" | "Lustria" | "Luxurious Roman" | "Luxurious Script" | "Ma Shan Zheng" | "Macondo" | "Macondo Swash Caps" | "Madimi One" | "Maiden Orange" | "Major Mono Display" | "Mako" | "Mallanna" | "Maname" | "Mandali" | "Mansalva" | "Manufacturing Consent" | "Marcellus" | "Marcellus SC" | "Marck Script" | "Margarine" | "Marko One" | "Marmelad" | "Mate SC" | "Matemasie" | "McLaren" | "Mea Culpa" | "Meddon" | "MedievalSharp" | "Medula One" | "Meera Inimai" | "Megrim" | "Meie Script" | "Meow Script" | "Metal" | "Metal Mania" | "Metamorphous" | "Metrophobic" | "Michroma" | "Micro 5" | "Micro 5 Charted" | "Milonga" | "Miltonian" | "Miltonian Tattoo" | "Mingzat" | "Miniver" | "Miss Fajardose" | "Mochiy Pop One" | "Mochiy Pop P One" | "Modak" | "Modern Antiqua" | "Mogra" | "Moirai One" | "Molengo" | "Momo Signature" | "Momo Trust Display" | "Monofett" | "Monomakh" | "Monomaniac One" | "Monoton" | "Monsieur La Doulaise" | "Montaga" | "MonteCarlo" | "Montenegrin Gothic One" | "Montez" | "Moo Lah Lah" | "Mooli" | "Moon Dance" | "Moul" | "Moulpali" | "Mouse Memoirs" | "Mr Bedfort" | "Mr Dafoe" | "Mr De Haviland" | "Mrs Saint Delafield" | "Mrs Sheppards" | "Ms Madi" | "My Soul" | "Mynerve" | "Mystery Quest" | "NTR" | "Nanum Brush Script" | "Nanum Pen Script" | "Neonderthaw" | "Nerko One" | "Neucha" | "New Amsterdam" | "New Rocker" | "New Tegomin" | "Niconne" | "Nixie One" | "Norican" | "Nosifer" | "Notable" | "Nothing You Could Do" | "Noto Color Emoji" | "Noto Music" | "Noto Sans Anatolian Hieroglyphs" | "Noto Sans Avestan" | "Noto Sans Batak" | "Noto Sans Bhaiksuki" | "Noto Sans Brahmi" | "Noto Sans Buginese" | "Noto Sans Buhid" | "Noto Sans Carian" | "Noto Sans Caucasian Albanian" | "Noto Sans Chakma" | "Noto Sans Chorasmian" | "Noto Sans Coptic" | "Noto Sans Cuneiform" | "Noto Sans Cypriot" | "Noto Sans Cypro Minoan" | "Noto Sans Deseret" | "Noto Sans Egyptian Hieroglyphs" | "Noto Sans Elbasan" | "Noto Sans Elymaic" | "Noto Sans Glagolitic" | "Noto Sans Gothic" | "Noto Sans Grantha" | "Noto Sans Hanunoo" | "Noto Sans Hatran" | "Noto Sans Imperial Aramaic" | "Noto Sans Indic Siyaq Numbers" | "Noto Sans Inscriptional Pahlavi" | "Noto Sans Inscriptional Parthian" | "Noto Sans Kaithi" | "Noto Sans Kharoshthi" | "Noto Sans Khojki" | "Noto Sans Khudawadi" | "Noto Sans Lepcha" | "Noto Sans Limbu" | "Noto Sans Linear A" | "Noto Sans Linear B" | "Noto Sans Lycian" | "Noto Sans Lydian" | "Noto Sans Mahajani" | "Noto Sans Mandaic" | "Noto Sans Manichaean" | "Noto Sans Marchen" | "Noto Sans Masaram Gondi" | "Noto Sans Math" | "Noto Sans Mayan Numerals" | "Noto Sans Mende Kikakui" | "Noto Sans Meroitic" | "Noto Sans Miao" | "Noto Sans Modi" | "Noto Sans Mongolian" | "Noto Sans Mro" | "Noto Sans Multani" | "Noto Sans NKo" | "Noto Sans Nabataean" | "Noto Sans Nandinagari" | "Noto Sans Newa" | "Noto Sans Nushu" | "Noto Sans Ogham" | "Noto Sans Old Hungarian" | "Noto Sans Old Italic" | "Noto Sans Old North Arabian" | "Noto Sans Old Permic" | "Noto Sans Old Persian" | "Noto Sans Old Sogdian" | "Noto Sans Old South Arabian" | "Noto Sans Old Turkic" | "Noto Sans Osage" | "Noto Sans Osmanya" | "Noto Sans Pahawh Hmong" | "Noto Sans Palmyrene" | "Noto Sans Pau Cin Hau" | "Noto Sans PhagsPa" | "Noto Sans Phoenician" | "Noto Sans Psalter Pahlavi" | "Noto Sans Rejang" | "Noto Sans Runic" | "Noto Sans Samaritan" | "Noto Sans Saurashtra" | "Noto Sans Sharada" | "Noto Sans Shavian" | "Noto Sans Siddham" | "Noto Sans SignWriting" | "Noto Sans Sogdian" | "Noto Sans Soyombo" | "Noto Sans Sunuwar" | "Noto Sans Syloti Nagri" | "Noto Sans Symbols 2" | "Noto Sans Tagalog" | "Noto Sans Tagbanwa" | "Noto Sans Tai Le" | "Noto Sans Tai Viet" | "Noto Sans Takri" | "Noto Sans Tamil Supplement" | "Noto Sans Tifinagh" | "Noto Sans Tirhuta" | "Noto Sans Ugaritic" | "Noto Sans Vai" | "Noto Sans Wancho" | "Noto Sans Warang Citi" | "Noto Sans Yi" | "Noto Sans Zanabazar Square" | "Noto Serif Ahom" | "Noto Serif Balinese" | "Noto Serif Dives Akuru" | "Noto Serif Dogra" | "Noto Serif Grantha" | "Noto Serif Khitan Small Script" | "Noto Serif Makasar" | "Noto Serif Old Uyghur" | "Noto Serif Ottoman Siyaq" | "Noto Serif Tangut" | "Noto Serif Todhri" | "Noto Znamenny Musical Notation" | "Nova Cut" | "Nova Flat" | "Nova Mono" | "Nova Oval" | "Nova Round" | "Nova Script" | "Nova Slim" | "Nova Square" | "Numans" | "Nuosu SIL" | "Odibee Sans" | "Odor Mean Chey" | "Offside" | "Oi" | "Oldenburg" | "Ole" | "Oooh Baby" | "Oranienbaum" | "Orbit" | "Orelega One" | "Orienta" | "Original Surfer" | "Over the Rainbow" | "Overlock SC" | "Ovo" | "Oxygen Mono" | "PT Mono" | "Pacifico" | "Padyakke Expanded One" | "Palette Mosaic" | "Pangolin" | "Paprika" | "Parisienne" | "Passero One" | "Passions Conflict" | "Pathway Gothic One" | "Patrick Hand" | "Patrick Hand SC" | "Pattaya" | "Patua One" | "Pavanam" | "Paytone One" | "Peddana" | "Peralta" | "Permanent Marker" | "Petemoss" | "Petit Formal Script" | "Piedra" | "Pinyon Script" | "Pirata One" | "Plaster" | "Playball" | "Playwrite AR Guides" | "Playwrite AU NSW Guides" | "Playwrite AU QLD Guides" | "Playwrite AU SA Guides" | "Playwrite AU TAS Guides" | "Playwrite AU VIC Guides" | "Playwrite BE VLG Guides" | "Playwrite BE WAL Guides" | "Playwrite BR Guides" | "Playwrite CA Guides" | "Playwrite CL Guides" | "Playwrite CO Guides" | "Playwrite CU Guides" | "Playwrite CZ Guides" | "Playwrite DE Grund Guides" | "Playwrite DE LA Guides" | "Playwrite DE SAS Guides" | "Playwrite DE VA Guides" | "Playwrite DK Loopet Guides" | "Playwrite DK Uloopet Guides" | "Playwrite ES Deco Guides" | "Playwrite ES Guides" | "Playwrite FR Moderne Guides" | "Playwrite FR Trad Guides" | "Playwrite HR Guides" | "Playwrite HR Lijeva Guides" | "Playwrite HU Guides" | "Playwrite ID Guides" | "Playwrite IE Guides" | "Playwrite IN Guides" | "Playwrite IS Guides" | "Playwrite IT Moderna Guides" | "Playwrite IT Trad Guides" | "Playwrite MX Guides" | "Playwrite NG Modern Guides" | "Playwrite NL Guides" | "Playwrite NO Guides" | "Playwrite NZ Basic Guides" | "Playwrite NZ Guides" | "Playwrite PE Guides" | "Playwrite PL Guides" | "Playwrite PT Guides" | "Playwrite RO Guides" | "Playwrite SK Guides" | "Playwrite TZ Guides" | "Playwrite US Modern Guides" | "Playwrite US Trad Guides" | "Playwrite VN Guides" | "Playwrite ZA Guides" | "Pochaevsk" | "Poetsen One" | "Poiret One" | "Poller One" | "Pompiere" | "Ponnala" | "Ponomar" | "Poor Story" | "Port Lligat Sans" | "Port Lligat Slab" | "Potta One" | "Praise" | "Prata" | "Preahvihear" | "Press Start 2P" | "Princess Sofia" | "Prociono" | "Prosto One" | "Protest Guerrilla" | "Protest Revolution" | "Protest Riot" | "Protest Strike" | "Puppies Play" | "Purple Purse" | "Qahiri" | "Quando" | "Questrial" | "Quintessential" | "Qwigley" | "Racing Sans One" | "Rakkas" | "Raleway Dots" | "Ramabhadra" | "Ramaraja" | "Rammetto One" | "Rampart One" | "Ramsina" | "Ranchers" | "Rancho" | "Rationale" | "Ravi Prakash" | "Redacted" | "Redressed" | "Reem Kufi Ink" | "Reenie Beanie" | "Reggae One" | "Revalia" | "Rhodium Libre" | "Ribeye" | "Ribeye Marrow" | "Righteous" | "Risque" | "Road Rage" | "Rochester" | "Rock 3D" | "Rock Salt" | "RocknRoll One" | "Romanesco" | "Rouge Script" | "Rozha One" | "Rubik 80s Fade" | "Rubik Beastly" | "Rubik Broken Fax" | "Rubik Bubbles" | "Rubik Burned" | "Rubik Dirt" | "Rubik Distressed" | "Rubik Doodle Shadow" | "Rubik Doodle Triangles" | "Rubik Gemstones" | "Rubik Glitch" | "Rubik Glitch Pop" | "Rubik Iso" | "Rubik Lines" | "Rubik Maps" | "Rubik Marker Hatch" | "Rubik Maze" | "Rubik Microbe" | "Rubik Mono One" | "Rubik Moonrocks" | "Rubik Pixels" | "Rubik Puddles" | "Rubik Scribble" | "Rubik Spray Paint" | "Rubik Storm" | "Rubik Vinyl" | "Rubik Wet Paint" | "Ruge Boogie" | "Ruluko" | "Rum Raisin" | "Ruslan Display" | "Russo One" | "Ruthie" | "Rye" | "STIX Two Math" | "Sacramento" | "Sail" | "Salsa" | "Sancreek" | "Sankofa Display" | "Sarina" | "Sassy Frass" | "Satisfy" | "Sawarabi Gothic" | "Sawarabi Mincho" | "Schoolbell" | "Scope One" | "Seaweed Script" | "Secular One" | "Sedan SC" | "Sedgwick Ave" | "Sedgwick Ave Display" | "Sekuya" | "Send Flowers" | "Sevillana" | "Seymour One" | "Shadows Into Light" | "Shadows Into Light Two" | "Shafarik" | "Shalimar" | "Shanti" | "Share Tech" | "Share Tech Mono" | "Shippori Antique" | "Shippori Antique B1" | "Shizuru" | "Shojumaru" | "Short Stack" | "Shrikhand" | "Siemreap" | "Sigmar" | "Sigmar One" | "Single Day" | "Sirin Stencil" | "Sirivennela" | "Six Caps" | "Slabo 13px" | "Slabo 27px" | "Slackey" | "Slackside One" | "Smokum" | "Smooch" | "Smythe" | "Snippet" | "Snowburst One" | "Sofadi One" | "Sofia" | "Solitreo" | "Song Myung" | "Sonsie One" | "Special Elite" | "Special Gothic Condensed One" | "Special Gothic Expanded One" | "Spicy Rice" | "Spinnaker" | "Spirax" | "Splash" | "Squada One" | "Square Peg" | "Sree Krushnadevaraya" | "Sriracha" | "Staatliches" | "Stalemate" | "Stalinist One" | "Stick" | "Stint Ultra Condensed" | "Stint Ultra Expanded" | "Story Script" | "Strait" | "Style Script" | "Stylish" | "Sue Ellen Francisco" | "Suez One" | "Sunshiney" | "Supermercado One" | "Suranna" | "Suravaram" | "Swanky and Moo Moo" | "Syne Mono" | "Syne Tactile" | "Tac One" | "Tagesschrift" | "Tapestry" | "Taprom" | "Tauri" | "Telex" | "Tenali Ramakrishna" | "Tenor Sans" | "Text Me One" | "The Girl Next Door" | "Timmana" | "Tiny5" | "Titan One" | "Trade Winds" | "Train One" | "Triodion" | "Trocchi" | "Trykker" | "Tulpen One" | "Twinkle Star" | "Ubuntu Condensed" | "Uchen" | "Ultra" | "Uncial Antiqua" | "Underdog" | "Unica One" | "UnifrakturMaguntia" | "Unlock" | "UoqMunThenKhung" | "Updock" | "VT323" | "Vampiro One" | "Varela" | "Varela Round" | "Vast Shadow" | "Viaoda Libre" | "Vibes" | "Vibur" | "Vidaloka" | "Viga" | "Vina Sans" | "Voces" | "Voltaire" | "Vujahday Script" | "WDXL Lubrifont JP N" | "WDXL Lubrifont SC" | "WDXL Lubrifont TC" | "Waiting for the Sunrise" | "Wallpoet" | "Walter Turncoat" | "Warnes" | "Water Brush" | "Waterfall" | "Wellfleet" | "Wendy One" | "Whisper" | "Wire One" | "Yarndings 12" | "Yarndings 12 Charted" | "Yarndings 20" | "Yarndings 20 Charted" | "Yatra One" | "Yellowtail" | "Yeon Sung" | "Yeseva One" | "Yesteryear" | "Yomogi" | "Young Serif" | "Yuji Boku" | "Yuji Hentaigana Akari" | "Yuji Hentaigana Akebono" | "Yuji Mai" | "Yuji Syuku" | "Yusei Magic" | "Yuyu" | "Yuyu Short" | "ZCOOL KuaiLe" | "ZCOOL QingKe HuangYou" | "ZCOOL XiaoWei" | "Zen Antique" | "Zen Antique Soft" | "Zen Dots" | "Zen Kurenaido" | "Zen Tokyo Zoo" | "Zeyada" | "Zhi Mang Xing";
767
+ S1: "ADLaM Display" | "Abel" | "Aboreto" | "Abril Fatface" | "Abyssinica SIL" | "Aclonica" | "Acme" | "Actor" | "Adamina" | "Agbalumo" | "Aguafina Script" | "Akaya Kanadaka" | "Akaya Telivigala" | "Akronim" | "Aladin" | "Alata" | "Alatsi" | "Aldrich" | "Alex Brush" | "Alfa Slab One" | "Alice" | "Alien Block" | "Alike" | "Alike Angular" | "Alkalami" | "Allerta" | "Allerta Stencil" | "Allison" | "Allkin" | "Allura" | "Almendra Display" | "Almendra SC" | "Amarante" | "Amethysta" | "Amiri Quran" | "Angkor" | "Annie Use Your Telescope" | "Anta" | "Antic" | "Antic Didone" | "Antic Slab" | "Anton" | "Anton SC" | "Aoboshi One" | "Arbutus" | "Arbutus Slab" | "Architects Daughter" | "Archivo Black" | "Are You Serious" | "Arizonia" | "Armata" | "Artifika" | "Asar" | "Asimovian" | "Asset" | "Atomic Age" | "Aubrey" | "Audiowide" | "Autour One" | "Average" | "Average Sans" | "Averia Gruesa Libre" | "BBH Bartle" | "BBH Bogle" | "BBH Hegarty" | "Babylonica" | "Bacasime Antique" | "Bad Script" | "Badeen Display" | "Bagel Fat One" | "Bahiana" | "Bahianita" | "Bakbak One" | "Balthazar" | "Bangers" | "Barriecito" | "Barrio" | "Basic" | "Baumans" | "Bayon" | "Beau Rivage" | "Bebas Neue" | "Belgrano" | "Bellefair" | "Belleza" | "Benne" | "Bentham" | "Berkshire Swash" | "Betania Patmos" | "Betania Patmos GDL" | "Betania Patmos In" | "Betania Patmos In GDL" | "Beth Ellen" | "BhuTuka Expanded One" | "Bigelow Rules" | "Bigshot One" | "Bilbo" | "Bilbo Swash Caps" | "Birthstone" | "Black And White Picture" | "Black Han Sans" | "Black Ops One" | "Blaka" | "Blaka Hollow" | "Blaka Ink" | "Bokor" | "Boldonse" | "Bonbon" | "Bonheur Royale" | "Boogaloo" | "Borel" | "Bowlby One" | "Bowlby One SC" | "Bpmf Huninn" | "Bpmf Iansui" | "Bpmf Zihi Kai Std" | "Braah One" | "Bree Serif" | "Bruno Ace" | "Bruno Ace SC" | "Bubblegum Sans" | "Bubbler One" | "Bungee" | "Bungee Hairline" | "Bungee Inline" | "Bungee Outline" | "Bungee Shade" | "Bungee Spice" | "Bungee Tint" | "Butcherman" | "Butterfly Kids" | "Bytesized" | "Caacupe One" | "Cactus Classical Serif" | "Caesar Dressing" | "Cagliostro" | "Cal Sans" | "Calistoga" | "Calligraffitti" | "Cambo" | "Candal" | "Cantata One" | "Cantora One" | "Caprasimo" | "Capriola" | "Caramel" | "Carattere" | "Carme" | "Carrois Gothic" | "Carrois Gothic SC" | "Carter One" | "Castoro Titling" | "Caveat Brush" | "Cedarville Cursive" | "Ceviche One" | "Chango" | "Chela One" | "Chelsea Market" | "Chenla" | "Cherish" | "Cherry Bomb One" | "Cherry Cream Soda" | "Chewy" | "Chicle" | "Chilanka" | "Chocolate Classical Sans" | "Chokokutai" | "Chonburi" | "Clicker Script" | "Coiny" | "Combo" | "Comforter" | "Comforter Brush" | "Coming Soon" | "Concert One" | "Condiment" | "Contrail One" | "Convergence" | "Cookie" | "Copse" | "Coral Pixels" | "Courgette" | "Covered By Your Grace" | "Crafty Girls" | "Creepster" | "Croissant One" | "Crushed" | "Cute Font" | "Cutive" | "Cutive Mono" | "Damion" | "Dangrek" | "Darumadrop One" | "Dawning of a New Day" | "Days One" | "Dekko" | "Dela Gothic One" | "Delicious Handrawn" | "Delius" | "Delius Swash Caps" | "Della Respira" | "Denk One" | "Devonshire" | "Dhurjati" | "Didact Gothic" | "Diphylleia" | "Diplomata" | "Diplomata SC" | "Do Hyeon" | "Dokdo" | "Donegal One" | "Doppio One" | "Dorsa" | "DotGothic16" | "Dr Sugiyama" | "Duru Sans" | "Dynalight" | "Eagle Lake" | "East Sea Dokdo" | "Eater" | "Electrolize" | "Emblema One" | "Emilys Candy" | "Engagement" | "Englebert" | "Ephesis" | "Erica One" | "Esteban" | "Estonia" | "Euphoria Script" | "Ewert" | "Exile" | "Explora" | "Faculty Glyphic" | "Farsan" | "Fascinate" | "Fascinate Inline" | "Faster One" | "Fasthand" | "Fauna One" | "Federant" | "Federo" | "Felipa" | "Fenix" | "Festive" | "Finger Paint" | "Fjalla One" | "Fjord One" | "Flavors" | "Fleur De Leah" | "Flow Block" | "Flow Circular" | "Flow Rounded" | "Fontdiner Swanky" | "Forum" | "Francois One" | "Freckle Face" | "Fredericka the Great" | "Freehand" | "Freeman" | "Fresca" | "Frijole" | "Fugaz One" | "Fuggles" | "GFS Didot" | "Ga Maamli" | "Gabriela" | "Gafata" | "Gajraj One" | "Galada" | "Galdeano" | "Galindo" | "Gamja Flower" | "Gasoek One" | "Geostar" | "Geostar Fill" | "Germania One" | "Gideon Roman" | "Gidole" | "Gidugu" | "Gilda Display" | "Girassol" | "Give You Glory" | "Glass Antiqua" | "Gloock" | "Gloria Hallelujah" | "Goblin One" | "Gochi Hand" | "Gotu" | "Goudy Bookletter 1911" | "Gowun Dodum" | "Graduate" | "Grand Hotel" | "Grandiflora One" | "Grape Nuts" | "Gravitas One" | "Great Vibes" | "Grechen Fuemen" | "Grey Qo" | "Griffy" | "Gruppo" | "Gugi" | "Gulzar" | "Gurajada" | "Gveret Levin" | "Habibi" | "Hachi Maru Pop" | "Hammersmith One" | "Hanalei" | "Hanalei Fill" | "Handlee" | "Happy Monkey" | "Headland One" | "Hedvig Letters Sans" | "Henny Penny" | "Herr Von Muellerhoff" | "Hi Melody" | "Hibur Mono" | "Hina Mincho" | "Holtwood One SC" | "Homemade Apple" | "Homenaje" | "Hubballi" | "Huninn" | "Hurricane" | "IM Fell DW Pica SC" | "IM Fell Double Pica SC" | "IM Fell English SC" | "IM Fell French Canon SC" | "IM Fell Great Primer SC" | "Iansui" | "Iceberg" | "Iceland" | "Imperial Script" | "Imprima" | "Inder" | "Indie Flower" | "Ingrid Darling" | "Inspiration" | "Irish Grover" | "Island Moments" | "Italiana" | "Italianno" | "Itim" | "Jacquard 12" | "Jacquard 12 Charted" | "Jacquard 24" | "Jacquard 24 Charted" | "Jacquarda Bastarda 9" | "Jacquarda Bastarda 9 Charted" | "Jacques Francois" | "Jacques Francois Shadow" | "Jaini" | "Jaini Purva" | "Jersey 10" | "Jersey 10 Charted" | "Jersey 15" | "Jersey 15 Charted" | "Jersey 20" | "Jersey 20 Charted" | "Jersey 25" | "Jersey 25 Charted" | "Jim Nightshade" | "Joan" | "Jockey One" | "Jolly Lodger" | "Jomhuria" | "Jomolhari" | "Joti One" | "Jua" | "Julee" | "Julius Sans One" | "Junge" | "Just Another Hand" | "Just Me Again Down Here" | "Katibeh" | "Kaushan Script" | "Kavivanar" | "Kavoon" | "Kdam Thmor Pro" | "Keania One" | "Kelly Slab" | "Kenia" | "Khmer" | "Kings" | "Kirang Haerang" | "Kite One" | "Knewave" | "Kolker Brush" | "Konkhmer Sleokchher" | "Kosugi" | "Kosugi Maru" | "Kotta One" | "Koulen" | "Kranky" | "Kristi" | "Krona One" | "Kumar One" | "Kumar One Outline" | "Kurale" | "LXGW Marker Gothic" | "La Belle Aurore" | "Lacquer" | "Lakki Reddy" | "Lalezar" | "Lancelot" | "Langar" | "Lavishly Yours" | "League Script" | "Leckerli One" | "Ledger" | "Lemon" | "Libertinus Keyboard" | "Libertinus Math" | "Libertinus Mono" | "Libertinus Serif Display" | "Libre Barcode 128" | "Libre Barcode 128 Text" | "Libre Barcode 39" | "Libre Barcode 39 Extended" | "Libre Barcode 39 Extended Text" | "Libre Barcode 39 Text" | "Libre Barcode EAN13 Text" | "Libre Caslon Display" | "Licorice" | "Lilita One" | "Lily Script One" | "Limelight" | "Liter" | "Liu Jian Mao Cao" | "Lobster" | "Londrina Outline" | "Londrina Shadow" | "Londrina Sketch" | "Long Cang" | "Love Light" | "Love Ya Like A Sister" | "Loved by the King" | "Lovers Quarrel" | "Luckiest Guy" | "Lugrasimo" | "Lumanosimo" | "Lustria" | "Luxurious Roman" | "Luxurious Script" | "Ma Shan Zheng" | "Macondo" | "Macondo Swash Caps" | "Madimi One" | "Maiden Orange" | "Major Mono Display" | "Mako" | "Mallanna" | "Maname" | "Mandali" | "Mansalva" | "Manufacturing Consent" | "Marcellus" | "Marcellus SC" | "Marck Script" | "Margarine" | "Marko One" | "Marmelad" | "Mate SC" | "Matemasie" | "McLaren" | "Mea Culpa" | "Meddon" | "MedievalSharp" | "Medula One" | "Meera Inimai" | "Megrim" | "Meie Script" | "Meow Script" | "Metal" | "Metal Mania" | "Metamorphous" | "Metrophobic" | "Michroma" | "Micro 5" | "Micro 5 Charted" | "Milonga" | "Miltonian" | "Miltonian Tattoo" | "Mingzat" | "Miniver" | "Miss Fajardose" | "Mochiy Pop One" | "Mochiy Pop P One" | "Modak" | "Modern Antiqua" | "Mogra" | "Moirai One" | "Molengo" | "Momo Signature" | "Momo Trust Display" | "Monofett" | "Monomakh" | "Monomaniac One" | "Monoton" | "Monsieur La Doulaise" | "Montaga" | "MonteCarlo" | "Montenegrin Gothic One" | "Montez" | "Moo Lah Lah" | "Mooli" | "Moon Dance" | "Moul" | "Moulpali" | "Mouse Memoirs" | "Mr Bedfort" | "Mr Dafoe" | "Mr De Haviland" | "Mrs Saint Delafield" | "Mrs Sheppards" | "Ms Madi" | "My Soul" | "Mynerve" | "Mystery Quest" | "NTR" | "Nanum Brush Script" | "Nanum Pen Script" | "Neonderthaw" | "Nerko One" | "Neucha" | "New Amsterdam" | "New Rocker" | "New Tegomin" | "Niconne" | "Nixie One" | "Norican" | "Nosifer" | "Notable" | "Nothing You Could Do" | "Noto Color Emoji" | "Noto Music" | "Noto Sans Anatolian Hieroglyphs" | "Noto Sans Avestan" | "Noto Sans Batak" | "Noto Sans Bhaiksuki" | "Noto Sans Brahmi" | "Noto Sans Buginese" | "Noto Sans Buhid" | "Noto Sans Carian" | "Noto Sans Caucasian Albanian" | "Noto Sans Chakma" | "Noto Sans Chorasmian" | "Noto Sans Coptic" | "Noto Sans Cuneiform" | "Noto Sans Cypriot" | "Noto Sans Cypro Minoan" | "Noto Sans Deseret" | "Noto Sans Egyptian Hieroglyphs" | "Noto Sans Elbasan" | "Noto Sans Elymaic" | "Noto Sans Glagolitic" | "Noto Sans Gothic" | "Noto Sans Grantha" | "Noto Sans Hanunoo" | "Noto Sans Hatran" | "Noto Sans Imperial Aramaic" | "Noto Sans Indic Siyaq Numbers" | "Noto Sans Inscriptional Pahlavi" | "Noto Sans Inscriptional Parthian" | "Noto Sans Kaithi" | "Noto Sans Kharoshthi" | "Noto Sans Khojki" | "Noto Sans Khudawadi" | "Noto Sans Lepcha" | "Noto Sans Limbu" | "Noto Sans Linear A" | "Noto Sans Linear B" | "Noto Sans Lycian" | "Noto Sans Lydian" | "Noto Sans Mahajani" | "Noto Sans Mandaic" | "Noto Sans Manichaean" | "Noto Sans Marchen" | "Noto Sans Masaram Gondi" | "Noto Sans Math" | "Noto Sans Mayan Numerals" | "Noto Sans Mende Kikakui" | "Noto Sans Meroitic" | "Noto Sans Miao" | "Noto Sans Modi" | "Noto Sans Mongolian" | "Noto Sans Mro" | "Noto Sans Multani" | "Noto Sans NKo" | "Noto Sans Nabataean" | "Noto Sans Nandinagari" | "Noto Sans Newa" | "Noto Sans Nushu" | "Noto Sans Ogham" | "Noto Sans Old Hungarian" | "Noto Sans Old Italic" | "Noto Sans Old North Arabian" | "Noto Sans Old Permic" | "Noto Sans Old Persian" | "Noto Sans Old Sogdian" | "Noto Sans Old South Arabian" | "Noto Sans Old Turkic" | "Noto Sans Osage" | "Noto Sans Osmanya" | "Noto Sans Pahawh Hmong" | "Noto Sans Palmyrene" | "Noto Sans Pau Cin Hau" | "Noto Sans PhagsPa" | "Noto Sans Phoenician" | "Noto Sans Psalter Pahlavi" | "Noto Sans Rejang" | "Noto Sans Runic" | "Noto Sans Samaritan" | "Noto Sans Saurashtra" | "Noto Sans Sharada" | "Noto Sans Shavian" | "Noto Sans Siddham" | "Noto Sans SignWriting" | "Noto Sans Sogdian" | "Noto Sans Soyombo" | "Noto Sans Sunuwar" | "Noto Sans Syloti Nagri" | "Noto Sans Symbols 2" | "Noto Sans Tagalog" | "Noto Sans Tagbanwa" | "Noto Sans Tai Le" | "Noto Sans Tai Viet" | "Noto Sans Takri" | "Noto Sans Tamil Supplement" | "Noto Sans Tifinagh" | "Noto Sans Tirhuta" | "Noto Sans Ugaritic" | "Noto Sans Vai" | "Noto Sans Wancho" | "Noto Sans Warang Citi" | "Noto Sans Yi" | "Noto Sans Zanabazar Square" | "Noto Serif Ahom" | "Noto Serif Balinese" | "Noto Serif Dives Akuru" | "Noto Serif Dogra" | "Noto Serif Grantha" | "Noto Serif Khitan Small Script" | "Noto Serif Makasar" | "Noto Serif Old Uyghur" | "Noto Serif Ottoman Siyaq" | "Noto Serif Tangut" | "Noto Serif Todhri" | "Noto Znamenny Musical Notation" | "Nova Cut" | "Nova Flat" | "Nova Mono" | "Nova Oval" | "Nova Round" | "Nova Script" | "Nova Slim" | "Nova Square" | "Numans" | "Nuosu SIL" | "Odibee Sans" | "Odor Mean Chey" | "Offside" | "Oi" | "Oldenburg" | "Ole" | "Oooh Baby" | "Oranienbaum" | "Orbit" | "Orelega One" | "Orienta" | "Original Surfer" | "Over the Rainbow" | "Overlock SC" | "Ovo" | "Oxygen Mono" | "PT Mono" | "Pacifico" | "Padyakke Expanded One" | "Palette Mosaic" | "Pangolin" | "Paprika" | "Parisienne" | "Passero One" | "Passions Conflict" | "Pathway Gothic One" | "Patrick Hand" | "Patrick Hand SC" | "Pattaya" | "Patua One" | "Pavanam" | "Paytone One" | "Peddana" | "Peralta" | "Permanent Marker" | "Petemoss" | "Petit Formal Script" | "Piedra" | "Pinyon Script" | "Pirata One" | "Plaster" | "Playball" | "Playwrite AR Guides" | "Playwrite AU NSW Guides" | "Playwrite AU QLD Guides" | "Playwrite AU SA Guides" | "Playwrite AU TAS Guides" | "Playwrite AU VIC Guides" | "Playwrite BE VLG Guides" | "Playwrite BE WAL Guides" | "Playwrite BR Guides" | "Playwrite CA Guides" | "Playwrite CL Guides" | "Playwrite CO Guides" | "Playwrite CU Guides" | "Playwrite CZ Guides" | "Playwrite DE Grund Guides" | "Playwrite DE LA Guides" | "Playwrite DE SAS Guides" | "Playwrite DE VA Guides" | "Playwrite DK Loopet Guides" | "Playwrite DK Uloopet Guides" | "Playwrite ES Deco Guides" | "Playwrite ES Guides" | "Playwrite FR Moderne Guides" | "Playwrite FR Trad Guides" | "Playwrite HR Guides" | "Playwrite HR Lijeva Guides" | "Playwrite HU Guides" | "Playwrite ID Guides" | "Playwrite IE Guides" | "Playwrite IN Guides" | "Playwrite IS Guides" | "Playwrite IT Moderna Guides" | "Playwrite IT Trad Guides" | "Playwrite MX Guides" | "Playwrite NG Modern Guides" | "Playwrite NL Guides" | "Playwrite NO Guides" | "Playwrite NZ Basic Guides" | "Playwrite NZ Guides" | "Playwrite PE Guides" | "Playwrite PL Guides" | "Playwrite PT Guides" | "Playwrite RO Guides" | "Playwrite SK Guides" | "Playwrite TZ Guides" | "Playwrite US Modern Guides" | "Playwrite US Trad Guides" | "Playwrite VN Guides" | "Playwrite ZA Guides" | "Pochaevsk" | "Poetsen One" | "Poiret One" | "Poller One" | "Pompiere" | "Ponnala" | "Ponomar" | "Poor Story" | "Port Lligat Sans" | "Port Lligat Slab" | "Potta One" | "Praise" | "Prata" | "Preahvihear" | "Press Start 2P" | "Princess Sofia" | "Prociono" | "Prosto One" | "Protest Guerrilla" | "Protest Revolution" | "Protest Riot" | "Protest Strike" | "Puppies Play" | "Purple Purse" | "Qahiri" | "Quando" | "Questrial" | "Quintessential" | "Qwigley" | "Racing Sans One" | "Rakkas" | "Raleway Dots" | "Ramabhadra" | "Ramaraja" | "Rammetto One" | "Rampart One" | "Ramsina" | "Ranchers" | "Rancho" | "Rationale" | "Ravi Prakash" | "Redacted" | "Redressed" | "Reem Kufi Ink" | "Reenie Beanie" | "Reggae One" | "Revalia" | "Rhodium Libre" | "Ribeye" | "Ribeye Marrow" | "Righteous" | "Risque" | "Road Rage" | "Rochester" | "Rock 3D" | "Rock Salt" | "RocknRoll One" | "Romanesco" | "Rouge Script" | "Rozha One" | "Rubik 80s Fade" | "Rubik Beastly" | "Rubik Broken Fax" | "Rubik Bubbles" | "Rubik Burned" | "Rubik Dirt" | "Rubik Distressed" | "Rubik Doodle Shadow" | "Rubik Doodle Triangles" | "Rubik Gemstones" | "Rubik Glitch" | "Rubik Glitch Pop" | "Rubik Iso" | "Rubik Lines" | "Rubik Maps" | "Rubik Marker Hatch" | "Rubik Maze" | "Rubik Microbe" | "Rubik Mono One" | "Rubik Moonrocks" | "Rubik Pixels" | "Rubik Puddles" | "Rubik Scribble" | "Rubik Spray Paint" | "Rubik Storm" | "Rubik Vinyl" | "Rubik Wet Paint" | "Ruge Boogie" | "Ruluko" | "Rum Raisin" | "Ruslan Display" | "Russo One" | "Ruthie" | "Rye" | "STIX Two Math" | "Sacramento" | "Sail" | "Salsa" | "Sancreek" | "Sankofa Display" | "Sarina" | "Sassy Frass" | "Satisfy" | "Sawarabi Gothic" | "Sawarabi Mincho" | "Schoolbell" | "Scope One" | "Seaweed Script" | "Secular One" | "Sedan SC" | "Sedgwick Ave" | "Sedgwick Ave Display" | "Sekuya" | "Send Flowers" | "Sevillana" | "Seymour One" | "Shadows Into Light" | "Shadows Into Light Two" | "Shafarik" | "Shalimar" | "Shanti" | "Share Tech" | "Share Tech Mono" | "Shippori Antique" | "Shippori Antique B1" | "Shizuru" | "Shojumaru" | "Short Stack" | "Shrikhand" | "Siemreap" | "Sigmar" | "Sigmar One" | "Single Day" | "Sirin Stencil" | "Sirivennela" | "Six Caps" | "Slabo 13px" | "Slabo 27px" | "Slackey" | "Slackside One" | "Smokum" | "Smooch" | "Smythe" | "Snippet" | "Snowburst One" | "Sofadi One" | "Sofia" | "Solitreo" | "Song Myung" | "Sonsie One" | "Special Elite" | "Special Gothic Condensed One" | "Special Gothic Expanded One" | "Spicy Rice" | "Spinnaker" | "Spirax" | "Splash" | "Squada One" | "Square Peg" | "Sree Krushnadevaraya" | "Sriracha" | "Staatliches" | "Stalemate" | "Stalinist One" | "Stick" | "Stint Ultra Condensed" | "Stint Ultra Expanded" | "Story Script" | "Strait" | "Style Script" | "Stylish" | "Sue Ellen Francisco" | "Suez One" | "Sunshiney" | "Supermercado One" | "Suranna" | "Suravaram" | "Swanky and Moo Moo" | "Syne Mono" | "Syne Tactile" | "Tac One" | "Tagesschrift" | "Tapestry" | "Taprom" | "Tauri" | "Telex" | "Tenali Ramakrishna" | "Tenor Sans" | "Text Me One" | "The Girl Next Door" | "Timmana" | "Tiny5" | "Titan One" | "Trade Winds" | "Train One" | "Triodion" | "Trocchi" | "Trykker" | "Tulpen One" | "Twinkle Star" | "Ubuntu Condensed" | "Uchen" | "Ultra" | "Uncial Antiqua" | "Underdog" | "Unica One" | "UnifrakturMaguntia" | "Unlock" | "UoqMunThenKhung" | "Updock" | "VT323" | "Vampiro One" | "Varela" | "Varela Round" | "Vast Shadow" | "Viaoda Libre" | "Vibes" | "Vibur" | "Vidaloka" | "Viga" | "Vina Sans" | "Voces" | "Voltaire" | "Vujahday Script" | "WDXL Lubrifont JP N" | "WDXL Lubrifont SC" | "WDXL Lubrifont TC" | "Waiting for the Sunrise" | "Wallpoet" | "Walter Turncoat" | "Warnes" | "Water Brush" | "Waterfall" | "Wellfleet" | "Wendy One" | "Whisper" | "Wire One" | "Yarndings 12" | "Yarndings 12 Charted" | "Yarndings 20" | "Yarndings 20 Charted" | "Yatra One" | "Yellowtail" | "Yeon Sung" | "Yeseva One" | "Yesteryear" | "Yomogi" | "Young Serif" | "Yuji Boku" | "Yuji Hentaigana Akari" | "Yuji Hentaigana Akebono" | "Yuji Mai" | "Yuji Syuku" | "Yusei Magic" | "Yuyu" | "Yuyu Short" | "ZCOOL KuaiLe" | "ZCOOL QingKe HuangYou" | "ZCOOL XiaoWei" | "Zen Antique" | "Zen Antique Soft" | "Zen Dots" | "Zen Kurenaido" | "Zen Tokyo Zoo" | "Zeyada" | "Zhi Mang Xing";
768
768
  S2: "AR One Sans";
769
769
  S3: "Abhaya Libre" | "Anaheim" | "Baloo 2" | "Baloo Bhai 2" | "Baloo Bhaijaan 2" | "Baloo Bhaina 2" | "Baloo Chettan 2" | "Baloo Da 2" | "Baloo Paaji 2" | "Baloo Tamma 2" | "Baloo Tammudu 2" | "Baloo Thambi 2" | "Eczar" | "Namdhinggo" | "Narnoor" | "Podkova" | "Sen" | "Shippori Mincho" | "Shippori Mincho B1" | "Syne" | "TASA Explorer" | "TASA Orbiter" | "Tillana" | "Wix Madefor Display";
770
- S4: "Advent Pro" | "Anybody" | "Archivo" | "Asap" | "Georama" | "Noto Sans" | "Noto Sans Display" | "Noto Serif" | "Noto Serif Display" | "Noto Serif Tamil" | "Pliant" | "Roboto" | "Saira" | "Saira Stencil" | "Sour Gummy" | "Tourney";
770
+ S4: "Advent Pro" | "Anybody" | "Archivo" | "Asap" | "Asap Sharp" | "Georama" | "Noto Sans" | "Noto Sans Display" | "Noto Serif" | "Noto Serif Display" | "Noto Serif Tamil" | "Pliant" | "Roboto" | "Saira" | "Saira Stencil" | "Sour Gummy" | "Tourney";
771
771
  S5: "Afacad" | "Archivo Narrow" | "Arimo" | "Baskervville" | "Brygada 1918" | "Cuprum" | "Expletus Sans" | "Familjen Grotesk" | "Gelasio" | "Ibarra Real Nova" | "Libre Baskerville" | "Libre Bodoni" | "Lora" | "Miranda Sans" | "Poltawski Nowy" | "Radio Canada Big" | "STIX Two Text" | "Sometype Mono" | "Ubuntu Sans Mono";
772
772
  S6: "Afacad Flux";
773
773
  S7: "Agdasima" | "Alef" | "Allan" | "Amatic SC" | "Amita" | "Annapurna SIL" | "Aref Ruqaa" | "Aref Ruqaa Ink" | "Arya" | "Astloch" | "Asul" | "BIZ UDGothic" | "BIZ UDMincho" | "BIZ UDPGothic" | "BIZ UDPMincho" | "Brawler" | "Cabin Sketch" | "Charm" | "Charmonman" | "Cherry Swash" | "Comic Relief" | "Content" | "Corben" | "Corinthia" | "Cossette Texte" | "Cossette Titre" | "Delius Unicase" | "Fuzzy Bubbles" | "Glegoo" | "Goldman" | "Gorditas" | "Gowun Batang" | "Gwendolyn" | "Inika" | "Jaldi" | "Kadwa" | "Karla Tamil Inclined" | "Karla Tamil Upright" | "Lunasima" | "Lusitana" | "Magra" | "Mina" | "Mountains of Christmas" | "Nanum Gothic Coding" | "News Cycle" | "Noto Sans Duployan" | "Oleo Script" | "Oleo Script Swash Caps" | "PT Sans Caption" | "PT Sans Narrow" | "Padauk" | "Phetsarath" | "Play" | "Pragati Narrow" | "Quattrocento" | "Qwitcher Grypen" | "Ranga" | "Rufina" | "Sahitya" | "Sarala" | "Silkscreen" | "Sintony" | "Skranji" | "Srisakdi" | "Stardos Stencil" | "Sumana" | "Sura" | "Syncopate" | "Tai Heritage Pro" | "Tangerine" | "The Nautigal" | "Unkempt" | "Zilla Slab Highlight";
@@ -776,7 +776,7 @@ interface GoogleFontShapeFamilies {
776
776
  S10: "Akshar" | "Atma" | "Comfortaa" | "Cormorant SC" | "Cormorant Unicase" | "Cormorant Upright" | "Fira Code" | "Halant" | "Hind" | "Hind Guntur" | "Hind Madurai" | "Hind Mysuru" | "Hind Siliguri" | "Hind Vadodara" | "Jura" | "Karma" | "Khand" | "Kreon" | "Laila" | "Lemonada" | "Marhey" | "Noto Emoji" | "Noto Traditional Nushu" | "Overpass Mono" | "Pontano Sans" | "Quicksand" | "Rajdhani" | "Red Rose" | "Signika Negative" | "Space Grotesk" | "Spline Sans" | "Teko" | "Tsukimi Rounded" | "Varta";
777
777
  S11: "Akt" | "Alexandria" | "Catamaran" | "Cause" | "Comme" | "Encode Sans Condensed" | "Encode Sans Expanded" | "Encode Sans Semi Condensed" | "Encode Sans Semi Expanded" | "Estedad" | "Foldit" | "Gothic A1" | "Grenze Gotisch" | "Hahmlet" | "Hanuman" | "Heebo" | "League Spartan" | "Lexend" | "Lexend Deca" | "Lexend Exa" | "Lexend Giga" | "Lexend Mega" | "Lexend Peta" | "Lexend Tera" | "Lexend Zetta" | "M PLUS 1" | "M PLUS 2" | "M PLUS U" | "Murecho" | "Nata Sans" | "Nokora" | "Noto Kufi Arabic" | "Noto Rashi Hebrew" | "Noto Sans Canadian Aboriginal" | "Noto Sans Cham" | "Noto Sans Cherokee" | "Noto Sans HK" | "Noto Sans JP" | "Noto Sans KR" | "Noto Sans Meetei Mayek" | "Noto Sans SC" | "Noto Sans Symbols" | "Noto Sans Syriac" | "Noto Sans Syriac Eastern" | "Noto Sans Syriac Western" | "Noto Sans TC" | "Noto Sans Thaana" | "Noto Serif Gujarati" | "Noto Serif Gurmukhi" | "Noto Serif Kannada" | "Noto Serif Malayalam" | "Noto Serif Myanmar" | "Noto Serif Telugu" | "Noto Serif Tibetan" | "Onest" | "Outfit" | "Roboto Slab" | "Saira Condensed" | "Saira Extra Condensed" | "Saira Semi Condensed" | "Smooch Sans" | "Vazirmatn";
778
778
  S12: "Alan Sans" | "Alyamama" | "Darker Grotesque" | "Frank Ruhl Libre" | "Inknut Antiqua" | "Matangi" | "Merienda" | "Phudu" | "Sansita Swashed";
779
- S13: "Albert Sans" | "Aleo" | "Alumni Sans" | "Alumni Sans SC" | "Azeret Mono" | "Barlow" | "Barlow Condensed" | "Barlow Semi Condensed" | "Be Vietnam Pro" | "Bitter" | "Chivo" | "Chivo Mono" | "Elms Sans" | "Epilogue" | "Exo" | "Exo 2" | "Finlandica Headline" | "Finlandica Text" | "Fira Sans" | "Fira Sans Condensed" | "Fira Sans Extra Condensed" | "Gantari" | "Geist" | "Geist Mono" | "Genos" | "Grandstander" | "Grenze" | "Hanken Grotesk" | "Inter Tight" | "Jost" | "Kanit" | "Labrada" | "Libre Franklin" | "Montserrat" | "Montserrat Alternates" | "Montserrat Underline" | "MuseoModerno" | "Overpass" | "Petrona" | "Poppins" | "Prompt" | "Public Sans" | "REM" | "Raleway" | "Roboto Condensed" | "Rokkitt" | "SUSE" | "Taviraj" | "Tomorrow" | "Trirong" | "Urbanist" | "Work Sans";
779
+ S13: "Albert Sans" | "Aleo" | "Alumni Sans" | "Alumni Sans SC" | "Azeret Mono" | "Barlow" | "Barlow Condensed" | "Barlow Semi Condensed" | "Be Vietnam Pro" | "Bitter" | "Chivo" | "Chivo Mono" | "Elms Sans" | "Epilogue" | "Exo" | "Exo 2" | "Finlandica Headline" | "Finlandica Text" | "Fira Sans" | "Fira Sans Condensed" | "Fira Sans Extra Condensed" | "Gantari" | "Geist" | "Geist Mono" | "Genos" | "Grandstander" | "Grenze" | "Hanken Grotesk" | "Inter Tight" | "Jost" | "Kanit" | "Labrada" | "Libre Franklin" | "Montserrat" | "Montserrat Alternates" | "Montserrat Underline" | "MuseoModerno" | "Overpass" | "Petrona" | "Poppins" | "Prompt" | "Public Sans" | "REM" | "Raleway" | "Roboto Condensed" | "Rokkitt" | "SUSE" | "Taviraj" | "Tomorrow" | "Trirong" | "Urbanist" | "Valley Sans" | "Work Sans";
780
780
  S14: "Alegreya" | "Besley" | "Kufam" | "Playfair Display" | "Schibsted Grotesk" | "Vollkorn" | "Wittgenstein";
781
781
  S15: "Alegreya SC";
782
782
  S16: "Alegreya Sans" | "Alegreya Sans SC";
@@ -794,7 +794,7 @@ interface GoogleFontShapeFamilies {
794
794
  S28: "Assistant" | "Changa" | "Dosis" | "Fustat" | "Gemunu Libre" | "Geomini" | "Lateef" | "Manrope" | "Momo Trust Sans" | "Mukta" | "Mukta Mahee" | "Mukta Malar" | "Mukta Vaani" | "National Park" | "Ojuju" | "Oxanium" | "Stick No Bills";
795
795
  S29: "Asta Sans" | "Funnel Display" | "Moderustic" | "Parkinsans";
796
796
  S30: "Athiti" | "Maitree" | "Mitr" | "Mozilla Text" | "Oswald" | "Pridi" | "Stack Sans Headline" | "Stack Sans Notch" | "Stack Sans Text" | "Yaldevi" | "Yanone Kaffeesatz";
797
- S31: "Atkinson Hyperlegible Mono" | "Atkinson Hyperlegible Next" | "Karla" | "Plus Jakarta Sans" | "Spectral" | "Spectral SC";
797
+ S31: "Atkinson Hyperlegible Mono" | "Atkinson Hyperlegible Next" | "Karla" | "Plus Jakarta Sans" | "Scoutie Sans" | "Spectral" | "Spectral SC";
798
798
  S32: "Averia Libre" | "Averia Sans Libre" | "Averia Serif Libre" | "Bellota" | "Bellota Text" | "Comic Neue" | "Inria Sans" | "Inria Serif" | "Sansation";
799
799
  S33: "Bai Jamjuree" | "Cascadia Code" | "Cascadia Mono" | "Fahkwang" | "KoHo" | "Kodchasan" | "Krub" | "Mali" | "Niramit";
800
800
  S34: "Ballet" | "Hedvig Letters Serif" | "Jaro";
@@ -1052,7 +1052,7 @@ type CodepointSource = string | Node | (string | Node)[];
1052
1052
  * used. Mirrors `MARKER_CHARACTERS` in takumi-core, whose coverage test is the
1053
1053
  * source of truth. `list-style-type: "…"` strings are not covered.
1054
1054
  */
1055
- declare const LIST_MARKER_CHARACTERS = "•◦■▪ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
1055
+ declare const LIST_MARKER_CHARACTERS = "•◦■▪▸◂▾ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
1056
1056
  /** Collect every codepoint the content will render. */
1057
1057
  declare function collectCodepoints(source: CodepointSource): Set<number>;
1058
1058
  /**
@@ -0,0 +1 @@
1
+ const e=/url\(\s*(['"]?)(.*?)\1\s*\)/g;async function t(e,t={}){if(t.allowUrl&&!t.allowUrl(e))throw Error(`URL blocked by allowUrl policy: ${e}`);let r=t.fetch??globalThis.fetch,i=t.timeout??3e4,a=i<=0?void 0:AbortSignal.timeout(i),o=[t.signal,t.init?.signal,a].filter(e=>e!==void 0),s=o.length?AbortSignal.any(o):void 0,c={...t.init,signal:s},l=t.allowUrl?await n(e,t.allowUrl,r,c):await r(e,c);if(!l.ok)throw Error(`HTTP ${l.status} ${l.statusText} fetching ${e}`);return l}async function n(e,t,n,r){let i=e;for(let e=0;e<5;e++){let e=await n(i,{...r,redirect:`manual`}),a=e.headers.get(`location`);if(e.status<300||e.status>=400||!a)return e;if(await e.body?.cancel().catch(()=>{}),i=new URL(a,i).toString(),!t(i))throw Error(`URL blocked by allowUrl policy: ${i}`)}throw Error(`Too many redirects fetching ${e}`)}async function r(e,t){let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)throw Error(`Response exceeds ${t} bytes (content-length ${n})`);let r=e.body;if(!r)return e.arrayBuffer();let i=r.getReader(),a=[],o=0;for(;;){let{done:e,value:n}=await i.read();if(e)break;if(o+=n.byteLength,o>t)throw await i.cancel().catch(()=>{}),Error(`Response exceeds ${t} bytes`);a.push(n)}let s=new Uint8Array(o),c=0;for(let e of a)s.set(e,c),c+=e.byteLength;return s.buffer}function i(e){return e.startsWith(`https://`)||e.startsWith(`http://`)}function a(t,n){if(typeof t==`string`)for(let r of t.matchAll(e)){let e=r[2]?.trim();e&&i(e)&&n.add(e)}else if(Array.isArray(t))for(let e of t)a(e,n)}function o(e){let t=new Set,n=e=>{let r=e=>{e&&(a(e.backgroundImage,t),a(e.maskImage,t),a(e.listStyleImage,t))};if(r(e.style),r(e.preset),a(e.tw,t),e.type===`image`){typeof e.src==`string`&&i(e.src)&&t.add(e.src);return}if(e.type===`container`)for(let t of e.children??[])n(t)};return n(e),[...t]}function s(e,n,i){let a=n.maxBytes??33554432,{allowUrl:o}=n,s=i?.get(e);if(s)return s.then(t=>{if(o&&!o(e))throw Error(`URL blocked by allowUrl policy: ${e}`);if(t.byteLength>a)throw Error(`Response exceeds ${a} bytes`);return t});let c=t(e,n).then(e=>r(e,a)).catch(t=>{throw i?.delete(e),t});return i?.set(e,c),c}async function c({node:e,sources:t=[],fetchCache:n,fetch:r,timeout:i,signal:a,maxBytes:c,allowUrl:l,throwOnError:u=!0}){let d=Array.isArray(e)?e:[e],f=new Map;for(let e of t)f.set(e.src,e);let p=[...new Set(d.flatMap(o))].filter(e=>!f.has(e)),m={fetch:r,timeout:i,signal:a,maxBytes:c,allowUrl:l},h=p.map(async e=>({src:e,data:await s(e,m,n)})),g=u?await Promise.all(h):(await Promise.allSettled(h)).filter(e=>e.status===`fulfilled`).map(e=>e.value);return[...f.values(),...g]}const l=new Map;function u(e,t,n,r){let i=new Map(r),a=n.includes(`italic`),o=a?n.includes(`normal`)?[0,1]:[1]:[void 0],s=[...a?[`ital`]:[],...i.keys(),`wght`].sort(),c=o.flatMap(e=>t.map(t=>s.map(n=>n===`ital`?String(e):n===`wght`?t:i.get(n)??``).join(`,`))).sort();return`${e}:${s.join(`,`)}@${c.join(`;`)}`}function d(e){let t=new URL(e.baseUrl??`https://fonts.googleapis.com/css2`);for(let n of e.families){if(typeof n==`string`){t.searchParams.append(`family`,u(n,[`400`],[`normal`],[]));continue}let e=n.weight??400,r=(Array.isArray(e)?[...e].sort((e,t)=>e-t):[e]).map(String),i=n.style??`normal`,a=(Array.isArray(i)?i:[i]).map(String),o=Object.entries(n.axes??{}).filter(([e])=>e!==`ital`&&e!==`wght`).map(([e,t])=>[e,String(t)]);t.searchParams.append(`family`,u(n.name,r,a,o))}return e.display&&t.searchParams.set(`display`,e.display),t.toString()}function f(e,n){return t(e,{...n,init:{headers:{"User-Agent":`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`}}}).then(e=>r(e,n.maxBytes??2097152)).then(e=>new TextDecoder().decode(e))}function p(e,t){let n=t.cache??l,r=n.get(e);if(r)return r;let i=f(e,t);return n.set(e,i),i.catch(()=>n.delete(e)),i}const m=/(?:\/\*\s*([^*]+?)\s*\*\/\s*)?@font-face\s*\{([^}]*)\}/g;function h(e,n,i){let a=`${e.family} ${e.subset}`,o=e.ranges.map(([e,t])=>`${e}-${t}`).join(`,`);return{name:a,subsetOf:e.family,subsetRank:g(e.ranges),key:`${a}:${e.weight??``}:${e.style??``}:${o}:${i??``}`,weight:e.weight,style:e.style,ranges:e.ranges,generic:i,data:()=>t(e.url,n).then(e=>r(e,n.maxBytes??33554432))}}function g(e){return e.length===0?4294967295:Math.min(...e.map(([e])=>e))}function _(e){let t=[];for(let n of e.split(`,`)){let e=n.trim().replace(/^U\+/i,``);if(e){if(e.includes(`-`)){let[n,r]=e.split(`-`);n&&r&&t.push([parseInt(n,16),parseInt(r,16)])}else if(e.includes(`?`))t.push([parseInt(e.replace(/\?/g,`0`),16),parseInt(e.replace(/\?/g,`F`),16)]);else{let n=parseInt(e,16);t.push([n,n])}}}return t}function v(e){let t=[],n=0;for(let r of e.matchAll(m)){let e=r[2];if(!e)continue;let i=e.match(/src:\s*url\(([^)]+)\)/)?.[1]?.replace(/['"]/g,``).trim(),a=e.match(/font-family:\s*['"]?([^'";]+)['"]?/)?.[1]?.trim();if(!i||!a)continue;let o=e.match(/unicode-range:\s*([^;]+)/)?.[1],s=e.match(/font-weight:\s*(\d+)(?:\s+(\d+))?/);t.push({family:a,subset:r[1]?.trim()||`subset-${n}`,url:i,weight:s&&!s[2]?Number(s[1]):void 0,style:e.match(/font-style:\s*([a-z]+)/i)?.[1],ranges:o?_(o):[]}),n+=1}return t}function y(e){let t=new Map;for(let n of e){let e=t.get(n.url)??new Set;e.add(n.weight),t.set(n.url,e)}let n=new Set,r=[];for(let i of e){if(n.has(i.url))continue;n.add(i.url);let e=(t.get(i.url)?.size??0)>1;r.push(e?{...i,weight:void 0}:i)}return r}function b(e){let t=new Set,n=e=>{for(let n of e)t.add(n.codePointAt(0))},r=e=>{typeof e==`string`?n(e):e.type===`text`?n(e.text):e.type===`container`&&e.children?.forEach(r)};return Array.isArray(e)?e.forEach(r):r(e),t}function x(e,t){if(e.length===0)return!0;for(let n of t)for(let[t,r]of e)if(n>=t&&n<=r)return!0;return!1}function S({fonts:e,source:t}){let n=b(t);return e.filter(e=>x(e.ranges??[],n))}function C(e,n={}){return{key:e,data:()=>t(e,n).then(e=>r(e,n.maxBytes??33554432))}}async function w(e){if(Array.isArray(e)&&(e={families:e}),e.families.length===0)return[];let t=await p(d(e),e),n=new Map(e.families.map((e,t)=>[typeof e==`string`?e:e.name,t])),r=new Map(e.families.flatMap(e=>typeof e==`string`||!e.generic?[]:[[e.name,e.generic]]));return y(v(t)).sort((e,t)=>(n.get(e.family)??0)-(n.get(t.family)??0)).map(t=>h(t,e,r.get(t.family)))}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return 33554432}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return`•◦■▪▸◂▾ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`}});
@@ -1,4 +1,4 @@
1
- import { r as Node } from "./types-Bfi8SERZ.cjs";
1
+ import { c as Node } from "./types-BWYDTgEO.cjs";
2
2
  //#region src/google-fonts-catalog.d.ts
3
3
  interface GoogleFontShapes {
4
4
  S0: {
@@ -764,10 +764,10 @@ interface GoogleFontShapes {
764
764
  }
765
765
  interface GoogleFontShapeFamilies {
766
766
  S0: "ABeeZee" | "Alumni Sans Collegiate One" | "Alumni Sans Inline One" | "Alumni Sans Pinstripe" | "Arapey" | "Bevan" | "Castoro" | "Changa One" | "Chau Philomene One" | "Crete Round" | "DM Serif Display" | "DM Serif Text" | "Fanwood Text" | "Fondamento" | "Fragment Mono" | "Fruktur" | "Geo" | "IM Fell DW Pica" | "IM Fell Double Pica" | "IM Fell English" | "IM Fell French Canon" | "IM Fell Great Primer" | "Instrument Serif" | "Linden Hill" | "Mate" | "Oregano" | "PT Serif Caption" | "Playwrite AT Guides" | "Playwrite GB J Guides" | "Playwrite GB S Guides" | "Poly" | "Radley" | "Ropa Sans" | "Rosarivo" | "Sanchez" | "Sedan" | "Sorts Mill Goudy" | "Tiro Bangla" | "Tiro Devanagari Hindi" | "Tiro Devanagari Marathi" | "Tiro Devanagari Sanskrit" | "Tiro Gurmukhi" | "Tiro Kannada" | "Tiro Tamil" | "Tiro Telugu" | "Xanh Mono" | "Zen Loop";
767
- S1: "ADLaM Display" | "Abel" | "Aboreto" | "Abril Fatface" | "Abyssinica SIL" | "Aclonica" | "Acme" | "Actor" | "Adamina" | "Agbalumo" | "Aguafina Script" | "Akaya Kanadaka" | "Akaya Telivigala" | "Akronim" | "Aladin" | "Alata" | "Alatsi" | "Aldrich" | "Alex Brush" | "Alfa Slab One" | "Alice" | "Alien Block" | "Alike" | "Alike Angular" | "Alkalami" | "Allerta" | "Allerta Stencil" | "Allison" | "Allkin" | "Allura" | "Almendra Display" | "Almendra SC" | "Amarante" | "Amethysta" | "Amiri Quran" | "Angkor" | "Annie Use Your Telescope" | "Anta" | "Antic" | "Antic Didone" | "Antic Slab" | "Anton" | "Anton SC" | "Aoboshi One" | "Arbutus" | "Arbutus Slab" | "Architects Daughter" | "Archivo Black" | "Are You Serious" | "Arizonia" | "Armata" | "Artifika" | "Asar" | "Asimovian" | "Asset" | "Atomic Age" | "Aubrey" | "Audiowide" | "Autour One" | "Average" | "Average Sans" | "Averia Gruesa Libre" | "BBH Bartle" | "BBH Bogle" | "BBH Hegarty" | "Babylonica" | "Bacasime Antique" | "Bad Script" | "Badeen Display" | "Bagel Fat One" | "Bahiana" | "Bahianita" | "Bakbak One" | "Balthazar" | "Bangers" | "Barriecito" | "Barrio" | "Basic" | "Baumans" | "Bayon" | "Beau Rivage" | "Bebas Neue" | "Belgrano" | "Bellefair" | "Belleza" | "Benne" | "Bentham" | "Berkshire Swash" | "Betania Patmos" | "Betania Patmos GDL" | "Betania Patmos In" | "Betania Patmos In GDL" | "Beth Ellen" | "BhuTuka Expanded One" | "Bigelow Rules" | "Bigshot One" | "Bilbo" | "Bilbo Swash Caps" | "Birthstone" | "Black And White Picture" | "Black Han Sans" | "Black Ops One" | "Blaka" | "Blaka Hollow" | "Blaka Ink" | "Bokor" | "Boldonse" | "Bonbon" | "Bonheur Royale" | "Boogaloo" | "Borel" | "Bowlby One" | "Bowlby One SC" | "Bpmf Huninn" | "Bpmf Iansui" | "Bpmf Zihi Kai Std" | "Braah One" | "Bree Serif" | "Bruno Ace" | "Bruno Ace SC" | "Bubblegum Sans" | "Bubbler One" | "Bungee" | "Bungee Hairline" | "Bungee Inline" | "Bungee Outline" | "Bungee Shade" | "Bungee Spice" | "Bungee Tint" | "Butcherman" | "Butterfly Kids" | "Bytesized" | "Cactus Classical Serif" | "Caesar Dressing" | "Cagliostro" | "Cal Sans" | "Calistoga" | "Calligraffitti" | "Cambo" | "Candal" | "Cantata One" | "Cantora One" | "Caprasimo" | "Capriola" | "Caramel" | "Carattere" | "Carme" | "Carrois Gothic" | "Carrois Gothic SC" | "Carter One" | "Castoro Titling" | "Caveat Brush" | "Cedarville Cursive" | "Ceviche One" | "Chango" | "Chela One" | "Chelsea Market" | "Chenla" | "Cherish" | "Cherry Bomb One" | "Cherry Cream Soda" | "Chewy" | "Chicle" | "Chilanka" | "Chocolate Classical Sans" | "Chokokutai" | "Chonburi" | "Clicker Script" | "Coiny" | "Combo" | "Comforter" | "Comforter Brush" | "Coming Soon" | "Concert One" | "Condiment" | "Contrail One" | "Convergence" | "Cookie" | "Copse" | "Coral Pixels" | "Courgette" | "Covered By Your Grace" | "Crafty Girls" | "Creepster" | "Croissant One" | "Crushed" | "Cute Font" | "Cutive" | "Cutive Mono" | "Damion" | "Dangrek" | "Darumadrop One" | "Dawning of a New Day" | "Days One" | "Dekko" | "Dela Gothic One" | "Delicious Handrawn" | "Delius" | "Delius Swash Caps" | "Della Respira" | "Denk One" | "Devonshire" | "Dhurjati" | "Didact Gothic" | "Diphylleia" | "Diplomata" | "Diplomata SC" | "Do Hyeon" | "Dokdo" | "Donegal One" | "Doppio One" | "Dorsa" | "DotGothic16" | "Dr Sugiyama" | "Duru Sans" | "Dynalight" | "Eagle Lake" | "East Sea Dokdo" | "Eater" | "Electrolize" | "Emblema One" | "Emilys Candy" | "Engagement" | "Englebert" | "Ephesis" | "Erica One" | "Esteban" | "Estonia" | "Euphoria Script" | "Ewert" | "Exile" | "Explora" | "Faculty Glyphic" | "Farsan" | "Fascinate" | "Fascinate Inline" | "Faster One" | "Fasthand" | "Fauna One" | "Federant" | "Federo" | "Felipa" | "Fenix" | "Festive" | "Finger Paint" | "Fjalla One" | "Fjord One" | "Flavors" | "Fleur De Leah" | "Flow Block" | "Flow Circular" | "Flow Rounded" | "Fontdiner Swanky" | "Forum" | "Francois One" | "Freckle Face" | "Fredericka the Great" | "Freehand" | "Freeman" | "Fresca" | "Frijole" | "Fugaz One" | "Fuggles" | "GFS Didot" | "Ga Maamli" | "Gabriela" | "Gafata" | "Gajraj One" | "Galada" | "Galdeano" | "Galindo" | "Gamja Flower" | "Gasoek One" | "Geostar" | "Geostar Fill" | "Germania One" | "Gideon Roman" | "Gidole" | "Gidugu" | "Gilda Display" | "Girassol" | "Give You Glory" | "Glass Antiqua" | "Gloock" | "Gloria Hallelujah" | "Goblin One" | "Gochi Hand" | "Gotu" | "Goudy Bookletter 1911" | "Gowun Dodum" | "Graduate" | "Grand Hotel" | "Grandiflora One" | "Grape Nuts" | "Gravitas One" | "Great Vibes" | "Grechen Fuemen" | "Grey Qo" | "Griffy" | "Gruppo" | "Gugi" | "Gulzar" | "Gurajada" | "Gveret Levin" | "Habibi" | "Hachi Maru Pop" | "Hammersmith One" | "Hanalei" | "Hanalei Fill" | "Handlee" | "Happy Monkey" | "Headland One" | "Hedvig Letters Sans" | "Henny Penny" | "Herr Von Muellerhoff" | "Hi Melody" | "Hibur Mono" | "Hina Mincho" | "Holtwood One SC" | "Homemade Apple" | "Homenaje" | "Hubballi" | "Huninn" | "Hurricane" | "IM Fell DW Pica SC" | "IM Fell Double Pica SC" | "IM Fell English SC" | "IM Fell French Canon SC" | "IM Fell Great Primer SC" | "Iansui" | "Iceberg" | "Iceland" | "Imperial Script" | "Imprima" | "Inder" | "Indie Flower" | "Ingrid Darling" | "Inspiration" | "Irish Grover" | "Island Moments" | "Italiana" | "Italianno" | "Itim" | "Jacquard 12" | "Jacquard 12 Charted" | "Jacquard 24" | "Jacquard 24 Charted" | "Jacquarda Bastarda 9" | "Jacquarda Bastarda 9 Charted" | "Jacques Francois" | "Jacques Francois Shadow" | "Jaini" | "Jaini Purva" | "Jersey 10" | "Jersey 10 Charted" | "Jersey 15" | "Jersey 15 Charted" | "Jersey 20" | "Jersey 20 Charted" | "Jersey 25" | "Jersey 25 Charted" | "Jim Nightshade" | "Joan" | "Jockey One" | "Jolly Lodger" | "Jomhuria" | "Jomolhari" | "Joti One" | "Jua" | "Julee" | "Julius Sans One" | "Junge" | "Just Another Hand" | "Just Me Again Down Here" | "Katibeh" | "Kaushan Script" | "Kavivanar" | "Kavoon" | "Kdam Thmor Pro" | "Keania One" | "Kelly Slab" | "Kenia" | "Khmer" | "Kings" | "Kirang Haerang" | "Kite One" | "Knewave" | "Kolker Brush" | "Konkhmer Sleokchher" | "Kosugi" | "Kosugi Maru" | "Kotta One" | "Koulen" | "Kranky" | "Kristi" | "Krona One" | "Kumar One" | "Kumar One Outline" | "Kurale" | "LXGW Marker Gothic" | "La Belle Aurore" | "Lacquer" | "Lakki Reddy" | "Lalezar" | "Lancelot" | "Langar" | "Lavishly Yours" | "League Script" | "Leckerli One" | "Ledger" | "Lemon" | "Libertinus Keyboard" | "Libertinus Math" | "Libertinus Mono" | "Libertinus Serif Display" | "Libre Barcode 128" | "Libre Barcode 128 Text" | "Libre Barcode 39" | "Libre Barcode 39 Extended" | "Libre Barcode 39 Extended Text" | "Libre Barcode 39 Text" | "Libre Barcode EAN13 Text" | "Libre Caslon Display" | "Licorice" | "Lilita One" | "Lily Script One" | "Limelight" | "Liter" | "Liu Jian Mao Cao" | "Lobster" | "Londrina Outline" | "Londrina Shadow" | "Londrina Sketch" | "Long Cang" | "Love Light" | "Love Ya Like A Sister" | "Loved by the King" | "Lovers Quarrel" | "Luckiest Guy" | "Lugrasimo" | "Lumanosimo" | "Lustria" | "Luxurious Roman" | "Luxurious Script" | "Ma Shan Zheng" | "Macondo" | "Macondo Swash Caps" | "Madimi One" | "Maiden Orange" | "Major Mono Display" | "Mako" | "Mallanna" | "Maname" | "Mandali" | "Mansalva" | "Manufacturing Consent" | "Marcellus" | "Marcellus SC" | "Marck Script" | "Margarine" | "Marko One" | "Marmelad" | "Mate SC" | "Matemasie" | "McLaren" | "Mea Culpa" | "Meddon" | "MedievalSharp" | "Medula One" | "Meera Inimai" | "Megrim" | "Meie Script" | "Meow Script" | "Metal" | "Metal Mania" | "Metamorphous" | "Metrophobic" | "Michroma" | "Micro 5" | "Micro 5 Charted" | "Milonga" | "Miltonian" | "Miltonian Tattoo" | "Mingzat" | "Miniver" | "Miss Fajardose" | "Mochiy Pop One" | "Mochiy Pop P One" | "Modak" | "Modern Antiqua" | "Mogra" | "Moirai One" | "Molengo" | "Momo Signature" | "Momo Trust Display" | "Monofett" | "Monomakh" | "Monomaniac One" | "Monoton" | "Monsieur La Doulaise" | "Montaga" | "MonteCarlo" | "Montenegrin Gothic One" | "Montez" | "Moo Lah Lah" | "Mooli" | "Moon Dance" | "Moul" | "Moulpali" | "Mouse Memoirs" | "Mr Bedfort" | "Mr Dafoe" | "Mr De Haviland" | "Mrs Saint Delafield" | "Mrs Sheppards" | "Ms Madi" | "My Soul" | "Mynerve" | "Mystery Quest" | "NTR" | "Nanum Brush Script" | "Nanum Pen Script" | "Neonderthaw" | "Nerko One" | "Neucha" | "New Amsterdam" | "New Rocker" | "New Tegomin" | "Niconne" | "Nixie One" | "Norican" | "Nosifer" | "Notable" | "Nothing You Could Do" | "Noto Color Emoji" | "Noto Music" | "Noto Sans Anatolian Hieroglyphs" | "Noto Sans Avestan" | "Noto Sans Batak" | "Noto Sans Bhaiksuki" | "Noto Sans Brahmi" | "Noto Sans Buginese" | "Noto Sans Buhid" | "Noto Sans Carian" | "Noto Sans Caucasian Albanian" | "Noto Sans Chakma" | "Noto Sans Chorasmian" | "Noto Sans Coptic" | "Noto Sans Cuneiform" | "Noto Sans Cypriot" | "Noto Sans Cypro Minoan" | "Noto Sans Deseret" | "Noto Sans Egyptian Hieroglyphs" | "Noto Sans Elbasan" | "Noto Sans Elymaic" | "Noto Sans Glagolitic" | "Noto Sans Gothic" | "Noto Sans Grantha" | "Noto Sans Hanunoo" | "Noto Sans Hatran" | "Noto Sans Imperial Aramaic" | "Noto Sans Indic Siyaq Numbers" | "Noto Sans Inscriptional Pahlavi" | "Noto Sans Inscriptional Parthian" | "Noto Sans Kaithi" | "Noto Sans Kharoshthi" | "Noto Sans Khojki" | "Noto Sans Khudawadi" | "Noto Sans Lepcha" | "Noto Sans Limbu" | "Noto Sans Linear A" | "Noto Sans Linear B" | "Noto Sans Lycian" | "Noto Sans Lydian" | "Noto Sans Mahajani" | "Noto Sans Mandaic" | "Noto Sans Manichaean" | "Noto Sans Marchen" | "Noto Sans Masaram Gondi" | "Noto Sans Math" | "Noto Sans Mayan Numerals" | "Noto Sans Mende Kikakui" | "Noto Sans Meroitic" | "Noto Sans Miao" | "Noto Sans Modi" | "Noto Sans Mongolian" | "Noto Sans Mro" | "Noto Sans Multani" | "Noto Sans NKo" | "Noto Sans Nabataean" | "Noto Sans Nandinagari" | "Noto Sans Newa" | "Noto Sans Nushu" | "Noto Sans Ogham" | "Noto Sans Old Hungarian" | "Noto Sans Old Italic" | "Noto Sans Old North Arabian" | "Noto Sans Old Permic" | "Noto Sans Old Persian" | "Noto Sans Old Sogdian" | "Noto Sans Old South Arabian" | "Noto Sans Old Turkic" | "Noto Sans Osage" | "Noto Sans Osmanya" | "Noto Sans Pahawh Hmong" | "Noto Sans Palmyrene" | "Noto Sans Pau Cin Hau" | "Noto Sans PhagsPa" | "Noto Sans Phoenician" | "Noto Sans Psalter Pahlavi" | "Noto Sans Rejang" | "Noto Sans Runic" | "Noto Sans Samaritan" | "Noto Sans Saurashtra" | "Noto Sans Sharada" | "Noto Sans Shavian" | "Noto Sans Siddham" | "Noto Sans SignWriting" | "Noto Sans Sogdian" | "Noto Sans Soyombo" | "Noto Sans Sunuwar" | "Noto Sans Syloti Nagri" | "Noto Sans Symbols 2" | "Noto Sans Tagalog" | "Noto Sans Tagbanwa" | "Noto Sans Tai Le" | "Noto Sans Tai Viet" | "Noto Sans Takri" | "Noto Sans Tamil Supplement" | "Noto Sans Tifinagh" | "Noto Sans Tirhuta" | "Noto Sans Ugaritic" | "Noto Sans Vai" | "Noto Sans Wancho" | "Noto Sans Warang Citi" | "Noto Sans Yi" | "Noto Sans Zanabazar Square" | "Noto Serif Ahom" | "Noto Serif Balinese" | "Noto Serif Dives Akuru" | "Noto Serif Dogra" | "Noto Serif Grantha" | "Noto Serif Khitan Small Script" | "Noto Serif Makasar" | "Noto Serif Old Uyghur" | "Noto Serif Ottoman Siyaq" | "Noto Serif Tangut" | "Noto Serif Todhri" | "Noto Znamenny Musical Notation" | "Nova Cut" | "Nova Flat" | "Nova Mono" | "Nova Oval" | "Nova Round" | "Nova Script" | "Nova Slim" | "Nova Square" | "Numans" | "Nuosu SIL" | "Odibee Sans" | "Odor Mean Chey" | "Offside" | "Oi" | "Oldenburg" | "Ole" | "Oooh Baby" | "Oranienbaum" | "Orbit" | "Orelega One" | "Orienta" | "Original Surfer" | "Over the Rainbow" | "Overlock SC" | "Ovo" | "Oxygen Mono" | "PT Mono" | "Pacifico" | "Padyakke Expanded One" | "Palette Mosaic" | "Pangolin" | "Paprika" | "Parisienne" | "Passero One" | "Passions Conflict" | "Pathway Gothic One" | "Patrick Hand" | "Patrick Hand SC" | "Pattaya" | "Patua One" | "Pavanam" | "Paytone One" | "Peddana" | "Peralta" | "Permanent Marker" | "Petemoss" | "Petit Formal Script" | "Piedra" | "Pinyon Script" | "Pirata One" | "Plaster" | "Playball" | "Playwrite AR Guides" | "Playwrite AU NSW Guides" | "Playwrite AU QLD Guides" | "Playwrite AU SA Guides" | "Playwrite AU TAS Guides" | "Playwrite AU VIC Guides" | "Playwrite BE VLG Guides" | "Playwrite BE WAL Guides" | "Playwrite BR Guides" | "Playwrite CA Guides" | "Playwrite CL Guides" | "Playwrite CO Guides" | "Playwrite CU Guides" | "Playwrite CZ Guides" | "Playwrite DE Grund Guides" | "Playwrite DE LA Guides" | "Playwrite DE SAS Guides" | "Playwrite DE VA Guides" | "Playwrite DK Loopet Guides" | "Playwrite DK Uloopet Guides" | "Playwrite ES Deco Guides" | "Playwrite ES Guides" | "Playwrite FR Moderne Guides" | "Playwrite FR Trad Guides" | "Playwrite HR Guides" | "Playwrite HR Lijeva Guides" | "Playwrite HU Guides" | "Playwrite ID Guides" | "Playwrite IE Guides" | "Playwrite IN Guides" | "Playwrite IS Guides" | "Playwrite IT Moderna Guides" | "Playwrite IT Trad Guides" | "Playwrite MX Guides" | "Playwrite NG Modern Guides" | "Playwrite NL Guides" | "Playwrite NO Guides" | "Playwrite NZ Basic Guides" | "Playwrite NZ Guides" | "Playwrite PE Guides" | "Playwrite PL Guides" | "Playwrite PT Guides" | "Playwrite RO Guides" | "Playwrite SK Guides" | "Playwrite TZ Guides" | "Playwrite US Modern Guides" | "Playwrite US Trad Guides" | "Playwrite VN Guides" | "Playwrite ZA Guides" | "Pochaevsk" | "Poetsen One" | "Poiret One" | "Poller One" | "Pompiere" | "Ponnala" | "Ponomar" | "Poor Story" | "Port Lligat Sans" | "Port Lligat Slab" | "Potta One" | "Praise" | "Prata" | "Preahvihear" | "Press Start 2P" | "Princess Sofia" | "Prociono" | "Prosto One" | "Protest Guerrilla" | "Protest Revolution" | "Protest Riot" | "Protest Strike" | "Puppies Play" | "Purple Purse" | "Qahiri" | "Quando" | "Questrial" | "Quintessential" | "Qwigley" | "Racing Sans One" | "Rakkas" | "Raleway Dots" | "Ramabhadra" | "Ramaraja" | "Rammetto One" | "Rampart One" | "Ramsina" | "Ranchers" | "Rancho" | "Rationale" | "Ravi Prakash" | "Redacted" | "Redressed" | "Reem Kufi Ink" | "Reenie Beanie" | "Reggae One" | "Revalia" | "Rhodium Libre" | "Ribeye" | "Ribeye Marrow" | "Righteous" | "Risque" | "Road Rage" | "Rochester" | "Rock 3D" | "Rock Salt" | "RocknRoll One" | "Romanesco" | "Rouge Script" | "Rozha One" | "Rubik 80s Fade" | "Rubik Beastly" | "Rubik Broken Fax" | "Rubik Bubbles" | "Rubik Burned" | "Rubik Dirt" | "Rubik Distressed" | "Rubik Doodle Shadow" | "Rubik Doodle Triangles" | "Rubik Gemstones" | "Rubik Glitch" | "Rubik Glitch Pop" | "Rubik Iso" | "Rubik Lines" | "Rubik Maps" | "Rubik Marker Hatch" | "Rubik Maze" | "Rubik Microbe" | "Rubik Mono One" | "Rubik Moonrocks" | "Rubik Pixels" | "Rubik Puddles" | "Rubik Scribble" | "Rubik Spray Paint" | "Rubik Storm" | "Rubik Vinyl" | "Rubik Wet Paint" | "Ruge Boogie" | "Ruluko" | "Rum Raisin" | "Ruslan Display" | "Russo One" | "Ruthie" | "Rye" | "STIX Two Math" | "Sacramento" | "Sail" | "Salsa" | "Sancreek" | "Sankofa Display" | "Sarina" | "Sassy Frass" | "Satisfy" | "Sawarabi Gothic" | "Sawarabi Mincho" | "Schoolbell" | "Scope One" | "Seaweed Script" | "Secular One" | "Sedan SC" | "Sedgwick Ave" | "Sedgwick Ave Display" | "Sekuya" | "Send Flowers" | "Sevillana" | "Seymour One" | "Shadows Into Light" | "Shadows Into Light Two" | "Shafarik" | "Shalimar" | "Shanti" | "Share Tech" | "Share Tech Mono" | "Shippori Antique" | "Shippori Antique B1" | "Shizuru" | "Shojumaru" | "Short Stack" | "Shrikhand" | "Siemreap" | "Sigmar" | "Sigmar One" | "Single Day" | "Sirin Stencil" | "Sirivennela" | "Six Caps" | "Slabo 13px" | "Slabo 27px" | "Slackey" | "Slackside One" | "Smokum" | "Smooch" | "Smythe" | "Snippet" | "Snowburst One" | "Sofadi One" | "Sofia" | "Solitreo" | "Song Myung" | "Sonsie One" | "Special Elite" | "Special Gothic Condensed One" | "Special Gothic Expanded One" | "Spicy Rice" | "Spinnaker" | "Spirax" | "Splash" | "Squada One" | "Square Peg" | "Sree Krushnadevaraya" | "Sriracha" | "Staatliches" | "Stalemate" | "Stalinist One" | "Stick" | "Stint Ultra Condensed" | "Stint Ultra Expanded" | "Story Script" | "Strait" | "Style Script" | "Stylish" | "Sue Ellen Francisco" | "Suez One" | "Sunshiney" | "Supermercado One" | "Suranna" | "Suravaram" | "Swanky and Moo Moo" | "Syne Mono" | "Syne Tactile" | "Tac One" | "Tagesschrift" | "Tapestry" | "Taprom" | "Tauri" | "Telex" | "Tenali Ramakrishna" | "Tenor Sans" | "Text Me One" | "The Girl Next Door" | "Timmana" | "Tiny5" | "Titan One" | "Trade Winds" | "Train One" | "Triodion" | "Trocchi" | "Trykker" | "Tulpen One" | "Twinkle Star" | "Ubuntu Condensed" | "Uchen" | "Ultra" | "Uncial Antiqua" | "Underdog" | "Unica One" | "UnifrakturMaguntia" | "Unlock" | "UoqMunThenKhung" | "Updock" | "VT323" | "Vampiro One" | "Varela" | "Varela Round" | "Vast Shadow" | "Viaoda Libre" | "Vibes" | "Vibur" | "Vidaloka" | "Viga" | "Vina Sans" | "Voces" | "Voltaire" | "Vujahday Script" | "WDXL Lubrifont JP N" | "WDXL Lubrifont SC" | "WDXL Lubrifont TC" | "Waiting for the Sunrise" | "Wallpoet" | "Walter Turncoat" | "Warnes" | "Water Brush" | "Waterfall" | "Wellfleet" | "Wendy One" | "Whisper" | "Wire One" | "Yarndings 12" | "Yarndings 12 Charted" | "Yarndings 20" | "Yarndings 20 Charted" | "Yatra One" | "Yellowtail" | "Yeon Sung" | "Yeseva One" | "Yesteryear" | "Yomogi" | "Young Serif" | "Yuji Boku" | "Yuji Hentaigana Akari" | "Yuji Hentaigana Akebono" | "Yuji Mai" | "Yuji Syuku" | "Yusei Magic" | "Yuyu" | "Yuyu Short" | "ZCOOL KuaiLe" | "ZCOOL QingKe HuangYou" | "ZCOOL XiaoWei" | "Zen Antique" | "Zen Antique Soft" | "Zen Dots" | "Zen Kurenaido" | "Zen Tokyo Zoo" | "Zeyada" | "Zhi Mang Xing";
767
+ S1: "ADLaM Display" | "Abel" | "Aboreto" | "Abril Fatface" | "Abyssinica SIL" | "Aclonica" | "Acme" | "Actor" | "Adamina" | "Agbalumo" | "Aguafina Script" | "Akaya Kanadaka" | "Akaya Telivigala" | "Akronim" | "Aladin" | "Alata" | "Alatsi" | "Aldrich" | "Alex Brush" | "Alfa Slab One" | "Alice" | "Alien Block" | "Alike" | "Alike Angular" | "Alkalami" | "Allerta" | "Allerta Stencil" | "Allison" | "Allkin" | "Allura" | "Almendra Display" | "Almendra SC" | "Amarante" | "Amethysta" | "Amiri Quran" | "Angkor" | "Annie Use Your Telescope" | "Anta" | "Antic" | "Antic Didone" | "Antic Slab" | "Anton" | "Anton SC" | "Aoboshi One" | "Arbutus" | "Arbutus Slab" | "Architects Daughter" | "Archivo Black" | "Are You Serious" | "Arizonia" | "Armata" | "Artifika" | "Asar" | "Asimovian" | "Asset" | "Atomic Age" | "Aubrey" | "Audiowide" | "Autour One" | "Average" | "Average Sans" | "Averia Gruesa Libre" | "BBH Bartle" | "BBH Bogle" | "BBH Hegarty" | "Babylonica" | "Bacasime Antique" | "Bad Script" | "Badeen Display" | "Bagel Fat One" | "Bahiana" | "Bahianita" | "Bakbak One" | "Balthazar" | "Bangers" | "Barriecito" | "Barrio" | "Basic" | "Baumans" | "Bayon" | "Beau Rivage" | "Bebas Neue" | "Belgrano" | "Bellefair" | "Belleza" | "Benne" | "Bentham" | "Berkshire Swash" | "Betania Patmos" | "Betania Patmos GDL" | "Betania Patmos In" | "Betania Patmos In GDL" | "Beth Ellen" | "BhuTuka Expanded One" | "Bigelow Rules" | "Bigshot One" | "Bilbo" | "Bilbo Swash Caps" | "Birthstone" | "Black And White Picture" | "Black Han Sans" | "Black Ops One" | "Blaka" | "Blaka Hollow" | "Blaka Ink" | "Bokor" | "Boldonse" | "Bonbon" | "Bonheur Royale" | "Boogaloo" | "Borel" | "Bowlby One" | "Bowlby One SC" | "Bpmf Huninn" | "Bpmf Iansui" | "Bpmf Zihi Kai Std" | "Braah One" | "Bree Serif" | "Bruno Ace" | "Bruno Ace SC" | "Bubblegum Sans" | "Bubbler One" | "Bungee" | "Bungee Hairline" | "Bungee Inline" | "Bungee Outline" | "Bungee Shade" | "Bungee Spice" | "Bungee Tint" | "Butcherman" | "Butterfly Kids" | "Bytesized" | "Caacupe One" | "Cactus Classical Serif" | "Caesar Dressing" | "Cagliostro" | "Cal Sans" | "Calistoga" | "Calligraffitti" | "Cambo" | "Candal" | "Cantata One" | "Cantora One" | "Caprasimo" | "Capriola" | "Caramel" | "Carattere" | "Carme" | "Carrois Gothic" | "Carrois Gothic SC" | "Carter One" | "Castoro Titling" | "Caveat Brush" | "Cedarville Cursive" | "Ceviche One" | "Chango" | "Chela One" | "Chelsea Market" | "Chenla" | "Cherish" | "Cherry Bomb One" | "Cherry Cream Soda" | "Chewy" | "Chicle" | "Chilanka" | "Chocolate Classical Sans" | "Chokokutai" | "Chonburi" | "Clicker Script" | "Coiny" | "Combo" | "Comforter" | "Comforter Brush" | "Coming Soon" | "Concert One" | "Condiment" | "Contrail One" | "Convergence" | "Cookie" | "Copse" | "Coral Pixels" | "Courgette" | "Covered By Your Grace" | "Crafty Girls" | "Creepster" | "Croissant One" | "Crushed" | "Cute Font" | "Cutive" | "Cutive Mono" | "Damion" | "Dangrek" | "Darumadrop One" | "Dawning of a New Day" | "Days One" | "Dekko" | "Dela Gothic One" | "Delicious Handrawn" | "Delius" | "Delius Swash Caps" | "Della Respira" | "Denk One" | "Devonshire" | "Dhurjati" | "Didact Gothic" | "Diphylleia" | "Diplomata" | "Diplomata SC" | "Do Hyeon" | "Dokdo" | "Donegal One" | "Doppio One" | "Dorsa" | "DotGothic16" | "Dr Sugiyama" | "Duru Sans" | "Dynalight" | "Eagle Lake" | "East Sea Dokdo" | "Eater" | "Electrolize" | "Emblema One" | "Emilys Candy" | "Engagement" | "Englebert" | "Ephesis" | "Erica One" | "Esteban" | "Estonia" | "Euphoria Script" | "Ewert" | "Exile" | "Explora" | "Faculty Glyphic" | "Farsan" | "Fascinate" | "Fascinate Inline" | "Faster One" | "Fasthand" | "Fauna One" | "Federant" | "Federo" | "Felipa" | "Fenix" | "Festive" | "Finger Paint" | "Fjalla One" | "Fjord One" | "Flavors" | "Fleur De Leah" | "Flow Block" | "Flow Circular" | "Flow Rounded" | "Fontdiner Swanky" | "Forum" | "Francois One" | "Freckle Face" | "Fredericka the Great" | "Freehand" | "Freeman" | "Fresca" | "Frijole" | "Fugaz One" | "Fuggles" | "GFS Didot" | "Ga Maamli" | "Gabriela" | "Gafata" | "Gajraj One" | "Galada" | "Galdeano" | "Galindo" | "Gamja Flower" | "Gasoek One" | "Geostar" | "Geostar Fill" | "Germania One" | "Gideon Roman" | "Gidole" | "Gidugu" | "Gilda Display" | "Girassol" | "Give You Glory" | "Glass Antiqua" | "Gloock" | "Gloria Hallelujah" | "Goblin One" | "Gochi Hand" | "Gotu" | "Goudy Bookletter 1911" | "Gowun Dodum" | "Graduate" | "Grand Hotel" | "Grandiflora One" | "Grape Nuts" | "Gravitas One" | "Great Vibes" | "Grechen Fuemen" | "Grey Qo" | "Griffy" | "Gruppo" | "Gugi" | "Gulzar" | "Gurajada" | "Gveret Levin" | "Habibi" | "Hachi Maru Pop" | "Hammersmith One" | "Hanalei" | "Hanalei Fill" | "Handlee" | "Happy Monkey" | "Headland One" | "Hedvig Letters Sans" | "Henny Penny" | "Herr Von Muellerhoff" | "Hi Melody" | "Hibur Mono" | "Hina Mincho" | "Holtwood One SC" | "Homemade Apple" | "Homenaje" | "Hubballi" | "Huninn" | "Hurricane" | "IM Fell DW Pica SC" | "IM Fell Double Pica SC" | "IM Fell English SC" | "IM Fell French Canon SC" | "IM Fell Great Primer SC" | "Iansui" | "Iceberg" | "Iceland" | "Imperial Script" | "Imprima" | "Inder" | "Indie Flower" | "Ingrid Darling" | "Inspiration" | "Irish Grover" | "Island Moments" | "Italiana" | "Italianno" | "Itim" | "Jacquard 12" | "Jacquard 12 Charted" | "Jacquard 24" | "Jacquard 24 Charted" | "Jacquarda Bastarda 9" | "Jacquarda Bastarda 9 Charted" | "Jacques Francois" | "Jacques Francois Shadow" | "Jaini" | "Jaini Purva" | "Jersey 10" | "Jersey 10 Charted" | "Jersey 15" | "Jersey 15 Charted" | "Jersey 20" | "Jersey 20 Charted" | "Jersey 25" | "Jersey 25 Charted" | "Jim Nightshade" | "Joan" | "Jockey One" | "Jolly Lodger" | "Jomhuria" | "Jomolhari" | "Joti One" | "Jua" | "Julee" | "Julius Sans One" | "Junge" | "Just Another Hand" | "Just Me Again Down Here" | "Katibeh" | "Kaushan Script" | "Kavivanar" | "Kavoon" | "Kdam Thmor Pro" | "Keania One" | "Kelly Slab" | "Kenia" | "Khmer" | "Kings" | "Kirang Haerang" | "Kite One" | "Knewave" | "Kolker Brush" | "Konkhmer Sleokchher" | "Kosugi" | "Kosugi Maru" | "Kotta One" | "Koulen" | "Kranky" | "Kristi" | "Krona One" | "Kumar One" | "Kumar One Outline" | "Kurale" | "LXGW Marker Gothic" | "La Belle Aurore" | "Lacquer" | "Lakki Reddy" | "Lalezar" | "Lancelot" | "Langar" | "Lavishly Yours" | "League Script" | "Leckerli One" | "Ledger" | "Lemon" | "Libertinus Keyboard" | "Libertinus Math" | "Libertinus Mono" | "Libertinus Serif Display" | "Libre Barcode 128" | "Libre Barcode 128 Text" | "Libre Barcode 39" | "Libre Barcode 39 Extended" | "Libre Barcode 39 Extended Text" | "Libre Barcode 39 Text" | "Libre Barcode EAN13 Text" | "Libre Caslon Display" | "Licorice" | "Lilita One" | "Lily Script One" | "Limelight" | "Liter" | "Liu Jian Mao Cao" | "Lobster" | "Londrina Outline" | "Londrina Shadow" | "Londrina Sketch" | "Long Cang" | "Love Light" | "Love Ya Like A Sister" | "Loved by the King" | "Lovers Quarrel" | "Luckiest Guy" | "Lugrasimo" | "Lumanosimo" | "Lustria" | "Luxurious Roman" | "Luxurious Script" | "Ma Shan Zheng" | "Macondo" | "Macondo Swash Caps" | "Madimi One" | "Maiden Orange" | "Major Mono Display" | "Mako" | "Mallanna" | "Maname" | "Mandali" | "Mansalva" | "Manufacturing Consent" | "Marcellus" | "Marcellus SC" | "Marck Script" | "Margarine" | "Marko One" | "Marmelad" | "Mate SC" | "Matemasie" | "McLaren" | "Mea Culpa" | "Meddon" | "MedievalSharp" | "Medula One" | "Meera Inimai" | "Megrim" | "Meie Script" | "Meow Script" | "Metal" | "Metal Mania" | "Metamorphous" | "Metrophobic" | "Michroma" | "Micro 5" | "Micro 5 Charted" | "Milonga" | "Miltonian" | "Miltonian Tattoo" | "Mingzat" | "Miniver" | "Miss Fajardose" | "Mochiy Pop One" | "Mochiy Pop P One" | "Modak" | "Modern Antiqua" | "Mogra" | "Moirai One" | "Molengo" | "Momo Signature" | "Momo Trust Display" | "Monofett" | "Monomakh" | "Monomaniac One" | "Monoton" | "Monsieur La Doulaise" | "Montaga" | "MonteCarlo" | "Montenegrin Gothic One" | "Montez" | "Moo Lah Lah" | "Mooli" | "Moon Dance" | "Moul" | "Moulpali" | "Mouse Memoirs" | "Mr Bedfort" | "Mr Dafoe" | "Mr De Haviland" | "Mrs Saint Delafield" | "Mrs Sheppards" | "Ms Madi" | "My Soul" | "Mynerve" | "Mystery Quest" | "NTR" | "Nanum Brush Script" | "Nanum Pen Script" | "Neonderthaw" | "Nerko One" | "Neucha" | "New Amsterdam" | "New Rocker" | "New Tegomin" | "Niconne" | "Nixie One" | "Norican" | "Nosifer" | "Notable" | "Nothing You Could Do" | "Noto Color Emoji" | "Noto Music" | "Noto Sans Anatolian Hieroglyphs" | "Noto Sans Avestan" | "Noto Sans Batak" | "Noto Sans Bhaiksuki" | "Noto Sans Brahmi" | "Noto Sans Buginese" | "Noto Sans Buhid" | "Noto Sans Carian" | "Noto Sans Caucasian Albanian" | "Noto Sans Chakma" | "Noto Sans Chorasmian" | "Noto Sans Coptic" | "Noto Sans Cuneiform" | "Noto Sans Cypriot" | "Noto Sans Cypro Minoan" | "Noto Sans Deseret" | "Noto Sans Egyptian Hieroglyphs" | "Noto Sans Elbasan" | "Noto Sans Elymaic" | "Noto Sans Glagolitic" | "Noto Sans Gothic" | "Noto Sans Grantha" | "Noto Sans Hanunoo" | "Noto Sans Hatran" | "Noto Sans Imperial Aramaic" | "Noto Sans Indic Siyaq Numbers" | "Noto Sans Inscriptional Pahlavi" | "Noto Sans Inscriptional Parthian" | "Noto Sans Kaithi" | "Noto Sans Kharoshthi" | "Noto Sans Khojki" | "Noto Sans Khudawadi" | "Noto Sans Lepcha" | "Noto Sans Limbu" | "Noto Sans Linear A" | "Noto Sans Linear B" | "Noto Sans Lycian" | "Noto Sans Lydian" | "Noto Sans Mahajani" | "Noto Sans Mandaic" | "Noto Sans Manichaean" | "Noto Sans Marchen" | "Noto Sans Masaram Gondi" | "Noto Sans Math" | "Noto Sans Mayan Numerals" | "Noto Sans Mende Kikakui" | "Noto Sans Meroitic" | "Noto Sans Miao" | "Noto Sans Modi" | "Noto Sans Mongolian" | "Noto Sans Mro" | "Noto Sans Multani" | "Noto Sans NKo" | "Noto Sans Nabataean" | "Noto Sans Nandinagari" | "Noto Sans Newa" | "Noto Sans Nushu" | "Noto Sans Ogham" | "Noto Sans Old Hungarian" | "Noto Sans Old Italic" | "Noto Sans Old North Arabian" | "Noto Sans Old Permic" | "Noto Sans Old Persian" | "Noto Sans Old Sogdian" | "Noto Sans Old South Arabian" | "Noto Sans Old Turkic" | "Noto Sans Osage" | "Noto Sans Osmanya" | "Noto Sans Pahawh Hmong" | "Noto Sans Palmyrene" | "Noto Sans Pau Cin Hau" | "Noto Sans PhagsPa" | "Noto Sans Phoenician" | "Noto Sans Psalter Pahlavi" | "Noto Sans Rejang" | "Noto Sans Runic" | "Noto Sans Samaritan" | "Noto Sans Saurashtra" | "Noto Sans Sharada" | "Noto Sans Shavian" | "Noto Sans Siddham" | "Noto Sans SignWriting" | "Noto Sans Sogdian" | "Noto Sans Soyombo" | "Noto Sans Sunuwar" | "Noto Sans Syloti Nagri" | "Noto Sans Symbols 2" | "Noto Sans Tagalog" | "Noto Sans Tagbanwa" | "Noto Sans Tai Le" | "Noto Sans Tai Viet" | "Noto Sans Takri" | "Noto Sans Tamil Supplement" | "Noto Sans Tifinagh" | "Noto Sans Tirhuta" | "Noto Sans Ugaritic" | "Noto Sans Vai" | "Noto Sans Wancho" | "Noto Sans Warang Citi" | "Noto Sans Yi" | "Noto Sans Zanabazar Square" | "Noto Serif Ahom" | "Noto Serif Balinese" | "Noto Serif Dives Akuru" | "Noto Serif Dogra" | "Noto Serif Grantha" | "Noto Serif Khitan Small Script" | "Noto Serif Makasar" | "Noto Serif Old Uyghur" | "Noto Serif Ottoman Siyaq" | "Noto Serif Tangut" | "Noto Serif Todhri" | "Noto Znamenny Musical Notation" | "Nova Cut" | "Nova Flat" | "Nova Mono" | "Nova Oval" | "Nova Round" | "Nova Script" | "Nova Slim" | "Nova Square" | "Numans" | "Nuosu SIL" | "Odibee Sans" | "Odor Mean Chey" | "Offside" | "Oi" | "Oldenburg" | "Ole" | "Oooh Baby" | "Oranienbaum" | "Orbit" | "Orelega One" | "Orienta" | "Original Surfer" | "Over the Rainbow" | "Overlock SC" | "Ovo" | "Oxygen Mono" | "PT Mono" | "Pacifico" | "Padyakke Expanded One" | "Palette Mosaic" | "Pangolin" | "Paprika" | "Parisienne" | "Passero One" | "Passions Conflict" | "Pathway Gothic One" | "Patrick Hand" | "Patrick Hand SC" | "Pattaya" | "Patua One" | "Pavanam" | "Paytone One" | "Peddana" | "Peralta" | "Permanent Marker" | "Petemoss" | "Petit Formal Script" | "Piedra" | "Pinyon Script" | "Pirata One" | "Plaster" | "Playball" | "Playwrite AR Guides" | "Playwrite AU NSW Guides" | "Playwrite AU QLD Guides" | "Playwrite AU SA Guides" | "Playwrite AU TAS Guides" | "Playwrite AU VIC Guides" | "Playwrite BE VLG Guides" | "Playwrite BE WAL Guides" | "Playwrite BR Guides" | "Playwrite CA Guides" | "Playwrite CL Guides" | "Playwrite CO Guides" | "Playwrite CU Guides" | "Playwrite CZ Guides" | "Playwrite DE Grund Guides" | "Playwrite DE LA Guides" | "Playwrite DE SAS Guides" | "Playwrite DE VA Guides" | "Playwrite DK Loopet Guides" | "Playwrite DK Uloopet Guides" | "Playwrite ES Deco Guides" | "Playwrite ES Guides" | "Playwrite FR Moderne Guides" | "Playwrite FR Trad Guides" | "Playwrite HR Guides" | "Playwrite HR Lijeva Guides" | "Playwrite HU Guides" | "Playwrite ID Guides" | "Playwrite IE Guides" | "Playwrite IN Guides" | "Playwrite IS Guides" | "Playwrite IT Moderna Guides" | "Playwrite IT Trad Guides" | "Playwrite MX Guides" | "Playwrite NG Modern Guides" | "Playwrite NL Guides" | "Playwrite NO Guides" | "Playwrite NZ Basic Guides" | "Playwrite NZ Guides" | "Playwrite PE Guides" | "Playwrite PL Guides" | "Playwrite PT Guides" | "Playwrite RO Guides" | "Playwrite SK Guides" | "Playwrite TZ Guides" | "Playwrite US Modern Guides" | "Playwrite US Trad Guides" | "Playwrite VN Guides" | "Playwrite ZA Guides" | "Pochaevsk" | "Poetsen One" | "Poiret One" | "Poller One" | "Pompiere" | "Ponnala" | "Ponomar" | "Poor Story" | "Port Lligat Sans" | "Port Lligat Slab" | "Potta One" | "Praise" | "Prata" | "Preahvihear" | "Press Start 2P" | "Princess Sofia" | "Prociono" | "Prosto One" | "Protest Guerrilla" | "Protest Revolution" | "Protest Riot" | "Protest Strike" | "Puppies Play" | "Purple Purse" | "Qahiri" | "Quando" | "Questrial" | "Quintessential" | "Qwigley" | "Racing Sans One" | "Rakkas" | "Raleway Dots" | "Ramabhadra" | "Ramaraja" | "Rammetto One" | "Rampart One" | "Ramsina" | "Ranchers" | "Rancho" | "Rationale" | "Ravi Prakash" | "Redacted" | "Redressed" | "Reem Kufi Ink" | "Reenie Beanie" | "Reggae One" | "Revalia" | "Rhodium Libre" | "Ribeye" | "Ribeye Marrow" | "Righteous" | "Risque" | "Road Rage" | "Rochester" | "Rock 3D" | "Rock Salt" | "RocknRoll One" | "Romanesco" | "Rouge Script" | "Rozha One" | "Rubik 80s Fade" | "Rubik Beastly" | "Rubik Broken Fax" | "Rubik Bubbles" | "Rubik Burned" | "Rubik Dirt" | "Rubik Distressed" | "Rubik Doodle Shadow" | "Rubik Doodle Triangles" | "Rubik Gemstones" | "Rubik Glitch" | "Rubik Glitch Pop" | "Rubik Iso" | "Rubik Lines" | "Rubik Maps" | "Rubik Marker Hatch" | "Rubik Maze" | "Rubik Microbe" | "Rubik Mono One" | "Rubik Moonrocks" | "Rubik Pixels" | "Rubik Puddles" | "Rubik Scribble" | "Rubik Spray Paint" | "Rubik Storm" | "Rubik Vinyl" | "Rubik Wet Paint" | "Ruge Boogie" | "Ruluko" | "Rum Raisin" | "Ruslan Display" | "Russo One" | "Ruthie" | "Rye" | "STIX Two Math" | "Sacramento" | "Sail" | "Salsa" | "Sancreek" | "Sankofa Display" | "Sarina" | "Sassy Frass" | "Satisfy" | "Sawarabi Gothic" | "Sawarabi Mincho" | "Schoolbell" | "Scope One" | "Seaweed Script" | "Secular One" | "Sedan SC" | "Sedgwick Ave" | "Sedgwick Ave Display" | "Sekuya" | "Send Flowers" | "Sevillana" | "Seymour One" | "Shadows Into Light" | "Shadows Into Light Two" | "Shafarik" | "Shalimar" | "Shanti" | "Share Tech" | "Share Tech Mono" | "Shippori Antique" | "Shippori Antique B1" | "Shizuru" | "Shojumaru" | "Short Stack" | "Shrikhand" | "Siemreap" | "Sigmar" | "Sigmar One" | "Single Day" | "Sirin Stencil" | "Sirivennela" | "Six Caps" | "Slabo 13px" | "Slabo 27px" | "Slackey" | "Slackside One" | "Smokum" | "Smooch" | "Smythe" | "Snippet" | "Snowburst One" | "Sofadi One" | "Sofia" | "Solitreo" | "Song Myung" | "Sonsie One" | "Special Elite" | "Special Gothic Condensed One" | "Special Gothic Expanded One" | "Spicy Rice" | "Spinnaker" | "Spirax" | "Splash" | "Squada One" | "Square Peg" | "Sree Krushnadevaraya" | "Sriracha" | "Staatliches" | "Stalemate" | "Stalinist One" | "Stick" | "Stint Ultra Condensed" | "Stint Ultra Expanded" | "Story Script" | "Strait" | "Style Script" | "Stylish" | "Sue Ellen Francisco" | "Suez One" | "Sunshiney" | "Supermercado One" | "Suranna" | "Suravaram" | "Swanky and Moo Moo" | "Syne Mono" | "Syne Tactile" | "Tac One" | "Tagesschrift" | "Tapestry" | "Taprom" | "Tauri" | "Telex" | "Tenali Ramakrishna" | "Tenor Sans" | "Text Me One" | "The Girl Next Door" | "Timmana" | "Tiny5" | "Titan One" | "Trade Winds" | "Train One" | "Triodion" | "Trocchi" | "Trykker" | "Tulpen One" | "Twinkle Star" | "Ubuntu Condensed" | "Uchen" | "Ultra" | "Uncial Antiqua" | "Underdog" | "Unica One" | "UnifrakturMaguntia" | "Unlock" | "UoqMunThenKhung" | "Updock" | "VT323" | "Vampiro One" | "Varela" | "Varela Round" | "Vast Shadow" | "Viaoda Libre" | "Vibes" | "Vibur" | "Vidaloka" | "Viga" | "Vina Sans" | "Voces" | "Voltaire" | "Vujahday Script" | "WDXL Lubrifont JP N" | "WDXL Lubrifont SC" | "WDXL Lubrifont TC" | "Waiting for the Sunrise" | "Wallpoet" | "Walter Turncoat" | "Warnes" | "Water Brush" | "Waterfall" | "Wellfleet" | "Wendy One" | "Whisper" | "Wire One" | "Yarndings 12" | "Yarndings 12 Charted" | "Yarndings 20" | "Yarndings 20 Charted" | "Yatra One" | "Yellowtail" | "Yeon Sung" | "Yeseva One" | "Yesteryear" | "Yomogi" | "Young Serif" | "Yuji Boku" | "Yuji Hentaigana Akari" | "Yuji Hentaigana Akebono" | "Yuji Mai" | "Yuji Syuku" | "Yusei Magic" | "Yuyu" | "Yuyu Short" | "ZCOOL KuaiLe" | "ZCOOL QingKe HuangYou" | "ZCOOL XiaoWei" | "Zen Antique" | "Zen Antique Soft" | "Zen Dots" | "Zen Kurenaido" | "Zen Tokyo Zoo" | "Zeyada" | "Zhi Mang Xing";
768
768
  S2: "AR One Sans";
769
769
  S3: "Abhaya Libre" | "Anaheim" | "Baloo 2" | "Baloo Bhai 2" | "Baloo Bhaijaan 2" | "Baloo Bhaina 2" | "Baloo Chettan 2" | "Baloo Da 2" | "Baloo Paaji 2" | "Baloo Tamma 2" | "Baloo Tammudu 2" | "Baloo Thambi 2" | "Eczar" | "Namdhinggo" | "Narnoor" | "Podkova" | "Sen" | "Shippori Mincho" | "Shippori Mincho B1" | "Syne" | "TASA Explorer" | "TASA Orbiter" | "Tillana" | "Wix Madefor Display";
770
- S4: "Advent Pro" | "Anybody" | "Archivo" | "Asap" | "Georama" | "Noto Sans" | "Noto Sans Display" | "Noto Serif" | "Noto Serif Display" | "Noto Serif Tamil" | "Pliant" | "Roboto" | "Saira" | "Saira Stencil" | "Sour Gummy" | "Tourney";
770
+ S4: "Advent Pro" | "Anybody" | "Archivo" | "Asap" | "Asap Sharp" | "Georama" | "Noto Sans" | "Noto Sans Display" | "Noto Serif" | "Noto Serif Display" | "Noto Serif Tamil" | "Pliant" | "Roboto" | "Saira" | "Saira Stencil" | "Sour Gummy" | "Tourney";
771
771
  S5: "Afacad" | "Archivo Narrow" | "Arimo" | "Baskervville" | "Brygada 1918" | "Cuprum" | "Expletus Sans" | "Familjen Grotesk" | "Gelasio" | "Ibarra Real Nova" | "Libre Baskerville" | "Libre Bodoni" | "Lora" | "Miranda Sans" | "Poltawski Nowy" | "Radio Canada Big" | "STIX Two Text" | "Sometype Mono" | "Ubuntu Sans Mono";
772
772
  S6: "Afacad Flux";
773
773
  S7: "Agdasima" | "Alef" | "Allan" | "Amatic SC" | "Amita" | "Annapurna SIL" | "Aref Ruqaa" | "Aref Ruqaa Ink" | "Arya" | "Astloch" | "Asul" | "BIZ UDGothic" | "BIZ UDMincho" | "BIZ UDPGothic" | "BIZ UDPMincho" | "Brawler" | "Cabin Sketch" | "Charm" | "Charmonman" | "Cherry Swash" | "Comic Relief" | "Content" | "Corben" | "Corinthia" | "Cossette Texte" | "Cossette Titre" | "Delius Unicase" | "Fuzzy Bubbles" | "Glegoo" | "Goldman" | "Gorditas" | "Gowun Batang" | "Gwendolyn" | "Inika" | "Jaldi" | "Kadwa" | "Karla Tamil Inclined" | "Karla Tamil Upright" | "Lunasima" | "Lusitana" | "Magra" | "Mina" | "Mountains of Christmas" | "Nanum Gothic Coding" | "News Cycle" | "Noto Sans Duployan" | "Oleo Script" | "Oleo Script Swash Caps" | "PT Sans Caption" | "PT Sans Narrow" | "Padauk" | "Phetsarath" | "Play" | "Pragati Narrow" | "Quattrocento" | "Qwitcher Grypen" | "Ranga" | "Rufina" | "Sahitya" | "Sarala" | "Silkscreen" | "Sintony" | "Skranji" | "Srisakdi" | "Stardos Stencil" | "Sumana" | "Sura" | "Syncopate" | "Tai Heritage Pro" | "Tangerine" | "The Nautigal" | "Unkempt" | "Zilla Slab Highlight";
@@ -776,7 +776,7 @@ interface GoogleFontShapeFamilies {
776
776
  S10: "Akshar" | "Atma" | "Comfortaa" | "Cormorant SC" | "Cormorant Unicase" | "Cormorant Upright" | "Fira Code" | "Halant" | "Hind" | "Hind Guntur" | "Hind Madurai" | "Hind Mysuru" | "Hind Siliguri" | "Hind Vadodara" | "Jura" | "Karma" | "Khand" | "Kreon" | "Laila" | "Lemonada" | "Marhey" | "Noto Emoji" | "Noto Traditional Nushu" | "Overpass Mono" | "Pontano Sans" | "Quicksand" | "Rajdhani" | "Red Rose" | "Signika Negative" | "Space Grotesk" | "Spline Sans" | "Teko" | "Tsukimi Rounded" | "Varta";
777
777
  S11: "Akt" | "Alexandria" | "Catamaran" | "Cause" | "Comme" | "Encode Sans Condensed" | "Encode Sans Expanded" | "Encode Sans Semi Condensed" | "Encode Sans Semi Expanded" | "Estedad" | "Foldit" | "Gothic A1" | "Grenze Gotisch" | "Hahmlet" | "Hanuman" | "Heebo" | "League Spartan" | "Lexend" | "Lexend Deca" | "Lexend Exa" | "Lexend Giga" | "Lexend Mega" | "Lexend Peta" | "Lexend Tera" | "Lexend Zetta" | "M PLUS 1" | "M PLUS 2" | "M PLUS U" | "Murecho" | "Nata Sans" | "Nokora" | "Noto Kufi Arabic" | "Noto Rashi Hebrew" | "Noto Sans Canadian Aboriginal" | "Noto Sans Cham" | "Noto Sans Cherokee" | "Noto Sans HK" | "Noto Sans JP" | "Noto Sans KR" | "Noto Sans Meetei Mayek" | "Noto Sans SC" | "Noto Sans Symbols" | "Noto Sans Syriac" | "Noto Sans Syriac Eastern" | "Noto Sans Syriac Western" | "Noto Sans TC" | "Noto Sans Thaana" | "Noto Serif Gujarati" | "Noto Serif Gurmukhi" | "Noto Serif Kannada" | "Noto Serif Malayalam" | "Noto Serif Myanmar" | "Noto Serif Telugu" | "Noto Serif Tibetan" | "Onest" | "Outfit" | "Roboto Slab" | "Saira Condensed" | "Saira Extra Condensed" | "Saira Semi Condensed" | "Smooch Sans" | "Vazirmatn";
778
778
  S12: "Alan Sans" | "Alyamama" | "Darker Grotesque" | "Frank Ruhl Libre" | "Inknut Antiqua" | "Matangi" | "Merienda" | "Phudu" | "Sansita Swashed";
779
- S13: "Albert Sans" | "Aleo" | "Alumni Sans" | "Alumni Sans SC" | "Azeret Mono" | "Barlow" | "Barlow Condensed" | "Barlow Semi Condensed" | "Be Vietnam Pro" | "Bitter" | "Chivo" | "Chivo Mono" | "Elms Sans" | "Epilogue" | "Exo" | "Exo 2" | "Finlandica Headline" | "Finlandica Text" | "Fira Sans" | "Fira Sans Condensed" | "Fira Sans Extra Condensed" | "Gantari" | "Geist" | "Geist Mono" | "Genos" | "Grandstander" | "Grenze" | "Hanken Grotesk" | "Inter Tight" | "Jost" | "Kanit" | "Labrada" | "Libre Franklin" | "Montserrat" | "Montserrat Alternates" | "Montserrat Underline" | "MuseoModerno" | "Overpass" | "Petrona" | "Poppins" | "Prompt" | "Public Sans" | "REM" | "Raleway" | "Roboto Condensed" | "Rokkitt" | "SUSE" | "Taviraj" | "Tomorrow" | "Trirong" | "Urbanist" | "Work Sans";
779
+ S13: "Albert Sans" | "Aleo" | "Alumni Sans" | "Alumni Sans SC" | "Azeret Mono" | "Barlow" | "Barlow Condensed" | "Barlow Semi Condensed" | "Be Vietnam Pro" | "Bitter" | "Chivo" | "Chivo Mono" | "Elms Sans" | "Epilogue" | "Exo" | "Exo 2" | "Finlandica Headline" | "Finlandica Text" | "Fira Sans" | "Fira Sans Condensed" | "Fira Sans Extra Condensed" | "Gantari" | "Geist" | "Geist Mono" | "Genos" | "Grandstander" | "Grenze" | "Hanken Grotesk" | "Inter Tight" | "Jost" | "Kanit" | "Labrada" | "Libre Franklin" | "Montserrat" | "Montserrat Alternates" | "Montserrat Underline" | "MuseoModerno" | "Overpass" | "Petrona" | "Poppins" | "Prompt" | "Public Sans" | "REM" | "Raleway" | "Roboto Condensed" | "Rokkitt" | "SUSE" | "Taviraj" | "Tomorrow" | "Trirong" | "Urbanist" | "Valley Sans" | "Work Sans";
780
780
  S14: "Alegreya" | "Besley" | "Kufam" | "Playfair Display" | "Schibsted Grotesk" | "Vollkorn" | "Wittgenstein";
781
781
  S15: "Alegreya SC";
782
782
  S16: "Alegreya Sans" | "Alegreya Sans SC";
@@ -794,7 +794,7 @@ interface GoogleFontShapeFamilies {
794
794
  S28: "Assistant" | "Changa" | "Dosis" | "Fustat" | "Gemunu Libre" | "Geomini" | "Lateef" | "Manrope" | "Momo Trust Sans" | "Mukta" | "Mukta Mahee" | "Mukta Malar" | "Mukta Vaani" | "National Park" | "Ojuju" | "Oxanium" | "Stick No Bills";
795
795
  S29: "Asta Sans" | "Funnel Display" | "Moderustic" | "Parkinsans";
796
796
  S30: "Athiti" | "Maitree" | "Mitr" | "Mozilla Text" | "Oswald" | "Pridi" | "Stack Sans Headline" | "Stack Sans Notch" | "Stack Sans Text" | "Yaldevi" | "Yanone Kaffeesatz";
797
- S31: "Atkinson Hyperlegible Mono" | "Atkinson Hyperlegible Next" | "Karla" | "Plus Jakarta Sans" | "Spectral" | "Spectral SC";
797
+ S31: "Atkinson Hyperlegible Mono" | "Atkinson Hyperlegible Next" | "Karla" | "Plus Jakarta Sans" | "Scoutie Sans" | "Spectral" | "Spectral SC";
798
798
  S32: "Averia Libre" | "Averia Sans Libre" | "Averia Serif Libre" | "Bellota" | "Bellota Text" | "Comic Neue" | "Inria Sans" | "Inria Serif" | "Sansation";
799
799
  S33: "Bai Jamjuree" | "Cascadia Code" | "Cascadia Mono" | "Fahkwang" | "KoHo" | "Kodchasan" | "Krub" | "Mali" | "Niramit";
800
800
  S34: "Ballet" | "Hedvig Letters Serif" | "Jaro";
@@ -1052,7 +1052,7 @@ type CodepointSource = string | Node | (string | Node)[];
1052
1052
  * used. Mirrors `MARKER_CHARACTERS` in takumi-core, whose coverage test is the
1053
1053
  * source of truth. `list-style-type: "…"` strings are not covered.
1054
1054
  */
1055
- declare const LIST_MARKER_CHARACTERS = "•◦■▪ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
1055
+ declare const LIST_MARKER_CHARACTERS = "•◦■▪▸◂▾ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
1056
1056
  /** Collect every codepoint the content will render. */
1057
1057
  declare function collectCodepoints(source: CodepointSource): Set<number>;
1058
1058
  /**
@@ -0,0 +1 @@
1
+ const e=33554432,t=/url\(\s*(['"]?)(.*?)\1\s*\)/g;async function n(e,t={}){if(t.allowUrl&&!t.allowUrl(e))throw Error(`URL blocked by allowUrl policy: ${e}`);let n=t.fetch??globalThis.fetch,i=t.timeout??3e4,a=i<=0?void 0:AbortSignal.timeout(i),o=[t.signal,t.init?.signal,a].filter(e=>e!==void 0),s=o.length?AbortSignal.any(o):void 0,c={...t.init,signal:s},l=t.allowUrl?await r(e,t.allowUrl,n,c):await n(e,c);if(!l.ok)throw Error(`HTTP ${l.status} ${l.statusText} fetching ${e}`);return l}async function r(e,t,n,r){let i=e;for(let e=0;e<5;e++){let e=await n(i,{...r,redirect:`manual`}),a=e.headers.get(`location`);if(e.status<300||e.status>=400||!a)return e;if(await e.body?.cancel().catch(()=>{}),i=new URL(a,i).toString(),!t(i))throw Error(`URL blocked by allowUrl policy: ${i}`)}throw Error(`Too many redirects fetching ${e}`)}async function i(e,t){let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)throw Error(`Response exceeds ${t} bytes (content-length ${n})`);let r=e.body;if(!r)return e.arrayBuffer();let i=r.getReader(),a=[],o=0;for(;;){let{done:e,value:n}=await i.read();if(e)break;if(o+=n.byteLength,o>t)throw await i.cancel().catch(()=>{}),Error(`Response exceeds ${t} bytes`);a.push(n)}let s=new Uint8Array(o),c=0;for(let e of a)s.set(e,c),c+=e.byteLength;return s.buffer}function a(e){return e.startsWith(`https://`)||e.startsWith(`http://`)}function o(e,n){if(typeof e==`string`)for(let r of e.matchAll(t)){let e=r[2]?.trim();e&&a(e)&&n.add(e)}else if(Array.isArray(e))for(let t of e)o(t,n)}function s(e){let t=new Set,n=e=>{let r=e=>{e&&(o(e.backgroundImage,t),o(e.maskImage,t),o(e.listStyleImage,t))};if(r(e.style),r(e.preset),o(e.tw,t),e.type===`image`){typeof e.src==`string`&&a(e.src)&&t.add(e.src);return}if(e.type===`container`)for(let t of e.children??[])n(t)};return n(e),[...t]}function c(e,t,r){let a=t.maxBytes??33554432,{allowUrl:o}=t,s=r?.get(e);if(s)return s.then(t=>{if(o&&!o(e))throw Error(`URL blocked by allowUrl policy: ${e}`);if(t.byteLength>a)throw Error(`Response exceeds ${a} bytes`);return t});let c=n(e,t).then(e=>i(e,a)).catch(t=>{throw r?.delete(e),t});return r?.set(e,c),c}async function l({node:e,sources:t=[],fetchCache:n,fetch:r,timeout:i,signal:a,maxBytes:o,allowUrl:l,throwOnError:u=!0}){let d=Array.isArray(e)?e:[e],f=new Map;for(let e of t)f.set(e.src,e);let p=[...new Set(d.flatMap(s))].filter(e=>!f.has(e)),m={fetch:r,timeout:i,signal:a,maxBytes:o,allowUrl:l},h=p.map(async e=>({src:e,data:await c(e,m,n)})),g=u?await Promise.all(h):(await Promise.allSettled(h)).filter(e=>e.status===`fulfilled`).map(e=>e.value);return[...f.values(),...g]}const u=new Map;function d(e,t,n,r){let i=new Map(r),a=n.includes(`italic`),o=a?n.includes(`normal`)?[0,1]:[1]:[void 0],s=[...a?[`ital`]:[],...i.keys(),`wght`].sort(),c=o.flatMap(e=>t.map(t=>s.map(n=>n===`ital`?String(e):n===`wght`?t:i.get(n)??``).join(`,`))).sort();return`${e}:${s.join(`,`)}@${c.join(`;`)}`}function f(e){let t=new URL(e.baseUrl??`https://fonts.googleapis.com/css2`);for(let n of e.families){if(typeof n==`string`){t.searchParams.append(`family`,d(n,[`400`],[`normal`],[]));continue}let e=n.weight??400,r=(Array.isArray(e)?[...e].sort((e,t)=>e-t):[e]).map(String),i=n.style??`normal`,a=(Array.isArray(i)?i:[i]).map(String),o=Object.entries(n.axes??{}).filter(([e])=>e!==`ital`&&e!==`wght`).map(([e,t])=>[e,String(t)]);t.searchParams.append(`family`,d(n.name,r,a,o))}return e.display&&t.searchParams.set(`display`,e.display),t.toString()}function p(e,t){return n(e,{...t,init:{headers:{"User-Agent":`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`}}}).then(e=>i(e,t.maxBytes??2097152)).then(e=>new TextDecoder().decode(e))}function m(e,t){let n=t.cache??u,r=n.get(e);if(r)return r;let i=p(e,t);return n.set(e,i),i.catch(()=>n.delete(e)),i}const h=/(?:\/\*\s*([^*]+?)\s*\*\/\s*)?@font-face\s*\{([^}]*)\}/g;function g(e,t,r){let a=`${e.family} ${e.subset}`,o=e.ranges.map(([e,t])=>`${e}-${t}`).join(`,`);return{name:a,subsetOf:e.family,subsetRank:_(e.ranges),key:`${a}:${e.weight??``}:${e.style??``}:${o}:${r??``}`,weight:e.weight,style:e.style,ranges:e.ranges,generic:r,data:()=>n(e.url,t).then(e=>i(e,t.maxBytes??33554432))}}function _(e){return e.length===0?4294967295:Math.min(...e.map(([e])=>e))}function v(e){let t=[];for(let n of e.split(`,`)){let e=n.trim().replace(/^U\+/i,``);if(e){if(e.includes(`-`)){let[n,r]=e.split(`-`);n&&r&&t.push([parseInt(n,16),parseInt(r,16)])}else if(e.includes(`?`))t.push([parseInt(e.replace(/\?/g,`0`),16),parseInt(e.replace(/\?/g,`F`),16)]);else{let n=parseInt(e,16);t.push([n,n])}}}return t}function y(e){let t=[],n=0;for(let r of e.matchAll(h)){let e=r[2];if(!e)continue;let i=e.match(/src:\s*url\(([^)]+)\)/)?.[1]?.replace(/['"]/g,``).trim(),a=e.match(/font-family:\s*['"]?([^'";]+)['"]?/)?.[1]?.trim();if(!i||!a)continue;let o=e.match(/unicode-range:\s*([^;]+)/)?.[1],s=e.match(/font-weight:\s*(\d+)(?:\s+(\d+))?/);t.push({family:a,subset:r[1]?.trim()||`subset-${n}`,url:i,weight:s&&!s[2]?Number(s[1]):void 0,style:e.match(/font-style:\s*([a-z]+)/i)?.[1],ranges:o?v(o):[]}),n+=1}return t}function b(e){let t=new Map;for(let n of e){let e=t.get(n.url)??new Set;e.add(n.weight),t.set(n.url,e)}let n=new Set,r=[];for(let i of e){if(n.has(i.url))continue;n.add(i.url);let e=(t.get(i.url)?.size??0)>1;r.push(e?{...i,weight:void 0}:i)}return r}const x=`•◦■▪▸◂▾ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`;function S(e){let t=new Set,n=e=>{for(let n of e)t.add(n.codePointAt(0))},r=e=>{typeof e==`string`?n(e):e.type===`text`?n(e.text):e.type===`container`&&e.children?.forEach(r)};return Array.isArray(e)?e.forEach(r):r(e),t}function C(e,t){if(e.length===0)return!0;for(let n of t)for(let[t,r]of e)if(n>=t&&n<=r)return!0;return!1}function w({fonts:e,source:t}){let n=S(t);return e.filter(e=>C(e.ranges??[],n))}function T(e,t={}){return{key:e,data:()=>n(e,t).then(e=>i(e,t.maxBytes??33554432))}}async function E(e){if(Array.isArray(e)&&(e={families:e}),e.families.length===0)return[];let t=await m(f(e),e),n=new Map(e.families.map((e,t)=>[typeof e==`string`?e:e.name,t])),r=new Map(e.families.flatMap(e=>typeof e==`string`||!e.generic?[]:[[e.name,e.generic]]));return b(y(t)).sort((e,t)=>(n.get(e.family)??0)-(n.get(t.family)??0)).map(t=>g(t,e,r.get(t.family)))}export{w as a,l as c,E as i,i as l,S as n,e as o,T as r,n as s,x as t};
package/dist/html.cjs CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./helpers-4kGcvc-Q.cjs"),t=require("./utils-Cg2JlrJr.cjs");var n=Symbol(`Fragment`),r=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),i=new Set([`script`,`style`]),a=/(?:<(\/?)([a-zA-Z][a-zA-Z0-9\:-]*)(?:\s([^>]*?))?((?:\s*\/)?)>|(<\!\-\-)([\s\S]*?)(\-\->)|(<\!)([\s\S]*?)(>))/gm,o=64,s=46,c=45,l=58,u=95,d=61,f=34,p=39,m=92;function h(e){return e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57||e===o||e===s||e===c||e===l||e===u}function g(e){let t={};if(e){let n=`none`,r,i=``,a;for(let o=0;o<e.length;o++){let s=e.charCodeAt(o);if(n===`none`)h(s)?(r&&(t[r]=i,r=void 0,i=``),a=o,n=`key`):s===d&&r&&(n=`value`);else if(n===`key`)h(s)||(r=e.substring(a,o),n=s===d?`value`:`none`);else if(s===f||s===p){let t=s===f?`"`:`'`,r=o+1,a=e.indexOf(t,r);for(;a>0&&e.charCodeAt(a-1)===m;)a=e.indexOf(t,a+1);if(a===-1)break;i=e.substring(r,a),o=a,n=`none`}}n===`key`&&a!=null&&a<e.length&&(r=e.substring(a,e.length)),r&&(t[r]=i)}return t}function _(e){let t=typeof e==`string`?e:e.value,n,o,s,c,l,u,d,f,p,m=[];a.lastIndex=0,o=n={type:0,children:[]};let h=0;function _(){c=t.substring(h,a.lastIndex-s[0].length),c&&o.children.push({type:2,value:c,parent:o})}for(;s=a.exec(t);){if(u=s[5]||s[8],d=s[6]||s[9],f=s[7]||s[10],i.has(o.name)&&s[2]!==o.name){l=a.lastIndex-s[0].length,o.children.length>0&&(o.children[0].value+=s[0]);continue}else if(u===`<!--`){if(l=a.lastIndex-s[0].length,i.has(o.name))continue;p={type:3,value:d,parent:o,loc:[{start:l,end:l+u.length},{start:a.lastIndex-f.length,end:a.lastIndex}]},m.push(p),p.parent.children.push(p)}else if(u===`<!`)l=a.lastIndex-s[0].length,p={type:4,value:d,parent:o,loc:[{start:l,end:l+u.length},{start:a.lastIndex-f.length,end:a.lastIndex}]},m.push(p),p.parent.children.push(p);else if(s[1]!==`/`)if(_(),i.has(o.name)){h=a.lastIndex,_();continue}else p={type:1,name:s[2]+``,attributes:g(s[3]),parent:o,children:[],loc:[{start:a.lastIndex-s[0].length,end:a.lastIndex}]},m.push(p),p.parent.children.push(p),s[4]&&s[4].indexOf(`/`)>-1||r.has(p.name)?(p.loc[1]=p.loc[0],p.isSelfClosingTag=!0):o=p;else _(),s[2]+``===o.name?(p=o,o=p.parent,p.loc.push({start:a.lastIndex-s[0].length,end:a.lastIndex}),c=t.substring(p.loc[0].end,p.loc[1].start),p.children.length===0&&p.children.push({type:2,value:c,parent:o})):s[2]+``===m[m.length-1].name&&m[m.length-1].isSelfClosingTag===!0&&(p=m[m.length-1],p.loc.push({start:a.lastIndex-s[0].length,end:a.lastIndex}));h=a.lastIndex}return c=t.slice(h),o.children.push({type:2,value:c,parent:o}),n}var v=Symbol(`HTMLString`),y=Symbol(`RenderFn`);function b(e,t=[v]){let n={value:e};for(let e of t)Object.defineProperty(n,e,{value:!0,enumerable:!1,writable:!1});return n}var x={"&":`&amp;`,"<":`&lt;`,">":`&gt;`};function S(e){return e.replace(/[&<>]/g,e=>x[e]||e)}function C(e){let t=``;for(let[n,r]of Object.entries(e))t+=` ${n}="${r}"`;return t}function w(e){if(e.children.length===0){let t=e;for(;t=t.parent;)if(t.name===`svg`)return!0}return!1}function T(e){let{name:t,attributes:i={}}=e,a=e.children.map(e=>E(e)).join(``);if(y in e){let t=e[y](i,b(a));return t&&t[v]?t.value:S(String(t))}if(t===n)return a;let o=w(e);return o||r.has(t)?`<${e.name}${C(i)}${o?` /`:``}>`:`<${e.name}${C(i)}>${a}</${e.name}>`}function E(e){switch(e.type){case 0:return e.children.map(e=>E(e)).join(``);case 1:return T(e);case 2:return`${e.value}`;case 3:return`<!--${e.value}-->`;case 4:return`<!${e.value}>`}}const D={quot:`"`,amp:`&`,lt:`<`,gt:`>`,apos:`'`,nbsp:`\xA0`,iexcl:`¡`,cent:`¢`,pound:`£`,curren:`¤`,yen:`¥`,brvbar:`¦`,sect:`§`,uml:`¨`,copy:`©`,ordf:`ª`,laquo:`«`,not:`¬`,shy:`­`,reg:`®`,macr:`¯`,deg:`°`,plusmn:`±`,sup2:`²`,sup3:`³`,acute:`´`,micro:`µ`,para:`¶`,middot:`·`,cedil:`¸`,sup1:`¹`,ordm:`º`,raquo:`»`,frac14:`¼`,frac12:`½`,frac34:`¾`,iquest:`¿`,Agrave:`À`,Aacute:`Á`,Acirc:`Â`,Atilde:`Ã`,Auml:`Ä`,Aring:`Å`,AElig:`Æ`,Ccedil:`Ç`,Egrave:`È`,Eacute:`É`,Ecirc:`Ê`,Euml:`Ë`,Igrave:`Ì`,Iacute:`Í`,Icirc:`Î`,Iuml:`Ï`,ETH:`Ð`,Ntilde:`Ñ`,Ograve:`Ò`,Oacute:`Ó`,Ocirc:`Ô`,Otilde:`Õ`,Ouml:`Ö`,times:`×`,Oslash:`Ø`,Ugrave:`Ù`,Uacute:`Ú`,Ucirc:`Û`,Uuml:`Ü`,Yacute:`Ý`,THORN:`Þ`,szlig:`ß`,agrave:`à`,aacute:`á`,acirc:`â`,atilde:`ã`,auml:`ä`,aring:`å`,aelig:`æ`,ccedil:`ç`,egrave:`è`,eacute:`é`,ecirc:`ê`,euml:`ë`,igrave:`ì`,iacute:`í`,icirc:`î`,iuml:`ï`,eth:`ð`,ntilde:`ñ`,ograve:`ò`,oacute:`ó`,ocirc:`ô`,otilde:`õ`,ouml:`ö`,divide:`÷`,oslash:`ø`,ugrave:`ù`,uacute:`ú`,ucirc:`û`,uuml:`ü`,yacute:`ý`,thorn:`þ`,yuml:`ÿ`,fnof:`ƒ`,Alpha:`Α`,Beta:`Β`,Gamma:`Γ`,Delta:`Δ`,Epsilon:`Ε`,Zeta:`Ζ`,Eta:`Η`,Theta:`Θ`,Iota:`Ι`,Kappa:`Κ`,Lambda:`Λ`,Mu:`Μ`,Nu:`Ν`,Xi:`Ξ`,Omicron:`Ο`,Pi:`Π`,Rho:`Ρ`,Sigma:`Σ`,Tau:`Τ`,Upsilon:`Υ`,Phi:`Φ`,Chi:`Χ`,Psi:`Ψ`,Omega:`Ω`,alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,iota:`ι`,kappa:`κ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,omicron:`ο`,pi:`π`,rho:`ρ`,sigmaf:`ς`,sigma:`σ`,tau:`τ`,upsilon:`υ`,phi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,thetasym:`ϑ`,upsih:`ϒ`,piv:`ϖ`,bull:`•`,hellip:`…`,prime:`′`,Prime:`″`,oline:`‾`,frasl:`⁄`,weierp:`℘`,image:`ℑ`,real:`ℜ`,trade:`™`,alefsym:`ℵ`,larr:`←`,uarr:`↑`,rarr:`→`,darr:`↓`,harr:`↔`,crarr:`↵`,lArr:`⇐`,uArr:`⇑`,rArr:`⇒`,dArr:`⇓`,hArr:`⇔`,forall:`∀`,part:`∂`,exist:`∃`,empty:`∅`,nabla:`∇`,isin:`∈`,notin:`∉`,ni:`∋`,prod:`∏`,sum:`∑`,minus:`−`,lowast:`∗`,radic:`√`,prop:`∝`,infin:`∞`,ang:`∠`,and:`∧`,or:`∨`,cap:`∩`,cup:`∪`,int:`∫`,there4:`∴`,sim:`∼`,cong:`≅`,asymp:`≈`,ne:`≠`,equiv:`≡`,le:`≤`,ge:`≥`,sub:`⊂`,sup:`⊃`,nsub:`⊄`,sube:`⊆`,supe:`⊇`,oplus:`⊕`,otimes:`⊗`,perp:`⊥`,sdot:`⋅`,lceil:`⌈`,rceil:`⌉`,lfloor:`⌊`,rfloor:`⌋`,lang:`⟨`,rang:`⟩`,loz:`◊`,spades:`♠`,clubs:`♣`,hearts:`♥`,diams:`♦`,OElig:`Œ`,oelig:`œ`,Scaron:`Š`,scaron:`š`,Yuml:`Ÿ`,circ:`ˆ`,tilde:`˜`,ensp:` `,emsp:` `,thinsp:` `,zwnj:`‌`,zwj:`‍`,lrm:`‎`,rlm:`‏`,ndash:`–`,mdash:`—`,lsquo:`‘`,rsquo:`’`,sbquo:`‚`,ldquo:`“`,rdquo:`”`,bdquo:`„`,dagger:`†`,Dagger:`‡`,permil:`‰`,lsaquo:`‹`,rsaquo:`›`,euro:`€`};function O(e){return e.includes(`&`)?e.replace(/&(?:#(\d+)|#[xX]([\da-fA-F]+)|([a-zA-Z][\w-]+));/g,(e,t,n,r)=>t?k(Number(t))??e:n?k(Number.parseInt(n,16))??e:Object.hasOwn(D,r)?D[r]:e):e}function k(e){if(!(!Number.isInteger(e)||e<0||e>1114111)&&!(e>=55296&&e<=57343)){if(e===0)return`�`;if(e>=128&&e<=159)return`€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ`[e-128];try{return String.fromCodePoint(e)}catch{return}}}function A(e,n){let r=_(e),i={nodes:[],stylesheets:[]},a=t.u(n?.defaultStyles),o=n?.tailwindClassesProperty??`tw`;for(let e of r.children)j(e,a,o,i.nodes,i.stylesheets);return i}function j(n,r,i,a,o){if(n.type===3)return;if(n.type===2){let t=O(n.value??``);t&&a.push(e.l({text:t,preset:r?.span}));return}if(n.type===0){for(let e of n.children)j(e,r,i,a,o);return}if(n.type!==1)return;let s=n;if(s.name===`style`){let e=``;for(let t of s.children)t.type===2&&typeof t.value==`string`&&(e+=t.value);e&&o.push(e);return}if(s.name===`head`){let e=[];for(let t of s.children)j(t,r,i,e,o);return}let c=M(s,r,i);if(s.name===`br`){a.push(e.l({text:`
2
- `,preset:r?.br,...c}));return}if(s.name===`img`){let t=s.attributes?.src;if(!t)throw Error(`Image element must have a 'src' prop.`);a.push(e.i({src:t,width:R(s.attributes?.width),height:R(s.attributes?.height),...c}));return}if(t.i(s.name))return;if(s.name===`svg`){a.push(e.i({src:E(s),width:R(s.attributes?.width),height:R(s.attributes?.height),...c}));return}let l=!0,u=``;for(let e of s.children)if(e.type!==3){if(e.type!==2){l=!1;break}u+=e.value??``}if(l&&u){a.push(e.l({text:O(u),...c}));return}let d=[];for(let e of s.children)j(e,r,i,d,o);a.push(e.t({children:d,...c}))}function M(e,n,r){let i=e.attributes?N(e.attributes):{},a=typeof i.style==`string`?P(i.style):void 0,o=t.l(i,r),s=typeof i[r]==`string`?i[r]:void 0,c=n&&e.name in n?n[e.name]:void 0;return{tagName:e.name,className:i.class,id:i.id,dir:i.dir,lang:i.lang,attributes:o,tw:s,style:a,preset:c}}function N(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=O(r))}return t}function P(e){let t={},n=0,r=-1,i=0,a=i=>{if(r<0)return;let a=e.slice(n,r).trim(),o=e.slice(r+1,i).trim();a&&o&&(t[L(a)]=o)};for(let t=0;t<e.length;t+=1){let o=e[t];if(o===`\\`)t+=1;else if(o===`"`||o===`'`)t=F(e,t);else if(o===`/`&&e[t+1]===`*`)t=I(e,t);else if(o===`(`)i+=1;else if(o===`)`)i=Math.max(0,i-1);else if(i>0)continue;else o===`:`&&r<0?r=t:o===`;`&&(a(t),n=t+1,r=-1)}return a(e.length),Object.keys(t).length>0?t:void 0}function F(e,t){let n=e[t];for(let r=t+1;r<e.length;r+=1)if(e[r]===`\\`)r+=1;else if(e[r]===n)return r;return e.length}function I(e,t){let n=e.indexOf(`*/`,t+2);return n<0?e.length:n+1}function L(e){return e.startsWith(`--`)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function R(e){if(!e)return;let t=Number(e);return Number.isFinite(t)?t:void 0}const z=e=>`text`in e&&typeof e.text==`string`&&e.text.trim()===``;function B(t){let{nodes:n,stylesheets:r}=A(t);for(;n[0]&&z(n[0]);)n.shift();for(;n.at(-1)&&z(n.at(-1));)n.pop();return n.length===0?{node:e.t({}),stylesheets:r}:n.length===1&&n[0]?{node:n[0],stylesheets:r}:{node:e.t({style:{display:`block`,width:e.a(100),height:e.a(100)},children:n}),stylesheets:r}}exports.fromHtml=B;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./helpers-4kGcvc-Q.cjs"),t=require("./utils-BndQkSnW.cjs");var n=Symbol(`Fragment`),r=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),i=new Set([`script`,`style`]),a=/(?:<(\/?)([a-zA-Z][a-zA-Z0-9\:-]*)(?:\s([^>]*?))?((?:\s*\/)?)>|(<\!\-\-)([\s\S]*?)(\-\->)|(<\!)([\s\S]*?)(>))/gm,o=64,s=46,c=45,l=58,u=95,d=61,f=34,p=39,m=92;function h(e){return e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57||e===o||e===s||e===c||e===l||e===u}function g(e){let t={};if(e){let n=`none`,r,i=``,a;for(let o=0;o<e.length;o++){let s=e.charCodeAt(o);if(n===`none`)h(s)?(r&&(t[r]=i,r=void 0,i=``),a=o,n=`key`):s===d&&r&&(n=`value`);else if(n===`key`)h(s)||(r=e.substring(a,o),n=s===d?`value`:`none`);else if(s===f||s===p){let t=s===f?`"`:`'`,r=o+1,a=e.indexOf(t,r);for(;a>0&&e.charCodeAt(a-1)===m;)a=e.indexOf(t,a+1);if(a===-1)break;i=e.substring(r,a),o=a,n=`none`}}n===`key`&&a!=null&&a<e.length&&(r=e.substring(a,e.length)),r&&(t[r]=i)}return t}function _(e){let t=typeof e==`string`?e:e.value,n,o,s,c,l,u,d,f,p,m=[];a.lastIndex=0,o=n={type:0,children:[]};let h=0;function _(){c=t.substring(h,a.lastIndex-s[0].length),c&&o.children.push({type:2,value:c,parent:o})}for(;s=a.exec(t);){if(u=s[5]||s[8],d=s[6]||s[9],f=s[7]||s[10],i.has(o.name)&&s[2]!==o.name){l=a.lastIndex-s[0].length,o.children.length>0&&(o.children[0].value+=s[0]);continue}if(u===`<!--`){if(l=a.lastIndex-s[0].length,i.has(o.name))continue;p={type:3,value:d,parent:o,loc:[{start:l,end:l+u.length},{start:a.lastIndex-f.length,end:a.lastIndex}]},m.push(p),p.parent.children.push(p)}else if(u===`<!`)l=a.lastIndex-s[0].length,p={type:4,value:d,parent:o,loc:[{start:l,end:l+u.length},{start:a.lastIndex-f.length,end:a.lastIndex}]},m.push(p),p.parent.children.push(p);else if(s[1]!==`/`){if(_(),i.has(o.name)){h=a.lastIndex,_();continue}p={type:1,name:s[2]+``,attributes:g(s[3]),parent:o,children:[],loc:[{start:a.lastIndex-s[0].length,end:a.lastIndex}]},m.push(p),p.parent.children.push(p),s[4]&&s[4].indexOf(`/`)>-1||r.has(p.name)?(p.loc[1]=p.loc[0],p.isSelfClosingTag=!0):o=p}else _(),s[2]+``===o.name?(p=o,o=p.parent,p.loc.push({start:a.lastIndex-s[0].length,end:a.lastIndex}),c=t.substring(p.loc[0].end,p.loc[1].start),p.children.length===0&&p.children.push({type:2,value:c,parent:o})):s[2]+``===m[m.length-1].name&&m[m.length-1].isSelfClosingTag===!0&&(p=m[m.length-1],p.loc.push({start:a.lastIndex-s[0].length,end:a.lastIndex}));h=a.lastIndex}return c=t.slice(h),o.children.push({type:2,value:c,parent:o}),n}var v=Symbol(`HTMLString`),y=Symbol(`RenderFn`);function b(e,t=[v]){let n={value:e};for(let e of t)Object.defineProperty(n,e,{value:!0,enumerable:!1,writable:!1});return n}var x={"&":`&amp;`,"<":`&lt;`,">":`&gt;`};function S(e){return e.replace(/[&<>]/g,e=>x[e]||e)}function C(e){let t=``;for(let[n,r]of Object.entries(e))t+=` ${n}="${r}"`;return t}function w(e){if(e.children.length===0){let t=e;for(;t=t.parent;)if(t.name===`svg`)return!0}return!1}function T(e){let{name:t,attributes:i={}}=e,a=e.children.map(e=>E(e)).join(``);if(y in e){let t=e[y](i,b(a));return t&&t[v]?t.value:S(String(t))}if(t===n)return a;let o=w(e);return o||r.has(t)?`<${e.name}${C(i)}${o?` /`:``}>`:`<${e.name}${C(i)}>${a}</${e.name}>`}function E(e){switch(e.type){case 0:return e.children.map(e=>E(e)).join(``);case 1:return T(e);case 2:return`${e.value}`;case 3:return`<!--${e.value}-->`;case 4:return`<!${e.value}>`}}const D={quot:`"`,amp:`&`,lt:`<`,gt:`>`,apos:`'`,nbsp:`\xA0`,iexcl:`¡`,cent:`¢`,pound:`£`,curren:`¤`,yen:`¥`,brvbar:`¦`,sect:`§`,uml:`¨`,copy:`©`,ordf:`ª`,laquo:`«`,not:`¬`,shy:`­`,reg:`®`,macr:`¯`,deg:`°`,plusmn:`±`,sup2:`²`,sup3:`³`,acute:`´`,micro:`µ`,para:`¶`,middot:`·`,cedil:`¸`,sup1:`¹`,ordm:`º`,raquo:`»`,frac14:`¼`,frac12:`½`,frac34:`¾`,iquest:`¿`,Agrave:`À`,Aacute:`Á`,Acirc:`Â`,Atilde:`Ã`,Auml:`Ä`,Aring:`Å`,AElig:`Æ`,Ccedil:`Ç`,Egrave:`È`,Eacute:`É`,Ecirc:`Ê`,Euml:`Ë`,Igrave:`Ì`,Iacute:`Í`,Icirc:`Î`,Iuml:`Ï`,ETH:`Ð`,Ntilde:`Ñ`,Ograve:`Ò`,Oacute:`Ó`,Ocirc:`Ô`,Otilde:`Õ`,Ouml:`Ö`,times:`×`,Oslash:`Ø`,Ugrave:`Ù`,Uacute:`Ú`,Ucirc:`Û`,Uuml:`Ü`,Yacute:`Ý`,THORN:`Þ`,szlig:`ß`,agrave:`à`,aacute:`á`,acirc:`â`,atilde:`ã`,auml:`ä`,aring:`å`,aelig:`æ`,ccedil:`ç`,egrave:`è`,eacute:`é`,ecirc:`ê`,euml:`ë`,igrave:`ì`,iacute:`í`,icirc:`î`,iuml:`ï`,eth:`ð`,ntilde:`ñ`,ograve:`ò`,oacute:`ó`,ocirc:`ô`,otilde:`õ`,ouml:`ö`,divide:`÷`,oslash:`ø`,ugrave:`ù`,uacute:`ú`,ucirc:`û`,uuml:`ü`,yacute:`ý`,thorn:`þ`,yuml:`ÿ`,fnof:`ƒ`,Alpha:`Α`,Beta:`Β`,Gamma:`Γ`,Delta:`Δ`,Epsilon:`Ε`,Zeta:`Ζ`,Eta:`Η`,Theta:`Θ`,Iota:`Ι`,Kappa:`Κ`,Lambda:`Λ`,Mu:`Μ`,Nu:`Ν`,Xi:`Ξ`,Omicron:`Ο`,Pi:`Π`,Rho:`Ρ`,Sigma:`Σ`,Tau:`Τ`,Upsilon:`Υ`,Phi:`Φ`,Chi:`Χ`,Psi:`Ψ`,Omega:`Ω`,alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,iota:`ι`,kappa:`κ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,omicron:`ο`,pi:`π`,rho:`ρ`,sigmaf:`ς`,sigma:`σ`,tau:`τ`,upsilon:`υ`,phi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,thetasym:`ϑ`,upsih:`ϒ`,piv:`ϖ`,bull:`•`,hellip:`…`,prime:`′`,Prime:`″`,oline:`‾`,frasl:`⁄`,weierp:`℘`,image:`ℑ`,real:`ℜ`,trade:`™`,alefsym:`ℵ`,larr:`←`,uarr:`↑`,rarr:`→`,darr:`↓`,harr:`↔`,crarr:`↵`,lArr:`⇐`,uArr:`⇑`,rArr:`⇒`,dArr:`⇓`,hArr:`⇔`,forall:`∀`,part:`∂`,exist:`∃`,empty:`∅`,nabla:`∇`,isin:`∈`,notin:`∉`,ni:`∋`,prod:`∏`,sum:`∑`,minus:`−`,lowast:`∗`,radic:`√`,prop:`∝`,infin:`∞`,ang:`∠`,and:`∧`,or:`∨`,cap:`∩`,cup:`∪`,int:`∫`,there4:`∴`,sim:`∼`,cong:`≅`,asymp:`≈`,ne:`≠`,equiv:`≡`,le:`≤`,ge:`≥`,sub:`⊂`,sup:`⊃`,nsub:`⊄`,sube:`⊆`,supe:`⊇`,oplus:`⊕`,otimes:`⊗`,perp:`⊥`,sdot:`⋅`,lceil:`⌈`,rceil:`⌉`,lfloor:`⌊`,rfloor:`⌋`,lang:`⟨`,rang:`⟩`,loz:`◊`,spades:`♠`,clubs:`♣`,hearts:`♥`,diams:`♦`,OElig:`Œ`,oelig:`œ`,Scaron:`Š`,scaron:`š`,Yuml:`Ÿ`,circ:`ˆ`,tilde:`˜`,ensp:` `,emsp:` `,thinsp:` `,zwnj:`‌`,zwj:`‍`,lrm:`‎`,rlm:`‏`,ndash:`–`,mdash:`—`,lsquo:`‘`,rsquo:`’`,sbquo:`‚`,ldquo:`“`,rdquo:`”`,bdquo:`„`,dagger:`†`,Dagger:`‡`,permil:`‰`,lsaquo:`‹`,rsaquo:`›`,euro:`€`};function O(e){return e.includes(`&`)?e.replace(/&(?:#(\d+)|#[xX]([\da-fA-F]+)|([a-zA-Z][\w-]+));/g,(e,t,n,r)=>t?k(Number(t))??e:n?k(Number.parseInt(n,16))??e:Object.hasOwn(D,r)?D[r]:e):e}function k(e){if(!(!Number.isInteger(e)||e<0||e>1114111)&&!(e>=55296&&e<=57343)){if(e===0)return`�`;if(e>=128&&e<=159)return`€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ`[e-128];try{return String.fromCodePoint(e)}catch{return}}}function A(e,n){let r=_(e),i={nodes:[],css:[]},a=t.f(n?.defaultStyles),o=n?.tailwindClassesProperty??`tw`;for(let e of r.children)j(e,a,o,i.nodes,i.css);return i}function j(n,r,i,a,o){if(n.type===3)return;if(n.type===2){let t=O(n.value??``);t&&a.push(e.l({text:t,preset:r?.span}));return}if(n.type===0){for(let e of n.children)j(e,r,i,a,o);return}if(n.type!==1)return;let s=n;if(s.name===`style`){let e=``;for(let t of s.children)t.type===2&&typeof t.value==`string`&&(e+=t.value);e&&o.push(e);return}if(s.name===`head`){let e=[];for(let t of s.children)j(t,r,i,e,o);return}let c=M(s,r,i);if(s.name===`br`){a.push(e.l({text:`
2
+ `,preset:r?.br,...c}));return}if(s.name===`img`){let t=s.attributes?.src;if(!t)throw Error(`Image element must have a 'src' prop.`);a.push(e.i({src:t,width:R(s.attributes?.width),height:R(s.attributes?.height),...c}));return}if(t.i(s.name))return;if(s.name===`svg`){a.push(e.i({src:E(s),width:R(s.attributes?.width),height:R(s.attributes?.height),...c}));return}let l=!0,u=``;for(let e of s.children)if(e.type!==3){if(e.type!==2){l=!1;break}u+=e.value??``}if(l&&u){a.push(e.l({text:O(u),...c}));return}let d=[];for(let e of s.children)j(e,r,i,d,o);a.push(e.t({children:d,...c}))}function M(e,n,r){let i=e.attributes?N(e.attributes):{},a=typeof i.style==`string`?P(i.style):void 0,o=t.d(i,r),s=typeof i[r]==`string`?i[r]:void 0,c=n&&e.name in n?n[e.name]:void 0;return{tagName:e.name,className:i.class,id:i.id,dir:i.dir,lang:i.lang,attributes:o,tw:s,style:a,preset:c}}function N(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=O(r))}return t}function P(e){let t={},n=0,r=-1,i=0,a=i=>{if(r<0)return;let a=e.slice(n,r).trim(),o=e.slice(r+1,i).trim();a&&o&&(t[L(a)]=o)};for(let t=0;t<e.length;t+=1){let o=e[t];if(o===`\\`)t+=1;else if(o===`"`||o===`'`)t=F(e,t);else if(o===`/`&&e[t+1]===`*`)t=I(e,t);else if(o===`(`)i+=1;else if(o===`)`)i=Math.max(0,i-1);else if(i>0)continue;else o===`:`&&r<0?r=t:o===`;`&&(a(t),n=t+1,r=-1)}return a(e.length),Object.keys(t).length>0?t:void 0}function F(e,t){let n=e[t];for(let r=t+1;r<e.length;r+=1)if(e[r]===`\\`)r+=1;else if(e[r]===n)return r;return e.length}function I(e,t){let n=e.indexOf(`*/`,t+2);return n<0?e.length:n+1}function L(e){return e.startsWith(`--`)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function R(e){if(!e)return;let t=Number(e);return Number.isFinite(t)?t:void 0}const z=e=>`text`in e&&typeof e.text==`string`&&e.text.trim()===``;function B(n){let{nodes:r,css:i}=A(n);for(;r[0]&&z(r[0]);)r.shift();for(;r.at(-1)&&z(r.at(-1));)r.pop();let a;a=r.length===0?e.t({}):r.length===1&&r[0]?r[0]:e.t({style:{display:`block`,width:e.a(100),height:e.a(100)},children:r});let o={node:a,css:i,get stylesheets(){return t.u(),i}};return t.l(o),o}exports.fromHtml=B;
package/dist/html.d.cts CHANGED
@@ -1,8 +1,11 @@
1
- import { r as Node } from "./types-Bfi8SERZ.cjs";
1
+ import { c as Node } from "./types-BWYDTgEO.cjs";
2
2
  //#region src/html/index.d.ts
3
- declare function fromHtml(html: string): {
3
+ interface FromHtmlResult {
4
4
  node: Node;
5
+ css: string[];
6
+ /** @deprecated Use `css` instead. */
5
7
  stylesheets: string[];
6
- };
8
+ }
9
+ declare function fromHtml(html: string): FromHtmlResult;
7
10
  //#endregion
8
- export { fromHtml };
11
+ export { FromHtmlResult, fromHtml };
package/dist/html.d.mts CHANGED
@@ -1,8 +1,11 @@
1
- import { r as Node } from "./types-Bfi8SERZ.mjs";
1
+ import { c as Node } from "./types-BWYDTgEO.mjs";
2
2
  //#region src/html/index.d.ts
3
- declare function fromHtml(html: string): {
3
+ interface FromHtmlResult {
4
4
  node: Node;
5
+ css: string[];
6
+ /** @deprecated Use `css` instead. */
5
7
  stylesheets: string[];
6
- };
8
+ }
9
+ declare function fromHtml(html: string): FromHtmlResult;
7
10
  //#endregion
8
- export { fromHtml };
11
+ export { FromHtmlResult, fromHtml };
package/dist/html.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{a as e,i as t,l as n,t as r}from"./helpers-CVQCT1Rh.mjs";import{i,l as a,u as o}from"./utils-Bhe8BVxR.mjs";var s=Symbol(`Fragment`),c=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),l=new Set([`script`,`style`]),u=/(?:<(\/?)([a-zA-Z][a-zA-Z0-9\:-]*)(?:\s([^>]*?))?((?:\s*\/)?)>|(<\!\-\-)([\s\S]*?)(\-\->)|(<\!)([\s\S]*?)(>))/gm,d=64,f=46,p=45,m=58,h=95,g=61,_=34,v=39,y=92;function b(e){return e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57||e===d||e===f||e===p||e===m||e===h}function x(e){let t={};if(e){let n=`none`,r,i=``,a;for(let o=0;o<e.length;o++){let s=e.charCodeAt(o);if(n===`none`)b(s)?(r&&(t[r]=i,r=void 0,i=``),a=o,n=`key`):s===g&&r&&(n=`value`);else if(n===`key`)b(s)||(r=e.substring(a,o),n=s===g?`value`:`none`);else if(s===_||s===v){let t=s===_?`"`:`'`,r=o+1,a=e.indexOf(t,r);for(;a>0&&e.charCodeAt(a-1)===y;)a=e.indexOf(t,a+1);if(a===-1)break;i=e.substring(r,a),o=a,n=`none`}}n===`key`&&a!=null&&a<e.length&&(r=e.substring(a,e.length)),r&&(t[r]=i)}return t}function S(e){let t=typeof e==`string`?e:e.value,n,r,i,a,o,s,d,f,p,m=[];u.lastIndex=0,r=n={type:0,children:[]};let h=0;function g(){a=t.substring(h,u.lastIndex-i[0].length),a&&r.children.push({type:2,value:a,parent:r})}for(;i=u.exec(t);){if(s=i[5]||i[8],d=i[6]||i[9],f=i[7]||i[10],l.has(r.name)&&i[2]!==r.name){o=u.lastIndex-i[0].length,r.children.length>0&&(r.children[0].value+=i[0]);continue}else if(s===`<!--`){if(o=u.lastIndex-i[0].length,l.has(r.name))continue;p={type:3,value:d,parent:r,loc:[{start:o,end:o+s.length},{start:u.lastIndex-f.length,end:u.lastIndex}]},m.push(p),p.parent.children.push(p)}else if(s===`<!`)o=u.lastIndex-i[0].length,p={type:4,value:d,parent:r,loc:[{start:o,end:o+s.length},{start:u.lastIndex-f.length,end:u.lastIndex}]},m.push(p),p.parent.children.push(p);else if(i[1]!==`/`)if(g(),l.has(r.name)){h=u.lastIndex,g();continue}else p={type:1,name:i[2]+``,attributes:x(i[3]),parent:r,children:[],loc:[{start:u.lastIndex-i[0].length,end:u.lastIndex}]},m.push(p),p.parent.children.push(p),i[4]&&i[4].indexOf(`/`)>-1||c.has(p.name)?(p.loc[1]=p.loc[0],p.isSelfClosingTag=!0):r=p;else g(),i[2]+``===r.name?(p=r,r=p.parent,p.loc.push({start:u.lastIndex-i[0].length,end:u.lastIndex}),a=t.substring(p.loc[0].end,p.loc[1].start),p.children.length===0&&p.children.push({type:2,value:a,parent:r})):i[2]+``===m[m.length-1].name&&m[m.length-1].isSelfClosingTag===!0&&(p=m[m.length-1],p.loc.push({start:u.lastIndex-i[0].length,end:u.lastIndex}));h=u.lastIndex}return a=t.slice(h),r.children.push({type:2,value:a,parent:r}),n}var C=Symbol(`HTMLString`),w=Symbol(`RenderFn`);function T(e,t=[C]){let n={value:e};for(let e of t)Object.defineProperty(n,e,{value:!0,enumerable:!1,writable:!1});return n}var E={"&":`&amp;`,"<":`&lt;`,">":`&gt;`};function D(e){return e.replace(/[&<>]/g,e=>E[e]||e)}function O(e){let t=``;for(let[n,r]of Object.entries(e))t+=` ${n}="${r}"`;return t}function k(e){if(e.children.length===0){let t=e;for(;t=t.parent;)if(t.name===`svg`)return!0}return!1}function A(e){let{name:t,attributes:n={}}=e,r=e.children.map(e=>j(e)).join(``);if(w in e){let t=e[w](n,T(r));return t&&t[C]?t.value:D(String(t))}if(t===s)return r;let i=k(e);return i||c.has(t)?`<${e.name}${O(n)}${i?` /`:``}>`:`<${e.name}${O(n)}>${r}</${e.name}>`}function j(e){switch(e.type){case 0:return e.children.map(e=>j(e)).join(``);case 1:return A(e);case 2:return`${e.value}`;case 3:return`<!--${e.value}-->`;case 4:return`<!${e.value}>`}}const M={quot:`"`,amp:`&`,lt:`<`,gt:`>`,apos:`'`,nbsp:`\xA0`,iexcl:`¡`,cent:`¢`,pound:`£`,curren:`¤`,yen:`¥`,brvbar:`¦`,sect:`§`,uml:`¨`,copy:`©`,ordf:`ª`,laquo:`«`,not:`¬`,shy:`­`,reg:`®`,macr:`¯`,deg:`°`,plusmn:`±`,sup2:`²`,sup3:`³`,acute:`´`,micro:`µ`,para:`¶`,middot:`·`,cedil:`¸`,sup1:`¹`,ordm:`º`,raquo:`»`,frac14:`¼`,frac12:`½`,frac34:`¾`,iquest:`¿`,Agrave:`À`,Aacute:`Á`,Acirc:`Â`,Atilde:`Ã`,Auml:`Ä`,Aring:`Å`,AElig:`Æ`,Ccedil:`Ç`,Egrave:`È`,Eacute:`É`,Ecirc:`Ê`,Euml:`Ë`,Igrave:`Ì`,Iacute:`Í`,Icirc:`Î`,Iuml:`Ï`,ETH:`Ð`,Ntilde:`Ñ`,Ograve:`Ò`,Oacute:`Ó`,Ocirc:`Ô`,Otilde:`Õ`,Ouml:`Ö`,times:`×`,Oslash:`Ø`,Ugrave:`Ù`,Uacute:`Ú`,Ucirc:`Û`,Uuml:`Ü`,Yacute:`Ý`,THORN:`Þ`,szlig:`ß`,agrave:`à`,aacute:`á`,acirc:`â`,atilde:`ã`,auml:`ä`,aring:`å`,aelig:`æ`,ccedil:`ç`,egrave:`è`,eacute:`é`,ecirc:`ê`,euml:`ë`,igrave:`ì`,iacute:`í`,icirc:`î`,iuml:`ï`,eth:`ð`,ntilde:`ñ`,ograve:`ò`,oacute:`ó`,ocirc:`ô`,otilde:`õ`,ouml:`ö`,divide:`÷`,oslash:`ø`,ugrave:`ù`,uacute:`ú`,ucirc:`û`,uuml:`ü`,yacute:`ý`,thorn:`þ`,yuml:`ÿ`,fnof:`ƒ`,Alpha:`Α`,Beta:`Β`,Gamma:`Γ`,Delta:`Δ`,Epsilon:`Ε`,Zeta:`Ζ`,Eta:`Η`,Theta:`Θ`,Iota:`Ι`,Kappa:`Κ`,Lambda:`Λ`,Mu:`Μ`,Nu:`Ν`,Xi:`Ξ`,Omicron:`Ο`,Pi:`Π`,Rho:`Ρ`,Sigma:`Σ`,Tau:`Τ`,Upsilon:`Υ`,Phi:`Φ`,Chi:`Χ`,Psi:`Ψ`,Omega:`Ω`,alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,iota:`ι`,kappa:`κ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,omicron:`ο`,pi:`π`,rho:`ρ`,sigmaf:`ς`,sigma:`σ`,tau:`τ`,upsilon:`υ`,phi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,thetasym:`ϑ`,upsih:`ϒ`,piv:`ϖ`,bull:`•`,hellip:`…`,prime:`′`,Prime:`″`,oline:`‾`,frasl:`⁄`,weierp:`℘`,image:`ℑ`,real:`ℜ`,trade:`™`,alefsym:`ℵ`,larr:`←`,uarr:`↑`,rarr:`→`,darr:`↓`,harr:`↔`,crarr:`↵`,lArr:`⇐`,uArr:`⇑`,rArr:`⇒`,dArr:`⇓`,hArr:`⇔`,forall:`∀`,part:`∂`,exist:`∃`,empty:`∅`,nabla:`∇`,isin:`∈`,notin:`∉`,ni:`∋`,prod:`∏`,sum:`∑`,minus:`−`,lowast:`∗`,radic:`√`,prop:`∝`,infin:`∞`,ang:`∠`,and:`∧`,or:`∨`,cap:`∩`,cup:`∪`,int:`∫`,there4:`∴`,sim:`∼`,cong:`≅`,asymp:`≈`,ne:`≠`,equiv:`≡`,le:`≤`,ge:`≥`,sub:`⊂`,sup:`⊃`,nsub:`⊄`,sube:`⊆`,supe:`⊇`,oplus:`⊕`,otimes:`⊗`,perp:`⊥`,sdot:`⋅`,lceil:`⌈`,rceil:`⌉`,lfloor:`⌊`,rfloor:`⌋`,lang:`⟨`,rang:`⟩`,loz:`◊`,spades:`♠`,clubs:`♣`,hearts:`♥`,diams:`♦`,OElig:`Œ`,oelig:`œ`,Scaron:`Š`,scaron:`š`,Yuml:`Ÿ`,circ:`ˆ`,tilde:`˜`,ensp:` `,emsp:` `,thinsp:` `,zwnj:`‌`,zwj:`‍`,lrm:`‎`,rlm:`‏`,ndash:`–`,mdash:`—`,lsquo:`‘`,rsquo:`’`,sbquo:`‚`,ldquo:`“`,rdquo:`”`,bdquo:`„`,dagger:`†`,Dagger:`‡`,permil:`‰`,lsaquo:`‹`,rsaquo:`›`,euro:`€`};function N(e){return e.includes(`&`)?e.replace(/&(?:#(\d+)|#[xX]([\da-fA-F]+)|([a-zA-Z][\w-]+));/g,(e,t,n,r)=>t?P(Number(t))??e:n?P(Number.parseInt(n,16))??e:Object.hasOwn(M,r)?M[r]:e):e}function P(e){if(!(!Number.isInteger(e)||e<0||e>1114111)&&!(e>=55296&&e<=57343)){if(e===0)return`�`;if(e>=128&&e<=159)return`€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ`[e-128];try{return String.fromCodePoint(e)}catch{return}}}function F(e,t){let n=S(e),r={nodes:[],stylesheets:[]},i=o(t?.defaultStyles),a=t?.tailwindClassesProperty??`tw`;for(let e of n.children)I(e,i,a,r.nodes,r.stylesheets);return r}function I(e,a,o,s,c){if(e.type===3)return;if(e.type===2){let t=N(e.value??``);t&&s.push(n({text:t,preset:a?.span}));return}if(e.type===0){for(let t of e.children)I(t,a,o,s,c);return}if(e.type!==1)return;let l=e;if(l.name===`style`){let e=``;for(let t of l.children)t.type===2&&typeof t.value==`string`&&(e+=t.value);e&&c.push(e);return}if(l.name===`head`){let e=[];for(let t of l.children)I(t,a,o,e,c);return}let u=L(l,a,o);if(l.name===`br`){s.push(n({text:`
2
- `,preset:a?.br,...u}));return}if(l.name===`img`){let e=l.attributes?.src;if(!e)throw Error(`Image element must have a 'src' prop.`);s.push(t({src:e,width:U(l.attributes?.width),height:U(l.attributes?.height),...u}));return}if(i(l.name))return;if(l.name===`svg`){s.push(t({src:j(l),width:U(l.attributes?.width),height:U(l.attributes?.height),...u}));return}let d=!0,f=``;for(let e of l.children)if(e.type!==3){if(e.type!==2){d=!1;break}f+=e.value??``}if(d&&f){s.push(n({text:N(f),...u}));return}let p=[];for(let e of l.children)I(e,a,o,p,c);s.push(r({children:p,...u}))}function L(e,t,n){let r=e.attributes?R(e.attributes):{},i=typeof r.style==`string`?z(r.style):void 0,o=a(r,n),s=typeof r[n]==`string`?r[n]:void 0,c=t&&e.name in t?t[e.name]:void 0;return{tagName:e.name,className:r.class,id:r.id,dir:r.dir,lang:r.lang,attributes:o,tw:s,style:i,preset:c}}function R(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=N(r))}return t}function z(e){let t={},n=0,r=-1,i=0,a=i=>{if(r<0)return;let a=e.slice(n,r).trim(),o=e.slice(r+1,i).trim();a&&o&&(t[H(a)]=o)};for(let t=0;t<e.length;t+=1){let o=e[t];if(o===`\\`)t+=1;else if(o===`"`||o===`'`)t=B(e,t);else if(o===`/`&&e[t+1]===`*`)t=V(e,t);else if(o===`(`)i+=1;else if(o===`)`)i=Math.max(0,i-1);else if(i>0)continue;else o===`:`&&r<0?r=t:o===`;`&&(a(t),n=t+1,r=-1)}return a(e.length),Object.keys(t).length>0?t:void 0}function B(e,t){let n=e[t];for(let r=t+1;r<e.length;r+=1)if(e[r]===`\\`)r+=1;else if(e[r]===n)return r;return e.length}function V(e,t){let n=e.indexOf(`*/`,t+2);return n<0?e.length:n+1}function H(e){return e.startsWith(`--`)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function U(e){if(!e)return;let t=Number(e);return Number.isFinite(t)?t:void 0}const W=e=>`text`in e&&typeof e.text==`string`&&e.text.trim()===``;function G(t){let{nodes:n,stylesheets:i}=F(t);for(;n[0]&&W(n[0]);)n.shift();for(;n.at(-1)&&W(n.at(-1));)n.pop();return n.length===0?{node:r({}),stylesheets:i}:n.length===1&&n[0]?{node:n[0],stylesheets:i}:{node:r({style:{display:`block`,width:e(100),height:e(100)},children:n}),stylesheets:i}}export{G as fromHtml};
1
+ import{a as e,i as t,l as n,t as r}from"./helpers-CVQCT1Rh.mjs";import{d as i,f as a,i as o,l as s,u as c}from"./utils-4GQubbLq.mjs";var l=Symbol(`Fragment`),u=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),d=new Set([`script`,`style`]),f=/(?:<(\/?)([a-zA-Z][a-zA-Z0-9\:-]*)(?:\s([^>]*?))?((?:\s*\/)?)>|(<\!\-\-)([\s\S]*?)(\-\->)|(<\!)([\s\S]*?)(>))/gm,p=64,m=46,h=45,g=58,_=95,v=61,y=34,b=39,x=92;function S(e){return e>=97&&e<=122||e>=65&&e<=90||e>=48&&e<=57||e===p||e===m||e===h||e===g||e===_}function C(e){let t={};if(e){let n=`none`,r,i=``,a;for(let o=0;o<e.length;o++){let s=e.charCodeAt(o);if(n===`none`)S(s)?(r&&(t[r]=i,r=void 0,i=``),a=o,n=`key`):s===v&&r&&(n=`value`);else if(n===`key`)S(s)||(r=e.substring(a,o),n=s===v?`value`:`none`);else if(s===y||s===b){let t=s===y?`"`:`'`,r=o+1,a=e.indexOf(t,r);for(;a>0&&e.charCodeAt(a-1)===x;)a=e.indexOf(t,a+1);if(a===-1)break;i=e.substring(r,a),o=a,n=`none`}}n===`key`&&a!=null&&a<e.length&&(r=e.substring(a,e.length)),r&&(t[r]=i)}return t}function w(e){let t=typeof e==`string`?e:e.value,n,r,i,a,o,s,c,l,p,m=[];f.lastIndex=0,r=n={type:0,children:[]};let h=0;function g(){a=t.substring(h,f.lastIndex-i[0].length),a&&r.children.push({type:2,value:a,parent:r})}for(;i=f.exec(t);){if(s=i[5]||i[8],c=i[6]||i[9],l=i[7]||i[10],d.has(r.name)&&i[2]!==r.name){o=f.lastIndex-i[0].length,r.children.length>0&&(r.children[0].value+=i[0]);continue}if(s===`<!--`){if(o=f.lastIndex-i[0].length,d.has(r.name))continue;p={type:3,value:c,parent:r,loc:[{start:o,end:o+s.length},{start:f.lastIndex-l.length,end:f.lastIndex}]},m.push(p),p.parent.children.push(p)}else if(s===`<!`)o=f.lastIndex-i[0].length,p={type:4,value:c,parent:r,loc:[{start:o,end:o+s.length},{start:f.lastIndex-l.length,end:f.lastIndex}]},m.push(p),p.parent.children.push(p);else if(i[1]!==`/`){if(g(),d.has(r.name)){h=f.lastIndex,g();continue}p={type:1,name:i[2]+``,attributes:C(i[3]),parent:r,children:[],loc:[{start:f.lastIndex-i[0].length,end:f.lastIndex}]},m.push(p),p.parent.children.push(p),i[4]&&i[4].indexOf(`/`)>-1||u.has(p.name)?(p.loc[1]=p.loc[0],p.isSelfClosingTag=!0):r=p}else g(),i[2]+``===r.name?(p=r,r=p.parent,p.loc.push({start:f.lastIndex-i[0].length,end:f.lastIndex}),a=t.substring(p.loc[0].end,p.loc[1].start),p.children.length===0&&p.children.push({type:2,value:a,parent:r})):i[2]+``===m[m.length-1].name&&m[m.length-1].isSelfClosingTag===!0&&(p=m[m.length-1],p.loc.push({start:f.lastIndex-i[0].length,end:f.lastIndex}));h=f.lastIndex}return a=t.slice(h),r.children.push({type:2,value:a,parent:r}),n}var T=Symbol(`HTMLString`),E=Symbol(`RenderFn`);function D(e,t=[T]){let n={value:e};for(let e of t)Object.defineProperty(n,e,{value:!0,enumerable:!1,writable:!1});return n}var O={"&":`&amp;`,"<":`&lt;`,">":`&gt;`};function k(e){return e.replace(/[&<>]/g,e=>O[e]||e)}function A(e){let t=``;for(let[n,r]of Object.entries(e))t+=` ${n}="${r}"`;return t}function j(e){if(e.children.length===0){let t=e;for(;t=t.parent;)if(t.name===`svg`)return!0}return!1}function M(e){let{name:t,attributes:n={}}=e,r=e.children.map(e=>N(e)).join(``);if(E in e){let t=e[E](n,D(r));return t&&t[T]?t.value:k(String(t))}if(t===l)return r;let i=j(e);return i||u.has(t)?`<${e.name}${A(n)}${i?` /`:``}>`:`<${e.name}${A(n)}>${r}</${e.name}>`}function N(e){switch(e.type){case 0:return e.children.map(e=>N(e)).join(``);case 1:return M(e);case 2:return`${e.value}`;case 3:return`<!--${e.value}-->`;case 4:return`<!${e.value}>`}}const P={quot:`"`,amp:`&`,lt:`<`,gt:`>`,apos:`'`,nbsp:`\xA0`,iexcl:`¡`,cent:`¢`,pound:`£`,curren:`¤`,yen:`¥`,brvbar:`¦`,sect:`§`,uml:`¨`,copy:`©`,ordf:`ª`,laquo:`«`,not:`¬`,shy:`­`,reg:`®`,macr:`¯`,deg:`°`,plusmn:`±`,sup2:`²`,sup3:`³`,acute:`´`,micro:`µ`,para:`¶`,middot:`·`,cedil:`¸`,sup1:`¹`,ordm:`º`,raquo:`»`,frac14:`¼`,frac12:`½`,frac34:`¾`,iquest:`¿`,Agrave:`À`,Aacute:`Á`,Acirc:`Â`,Atilde:`Ã`,Auml:`Ä`,Aring:`Å`,AElig:`Æ`,Ccedil:`Ç`,Egrave:`È`,Eacute:`É`,Ecirc:`Ê`,Euml:`Ë`,Igrave:`Ì`,Iacute:`Í`,Icirc:`Î`,Iuml:`Ï`,ETH:`Ð`,Ntilde:`Ñ`,Ograve:`Ò`,Oacute:`Ó`,Ocirc:`Ô`,Otilde:`Õ`,Ouml:`Ö`,times:`×`,Oslash:`Ø`,Ugrave:`Ù`,Uacute:`Ú`,Ucirc:`Û`,Uuml:`Ü`,Yacute:`Ý`,THORN:`Þ`,szlig:`ß`,agrave:`à`,aacute:`á`,acirc:`â`,atilde:`ã`,auml:`ä`,aring:`å`,aelig:`æ`,ccedil:`ç`,egrave:`è`,eacute:`é`,ecirc:`ê`,euml:`ë`,igrave:`ì`,iacute:`í`,icirc:`î`,iuml:`ï`,eth:`ð`,ntilde:`ñ`,ograve:`ò`,oacute:`ó`,ocirc:`ô`,otilde:`õ`,ouml:`ö`,divide:`÷`,oslash:`ø`,ugrave:`ù`,uacute:`ú`,ucirc:`û`,uuml:`ü`,yacute:`ý`,thorn:`þ`,yuml:`ÿ`,fnof:`ƒ`,Alpha:`Α`,Beta:`Β`,Gamma:`Γ`,Delta:`Δ`,Epsilon:`Ε`,Zeta:`Ζ`,Eta:`Η`,Theta:`Θ`,Iota:`Ι`,Kappa:`Κ`,Lambda:`Λ`,Mu:`Μ`,Nu:`Ν`,Xi:`Ξ`,Omicron:`Ο`,Pi:`Π`,Rho:`Ρ`,Sigma:`Σ`,Tau:`Τ`,Upsilon:`Υ`,Phi:`Φ`,Chi:`Χ`,Psi:`Ψ`,Omega:`Ω`,alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,iota:`ι`,kappa:`κ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,omicron:`ο`,pi:`π`,rho:`ρ`,sigmaf:`ς`,sigma:`σ`,tau:`τ`,upsilon:`υ`,phi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,thetasym:`ϑ`,upsih:`ϒ`,piv:`ϖ`,bull:`•`,hellip:`…`,prime:`′`,Prime:`″`,oline:`‾`,frasl:`⁄`,weierp:`℘`,image:`ℑ`,real:`ℜ`,trade:`™`,alefsym:`ℵ`,larr:`←`,uarr:`↑`,rarr:`→`,darr:`↓`,harr:`↔`,crarr:`↵`,lArr:`⇐`,uArr:`⇑`,rArr:`⇒`,dArr:`⇓`,hArr:`⇔`,forall:`∀`,part:`∂`,exist:`∃`,empty:`∅`,nabla:`∇`,isin:`∈`,notin:`∉`,ni:`∋`,prod:`∏`,sum:`∑`,minus:`−`,lowast:`∗`,radic:`√`,prop:`∝`,infin:`∞`,ang:`∠`,and:`∧`,or:`∨`,cap:`∩`,cup:`∪`,int:`∫`,there4:`∴`,sim:`∼`,cong:`≅`,asymp:`≈`,ne:`≠`,equiv:`≡`,le:`≤`,ge:`≥`,sub:`⊂`,sup:`⊃`,nsub:`⊄`,sube:`⊆`,supe:`⊇`,oplus:`⊕`,otimes:`⊗`,perp:`⊥`,sdot:`⋅`,lceil:`⌈`,rceil:`⌉`,lfloor:`⌊`,rfloor:`⌋`,lang:`⟨`,rang:`⟩`,loz:`◊`,spades:`♠`,clubs:`♣`,hearts:`♥`,diams:`♦`,OElig:`Œ`,oelig:`œ`,Scaron:`Š`,scaron:`š`,Yuml:`Ÿ`,circ:`ˆ`,tilde:`˜`,ensp:` `,emsp:` `,thinsp:` `,zwnj:`‌`,zwj:`‍`,lrm:`‎`,rlm:`‏`,ndash:`–`,mdash:`—`,lsquo:`‘`,rsquo:`’`,sbquo:`‚`,ldquo:`“`,rdquo:`”`,bdquo:`„`,dagger:`†`,Dagger:`‡`,permil:`‰`,lsaquo:`‹`,rsaquo:`›`,euro:`€`};function F(e){return e.includes(`&`)?e.replace(/&(?:#(\d+)|#[xX]([\da-fA-F]+)|([a-zA-Z][\w-]+));/g,(e,t,n,r)=>t?I(Number(t))??e:n?I(Number.parseInt(n,16))??e:Object.hasOwn(P,r)?P[r]:e):e}function I(e){if(!(!Number.isInteger(e)||e<0||e>1114111)&&!(e>=55296&&e<=57343)){if(e===0)return`�`;if(e>=128&&e<=159)return`€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ`[e-128];try{return String.fromCodePoint(e)}catch{return}}}function L(e,t){let n=w(e),r={nodes:[],css:[]},i=a(t?.defaultStyles),o=t?.tailwindClassesProperty??`tw`;for(let e of n.children)R(e,i,o,r.nodes,r.css);return r}function R(e,i,a,s,c){if(e.type===3)return;if(e.type===2){let t=F(e.value??``);t&&s.push(n({text:t,preset:i?.span}));return}if(e.type===0){for(let t of e.children)R(t,i,a,s,c);return}if(e.type!==1)return;let l=e;if(l.name===`style`){let e=``;for(let t of l.children)t.type===2&&typeof t.value==`string`&&(e+=t.value);e&&c.push(e);return}if(l.name===`head`){let e=[];for(let t of l.children)R(t,i,a,e,c);return}let u=z(l,i,a);if(l.name===`br`){s.push(n({text:`
2
+ `,preset:i?.br,...u}));return}if(l.name===`img`){let e=l.attributes?.src;if(!e)throw Error(`Image element must have a 'src' prop.`);s.push(t({src:e,width:G(l.attributes?.width),height:G(l.attributes?.height),...u}));return}if(o(l.name))return;if(l.name===`svg`){s.push(t({src:N(l),width:G(l.attributes?.width),height:G(l.attributes?.height),...u}));return}let d=!0,f=``;for(let e of l.children)if(e.type!==3){if(e.type!==2){d=!1;break}f+=e.value??``}if(d&&f){s.push(n({text:F(f),...u}));return}let p=[];for(let e of l.children)R(e,i,a,p,c);s.push(r({children:p,...u}))}function z(e,t,n){let r=e.attributes?B(e.attributes):{},a=typeof r.style==`string`?V(r.style):void 0,o=i(r,n),s=typeof r[n]==`string`?r[n]:void 0,c=t&&e.name in t?t[e.name]:void 0;return{tagName:e.name,className:r.class,id:r.id,dir:r.dir,lang:r.lang,attributes:o,tw:s,style:a,preset:c}}function B(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=F(r))}return t}function V(e){let t={},n=0,r=-1,i=0,a=i=>{if(r<0)return;let a=e.slice(n,r).trim(),o=e.slice(r+1,i).trim();a&&o&&(t[W(a)]=o)};for(let t=0;t<e.length;t+=1){let o=e[t];if(o===`\\`)t+=1;else if(o===`"`||o===`'`)t=H(e,t);else if(o===`/`&&e[t+1]===`*`)t=U(e,t);else if(o===`(`)i+=1;else if(o===`)`)i=Math.max(0,i-1);else if(i>0)continue;else o===`:`&&r<0?r=t:o===`;`&&(a(t),n=t+1,r=-1)}return a(e.length),Object.keys(t).length>0?t:void 0}function H(e,t){let n=e[t];for(let r=t+1;r<e.length;r+=1)if(e[r]===`\\`)r+=1;else if(e[r]===n)return r;return e.length}function U(e,t){let n=e.indexOf(`*/`,t+2);return n<0?e.length:n+1}function W(e){return e.startsWith(`--`)?e:e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}function G(e){if(!e)return;let t=Number(e);return Number.isFinite(t)?t:void 0}const K=e=>`text`in e&&typeof e.text==`string`&&e.text.trim()===``;function q(t){let{nodes:n,css:i}=L(t);for(;n[0]&&K(n[0]);)n.shift();for(;n.at(-1)&&K(n.at(-1));)n.pop();let a;a=n.length===0?r({}):n.length===1&&n[0]?n[0]:r({style:{display:`block`,width:e(100),height:e(100)},children:n});let o={node:a,css:i,get stylesheets(){return c(),i}};return s(o),o}export{q as fromHtml};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./fonts-B5ZDjGc1.cjs"),t=require("./helpers-4kGcvc-Q.cjs");exports.LIST_MARKER_CHARACTERS=e.t,exports.collectCodepoints=e.n,exports.container=t.t,exports.defaultMaxFetchBytes=e.o,exports.em=t.n,exports.fetchOk=e.s,exports.fontFromUrl=e.r,exports.fr=t.r,exports.googleFonts=e.i,exports.image=t.i,exports.percentage=t.a,exports.prepareImages=e.c,exports.readBodyLimited=e.l,exports.rem=t.o,exports.rgba=t.s,exports.style=t.c,exports.subsetFonts=e.a,exports.text=t.l,exports.vh=t.u,exports.vw=t.d;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./fonts-D-2FIgft.cjs"),t=require("./helpers-4kGcvc-Q.cjs");exports.LIST_MARKER_CHARACTERS=e.t,exports.collectCodepoints=e.n,exports.container=t.t,exports.defaultMaxFetchBytes=e.o,exports.em=t.n,exports.fetchOk=e.s,exports.fontFromUrl=e.r,exports.fr=t.r,exports.googleFonts=e.i,exports.image=t.i,exports.percentage=t.a,exports.prepareImages=e.c,exports.readBodyLimited=e.l,exports.rem=t.o,exports.rgba=t.s,exports.style=t.c,exports.subsetFonts=e.a,exports.text=t.l,exports.vh=t.u,exports.vw=t.d;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { a as NodeMetadata, c as TextFit, i as NodeAttributes, l as TextNode, n as ImageNode, o as ReactElementLike, r as Node, s as RgbaImage, t as ContainerNode } from "./types-Bfi8SERZ.cjs";
2
- import { _ as fetchOk, a as GoogleFontsOptions, c as fontFromUrl, d as FetchLike, f as FetchOptions, g as defaultMaxFetchBytes, h as PrepareImagesOptions, i as GoogleFontFamily, l as googleFonts, m as ImageFetchCache, n as FontSubset, o as LIST_MARKER_CHARACTERS, p as FetchedImage, r as GenericFontFamily, s as collectCodepoints, t as CodepointSource, u as subsetFonts, v as prepareImages, y as readBodyLimited } from "./fonts-BDvIOc4B.cjs";
1
+ import { a as ImageNode, c as Node, d as ReactElementLike, f as RgbaImage, g as TextNode, h as TextFit, i as Declarations, l as NodeAttributes, m as SupportsRule, n as ContainerNode, o as LayerRule, p as StyleRule, r as CssInput, s as MediaRule, t as AnimationRule, u as NodeMetadata } from "./types-BWYDTgEO.cjs";
2
+ import { _ as fetchOk, a as GoogleFontsOptions, c as fontFromUrl, d as FetchLike, f as FetchOptions, g as defaultMaxFetchBytes, h as PrepareImagesOptions, i as GoogleFontFamily, l as googleFonts, m as ImageFetchCache, n as FontSubset, o as LIST_MARKER_CHARACTERS, p as FetchedImage, r as GenericFontFamily, s as collectCodepoints, t as CodepointSource, u as subsetFonts, v as prepareImages, y as readBodyLimited } from "./fonts-DJzerTBP.cjs";
3
3
  import { CSSProperties } from "react";
4
4
  //#region src/helpers.d.ts
5
5
  declare function container(props: Omit<ContainerNode, "type">): ContainerNode;
@@ -15,4 +15,4 @@ declare function rem(rem: number): `${number}rem`;
15
15
  declare function fr(fr: number): `${number}fr`;
16
16
  declare function rgba(r: number, g: number, b: number, a?: number): `rgb(${number} ${number} ${number} / ${number})`;
17
17
  //#endregion
18
- export { CodepointSource, ContainerNode, FetchLike, FetchOptions, FetchedImage, FontSubset, GenericFontFamily, GoogleFontFamily, GoogleFontsOptions, ImageFetchCache, ImageNode, LIST_MARKER_CHARACTERS, Node, NodeAttributes, NodeMetadata, PrepareImagesOptions, ReactElementLike, RgbaImage, TextFit, TextNode, collectCodepoints, container, defaultMaxFetchBytes, em, fetchOk, fontFromUrl, fr, googleFonts, image, percentage, prepareImages, readBodyLimited, rem, rgba, style, subsetFonts, text, vh, vw };
18
+ export { AnimationRule, CodepointSource, ContainerNode, CssInput, Declarations, FetchLike, FetchOptions, FetchedImage, FontSubset, GenericFontFamily, GoogleFontFamily, GoogleFontsOptions, ImageFetchCache, ImageNode, LIST_MARKER_CHARACTERS, LayerRule, MediaRule, Node, NodeAttributes, NodeMetadata, PrepareImagesOptions, ReactElementLike, RgbaImage, StyleRule, SupportsRule, TextFit, TextNode, collectCodepoints, container, defaultMaxFetchBytes, em, fetchOk, fontFromUrl, fr, googleFonts, image, percentage, prepareImages, readBodyLimited, rem, rgba, style, subsetFonts, text, vh, vw };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { a as NodeMetadata, c as TextFit, i as NodeAttributes, l as TextNode, n as ImageNode, o as ReactElementLike, r as Node, s as RgbaImage, t as ContainerNode } from "./types-Bfi8SERZ.mjs";
2
- import { _ as fetchOk, a as GoogleFontsOptions, c as fontFromUrl, d as FetchLike, f as FetchOptions, g as defaultMaxFetchBytes, h as PrepareImagesOptions, i as GoogleFontFamily, l as googleFonts, m as ImageFetchCache, n as FontSubset, o as LIST_MARKER_CHARACTERS, p as FetchedImage, r as GenericFontFamily, s as collectCodepoints, t as CodepointSource, u as subsetFonts, v as prepareImages, y as readBodyLimited } from "./fonts-BAsrZEM-.mjs";
1
+ import { a as ImageNode, c as Node, d as ReactElementLike, f as RgbaImage, g as TextNode, h as TextFit, i as Declarations, l as NodeAttributes, m as SupportsRule, n as ContainerNode, o as LayerRule, p as StyleRule, r as CssInput, s as MediaRule, t as AnimationRule, u as NodeMetadata } from "./types-BWYDTgEO.mjs";
2
+ import { _ as fetchOk, a as GoogleFontsOptions, c as fontFromUrl, d as FetchLike, f as FetchOptions, g as defaultMaxFetchBytes, h as PrepareImagesOptions, i as GoogleFontFamily, l as googleFonts, m as ImageFetchCache, n as FontSubset, o as LIST_MARKER_CHARACTERS, p as FetchedImage, r as GenericFontFamily, s as collectCodepoints, t as CodepointSource, u as subsetFonts, v as prepareImages, y as readBodyLimited } from "./fonts-BV8jtksq.mjs";
3
3
  import { CSSProperties } from "react";
4
4
  //#region src/helpers.d.ts
5
5
  declare function container(props: Omit<ContainerNode, "type">): ContainerNode;
@@ -15,4 +15,4 @@ declare function rem(rem: number): `${number}rem`;
15
15
  declare function fr(fr: number): `${number}fr`;
16
16
  declare function rgba(r: number, g: number, b: number, a?: number): `rgb(${number} ${number} ${number} / ${number})`;
17
17
  //#endregion
18
- export { CodepointSource, ContainerNode, FetchLike, FetchOptions, FetchedImage, FontSubset, GenericFontFamily, GoogleFontFamily, GoogleFontsOptions, ImageFetchCache, ImageNode, LIST_MARKER_CHARACTERS, Node, NodeAttributes, NodeMetadata, PrepareImagesOptions, ReactElementLike, RgbaImage, TextFit, TextNode, collectCodepoints, container, defaultMaxFetchBytes, em, fetchOk, fontFromUrl, fr, googleFonts, image, percentage, prepareImages, readBodyLimited, rem, rgba, style, subsetFonts, text, vh, vw };
18
+ export { AnimationRule, CodepointSource, ContainerNode, CssInput, Declarations, FetchLike, FetchOptions, FetchedImage, FontSubset, GenericFontFamily, GoogleFontFamily, GoogleFontsOptions, ImageFetchCache, ImageNode, LIST_MARKER_CHARACTERS, LayerRule, MediaRule, Node, NodeAttributes, NodeMetadata, PrepareImagesOptions, ReactElementLike, RgbaImage, StyleRule, SupportsRule, TextFit, TextNode, collectCodepoints, container, defaultMaxFetchBytes, em, fetchOk, fontFromUrl, fr, googleFonts, image, percentage, prepareImages, readBodyLimited, rem, rgba, style, subsetFonts, text, vh, vw };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./fonts-ny0W1U0i.mjs";import{a as l,c as u,d,i as f,l as p,n as m,o as h,r as g,s as _,t as v,u as y}from"./helpers-CVQCT1Rh.mjs";export{c as LIST_MARKER_CHARACTERS,i as collectCodepoints,v as container,a as defaultMaxFetchBytes,m as em,s as fetchOk,o as fontFromUrl,g as fr,n as googleFonts,f as image,l as percentage,t as prepareImages,r as readBodyLimited,h as rem,_ as rgba,u as style,e as subsetFonts,p as text,y as vh,d as vw};
1
+ import{a as e,c as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./fonts-RWAcijal.mjs";import{a as l,c as u,d,i as f,l as p,n as m,o as h,r as g,s as _,t as v,u as y}from"./helpers-CVQCT1Rh.mjs";export{c as LIST_MARKER_CHARACTERS,i as collectCodepoints,v as container,a as defaultMaxFetchBytes,m as em,s as fetchOk,o as fontFromUrl,g as fr,n as googleFonts,f as image,l as percentage,t as prepareImages,r as readBodyLimited,h as rem,_ as rgba,u as style,e as subsetFonts,p as text,y as vh,d as vw};
package/dist/jsx.cjs CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./helpers-4kGcvc-Q.cjs"),t=require("./utils-Cg2JlrJr.cjs");let n;function r(e,t){return typeof e==`object`&&e&&t in e?e[t]:void 0}function i(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function a(e){let t=r(e,`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`);if(typeof t==`object`&&t&&`H`in t){let e=t;return{get:()=>e.H,set:t=>{e.H=t}}}let n=r(r(e,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`),`ReactCurrentDispatcher`);if(typeof n==`object`&&n&&`current`in n){let e=n;return{get:()=>e.current,set:t=>{e.current=t}}}return null}function o(){return n??=import(`react`).then(e=>a(e.default??e)).catch(()=>null),n}function s(e,t){return e.contexts.has(t)?e.contexts.get(t):r(t,`_currentValue`)}const c=()=>{};function l(e,t){let n=t=>s(e,t),r=0;return{readContext:n,useContext:n,use:e=>{if(i(e)){if(e.status===`fulfilled`)return e.value;throw e.status===`rejected`?e.reason:e}return n(e)},useState:e=>[typeof e==`function`?e():e,c],useReducer:(e,t,n)=>[n?n(t):t,c],useMemo:e=>e(),useCallback:e=>e,useRef:e=>({current:e}),useEffect:c,useLayoutEffect:c,useInsertionEffect:c,useImperativeHandle:c,useDebugValue:c,useDeferredValue:e=>e,useTransition:()=>[!1,c],useOptimistic:e=>[e,c],useActionState:(e,t)=>[t,c,!1],useSyncExternalStore:(e,t,n)=>(n??t)(),useId:()=>`:t${t}-${r++}:`,useCacheRefresh:()=>c,useHostTransitionStatus:()=>({pending:!1,data:null,method:null,action:null})}}async function u(e,t,n){let r=await o();if(!r)return e(t);let a=n.ids.current++;for(let o=0;;o++){let s=r.get();r.set(l(n,a));let c;try{return e(t)}catch(e){c=e}finally{r.set(s)}if(!i(c)||o>=64)throw c;await d(c)}}async function d(e){try{e.value=await e,e.status=`fulfilled`}catch(t){e.reason=t,e.status=`rejected`}}function f(e){return typeof e==`string`||typeof e==`number`}function p(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function m(e){let n=[];for(let r in e)Object.hasOwn(e,r)&&n.push(`${t.t(r)}:${String(e[r]).trim()}`);return n.join(`;`)}const h=new Set(`stopColor.stopOpacity.strokeWidth.strokeDasharray.strokeDashoffset.strokeLinecap.strokeLinejoin.fillRule.clipRule.colorInterpolationFilters.floodColor.floodOpacity.accentHeight.alignmentBaseline.arabicForm.baselineShift.capHeight.clipPath.clipPathUnits.colorInterpolation.colorProfile.colorRendering.enableBackground.fillOpacity.fontFamily.fontSize.fontSizeAdjust.fontStretch.fontStyle.fontVariant.fontWeight.glyphName.glyphOrientationHorizontal.glyphOrientationVertical.horizAdvX.horizOriginX.imageRendering.letterSpacing.lightingColor.markerEnd.markerMid.markerStart.overlinePosition.overlineThickness.paintOrder.preserveAspectRatio.pointerEvents.shapeRendering.strokeMiterlimit.strokeOpacity.textAnchor.textDecoration.textRendering.transformOrigin.underlinePosition.underlineThickness.unicodeBidi.unicodeRange.unitsPerEm.vectorEffect.vertAdvY.vertOriginX.vertOriginY.vAlphabetic.vHanging.vIdeographic.vMathematical.wordSpacing.writingMode`.split(`.`));function g(e,n){if(e===`children`||n==null)return;let r;if(r=e===`className`?`class`:h.has(e)?t.t(e):e,typeof n==`boolean`)return`${r}="${String(n)}"`;if(e===`style`&&typeof n==`object`){let e=m(n);if(e)return`style="${p(e)}"`}return`${r}="${p(String(n))}"`}function _(e,t,n){let r=!1;for(let n in e){if(!Object.hasOwn(e,n))continue;let i=g(n,e[n]);i!==void 0&&(t.push(` `,i),n===`xmlns`&&(r=!0))}n&&!r&&t.push(` xmlns="http://www.w3.org/2000/svg"`)}const v=(e,n,r)=>{let i=e.props||{};if(t.n(e.type)){y(e.type(e.props),n,!1);return}if(typeof e.type==`symbol`){y(i.children,n,!1);return}if(t.a(e.type)){y(e.type.render(e.props,null),n,!1);return}if(t.s(e.type)){v({...e,type:e.type.type},n,r);return}if(typeof e.type!=`string`)return;n.push(`<`,e.type),_(i,n,r&&e.type===`svg`);let a=i.children;n.push(`>`),y(a,n,!1),n.push(`</`,e.type,`>`)};function y(e,n,r){if(e!=null&&e!==!1){if(f(e)){n.push(String(e));return}if(Array.isArray(e)){for(let t of e)y(t,n,!1);return}t.c(e)&&v(e,n,r)}}function b(e){let t=[];return y(e,t,!0),t.join(``)}function x({width:e,height:t,data:n,premultiplied:r,...i}){return{type:`img`,props:{...i,src:{width:e,height:t,data:n,premultiplied:r}},key:null}}function S(){return{nodes:[],stylesheets:[]}}async function C(n,r){let i=await w(n,{defaultStyles:T(r),presets:t.u(r?.defaultStyles),tailwindClassesProperty:r?.tailwindClassesProperty??`tw`,contexts:new Map,ids:{current:0}}),a=i.nodes,o;return o=a.length===0?e.t({}):a.length===1&&a[0]!==void 0?a[0]:e.t({children:a,style:{display:`block`,width:e.a(100),height:e.a(100)}}),{node:o,stylesheets:i.stylesheets}}async function w(n,r){return n==null||n===!1?S():n instanceof Promise?w(await n,r):typeof n==`object`&&Symbol.iterator in n?K(n,r):t.c(n)?await z(n,r):{nodes:[e.l({text:String(n),preset:r.presets?.span})],stylesheets:[]}}function T(e){return e&&`defaultStyles`in e?e.defaultStyles??t.d:t.d}const E=Symbol.for(`react.context`),D=Symbol.for(`react.provider`),O=Symbol.for(`react.consumer`);function k(e,t){let n=e.type;if(typeof n!=`object`||!n)return;let i=r(n,`$$typeof`);if(i===D)return A(e,r(n,`_context`),t);if(i===O)return j(e,r(n,`_context`)??n,t);if(i===E)return typeof P(e)==`function`?j(e,n,t):A(e,n,t)}function A(e,t,n){let i=new Map(n.contexts);return i.set(t,r(e.props,`value`)),G(e,{...n,contexts:i})}function j(e,n,r){let i=P(e);return t.n(i)?w(i(s(r,n)),r):G(e,r)}async function M(e,t,n){return w(await u(e,t,n),n)}function N(e,n){if(t.a(e.type)){let{render:t}=e.type;return M(e=>t(e,null),e.props,n)}if(t.s(e.type)){let r=e.type.type;return t.n(r)?M(r,e.props,n):z({...e,type:r},n)}}function P(e){if(typeof e.props==`object`&&e.props!==null&&`children`in e.props)return e.props.children}function F(e){if(!t.c(e))return;let n=P(e);if(typeof n==`string`)return n;if(typeof n==`number`)return String(n);if(Array.isArray(n)||typeof n==`object`&&n&&Symbol.iterator in n)return R(n);if(t.c(n)&&t.o(n))return F(n)}function I(e){let t=[];for(let n of e){let e=L(n);if(e===void 0)return;t.push(e)}return t.join(``)}function L(e){if(typeof e==`string`)return e;if(typeof e==`number`)return String(e);if(e==null||typeof e==`boolean`||typeof e==`symbol`)return``;if(typeof e==`object`&&Symbol.iterator in e)return I(e);if(!t.c(e))return;if(t.o(e))return L(P(e));let n=P(e);return n===void 0?``:typeof n==`object`&&n&&Symbol.iterator in n?I(n):L(n)}function R(e){let n=[],r=!1;for(let i of e){if(t.c(i))return;if(typeof i==`string`){r=!0,n.push(i);continue}if(typeof i==`number`){r=!0,n.push(String(i));continue}return}if(r)return n.join(``)}async function z(n,r){let i=k(n,r);if(i!==void 0)return i;if(t.n(n.type))return M(n.type,n.props,r);let a=N(n,r);if(a!==void 0)return a;if(t.o(n))return G(n,r);if(t.r(n,`style`)){let e=L(P(n));return{nodes:[],stylesheets:e&&e.length>0?[e]:[]}}if(t.r(n,`head`))return{nodes:[],stylesheets:(await G(n,r)).stylesheets};if(typeof n.type!=`string`||t.i(n.type))return S();let o=W(n,r);if(t.r(n,`br`))return{nodes:[e.l({text:`
2
- `,preset:r.presets?.br,...o})],stylesheets:[]};if(t.r(n,`img`))return{nodes:[B(n,r)],stylesheets:[]};if(t.r(n,`svg`))return{nodes:[V(n,r)],stylesheets:[]};let s=F(n);if(s!==void 0)return{nodes:[e.l({text:s,...o})],stylesheets:[]};let c=await G(n,r);return{nodes:[e.t({children:c.nodes,...o})],stylesheets:c.stylesheets}}function B(t,n){if(!t.props.src)throw Error(`Image element must have a 'src' prop.`);let r=W(t,n),i=t.props.width===void 0?void 0:Number(t.props.width),a=t.props.height===void 0?void 0:Number(t.props.height);return e.i({src:t.props.src,width:i,height:a,...r})}function V(t,n){let r=W(t,n);return e.i({src:b(t),width:t.props.width===void 0?void 0:Number(t.props.width),height:t.props.height===void 0?void 0:Number(t.props.height),...r})}function H(e,t){let n=t.presets,r=n&&typeof e.type==`string`&&e.type in n?n[e.type]:void 0,i=typeof e.props==`object`&&e.props!==null&&`style`in e.props&&typeof e.props.style==`object`&&e.props.style!==null?e.props.style:void 0;if(!i)return{preset:r};for(let e in i)if(Object.hasOwn(i,e))return{preset:r,style:i};return{preset:r}}function U(e,t){let n=t.tailwindClassesProperty;if(typeof e.props!=`object`||e.props===null||!(n in e.props))return;let r=e.props[n];if(typeof r==`string`)return r}function W(e,n){let r=e.props,{preset:i,style:a}=H(e,n),o=U(e,n),s=t.l(r,n.tailwindClassesProperty);return{tagName:typeof e.type==`string`?e.type:void 0,className:r.className??r.class,id:r.id,dir:r.dir,lang:r.lang,attributes:s,tw:o,style:a,preset:i}}function G(e,t){let n=P(e);return n===void 0?Promise.resolve(S()):w(n,t)}async function K(e,t){let n=[],r=new Set,i=0;for(let a of e){let e=i;i+=1;let o=w(a,t).then(t=>{n[e]=t}).finally(()=>r.delete(o));r.add(o),r.size>=8&&await Promise.race(r)}await Promise.all(r);let a=[],o=[];for(let e of n)e&&(a.push(...e.nodes),o.push(...e.stylesheets));return{nodes:a,stylesheets:o}}exports.Bitmap=x,exports.defaultStylePresets=t.d,exports.fromJsx=C;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./helpers-4kGcvc-Q.cjs"),t=require("./utils-BndQkSnW.cjs");let n;function r(e,t){return typeof e==`object`&&e&&t in e?e[t]:void 0}function i(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function a(e){let t=r(e,`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`);if(typeof t==`object`&&t&&`H`in t){let e=t;return{get:()=>e.H,set:t=>{e.H=t}}}let n=r(r(e,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`),`ReactCurrentDispatcher`);if(typeof n==`object`&&n&&`current`in n){let e=n;return{get:()=>e.current,set:t=>{e.current=t}}}return null}function o(){return n??=import(`react`).then(e=>a(e.default??e)).catch(()=>null),n}function s(e,t){return e.contexts.has(t)?e.contexts.get(t):r(t,`_currentValue`)}const c=()=>{};function l(e,t){let n=t=>s(e,t),r=0;return{readContext:n,useContext:n,use:e=>{if(i(e)){if(e.status===`fulfilled`)return e.value;throw e.status===`rejected`?e.reason:e}return n(e)},useState:e=>[typeof e==`function`?e():e,c],useReducer:(e,t,n)=>[n?n(t):t,c],useMemo:e=>e(),useCallback:e=>e,useRef:e=>({current:e}),useEffect:c,useLayoutEffect:c,useInsertionEffect:c,useImperativeHandle:c,useDebugValue:c,useDeferredValue:e=>e,useTransition:()=>[!1,c],useOptimistic:e=>[e,c],useActionState:(e,t)=>[t,c,!1],useSyncExternalStore:(e,t,n)=>(n??t)(),useId:()=>`:t${t}-${r++}:`,useCacheRefresh:()=>c,useHostTransitionStatus:()=>({pending:!1,data:null,method:null,action:null})}}async function u(e,t,n){let r=await o();if(!r)return e(t);let a=n.ids.current++;for(let o=0;;o++){let s=r.get();r.set(l(n,a));let c;try{return e(t)}catch(e){c=e}finally{r.set(s)}if(!i(c)||o>=64)throw c;await d(c)}}async function d(e){try{e.value=await e,e.status=`fulfilled`}catch(t){e.reason=t,e.status=`rejected`}}function f(e){return typeof e==`string`||typeof e==`number`}function p(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function m(e){let n=[];for(let r in e)Object.hasOwn(e,r)&&n.push(`${t.t(r)}:${String(e[r]).trim()}`);return n.join(`;`)}const h=new Set(`stopColor.stopOpacity.strokeWidth.strokeDasharray.strokeDashoffset.strokeLinecap.strokeLinejoin.fillRule.clipRule.colorInterpolationFilters.floodColor.floodOpacity.accentHeight.alignmentBaseline.arabicForm.baselineShift.capHeight.clipPath.clipPathUnits.colorInterpolation.colorProfile.colorRendering.enableBackground.fillOpacity.fontFamily.fontSize.fontSizeAdjust.fontStretch.fontStyle.fontVariant.fontWeight.glyphName.glyphOrientationHorizontal.glyphOrientationVertical.horizAdvX.horizOriginX.imageRendering.letterSpacing.lightingColor.markerEnd.markerMid.markerStart.overlinePosition.overlineThickness.paintOrder.preserveAspectRatio.pointerEvents.shapeRendering.strokeMiterlimit.strokeOpacity.textAnchor.textDecoration.textRendering.transformOrigin.underlinePosition.underlineThickness.unicodeBidi.unicodeRange.unitsPerEm.vectorEffect.vertAdvY.vertOriginX.vertOriginY.vAlphabetic.vHanging.vIdeographic.vMathematical.wordSpacing.writingMode`.split(`.`));function g(e,n){if(e===`children`||n==null)return;let r;if(r=e===`className`?`class`:h.has(e)?t.t(e):e,typeof n==`boolean`)return`${r}="${String(n)}"`;if(e===`style`&&typeof n==`object`){let e=m(n);if(e)return`style="${p(e)}"`}return`${r}="${p(String(n))}"`}function _(e,t,n){let r=!1;for(let n in e){if(!Object.hasOwn(e,n))continue;let i=g(n,e[n]);i!==void 0&&(t.push(` `,i),n===`xmlns`&&(r=!0))}n&&!r&&t.push(` xmlns="http://www.w3.org/2000/svg"`)}const v=(e,n,r)=>{let i=e.props||{};if(t.n(e.type)){y(e.type(e.props),n,!1);return}if(typeof e.type==`symbol`){y(i.children,n,!1);return}if(t.a(e.type)){y(e.type.render(e.props,null),n,!1);return}if(t.s(e.type)){v({...e,type:e.type.type},n,r);return}if(typeof e.type!=`string`)return;n.push(`<`,e.type),_(i,n,r&&e.type===`svg`);let a=i.children;n.push(`>`),y(a,n,!1),n.push(`</`,e.type,`>`)};function y(e,n,r){if(e!=null&&e!==!1){if(f(e)){n.push(String(e));return}if(Array.isArray(e)){for(let t of e)y(t,n,!1);return}t.c(e)&&v(e,n,r)}}function b(e){let t=[];return y(e,t,!0),t.join(``)}function x({width:e,height:t,data:n,premultiplied:r,...i}){return{type:`img`,props:{...i,src:{width:e,height:t,data:n,premultiplied:r}},key:null}}function S(){return{nodes:[],css:[]}}async function C(n,r){let i=await w(n,{defaultStyles:T(r),presets:t.f(r?.defaultStyles),tailwindClassesProperty:r?.tailwindClassesProperty??`tw`,contexts:new Map,ids:{current:0}}),a=i.nodes,o;o=a.length===0?e.t({}):a.length===1&&a[0]!==void 0?a[0]:e.t({children:a,style:{display:`block`,width:e.a(100),height:e.a(100)}});let s=i.css,c={node:o,css:s,get stylesheets(){return t.u(),s}};return t.l(c),c}async function w(n,r){return n==null||n===!1?S():n instanceof Promise?w(await n,r):typeof n==`object`&&Symbol.iterator in n?K(n,r):t.c(n)?await z(n,r):{nodes:[e.l({text:String(n),preset:r.presets?.span})],css:[]}}function T(e){return e&&`defaultStyles`in e?e.defaultStyles??t.p:t.p}const E=Symbol.for(`react.context`),D=Symbol.for(`react.provider`),O=Symbol.for(`react.consumer`);function k(e,t){let n=e.type;if(typeof n!=`object`||!n)return;let i=r(n,`$$typeof`);if(i===D)return A(e,r(n,`_context`),t);if(i===O)return j(e,r(n,`_context`)??n,t);if(i===E)return typeof P(e)==`function`?j(e,n,t):A(e,n,t)}function A(e,t,n){let i=new Map(n.contexts);return i.set(t,r(e.props,`value`)),G(e,{...n,contexts:i})}function j(e,n,r){let i=P(e);return t.n(i)?w(i(s(r,n)),r):G(e,r)}async function M(e,t,n){return w(await u(e,t,n),n)}function N(e,n){if(t.a(e.type)){let{render:t}=e.type;return M(e=>t(e,null),e.props,n)}if(t.s(e.type)){let r=e.type.type;return t.n(r)?M(r,e.props,n):z({...e,type:r},n)}}function P(e){if(typeof e.props==`object`&&e.props!==null&&`children`in e.props)return e.props.children}function F(e){if(!t.c(e))return;let n=P(e);if(typeof n==`string`)return n;if(typeof n==`number`)return String(n);if(Array.isArray(n)||typeof n==`object`&&n&&Symbol.iterator in n)return R(n);if(t.c(n)&&t.o(n))return F(n)}function I(e){let t=[];for(let n of e){let e=L(n);if(e===void 0)return;t.push(e)}return t.join(``)}function L(e){if(typeof e==`string`)return e;if(typeof e==`number`)return String(e);if(e==null||typeof e==`boolean`||typeof e==`symbol`)return``;if(typeof e==`object`&&Symbol.iterator in e)return I(e);if(!t.c(e))return;if(t.o(e))return L(P(e));let n=P(e);return n===void 0?``:typeof n==`object`&&n&&Symbol.iterator in n?I(n):L(n)}function R(e){let n=[],r=!1;for(let i of e){if(t.c(i))return;if(typeof i==`string`){r=!0,n.push(i);continue}if(typeof i==`number`){r=!0,n.push(String(i));continue}return}if(r)return n.join(``)}async function z(n,r){let i=k(n,r);if(i!==void 0)return i;if(t.n(n.type))return M(n.type,n.props,r);let a=N(n,r);if(a!==void 0)return a;if(t.o(n))return G(n,r);if(t.r(n,`style`)){let e=L(P(n));return{nodes:[],css:e&&e.length>0?[e]:[]}}if(t.r(n,`head`))return{nodes:[],css:(await G(n,r)).css};if(typeof n.type!=`string`||t.i(n.type))return S();let o=W(n,r);if(t.r(n,`br`))return{nodes:[e.l({text:`
2
+ `,preset:r.presets?.br,...o})],css:[]};if(t.r(n,`img`))return{nodes:[B(n,r)],css:[]};if(t.r(n,`svg`))return{nodes:[V(n,r)],css:[]};let s=F(n);if(s!==void 0)return{nodes:[e.l({text:s,...o})],css:[]};let c=await G(n,r);return{nodes:[e.t({children:c.nodes,...o})],css:c.css}}function B(t,n){if(!t.props.src)throw Error(`Image element must have a 'src' prop.`);let r=W(t,n),i=t.props.width===void 0?void 0:Number(t.props.width),a=t.props.height===void 0?void 0:Number(t.props.height);return e.i({src:t.props.src,width:i,height:a,...r})}function V(t,n){let r=W(t,n),i=b(t),a=t.props.width===void 0?void 0:Number(t.props.width),o=t.props.height===void 0?void 0:Number(t.props.height);return e.i({src:i,width:a,height:o,...r})}function H(e,t){let n=t.presets,r=n&&typeof e.type==`string`&&e.type in n?n[e.type]:void 0,i=typeof e.props==`object`&&e.props!==null&&`style`in e.props&&typeof e.props.style==`object`&&e.props.style!==null?e.props.style:void 0;if(!i)return{preset:r};for(let e in i)if(Object.hasOwn(i,e))return{preset:r,style:i};return{preset:r}}function U(e,t){let n=t.tailwindClassesProperty;if(typeof e.props!=`object`||e.props===null||!(n in e.props))return;let r=e.props[n];if(typeof r==`string`)return r}function W(e,n){let r=e.props,{preset:i,style:a}=H(e,n),o=U(e,n),s=t.d(r,n.tailwindClassesProperty);return{tagName:typeof e.type==`string`?e.type:void 0,className:r.className??r.class,id:r.id,dir:r.dir,lang:r.lang,attributes:s,tw:o,style:a,preset:i}}function G(e,t){let n=P(e);return n===void 0?Promise.resolve(S()):w(n,t)}async function K(e,t){let n=[],r=new Set,i=0;for(let a of e){let e=i;i+=1;let o=w(a,t).then(t=>{n[e]=t}).finally(()=>r.delete(o));r.add(o),r.size>=8&&await Promise.race(r)}await Promise.all(r);let a=[],o=[];for(let e of n)e&&(a.push(...e.nodes),o.push(...e.css));return{nodes:a,css:o}}exports.Bitmap=x,exports.defaultStylePresets=t.p,exports.fromJsx=C;
package/dist/jsx.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { o as ReactElementLike, r as Node, s as RgbaImage } from "./types-Bfi8SERZ.cjs";
1
+ import { c as Node, d as ReactElementLike, f as RgbaImage } from "./types-BWYDTgEO.cjs";
2
2
  import { CSSProperties, ComponentProps, JSX, ReactElement, ReactNode } from "react";
3
3
  //#region src/jsx/style-presets.d.ts
4
4
  declare const defaultStylePresets: Partial<Record<keyof JSX.IntrinsicElements, CSSProperties>>;
@@ -44,6 +44,8 @@ interface FromJsxOptions {
44
44
  }
45
45
  interface FromJsxResult {
46
46
  node: Node;
47
+ css: string[];
48
+ /** @deprecated Use `css` instead. */
47
49
  stylesheets: string[];
48
50
  }
49
51
  declare function fromJsx(element: ReactNode | ReactElementLike, options?: FromJsxOptions): Promise<FromJsxResult>;
package/dist/jsx.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { o as ReactElementLike, r as Node, s as RgbaImage } from "./types-Bfi8SERZ.mjs";
1
+ import { c as Node, d as ReactElementLike, f as RgbaImage } from "./types-BWYDTgEO.mjs";
2
2
  import { CSSProperties, ComponentProps, JSX, ReactElement, ReactNode } from "react";
3
3
  //#region src/jsx/style-presets.d.ts
4
4
  declare const defaultStylePresets: Partial<Record<keyof JSX.IntrinsicElements, CSSProperties>>;
@@ -44,6 +44,8 @@ interface FromJsxOptions {
44
44
  }
45
45
  interface FromJsxResult {
46
46
  node: Node;
47
+ css: string[];
48
+ /** @deprecated Use `css` instead. */
47
49
  stylesheets: string[];
48
50
  }
49
51
  declare function fromJsx(element: ReactNode | ReactElementLike, options?: FromJsxOptions): Promise<FromJsxResult>;
package/dist/jsx.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{a as e,i as t,l as n,t as r}from"./helpers-CVQCT1Rh.mjs";import{a as i,c as a,d as o,i as s,l as c,n as l,o as u,r as d,s as f,t as p,u as m}from"./utils-Bhe8BVxR.mjs";let h;function g(e,t){return typeof e==`object`&&e&&t in e?e[t]:void 0}function _(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function v(e){let t=g(e,`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`);if(typeof t==`object`&&t&&`H`in t){let e=t;return{get:()=>e.H,set:t=>{e.H=t}}}let n=g(g(e,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`),`ReactCurrentDispatcher`);if(typeof n==`object`&&n&&`current`in n){let e=n;return{get:()=>e.current,set:t=>{e.current=t}}}return null}function y(){return h??=import(`react`).then(e=>v(e.default??e)).catch(()=>null),h}function b(e,t){return e.contexts.has(t)?e.contexts.get(t):g(t,`_currentValue`)}const x=()=>{};function ee(e,t){let n=t=>b(e,t),r=0;return{readContext:n,useContext:n,use:e=>{if(_(e)){if(e.status===`fulfilled`)return e.value;throw e.status===`rejected`?e.reason:e}return n(e)},useState:e=>[typeof e==`function`?e():e,x],useReducer:(e,t,n)=>[n?n(t):t,x],useMemo:e=>e(),useCallback:e=>e,useRef:e=>({current:e}),useEffect:x,useLayoutEffect:x,useInsertionEffect:x,useImperativeHandle:x,useDebugValue:x,useDeferredValue:e=>e,useTransition:()=>[!1,x],useOptimistic:e=>[e,x],useActionState:(e,t)=>[t,x,!1],useSyncExternalStore:(e,t,n)=>(n??t)(),useId:()=>`:t${t}-${r++}:`,useCacheRefresh:()=>x,useHostTransitionStatus:()=>({pending:!1,data:null,method:null,action:null})}}async function te(e,t,n){let r=await y();if(!r)return e(t);let i=n.ids.current++;for(let a=0;;a++){let o=r.get();r.set(ee(n,i));let s;try{return e(t)}catch(e){s=e}finally{r.set(o)}if(!_(s)||a>=64)throw s;await S(s)}}async function S(e){try{e.value=await e,e.status=`fulfilled`}catch(t){e.reason=t,e.status=`rejected`}}function C(e){return typeof e==`string`||typeof e==`number`}function w(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function T(e){let t=[];for(let n in e)Object.hasOwn(e,n)&&t.push(`${p(n)}:${String(e[n]).trim()}`);return t.join(`;`)}const E=new Set(`stopColor.stopOpacity.strokeWidth.strokeDasharray.strokeDashoffset.strokeLinecap.strokeLinejoin.fillRule.clipRule.colorInterpolationFilters.floodColor.floodOpacity.accentHeight.alignmentBaseline.arabicForm.baselineShift.capHeight.clipPath.clipPathUnits.colorInterpolation.colorProfile.colorRendering.enableBackground.fillOpacity.fontFamily.fontSize.fontSizeAdjust.fontStretch.fontStyle.fontVariant.fontWeight.glyphName.glyphOrientationHorizontal.glyphOrientationVertical.horizAdvX.horizOriginX.imageRendering.letterSpacing.lightingColor.markerEnd.markerMid.markerStart.overlinePosition.overlineThickness.paintOrder.preserveAspectRatio.pointerEvents.shapeRendering.strokeMiterlimit.strokeOpacity.textAnchor.textDecoration.textRendering.transformOrigin.underlinePosition.underlineThickness.unicodeBidi.unicodeRange.unitsPerEm.vectorEffect.vertAdvY.vertOriginX.vertOriginY.vAlphabetic.vHanging.vIdeographic.vMathematical.wordSpacing.writingMode`.split(`.`));function D(e,t){if(e===`children`||t==null)return;let n;if(n=e===`className`?`class`:E.has(e)?p(e):e,typeof t==`boolean`)return`${n}="${String(t)}"`;if(e===`style`&&typeof t==`object`){let e=T(t);if(e)return`style="${w(e)}"`}return`${n}="${w(String(t))}"`}function O(e,t,n){let r=!1;for(let n in e){if(!Object.hasOwn(e,n))continue;let i=D(n,e[n]);i!==void 0&&(t.push(` `,i),n===`xmlns`&&(r=!0))}n&&!r&&t.push(` xmlns="http://www.w3.org/2000/svg"`)}const k=(e,t,n)=>{let r=e.props||{};if(l(e.type)){A(e.type(e.props),t,!1);return}if(typeof e.type==`symbol`){A(r.children,t,!1);return}if(i(e.type)){A(e.type.render(e.props,null),t,!1);return}if(f(e.type)){k({...e,type:e.type.type},t,n);return}if(typeof e.type!=`string`)return;t.push(`<`,e.type),O(r,t,n&&e.type===`svg`);let a=r.children;t.push(`>`),A(a,t,!1),t.push(`</`,e.type,`>`)};function A(e,t,n){if(e!=null&&e!==!1){if(C(e)){t.push(String(e));return}if(Array.isArray(e)){for(let n of e)A(n,t,!1);return}a(e)&&k(e,t,n)}}function j(e){let t=[];return A(e,t,!0),t.join(``)}function M({width:e,height:t,data:n,premultiplied:r,...i}){return{type:`img`,props:{...i,src:{width:e,height:t,data:n,premultiplied:r}},key:null}}function N(){return{nodes:[],stylesheets:[]}}async function P(t,n){let i=await F(t,{defaultStyles:I(n),presets:m(n?.defaultStyles),tailwindClassesProperty:n?.tailwindClassesProperty??`tw`,contexts:new Map,ids:{current:0}}),a=i.nodes,o;return o=a.length===0?r({}):a.length===1&&a[0]!==void 0?a[0]:r({children:a,style:{display:`block`,width:e(100),height:e(100)}}),{node:o,stylesheets:i.stylesheets}}async function F(e,t){return e==null||e===!1?N():e instanceof Promise?F(await e,t):typeof e==`object`&&Symbol.iterator in e?ae(e,t):a(e)?await X(e,t):{nodes:[n({text:String(e),preset:t.presets?.span})],stylesheets:[]}}function I(e){return e&&`defaultStyles`in e?e.defaultStyles??o:o}const L=Symbol.for(`react.context`),R=Symbol.for(`react.provider`),z=Symbol.for(`react.consumer`);function B(e,t){let n=e.type;if(typeof n!=`object`||!n)return;let r=g(n,`$$typeof`);if(r===R)return V(e,g(n,`_context`),t);if(r===z)return H(e,g(n,`_context`)??n,t);if(r===L)return typeof G(e)==`function`?H(e,n,t):V(e,n,t)}function V(e,t,n){let r=new Map(n.contexts);return r.set(t,g(e.props,`value`)),$(e,{...n,contexts:r})}function H(e,t,n){let r=G(e);return l(r)?F(r(b(n,t)),n):$(e,n)}async function U(e,t,n){return F(await te(e,t,n),n)}function W(e,t){if(i(e.type)){let{render:n}=e.type;return U(e=>n(e,null),e.props,t)}if(f(e.type)){let n=e.type.type;return l(n)?U(n,e.props,t):X({...e,type:n},t)}}function G(e){if(typeof e.props==`object`&&e.props!==null&&`children`in e.props)return e.props.children}function K(e){if(!a(e))return;let t=G(e);if(typeof t==`string`)return t;if(typeof t==`number`)return String(t);if(Array.isArray(t)||typeof t==`object`&&t&&Symbol.iterator in t)return Y(t);if(a(t)&&u(t))return K(t)}function q(e){let t=[];for(let n of e){let e=J(n);if(e===void 0)return;t.push(e)}return t.join(``)}function J(e){if(typeof e==`string`)return e;if(typeof e==`number`)return String(e);if(e==null||typeof e==`boolean`||typeof e==`symbol`)return``;if(typeof e==`object`&&Symbol.iterator in e)return q(e);if(!a(e))return;if(u(e))return J(G(e));let t=G(e);return t===void 0?``:typeof t==`object`&&t&&Symbol.iterator in t?q(t):J(t)}function Y(e){let t=[],n=!1;for(let r of e){if(a(r))return;if(typeof r==`string`){n=!0,t.push(r);continue}if(typeof r==`number`){n=!0,t.push(String(r));continue}return}if(n)return t.join(``)}async function X(e,t){let i=B(e,t);if(i!==void 0)return i;if(l(e.type))return U(e.type,e.props,t);let a=W(e,t);if(a!==void 0)return a;if(u(e))return $(e,t);if(d(e,`style`)){let t=J(G(e));return{nodes:[],stylesheets:t&&t.length>0?[t]:[]}}if(d(e,`head`))return{nodes:[],stylesheets:(await $(e,t)).stylesheets};if(typeof e.type!=`string`||s(e.type))return N();let o=Q(e,t);if(d(e,`br`))return{nodes:[n({text:`
2
- `,preset:t.presets?.br,...o})],stylesheets:[]};if(d(e,`img`))return{nodes:[Z(e,t)],stylesheets:[]};if(d(e,`svg`))return{nodes:[ne(e,t)],stylesheets:[]};let c=K(e);if(c!==void 0)return{nodes:[n({text:c,...o})],stylesheets:[]};let f=await $(e,t);return{nodes:[r({children:f.nodes,...o})],stylesheets:f.stylesheets}}function Z(e,n){if(!e.props.src)throw Error(`Image element must have a 'src' prop.`);let r=Q(e,n),i=e.props.width===void 0?void 0:Number(e.props.width),a=e.props.height===void 0?void 0:Number(e.props.height);return t({src:e.props.src,width:i,height:a,...r})}function ne(e,n){let r=Q(e,n);return t({src:j(e),width:e.props.width===void 0?void 0:Number(e.props.width),height:e.props.height===void 0?void 0:Number(e.props.height),...r})}function re(e,t){let n=t.presets,r=n&&typeof e.type==`string`&&e.type in n?n[e.type]:void 0,i=typeof e.props==`object`&&e.props!==null&&`style`in e.props&&typeof e.props.style==`object`&&e.props.style!==null?e.props.style:void 0;if(!i)return{preset:r};for(let e in i)if(Object.hasOwn(i,e))return{preset:r,style:i};return{preset:r}}function ie(e,t){let n=t.tailwindClassesProperty;if(typeof e.props!=`object`||e.props===null||!(n in e.props))return;let r=e.props[n];if(typeof r==`string`)return r}function Q(e,t){let n=e.props,{preset:r,style:i}=re(e,t),a=ie(e,t),o=c(n,t.tailwindClassesProperty);return{tagName:typeof e.type==`string`?e.type:void 0,className:n.className??n.class,id:n.id,dir:n.dir,lang:n.lang,attributes:o,tw:a,style:i,preset:r}}function $(e,t){let n=G(e);return n===void 0?Promise.resolve(N()):F(n,t)}async function ae(e,t){let n=[],r=new Set,i=0;for(let a of e){let e=i;i+=1;let o=F(a,t).then(t=>{n[e]=t}).finally(()=>r.delete(o));r.add(o),r.size>=8&&await Promise.race(r)}await Promise.all(r);let a=[],o=[];for(let e of n)e&&(a.push(...e.nodes),o.push(...e.stylesheets));return{nodes:a,stylesheets:o}}export{M as Bitmap,o as defaultStylePresets,P as fromJsx};
1
+ import{a as e,i as t,l as n,t as r}from"./helpers-CVQCT1Rh.mjs";import{a as i,c as a,d as o,f as s,i as c,l,n as u,o as d,p as f,r as p,s as m,t as h,u as g}from"./utils-4GQubbLq.mjs";let _;function v(e,t){return typeof e==`object`&&e&&t in e?e[t]:void 0}function y(e){return typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`}function ee(e){let t=v(e,`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`);if(typeof t==`object`&&t&&`H`in t){let e=t;return{get:()=>e.H,set:t=>{e.H=t}}}let n=v(v(e,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`),`ReactCurrentDispatcher`);if(typeof n==`object`&&n&&`current`in n){let e=n;return{get:()=>e.current,set:t=>{e.current=t}}}return null}function b(){return _??=import(`react`).then(e=>ee(e.default??e)).catch(()=>null),_}function x(e,t){return e.contexts.has(t)?e.contexts.get(t):v(t,`_currentValue`)}const S=()=>{};function C(e,t){let n=t=>x(e,t),r=0;return{readContext:n,useContext:n,use:e=>{if(y(e)){if(e.status===`fulfilled`)return e.value;throw e.status===`rejected`?e.reason:e}return n(e)},useState:e=>[typeof e==`function`?e():e,S],useReducer:(e,t,n)=>[n?n(t):t,S],useMemo:e=>e(),useCallback:e=>e,useRef:e=>({current:e}),useEffect:S,useLayoutEffect:S,useInsertionEffect:S,useImperativeHandle:S,useDebugValue:S,useDeferredValue:e=>e,useTransition:()=>[!1,S],useOptimistic:e=>[e,S],useActionState:(e,t)=>[t,S,!1],useSyncExternalStore:(e,t,n)=>(n??t)(),useId:()=>`:t${t}-${r++}:`,useCacheRefresh:()=>S,useHostTransitionStatus:()=>({pending:!1,data:null,method:null,action:null})}}async function w(e,t,n){let r=await b();if(!r)return e(t);let i=n.ids.current++;for(let a=0;;a++){let o=r.get();r.set(C(n,i));let s;try{return e(t)}catch(e){s=e}finally{r.set(o)}if(!y(s)||a>=64)throw s;await T(s)}}async function T(e){try{e.value=await e,e.status=`fulfilled`}catch(t){e.reason=t,e.status=`rejected`}}function E(e){return typeof e==`string`||typeof e==`number`}function D(e){return e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function O(e){let t=[];for(let n in e)Object.hasOwn(e,n)&&t.push(`${h(n)}:${String(e[n]).trim()}`);return t.join(`;`)}const k=new Set(`stopColor.stopOpacity.strokeWidth.strokeDasharray.strokeDashoffset.strokeLinecap.strokeLinejoin.fillRule.clipRule.colorInterpolationFilters.floodColor.floodOpacity.accentHeight.alignmentBaseline.arabicForm.baselineShift.capHeight.clipPath.clipPathUnits.colorInterpolation.colorProfile.colorRendering.enableBackground.fillOpacity.fontFamily.fontSize.fontSizeAdjust.fontStretch.fontStyle.fontVariant.fontWeight.glyphName.glyphOrientationHorizontal.glyphOrientationVertical.horizAdvX.horizOriginX.imageRendering.letterSpacing.lightingColor.markerEnd.markerMid.markerStart.overlinePosition.overlineThickness.paintOrder.preserveAspectRatio.pointerEvents.shapeRendering.strokeMiterlimit.strokeOpacity.textAnchor.textDecoration.textRendering.transformOrigin.underlinePosition.underlineThickness.unicodeBidi.unicodeRange.unitsPerEm.vectorEffect.vertAdvY.vertOriginX.vertOriginY.vAlphabetic.vHanging.vIdeographic.vMathematical.wordSpacing.writingMode`.split(`.`));function A(e,t){if(e===`children`||t==null)return;let n;if(n=e===`className`?`class`:k.has(e)?h(e):e,typeof t==`boolean`)return`${n}="${String(t)}"`;if(e===`style`&&typeof t==`object`){let e=O(t);if(e)return`style="${D(e)}"`}return`${n}="${D(String(t))}"`}function j(e,t,n){let r=!1;for(let n in e){if(!Object.hasOwn(e,n))continue;let i=A(n,e[n]);i!==void 0&&(t.push(` `,i),n===`xmlns`&&(r=!0))}n&&!r&&t.push(` xmlns="http://www.w3.org/2000/svg"`)}const M=(e,t,n)=>{let r=e.props||{};if(u(e.type)){N(e.type(e.props),t,!1);return}if(typeof e.type==`symbol`){N(r.children,t,!1);return}if(i(e.type)){N(e.type.render(e.props,null),t,!1);return}if(m(e.type)){M({...e,type:e.type.type},t,n);return}if(typeof e.type!=`string`)return;t.push(`<`,e.type),j(r,t,n&&e.type===`svg`);let a=r.children;t.push(`>`),N(a,t,!1),t.push(`</`,e.type,`>`)};function N(e,t,n){if(e!=null&&e!==!1){if(E(e)){t.push(String(e));return}if(Array.isArray(e)){for(let n of e)N(n,t,!1);return}a(e)&&M(e,t,n)}}function te(e){let t=[];return N(e,t,!0),t.join(``)}function ne({width:e,height:t,data:n,premultiplied:r,...i}){return{type:`img`,props:{...i,src:{width:e,height:t,data:n,premultiplied:r}},key:null}}function P(){return{nodes:[],css:[]}}async function F(t,n){let i=await I(t,{defaultStyles:L(n),presets:s(n?.defaultStyles),tailwindClassesProperty:n?.tailwindClassesProperty??`tw`,contexts:new Map,ids:{current:0}}),a=i.nodes,o;o=a.length===0?r({}):a.length===1&&a[0]!==void 0?a[0]:r({children:a,style:{display:`block`,width:e(100),height:e(100)}});let c=i.css,u={node:o,css:c,get stylesheets(){return g(),c}};return l(u),u}async function I(e,t){return e==null||e===!1?P():e instanceof Promise?I(await e,t):typeof e==`object`&&Symbol.iterator in e?se(e,t):a(e)?await Z(e,t):{nodes:[n({text:String(e),preset:t.presets?.span})],css:[]}}function L(e){return e&&`defaultStyles`in e?e.defaultStyles??f:f}const R=Symbol.for(`react.context`),z=Symbol.for(`react.provider`),B=Symbol.for(`react.consumer`);function V(e,t){let n=e.type;if(typeof n!=`object`||!n)return;let r=v(n,`$$typeof`);if(r===z)return H(e,v(n,`_context`),t);if(r===B)return U(e,v(n,`_context`)??n,t);if(r===R)return typeof K(e)==`function`?U(e,n,t):H(e,n,t)}function H(e,t,n){let r=new Map(n.contexts);return r.set(t,v(e.props,`value`)),$(e,{...n,contexts:r})}function U(e,t,n){let r=K(e);return u(r)?I(r(x(n,t)),n):$(e,n)}async function W(e,t,n){return I(await w(e,t,n),n)}function G(e,t){if(i(e.type)){let{render:n}=e.type;return W(e=>n(e,null),e.props,t)}if(m(e.type)){let n=e.type.type;return u(n)?W(n,e.props,t):Z({...e,type:n},t)}}function K(e){if(typeof e.props==`object`&&e.props!==null&&`children`in e.props)return e.props.children}function q(e){if(!a(e))return;let t=K(e);if(typeof t==`string`)return t;if(typeof t==`number`)return String(t);if(Array.isArray(t)||typeof t==`object`&&t&&Symbol.iterator in t)return X(t);if(a(t)&&d(t))return q(t)}function J(e){let t=[];for(let n of e){let e=Y(n);if(e===void 0)return;t.push(e)}return t.join(``)}function Y(e){if(typeof e==`string`)return e;if(typeof e==`number`)return String(e);if(e==null||typeof e==`boolean`||typeof e==`symbol`)return``;if(typeof e==`object`&&Symbol.iterator in e)return J(e);if(!a(e))return;if(d(e))return Y(K(e));let t=K(e);return t===void 0?``:typeof t==`object`&&t&&Symbol.iterator in t?J(t):Y(t)}function X(e){let t=[],n=!1;for(let r of e){if(a(r))return;if(typeof r==`string`){n=!0,t.push(r);continue}if(typeof r==`number`){n=!0,t.push(String(r));continue}return}if(n)return t.join(``)}async function Z(e,t){let i=V(e,t);if(i!==void 0)return i;if(u(e.type))return W(e.type,e.props,t);let a=G(e,t);if(a!==void 0)return a;if(d(e))return $(e,t);if(p(e,`style`)){let t=Y(K(e));return{nodes:[],css:t&&t.length>0?[t]:[]}}if(p(e,`head`))return{nodes:[],css:(await $(e,t)).css};if(typeof e.type!=`string`||c(e.type))return P();let o=Q(e,t);if(p(e,`br`))return{nodes:[n({text:`
2
+ `,preset:t.presets?.br,...o})],css:[]};if(p(e,`img`))return{nodes:[re(e,t)],css:[]};if(p(e,`svg`))return{nodes:[ie(e,t)],css:[]};let s=q(e);if(s!==void 0)return{nodes:[n({text:s,...o})],css:[]};let l=await $(e,t);return{nodes:[r({children:l.nodes,...o})],css:l.css}}function re(e,n){if(!e.props.src)throw Error(`Image element must have a 'src' prop.`);let r=Q(e,n),i=e.props.width===void 0?void 0:Number(e.props.width),a=e.props.height===void 0?void 0:Number(e.props.height);return t({src:e.props.src,width:i,height:a,...r})}function ie(e,n){let r=Q(e,n),i=te(e),a=e.props.width===void 0?void 0:Number(e.props.width),o=e.props.height===void 0?void 0:Number(e.props.height);return t({src:i,width:a,height:o,...r})}function ae(e,t){let n=t.presets,r=n&&typeof e.type==`string`&&e.type in n?n[e.type]:void 0,i=typeof e.props==`object`&&e.props!==null&&`style`in e.props&&typeof e.props.style==`object`&&e.props.style!==null?e.props.style:void 0;if(!i)return{preset:r};for(let e in i)if(Object.hasOwn(i,e))return{preset:r,style:i};return{preset:r}}function oe(e,t){let n=t.tailwindClassesProperty;if(typeof e.props!=`object`||e.props===null||!(n in e.props))return;let r=e.props[n];if(typeof r==`string`)return r}function Q(e,t){let n=e.props,{preset:r,style:i}=ae(e,t),a=oe(e,t),s=o(n,t.tailwindClassesProperty);return{tagName:typeof e.type==`string`?e.type:void 0,className:n.className??n.class,id:n.id,dir:n.dir,lang:n.lang,attributes:s,tw:a,style:i,preset:r}}function $(e,t){let n=K(e);return n===void 0?Promise.resolve(P()):I(n,t)}async function se(e,t){let n=[],r=new Set,i=0;for(let a of e){let e=i;i+=1;let o=I(a,t).then(t=>{n[e]=t}).finally(()=>r.delete(o));r.add(o),r.size>=8&&await Promise.race(r)}await Promise.all(r);let a=[],o=[];for(let e of n)e&&(a.push(...e.nodes),o.push(...e.css));return{nodes:a,css:o}}export{ne as Bitmap,f as defaultStylePresets,F as fromJsx};
package/dist/renderer.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./fonts-B5ZDjGc1.cjs");function t(e){return e instanceof Uint8Array||e instanceof ArrayBuffer||typeof Buffer<`u`&&Buffer.isBuffer(e)}function n(e){return e instanceof ArrayBuffer?new Uint8Array(e):e}function r(e){return t(e)?e:typeof e.data==`function`?e.data():e.data}function i(e){return t(e)?e:`key`in e&&e.key?e.key:typeof e.data==`function`?`${e.name??``}:${e.weight??``}:${e.style??``}`:e.data}async function a(e){let{sources:t=[],cache:r}=Array.isArray(e)?{sources:e}:e,i=new Map;for(let e of t)i.set(e.src,e);return Promise.all([...i.values()].map(async({src:e,data:t,cache:i})=>({src:e,data:n(typeof t==`function`?await t():t),cache:i??r})))}var o=class{registerInner;byKey=new Map;byData=new WeakMap;constructor(e){this.registerInner=e}getFont(e){return typeof e==`string`?this.byKey.get(e):this.byData.get(e)}setFont(e,t){typeof e==`string`?this.byKey.set(e,t):this.byData.set(e,t)}deleteFont(e){typeof e==`string`?this.byKey.delete(e):this.byData.delete(e)}async register(a){let o=typeof a==`string`?e.r(a):a,s=i(o),c=this.getFont(s);if(c)return c;let l=r(o),u=Promise.resolve(l).then(e=>{let r=n(e);return this.registerInner(t(o)?r:{...o,data:r})}).catch(e=>{throw this.deleteFont(s),e});return this.setFont(s,u),u}async prepareFonts(e){if(!e)return;let t=await Promise.all(e.map(e=>this.register(e)));return[...new Set(t.flat().map(e=>e.name))]}async resolveResources(e,t,n){let r=await this.prepareFonts(e);return{images:t?await a(t):void 0,fontFamilies:n??r}}};async function s(t,n,r){let{fonts:i,fontFamilies:a,signal:o,images:s,...c}=n;o?.throwIfAborted();let l=await i,u=await t.resolveResources(l&&e.a({fonts:l,source:[...Array.isArray(r)?r:[r],`•◦■▪ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`]}),s,a);return o?.throwIfAborted(),{options:{...c,...u},signal:o}}exports.FontRegistry=o,exports.prepareRenderInput=s,exports.resolveImageLoaders=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./fonts-D-2FIgft.cjs");function t(e){return e instanceof Uint8Array||e instanceof ArrayBuffer||typeof Buffer<`u`&&Buffer.isBuffer(e)}function n(e){return e instanceof ArrayBuffer?new Uint8Array(e):e}function r(e){return t(e)?e:typeof e.data==`function`?e.data():e.data}function i(e){return t(e)?e:`key`in e&&e.key?e.key:typeof e.data==`function`?`${e.name??``}:${e.weight??``}:${e.style??``}`:e.data}async function a(e){let{sources:t=[],cache:r}=Array.isArray(e)?{sources:e}:e,i=new Map;for(let e of t)i.set(e.src,e);return Promise.all([...i.values()].map(async({src:e,data:t,cache:i})=>({src:e,data:n(typeof t==`function`?await t():t),cache:i??r})))}var o=class{registerInner;byKey=new Map;byData=new WeakMap;constructor(e){this.registerInner=e}getFont(e){return typeof e==`string`?this.byKey.get(e):this.byData.get(e)}setFont(e,t){typeof e==`string`?this.byKey.set(e,t):this.byData.set(e,t)}deleteFont(e){typeof e==`string`?this.byKey.delete(e):this.byData.delete(e)}async register(a){let o=typeof a==`string`?e.r(a):a,s=i(o),c=this.getFont(s);if(c)return c;let l=r(o),u=Promise.resolve(l).then(e=>{let r=n(e);return this.registerInner(t(o)?r:{...o,data:r})}).catch(e=>{throw this.deleteFont(s),e});return this.setFont(s,u),u}async prepareFonts(e){if(!e)return;let t=await Promise.all(e.map(e=>this.register(e)));return[...new Set(t.flat().map(e=>e.name))]}async resolveResources(e,t,n){let r=await this.prepareFonts(e);return{images:t?await a(t):void 0,fontFamilies:n??r}}};async function s(t,n,r){let{fonts:i,fontFamilies:a,signal:o,images:s,...c}=n;o?.throwIfAborted();let l=await i,u=await t.resolveResources(l&&e.a({fonts:l,source:[...Array.isArray(r)?r:[r],`•◦■▪▸◂▾ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`]}),s,a);return o?.throwIfAborted(),{options:{...c,...u},signal:o}}exports.FontRegistry=o,exports.prepareRenderInput=s,exports.resolveImageLoaders=a;
@@ -1,4 +1,4 @@
1
- import { r as GenericFontFamily, t as CodepointSource } from "./fonts-BDvIOc4B.cjs";
1
+ import { r as GenericFontFamily, t as CodepointSource } from "./fonts-DJzerTBP.cjs";
2
2
  //#region src/renderer.d.ts
3
3
  /**
4
4
  * Shared wrapper primitives for the `@takumi-rs/core` (napi) and `@takumi-rs/wasm` renderer
@@ -1,4 +1,4 @@
1
- import { r as GenericFontFamily, t as CodepointSource } from "./fonts-BAsrZEM-.mjs";
1
+ import { r as GenericFontFamily, t as CodepointSource } from "./fonts-BV8jtksq.mjs";
2
2
  //#region src/renderer.d.ts
3
3
  /**
4
4
  * Shared wrapper primitives for the `@takumi-rs/core` (napi) and `@takumi-rs/wasm` renderer
package/dist/renderer.mjs CHANGED
@@ -1 +1 @@
1
- import{a as e,r as t}from"./fonts-ny0W1U0i.mjs";function n(e){return e instanceof Uint8Array||e instanceof ArrayBuffer||typeof Buffer<`u`&&Buffer.isBuffer(e)}function r(e){return e instanceof ArrayBuffer?new Uint8Array(e):e}function i(e){return n(e)?e:typeof e.data==`function`?e.data():e.data}function a(e){return n(e)?e:`key`in e&&e.key?e.key:typeof e.data==`function`?`${e.name??``}:${e.weight??``}:${e.style??``}`:e.data}async function o(e){let{sources:t=[],cache:n}=Array.isArray(e)?{sources:e}:e,i=new Map;for(let e of t)i.set(e.src,e);return Promise.all([...i.values()].map(async({src:e,data:t,cache:i})=>({src:e,data:r(typeof t==`function`?await t():t),cache:i??n})))}var s=class{registerInner;byKey=new Map;byData=new WeakMap;constructor(e){this.registerInner=e}getFont(e){return typeof e==`string`?this.byKey.get(e):this.byData.get(e)}setFont(e,t){typeof e==`string`?this.byKey.set(e,t):this.byData.set(e,t)}deleteFont(e){typeof e==`string`?this.byKey.delete(e):this.byData.delete(e)}async register(e){let o=typeof e==`string`?t(e):e,s=a(o),c=this.getFont(s);if(c)return c;let l=i(o),u=Promise.resolve(l).then(e=>{let t=r(e);return this.registerInner(n(o)?t:{...o,data:t})}).catch(e=>{throw this.deleteFont(s),e});return this.setFont(s,u),u}async prepareFonts(e){if(!e)return;let t=await Promise.all(e.map(e=>this.register(e)));return[...new Set(t.flat().map(e=>e.name))]}async resolveResources(e,t,n){let r=await this.prepareFonts(e);return{images:t?await o(t):void 0,fontFamilies:n??r}}};async function c(t,n,r){let{fonts:i,fontFamilies:a,signal:o,images:s,...c}=n;o?.throwIfAborted();let l=await i,u=await t.resolveResources(l&&e({fonts:l,source:[...Array.isArray(r)?r:[r],`•◦■▪ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`]}),s,a);return o?.throwIfAborted(),{options:{...c,...u},signal:o}}export{s as FontRegistry,c as prepareRenderInput,o as resolveImageLoaders};
1
+ import{a as e,r as t}from"./fonts-RWAcijal.mjs";function n(e){return e instanceof Uint8Array||e instanceof ArrayBuffer||typeof Buffer<`u`&&Buffer.isBuffer(e)}function r(e){return e instanceof ArrayBuffer?new Uint8Array(e):e}function i(e){return n(e)?e:typeof e.data==`function`?e.data():e.data}function a(e){return n(e)?e:`key`in e&&e.key?e.key:typeof e.data==`function`?`${e.name??``}:${e.weight??``}:${e.style??``}`:e.data}async function o(e){let{sources:t=[],cache:n}=Array.isArray(e)?{sources:e}:e,i=new Map;for(let e of t)i.set(e.src,e);return Promise.all([...i.values()].map(async({src:e,data:t,cache:i})=>({src:e,data:r(typeof t==`function`?await t():t),cache:i??n})))}var s=class{registerInner;byKey=new Map;byData=new WeakMap;constructor(e){this.registerInner=e}getFont(e){return typeof e==`string`?this.byKey.get(e):this.byData.get(e)}setFont(e,t){typeof e==`string`?this.byKey.set(e,t):this.byData.set(e,t)}deleteFont(e){typeof e==`string`?this.byKey.delete(e):this.byData.delete(e)}async register(e){let o=typeof e==`string`?t(e):e,s=a(o),c=this.getFont(s);if(c)return c;let l=i(o),u=Promise.resolve(l).then(e=>{let t=r(e);return this.registerInner(n(o)?t:{...o,data:t})}).catch(e=>{throw this.deleteFont(s),e});return this.setFont(s,u),u}async prepareFonts(e){if(!e)return;let t=await Promise.all(e.map(e=>this.register(e)));return[...new Set(t.flat().map(e=>e.name))]}async resolveResources(e,t,n){let r=await this.prepareFonts(e);return{images:t?await o(t):void 0,fontFamilies:n??r}}};async function c(t,n,r){let{fonts:i,fontFamilies:a,signal:o,images:s,...c}=n;o?.throwIfAborted();let l=await i,u=await t.resolveResources(l&&e({fonts:l,source:[...Array.isArray(r)?r:[r],`•◦■▪▸◂▾ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`]}),s,a);return o?.throwIfAborted(),{options:{...c,...u},signal:o}}export{s as FontRegistry,c as prepareRenderInput,o as resolveImageLoaders};
@@ -12,6 +12,41 @@ declare module "react" {
12
12
  }
13
13
  }
14
14
  type NodeAttributes = Record<string, string>;
15
+ /** A declaration block, with custom properties allowed. */
16
+ type Declarations = CSSProperties & {
17
+ [key: `--${string}`]: string | number;
18
+ };
19
+ /** A style rule written as an object. */
20
+ type StyleRule = {
21
+ selector: string;
22
+ style?: Declarations;
23
+ rules?: StyleRule[];
24
+ };
25
+ /** An animation written as an object. */
26
+ type AnimationRule = {
27
+ keyframes: string;
28
+ steps: {
29
+ offset: string;
30
+ style?: Declarations;
31
+ }[];
32
+ };
33
+ /** A group of entries gated by a media query. */
34
+ type MediaRule = {
35
+ media: string;
36
+ rules: CssInput[];
37
+ };
38
+ /** A group of entries gated by a support condition. */
39
+ type SupportsRule = {
40
+ supports: string;
41
+ rules: CssInput[];
42
+ };
43
+ /** A cascade layer. Without `rules` it declares the layer's order alone. */
44
+ type LayerRule = {
45
+ layer: string;
46
+ rules?: CssInput[];
47
+ };
48
+ /** One entry of the `css` render option: stylesheet text, or a rule object. */
49
+ type CssInput = string | StyleRule | AnimationRule | MediaRule | SupportsRule | LayerRule;
15
50
  /**
16
51
  * A JSX element from any React-shaped runtime; Preact vnodes fit too, so
17
52
  * `fromJsx` and the render inputs accept them without casts.
@@ -59,4 +94,4 @@ type ImageNode = NodeMetadata & {
59
94
  height?: number;
60
95
  };
61
96
  //#endregion
62
- export { NodeMetadata as a, TextFit as c, NodeAttributes as i, TextNode as l, ImageNode as n, ReactElementLike as o, Node as r, RgbaImage as s, ContainerNode as t };
97
+ export { ImageNode as a, Node as c, ReactElementLike as d, RgbaImage as f, TextNode as g, TextFit as h, Declarations as i, NodeAttributes as l, SupportsRule as m, ContainerNode as n, LayerRule as o, StyleRule as p, CssInput as r, MediaRule as s, AnimationRule as t, NodeMetadata as u };
@@ -12,6 +12,41 @@ declare module "react" {
12
12
  }
13
13
  }
14
14
  type NodeAttributes = Record<string, string>;
15
+ /** A declaration block, with custom properties allowed. */
16
+ type Declarations = CSSProperties & {
17
+ [key: `--${string}`]: string | number;
18
+ };
19
+ /** A style rule written as an object. */
20
+ type StyleRule = {
21
+ selector: string;
22
+ style?: Declarations;
23
+ rules?: StyleRule[];
24
+ };
25
+ /** An animation written as an object. */
26
+ type AnimationRule = {
27
+ keyframes: string;
28
+ steps: {
29
+ offset: string;
30
+ style?: Declarations;
31
+ }[];
32
+ };
33
+ /** A group of entries gated by a media query. */
34
+ type MediaRule = {
35
+ media: string;
36
+ rules: CssInput[];
37
+ };
38
+ /** A group of entries gated by a support condition. */
39
+ type SupportsRule = {
40
+ supports: string;
41
+ rules: CssInput[];
42
+ };
43
+ /** A cascade layer. Without `rules` it declares the layer's order alone. */
44
+ type LayerRule = {
45
+ layer: string;
46
+ rules?: CssInput[];
47
+ };
48
+ /** One entry of the `css` render option: stylesheet text, or a rule object. */
49
+ type CssInput = string | StyleRule | AnimationRule | MediaRule | SupportsRule | LayerRule;
15
50
  /**
16
51
  * A JSX element from any React-shaped runtime; Preact vnodes fit too, so
17
52
  * `fromJsx` and the render inputs accept them without casts.
@@ -59,4 +94,4 @@ type ImageNode = NodeMetadata & {
59
94
  height?: number;
60
95
  };
61
96
  //#endregion
62
- export { NodeMetadata as a, TextFit as c, NodeAttributes as i, TextNode as l, ImageNode as n, ReactElementLike as o, Node as r, RgbaImage as s, ContainerNode as t };
97
+ export { ImageNode as a, Node as c, ReactElementLike as d, RgbaImage as f, TextNode as g, TextFit as h, Declarations as i, NodeAttributes as l, SupportsRule as m, ContainerNode as n, LayerRule as o, StyleRule as p, CssInput as r, MediaRule as s, AnimationRule as t, NodeMetadata as u };
@@ -1 +1 @@
1
- const e={html:{display:`block`},head:{display:`none`},meta:{display:`none`},title:{display:`none`},link:{display:`none`},style:{display:`none`},script:{display:`none`},noscript:{display:`none`},datalist:{display:`none`},template:{display:`none`},body:{margin:8,display:`block`},p:{marginTop:`1em`,marginBottom:`1em`,display:`block`},blockquote:{marginTop:`1em`,marginBottom:`1em`,marginLeft:40,marginRight:40,display:`block`},figure:{marginTop:`1em`,marginBottom:`1em`,marginLeft:40,marginRight:40,display:`block`},figcaption:{display:`block`},address:{fontStyle:`italic`,display:`block`},article:{display:`block`},aside:{display:`block`},footer:{display:`block`},header:{display:`block`},hgroup:{display:`block`},main:{display:`block`},nav:{display:`block`},section:{display:`block`},center:{textAlign:`center`,display:`block`},hr:{marginTop:`0.5em`,marginBottom:`0.5em`,marginLeft:`auto`,marginRight:`auto`,borderWidth:1,display:`block`},ul:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`disc`},ol:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`decimal`},menu:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`disc`},li:{display:`list-item`},dl:{marginTop:`1em`,marginBottom:`1em`,display:`block`},dt:{display:`block`},dd:{marginLeft:40,display:`block`},form:{display:`block`},fieldset:{marginLeft:2,marginRight:2,paddingTop:`0.35em`,paddingRight:`0.75em`,paddingBottom:`0.625em`,paddingLeft:`0.75em`,borderWidth:2,display:`block`},legend:{paddingLeft:2,paddingRight:2,display:`block`},details:{display:`block`},summary:{display:`block`},search:{display:`block`},h1:{fontSize:`2em`,marginTop:`0.67em`,marginBottom:`0.67em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h2:{fontSize:`1.5em`,marginTop:`0.83em`,marginBottom:`0.83em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h3:{fontSize:`1.17em`,marginTop:`1em`,marginBottom:`1em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h4:{marginTop:`1.33em`,marginBottom:`1.33em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h5:{fontSize:`0.83em`,marginTop:`1.67em`,marginBottom:`1.67em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h6:{fontSize:`0.67em`,marginTop:`2.33em`,marginBottom:`2.33em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},u:{textDecoration:`underline`},ins:{textDecoration:`underline`},strong:{fontWeight:`bolder`},b:{fontWeight:`bolder`},i:{fontStyle:`italic`},em:{fontStyle:`italic`},cite:{fontStyle:`italic`},dfn:{fontStyle:`italic`},code:{fontFamily:`monospace`},kbd:{fontFamily:`monospace`},samp:{fontFamily:`monospace`},pre:{fontFamily:`monospace`,whiteSpace:`pre`,margin:`1em 0`,display:`block`},br:{whiteSpace:`pre`},mark:{backgroundColor:`yellow`,color:`black`},big:{fontSize:`larger`},small:{fontSize:`smaller`},s:{textDecoration:`line-through`},del:{textDecoration:`line-through`},sub:{fontSize:`smaller`,verticalAlign:`sub`},sup:{fontSize:`smaller`,verticalAlign:`super`},div:{display:`block`},table:{display:`table`,boxSizing:`border-box`},thead:{display:`table-header-group`},tbody:{display:`table-row-group`},tfoot:{display:`table-footer-group`},tr:{display:`table-row`},td:{display:`table-cell`,padding:1},th:{display:`table-cell`,padding:1,fontWeight:`bold`,textAlign:`center`},caption:{display:`table-caption`,textAlign:`center`}};function t(t){if(t!==!1)return t??e}function n(e,t){let n;for(let r in e){if(!Object.hasOwn(e,r))continue;let i=e[r];r!==`children`&&r!==`className`&&r!==`class`&&r!==`id`&&r!==`style`&&r!==t&&r!==`ref`&&r!==`key`&&r!==`dangerouslySetInnerHTML`&&r!==`suppressHydrationWarning`&&i!=null&&i!==!1&&typeof i!=`function`&&typeof i!=`symbol`&&typeof i!=`object`&&(n??={},n[r]=i===!0?``:String(i))}return n}const r=new Set([`head`,`meta`,`link`,`style`,`script`]);function i(e){return r.has(e)}function a(e,t){return e.type===t&&`props`in e}function o(e){return e.replace(/([A-Z])/g,`-$1`).toLowerCase()}function s(e){return typeof e==`object`&&!!e&&`type`in e}function c(e){return typeof e==`function`}const l=Symbol.for(`react.forward_ref`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.fragment`);function f(e,t){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===t}function p(e){return f(e,l)&&`render`in e&&typeof e.render==`function`}function m(e){return f(e,u)&&`type`in e}function h(e){return e.type===d}export{p as a,s as c,e as d,i,n as l,c as n,h as o,a as r,m as s,o as t,t as u};
1
+ const e={html:{display:`block`},head:{display:`none`},meta:{display:`none`},title:{display:`none`},link:{display:`none`},style:{display:`none`},script:{display:`none`},noscript:{display:`none`},datalist:{display:`none`},template:{display:`none`},body:{margin:8,display:`block`},p:{marginTop:`1em`,marginBottom:`1em`,display:`block`},blockquote:{marginTop:`1em`,marginBottom:`1em`,marginLeft:40,marginRight:40,display:`block`},figure:{marginTop:`1em`,marginBottom:`1em`,marginLeft:40,marginRight:40,display:`block`},figcaption:{display:`block`},address:{fontStyle:`italic`,display:`block`},article:{display:`block`},aside:{display:`block`},footer:{display:`block`},header:{display:`block`},hgroup:{display:`block`},main:{display:`block`},nav:{display:`block`},section:{display:`block`},center:{textAlign:`center`,display:`block`},hr:{marginTop:`0.5em`,marginBottom:`0.5em`,marginLeft:`auto`,marginRight:`auto`,borderWidth:1,display:`block`},ul:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`disc`},ol:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`decimal`},menu:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`disc`},li:{display:`list-item`},dl:{marginTop:`1em`,marginBottom:`1em`,display:`block`},dt:{display:`block`},dd:{marginLeft:40,display:`block`},form:{display:`block`},fieldset:{marginLeft:2,marginRight:2,paddingTop:`0.35em`,paddingRight:`0.75em`,paddingBottom:`0.625em`,paddingLeft:`0.75em`,borderWidth:2,display:`block`},legend:{paddingLeft:2,paddingRight:2,display:`block`},details:{display:`block`},summary:{display:`block`},search:{display:`block`},h1:{fontSize:`2em`,marginTop:`0.67em`,marginBottom:`0.67em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h2:{fontSize:`1.5em`,marginTop:`0.83em`,marginBottom:`0.83em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h3:{fontSize:`1.17em`,marginTop:`1em`,marginBottom:`1em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h4:{marginTop:`1.33em`,marginBottom:`1.33em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h5:{fontSize:`0.83em`,marginTop:`1.67em`,marginBottom:`1.67em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h6:{fontSize:`0.67em`,marginTop:`2.33em`,marginBottom:`2.33em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},u:{textDecoration:`underline`},ins:{textDecoration:`underline`},strong:{fontWeight:`bolder`},b:{fontWeight:`bolder`},i:{fontStyle:`italic`},em:{fontStyle:`italic`},cite:{fontStyle:`italic`},dfn:{fontStyle:`italic`},code:{fontFamily:`monospace`},kbd:{fontFamily:`monospace`},samp:{fontFamily:`monospace`},pre:{fontFamily:`monospace`,whiteSpace:`pre`,margin:`1em 0`,display:`block`},br:{whiteSpace:`pre`},mark:{backgroundColor:`yellow`,color:`black`},big:{fontSize:`larger`},small:{fontSize:`smaller`},s:{textDecoration:`line-through`},del:{textDecoration:`line-through`},sub:{fontSize:`smaller`,verticalAlign:`sub`},sup:{fontSize:`smaller`,verticalAlign:`super`},div:{display:`block`},table:{display:`table`,boxSizing:`border-box`,borderSpacing:`2px`},thead:{display:`table-header-group`},tbody:{display:`table-row-group`},tfoot:{display:`table-footer-group`},tr:{display:`table-row`},td:{display:`table-cell`,padding:1},th:{display:`table-cell`,padding:1,fontWeight:`bold`,textAlign:`center`},caption:{display:`table-caption`,textAlign:`center`}};function t(t){if(t!==!1)return t??e}function n(e,t){let n;for(let r in e){if(!Object.hasOwn(e,r))continue;let i=e[r];r!==`children`&&r!==`className`&&r!==`class`&&r!==`id`&&r!==`style`&&r!==t&&r!==`ref`&&r!==`key`&&r!==`dangerouslySetInnerHTML`&&r!==`suppressHydrationWarning`&&i!=null&&i!==!1&&typeof i!=`function`&&typeof i!=`symbol`&&typeof i!=`object`&&(n??={},n[r]=i===!0?``:String(i))}return n}let r=!1;function i(e){Object.defineProperty(e,"stylesheets",{enumerable:!1})}function a(){r||(r=!0,console.warn("takumi: the `stylesheets` result field is deprecated, use `css` instead."))}const o=new Set([`head`,`meta`,`link`,`style`,`script`]);function s(e){return o.has(e)}function c(e,t){return e.type===t&&`props`in e}function l(e){return e.replace(/([A-Z])/g,`-$1`).toLowerCase()}function u(e){return typeof e==`object`&&!!e&&`type`in e}function d(e){return typeof e==`function`}const f=Symbol.for(`react.forward_ref`),p=Symbol.for(`react.memo`),m=Symbol.for(`react.fragment`);function h(e,t){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===t}function g(e){return h(e,f)&&`render`in e&&typeof e.render==`function`}function _(e){return h(e,p)&&`type`in e}function v(e){return e.type===m}export{g as a,u as c,n as d,t as f,s as i,i as l,d as n,v as o,e as p,c as r,_ as s,l as t,a as u};
@@ -1 +1 @@
1
- const e={html:{display:`block`},head:{display:`none`},meta:{display:`none`},title:{display:`none`},link:{display:`none`},style:{display:`none`},script:{display:`none`},noscript:{display:`none`},datalist:{display:`none`},template:{display:`none`},body:{margin:8,display:`block`},p:{marginTop:`1em`,marginBottom:`1em`,display:`block`},blockquote:{marginTop:`1em`,marginBottom:`1em`,marginLeft:40,marginRight:40,display:`block`},figure:{marginTop:`1em`,marginBottom:`1em`,marginLeft:40,marginRight:40,display:`block`},figcaption:{display:`block`},address:{fontStyle:`italic`,display:`block`},article:{display:`block`},aside:{display:`block`},footer:{display:`block`},header:{display:`block`},hgroup:{display:`block`},main:{display:`block`},nav:{display:`block`},section:{display:`block`},center:{textAlign:`center`,display:`block`},hr:{marginTop:`0.5em`,marginBottom:`0.5em`,marginLeft:`auto`,marginRight:`auto`,borderWidth:1,display:`block`},ul:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`disc`},ol:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`decimal`},menu:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`disc`},li:{display:`list-item`},dl:{marginTop:`1em`,marginBottom:`1em`,display:`block`},dt:{display:`block`},dd:{marginLeft:40,display:`block`},form:{display:`block`},fieldset:{marginLeft:2,marginRight:2,paddingTop:`0.35em`,paddingRight:`0.75em`,paddingBottom:`0.625em`,paddingLeft:`0.75em`,borderWidth:2,display:`block`},legend:{paddingLeft:2,paddingRight:2,display:`block`},details:{display:`block`},summary:{display:`block`},search:{display:`block`},h1:{fontSize:`2em`,marginTop:`0.67em`,marginBottom:`0.67em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h2:{fontSize:`1.5em`,marginTop:`0.83em`,marginBottom:`0.83em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h3:{fontSize:`1.17em`,marginTop:`1em`,marginBottom:`1em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h4:{marginTop:`1.33em`,marginBottom:`1.33em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h5:{fontSize:`0.83em`,marginTop:`1.67em`,marginBottom:`1.67em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h6:{fontSize:`0.67em`,marginTop:`2.33em`,marginBottom:`2.33em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},u:{textDecoration:`underline`},ins:{textDecoration:`underline`},strong:{fontWeight:`bolder`},b:{fontWeight:`bolder`},i:{fontStyle:`italic`},em:{fontStyle:`italic`},cite:{fontStyle:`italic`},dfn:{fontStyle:`italic`},code:{fontFamily:`monospace`},kbd:{fontFamily:`monospace`},samp:{fontFamily:`monospace`},pre:{fontFamily:`monospace`,whiteSpace:`pre`,margin:`1em 0`,display:`block`},br:{whiteSpace:`pre`},mark:{backgroundColor:`yellow`,color:`black`},big:{fontSize:`larger`},small:{fontSize:`smaller`},s:{textDecoration:`line-through`},del:{textDecoration:`line-through`},sub:{fontSize:`smaller`,verticalAlign:`sub`},sup:{fontSize:`smaller`,verticalAlign:`super`},div:{display:`block`},table:{display:`table`,boxSizing:`border-box`},thead:{display:`table-header-group`},tbody:{display:`table-row-group`},tfoot:{display:`table-footer-group`},tr:{display:`table-row`},td:{display:`table-cell`,padding:1},th:{display:`table-cell`,padding:1,fontWeight:`bold`,textAlign:`center`},caption:{display:`table-caption`,textAlign:`center`}};function t(t){if(t!==!1)return t??e}function n(e,t){let n;for(let r in e){if(!Object.hasOwn(e,r))continue;let i=e[r];r!==`children`&&r!==`className`&&r!==`class`&&r!==`id`&&r!==`style`&&r!==t&&r!==`ref`&&r!==`key`&&r!==`dangerouslySetInnerHTML`&&r!==`suppressHydrationWarning`&&i!=null&&i!==!1&&typeof i!=`function`&&typeof i!=`symbol`&&typeof i!=`object`&&(n??={},n[r]=i===!0?``:String(i))}return n}const r=new Set([`head`,`meta`,`link`,`style`,`script`]);function i(e){return r.has(e)}function a(e,t){return e.type===t&&`props`in e}function o(e){return e.replace(/([A-Z])/g,`-$1`).toLowerCase()}function s(e){return typeof e==`object`&&!!e&&`type`in e}function c(e){return typeof e==`function`}const l=Symbol.for(`react.forward_ref`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.fragment`);function f(e,t){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===t}function p(e){return f(e,l)&&`render`in e&&typeof e.render==`function`}function m(e){return f(e,u)&&`type`in e}function h(e){return e.type===d}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return t}});
1
+ const e={html:{display:`block`},head:{display:`none`},meta:{display:`none`},title:{display:`none`},link:{display:`none`},style:{display:`none`},script:{display:`none`},noscript:{display:`none`},datalist:{display:`none`},template:{display:`none`},body:{margin:8,display:`block`},p:{marginTop:`1em`,marginBottom:`1em`,display:`block`},blockquote:{marginTop:`1em`,marginBottom:`1em`,marginLeft:40,marginRight:40,display:`block`},figure:{marginTop:`1em`,marginBottom:`1em`,marginLeft:40,marginRight:40,display:`block`},figcaption:{display:`block`},address:{fontStyle:`italic`,display:`block`},article:{display:`block`},aside:{display:`block`},footer:{display:`block`},header:{display:`block`},hgroup:{display:`block`},main:{display:`block`},nav:{display:`block`},section:{display:`block`},center:{textAlign:`center`,display:`block`},hr:{marginTop:`0.5em`,marginBottom:`0.5em`,marginLeft:`auto`,marginRight:`auto`,borderWidth:1,display:`block`},ul:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`disc`},ol:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`decimal`},menu:{marginTop:`1em`,marginBottom:`1em`,paddingInlineStart:40,display:`block`,listStyleType:`disc`},li:{display:`list-item`},dl:{marginTop:`1em`,marginBottom:`1em`,display:`block`},dt:{display:`block`},dd:{marginLeft:40,display:`block`},form:{display:`block`},fieldset:{marginLeft:2,marginRight:2,paddingTop:`0.35em`,paddingRight:`0.75em`,paddingBottom:`0.625em`,paddingLeft:`0.75em`,borderWidth:2,display:`block`},legend:{paddingLeft:2,paddingRight:2,display:`block`},details:{display:`block`},summary:{display:`block`},search:{display:`block`},h1:{fontSize:`2em`,marginTop:`0.67em`,marginBottom:`0.67em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h2:{fontSize:`1.5em`,marginTop:`0.83em`,marginBottom:`0.83em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h3:{fontSize:`1.17em`,marginTop:`1em`,marginBottom:`1em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h4:{marginTop:`1.33em`,marginBottom:`1.33em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h5:{fontSize:`0.83em`,marginTop:`1.67em`,marginBottom:`1.67em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},h6:{fontSize:`0.67em`,marginTop:`2.33em`,marginBottom:`2.33em`,marginLeft:0,marginRight:0,fontWeight:`bold`,display:`block`},u:{textDecoration:`underline`},ins:{textDecoration:`underline`},strong:{fontWeight:`bolder`},b:{fontWeight:`bolder`},i:{fontStyle:`italic`},em:{fontStyle:`italic`},cite:{fontStyle:`italic`},dfn:{fontStyle:`italic`},code:{fontFamily:`monospace`},kbd:{fontFamily:`monospace`},samp:{fontFamily:`monospace`},pre:{fontFamily:`monospace`,whiteSpace:`pre`,margin:`1em 0`,display:`block`},br:{whiteSpace:`pre`},mark:{backgroundColor:`yellow`,color:`black`},big:{fontSize:`larger`},small:{fontSize:`smaller`},s:{textDecoration:`line-through`},del:{textDecoration:`line-through`},sub:{fontSize:`smaller`,verticalAlign:`sub`},sup:{fontSize:`smaller`,verticalAlign:`super`},div:{display:`block`},table:{display:`table`,boxSizing:`border-box`,borderSpacing:`2px`},thead:{display:`table-header-group`},tbody:{display:`table-row-group`},tfoot:{display:`table-footer-group`},tr:{display:`table-row`},td:{display:`table-cell`,padding:1},th:{display:`table-cell`,padding:1,fontWeight:`bold`,textAlign:`center`},caption:{display:`table-caption`,textAlign:`center`}};function t(t){if(t!==!1)return t??e}function n(e,t){let n;for(let r in e){if(!Object.hasOwn(e,r))continue;let i=e[r];r!==`children`&&r!==`className`&&r!==`class`&&r!==`id`&&r!==`style`&&r!==t&&r!==`ref`&&r!==`key`&&r!==`dangerouslySetInnerHTML`&&r!==`suppressHydrationWarning`&&i!=null&&i!==!1&&typeof i!=`function`&&typeof i!=`symbol`&&typeof i!=`object`&&(n??={},n[r]=i===!0?``:String(i))}return n}let r=!1;function i(e){Object.defineProperty(e,"stylesheets",{enumerable:!1})}function a(){r||(r=!0,console.warn("takumi: the `stylesheets` result field is deprecated, use `css` instead."))}const o=new Set([`head`,`meta`,`link`,`style`,`script`]);function s(e){return o.has(e)}function c(e,t){return e.type===t&&`props`in e}function l(e){return e.replace(/([A-Z])/g,`-$1`).toLowerCase()}function u(e){return typeof e==`object`&&!!e&&`type`in e}function d(e){return typeof e==`function`}const f=Symbol.for(`react.forward_ref`),p=Symbol.for(`react.memo`),m=Symbol.for(`react.fragment`);function h(e,t){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===t}function g(e){return h(e,f)&&`render`in e&&typeof e.render==`function`}function _(e){return h(e,p)&&`type`in e}function v(e){return e.type===m}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return a}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takumi-rs/helpers",
3
- "version": "2.11.0",
3
+ "version": "2.13.0",
4
4
  "description": "Convert JSX and HTML to Takumi node trees. Load fonts and emoji.",
5
5
  "keywords": [
6
6
  "emoji",
@@ -95,11 +95,11 @@
95
95
  "publish-lint": "attw --pack . && publint --strict ."
96
96
  },
97
97
  "devDependencies": {
98
- "@types/bun": "^1.3.14",
98
+ "@types/bun": "^1.4.0",
99
99
  "@types/react": "19.2.18",
100
100
  "@types/react-dom": "^19.2.4",
101
- "lucide-react": "^1.31.0",
102
- "preact": "^10.28.2",
101
+ "lucide-react": "^1.33.0",
102
+ "preact": "^10.29.8",
103
103
  "react": "^19.2.8",
104
104
  "react-dom": "^19.2.8",
105
105
  "tsdown": "0.22.14",
@@ -1 +0,0 @@
1
- const e=/url\(\s*(['"]?)(.*?)\1\s*\)/g;async function t(e,t={}){if(t.allowUrl&&!t.allowUrl(e))throw Error(`URL blocked by allowUrl policy: ${e}`);let r=t.fetch??globalThis.fetch,i=t.timeout??3e4,a=i<=0?void 0:AbortSignal.timeout(i),o=[t.signal,t.init?.signal,a].filter(e=>e!==void 0),s=o.length?AbortSignal.any(o):void 0,c={...t.init,signal:s},l=t.allowUrl?await n(e,t.allowUrl,r,c):await r(e,c);if(!l.ok)throw Error(`HTTP ${l.status} ${l.statusText} fetching ${e}`);return l}async function n(e,t,n,r){let i=e;for(let e=0;e<5;e++){let e=await n(i,{...r,redirect:`manual`}),a=e.headers.get(`location`);if(e.status<300||e.status>=400||!a)return e;if(await e.body?.cancel().catch(()=>{}),i=new URL(a,i).toString(),!t(i))throw Error(`URL blocked by allowUrl policy: ${i}`)}throw Error(`Too many redirects fetching ${e}`)}async function r(e,t){let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)throw Error(`Response exceeds ${t} bytes (content-length ${n})`);let r=e.body;if(!r)return e.arrayBuffer();let i=r.getReader(),a=[],o=0;for(;;){let{done:e,value:n}=await i.read();if(e)break;if(o+=n.byteLength,o>t)throw await i.cancel().catch(()=>{}),Error(`Response exceeds ${t} bytes`);a.push(n)}let s=new Uint8Array(o),c=0;for(let e of a)s.set(e,c),c+=e.byteLength;return s.buffer}function i(e){return e.startsWith(`https://`)||e.startsWith(`http://`)}function a(t,n){if(typeof t==`string`)for(let r of t.matchAll(e)){let e=r[2]?.trim();e&&i(e)&&n.add(e)}else if(Array.isArray(t))for(let e of t)a(e,n)}function o(e){let t=new Set,n=e=>{let r=e=>{e&&(a(e.backgroundImage,t),a(e.maskImage,t),a(e.listStyleImage,t))};if(r(e.style),r(e.preset),a(e.tw,t),e.type===`image`){typeof e.src==`string`&&i(e.src)&&t.add(e.src);return}if(e.type===`container`)for(let t of e.children??[])n(t)};return n(e),[...t]}function s(e,n,i){let a=i?.get(e);if(a)return a;let o=t(e,n).then(e=>r(e,n.maxBytes??33554432)).catch(t=>{throw i?.delete(e),t});return i?.set(e,o),o}async function c({node:e,sources:t=[],fetchCache:n,fetch:r,timeout:i,signal:a,maxBytes:c,allowUrl:l,throwOnError:u=!0}){let d=Array.isArray(e)?e:[e],f=new Map;for(let e of t)f.set(e.src,e);let p=[...new Set(d.flatMap(o))].filter(e=>!f.has(e)),m={fetch:r,timeout:i,signal:a,maxBytes:c,allowUrl:l},h=p.map(async e=>({src:e,data:await s(e,m,n)})),g=u?await Promise.all(h):(await Promise.allSettled(h)).filter(e=>e.status===`fulfilled`).map(e=>e.value);return[...f.values(),...g]}const l=new Map;function u(e,t,n,r){let i=new Map(r),a=n.includes(`italic`),o=a?n.includes(`normal`)?[0,1]:[1]:[void 0],s=[...a?[`ital`]:[],...i.keys(),`wght`].sort(),c=o.flatMap(e=>t.map(t=>s.map(n=>n===`ital`?String(e):n===`wght`?t:i.get(n)??``).join(`,`))).sort();return`${e}:${s.join(`,`)}@${c.join(`;`)}`}function d(e){let t=new URL(e.baseUrl??`https://fonts.googleapis.com/css2`);for(let n of e.families){if(typeof n==`string`){t.searchParams.append(`family`,u(n,[`400`],[`normal`],[]));continue}let e=n.weight??400,r=(Array.isArray(e)?[...e].sort((e,t)=>e-t):[e]).map(String),i=n.style??`normal`,a=(Array.isArray(i)?i:[i]).map(String),o=Object.entries(n.axes??{}).filter(([e])=>e!==`ital`&&e!==`wght`).map(([e,t])=>[e,String(t)]);t.searchParams.append(`family`,u(n.name,r,a,o))}return e.display&&t.searchParams.set(`display`,e.display),t.toString()}function f(e,n){return t(e,{...n,init:{headers:{"User-Agent":`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`}}}).then(e=>r(e,n.maxBytes??2097152)).then(e=>new TextDecoder().decode(e))}function p(e,t){let n=t.cache??l,r=n.get(e);if(r)return r;let i=f(e,t);return n.set(e,i),i.catch(()=>n.delete(e)),i}const m=/(?:\/\*\s*([^*]+?)\s*\*\/\s*)?@font-face\s*\{([^}]*)\}/g;function h(e,n,i){let a=`${e.family} ${e.subset}`,o=e.ranges.map(([e,t])=>`${e}-${t}`).join(`,`);return{name:a,subsetOf:e.family,subsetRank:g(e.ranges),key:`${a}:${e.weight??``}:${e.style??``}:${o}:${i??``}`,weight:e.weight,style:e.style,ranges:e.ranges,generic:i,data:()=>t(e.url,n).then(e=>r(e,n.maxBytes??33554432))}}function g(e){return e.length===0?4294967295:Math.min(...e.map(([e])=>e))}function _(e){let t=[];for(let n of e.split(`,`)){let e=n.trim().replace(/^U\+/i,``);if(e)if(e.includes(`-`)){let[n,r]=e.split(`-`);n&&r&&t.push([parseInt(n,16),parseInt(r,16)])}else if(e.includes(`?`))t.push([parseInt(e.replace(/\?/g,`0`),16),parseInt(e.replace(/\?/g,`F`),16)]);else{let n=parseInt(e,16);t.push([n,n])}}return t}function v(e){let t=[],n=0;for(let r of e.matchAll(m)){let e=r[2];if(!e)continue;let i=e.match(/src:\s*url\(([^)]+)\)/)?.[1]?.replace(/['"]/g,``).trim(),a=e.match(/font-family:\s*['"]?([^'";]+)['"]?/)?.[1]?.trim();if(!i||!a)continue;let o=e.match(/unicode-range:\s*([^;]+)/)?.[1],s=e.match(/font-weight:\s*(\d+)(?:\s+(\d+))?/);t.push({family:a,subset:r[1]?.trim()||`subset-${n}`,url:i,weight:s&&!s[2]?Number(s[1]):void 0,style:e.match(/font-style:\s*([a-z]+)/i)?.[1],ranges:o?_(o):[]}),n+=1}return t}function y(e){let t=new Map;for(let n of e){let e=t.get(n.url)??new Set;e.add(n.weight),t.set(n.url,e)}let n=new Set,r=[];for(let i of e){if(n.has(i.url))continue;n.add(i.url);let e=(t.get(i.url)?.size??0)>1;r.push(e?{...i,weight:void 0}:i)}return r}function b(e){let t=new Set,n=e=>{for(let n of e)t.add(n.codePointAt(0))},r=e=>{typeof e==`string`?n(e):e.type===`text`?n(e.text):e.type===`container`&&e.children?.forEach(r)};return Array.isArray(e)?e.forEach(r):r(e),t}function x(e,t){if(e.length===0)return!0;for(let n of t)for(let[t,r]of e)if(n>=t&&n<=r)return!0;return!1}function S({fonts:e,source:t}){let n=b(t);return e.filter(e=>x(e.ranges??[],n))}function C(e,n={}){return{key:e,data:()=>t(e,n).then(e=>r(e,n.maxBytes??33554432))}}async function w(e){if(Array.isArray(e)&&(e={families:e}),e.families.length===0)return[];let t=await p(d(e),e),n=new Map(e.families.map((e,t)=>[typeof e==`string`?e:e.name,t])),r=new Map(e.families.flatMap(e=>typeof e==`string`||!e.generic?[]:[[e.name,e.generic]]));return y(v(t)).sort((e,t)=>(n.get(e.family)??0)-(n.get(t.family)??0)).map(t=>h(t,e,r.get(t.family)))}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return 33554432}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return`•◦■▪ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`}});
@@ -1 +0,0 @@
1
- const e=32*1024*1024,t=/url\(\s*(['"]?)(.*?)\1\s*\)/g;async function n(e,t={}){if(t.allowUrl&&!t.allowUrl(e))throw Error(`URL blocked by allowUrl policy: ${e}`);let n=t.fetch??globalThis.fetch,i=t.timeout??3e4,a=i<=0?void 0:AbortSignal.timeout(i),o=[t.signal,t.init?.signal,a].filter(e=>e!==void 0),s=o.length?AbortSignal.any(o):void 0,c={...t.init,signal:s},l=t.allowUrl?await r(e,t.allowUrl,n,c):await n(e,c);if(!l.ok)throw Error(`HTTP ${l.status} ${l.statusText} fetching ${e}`);return l}async function r(e,t,n,r){let i=e;for(let e=0;e<5;e++){let e=await n(i,{...r,redirect:`manual`}),a=e.headers.get(`location`);if(e.status<300||e.status>=400||!a)return e;if(await e.body?.cancel().catch(()=>{}),i=new URL(a,i).toString(),!t(i))throw Error(`URL blocked by allowUrl policy: ${i}`)}throw Error(`Too many redirects fetching ${e}`)}async function i(e,t){let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)throw Error(`Response exceeds ${t} bytes (content-length ${n})`);let r=e.body;if(!r)return e.arrayBuffer();let i=r.getReader(),a=[],o=0;for(;;){let{done:e,value:n}=await i.read();if(e)break;if(o+=n.byteLength,o>t)throw await i.cancel().catch(()=>{}),Error(`Response exceeds ${t} bytes`);a.push(n)}let s=new Uint8Array(o),c=0;for(let e of a)s.set(e,c),c+=e.byteLength;return s.buffer}function a(e){return e.startsWith(`https://`)||e.startsWith(`http://`)}function o(e,n){if(typeof e==`string`)for(let r of e.matchAll(t)){let e=r[2]?.trim();e&&a(e)&&n.add(e)}else if(Array.isArray(e))for(let t of e)o(t,n)}function s(e){let t=new Set,n=e=>{let r=e=>{e&&(o(e.backgroundImage,t),o(e.maskImage,t),o(e.listStyleImage,t))};if(r(e.style),r(e.preset),o(e.tw,t),e.type===`image`){typeof e.src==`string`&&a(e.src)&&t.add(e.src);return}if(e.type===`container`)for(let t of e.children??[])n(t)};return n(e),[...t]}function c(e,t,r){let a=r?.get(e);if(a)return a;let o=n(e,t).then(e=>i(e,t.maxBytes??33554432)).catch(t=>{throw r?.delete(e),t});return r?.set(e,o),o}async function l({node:e,sources:t=[],fetchCache:n,fetch:r,timeout:i,signal:a,maxBytes:o,allowUrl:l,throwOnError:u=!0}){let d=Array.isArray(e)?e:[e],f=new Map;for(let e of t)f.set(e.src,e);let p=[...new Set(d.flatMap(s))].filter(e=>!f.has(e)),m={fetch:r,timeout:i,signal:a,maxBytes:o,allowUrl:l},h=p.map(async e=>({src:e,data:await c(e,m,n)})),g=u?await Promise.all(h):(await Promise.allSettled(h)).filter(e=>e.status===`fulfilled`).map(e=>e.value);return[...f.values(),...g]}const u=new Map;function d(e,t,n,r){let i=new Map(r),a=n.includes(`italic`),o=a?n.includes(`normal`)?[0,1]:[1]:[void 0],s=[...a?[`ital`]:[],...i.keys(),`wght`].sort(),c=o.flatMap(e=>t.map(t=>s.map(n=>n===`ital`?String(e):n===`wght`?t:i.get(n)??``).join(`,`))).sort();return`${e}:${s.join(`,`)}@${c.join(`;`)}`}function f(e){let t=new URL(e.baseUrl??`https://fonts.googleapis.com/css2`);for(let n of e.families){if(typeof n==`string`){t.searchParams.append(`family`,d(n,[`400`],[`normal`],[]));continue}let e=n.weight??400,r=(Array.isArray(e)?[...e].sort((e,t)=>e-t):[e]).map(String),i=n.style??`normal`,a=(Array.isArray(i)?i:[i]).map(String),o=Object.entries(n.axes??{}).filter(([e])=>e!==`ital`&&e!==`wght`).map(([e,t])=>[e,String(t)]);t.searchParams.append(`family`,d(n.name,r,a,o))}return e.display&&t.searchParams.set(`display`,e.display),t.toString()}function p(e,t){return n(e,{...t,init:{headers:{"User-Agent":`Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`}}}).then(e=>i(e,t.maxBytes??2097152)).then(e=>new TextDecoder().decode(e))}function m(e,t){let n=t.cache??u,r=n.get(e);if(r)return r;let i=p(e,t);return n.set(e,i),i.catch(()=>n.delete(e)),i}const h=/(?:\/\*\s*([^*]+?)\s*\*\/\s*)?@font-face\s*\{([^}]*)\}/g;function g(e,t,r){let a=`${e.family} ${e.subset}`,o=e.ranges.map(([e,t])=>`${e}-${t}`).join(`,`);return{name:a,subsetOf:e.family,subsetRank:_(e.ranges),key:`${a}:${e.weight??``}:${e.style??``}:${o}:${r??``}`,weight:e.weight,style:e.style,ranges:e.ranges,generic:r,data:()=>n(e.url,t).then(e=>i(e,t.maxBytes??33554432))}}function _(e){return e.length===0?4294967295:Math.min(...e.map(([e])=>e))}function v(e){let t=[];for(let n of e.split(`,`)){let e=n.trim().replace(/^U\+/i,``);if(e)if(e.includes(`-`)){let[n,r]=e.split(`-`);n&&r&&t.push([parseInt(n,16),parseInt(r,16)])}else if(e.includes(`?`))t.push([parseInt(e.replace(/\?/g,`0`),16),parseInt(e.replace(/\?/g,`F`),16)]);else{let n=parseInt(e,16);t.push([n,n])}}return t}function y(e){let t=[],n=0;for(let r of e.matchAll(h)){let e=r[2];if(!e)continue;let i=e.match(/src:\s*url\(([^)]+)\)/)?.[1]?.replace(/['"]/g,``).trim(),a=e.match(/font-family:\s*['"]?([^'";]+)['"]?/)?.[1]?.trim();if(!i||!a)continue;let o=e.match(/unicode-range:\s*([^;]+)/)?.[1],s=e.match(/font-weight:\s*(\d+)(?:\s+(\d+))?/);t.push({family:a,subset:r[1]?.trim()||`subset-${n}`,url:i,weight:s&&!s[2]?Number(s[1]):void 0,style:e.match(/font-style:\s*([a-z]+)/i)?.[1],ranges:o?v(o):[]}),n+=1}return t}function b(e){let t=new Map;for(let n of e){let e=t.get(n.url)??new Set;e.add(n.weight),t.set(n.url,e)}let n=new Set,r=[];for(let i of e){if(n.has(i.url))continue;n.add(i.url);let e=(t.get(i.url)?.size??0)>1;r.push(e?{...i,weight:void 0}:i)}return r}const x=`•◦■▪ 0123456789.-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`;function S(e){let t=new Set,n=e=>{for(let n of e)t.add(n.codePointAt(0))},r=e=>{typeof e==`string`?n(e):e.type===`text`?n(e.text):e.type===`container`&&e.children?.forEach(r)};return Array.isArray(e)?e.forEach(r):r(e),t}function C(e,t){if(e.length===0)return!0;for(let n of t)for(let[t,r]of e)if(n>=t&&n<=r)return!0;return!1}function w({fonts:e,source:t}){let n=S(t);return e.filter(e=>C(e.ranges??[],n))}function T(e,t={}){return{key:e,data:()=>n(e,t).then(e=>i(e,t.maxBytes??33554432))}}async function E(e){if(Array.isArray(e)&&(e={families:e}),e.families.length===0)return[];let t=await m(f(e),e),n=new Map(e.families.map((e,t)=>[typeof e==`string`?e:e.name,t])),r=new Map(e.families.flatMap(e=>typeof e==`string`||!e.generic?[]:[[e.name,e.generic]]));return b(y(t)).sort((e,t)=>(n.get(e.family)??0)-(n.get(t.family)??0)).map(t=>g(t,e,r.get(t.family)))}export{w as a,l as c,E as i,i as l,S as n,e as o,T as r,n as s,x as t};