@circadian/sol 0.2.9 → 0.2.12

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
@@ -58,6 +58,7 @@ deno add npm:@circadian/sol
58
58
  - **2 widget variants** — `SolarWidget` (full card) and `CompactWidget` (slim pill/bar)
59
59
  - **10 skins** — `foundry`, `paper`, `signal`, `meridian`, `mineral`, `aurora`, `tide`, `void`, `sundial`, `parchment`
60
60
  - **9 solar phases** — `midnight`, `night`, `dawn`, `sunrise`, `morning`, `solar-noon`, `afternoon`, `sunset`, `dusk`
61
+ - **4 seasons** — automatic seasonal palette blending computed from date + hemisphere, with smooth crossfades at solstice/equinox boundaries
61
62
  - **Built-in fallback strategy** — geolocation → browser timezone → timezone centroid
62
63
  - **Optional live weather** — powered by Open-Meteo (no API key required)
63
64
  - **Dev preview tooling** — `SolarDevTools` lets you scrub through the day and preview phase colors
@@ -537,6 +538,105 @@ Each `bg` is a 3-stop gradient: `[top, middle, bottom]`. Only the phases you spe
537
538
 
538
539
  ---
539
540
 
541
+ ## Seasonal Blending
542
+
543
+ Sol automatically adjusts every skin's palette based on the current astronomical season. Spring shifts greener and brighter, summer pushes warm and saturated, autumn mutes toward amber, winter desaturates toward icy blue. The effect is subtle by design — visible but never harsh.
544
+
545
+ Season is computed from the current date and the user's latitude (southern hemisphere seasons are flipped). Near each solstice and equinox, a smooth 14-day crossfade blends between adjacent seasons.
546
+
547
+ **Zero config — it just works:**
548
+
549
+ ```tsx
550
+ <SolarThemeProvider initialDesign="foundry">
551
+ <SolarWidget showWeather showFlag />
552
+ </SolarThemeProvider>
553
+ ```
554
+
555
+ **Force a season:**
556
+
557
+ ```tsx
558
+ <SolarThemeProvider initialDesign="foundry" seasonOverride="autumn">
559
+ <SolarWidget showWeather showFlag />
560
+ </SolarThemeProvider>
561
+ ```
562
+
563
+ **Disable seasonal blending entirely:**
564
+
565
+ ```tsx
566
+ <SolarThemeProvider initialDesign="foundry" disableSeasonalBlend>
567
+ <SolarWidget showWeather showFlag />
568
+ </SolarThemeProvider>
569
+ ```
570
+
571
+ **Read the current season in your own components:**
572
+
573
+ ```tsx
574
+ import { useSolarTheme } from '@circadian/sol';
575
+
576
+ function SeasonBadge() {
577
+ const { season } = useSolarTheme();
578
+ return <span>{season}</span>; // 'spring' | 'summer' | 'autumn' | 'winter'
579
+ }
580
+ ```
581
+
582
+ ### How it works
583
+
584
+ Rather than defining 36 full palettes (9 phases × 4 seasons), each skin only needs 4 small seasonal modifier objects that describe _deltas_ — saturation scale, lightness shift, hue rotation, and an optional tint wash. The final palette is computed as:
585
+
586
+ ```
587
+ rawPalette = lerp(phasePalette, nextPhasePalette, phaseT)
588
+ seasonalMod = lerp(seasonModifier, nextSeasonModifier, seasonT)
589
+ finalPalette = applySeasonalModifier(rawPalette, seasonalMod)
590
+ ```
591
+
592
+ ### Custom skin seasonal modifiers
593
+
594
+ Skins can define their own per-season modifiers. Any season not defined falls back to the built-in universal defaults.
595
+
596
+ ```ts
597
+ import type { SkinDefinition } from '@circadian/sol';
598
+
599
+ const mySkin: SkinDefinition = {
600
+ // ... existing skin definition ...
601
+ seasonalModifiers: {
602
+ autumn: {
603
+ saturationScale: 0.85, // slightly muted
604
+ lightnessShift: -0.05, // darker
605
+ hueRotateDeg: -22, // shift toward amber
606
+ tintColor: '#b85c1a',
607
+ tintStrength: 0.12,
608
+ },
609
+ winter: {
610
+ saturationScale: 0.78,
611
+ lightnessShift: -0.06,
612
+ hueRotateDeg: -30,
613
+ tintColor: '#6a9fc0',
614
+ tintStrength: 0.09,
615
+ },
616
+ // spring and summer use UNIVERSAL_SEASON_MODIFIERS automatically
617
+ },
618
+ };
619
+ ```
620
+
621
+ ### SeasonalModifier shape
622
+
623
+ | Field | Type | Description |
624
+ |---|---|---|
625
+ | `saturationScale` | `number` | Multiply saturation. `1.0` = unchanged, `1.2` = +20% |
626
+ | `lightnessShift` | `number` | Add to lightness. `-0.05` = slightly darker |
627
+ | `hueRotateDeg` | `number` | Rotate hue in degrees. `+15` = warmer, `-15` = cooler |
628
+ | `tintColor` | `string?` | Optional hex color to blend toward |
629
+ | `tintStrength` | `number` | `0–1`. How strongly to apply tintColor |
630
+
631
+ ### Provider props
632
+
633
+ | Prop | Type | Default | Description |
634
+ |---|---|---|---|
635
+ | `seasonOverride` | `Season` | — | Force a specific season (`'spring'` \| `'summer'` \| `'autumn'` \| `'winter'`) |
636
+ | `disableSeasonalBlend` | `boolean` | `false` | Opt out of seasonal palette blending entirely |
637
+
638
+ ---
639
+
540
640
  ## SolarDevTools
541
641
 
542
642
  When your interface depends on live solar time, manual testing breaks down fast — you can't wait until sunset to test sunset. `SolarDevTools` lets you scrub through the full day in seconds, preview every one of the **9 phases**, test every skin against every time of day, and catch phase-specific visual bugs before your users do.
