Compare commits

..

No commits in common. "cd59834277efc90094f758c2395933f08859d35b" and "5314454a26dec304dd67e2c6e828d23f7b89d3b8" have entirely different histories.

9 changed files with 142 additions and 187 deletions

View file

@ -16,8 +16,8 @@
"clsx": "^2.0.0",
"docusaurus-lunr-search": "^3.6.0",
"prism-react-renderer": "^2.3.0",
"react": "^19.2.5",
"react-dom": "^19.2.5"
"react": "^19.2.4",
"react-dom": "^19.2.4"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.10.0",
@ -4732,6 +4732,9 @@
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@ -4745,6 +4748,9 @@
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@ -4758,6 +4764,9 @@
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@ -4771,6 +4780,9 @@
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@ -5259,6 +5271,9 @@
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5275,6 +5290,9 @@
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5291,6 +5309,9 @@
"cpu": [
"ppc64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5307,6 +5328,9 @@
"cpu": [
"s390x"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5323,6 +5347,9 @@
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5339,6 +5366,9 @@
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5483,6 +5513,9 @@
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5499,6 +5532,9 @@
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5515,6 +5551,9 @@
"cpu": [
"ppc64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5531,6 +5570,9 @@
"cpu": [
"s390x"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5547,6 +5589,9 @@
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5563,6 +5608,9 @@
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -12384,6 +12432,9 @@
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "MPL-2.0",
"optional": true,
"os": [
@ -12404,6 +12455,9 @@
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "MPL-2.0",
"optional": true,
"os": [
@ -12424,6 +12478,9 @@
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "MPL-2.0",
"optional": true,
"os": [
@ -12444,6 +12501,9 @@
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "MPL-2.0",
"optional": true,
"os": [
@ -17583,24 +17643,24 @@
}
},
"node_modules/react": {
"version": "19.2.5",
"resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",
"integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==",
"version": "19.2.4",
"resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
"integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
"version": "19.2.5",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz",
"integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==",
"version": "19.2.4",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
"integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
"license": "MIT",
"dependencies": {
"scheduler": "^0.27.0"
},
"peerDependencies": {
"react": "^19.2.5"
"react": "^19.2.4"
}
},
"node_modules/react-fast-compare": {

View file

@ -23,8 +23,8 @@
"clsx": "^2.0.0",
"docusaurus-lunr-search": "^3.6.0",
"prism-react-renderer": "^2.3.0",
"react": "^19.2.5",
"react-dom": "^19.2.5"
"react": "^19.2.4",
"react-dom": "^19.2.4"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.10.0",

View file

@ -58,9 +58,6 @@ gantt
This automation starts a flexible load when the best price period begins, but keeps it running as long as prices remain favorable — even after the period ends.
<details>
<summary>Show YAML: Heat pump — extended cheap period</summary>
```yaml
automation:
- alias: "Heat Pump - Extended Cheap Period"
@ -106,8 +103,6 @@ automation:
temperature: 22
```
</details>
**How it works:**
1. Starts when the best price period triggers
@ -119,9 +114,6 @@ automation:
Use the trend to start slightly before the cheapest period — useful for appliances with warm-up time:
<details>
<summary>Show YAML: Water heater — pre-heat before cheapest window</summary>
```yaml
automation:
- alias: "Water Heater - Pre-Heat Before Cheapest"
@ -149,15 +141,10 @@ automation:
temperature: 60
```
</details>
### Use Case: Protect Against Rising Prices
Stop or reduce consumption when prices are climbing:
<details>
<summary>Show YAML: EV charger — stop when prices rising</summary>
```yaml
automation:
- alias: "EV Charger - Stop When Prices Rising"
@ -184,8 +171,6 @@ automation:
Next trend change in ~{{ state_attr('sensor.<home_name>_next_price_trend_change', 'minutes_until_change') }} minutes.
```
</details>
### Use Case: Multi-Window Trend Strategy for Flexible Loads
Combine short-term and long-term trend sensors for smarter decisions. This example manages a heat pump boost:
@ -195,9 +180,6 @@ Combine short-term and long-term trend sensors for smarter decisions. This examp
- If **both** say `falling` → prices are dropping, definitely wait
- If long-term says `falling` → cheaper hours ahead, no rush
<details>
<summary>Show YAML: Heat pump — multi-window trend strategy</summary>
```yaml
automation:
- alias: "Heat Pump - Smart Boost Using Multi-Window Trends"
@ -266,8 +248,6 @@ automation:
temperature: 20.5
```
</details>
:::tip Why "rising" means "act now"
A common misconception: **"rising" does NOT mean "too late"**. It means your current price is **lower** than the future average — so right now is actually a good time. See [How to Use Trend Sensors for Decisions](sensors.md#how-to-use-trend-sensors-for-decisions) in the sensor documentation for details.
:::
@ -295,9 +275,6 @@ On days with low price variation, the difference between "cheap" and "expensive"
**Best Practice:** Instead of checking a numeric percentage, this automation checks the sensor's classified state. This makes the automation simpler and respects the volatility thresholds you have configured centrally in the integration's options.
<details>
<summary>Show YAML: Home battery — charge on best price (volatility-aware)</summary>
```yaml
automation:
- alias: "Home Battery - Charge During Best Price (Moderate+ Volatility)"
@ -330,8 +307,6 @@ automation:
```
</details>
**Why this works:**
- The automation only runs if volatility is `moderate`, `high`, or `very_high`.
@ -342,9 +317,6 @@ automation:
This is the most robust approach. It trusts the "Best Price" classification on volatile days but adds a backup absolute price check for low-volatility days. This handles situations where prices are globally low, even if the daily variation is minimal.
<details>
<summary>Show YAML: EV charging — combined volatility + absolute price strategy</summary>
```yaml
automation:
- alias: "EV Charging - Smart Strategy"
@ -380,8 +352,6 @@ automation:
Today's volatility is {{ state_attr('sensor.<home_name>_today_s_price_volatility', 'price_volatility') }}.
```
</details>
**Why this works:**
- On days with meaningful price swings, it charges during any `Best Price` period.
@ -392,9 +362,6 @@ automation:
For maximum simplicity, you can use the attributes of the `best_price_period` sensor itself. It contains the volatility classification for the day the period belongs to. This is especially useful for periods that span across midnight.
<details>
<summary>Show YAML: Heat pump — smart heating using period volatility attribute</summary>
```yaml
automation:
- alias: "Heat Pump - Smart Heating Using Period's Volatility"
@ -416,8 +383,6 @@ automation:
temperature: 22 # Boost temperature during cheap period
```
</details>
**Why this works:**
- Each detected period has its own `volatility` attribute (`low`, `moderate`, etc.).
@ -433,9 +398,6 @@ automation:
Use future average sensors to determine the cheapest upcoming window for a timed appliance (e.g., dishwasher with 2-hour ECO program):
<details>
<summary>Show YAML: Dishwasher — schedule for cheapest 2h window</summary>
```yaml
automation:
- alias: "Dishwasher - Schedule for Cheapest 2h Window"
@ -469,15 +431,10 @@ automation:
{% endif %}
```
</details>
### Use Case: Notify When Cheapest Window Starts
Get a push notification when the best price period begins:
<details>
<summary>Show YAML: Notification — when cheap window starts</summary>
```yaml
automation:
- alias: "Notify - Cheap Window Started"
@ -498,8 +455,6 @@ automation:
{{ state_attr('sensor.<home_name>_current_electricity_price', 'unit_of_measurement') }}.
```
</details>
---
## ApexCharts Cards

View file

@ -42,9 +42,6 @@ cards:
### Price Level Card
<details>
<summary>Show YAML: Price level card with color gradients (custom:button-card)</summary>
```yaml
type: custom:button-card
entity: sensor.<home_name>_current_price_level
@ -63,17 +60,12 @@ styles:
]]]
```
</details>
## Lovelace Layouts
### Compact Mobile View
Optimized for mobile devices:
<details>
<summary>Show YAML: Compact mobile layout</summary>
```yaml
type: vertical-stack
cards:
@ -92,15 +84,10 @@ cards:
name: Active Now
```
</details>
### Desktop Dashboard
Full-width layout for desktop:
<details>
<summary>Show YAML: Desktop 3-column grid layout</summary>
```yaml
type: grid
columns: 3
@ -127,15 +114,10 @@ cards:
- sensor.<home_name>_today_s_highest_price
```
</details>
## Icon Color Integration
Using the `icon_color` attribute for dynamic colors:
<details>
<summary>Show YAML: Dynamic icon colors with mushroom chips</summary>
```yaml
type: custom:mushroom-chips-card
chips:
@ -152,17 +134,12 @@ chips:
icon_color: red
```
</details>
See [Icon Colors](icon-colors.md) for detailed color mapping.
## Picture Elements Dashboard
Advanced interactive dashboard:
<details>
<summary>Show YAML: Picture elements interactive dashboard</summary>
```yaml
type: picture-elements
image: /local/electricity_dashboard_bg.png
@ -184,15 +161,10 @@ elements:
# Add more elements...
```
</details>
## Auto-Entities Dynamic Lists
Automatically list all price sensors:
<details>
<summary>Show YAML: Auto-entities card for all price sensors</summary>
```yaml
type: custom:auto-entities
card:
@ -208,8 +180,6 @@ sort:
numeric: true
```
</details>
---
💡 **Related:**

View file

@ -137,9 +137,6 @@ styles:
Use Home Assistant's built-in entities card with card_mod for icon and state colors:
<details>
<summary>Show YAML: Entities card with card_mod</summary>
```yaml
type: entities
entities:
@ -156,8 +153,6 @@ card_mod:
}
```
</details>
### Method 3: Mushroom Cards
The [Mushroom cards](https://github.com/piitaya/lovelace-mushroom) support card_mod for icon and text colors:
@ -178,9 +173,6 @@ card_mod:
**Icon and state value:**
<details>
<summary>Show YAML: Mushroom card — icon and state value with same color</summary>
```yaml
type: custom:mushroom-entity-card
entity: sensor.<home_name>_current_price_level
@ -193,15 +185,10 @@ card_mod:
}
```
</details>
### Method 4: Glance Card with card_mod
Combine multiple sensors with dynamic colors:
<details>
<summary>Show YAML: Glance card with card_mod for multiple sensors</summary>
```yaml
type: glance
entities:
@ -221,15 +208,10 @@ card_mod:
}
```
</details>
## Complete Dashboard Example
Here's a complete example combining multiple sensors with dynamic colors:
<details>
<summary>Show YAML: Complete dashboard with dynamic colors for all sensor types</summary>
```yaml
type: vertical-stack
cards:
@ -311,8 +293,6 @@ cards:
]]]
```
</details>
## CSS Color Variables
The integration uses Home Assistant's standard CSS variables for theme compatibility:
@ -351,9 +331,6 @@ Instead of using `icon_color`, read the sensor state and apply your own colors:
**Example: Custom colors for price level**
<details>
<summary>Show YAML: Price level — 5-color JavaScript mapping</summary>
```yaml
type: custom:button-card
entity: sensor.<home_name>_current_price_level
@ -374,13 +351,8 @@ styles:
]]]
```
</details>
**Example: Custom colors for binary sensor**
<details>
<summary>Show YAML: Binary sensor — on/off color + background highlight</summary>
```yaml
type: custom:button-card
entity: binary_sensor.<home_name>_best_price_period
@ -401,13 +373,8 @@ styles:
]]]
```
</details>
**Example: Custom colors for volatility**
<details>
<summary>Show YAML: Volatility sensor — 4-level color mapping</summary>
```yaml
type: custom:button-card
entity: sensor.<home_name>_today_s_price_volatility
@ -426,13 +393,8 @@ styles:
]]]
```
</details>
**Example: Custom colors for price rating**
<details>
<summary>Show YAML: Price rating — 3-state color mapping</summary>
```yaml
type: custom:button-card
entity: sensor.<home_name>_current_price_rating
@ -450,8 +412,6 @@ styles:
]]]
```
</details>
### Which Approach Should You Use?
| Use Case | Recommended Approach |

View file

@ -583,9 +583,6 @@ Relaxation tried all configured attempts but couldn't reach your target. Options
**Key attributes to check:**
<details>
<summary>Show YAML: Sensor attribute reference for best_price_period</summary>
```yaml
# Entity: binary_sensor.<home_name>_best_price_period
@ -612,8 +609,6 @@ flat_days_detected: 1 # Days where prices were so flat that 1 peri
relaxation_incomplete: true # Some days couldn't reach the configured target
```
</details>
#### What the diagnostic attributes mean
**`min_periods_configured` / `periods_found_total`**
@ -683,9 +678,6 @@ This is **mathematically correct behavior** caused by how electricity prices are
**Example:**
<details>
<summary>Show YAML: How identical prices can flip between best/peak across midnight</summary>
```yaml
# Day 1 (low volatility, narrow range)
Price range: 18-22 ct/kWh (4 ct span)
@ -703,8 +695,6 @@ Daily average: 19 ct/kWh
# - Day 2: Near the middle/top of the range
```
</details>
**When This Occurs:**
- **Low-volatility days:** When price span is narrow (< 5 ct/kWh)
- **Stable weather:** Similar conditions across multiple days
@ -729,9 +719,6 @@ sensor.<home_name>_tomorrow_s_price_volatility: 7.9% # Also low
You can make your automations volatility-aware:
<details>
<summary>Show YAML: 3 automation strategies for volatility-aware period control</summary>
```yaml
# Option 1: Only act on high-volatility days
automation:
@ -780,8 +767,6 @@ automation:
entity_id: switch.ev_charger
```
</details>
**Available Per-Period Attributes:**
Each period sensor exposes day volatility and price statistics:

View file

@ -102,9 +102,6 @@ sensor:
Run dishwasher only when price is significantly below the daily typical level:
<details>
<summary>Show YAML: Automation — start dishwasher when cheap</summary>
```yaml
automation:
- alias: "Start Dishwasher When Cheap"
@ -124,15 +121,10 @@ automation:
entity_id: switch.dishwasher
```
</details>
**Example 2: Cost-aware heating control**
Use mean for actual cost calculations:
<details>
<summary>Show YAML: Automation — cost-aware heating control</summary>
```yaml
automation:
- alias: "Heating Budget Control"
@ -151,15 +143,10 @@ automation:
message: "Expected cost today: €{{ daily_cost }} (avg price: {{ mean_price }} ct/kWh)"
```
</details>
**Example 3: Smart charging based on rolling average**
Use trailing average to understand recent price trends:
<details>
<summary>Show YAML: Automation — EV charging based on rolling average</summary>
```yaml
automation:
- alias: "EV Charging - Price Trend Based"
@ -182,8 +169,6 @@ automation:
entity_id: switch.ev_charger
```
</details>
#### Key Attributes
All average sensors provide these attributes:
@ -505,9 +490,6 @@ After updating the integration, the `energy_price` and `tax` attributes will app
In countries like the Netherlands, solar feed-in compensation is based on the **raw energy/spot price**, not the total consumer price. The `energy_price` attribute gives you exactly this value — no more reverse-engineering from the total price with fragile template calculations.
<details>
<summary>Show YAML: Automation — solar export or consume decision</summary>
```yaml
# Example: Decide whether to export solar power or consume it
# Compare energy price (what you'd earn by exporting) vs. total price (what you'd pay)
@ -529,15 +511,10 @@ automation:
entity_id: switch.battery_charging # Don't charge battery, export instead
```
</details>
#### Price Composition Analysis
Understand how your electricity price is structured — useful for comparing across days or spotting trends in market prices vs. fees:
<details>
<summary>Show YAML: Template sensor — electricity tax share percentage</summary>
```yaml
# Template sensor showing tax share
template:
@ -554,8 +531,6 @@ template:
{% endif %}
```
</details>
#### Dashboard: Daily Cost Breakdown
Show users how today's average price splits into energy vs. tax:
@ -628,9 +603,6 @@ icon: mdi:clock-fast
**Display period progress bar:**
<details>
<summary>Show YAML: Bar card for period progress</summary>
```yaml
type: custom:bar-card
entity: sensor.<home_name>_best_price_progress
@ -649,13 +621,8 @@ severity:
color: red
```
</details>
**Automation: notify when period is almost over:**
<details>
<summary>Show YAML: Automation — notify when best price period is ending</summary>
```yaml
automation:
- alias: "Warn: Best Price Ending Soon"
@ -674,8 +641,6 @@ automation:
message: "Only {{ states('sensor.<home_name>_best_price_remaining_minutes') }} minutes left!"
```
</details>
## Trend Sensors
Trend sensors help you understand **whether to act now or wait**. The integration provides two complementary families:

View file

@ -17,8 +17,8 @@
"clsx": "^2.0.0",
"docusaurus-lunr-search": "^3.6.0",
"prism-react-renderer": "^2.3.0",
"react": "^19.2.5",
"react-dom": "^19.2.5"
"react": "^19.2.4",
"react-dom": "^19.2.4"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.10.0",
@ -4760,6 +4760,9 @@
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@ -4773,6 +4776,9 @@
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@ -4786,6 +4792,9 @@
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@ -4799,6 +4808,9 @@
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@ -5287,6 +5299,9 @@
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5303,6 +5318,9 @@
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5319,6 +5337,9 @@
"cpu": [
"ppc64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5335,6 +5356,9 @@
"cpu": [
"s390x"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5351,6 +5375,9 @@
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5367,6 +5394,9 @@
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5511,6 +5541,9 @@
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5527,6 +5560,9 @@
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5543,6 +5579,9 @@
"cpu": [
"ppc64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5559,6 +5598,9 @@
"cpu": [
"s390x"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5575,6 +5617,9 @@
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -5591,6 +5636,9 @@
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "Apache-2.0 AND MIT",
"optional": true,
"os": [
@ -12663,6 +12711,9 @@
"cpu": [
"arm64"
],
"libc": [
"glibc"
],
"license": "MPL-2.0",
"optional": true,
"os": [
@ -12683,6 +12734,9 @@
"cpu": [
"arm64"
],
"libc": [
"musl"
],
"license": "MPL-2.0",
"optional": true,
"os": [
@ -12703,6 +12757,9 @@
"cpu": [
"x64"
],
"libc": [
"glibc"
],
"license": "MPL-2.0",
"optional": true,
"os": [
@ -12723,6 +12780,9 @@
"cpu": [
"x64"
],
"libc": [
"musl"
],
"license": "MPL-2.0",
"optional": true,
"os": [
@ -17931,24 +17991,24 @@
}
},
"node_modules/react": {
"version": "19.2.5",
"resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz",
"integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==",
"version": "19.2.4",
"resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
"integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
"version": "19.2.5",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz",
"integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==",
"version": "19.2.4",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
"integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
"license": "MIT",
"dependencies": {
"scheduler": "^0.27.0"
},
"peerDependencies": {
"react": "^19.2.5"
"react": "^19.2.4"
}
},
"node_modules/react-fast-compare": {

View file

@ -24,8 +24,8 @@
"clsx": "^2.0.0",
"docusaurus-lunr-search": "^3.6.0",
"prism-react-renderer": "^2.3.0",
"react": "^19.2.5",
"react-dom": "^19.2.5"
"react": "^19.2.4",
"react-dom": "^19.2.4"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.10.0",