@unmap/themes 0.7.0 → 0.8.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/dist/index.js CHANGED
@@ -76,6 +76,17 @@ var verdant = {
76
76
  800: "#1E4128",
77
77
  900: "#0B2815"
78
78
  };
79
+ var fern = {
80
+ 100: "#D3F3C5",
81
+ 200: "#C3E6B3",
82
+ 300: "#AFD59E",
83
+ 400: "#96BF83",
84
+ 500: "#76A560",
85
+ 600: "#518535",
86
+ 700: "#37621E",
87
+ 800: "#1E4305",
88
+ 900: "#0F2900"
89
+ };
79
90
  var sandstone = {
80
91
  100: "#F5E8D0",
81
92
  200: "#E7D9BF",
@@ -187,22 +198,106 @@ var aqua = {
187
198
  950: "#081B1D",
188
199
  980: "#060E0F"
189
200
  };
201
+ var linen = {
202
+ 25: "#FCF6E6",
203
+ 50: "#F6F0E0",
204
+ 100: "#EDE7D7",
205
+ 200: "#E2DCCC",
206
+ 300: "#D5CFC0",
207
+ 400: "#C4BEAF",
208
+ 500: "#AAA495",
209
+ 600: "#8B8677",
210
+ 700: "#696457",
211
+ 800: "#4B4639",
212
+ 850: "#383427",
213
+ 900: "#272317",
214
+ 950: "#1B170B",
215
+ 1e3: "#0F0B03"
216
+ };
217
+ var coral = {
218
+ 25: "#FFF3F1",
219
+ 50: "#FFEBE8",
220
+ 100: "#FFDFDB",
221
+ 200: "#FFCFC8",
222
+ 300: "#FFBDB3",
223
+ 400: "#FFA195",
224
+ 500: "#F47C6E",
225
+ 600: "#C76559",
226
+ 700: "#974A42",
227
+ 800: "#6C332D",
228
+ 850: "#512520",
229
+ 900: "#391814",
230
+ 950: "#270F0C",
231
+ 1e3: "#170705"
232
+ };
233
+ var peach = {
234
+ 100: "#FFE2CC",
235
+ 200: "#FFCEAA",
236
+ 300: "#F4B98D",
237
+ 400: "#E0A171",
238
+ 500: "#CA8248",
239
+ 600: "#AC5E0D",
240
+ 700: "#804300",
241
+ 800: "#572B00",
242
+ 900: "#361900"
243
+ };
244
+ var indigo = {
245
+ 25: "#F7F6F9",
246
+ 50: "#F0EFF6",
247
+ 100: "#E8E6F1",
248
+ 200: "#DDD9EC",
249
+ 300: "#D0CBE6",
250
+ 400: "#C0B8DE",
251
+ 500: "#A89BD3",
252
+ 600: "#8B76C5",
253
+ 700: "#6D4BB5",
254
+ 800: "#4B3977",
255
+ 850: "#362C53",
256
+ 900: "#251F36",
257
+ 950: "#181422",
258
+ 1e3: "#0C0A11"
259
+ };
260
+ var azure = {
261
+ 100: "#D4EBFF",
262
+ 200: "#B6DDFF",
263
+ 300: "#92CBFB",
264
+ 400: "#74B3E8",
265
+ 500: "#5299D2",
266
+ 600: "#227AB9",
267
+ 700: "#005B91",
268
+ 800: "#003D64",
269
+ 900: "#002641",
270
+ 950: "#00192D",
271
+ 980: "#000E1C"
272
+ };
273
+ var amber = {
274
+ 200: "#FEEAC1",
275
+ 300: "#F3C96F",
276
+ 400: "#E7AF0E",
277
+ 500: "#C99700",
278
+ 600: "#C19100",
279
+ 700: "#916D00"
280
+ };
190
281
 
191
282
  // src/recipe.ts
192
283
  var THEME_BASES = [
193
284
  "base",
194
285
  "muted",
195
286
  "outdoor",
196
- "decimal",
197
287
  "blueprint",
198
288
  "blush",
199
289
  "orchid",
200
290
  "canopy",
201
- "lagoon"
291
+ "lagoon",
292
+ "tropic",
293
+ "sunset",
294
+ "bold",
295
+ "pastel"
202
296
  ];
203
297
  var RETIRED_BASES = {
204
298
  relief: "outdoor",
205
- street: "base"
299
+ street: "base",
300
+ decimal: "blueprint"
206
301
  };
207
302
  function normalizeThemeBase(base) {
208
303
  if (THEME_BASES.includes(base)) return base;
@@ -301,6 +396,7 @@ var STOCK_RAMPS = {
301
396
  wave,
302
397
  sky,
303
398
  verdant,
399
+ fern,
304
400
  sandstone,
305
401
  graphite,
306
402
  mist,
@@ -309,7 +405,13 @@ var STOCK_RAMPS = {
309
405
  rose,
310
406
  lilac,
311
407
  aqua,
312
- ember
408
+ ember,
409
+ linen,
410
+ coral,
411
+ peach,
412
+ indigo,
413
+ azure,
414
+ amber
313
415
  };
314
416
  function buildRecipes(r) {
315
417
  const BASE_LIGHT = {
@@ -610,14 +712,17 @@ function buildRecipes(r) {
610
712
  };
611
713
  const OUTDOOR_LIGHT = {
612
714
  background: r.ink[200],
613
- earth: r.ink[50],
715
+ // Warm paper, not the near-white ink the style launched on (2026-09-09): a green reads as
716
+ // vegetation against warm land and as a polygon against white, which is the difference
717
+ // between an outdoor map and a diagram. Mapbox Outdoors' land is hsl(60, 20%, 85%).
718
+ earth: r.paper[100],
614
719
  water: r.wave[300],
615
- parkA: r.verdant[300],
616
- parkB: r.verdant[400],
617
- woodA: r.verdant[300],
618
- woodB: r.verdant[400],
619
- scrubA: r.verdant[200],
620
- scrubB: r.verdant[300],
720
+ parkA: r.fern[300],
721
+ parkB: r.fern[400],
722
+ woodA: r.fern[300],
723
+ woodB: r.fern[400],
724
+ scrubA: r.fern[200],
725
+ scrubB: r.fern[300],
621
726
  sand: r.sandstone[300],
622
727
  beach: r.sandstone[300],
623
728
  glacier: r.ink[25],
@@ -667,7 +772,7 @@ function buildRecipes(r) {
667
772
  blue: "#2D6E8F",
668
773
  // Peaks, parks, forests and gardens all come through green. On this flavour they are the
669
774
  // POIs worth finding, so it carries a full step more weight than elsewhere.
670
- green: r.verdant[800],
775
+ green: r.fern[800],
671
776
  lapis: "#3F5C93",
672
777
  pink: "#8F4A6B",
673
778
  red: "#9B4340",
@@ -676,25 +781,25 @@ function buildRecipes(r) {
676
781
  turquoise: r.wave[700]
677
782
  },
678
783
  landcover: {
679
- grassland: r.verdant[200],
784
+ grassland: r.fern[200],
680
785
  barren: r.sandstone[300],
681
786
  urban_area: r.ink[100],
682
787
  farmland: r.sandstone[200],
683
788
  glacier: r.ink[25],
684
- scrub: r.verdant[300],
685
- forest: r.verdant[400]
789
+ scrub: r.fern[300],
790
+ forest: r.fern[400]
686
791
  }
687
792
  };
688
793
  const OUTDOOR_DARK = {
689
794
  background: r.ink[1e3],
690
795
  earth: r.ink[950],
691
796
  water: r.wave[980],
692
- parkA: r.verdant[700],
693
- parkB: r.verdant[600],
694
- woodA: r.verdant[700],
695
- woodB: r.verdant[600],
696
- scrubA: r.verdant[800],
697
- scrubB: r.verdant[700],
797
+ parkA: r.fern[700],
798
+ parkB: r.fern[600],
799
+ woodA: r.fern[700],
800
+ woodB: r.fern[600],
801
+ scrubA: r.fern[800],
802
+ scrubB: r.fern[700],
698
803
  sand: r.sandstone[500],
699
804
  beach: r.sandstone[500],
700
805
  glacier: r.ink[700],
@@ -743,7 +848,7 @@ function buildRecipes(r) {
743
848
  },
744
849
  pois: {
745
850
  blue: "#7FC4E8",
746
- green: r.verdant[300],
851
+ green: r.fern[300],
747
852
  lapis: "#8FB0EA",
748
853
  pink: "#E3A0C0",
749
854
  red: "#EE968F",
@@ -752,161 +857,13 @@ function buildRecipes(r) {
752
857
  turquoise: r.wave[400]
753
858
  },
754
859
  landcover: {
755
- grassland: r.verdant[700],
860
+ grassland: r.fern[700],
756
861
  barren: r.sandstone[500],
757
862
  urban_area: r.ink[950],
758
- farmland: r.verdant[900],
863
+ farmland: r.fern[900],
759
864
  glacier: r.ink[700],
760
- scrub: r.verdant[800],
761
- forest: r.verdant[600]
762
- }
763
- };
764
- const DECIMAL_LIGHT = {
765
- background: r.jade[100],
766
- earth: r.jade[25],
767
- water: r.jade[200],
768
- parkA: r.jade[50],
769
- parkB: r.jade[100],
770
- woodA: r.jade[50],
771
- woodB: r.jade[100],
772
- scrubA: r.jade[50],
773
- scrubB: r.jade[100],
774
- sand: r.jade[50],
775
- beach: r.jade[50],
776
- glacier: r.jade[25],
777
- institutional: r.jade[50],
778
- pedestrian: r.jade[50],
779
- aerodrome: r.jade[50],
780
- runway: r.jade[200],
781
- pier: r.jade[200],
782
- buildings: r.jade[100],
783
- railway: r.jade[500],
784
- boundaries: r.jade[600],
785
- roads: {
786
- other: r.jade[200],
787
- otherCasing: r.jade[25],
788
- minor: r.jade[300],
789
- minorCasing: r.jade[25],
790
- service: r.jade[200],
791
- serviceCasing: r.jade[25],
792
- major: r.jade[400],
793
- majorCasing: r.jade[25],
794
- highway: r.jade[500],
795
- highwayCasing: r.jade[25],
796
- link: r.jade[400],
797
- linkCasing: r.jade[25]
798
- },
799
- tunnelFill: r.jade[100],
800
- tunnelCasing: r.jade[200],
801
- bridgeCasing: r.jade[600],
802
- labels: {
803
- city: r.jade[1e3],
804
- cityHalo: r.jade[25],
805
- state: r.jade[700],
806
- stateHalo: r.jade[25],
807
- country: r.jade[700],
808
- subplace: r.jade[700],
809
- subplaceHalo: r.jade[25],
810
- address: r.jade[700],
811
- addressHalo: r.jade[25],
812
- roadMinor: r.jade[700],
813
- roadMinorHalo: r.jade[25],
814
- roadMajor: r.jade[800],
815
- roadMajorHalo: r.jade[25],
816
- ocean: r.jade[800]
817
- },
818
- pois: {
819
- blue: r.jade[700],
820
- green: r.jade[700],
821
- lapis: r.jade[700],
822
- pink: r.jade[700],
823
- red: r.jade[700],
824
- slategray: r.jade[700],
825
- tangerine: r.jade[700],
826
- turquoise: r.jade[700]
827
- },
828
- landcover: {
829
- grassland: r.jade[50],
830
- barren: r.jade[50],
831
- urban_area: r.jade[50],
832
- farmland: r.jade[50],
833
- glacier: r.jade[25],
834
- scrub: r.jade[50],
835
- forest: r.jade[100]
836
- }
837
- };
838
- const DECIMAL_DARK = {
839
- background: r.jade[1e3],
840
- earth: r.jade[1e3],
841
- water: r.jade[900],
842
- parkA: r.jade[950],
843
- parkB: r.jade[900],
844
- woodA: r.jade[950],
845
- woodB: r.jade[900],
846
- scrubA: r.jade[950],
847
- scrubB: r.jade[900],
848
- sand: r.jade[950],
849
- beach: r.jade[950],
850
- glacier: r.jade[900],
851
- institutional: r.jade[950],
852
- pedestrian: r.jade[950],
853
- aerodrome: r.jade[950],
854
- runway: r.jade[850],
855
- pier: r.jade[850],
856
- buildings: r.jade[900],
857
- railway: r.jade[800],
858
- boundaries: r.jade[700],
859
- roads: {
860
- other: r.jade[850],
861
- otherCasing: r.jade[1e3],
862
- minor: r.jade[800],
863
- minorCasing: r.jade[1e3],
864
- service: r.jade[850],
865
- serviceCasing: r.jade[1e3],
866
- major: r.jade[700],
867
- majorCasing: r.jade[1e3],
868
- highway: r.jade[600],
869
- highwayCasing: r.jade[1e3],
870
- link: r.jade[700],
871
- linkCasing: r.jade[1e3]
872
- },
873
- tunnelFill: r.jade[900],
874
- tunnelCasing: r.jade[1e3],
875
- bridgeCasing: r.jade[1e3],
876
- labels: {
877
- city: r.jade[500],
878
- cityHalo: r.jade[1e3],
879
- state: r.jade[600],
880
- stateHalo: r.jade[1e3],
881
- country: r.jade[600],
882
- subplace: r.jade[600],
883
- subplaceHalo: r.jade[1e3],
884
- address: r.jade[600],
885
- addressHalo: r.jade[1e3],
886
- roadMinor: r.jade[600],
887
- roadMinorHalo: r.jade[1e3],
888
- roadMajor: r.jade[500],
889
- roadMajorHalo: r.jade[1e3],
890
- ocean: r.jade[500]
891
- },
892
- pois: {
893
- blue: r.jade[600],
894
- green: r.jade[600],
895
- lapis: r.jade[600],
896
- pink: r.jade[600],
897
- red: r.jade[600],
898
- slategray: r.jade[600],
899
- tangerine: r.jade[600],
900
- turquoise: r.jade[600]
901
- },
902
- landcover: {
903
- grassland: r.jade[950],
904
- barren: r.jade[950],
905
- urban_area: r.jade[950],
906
- farmland: r.jade[950],
907
- glacier: r.jade[900],
908
- scrub: r.jade[950],
909
- forest: r.jade[900]
865
+ scrub: r.fern[800],
866
+ forest: r.fern[600]
910
867
  }
911
868
  };
912
869
  const BLUEPRINT_LIGHT = {
@@ -1428,8 +1385,11 @@ function buildRecipes(r) {
1428
1385
  }
1429
1386
  };
1430
1387
  const CANOPY_DARK = {
1431
- background: r.paper[950],
1432
- earth: r.paper[900],
1388
+ // `linen` rather than `paper` for the ground alone: paper is packed solid here (1000 casings,
1389
+ // 950 background, 900 earth, 850 scrub), so there is no free step to move to, and `base`
1390
+ // owns paper[900]. The straw tint also suits a style whose light half is sandstone.
1391
+ background: r.linen[950],
1392
+ earth: r.linen[900],
1433
1393
  water: r.cobalt[950],
1434
1394
  parkA: r.verdant[900],
1435
1395
  parkB: r.verdant[800],
@@ -1649,16 +1609,627 @@ function buildRecipes(r) {
1649
1609
  forest: r.wave[800]
1650
1610
  }
1651
1611
  };
1612
+ const TROPIC_LIGHT = {
1613
+ background: r.linen[100],
1614
+ // A step below `sunset`, whose warm duotone owns the lightest cream. Tropic's cream sitting
1615
+ // slightly deeper is also what lets its full-strength teal water carry the style.
1616
+ earth: r.linen[50],
1617
+ water: r.aqua[500],
1618
+ parkA: r.jade[300],
1619
+ parkB: r.jade[400],
1620
+ woodA: r.jade[400],
1621
+ woodB: r.jade[500],
1622
+ scrubA: r.fern[200],
1623
+ scrubB: r.fern[300],
1624
+ sand: r.sandstone[200],
1625
+ beach: r.sandstone[100],
1626
+ glacier: r.ink[25],
1627
+ institutional: r.linen[100],
1628
+ pedestrian: r.linen[50],
1629
+ aerodrome: r.linen[200],
1630
+ runway: r.linen[300],
1631
+ pier: r.aqua[300],
1632
+ buildings: r.linen[200],
1633
+ railway: r.linen[400],
1634
+ boundaries: r.coral[700],
1635
+ roads: {
1636
+ other: "#FFFFFF",
1637
+ otherCasing: r.linen[200],
1638
+ minor: "#FFFFFF",
1639
+ minorCasing: r.linen[200],
1640
+ service: "#FFFFFF",
1641
+ serviceCasing: r.linen[200],
1642
+ major: "#FFFFFF",
1643
+ majorCasing: r.linen[300],
1644
+ highway: r.coral[500],
1645
+ highwayCasing: r.coral[700],
1646
+ link: r.coral[400],
1647
+ linkCasing: r.coral[600]
1648
+ },
1649
+ tunnelFill: r.linen[100],
1650
+ tunnelCasing: r.linen[200],
1651
+ bridgeCasing: r.linen[500],
1652
+ labels: {
1653
+ city: r.aqua[950],
1654
+ cityHalo: r.linen[25],
1655
+ state: r.aqua[800],
1656
+ stateHalo: r.linen[25],
1657
+ country: r.aqua[800],
1658
+ subplace: r.aqua[800],
1659
+ subplaceHalo: r.linen[25],
1660
+ address: r.linen[700],
1661
+ addressHalo: r.linen[25],
1662
+ roadMinor: r.linen[700],
1663
+ roadMinorHalo: r.linen[25],
1664
+ roadMajor: r.aqua[900],
1665
+ roadMajorHalo: r.linen[25],
1666
+ ocean: r.aqua[980]
1667
+ },
1668
+ pois: {
1669
+ blue: r.wave[700],
1670
+ green: r.verdant[700],
1671
+ lapis: r.sky[700],
1672
+ pink: r.rose[600],
1673
+ red: r.rose[700],
1674
+ slategray: r.graphite[700],
1675
+ tangerine: r.sandstone[500],
1676
+ turquoise: r.aqua[700]
1677
+ },
1678
+ landcover: {
1679
+ grassland: r.fern[200],
1680
+ barren: r.sandstone[200],
1681
+ urban_area: r.linen[100],
1682
+ farmland: r.sandstone[100],
1683
+ glacier: r.ink[25],
1684
+ scrub: r.fern[300],
1685
+ forest: r.jade[400]
1686
+ }
1687
+ };
1688
+ const TROPIC_DARK = {
1689
+ background: r.aqua[980],
1690
+ earth: r.aqua[950],
1691
+ water: r.aqua[700],
1692
+ parkA: r.jade[850],
1693
+ parkB: r.jade[800],
1694
+ woodA: r.jade[800],
1695
+ woodB: r.jade[700],
1696
+ scrubA: r.ink[900],
1697
+ scrubB: r.ink[850],
1698
+ sand: r.sandstone[500],
1699
+ beach: r.ink[900],
1700
+ glacier: r.ink[800],
1701
+ institutional: r.ink[900],
1702
+ pedestrian: r.aqua[900],
1703
+ aerodrome: r.ink[900],
1704
+ runway: r.ink[850],
1705
+ pier: r.aqua[600],
1706
+ buildings: r.ink[900],
1707
+ railway: r.ink[700],
1708
+ boundaries: r.coral[400],
1709
+ roads: {
1710
+ other: r.ink[850],
1711
+ otherCasing: r.aqua[980],
1712
+ minor: r.ink[800],
1713
+ minorCasing: r.aqua[980],
1714
+ service: r.ink[850],
1715
+ serviceCasing: r.aqua[980],
1716
+ major: r.ink[700],
1717
+ majorCasing: r.aqua[980],
1718
+ highway: r.coral[500],
1719
+ highwayCasing: r.aqua[980],
1720
+ link: r.coral[600],
1721
+ linkCasing: r.aqua[980]
1722
+ },
1723
+ tunnelFill: r.ink[900],
1724
+ tunnelCasing: r.aqua[980],
1725
+ bridgeCasing: r.aqua[980],
1726
+ labels: {
1727
+ city: r.linen[25],
1728
+ cityHalo: r.aqua[950],
1729
+ state: r.aqua[300],
1730
+ stateHalo: r.aqua[950],
1731
+ country: r.aqua[300],
1732
+ subplace: r.aqua[300],
1733
+ subplaceHalo: r.aqua[950],
1734
+ address: r.ink[400],
1735
+ addressHalo: r.aqua[950],
1736
+ roadMinor: r.ink[400],
1737
+ roadMinorHalo: r.aqua[950],
1738
+ roadMajor: r.linen[100],
1739
+ roadMajorHalo: r.aqua[950],
1740
+ ocean: r.aqua[200]
1741
+ },
1742
+ pois: {
1743
+ blue: r.wave[400],
1744
+ green: r.verdant[400],
1745
+ lapis: r.sky[400],
1746
+ pink: r.rose[400],
1747
+ red: r.rose[400],
1748
+ slategray: r.graphite[400],
1749
+ tangerine: r.sandstone[400],
1750
+ turquoise: r.aqua[400]
1751
+ },
1752
+ landcover: {
1753
+ grassland: r.ink[900],
1754
+ barren: r.sandstone[500],
1755
+ urban_area: r.aqua[950],
1756
+ farmland: r.ink[900],
1757
+ glacier: r.ink[800],
1758
+ scrub: r.ink[850],
1759
+ forest: r.jade[800]
1760
+ }
1761
+ };
1762
+ const SUNSET_LIGHT = {
1763
+ background: r.linen[100],
1764
+ earth: r.linen[25],
1765
+ water: r.indigo[700],
1766
+ parkA: r.peach[100],
1767
+ parkB: r.peach[200],
1768
+ woodA: r.peach[200],
1769
+ woodB: r.peach[300],
1770
+ scrubA: r.linen[100],
1771
+ scrubB: r.peach[100],
1772
+ sand: r.peach[200],
1773
+ beach: r.peach[100],
1774
+ glacier: r.linen[25],
1775
+ institutional: r.linen[100],
1776
+ pedestrian: r.linen[50],
1777
+ aerodrome: r.linen[200],
1778
+ runway: r.linen[300],
1779
+ pier: r.indigo[300],
1780
+ buildings: r.linen[200],
1781
+ railway: r.linen[400],
1782
+ boundaries: r.indigo[600],
1783
+ roads: {
1784
+ other: "#FFFFFF",
1785
+ otherCasing: r.linen[200],
1786
+ minor: "#FFFFFF",
1787
+ minorCasing: r.linen[200],
1788
+ service: "#FFFFFF",
1789
+ serviceCasing: r.linen[200],
1790
+ major: "#FFFFFF",
1791
+ majorCasing: r.coral[300],
1792
+ highway: r.coral[500],
1793
+ highwayCasing: r.coral[700],
1794
+ link: r.coral[400],
1795
+ linkCasing: r.coral[600]
1796
+ },
1797
+ tunnelFill: r.linen[100],
1798
+ tunnelCasing: r.linen[200],
1799
+ bridgeCasing: r.linen[500],
1800
+ labels: {
1801
+ city: r.indigo[900],
1802
+ cityHalo: r.linen[25],
1803
+ state: r.indigo[800],
1804
+ stateHalo: r.linen[25],
1805
+ country: r.indigo[800],
1806
+ subplace: r.indigo[800],
1807
+ subplaceHalo: r.linen[25],
1808
+ address: r.linen[700],
1809
+ addressHalo: r.linen[25],
1810
+ roadMinor: r.linen[700],
1811
+ roadMinorHalo: r.linen[25],
1812
+ roadMajor: r.indigo[900],
1813
+ roadMajorHalo: r.linen[25],
1814
+ ocean: r.linen[25]
1815
+ },
1816
+ pois: {
1817
+ blue: r.wave[700],
1818
+ green: r.verdant[700],
1819
+ lapis: r.sky[700],
1820
+ pink: r.rose[600],
1821
+ red: r.rose[700],
1822
+ slategray: r.graphite[700],
1823
+ tangerine: r.sandstone[500],
1824
+ turquoise: r.aqua[700]
1825
+ },
1826
+ // A step lighter than the parks: the field tint sits under them at up to 0.6 opacity, and at
1827
+ // the parks' own steps it turned the whole city orange rather than cream with peach in it.
1828
+ landcover: {
1829
+ grassland: r.linen[100],
1830
+ barren: r.linen[200],
1831
+ urban_area: r.linen[50],
1832
+ farmland: r.peach[100],
1833
+ glacier: r.linen[25],
1834
+ scrub: r.linen[100],
1835
+ forest: r.peach[200]
1836
+ }
1837
+ };
1838
+ const SUNSET_DARK = {
1839
+ background: r.indigo[950],
1840
+ earth: r.indigo[900],
1841
+ water: r.indigo[1e3],
1842
+ parkA: r.indigo[850],
1843
+ parkB: r.indigo[800],
1844
+ woodA: r.indigo[850],
1845
+ woodB: r.indigo[800],
1846
+ scrubA: r.indigo[900],
1847
+ scrubB: r.indigo[850],
1848
+ sand: r.peach[800],
1849
+ beach: r.indigo[850],
1850
+ glacier: r.indigo[700],
1851
+ institutional: r.indigo[850],
1852
+ pedestrian: r.indigo[850],
1853
+ aerodrome: r.indigo[850],
1854
+ runway: r.indigo[800],
1855
+ pier: r.indigo[600],
1856
+ buildings: r.indigo[850],
1857
+ railway: r.indigo[700],
1858
+ boundaries: r.peach[300],
1859
+ roads: {
1860
+ other: r.indigo[800],
1861
+ otherCasing: r.indigo[950],
1862
+ minor: r.indigo[700],
1863
+ minorCasing: r.indigo[950],
1864
+ service: r.indigo[800],
1865
+ serviceCasing: r.indigo[950],
1866
+ major: r.indigo[600],
1867
+ majorCasing: r.indigo[950],
1868
+ highway: r.coral[500],
1869
+ highwayCasing: r.indigo[950],
1870
+ link: r.coral[600],
1871
+ linkCasing: r.indigo[950]
1872
+ },
1873
+ tunnelFill: r.indigo[850],
1874
+ tunnelCasing: r.indigo[950],
1875
+ bridgeCasing: r.indigo[950],
1876
+ labels: {
1877
+ city: r.peach[100],
1878
+ cityHalo: r.indigo[900],
1879
+ state: r.peach[300],
1880
+ stateHalo: r.indigo[900],
1881
+ country: r.peach[300],
1882
+ subplace: r.peach[300],
1883
+ subplaceHalo: r.indigo[900],
1884
+ address: r.indigo[400],
1885
+ addressHalo: r.indigo[900],
1886
+ roadMinor: r.indigo[400],
1887
+ roadMinorHalo: r.indigo[900],
1888
+ roadMajor: r.peach[100],
1889
+ roadMajorHalo: r.indigo[900],
1890
+ ocean: r.indigo[500]
1891
+ },
1892
+ pois: {
1893
+ blue: r.wave[400],
1894
+ green: r.verdant[400],
1895
+ lapis: r.sky[400],
1896
+ pink: r.rose[400],
1897
+ red: r.rose[400],
1898
+ slategray: r.graphite[400],
1899
+ tangerine: r.sandstone[400],
1900
+ turquoise: r.aqua[400]
1901
+ },
1902
+ landcover: {
1903
+ grassland: r.indigo[900],
1904
+ barren: r.peach[800],
1905
+ urban_area: r.indigo[900],
1906
+ farmland: r.indigo[850],
1907
+ glacier: r.indigo[700],
1908
+ scrub: r.indigo[850],
1909
+ forest: r.indigo[800]
1910
+ }
1911
+ };
1912
+ const BOLD_LIGHT = {
1913
+ background: r.paper[100],
1914
+ // A step below `base`, which owns the lightest paper: two styles cannot share a land colour
1915
+ // (the /styles suite asserts twelve distinct earths), and the saturated water, parks and
1916
+ // amber highway read better off a ground that is a shade warmer than the default map's.
1917
+ earth: r.paper[50],
1918
+ water: r.azure[500],
1919
+ parkA: r.fern[300],
1920
+ parkB: r.fern[400],
1921
+ woodA: r.jade[500],
1922
+ woodB: r.jade[600],
1923
+ scrubA: r.fern[200],
1924
+ scrubB: r.fern[300],
1925
+ sand: r.sandstone[200],
1926
+ beach: r.sandstone[100],
1927
+ glacier: r.ink[25],
1928
+ institutional: r.paper[100],
1929
+ pedestrian: r.paper[50],
1930
+ aerodrome: r.paper[200],
1931
+ runway: r.paper[300],
1932
+ pier: r.azure[300],
1933
+ buildings: r.paper[200],
1934
+ railway: r.paper[400],
1935
+ boundaries: r.indigo[600],
1936
+ roads: {
1937
+ other: "#FFFFFF",
1938
+ otherCasing: r.paper[200],
1939
+ minor: "#FFFFFF",
1940
+ minorCasing: r.paper[200],
1941
+ service: "#FFFFFF",
1942
+ serviceCasing: r.paper[200],
1943
+ major: "#FFFFFF",
1944
+ majorCasing: r.paper[300],
1945
+ highway: r.amber[400],
1946
+ highwayCasing: r.amber[600],
1947
+ link: r.amber[300],
1948
+ linkCasing: r.amber[500]
1949
+ },
1950
+ tunnelFill: r.paper[100],
1951
+ tunnelCasing: r.paper[200],
1952
+ bridgeCasing: r.paper[500],
1953
+ labels: {
1954
+ city: r.ink[1e3],
1955
+ cityHalo: r.paper[25],
1956
+ state: r.ink[700],
1957
+ stateHalo: r.paper[25],
1958
+ country: r.ink[700],
1959
+ subplace: r.ink[700],
1960
+ subplaceHalo: r.paper[25],
1961
+ address: r.ink[700],
1962
+ addressHalo: r.paper[25],
1963
+ roadMinor: r.ink[700],
1964
+ roadMinorHalo: r.paper[25],
1965
+ roadMajor: r.ink[800],
1966
+ roadMajorHalo: r.paper[25],
1967
+ ocean: r.azure[950]
1968
+ },
1969
+ pois: {
1970
+ blue: r.wave[700],
1971
+ green: r.verdant[700],
1972
+ lapis: r.sky[700],
1973
+ pink: r.rose[600],
1974
+ red: r.rose[700],
1975
+ slategray: r.graphite[700],
1976
+ tangerine: r.sandstone[500],
1977
+ turquoise: r.aqua[700]
1978
+ },
1979
+ landcover: {
1980
+ grassland: r.fern[200],
1981
+ barren: r.sandstone[200],
1982
+ urban_area: r.paper[100],
1983
+ farmland: r.sandstone[100],
1984
+ glacier: r.ink[25],
1985
+ scrub: r.fern[300],
1986
+ forest: r.jade[400]
1987
+ }
1988
+ };
1989
+ const BOLD_DARK = {
1990
+ // A warm ground under cool detail. `outdoor` owns ink[950] and ink is packed below it here
1991
+ // (900 scrub and buildings, 850 runway), so the ground moves to paper, which is where this
1992
+ // style's light half already sits.
1993
+ background: r.paper[1e3],
1994
+ earth: r.paper[950],
1995
+ water: r.azure[800],
1996
+ parkA: r.fern[800],
1997
+ parkB: r.fern[700],
1998
+ woodA: r.jade[850],
1999
+ woodB: r.jade[800],
2000
+ scrubA: r.ink[900],
2001
+ scrubB: r.ink[850],
2002
+ sand: r.sandstone[500],
2003
+ beach: r.ink[900],
2004
+ glacier: r.ink[800],
2005
+ institutional: r.ink[900],
2006
+ pedestrian: r.ink[900],
2007
+ aerodrome: r.ink[900],
2008
+ runway: r.ink[850],
2009
+ pier: r.azure[600],
2010
+ buildings: r.ink[900],
2011
+ railway: r.ink[700],
2012
+ boundaries: r.indigo[500],
2013
+ roads: {
2014
+ other: r.ink[850],
2015
+ otherCasing: r.ink[1e3],
2016
+ minor: r.ink[800],
2017
+ minorCasing: r.ink[1e3],
2018
+ service: r.ink[850],
2019
+ serviceCasing: r.ink[1e3],
2020
+ major: r.ink[700],
2021
+ majorCasing: r.ink[1e3],
2022
+ highway: r.amber[500],
2023
+ highwayCasing: r.ink[1e3],
2024
+ link: r.amber[600],
2025
+ linkCasing: r.ink[1e3]
2026
+ },
2027
+ tunnelFill: r.ink[900],
2028
+ tunnelCasing: r.ink[1e3],
2029
+ bridgeCasing: r.ink[1e3],
2030
+ labels: {
2031
+ city: r.ink[25],
2032
+ cityHalo: r.ink[950],
2033
+ state: r.ink[300],
2034
+ stateHalo: r.ink[950],
2035
+ country: r.ink[300],
2036
+ subplace: r.ink[300],
2037
+ subplaceHalo: r.ink[950],
2038
+ address: r.ink[400],
2039
+ addressHalo: r.ink[950],
2040
+ roadMinor: r.ink[400],
2041
+ roadMinorHalo: r.ink[950],
2042
+ roadMajor: r.ink[100],
2043
+ roadMajorHalo: r.ink[950],
2044
+ ocean: r.azure[300]
2045
+ },
2046
+ pois: {
2047
+ blue: r.wave[400],
2048
+ green: r.verdant[400],
2049
+ lapis: r.sky[400],
2050
+ pink: r.rose[400],
2051
+ red: r.rose[400],
2052
+ slategray: r.graphite[400],
2053
+ tangerine: r.sandstone[400],
2054
+ turquoise: r.aqua[400]
2055
+ },
2056
+ landcover: {
2057
+ grassland: r.ink[900],
2058
+ barren: r.sandstone[500],
2059
+ urban_area: r.ink[950],
2060
+ farmland: r.ink[900],
2061
+ glacier: r.ink[800],
2062
+ scrub: r.ink[850],
2063
+ forest: r.jade[850]
2064
+ }
2065
+ };
2066
+ const PASTEL_LIGHT = {
2067
+ background: r.lilac[50],
2068
+ earth: r.lilac[25],
2069
+ water: r.cobalt[400],
2070
+ parkA: r.jade[300],
2071
+ parkB: r.jade[400],
2072
+ woodA: r.fern[300],
2073
+ woodB: r.fern[400],
2074
+ scrubA: r.jade[200],
2075
+ scrubB: r.jade[300],
2076
+ sand: r.sandstone[200],
2077
+ beach: r.sandstone[100],
2078
+ glacier: r.ink[25],
2079
+ institutional: r.lilac[100],
2080
+ pedestrian: r.lilac[50],
2081
+ aerodrome: r.lilac[200],
2082
+ runway: r.lilac[300],
2083
+ pier: r.cobalt[300],
2084
+ buildings: r.lilac[200],
2085
+ railway: r.lilac[400],
2086
+ boundaries: r.indigo[500],
2087
+ roads: {
2088
+ other: "#FFFFFF",
2089
+ otherCasing: r.lilac[200],
2090
+ minor: "#FFFFFF",
2091
+ minorCasing: r.lilac[200],
2092
+ service: "#FFFFFF",
2093
+ serviceCasing: r.lilac[200],
2094
+ major: "#FFFFFF",
2095
+ majorCasing: r.lilac[300],
2096
+ highway: r.coral[400],
2097
+ highwayCasing: r.coral[500],
2098
+ link: r.coral[300],
2099
+ linkCasing: r.coral[400]
2100
+ },
2101
+ tunnelFill: r.lilac[100],
2102
+ tunnelCasing: r.lilac[200],
2103
+ bridgeCasing: r.lilac[500],
2104
+ labels: {
2105
+ city: r.lilac[1e3],
2106
+ cityHalo: r.lilac[25],
2107
+ state: r.lilac[700],
2108
+ stateHalo: r.lilac[25],
2109
+ country: r.lilac[700],
2110
+ subplace: r.lilac[700],
2111
+ subplaceHalo: r.lilac[25],
2112
+ address: r.lilac[700],
2113
+ addressHalo: r.lilac[25],
2114
+ roadMinor: r.lilac[700],
2115
+ roadMinorHalo: r.lilac[25],
2116
+ roadMajor: r.lilac[800],
2117
+ roadMajorHalo: r.lilac[25],
2118
+ ocean: r.cobalt[800]
2119
+ },
2120
+ pois: {
2121
+ blue: r.wave[700],
2122
+ green: r.verdant[700],
2123
+ lapis: r.sky[700],
2124
+ pink: r.rose[600],
2125
+ red: r.rose[700],
2126
+ slategray: r.graphite[700],
2127
+ tangerine: r.sandstone[500],
2128
+ turquoise: r.aqua[700]
2129
+ },
2130
+ landcover: {
2131
+ grassland: r.jade[200],
2132
+ barren: r.sandstone[200],
2133
+ urban_area: r.lilac[100],
2134
+ farmland: r.amber[200],
2135
+ glacier: r.ink[25],
2136
+ scrub: r.jade[300],
2137
+ forest: r.fern[400]
2138
+ }
2139
+ };
2140
+ const PASTEL_DARK = {
2141
+ background: r.lilac[1e3],
2142
+ // Shares `orchid`'s ground, and cannot stop sharing it by moving a step. lilac[950] is the
2143
+ // only free one and it sits within 1.01:1 of this style's navy water, which erases the
2144
+ // coastline (the gateway's cartography suite holds land against water at 1.08). Every other
2145
+ // ramp either lands on another style's earth (indigo[900] is `sunset`'s), merges with this
2146
+ // style's own scrub, or is the wrong hue for a lavender map. Separating these two needs a
2147
+ // decision about pastel's water or its ramp, not a step move.
2148
+ earth: r.lilac[900],
2149
+ water: r.cobalt[950],
2150
+ parkA: r.jade[850],
2151
+ parkB: r.jade[800],
2152
+ woodA: r.fern[800],
2153
+ woodB: r.fern[700],
2154
+ scrubA: r.lilac[850],
2155
+ scrubB: r.jade[850],
2156
+ sand: r.sandstone[500],
2157
+ beach: r.lilac[850],
2158
+ glacier: r.lilac[700],
2159
+ institutional: r.lilac[850],
2160
+ pedestrian: r.lilac[850],
2161
+ aerodrome: r.lilac[850],
2162
+ runway: r.lilac[800],
2163
+ pier: r.cobalt[600],
2164
+ buildings: r.lilac[850],
2165
+ railway: r.lilac[700],
2166
+ boundaries: r.indigo[400],
2167
+ roads: {
2168
+ other: r.lilac[800],
2169
+ otherCasing: r.lilac[1e3],
2170
+ minor: r.lilac[700],
2171
+ minorCasing: r.lilac[1e3],
2172
+ service: r.lilac[800],
2173
+ serviceCasing: r.lilac[1e3],
2174
+ major: r.lilac[600],
2175
+ majorCasing: r.lilac[1e3],
2176
+ highway: r.coral[400],
2177
+ highwayCasing: r.lilac[1e3],
2178
+ link: r.coral[500],
2179
+ linkCasing: r.lilac[1e3]
2180
+ },
2181
+ tunnelFill: r.lilac[850],
2182
+ tunnelCasing: r.lilac[1e3],
2183
+ bridgeCasing: r.lilac[1e3],
2184
+ labels: {
2185
+ city: r.lilac[25],
2186
+ cityHalo: r.lilac[900],
2187
+ state: r.lilac[300],
2188
+ stateHalo: r.lilac[900],
2189
+ country: r.lilac[300],
2190
+ subplace: r.lilac[300],
2191
+ subplaceHalo: r.lilac[900],
2192
+ address: r.lilac[400],
2193
+ addressHalo: r.lilac[900],
2194
+ roadMinor: r.lilac[400],
2195
+ roadMinorHalo: r.lilac[900],
2196
+ roadMajor: r.lilac[100],
2197
+ roadMajorHalo: r.lilac[900],
2198
+ ocean: r.cobalt[400]
2199
+ },
2200
+ pois: {
2201
+ blue: r.wave[400],
2202
+ green: r.verdant[400],
2203
+ lapis: r.sky[400],
2204
+ pink: r.rose[400],
2205
+ red: r.rose[400],
2206
+ slategray: r.graphite[400],
2207
+ tangerine: r.sandstone[400],
2208
+ turquoise: r.aqua[400]
2209
+ },
2210
+ landcover: {
2211
+ grassland: r.lilac[850],
2212
+ barren: r.sandstone[500],
2213
+ urban_area: r.lilac[900],
2214
+ farmland: r.lilac[850],
2215
+ glacier: r.lilac[700],
2216
+ scrub: r.lilac[850],
2217
+ forest: r.fern[800]
2218
+ }
2219
+ };
1652
2220
  return {
1653
2221
  base: { light: BASE_LIGHT, dark: BASE_DARK },
1654
2222
  muted: { light: MUTED_LIGHT, dark: MUTED_DARK },
1655
2223
  outdoor: { light: OUTDOOR_LIGHT, dark: OUTDOOR_DARK },
1656
- decimal: { light: DECIMAL_LIGHT, dark: DECIMAL_DARK },
1657
2224
  blueprint: { light: BLUEPRINT_LIGHT, dark: BLUEPRINT_DARK },
1658
2225
  blush: { light: BLUSH_LIGHT, dark: BLUSH_DARK },
1659
2226
  orchid: { light: ORCHID_LIGHT, dark: ORCHID_DARK },
1660
2227
  canopy: { light: CANOPY_LIGHT, dark: CANOPY_DARK },
1661
- lagoon: { light: LAGOON_LIGHT, dark: LAGOON_DARK }
2228
+ lagoon: { light: LAGOON_LIGHT, dark: LAGOON_DARK },
2229
+ tropic: { light: TROPIC_LIGHT, dark: TROPIC_DARK },
2230
+ sunset: { light: SUNSET_LIGHT, dark: SUNSET_DARK },
2231
+ bold: { light: BOLD_LIGHT, dark: BOLD_DARK },
2232
+ pastel: { light: PASTEL_LIGHT, dark: PASTEL_DARK }
1662
2233
  };
1663
2234
  }
1664
2235
  var RECIPES = buildRecipes(STOCK_RAMPS);
@@ -1833,12 +2404,15 @@ var STYLE_THEMES = {
1833
2404
  base: { v: 1, name: "base", base: "base" },
1834
2405
  muted: { v: 1, name: "muted", base: "muted" },
1835
2406
  outdoor: { v: 1, name: "outdoor", base: "outdoor" },
1836
- decimal: { v: 1, name: "decimal", base: "decimal" },
1837
2407
  blueprint: { v: 1, name: "blueprint", base: "blueprint" },
1838
2408
  blush: { v: 1, name: "blush", base: "blush" },
1839
2409
  orchid: { v: 1, name: "orchid", base: "orchid" },
1840
2410
  canopy: { v: 1, name: "canopy", base: "canopy" },
1841
- lagoon: { v: 1, name: "lagoon", base: "lagoon" }
2411
+ lagoon: { v: 1, name: "lagoon", base: "lagoon" },
2412
+ tropic: { v: 1, name: "tropic", base: "tropic" },
2413
+ sunset: { v: 1, name: "sunset", base: "sunset" },
2414
+ bold: { v: 1, name: "bold", base: "bold" },
2415
+ pastel: { v: 1, name: "pastel", base: "pastel" }
1842
2416
  };
1843
2417
 
1844
2418
  // src/oklch.ts
@@ -2088,11 +2662,15 @@ function generateTheme(base, seeds) {
2088
2662
  cobalt: reRamp(STOCK_RAMPS.cobalt, seeds.land, CHROMA_CAP),
2089
2663
  rose: reRamp(STOCK_RAMPS.rose, seeds.land, CHROMA_CAP),
2090
2664
  lilac: reRamp(STOCK_RAMPS.lilac, seeds.land, NEUTRAL_CHROMA_CAP),
2665
+ linen: reRamp(STOCK_RAMPS.linen, seeds.land, NEUTRAL_CHROMA_CAP),
2666
+ indigo: reRamp(STOCK_RAMPS.indigo, seeds.land, CHROMA_CAP),
2091
2667
  aqua: reRamp(STOCK_RAMPS.aqua, seeds.nature, CHROMA_CAP),
2092
2668
  wave: reRamp(STOCK_RAMPS.wave, seeds.water, CHROMA_CAP),
2093
2669
  sky: reRamp(STOCK_RAMPS.sky, seeds.water, CHROMA_CAP),
2094
2670
  mist: reRamp(STOCK_RAMPS.mist, seeds.water, CHROMA_CAP),
2095
- verdant: reRamp(STOCK_RAMPS.verdant, seeds.nature, CHROMA_CAP)
2671
+ azure: reRamp(STOCK_RAMPS.azure, seeds.water, CHROMA_CAP),
2672
+ verdant: reRamp(STOCK_RAMPS.verdant, seeds.nature, CHROMA_CAP),
2673
+ peach: reRamp(STOCK_RAMPS.peach, seeds.nature, CHROMA_CAP)
2096
2674
  };
2097
2675
  const generated = buildRecipes(ramps);
2098
2676
  const doc = { v: 1, base, seeds: { ...seeds } };
@@ -2140,6 +2718,48 @@ var THEME_PRESETS = [
2140
2718
  {
2141
2719
  name: "chinook",
2142
2720
  seeds: { land: "#9C8A5D", water: "#56789C", nature: "#8A9A5B", accent: "#D95D39" }
2721
+ },
2722
+ // The seven below (2026-09-09) are deliberately unlike one another and unlike the landscapes
2723
+ // above: each is one idea pushed to the edge of what the generator allows. Land is capped at a
2724
+ // cast, so the idea lives in the water and nature seeds, which can go to full chroma.
2725
+ //
2726
+ // Fifteen is the ceiling for a three-character code: the preset index sits above bit 8, and
2727
+ // index 15 pushes every style past 62² (`preset.ts`). A sixteenth preset still works, at four
2728
+ // characters, but `preset.test.ts` holds the curated set to three.
2729
+ {
2730
+ // Lava for water, scorched olive for nature, warm ash land, a sulphur accent.
2731
+ name: "magma",
2732
+ seeds: { land: "#8A7A72", water: "#D6461A", nature: "#5C5A32", accent: "#FFC61A" }
2733
+ },
2734
+ {
2735
+ // Electric cyan water, acid-green nature, a violet cast on the land, hot-pink accent.
2736
+ name: "neon",
2737
+ seeds: { land: "#7C78A0", water: "#00D5F2", nature: "#8CE800", accent: "#FF2E9E" }
2738
+ },
2739
+ {
2740
+ // Bubblegum water, turquoise nature, a pink cast, a lemon accent.
2741
+ name: "candy",
2742
+ seeds: { land: "#A3808E", water: "#FF6FB5", nature: "#2ED1C2", accent: "#FFD400" }
2743
+ },
2744
+ {
2745
+ // Deep violet water, plum nature, violet land, a lime accent.
2746
+ name: "ultraviolet",
2747
+ seeds: { land: "#7A6E9E", water: "#5A2ECC", nature: "#9B4DCA", accent: "#C8FF3A" }
2748
+ },
2749
+ {
2750
+ // No chroma anywhere but the accent: a greyscale map with one red.
2751
+ name: "noir",
2752
+ seeds: { land: "#808080", water: "#6E6E6E", nature: "#707070", accent: "#E10600" }
2753
+ },
2754
+ {
2755
+ // Brown everything: a walnut cast, tea-coloured water, ochre nature, oxblood accent.
2756
+ name: "sepia",
2757
+ seeds: { land: "#8B7355", water: "#8C6A42", nature: "#A48A4A", accent: "#7A1F1F" }
2758
+ },
2759
+ {
2760
+ // Ultramarine water, navy-teal nature, a blue cast on the land, a coral accent.
2761
+ name: "ultramarine",
2762
+ seeds: { land: "#6F7A9C", water: "#1F3BFF", nature: "#215E7A", accent: "#FF6A4D" }
2143
2763
  }
2144
2764
  ];
2145
2765
  var wrap = (h) => (h % 360 + 360) % 360;
@@ -2247,7 +2867,11 @@ var STYLE_SLOTS = [
2247
2867
  "blush",
2248
2868
  "orchid",
2249
2869
  "canopy",
2250
- "lagoon"
2870
+ "lagoon",
2871
+ "tropic",
2872
+ "sunset",
2873
+ "bold",
2874
+ "pastel"
2251
2875
  ];
2252
2876
  var STYLE_BITS = 5n;
2253
2877
  var KIND_BITS = 2n;
@@ -2421,7 +3045,8 @@ function decodePreset(code) {
2421
3045
  rest >>= bits;
2422
3046
  return value;
2423
3047
  };
2424
- const base = STYLE_SLOTS[Number(take(STYLE_BITS))];
3048
+ const slot = STYLE_SLOTS[Number(take(STYLE_BITS))];
3049
+ const base = slot ? normalizeThemeBase(slot) : null;
2425
3050
  if (!base) throw new ThemeError("invalid theme", ["preset style is out of range"]);
2426
3051
  const kind = take(KIND_BITS);
2427
3052
  const hasLayers = take(1n) === 1n;
@@ -2559,21 +3184,26 @@ export {
2559
3184
  THEME_CODE_PREFIX,
2560
3185
  THEME_PRESETS,
2561
3186
  ThemeError,
3187
+ amber,
2562
3188
  applyThemeLayers,
2563
3189
  aqua,
3190
+ azure,
2564
3191
  buildRecipes,
2565
3192
  cobalt,
2566
3193
  contrast,
2567
3194
  contrastWarnings,
3195
+ coral,
2568
3196
  decodePreset,
2569
3197
  decodeTheme,
2570
3198
  effectiveLayerOrder,
2571
3199
  ember,
2572
3200
  encodePreset,
2573
3201
  encodeTheme,
3202
+ fern,
2574
3203
  generateTheme,
2575
3204
  graphite,
2576
3205
  hexToOklch,
3206
+ indigo,
2577
3207
  ink,
2578
3208
  isLayerVisible,
2579
3209
  isStockLayerOrder,
@@ -2582,12 +3212,14 @@ export {
2582
3212
  jade,
2583
3213
  layerGroupOf,
2584
3214
  lilac,
3215
+ linen,
2585
3216
  makeFlavor,
2586
3217
  mergeRecipe,
2587
3218
  mist,
2588
3219
  normalizeThemeBase,
2589
3220
  oklchToHex,
2590
3221
  paper,
3222
+ peach,
2591
3223
  presetId,
2592
3224
  registryThemeKey,
2593
3225
  resolveTheme,