@@ -612,6 +712,9 @@ function DebugPanel() {
612
712
  | `activeSkin` | `SkinDefinition` | Full skin definition object |
613
713
  | `setOverridePhase` | `(phase \| null) => void` | Set/clear phase override |
614
714
  | `setDesign` | `(skin: DesignMode) => void` | Change active skin |
715
+ | `season` | `Season` | Current dominant season |
716
+ | `seasonalBlend` | `SeasonalBlend` | Season blend state (season, nextSeason, t) |
717
+ | `setSeasonOverride` | `(season \| null) => void` | Set/clear season override |
615
718
 
616
719
  ---
617
720
 
@@ -644,6 +747,9 @@ import type {
644
747
  WidgetPalette,
645
748
  CustomPalettes,
646
749
  SolarTheme,
750
+ Season,
751
+ SeasonalBlend,
752
+ SeasonalModifier,
647
753
  } from '@circadian/sol';
648
754
  ```
649
755
 
@@ -655,6 +761,7 @@ import type {
655
761
  |---|---|
656
762
  | ✅ | Full widget + compact widget |
657
763
  | ✅ | 10 skins with full + compact variants |
764
+ | ✅ | Automatic seasonal palette blending (4 seasons) |
658
765
  | ✅ | Solar math (NOAA equations, no external API) |
659
766
  | ✅ | Timezone fallback logic |
660
767
  | ✅ | Optional live weather (Open-Meteo) |
@@ -673,7 +780,6 @@ import type {
673
780
 
674
781
  Sol is actively being developed. Things in progress:
675
782
 
676
- - **Seasonal theme system** — 4 seasons (Summer, Autumn, Winter, Spring) that blend automatically with the existing 9-phase system, computed from date and location with no configuration required
677
783
  - More skins
678
784
  - Vue and Svelte adapters
679
785
  - Deep token override system
@@ -1,4 +1,4 @@
1
- import { a as getSessionIsLive, c as setSessionTimeMinutes, i as clearSessionTimeMinutes, n as useSolarTheme, o as getSessionTimeMinutes, s as setSessionLive } from "../solar-theme-provider-CSustvmw.js";
1
+ import { c as getSessionTimeMinutes, l as setSessionLive, n as useSolarTheme, o as clearSessionTimeMinutes, s as getSessionIsLive, u as setSessionTimeMinutes } from "../solar-theme-provider-cxO4tmFT.js";
2
2
  import { useCallback, useEffect, useMemo, useState } from "react";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { createPortal } from "react-dom";
package/dist/index.d.ts CHANGED
@@ -48,6 +48,85 @@ interface SolarBlend {
48
48
  t: number;
49
49
  }
50
50
  //#endregion
51
+ //#region src/lib/useSeason.d.ts
52
+ type Season = 'spring' | 'summer' | 'autumn' | 'winter';
53
+ interface SeasonalBlend {
54
+ /** The current dominant season. */
55
+ season: Season;
56
+ /** The season being crossfaded toward (equals season outside transition windows). */
57
+ nextSeason: Season;
58
+ /**
59
+ * 0–1 interpolation between season → nextSeason.
60
+ * 0.0 = fully current season, 1.0 = fully next season.
61
+ * Non-zero only within the final CROSSFADE_DAYS before a solstice/equinox.
62
+ */
63
+ t: number;
64
+ }
65
+ /**
66
+ * Pure function — compute the SeasonalBlend for a given date and latitude.
67
+ *
68
+ * @param date The date to evaluate (default: now)
69
+ * @param latitudeN Decimal degrees, positive = north (default: 0)
70
+ * @param override Force a fixed season, bypassing computation
71
+ */
72
+ declare function getSeasonalBlend(date?: Date, latitudeN?: number, override?: Season): SeasonalBlend;
73
+ /**
74
+ * Hook — returns the current SeasonalBlend, re-evaluated once per hour.
75
+ *
76
+ * @param latitudeN Decimal degrees, positive = north.
77
+ * Pass null while coordinates are still loading.
78
+ * @param override Force a specific season (for dev previews / user settings).
79
+ * @param simulatedDate Use a specific date instead of now (for SolarDevTools).
80
+ */
81
+ declare function useSeason(latitudeN: number | null, override?: Season, simulatedDate?: Date): SeasonalBlend;
82
+ //#endregion
83
+ //#region src/lib/seasonal-blend.d.ts
84
+ /**
85
+ * Describes how a season shifts the phase palette.
86
+ * All fields are deltas/scales applied on top of the base palette.
87
+ * Using HSL math under the hood — no full palette replacement needed.
88
+ */
89
+ interface SeasonalModifier {
90
+ /** Multiply saturation. 1.0 = unchanged, 1.2 = +20%, 0.8 = −20%. */
91
+ saturationScale: number;
92
+ /** Add to lightness (−1.0 to +1.0). −0.05 = slightly darker. */
93
+ lightnessShift: number;
94
+ /** Rotate hue by degrees. 0 = unchanged, +15 = warmer, −15 = cooler. */
95
+ hueRotateDeg: number;
96
+ /**
97
+ * Optional hex color to tint toward. Applied at tintStrength opacity
98
+ * over the entire palette. Useful for strong seasonal washes
99
+ * (e.g., amber-gold for autumn) that go beyond simple HSL shifts.
100
+ */
101
+ tintColor?: string;
102
+ /** 0–1. How strongly to apply tintColor. 0 = no tint. */
103
+ tintStrength: number;
104
+ }
105
+ declare const IDENTITY_MODIFIER: SeasonalModifier;
106
+ declare const UNIVERSAL_SEASON_MODIFIERS: Record<Season, SeasonalModifier>;
107
+ /**
108
+ * Linearly interpolate between two SeasonalModifiers.
109
+ * Used for smooth crossfades at solstice/equinox boundaries.
110
+ */
111
+ declare function lerpModifier(a: SeasonalModifier, b: SeasonalModifier, t: number): SeasonalModifier;
112
+ /**
113
+ * Apply a SeasonalModifier to every color in a ShaderPalette.
114
+ * Returns a new palette — the original is not mutated.
115
+ *
116
+ * The modifier shifts hue, saturation, and lightness then applies a tint wash.
117
+ * The result is blended back toward the original at `strength` 0→1:
118
+ * 0 = identity, 1 = fully modified.
119
+ */
120
+ declare function applySeasonalModifier(palette: ShaderPalette, mod: SeasonalModifier, strength?: number): ShaderPalette;
121
+ /**
122
+ * Given a SeasonalBlend and a modifier map, return the interpolated modifier
123
+ * ready to pass to applySeasonalModifier.
124
+ *
125
+ * @param blend The SeasonalBlend from useSeason()
126
+ * @param modifiers Per-season modifier map (skin's or universal default)
127
+ */
128
+ declare function resolveSeasonalModifier(blend: SeasonalBlend, modifiers?: Record<Season, SeasonalModifier>): SeasonalModifier;
129
+ //#endregion
51
130
  //#region src/widgets/solar-widget.shell.d.ts
52
131
  type ExpandDirection = 'top-left' | 'top-center' | 'top-right' | 'center-left' | 'center' | 'center-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
53
132
  type WidgetSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
@@ -284,6 +363,12 @@ interface SkinDefinition {
284
363
  * }
285
364
  */
286
365
  defaultImage?: ShaderImage;
366
+ /**
367
+ * Optional per-season palette modifiers.
368
+ * If omitted, UNIVERSAL_SEASON_MODIFIERS is used automatically.
369
+ * Define only the seasons you want to customise — the rest fall back.
370
+ */
371
+ seasonalModifiers?: Partial<Record<Season, SeasonalModifier>>;
287
372
  /**
288
373
  * The React component that renders the actual widget pill + expanded card.
289
374
  * Receives WidgetSkinProps and is fully responsible for its own visual output.
@@ -335,6 +420,18 @@ interface SolarTheme {
335
420
  latitude: number | null;
336
421
  longitude: number | null;
337
422
  coordsReady: boolean;
423
+ /**
424
+ * Nearest city or locality name for the user's current position.
425
+ *
426
+ * Resolution happens in two phases:
427
+ * 1. Instant (no permission): parsed from the IANA timezone string.
428
+ * "Europe/Copenhagen" → "Copenhagen" (available immediately)
429
+ * 2. Precise (after geolocation): reverse-geocoded from exact lat/lng.
430
+ * 55.86°N, 9.84°E → "Horsens" (replaces the centroid value)
431
+ *
432
+ * null only during the brief SSR window before the provider mounts.
433
+ */
434
+ city: string | null;
338
435
  setOverridePhase: (phase: SolarPhase | null) => void;
339
436
  blend: SolarBlend;
340
437
  design: DesignMode;
@@ -347,6 +444,12 @@ interface SolarTheme {
347
444
  /** Custom palette overrides registered by the nearest widget. */
348
445
  customPalettes: CustomPalettes | undefined;
349
446
  setCustomPalettes: (palettes: CustomPalettes | undefined) => void;
447
+ /** Current dominant season. */
448
+ season: Season;
449
+ /** Full seasonal blend state (season, nextSeason, crossfade t). */
450
+ seasonalBlend: SeasonalBlend;
451
+ /** Override the auto-detected season, or pass null to restore auto-detection. */
452
+ setSeasonOverride: (season: Season | null) => void;
350
453
  }
351
454
  declare function useSolarTheme(): SolarTheme;
352
455
  interface Props {
@@ -359,11 +462,23 @@ interface Props {
359
462
  * (e.g. a skin showcase / test page). Defaults to false.
360
463
  */
361
464
  isolated?: boolean;
465
+ /**
466
+ * Force a specific season, bypassing astronomical computation.
467
+ * Useful for testing, user preferences, or themed marketing pages.
468
+ */
469
+ seasonOverride?: Season;
470
+ /**
471
+ * Opt out of seasonal palette blending entirely.
472
+ * When true, palettes are exactly as defined in the skin. Default: false.
473
+ */
474
+ disableSeasonalBlend?: boolean;
362
475
  }
363
476
  declare function SolarThemeProvider({
364
477
  children,
365
478
  initialDesign,
366
- isolated
479
+ isolated,
480
+ seasonOverride: seasonOverrideProp,
481
+ disableSeasonalBlend
367
482
  }: Props): react_jsx_runtime0.JSX.Element;
368
483
  //#endregion
369
484
  //#region src/shared/solar-shader-bg.d.ts
@@ -386,5 +501,5 @@ declare function SolarShaderBg({
386
501
  }?: SolarShaderBgProps): react_jsx_runtime0.JSX.Element;
387
502
  declare function SolarShaderBgFull(props?: SolarShaderBgProps): react_jsx_runtime0.JSX.Element;
388
503
  //#endregion
389
- export { type CompactSize, CompactWidget, type DesignMode, type ExpandDirection, type SkinDefinition, type SolarBlend, type SolarPhase, SolarShaderBg, SolarShaderBgFull, type SolarTheme, SolarThemeProvider, SolarWidget, type WeatherCategory, type WidgetPalette, type WidgetSize, useSolarTheme };
504
+ export { type CompactSize, CompactWidget, type DesignMode, type ExpandDirection, IDENTITY_MODIFIER, type Season, type SeasonalBlend, type SeasonalModifier, type SkinDefinition, type SolarBlend, type SolarPhase, SolarShaderBg, SolarShaderBgFull, type SolarTheme, SolarThemeProvider, SolarWidget, UNIVERSAL_SEASON_MODIFIERS, type WeatherCategory, type WidgetPalette, type WidgetSize, applySeasonalModifier, getSeasonalBlend, lerpModifier, resolveSeasonalModifier, useSeason, useSolarTheme };
390
505
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/hooks/useSolarPosition.tsx","../src/widgets/solar-widget.shell.tsx","../src/widgets/compact-widget.shell.tsx","../src/skins/types/widget-skin.types.ts","../src/provider/solar-theme-provider.tsx","../src/shared/solar-shader-bg.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;AAgBA;AAWA;AAWA;AAmBA;;UAzCiB,UAAA;;ECQL,OAAA,EAAA,MAAA;EAWA,SAAA,EAAA,MAAU;EAEV,MAAA,EAAA,MAAA;EAYA;EAAgC,SAAA,EAAA,MAAA;EAAP;EAAR,SAAA,EAAA,MAAA;;AAiFZ,KDvGL,UAAA,GCuGqB,OAAA,GAAA,MAAA,GAAA,SAAA,GAAA,SAAA,GAAA,YAAA,GAAA,WAAA,GAAA,QAAA,GAAA,MAAA,GAAA,UAAA;AACb,UD7FH,aAAA,CC6FG;EACX;EAIU,QAAA,EAAA,MAAA;EACD;EACU,OAAA,EAAA,MAAA;EAGV;EAAI,WAAA,EAAA,MAAA;EAyBN;EACd,aAAA,EAAA,MAAA;EACA;EACA,SAAA,EAAA,OAAA;EACA;EACA,KAAA,EDzHO,UCyHP;EACA;EACA,KAAA,EDzHO,UCyHP;EACA;EACe,YAAA,EAAA,MAAA;;AAEd,UDxHc,UAAA,CCwHd;EAAgB,KAAA,EDvHV,UCuHU;EAAA,SAAA,EDtHN,UCsHM;;;;;;KAzJP,eAAA;KAWA,UAAA;ADnBK,KCqBL,eAAA,GDrBe,OAAA,GAAA,eAAA,GAAA,UAAA,GAAA,KAAA,GAAA,SAAA,GAAA,MAAA,GAAA,YAAA,GAAA,MAAA,GAAA,YAAA,GAAA,SAAA;AAWf,KCsBA,cAAA,GAAiB,ODtBP,CCsBe,MDtBf,CCsBsB,UDtBtB,EAAA;EAWL,EAAA,EAAA,CAAA,MAAA,EAAA,MAAa,EAAA,MAYrB,CAAA;AAOT,CAAA,CAAA,CAAA;UCyEiB,gBAAA;oBACG;EA3GR,IAAA,CAAA,EA4GH,UA5GG;EAWA,QAAA,CAAA,EAAA,OAAU;EAEV,WAAA,CAAA,EAAA,OAAe;EAYf,WAAA,CAAA,EAAA,OAAc;EAAkB,cAAA,CAAA,EAuFzB,cAvFyB;EAAP,aAAA,CAAA,EAwFnB,UAxFmB;EAAR,uBAAA,CAAA,EAyFD,eAzFC,GAAA,IAAA;EAAO;AAiFpC;EACoB,aAAA,CAAA,EAUF,IAVE;EACX;;EAKS,aAAA,CAAA,EAAA,OAAA;;AAIA,iBAyBF,WAAA,CAzBE;EAAA,eAAA;EAAA,IAAA;EAAA,QAAA;EAAA,WAAA;EAAA,WAAA;EAAA,cAAA;EAAA,aAAA;EAAA,uBAAA;EAAA,aAAA,EAkCD,iBAlCC;EAAA;AAAA,CAAA,EAoCf,gBApCe,CAAA,EAoCC,kBAAA,CAAA,GAAA,CAAA,OApCD;;;KCxHN,iBAAA;AFLK,KEiBL,WAAA,GFjBe,IAAA,GAAA,IAAA,GAAA,IAAA;AAWf,UEsFK,gBAAA,CFtFK;EAWL,KAAA,EE4ER,UF5EqB;EAmBb,KAAA,EE0DR,UF1DkB;;;;ECjCf,WAAA,CAAA,EAAA,MAAe;EAWf,OAAA,CAAA,ECqFA,iBDrFU,GAAA,IAAA;EAEV,mBAAe,ECoFJ,iBDpFI,GAAA,IAAA;EAYf,gBAAA,EAAc,MAAA,GAAA,IAAA;EAAkB,QAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAP,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAR,QAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAO,aAAA,CAAA,EC6ElB,ID7EkB;EAiFnB,QAAA,EAAA,OAAA;EACG,WAAA,EAAA,OAAA;EACX,eAAA,EAAA,OAAA;EAIU,IAAA,ECNX,WDMW;EACD,OAAA,ECNP,aDMO;;AAIA,UCLD,kBAAA,CDKC;EAAI,MAAA,CAAA,ECJX,UDIW;EAyBN,aAAA,CAAW,EC5BT,UD4BS,GAAA,IAAA;EACzB,IAAA,CAAA,EAAA,MAAA;EACA,QAAA,CAAA,EAAA,MAAA;EACA,IAAA,CAAA,EAAA,MAAA;EACA,WAAA,CAAA,EAAA,MAAA;EACA,OAAA,CAAA,EC5BU,iBD4BV,GAAA,IAAA;EACA,uBAAA,CAAA,EC5B0B,iBD4B1B,GAAA,IAAA;EACA,QAAA,CAAA,EAAA,OAAA;EACA,WAAA,CAAA,EAAA,OAAA;EACe,eAAA,CAAA,EAAA,OAAA;EACf,IAAA,CAAA,EC5BO,WD4BP;EACC,QAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAgB,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAA,QAAA,CAAA,EAAA,MAAA,GAAA,IAAA;;mBCxBA;;AApInB;EAYY,aAAA,CAAW,EA2HL,IA3HK;EAgFN,SAAA,CAAA,EAAA,MAAA;;AAER,iBAqEO,aAAA,CArEP;EAAA,MAAA,EAsEC,cAtED;EAAA,aAAA;EAAA,IAAA;EAAA,QAAA;EAAA,IAAA;EAAA,WAAA;EAAA,OAAA;EAAA,uBAAA;EAAA,QAAA;EAAA,WAAA;EAAA,eAAA;EAAA,IAAA;EAAA,QAAA;EAAA,SAAA;EAAA,QAAA;EAAA,cAAA;EAAA,aAAA,EAsFQ,iBAtFR;EAAA;AAAA,CAAA,EAwFN,kBAxFM,CAAA,EAwFY,kBAAA,CAAA,GAAA,CAAA,OAxFZ;;;UClGQ,WAAA;;EFOL,GAAA,EAAA,MAAA;EAWA;AAEZ;AAYA;;EAAqC,OAAA,CAAA,EAAA,MAAA;EAAR;;EAiFZ,cAAA,CAAA,EAAA,MAAgB;;AAExB,UEpGQ,aAAA,CFoGR;EAIU,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA;EACD,SAAA,EAAA,MAAA;EACU,OAAA,EAAA,MAAA;EAGV,QAAA,EAAA,MAAA;EAAI,WAAA,EAAA,MAAA;EAyBN;;;;;;EAMd,KAAA,CAAA,EEhIQ,WFgIR;;;;;;;;;;;ACvJF;AAYA;AAgFA;;;;;;;;;AAuBA;AACW,UCpEM,YAAA,CDoEN;EACO;EAKN,UAAA,EAAA,MAAA;EACgB;EAInB,KAAA,EAAA,MAAA;EAKU;EAGD,KAAA,EAAA,MAAA;EAAI;EA4BN,YAAA,EAAA,MAAa;;AAE3B,UCxGe,SAAA,CDwGf;EACA,WAAA,EAAA,MAAA;EACA,aAAA,EAAA,MAAA;EACA,MAAA,EAAA,MAAA;EACA,OAAA,EAAA,MAAA;EACA,MAAA,EAAA,MAAA;EACA,MAAA,EAAA,MAAA;;AAEA,UCrGe,aAAA,CDqGf;EACA;EACA,EAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA;EACA;EACA,SAAA,EAAA,MAAA;EACA;EACA,WAAA,EAAA,MAAA;EACe;EACf,GAAA,EAAA,MAAA;EACC;EAAkB,SAAA,EAAA,MAAA;EAAA;;;UC7FJ,cAAA;EA7FA;EAeA,EAAA,EAgFX,UAhFW;EAqCA;EAaA,KAAA,EAAA,MAAS;EAWT;EAiBA,WAAA,EAAA,MAAc;EAEzB;;;;EAgBmB,SAAA,EANZ,MAMY,CANL,UAMK,EANO,SAMP,CAAA;EAAY;;;;EAMnB,cAAA,EANA,MAMA,CANO,UAMP,EANmB,aAMnB,CAAA;EAgBM;;;;EAuBS,cAAA,EAvCf,MAuCe,CAvCR,UAuCQ,EAvCI,aAuCJ,CAAA;EAApB;;;;AAWb;;;;;;;;;;EAwCY,YAAA,CAAU,EA1EL,MA0EK,CA1EE,UA0EF,EA1Ec,YA0Ed,CAAA;;;;ACpLtB;;;;;;;;;;;;EAsB8C,YAAA,CAAA,EDqG7B,WCrG6B;EAoN9B;AAEf;AAgBD;;EAEE,SAAA,ED7HW,KAAA,CAAM,aC6HjB,CD7H+B,eC6H/B,CAAA;EACA;;;;qBDxHmB,KAAA,CAAM,cAAc;;UAKxB,eAAA;EE7JL,KAAA,EF+JH,UE/JgB;EA2YR,KAAA,EF3OR,UE2OQ;EACA,QAAA,EAAA,OAAA;EACC,QAAA,EAAA,GAAA,GAAA,IAAA;EAEN,eAAA,EF1OO,eE0OP;EAEF,IAAM,EF3OR,UE2OQ;EAAa,IAAA,EAAA,MAAA;EAKb,QAAA,EAAA,MAAa;EAC3B,IAAA,CAAA,EAAA,MAAA;EACA,OAAA,CAAA,EF5OU,eE4OV,GAAA,IAAA;EACA,mBAAA,CAAA,EF5OsB,eE4OtB,GAAA,IAAA;EACS,gBAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EACT,WAAA,CAAA,EAAA,MAAA;EACA,WAAA,CAAA,EAAA,MAAA;EACC,UAAA,CAAA,EAAA,MAAA;EAAuB,QAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAA,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EA8HV,QAAA,CAAA,EAAA,MAAA,GAAiB,IAAA;kBFpWf;;;;;WASP;;KAKC,UAAA;;;AHhNK,UI4BA,UAAA,CJ5BU;EAWf,KAAA,EIkBH,UJlBa;EAWL,SAAA,EAAA,OAAa;EAmBb,UAAA,EAAA,MAAU;;;iBIPV;EH1BL,QAAA,EAAA,MAAA,GAAe,IAAA;EAWf,QAAA,EAAA,MAAU,GAAA,IAAA;EAEV,SAAA,EAAA,MAAA,GAAe,IAAA;EAYf,WAAA,EAAA,OAAc;EAAkB,gBAAA,EAAA,CAAA,KAAA,EGMhB,UHNgB,GAAA,IAAA,EAAA,GAAA,IAAA;EAAP,KAAA,EGO5B,UHP4B;EAAR,MAAA,EGQnB,UHRmB;EAAO,SAAA,EAAA,CAAA,MAAA,EGSd,UHTc,EAAA,GAAA,IAAA;EAiFnB,UAAA,EGvEH,cHuEmB;EACb;;EAKD,aAAA,EG1EF,IH0EE,GAAA,SAAA;EACD,gBAAA,EAAA,CAAA,IAAA,EG1ES,IH0ET,GAAA,SAAA,EAAA,GAAA,IAAA;EACU;EAGV,cAAA,EG5EA,cH4EA,GAAA,SAAA;EAAI,iBAAA,EAAA,CAAA,QAAA,EG3EU,cH2EV,GAAA,SAAA,EAAA,GAAA,IAAA;AAyBtB;AACE,iBG+Gc,aAAA,CAAA,CH/Gd,EG+G+B,UH/G/B;UGqHQ,KAAA,CHpHR;EACA,QAAA,EGoHU,SHpHV;EACA,aAAA,CAAA,EGoHgB,UHpHhB;EACA;;;;;;EAMC,QAAA,CAAA,EAAA,OAAA;;AAAgB,iBGuHH,kBAAA,CHvHG;EAAA,QAAA;EAAA,aAAA;EAAA;AAAA,CAAA,EG2HhB,KH3HgB,CAAA,EG2HX,kBAAA,CAAA,GAAA,CAAA,OH3HW;;;KItJP,aAAA;UA2YK,kBAAA;iBACA;kBACC;EJhZN,eAAA,CAAA,EAAe,MAAA;EAWf,OAAA,CAAA,EIuYA,aJvYU;EAEV,SAAA,CAAA,EAAA,MAAe;EAYf,KAAA,CAAA,EI2XF,KAAA,CAAM,aJ3XU;;AAAW,iBIgYrB,aAAA,CJhYqB;EAAA,YAAA;EAAA,aAAA;EAAA,eAAA;EAAA,OAAA,EIoY1B,WJpY0B;EAAA,SAAA;EAAA;AAAA,CAAA,CAAA,EIuYlC,kBJvYkC,CAAA,EIuYX,kBAAA,CAAA,GAAA,CAAA,OJvYW;AAAR,iBIqgBb,iBAAA,CJrgBa,KAAA,CAAA,EIqgBY,kBJrgBZ,CAAA,EIqgBmC,kBAAA,CAAA,GAAA,CAAA,OJrgBnC"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/hooks/useSolarPosition.tsx","../src/lib/useSeason.ts","../src/lib/seasonal-blend.ts","../src/widgets/solar-widget.shell.tsx","../src/widgets/compact-widget.shell.tsx","../src/skins/types/widget-skin.types.ts","../src/provider/solar-theme-provider.tsx","../src/shared/solar-shader-bg.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;AAgBA;AAWA;AAWA;AAmBA;;UAzCiB,UAAA;;ECIL,OAAA,EAAM,MAAA;EAED,SAAA,EAAA,MAAa;EAsFd,MAAA,EAAA,MAAA;EACR;EAEK,SAAA,EAAA,MAAA;EACV;EAAa,SAAA,EAAA,MAAA;AAuBhB;AAEa,KD9GD,UAAA,GC8GC,OAAA,GAAA,MAAA,GAAA,SAAA,GAAA,SAAA,GAAA,YAAA,GAAA,WAAA,GAAA,QAAA,GAAA,MAAA,GAAA,UAAA;AACK,UDpGD,aAAA,CCoGC;EACf;EAAa,QAAA,EAAA,MAAA;;;;ECjHC,WAAA,EAAA,MAAgB;EAmBpB;EAWA,aAAA,EAAA,MAAA;EAAmC;EAAQ,SAAA,EAAA,OAAA;EAAf;EAAM,KAAA,EFNtC,UEMsC;EA4I/B;EACX,KAAA,EFjJI,UEiJJ;EACA;EAEF,YAAA,EAAA,MAAA;;AAqBa,UFpKC,UAAA,CEoKoB;EAC1B,KAAA,EFpKF,UEoKE;EACJ,SAAA,EFpKM,UEoKN;EAEJ;EAAa,CAAA,EAAA,MAAA;AAyBhB;;;KDtOY,MAAA;UAEK,aAAA;;UAEP;EDRO;EAWL,UAAA,ECDE,MDCQ;EAWL;AAmBjB;;;;ECrCY,CAAA,EAAA,MAAM;AAElB;AAsFA;;;;;AA2BA;;AAGkB,iBA9BF,gBAAA,CA8BE,IAAA,CAAA,EA7BV,IA6BU,EAAA,SAAA,CAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EA3BL,MA2BK,CAAA,EA1Bf,aA0Be;;;;;;AChHlB;AAmBA;AAWA;AAAgD,iBD+EhC,SAAA,CC/EgC,SAAA,EAAA,MAAA,GAAA,IAAA,EAAA,QAAA,CAAA,EDiFnC,MCjFmC,EAAA,aAAA,CAAA,EDkF9B,IClF8B,CAAA,EDmF7C,aCnF6C;;;;;AFxChD;AAWA;AAWA;AAmBiB,UE/BA,gBAAA,CFgCR;;;;ECtCG,cAAM,EAAA,MAAA;EAED;EAsFD,YAAA,EAAA,MAAgB;EACxB;;;;AA0BR;EAEa,SAAA,CAAA,EAAA,MAAA;EACK;EACf,YAAA,EAAA,MAAA;;cC9FU,mBAAmB;cAWnB,4BAA4B,OAAO,QAAQ;;AA9BxD;AAmBA;AAWA;AAAgD,iBA4IhC,YAAA,CA5IgC,CAAA,EA6I3C,gBA7I2C,EAAA,CAAA,EA8I3C,gBA9I2C,EAAA,CAAA,EAAA,MAAA,CAAA,EAgJ7C,gBAhJ6C;;;;AA4IhD;;;;;AAyBgB,iBAAA,qBAAA,CAAqB,OAAA,EAC1B,aAD0B,EAAA,GAAA,EAE9B,gBAF8B,EAAA,QAAA,CAAA,EAAA,MAAA,CAAA,EAIlC,aAJkC;;;;;AA6BrC;;;AAE4B,iBAFZ,uBAAA,CAEY,KAAA,EADnB,aACmB,EAAA,SAAA,CAAA,EAAf,MAAe,CAAR,MAAQ,EAAA,gBAAA,CAAA,CAAA,EACzB,gBADyB;;;KCpOhB,eAAA;KAWA,UAAA;AHnBK,KGqBL,eAAA,GHrBe,OAAA,GAAA,eAAA,GAAA,UAAA,GAAA,KAAA,GAAA,SAAA,GAAA,MAAA,GAAA,YAAA,GAAA,MAAA,GAAA,YAAA,GAAA,SAAA;AAWf,KGsBA,cAAA,GAAiB,OHtBP,CGsBe,MHtBf,CGsBsB,UHtBtB,EAAA;EAWL,EAAA,EAAA,CAAA,MAAA,EAAA,MAAa,EAAA,MAAA,CAYrB;AAOT,CAAA,CAAA,CAAA;UGyEiB,gBAAA;oBACG;EF/GR,IAAA,CAAA,EEgHH,UFhHS;EAED,QAAA,CAAA,EAAA,OAAa;EAsFd,WAAA,CAAA,EAAA,OAAgB;EACxB,WAAA,CAAA,EAAA,OAAA;EAEK,cAAA,CAAA,EEyBM,cFzBN;EACV,aAAA,CAAA,EEyBe,UFzBf;EAAa,uBAAA,CAAA,EE0BY,eF1BZ,GAAA,IAAA;EAuBA;;EAGE,aAAA,CAAA,EEGA,IFHA;EACf;;;;iBE2Ba,WAAA;;;;;;;;;iBASC;;GAEd,mBAAgB,kBAAA,CAAA,GAAA,CAAA;;;KC5JP,iBAAA;AJLK,KIiBL,WAAA,GJjBe,IAAA,GAAA,IAAA,GAAA,IAAA;AAWf,UIsFK,gBAAA,CJtFK;EAWL,KAAA,EI4ER,UJ5EqB;EAmBb,KAAA,EI0DR,UJ1DkB;;;;ECrCf,WAAM,CAAA,EAAA,MAAA;EAED,OAAA,CAAA,EGkGL,iBHlGkB,GAEpB,IAAA;EAoFM,mBAAgB,EGaT,iBHbS,GAAA,IAAA;EACxB,gBAAA,EAAA,MAAA,GAAA,IAAA;EAEK,QAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EACV,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAAa,QAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAuBA,aAAS,CAAA,EGTP,IHSO;EAEZ,QAAA,EAAA,OAAA;EACK,WAAA,EAAA,OAAA;EACf,eAAA,EAAA,OAAA;EAAa,IAAA,EGTR,WHSQ;WGRL;;UAKM,kBAAA;EF9GA,MAAA,CAAA,EE+GN,UF/GsB;EAmBpB,aAAA,CAAA,EE6FK,UFxFjB,GAAA,IAL+B;EAWnB,IAAA,CAAA,EAAA,MAAA;EAAmC,QAAA,CAAA,EAAA,MAAA;EAAQ,IAAA,CAAA,EAAA,MAAA;EAAf,WAAA,CAAA,EAAA,MAAA;EAAM,OAAA,CAAA,EEuFnC,iBFvFmC,GAAA,IAAA;EA4I/B,uBAAY,CAAA,EEpDA,iBFoDA,GAAA,IAAA;EACvB,QAAA,CAAA,EAAA,OAAA;EACA,WAAA,CAAA,EAAA,OAAA;EAEF,eAAA,CAAA,EAAA,OAAA;EAAgB,IAAA,CAAA,EEpDV,WFoDU;EAqBH,QAAA,CAAA,EAAA,MAAA,GAAA,IAAqB;EAC1B,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EACJ,QAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAEJ;EAAa,cAAA,CAAA,EExEG,cFwEH;EAyBA;;EAEI,aAAA,CAAA,EEhGF,IFgGE;EAAQ,SAAA,CAAA,EAAA,MAAA;;AACzB,iBErEa,aAAA,CFqEb;EAAA,MAAA,EEpEO,cFoEP;EAAA,aAAA;EAAA,IAAA;EAAA,QAAA;EAAA,IAAA;EAAA,WAAA;EAAA,OAAA;EAAA,uBAAA;EAAA,QAAA;EAAA,WAAA;EAAA,eAAA;EAAA,IAAA;EAAA,QAAA;EAAA,SAAA;EAAA,QAAA;EAAA,cAAA;EAAA,aAAA,EEpDc,iBFoDd;EAAA;AAAA,CAAA,EElDA,kBFkDA,CAAA,EElDkB,kBAAA,CAAA,GAAA,CAAA,OFkDlB;;;ADzOS,UIDK,WAAA,CJCC;EAED;EAsFD,GAAA,EAAA,MAAA;EACR;;;;EA0BQ,OAAA,CAAA,EAAA,MAAS;EAEZ;;EAEV,cAAA,CAAA,EAAA,MAAA;;UIzGc,aAAA;;;EHRA,OAAA,EAAA,MAAA;EAmBJ,QAAA,EAAA,MAAA;EAWA,WAAA,EAAA,MAAA;EAAmC;;;;AA4IhD;;EAEK,KAAA,CAAA,EGxJK,WHwJL;;;AAuBL;;;;;AA6BA;;;;;;;;;;AClOA;AAWA;AAEA;AAYA;;AAAqC,UEsBpB,YAAA,CFtBoB;EAAR;EAAO,UAAA,EAAA,MAAA;EAiFnB;EACG,KAAA,EAAA,MAAA;EACX;EAIU,KAAA,EAAA,MAAA;EACD;EACU,YAAA,EAAA,MAAA;;AAGN,UEzDL,SAAA,CFyDK;EAyBN,WAAA,EAAA,MAAW;EACzB,aAAA,EAAA,MAAA;EACA,MAAA,EAAA,MAAA;EACA,OAAA,EAAA,MAAA;EACA,MAAA,EAAA,MAAA;EACA,MAAA,EAAA,MAAA;;AAEA,UE9Ee,aAAA,CF8Ef;EACA;EACe,EAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA;EACf;EACC,SAAA,EAAA,MAAA;EAAgB;EAAA,WAAA,EAAA,MAAA;;;;EC5JP,SAAA,EAAA,MAAA;EAYA;EAgFK,IAAA,EAAA,OAAA,GAAA,KAAgB,GAAA,MAAA;;AAExB,UCHQ,cAAA,CDGR;EAKG;EACW,EAAA,ECPjB,UDOiB;EAKL;EAIV,KAAA,EAAA,MAAA;EACG;EAAa,WAAA,EAAA,MAAA;EAKP;;;;EAQW,SAAA,ECpBf,MDoBe,CCpBR,UDoBQ,ECpBI,SDoBJ,CAAA;EAInB;;;;EAoCO,cAAA,ECtDE,MDsDW,CCtDJ,UDsDI,ECtDQ,aDsDR,CAAA;EACnB;;;;EAIR,cAAA,ECrDgB,MDqDhB,CCrDuB,UDqDvB,ECrDmC,aDqDnC,CAAA;EACA;;;;;;;;;;;;;;EAamB,YAAA,CAAA,ECnDJ,MDmDI,CCnDG,UDmDH,ECnDe,YDmDf,CAAA;EAAA;;;;ACxLrB;AAeA;AAqCA;AAaA;AAWA;AAiBA;;;;;;EAkBqC,YAAA,CAAA,EAuCpB,WAvCoB;EAAnB;;;;;EAsBkB,iBAAA,CAAA,EAwBd,OAxBc,CAwBN,MAxBM,CAwBC,MAxBD,EAwBS,gBAxBT,CAAA,CAAA;EAAnB;;;;EAwBa,SAAA,EAMjB,KAAA,CAAM,aANW,CAMG,eANH,CAAA;EAAR;;;;EAYD,gBAAM,CAAA,EAAN,KAAA,CAAM,aAAA,CAAc,gBAAd,CAAA;;AAKV,UAAA,eAAA,CAAe;EAEvB,KAAA,EAAA,UAAA;EACA,KAAA,EAAA,UAAA;EAKU,QAAA,EAAA,OAAA;EACX,QAAA,EAAA,GAAA,GAAA,IAAA;EAMI,eAAA,EAPO,eAOP;EACY,IAAA,EAPhB,UAOgB;EAUN,IAAA,EAAA,MAAA;EASP,QAAA,EAAA,MAAA;EAAa,IAAA,CAAA,EAAA,MAAA;EAKZ,OAAA,CAAA,EAzBA,eAyBU,GAAA,IAAA;wBAxBE;;;EC/JP,WAAA,CAAA,EAAU,MAAA;EAClB,UAAA,CAAA,EAAA,MAAA;EAKQ,QAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EAiBW,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EACnB,QAAA,CAAA,EAAA,MAAA,GAAA,IAAA;EACC,aAAA,CAAA,EDgJQ,IChJR;EACY,QAAA,EAAA,OAAA;EACR,WAAA,EAAA,OAAA;EAGG,WAAA,EAAA,OAAA;EACU,aAAA,CAAA,EAAA,OAAA;EAET,OAAA,EDiJP,aCjJO;;AAGR,KDmJE,UAAA,GCnJF,SAAA,GAAA,OAAA,GAAA,QAAA,GAAA,UAAA,GAAA,SAAA,GAAA,QAAA,GAAA,MAAA,GAAA,SAAA,GAAA,MAAA,GAAA,WAAA;;;AN3DE,UMuBK,UAAA,CNvBK;EAWL,KAAA,EMaR,UNbqB;EAmBb,SAAA,EAAA,OAAU;;;;ECrCf,aAAM,EKoCD,aLpCC,GAAA,IAAA;EAED,QAAA,EAAA,MAAa,GAAA,IAAA;EAsFd,QAAA,EAAA,MAAA,GAAgB,IAAA;EACxB,SAAA,EAAA,MAAA,GAAA,IAAA;EAEK,WAAA,EAAA,OAAA;EACV;;AAuBH;;;;;;;;AC7GA;EAmBa,IAAA,EAAA,MAAA,GAAA,IAAA;EAWA,gBAAA,EAAA,CAAA,KAAA,EIiBe,UJY3B,GAAA,IAAA,EAAA,GAAA,IAAA;EA7B+C,KAAA,EIkBvC,UJlBuC;EAAQ,MAAA,EImB9C,UJnB8C;EAAf,SAAA,EAAA,CAAA,MAAA,EIoBnB,UJpBmB,EAAA,GAAA,IAAA;EAAM,UAAA,EIqBjC,cJrBiC;EA4I/B;;EAEX,aAAA,EItHY,IJsHZ,GAAA,SAAA;EAEF,gBAAA,EAAA,CAAA,IAAA,EIvHwB,IJuHxB,GAAA,SAAA,EAAA,GAAA,IAAA;EAAgB;EAqBH,cAAA,EI1IE,cJ0ImB,GAAA,SAAA;EAC1B,iBAAA,EAAA,CAAA,QAAA,EI1IqB,cJ0IrB,GAAA,SAAA,EAAA,GAAA,IAAA;EACJ;EAEJ,MAAA,EI3IO,MJ2IP;EAAa;EAyBA,aAAA,EIlKC,aJkKsB;EAC9B;EACW,iBAAA,EAAA,CAAA,MAAA,EIlKU,MJkKV,GAAA,IAAA,EAAA,GAAA,IAAA;;AAAP,iBIqEG,aAAA,CAAA,CJrEH,EIqEoB,UJrEpB;UI2EH,KAAA,CJ1EP;EAAgB,QAAA,EI2EP,SJ3EO;kBI4ED;;;AHjTlB;AAWA;AAEA;AAYA;EAA4C,QAAA,CAAA,EAAA,OAAA;EAAP;;;AAiFrC;EACoB,cAAA,CAAA,EGkND,MHlNC;EACX;;;;EASS,oBAAA,CAAA,EAAA,OAAA;;AAyBF,iBGuLA,kBAAA,CHvLW;EAAA,QAAA;EAAA,aAAA;EAAA,QAAA;EAAA,cAAA,EG2LT,kBH3LS;EAAA;AAAA,CAAA,EG6LxB,KH7LwB,CAAA,EG6LnB,kBAAA,CAAA,GAAA,CAAA,OH7LmB;;;KIrIf,aAAA;UAyZK,kBAAA;iBACA;kBACC;ENxaN,eAAM,CAAA,EAAA,MAAA;EAED,OAAA,CAAA,EMwaL,aNxakB;EAsFd,SAAA,CAAA,EAAA,MAAA;EACR,KAAA,CAAA,EMmVE,KAAA,CAAM,aNnVR;;AAGL,iBMqVa,aAAA,CNrVb;EAAA,YAAA;EAAA,aAAA;EAAA,eAAA;EAAA,OAAA,EMyVQ,WNzVR;EAAA,SAAA;EAAA;AAAA,CAAA,CAAA,EM4VA,kBN5VA,CAAA,EM4VuB,kBAAA,CAAA,GAAA,CAAA,ON5VvB;AAAa,iBM4dA,iBAAA,CN5dA,KAAA,CAAA,EM4dyB,kBN5dzB,CAAA,EM4dgD,kBAAA,CAAA,GAAA,CAAA,ON5dhD"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { l as lerpColor, n as useSolarTheme, r as SKINS, t as SolarThemeProvider, u as lerpHex } from "./solar-theme-provider-CSustvmw.js";
1
+ import { _ as resolveSeasonalModifier, a as useSeason, d as lerpColor, f as lerpHex, g as lerpModifier, h as applySeasonalModifier, i as getSeasonalBlend, m as UNIVERSAL_SEASON_MODIFIERS, n as useSolarTheme, p as IDENTITY_MODIFIER, r as SKINS, t as SolarThemeProvider } from "./solar-theme-provider-cxO4tmFT.js";
2
2
  import { createContext, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
3
3
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
4
4
 
@@ -1028,11 +1028,19 @@ function resolveMotionProfile(skin) {
1028
1028
  function resolveImage(skin, palette) {
1029
1029
  return palette.image ?? skin.defaultImage;
1030
1030
  }
1031
- function computeConfig(skin, blend) {
1031
+ function computeConfig(skin, blend, seasonal) {
1032
1032
  const motionProfile = resolveMotionProfile(skin);
1033
1033
  const { phase, nextPhase, t } = blend;
1034
+ let palette = lerpPalette(skin.shaderPalettes[phase], skin.shaderPalettes[nextPhase], t);
1035
+ if (seasonal && !seasonal.disabled) {
1036
+ const mod = resolveSeasonalModifier(seasonal.blend, {
1037
+ ...UNIVERSAL_SEASON_MODIFIERS,
1038
+ ...skin.seasonalModifiers
1039
+ });
1040
+ palette = applySeasonalModifier(palette, mod);
1041
+ }
1034
1042
  return {
1035
- palette: lerpPalette(skin.shaderPalettes[phase], skin.shaderPalettes[nextPhase], t),
1043
+ palette,
1036
1044
  motion: lerpMotion(motionProfile[phase], motionProfile[nextPhase], t)
1037
1045
  };
1038
1046
  }
@@ -1258,16 +1266,22 @@ function SolarFlareCanvas({ backgroundColor, colors, speed, intensity, spread, p
1258
1266
  }
1259
1267
  let _hasHydrated = false;
1260
1268
  function SolarShaderBg({ skinOverride, blendOverride, opacityOverride, variant: variantProp, className, style } = {}) {
1261
- const { activeSkin, blend: contextBlend } = useSolarTheme();
1269
+ const { activeSkin, blend: contextBlend, seasonalBlend } = useSolarTheme();
1262
1270
  const contextVariant = useShaderVariant();
1263
1271
  const skin = skinOverride ?? activeSkin;
1264
1272
  const blend = blendOverride ?? contextBlend;
1265
1273
  const variant = variantProp ?? contextVariant;
1266
- const { palette, motion: rawMotion } = useMemo(() => computeConfig(skin, blend), [
1274
+ const seasonal = {
1275
+ blend: seasonalBlend,
1276
+ disabled: false
1277
+ };
1278
+ const { palette, motion: rawMotion } = useMemo(() => computeConfig(skin, blend, seasonal), [
1267
1279
  blend.phase,
1268
1280
  blend.nextPhase,
1269
1281
  blend.t,
1270
- skin
1282
+ skin,
1283
+ seasonalBlend.season,
1284
+ seasonalBlend.t
1271
1285
  ]);
1272
1286
  const variantPalette = variant === "editorial" ? applyEditorialPalette(palette) : palette;
1273
1287
  const shaderMotion = variant === "dashboard" ? applyDashboardMotion(rawMotion) : variant === "editorial" ? applyEditorialMotion(rawMotion) : rawMotion;
@@ -1352,5 +1366,5 @@ function SolarShaderBgFull(props = {}) {
1352
1366
  }
1353
1367
 
1354
1368
  //#endregion
1355
- export { CompactWidget, SolarShaderBg, SolarShaderBgFull, SolarThemeProvider, SolarWidget, useSolarTheme };
1369
+ export { CompactWidget, IDENTITY_MODIFIER, SolarShaderBg, SolarShaderBgFull, SolarThemeProvider, SolarWidget, UNIVERSAL_SEASON_MODIFIERS, applySeasonalModifier, getSeasonalBlend, lerpModifier, resolveSeasonalModifier, useSeason, useSolarTheme };
1356
1370
  //# sourceMappingURL=index.js.map