diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..3c5c336 --- /dev/null +++ b/404.html @@ -0,0 +1,21 @@ + + + + + + 404 | MBCP docs + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/api-ex.html b/api-ex.html new file mode 100644 index 0000000..931de17 --- /dev/null +++ b/api-ex.html @@ -0,0 +1,57 @@ + + + + + + Runtime API Examples | MBCP docs + + + + + + + + + + + + + +
Skip to content

Runtime API Examples

This page demonstrates usage of some of the runtime APIs provided by VitePress.

The main useData() API can be used to access site, theme, and page data for the current page. It works in both .md and .vue files:

md
<script setup>
+import { useData } from 'vitepress'
+
+const { theme, page, frontmatter } = useData()
+</script>
+
+## Results
+
+### Theme Data
+<pre>{{ theme }}</pre>
+
+### Page Data
+<pre>{{ page }}</pre>
+
+### Page Frontmatter
+<pre>{{ frontmatter }}</pre>

Results

Theme Data

{
+  "socialLinks": [
+    {
+      "icon": "github",
+      "link": "https://github.com/snowykami/mbcp"
+    }
+  ]
+}

Page Data

{
+  "title": "Runtime API Examples",
+  "description": "",
+  "frontmatter": {
+    "outline": "deep"
+  },
+  "headers": [],
+  "relativePath": "api-ex.md",
+  "filePath": "api-ex.md"
+}

Page Frontmatter

{
+  "outline": "deep"
+}

More

Check out the documentation for the full list of runtime APIs.

+ + + + \ No newline at end of file diff --git a/api/index.html b/api/index.html new file mode 100644 index 0000000..a6a05f2 --- /dev/null +++ b/api/index.html @@ -0,0 +1,24 @@ + + + + + + mbcp.\n\ninit\n\n | MBCP docs + + + + + + + + + + + + + +
Skip to content
+ + + + \ No newline at end of file diff --git a/api/mp_math/angle.html b/api/mp_math/angle.html new file mode 100644 index 0000000..d696950 --- /dev/null +++ b/api/mp_math/angle.html @@ -0,0 +1,125 @@ + + + + + + mbcp.mp\nmath.angle | MBCP docs + + + + + + + + + + + + + +
Skip to content

class AnyAngle

def __init__(self, value: float, is_radian: bool) -> None

 任意角度。

Args:

value: 角度或弧度值
+
+is_radian: 是否为弧度,默认为否
+
源代码
python
def __init__(self, value: float, is_radian: bool=False):
+    """
+        任意角度。
+        Args:
+            value: 角度或弧度值
+            is_radian: 是否为弧度,默认为否
+        """
+    if is_radian:
+        self.radian = value
+    else:
+        self.radian = value * PI / 180

@property

def complementary(self: Any) -> 'AnyAngle'

 余角:两角的和为90°。

Returns:

余角
+
源代码
python
@property
+def complementary(self) -> 'AnyAngle':
+    """
+        余角:两角的和为90°。
+        Returns:
+            余角
+        """
+    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

def supplementary(self: Any) -> 'AnyAngle'

 补角:两角的和为180°。

Returns:

补角
+
源代码
python
@property
+def supplementary(self) -> 'AnyAngle':
+    """
+        补角:两角的和为180°。
+        Returns:
+            补角
+        """
+    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

def degree(self: Any) -> float

 角度。

Returns:

弧度
+
源代码
python
@property
+def degree(self) -> float:
+    """
+        角度。
+        Returns:
+            弧度
+        """
+    return self.radian * 180 / PI

@property

def minimum_positive(self: Any) -> 'AnyAngle'

 最小正角。

Returns:

最小正角度
+
源代码
python
@property
+def minimum_positive(self) -> 'AnyAngle':
+    """
+        最小正角。
+        Returns:
+            最小正角度
+        """
+    return AnyAngle(self.radian % (2 * PI))

@property

def maximum_negative(self: Any) -> 'AnyAngle'

 最大负角。

Returns:

最大负角度
+
源代码
python
@property
+def maximum_negative(self) -> 'AnyAngle':
+    """
+        最大负角。
+        Returns:
+            最大负角度
+        """
+    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

def sin(self: Any) -> float

 正弦值。

Returns:

正弦值
+
源代码
python
@property
+def sin(self) -> float:
+    """
+        正弦值。
+        Returns:
+            正弦值
+        """
+    return math.sin(self.radian)

@property

def cos(self: Any) -> float

 余弦值。

Returns:

余弦值
+
源代码
python
@property
+def cos(self) -> float:
+    """
+        余弦值。
+        Returns:
+            余弦值
+        """
+    return math.cos(self.radian)

@property

def tan(self: Any) -> float

 正切值。

Returns:

正切值
+
源代码
python
@property
+def tan(self) -> float:
+    """
+        正切值。
+        Returns:
+            正切值
+        """
+    return math.tan(self.radian)

@property

def cot(self: Any) -> float

 余切值。

Returns:

余切值
+
源代码
python
@property
+def cot(self) -> float:
+    """
+        余切值。
+        Returns:
+            余切值
+        """
+    return 1 / math.tan(self.radian)

@property

def sec(self: Any) -> float

 正割值。

Returns:

正割值
+
源代码
python
@property
+def sec(self) -> float:
+    """
+        正割值。
+        Returns:
+            正割值
+        """
+    return 1 / math.cos(self.radian)

@property

def csc(self: Any) -> float

 余割值。

Returns:

余割值
+
源代码
python
@property
+def csc(self) -> float:
+    """
+        余割值。
+        Returns:
+            余割值
+        """
+    return 1 / math.sin(self.radian)
+ + + + \ No newline at end of file diff --git a/api/mp_math/const.html b/api/mp_math/const.html new file mode 100644 index 0000000..527ccae --- /dev/null +++ b/api/mp_math/const.html @@ -0,0 +1,24 @@ + + + + + + mbcp.mp\nmath.const | MBCP docs + + + + + + + + + + + + + +
Skip to content

var PI = math.pi

var E = math.e

var GOLDEN_RATIO = (1 + math.sqrt(5)) / 2

var GAMMA = 0.5772156649015329

var EPSILON = 0.0001

var APPROX = 0.001

+ + + + \ No newline at end of file diff --git a/api/mp_math/equation.html b/api/mp_math/equation.html new file mode 100644 index 0000000..0ea964b --- /dev/null +++ b/api/mp_math/equation.html @@ -0,0 +1,79 @@ + + + + + + mbcp.mp\nmath.equation | MBCP docs + + + + + + + + + + + + + +
Skip to content

def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number) -> MultiVarsFunc

求N元函数一阶偏导函数。这玩意不太稳定,慎用。

Args:

func: 函数
+
+var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
+
+epsilon: 偏移量
+

Returns:

偏导函数
+

Raises:

ValueError: 无效变量类型
+
源代码
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
+    """
+    求N元函数一阶偏导函数。这玩意不太稳定,慎用。
+    Args:
+        func: 函数
+        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
+        epsilon: 偏移量
+    Returns:
+        偏导函数
+    Raises:
+        ValueError: 无效变量类型
+    """
+    if isinstance(var, int):
+
+        def partial_derivative_func(*args: Var) -> Var:
+            args_list_plus = list(args)
+            args_list_plus[var] += epsilon
+            args_list_minus = list(args)
+            args_list_minus[var] -= epsilon
+            return (func(*args_list_plus) - func(*args_list_minus)) / (2 * epsilon)
+        return partial_derivative_func
+    elif isinstance(var, tuple):
+
+        def high_order_partial_derivative_func(*args: Var) -> Var:
+            result_func = func
+            for v in var:
+                result_func = get_partial_derivative_func(result_func, v, epsilon)
+            return result_func(*args)
+        return high_order_partial_derivative_func
+    else:
+        raise ValueError('Invalid var type')

def partial_derivative_func() -> Var

源代码
python
def partial_derivative_func(*args: Var) -> Var:
+    args_list_plus = list(args)
+    args_list_plus[var] += epsilon
+    args_list_minus = list(args)
+    args_list_minus[var] -= epsilon
+    return (func(*args_list_plus) - func(*args_list_minus)) / (2 * epsilon)

def high_order_partial_derivative_func() -> Var

源代码
python
def high_order_partial_derivative_func(*args: Var) -> Var:
+    result_func = func
+    for v in var:
+        result_func = get_partial_derivative_func(result_func, v, epsilon)
+    return result_func(*args)

class CurveEquation

def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc) -> None

 曲线方程。

:param x_func:

:param y_func:

:param z_func:

源代码
python
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
+    """
+        曲线方程。
+        :param x_func:
+        :param y_func:
+        :param z_func:
+        """
+    self.x_func = x_func
+    self.y_func = y_func
+    self.z_func = z_func

var args_list_plus = list(args)

var args_list_minus = list(args)

var result_func = func

var result_func = get_partial_derivative_func(result_func, v, epsilon)

+ + + + \ No newline at end of file diff --git a/api/mp_math/index.html b/api/mp_math/index.html new file mode 100644 index 0000000..36a8ec5 --- /dev/null +++ b/api/mp_math/index.html @@ -0,0 +1,24 @@ + + + + + + mbcp.mp\nmath.\n\ninit\n\n | MBCP docs + + + + + + + + + + + + + +
Skip to content
+ + + + \ No newline at end of file diff --git a/api/mp_math/line.html b/api/mp_math/line.html new file mode 100644 index 0000000..84932ef --- /dev/null +++ b/api/mp_math/line.html @@ -0,0 +1,216 @@ + + + + + + mbcp.mp\nmath.line | MBCP docs + + + + + + + + + + + + + +
Skip to content

class Line3

def __init__(self, point: 'Point3', direction: 'Vector3') -> None

 三维空间中的直线。由一个点和一个方向向量确定。

Args:

point: 直线上的一点
+
+direction: 直线的方向向量
+
源代码
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
+    """
+        三维空间中的直线。由一个点和一个方向向量确定。
+        Args:
+            point: 直线上的一点
+            direction: 直线的方向向量
+        """
+    self.point = point
+    self.direction = direction

def approx(self, other: 'Line3', epsilon: float) -> bool

 判断两条直线是否近似相等。

Args:

other: 另一条直线
+
+epsilon: 误差
+

Returns:

是否近似相等
+
源代码
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
+    """
+        判断两条直线是否近似相等。
+        Args:
+            other: 另一条直线
+            epsilon: 误差
+        Returns:
+            是否近似相等
+        """
+    return self.is_approx_parallel(other, epsilon) and (self.point - other.point).is_approx_parallel(self.direction, epsilon)

def cal_angle(self, other: 'Line3') -> 'AnyAngle'

 计算直线和直线之间的夹角。

Args:

other: 另一条直线
+

Returns:

夹角弧度
+

Raises:

TypeError: 不支持的类型
+
源代码
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
+    """
+        计算直线和直线之间的夹角。
+        Args:
+            other: 另一条直线
+        Returns:
+            夹角弧度
+        Raises:
+            TypeError: 不支持的类型
+        """
+    return self.direction.cal_angle(other.direction)

def cal_distance(self, other: 'Line3 | Point3') -> float

 计算直线和直线或点之间的距离。

Args:

other: 平行直线或点
+

Returns:

距离
+

Raises:

TypeError: 不支持的类型
+
源代码
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
+    """
+        计算直线和直线或点之间的距离。
+        Args:
+            other: 平行直线或点
+
+        Returns:
+            距离
+        Raises:
+            TypeError: 不支持的类型
+        """
+    if isinstance(other, Line3):
+        if self == other:
+            return 0
+        elif self.is_parallel(other):
+            return (other.point - self.point).cross(self.direction).length / self.direction.length
+        elif not self.is_coplanar(other):
+            return abs(self.direction.cross(other.direction) @ (self.point - other.point) / self.direction.cross(other.direction).length)
+        else:
+            return 0
+    elif isinstance(other, Point3):
+        return (other - self.point).cross(self.direction).length / self.direction.length
+    else:
+        raise TypeError('Unsupported type.')

def cal_intersection(self, other: 'Line3') -> 'Point3'

 计算两条直线的交点。

Args:

other: 另一条直线
+

Returns:

交点
+

Raises:

ValueError: 直线平行
+
+ValueError: 直线不共面
+
源代码
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+    """
+        计算两条直线的交点。
+        Args:
+            other: 另一条直线
+        Returns:
+            交点
+        Raises:
+            ValueError: 直线平行
+            ValueError: 直线不共面
+        """
+    if self.is_parallel(other):
+        raise ValueError('Lines are parallel and do not intersect.')
+    if not self.is_coplanar(other):
+        raise ValueError('Lines are not coplanar and do not intersect.')
+    return self.point + self.direction.cross(other.direction) @ other.direction.cross(self.point - other.point) / self.direction.cross(other.direction).length ** 2 * self.direction

def cal_perpendicular(self, point: 'Point3') -> 'Line3'

 计算直线经过指定点p的垂线。

Args:

point: 指定点
+

Returns:

垂线
+
源代码
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
+    """
+        计算直线经过指定点p的垂线。
+        Args:
+            point: 指定点
+        Returns:
+            垂线
+        """
+    return Line3(point, self.direction.cross(point - self.point))

def get_point(self, t: RealNumber) -> 'Point3'

 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

Args:

t: 参数t
+

Returns:

点
+
源代码
python
def get_point(self, t: RealNumber) -> 'Point3':
+    """
+        获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
+        Args:
+            t: 参数t
+        Returns:
+
+        """
+    return self.point + t * self.direction

def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

 获取直线的参数方程。

Returns:

x(t), y(t), z(t)
+
源代码
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
+    """
+        获取直线的参数方程。
+        Returns:
+            x(t), y(t), z(t)
+        """
+    return (lambda t: self.point.x + self.direction.x * t, lambda t: self.point.y + self.direction.y * t, lambda t: self.point.z + self.direction.z * t)

def is_approx_parallel(self, other: 'Line3', epsilon: float) -> bool

 判断两条直线是否近似平行。

Args:

other: 另一条直线
+
+epsilon: 误差
+

Returns:

是否近似平行
+
源代码
python
def is_approx_parallel(self, other: 'Line3', epsilon: float=1e-06) -> bool:
+    """
+        判断两条直线是否近似平行。
+        Args:
+            other: 另一条直线
+            epsilon: 误差
+        Returns:
+            是否近似平行
+        """
+    return self.direction.is_approx_parallel(other.direction, epsilon)

def is_parallel(self, other: 'Line3') -> bool

 判断两条直线是否平行。

Args:

other: 另一条直线
+

Returns:

是否平行
+
源代码
python
def is_parallel(self, other: 'Line3') -> bool:
+    """
+        判断两条直线是否平行。
+        Args:
+            other: 另一条直线
+        Returns:
+            是否平行
+        """
+    return self.direction.is_parallel(other.direction)

def is_collinear(self, other: 'Line3') -> bool

 判断两条直线是否共线。

Args:

other: 另一条直线
+

Returns:

是否共线
+
源代码
python
def is_collinear(self, other: 'Line3') -> bool:
+    """
+        判断两条直线是否共线。
+        Args:
+            other: 另一条直线
+        Returns:
+            是否共线
+        """
+    return self.is_parallel(other) and (self.point - other.point).is_parallel(self.direction)

def is_point_on(self, point: 'Point3') -> bool

 判断点是否在直线上。

Args:

point: 点
+

Returns:

是否在直线上
+
源代码
python
def is_point_on(self, point: 'Point3') -> bool:
+    """
+        判断点是否在直线上。
+        Args:
+            point: 点
+        Returns:
+            是否在直线上
+        """
+    return (point - self.point).is_parallel(self.direction)

def is_coplanar(self, other: 'Line3') -> bool

 判断两条直线是否共面。

充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

Args:

other: 另一条直线
+

Returns:

是否共面
+
源代码
python
def is_coplanar(self, other: 'Line3') -> bool:
+    """
+        判断两条直线是否共面。
+        充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。
+        Args:
+            other: 另一条直线
+        Returns:
+            是否共面
+        """
+    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

def simplify(self) -> None

 简化直线方程,等价相等。

自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

源代码
python
def simplify(self):
+    """
+        简化直线方程,等价相等。
+        自体简化,不返回值。
+
+        按照可行性一次对x y z 化 0 处理,并对向量单位化
+        """
+    self.direction.normalize()
+    if self.direction.x == 0:
+        self.point.x = 0
+    if self.direction.y == 0:
+        self.point.y = 0
+    if self.direction.z == 0:
+        self.point.z = 0

@classmethod

def from_two_points(cls: Any, p1: 'Point3', p2: 'Point3') -> 'Line3'

 工厂函数 由两点构造直线。

Args:

p1: 点1
+
+p2: 点2
+

Returns:

直线
+
源代码
python
@classmethod
+def from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3':
+    """
+        工厂函数 由两点构造直线。
+        Args:
+            p1: 点1
+            p2: 点2
+        Returns:
+            直线
+        """
+    direction = p2 - p1
+    return cls(p1, direction)

var direction = p2 - p1

var s = 'Line3: '

+ + + + \ No newline at end of file diff --git a/api/mp_math/mp_math_typing.html b/api/mp_math/mp_math_typing.html new file mode 100644 index 0000000..f39333e --- /dev/null +++ b/api/mp_math/mp_math_typing.html @@ -0,0 +1,24 @@ + + + + + + mbcp.mp\nmath.mp\nmath\ntyping | MBCP docs + + + + + + + + + + + + + +
Skip to content

var SingleVar = TypeVar('SingleVar', bound=Number)

var ArrayVar = TypeVar('ArrayVar', bound=Iterable[Number])

+ + + + \ No newline at end of file diff --git a/api/mp_math/plane.html b/api/mp_math/plane.html new file mode 100644 index 0000000..2e7bd78 --- /dev/null +++ b/api/mp_math/plane.html @@ -0,0 +1,243 @@ + + + + + + mbcp.mp\nmath.plane | MBCP docs + + + + + + + + + + + + + +
Skip to content

class Plane3

def __init__(self, a: float, b: float, c: float, d: float) -> None

 平面方程:ax + by + cz + d = 0

Args:

a:
+
+b:
+
+c:
+
+d:
+
源代码
python
def __init__(self, a: float, b: float, c: float, d: float):
+    """
+        平面方程:ax + by + cz + d = 0
+        Args:
+            a:
+            b:
+            c:
+            d:
+        """
+    self.a = a
+    self.b = b
+    self.c = c
+    self.d = d

def approx(self, other: 'Plane3', epsilon: float) -> bool

 判断两个平面是否近似相等。

Args:

other:
+
+epsilon:
+

Returns:

是否近似相等
+
源代码
python
def approx(self, other: 'Plane3', epsilon: float=APPROX) -> bool:
+    """
+        判断两个平面是否近似相等。
+        Args:
+            other:
+            epsilon:
+
+        Returns:
+            是否近似相等
+        """
+    if self.a != 0:
+        k = other.a / self.a
+        return approx(other.b, self.b * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
+    elif self.b != 0:
+        k = other.b / self.b
+        return approx(other.a, self.a * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
+    elif self.c != 0:
+        k = other.c / self.c
+        return approx(other.a, self.a * k) and approx(other.b, self.b * k) and approx(other.d, self.d * k)
+    else:
+        return False

def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle'

 计算平面与平面之间的夹角。

Args:

other: 另一个平面
+

Returns:

夹角弧度
+

Raises:

TypeError: 不支持的类型
+
源代码
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+    """
+        计算平面与平面之间的夹角。
+        Args:
+            other: 另一个平面
+        Returns:
+            夹角弧度
+        Raises:
+            TypeError: 不支持的类型
+        """
+    if isinstance(other, Line3):
+        return self.normal.cal_angle(other.direction).complementary
+    elif isinstance(other, Plane3):
+        return AnyAngle(math.acos(self.normal @ other.normal / (self.normal.length * other.normal.length)), is_radian=True)
+    else:
+        raise TypeError(f'Unsupported type: {type(other)}')

def cal_distance(self, other: 'Plane3 | Point3') -> float

 计算平面与平面或点之间的距离。

Args:

other: 另一个平面或点
+

Returns:

距离
+

Raises:

TypeError: 不支持的类型
+
源代码
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
+    """
+        计算平面与平面或点之间的距离。
+        Args:
+            other: 另一个平面或点
+        Returns:
+            距离
+        Raises:
+            TypeError: 不支持的类型
+        """
+    if isinstance(other, Plane3):
+        return 0
+    elif isinstance(other, Point3):
+        return abs(self.a * other.x + self.b * other.y + self.c * other.z + self.d) / (self.a ** 2 + self.b ** 2 + self.c ** 2) ** 0.5
+    else:
+        raise TypeError(f'Unsupported type: {type(other)}')

def cal_intersection_line3(self, other: 'Plane3') -> 'Line3'

 计算两平面的交线。该方法有问题,待修复。

Args:

other: 另一个平面
+

Returns:

交线
+

Raises:

源代码
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
+    """
+        计算两平面的交线。该方法有问题,待修复。
+        Args:
+            other: 另一个平面
+        Returns:
+            交线
+        Raises:
+        """
+    if self.normal.is_parallel(other.normal):
+        raise ValueError('Planes are parallel and have no intersection.')
+    direction = self.normal.cross(other.normal)
+    x, y, z = (0, 0, 0)
+    if self.a != 0 and other.a != 0:
+        A = np.array([[self.b, self.c], [other.b, other.c]])
+        B = np.array([-self.d, -other.d])
+        y, z = np.linalg.solve(A, B)
+    elif self.b != 0 and other.b != 0:
+        A = np.array([[self.a, self.c], [other.a, other.c]])
+        B = np.array([-self.d, -other.d])
+        x, z = np.linalg.solve(A, B)
+    elif self.c != 0 and other.c != 0:
+        A = np.array([[self.a, self.b], [other.a, other.b]])
+        B = np.array([-self.d, -other.d])
+        x, y = np.linalg.solve(A, B)
+    return Line3(Point3(x, y, z), direction)

def cal_intersection_point3(self, other: 'Line3') -> 'Point3'

 计算平面与直线的交点。

Args:

other: 不与平面平行或在平面上的直线
+

Returns:

交点
+

Raises:

ValueError: 平面与直线平行或重合
+
源代码
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
+    """
+        计算平面与直线的交点。
+        Args:
+            other: 不与平面平行或在平面上的直线
+        Returns:
+            交点
+        Raises:
+            ValueError: 平面与直线平行或重合
+        """
+    if self.normal @ other.direction == 0:
+        raise ValueError('The plane and the line are parallel or coincident.')
+    x, y, z = other.get_parametric_equations()
+    t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)
+    return Point3(x(t), y(t), z(t))

def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3'

 计算平行于该平面且过指定点的平面。

Args:

point: 指定点
+

Returns:

平面
+
源代码
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
+    """
+        计算平行于该平面且过指定点的平面。
+        Args:
+            point: 指定点
+        Returns:
+            平面
+        """
+    return Plane3.from_point_and_normal(point, self.normal)

def is_parallel(self, other: 'Plane3') -> bool

 判断两个平面是否平行。

Args:

other: 另一个平面
+

Returns:

是否平行
+
源代码
python
def is_parallel(self, other: 'Plane3') -> bool:
+    """
+        判断两个平面是否平行。
+        Args:
+            other: 另一个平面
+        Returns:
+            是否平行
+        """
+    return self.normal.is_parallel(other.normal)

@property

def normal(self: Any) -> 'Vector3'

 平面的法向量。

Returns:

法向量
+
源代码
python
@property
+def normal(self) -> 'Vector3':
+    """
+        平面的法向量。
+        Returns:
+            法向量
+        """
+    return Vector3(self.a, self.b, self.c)

@classmethod

def from_point_and_normal(cls: Any, point: 'Point3', normal: 'Vector3') -> 'Plane3'

 工厂函数 由点和法向量构造平面(点法式构造)。

Args:

point: 平面上的一点
+
+normal: 法向量
+

Returns:

平面
+
源代码
python
@classmethod
+def from_point_and_normal(cls, point: 'Point3', normal: 'Vector3') -> 'Plane3':
+    """
+        工厂函数 由点和法向量构造平面(点法式构造)。
+        Args:
+            point: 平面上的一点
+            normal: 法向量
+        Returns:
+            平面
+        """
+    a, b, c = (normal.x, normal.y, normal.z)
+    d = -a * point.x - b * point.y - c * point.z
+    return cls(a, b, c, d)

@classmethod

def from_three_points(cls: Any, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3'

 工厂函数 由三点构造平面。

Args:

p1: 点1
+
+p2: 点2
+
+p3: 点3
+

Returns:

平面
+
源代码
python
@classmethod
+def from_three_points(cls, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3':
+    """
+        工厂函数 由三点构造平面。
+        Args:
+            p1: 点1
+            p2: 点2
+            p3: 点3
+        Returns:
+            平面
+        """
+    v1 = p2 - p1
+    v2 = p3 - p1
+    normal = v1.cross(v2)
+    return cls.from_point_and_normal(p1, normal)

@classmethod

def from_two_lines(cls: Any, l1: 'Line3', l2: 'Line3') -> 'Plane3'

 工厂函数 由两直线构造平面。

Args:

l1: 直线1
+
+l2: 直线2
+

Returns:

平面
+
源代码
python
@classmethod
+def from_two_lines(cls, l1: 'Line3', l2: 'Line3') -> 'Plane3':
+    """
+        工厂函数 由两直线构造平面。
+        Args:
+            l1: 直线1
+            l2: 直线2
+        Returns:
+            平面
+        """
+    v1 = l1.direction
+    v2 = l2.point - l1.point
+    if v2 == zero_vector3:
+        v2 = l2.get_point(1) - l1.point
+    return cls.from_point_and_normal(l1.point, v1.cross(v2))

@classmethod

def from_point_and_line(cls: Any, point: 'Point3', line: 'Line3') -> 'Plane3'

 工厂函数 由点和直线构造平面。

Args:

point: 面上一点
+
+line: 面上直线,不包含点
+

Returns:

平面
+
源代码
python
@classmethod
+def from_point_and_line(cls, point: 'Point3', line: 'Line3') -> 'Plane3':
+    """
+        工厂函数 由点和直线构造平面。
+        Args:
+            point: 面上一点
+            line: 面上直线,不包含点
+        Returns:
+            平面
+        """
+    return cls.from_point_and_normal(point, line.direction)

var direction = self.normal.cross(other.normal)

var t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)

var d = -a * point.x - b * point.y - c * point.z

var v1 = p2 - p1

var v2 = p3 - p1

var normal = v1.cross(v2)

var v1 = l1.direction

var v2 = l2.point - l1.point

var s = 'Plane3: '

var k = other.a / self.a

var A = np.array([[self.b, self.c], [other.b, other.c]])

var B = np.array([-self.d, -other.d])

var v2 = l2.get_point(1) - l1.point

var k = other.b / self.b

var A = np.array([[self.a, self.c], [other.a, other.c]])

var B = np.array([-self.d, -other.d])

var k = other.c / self.c

var A = np.array([[self.a, self.b], [other.a, other.b]])

var B = np.array([-self.d, -other.d])

+ + + + \ No newline at end of file diff --git a/api/mp_math/point.html b/api/mp_math/point.html new file mode 100644 index 0000000..5d38d3d --- /dev/null +++ b/api/mp_math/point.html @@ -0,0 +1,53 @@ + + + + + + mbcp.mp\nmath.point | MBCP docs + + + + + + + + + + + + + +
Skip to content

class Point3

def __init__(self, x: float, y: float, z: float) -> None

 笛卡尔坐标系中的点。

Args:

x: x 坐标
+
+y: y 坐标
+
+z: z 坐标
+
源代码
python
def __init__(self, x: float, y: float, z: float):
+    """
+        笛卡尔坐标系中的点。
+        Args:
+            x: x 坐标
+            y: y 坐标
+            z: z 坐标
+        """
+    self.x = x
+    self.y = y
+    self.z = z

def approx(self, other: 'Point3', epsilon: float) -> bool

 判断两个点是否近似相等。

Args:

other:
+
+epsilon:
+

Returns:

是否近似相等
+
源代码
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    """
+        判断两个点是否近似相等。
+        Args:
+            other:
+            epsilon:
+
+        Returns:
+            是否近似相等
+        """
+    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])
+ + + + \ No newline at end of file diff --git a/api/mp_math/segment.html b/api/mp_math/segment.html new file mode 100644 index 0000000..378c75d --- /dev/null +++ b/api/mp_math/segment.html @@ -0,0 +1,37 @@ + + + + + + mbcp.mp\nmath.segment | MBCP docs + + + + + + + + + + + + + +
Skip to content

class Segment3

def __init__(self, p1: 'Point3', p2: 'Point3') -> None

 三维空间中的线段。

:param p1:

:param p2:

源代码
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
+    """
+        三维空间中的线段。
+        :param p1:
+        :param p2:
+        """
+    self.p1 = p1
+    self.p2 = p2
+    '方向向量'
+    self.direction = self.p2 - self.p1
+    '长度'
+    self.length = self.direction.length
+    '中心点'
+    self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)
+ + + + \ No newline at end of file diff --git a/api/mp_math/utils.html b/api/mp_math/utils.html new file mode 100644 index 0000000..e5322b1 --- /dev/null +++ b/api/mp_math/utils.html @@ -0,0 +1,97 @@ + + + + + + mbcp.mp\nmath.utils | MBCP docs + + + + + + + + + + + + + +
Skip to content

def clamp(x: float, min_: float, max_: float) -> float

区间截断函数。

Args:

x:
+
+min_:
+
+max_:
+

Returns:

限制后的值
+
源代码
python
def clamp(x: float, min_: float, max_: float) -> float:
+    """
+    区间截断函数。
+    Args:
+        x:
+        min_:
+        max_:
+
+    Returns:
+        限制后的值
+    """
+    return max(min(x, max_), min_)

def approx(x: float, y: float, epsilon: float) -> bool

判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

Args:

x:
+
+y:
+
+epsilon:
+

Returns:

是否近似相等
+
源代码
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
+    """
+    判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
+    Args:
+        x:
+        y:
+        epsilon:
+
+    Returns:
+        是否近似相等
+    """
+    return abs(x - y) < epsilon

def sign(x: float, only_neg: bool) -> str

获取数的符号。

Args:

x: 数
+
+only_neg: 是否只返回负数的符号
+

Returns:

符号 + - ""
+
源代码
python
def sign(x: float, only_neg: bool=False) -> str:
+    """获取数的符号。
+    Args:
+        x: 数
+        only_neg: 是否只返回负数的符号
+    Returns:
+        符号 + - ""
+    """
+    if x > 0:
+        return '+' if not only_neg else ''
+    elif x < 0:
+        return '-'
+    else:
+        return ''

def sign_format(x: float, only_neg: bool) -> str

格式化符号数

-1 -> -1

1 -> +1

0 -> ""

Args:

x: 数
+
+only_neg: 是否只返回负数的符号
+

Returns:

符号 + - ""
+
源代码
python
def sign_format(x: float, only_neg: bool=False) -> str:
+    """格式化符号数
+    -1 -> -1
+    1 -> +1
+    0 -> ""
+    Args:
+        x: 数
+        only_neg: 是否只返回负数的符号
+    Returns:
+        符号 + - ""
+    """
+    if x > 0:
+        return f'+{x}' if not only_neg else f'{x}'
+    elif x < 0:
+        return f'-{abs(x)}'
+    else:
+        return ''

class Approx

用于近似比较对象

已实现对象 实数 Vector3 Point3 Plane3 Line3

def __init__(self, value: RealNumber) -> None

源代码
python
def __init__(self, value: RealNumber):
+    self.value = value

def raise_type_error(self, other: Any) -> None

源代码
python
def raise_type_error(self, other):
+    raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')
+ + + + \ No newline at end of file diff --git a/api/mp_math/vector.html b/api/mp_math/vector.html new file mode 100644 index 0000000..7445219 --- /dev/null +++ b/api/mp_math/vector.html @@ -0,0 +1,139 @@ + + + + + + mbcp.mp\nmath.vector | MBCP docs + + + + + + + + + + + + + +
Skip to content

class Vector3

def __init__(self, x: float, y: float, z: float) -> None

 3维向量

Args:

x: x轴分量
+
+y: y轴分量
+
+z: z轴分量
+
源代码
python
def __init__(self, x: float, y: float, z: float):
+    """
+        3维向量
+        Args:
+            x: x轴分量
+            y: y轴分量
+            z: z轴分量
+        """
+    self.x = x
+    self.y = y
+    self.z = z

def approx(self, other: 'Vector3', epsilon: float) -> bool

 判断两个向量是否近似相等。

Args:

other:
+
+epsilon:
+

Returns:

是否近似相等
+
源代码
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    """
+        判断两个向量是否近似相等。
+        Args:
+            other:
+            epsilon:
+
+        Returns:
+            是否近似相等
+        """
+    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

def cal_angle(self, other: 'Vector3') -> 'AnyAngle'

 计算两个向量之间的夹角。

Args:

other: 另一个向量
+

Returns:

夹角
+
源代码
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
+    """
+        计算两个向量之间的夹角。
+        Args:
+            other: 另一个向量
+        Returns:
+            夹角
+        """
+    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

def cross(self, other: 'Vector3') -> 'Vector3'

 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。

其余结果的模为平行四边形的面积。

返回如下行列式的结果:

i j k

x1 y1 z1

x2 y2 z2

Args:

other:
+

Returns:

行列式的结果
+
源代码
python
def cross(self, other: 'Vector3') -> 'Vector3':
+    """
+        向量积 叉乘:v1 cross v2 -> v3
+
+        叉乘为0,则两向量平行。
+        其余结果的模为平行四边形的面积。
+
+        返回如下行列式的结果:
+
+        ``i  j  k``
+
+        ``x1 y1 z1``
+
+        ``x2 y2 z2``
+
+        Args:
+            other:
+        Returns:
+            行列式的结果
+        """
+    return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

def is_approx_parallel(self, other: 'Vector3', epsilon: float) -> bool

 判断两个向量是否近似平行。

Args:

other: 另一个向量
+
+epsilon: 允许的误差
+

Returns:

是否近似平行
+
源代码
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    """
+        判断两个向量是否近似平行。
+        Args:
+            other: 另一个向量
+            epsilon: 允许的误差
+        Returns:
+            是否近似平行
+        """
+    return self.cross(other).length < epsilon

def is_parallel(self, other: 'Vector3') -> bool

 判断两个向量是否平行。

Args:

other: 另一个向量
+

Returns:

是否平行
+
源代码
python
def is_parallel(self, other: 'Vector3') -> bool:
+    """
+        判断两个向量是否平行。
+        Args:
+            other: 另一个向量
+        Returns:
+            是否平行
+        """
+    return self.cross(other).approx(zero_vector3)

def normalize(self) -> None

 将向量归一化。

自体归一化,不返回值。

源代码
python
def normalize(self):
+    """
+        将向量归一化。
+
+        自体归一化,不返回值。
+        """
+    length = self.length
+    self.x /= length
+    self.y /= length
+    self.z /= length

@property

def np_array(self: Any) -> 'np.ndarray'

 返回numpy数组

Returns:

源代码
python
@property
+def np_array(self) -> 'np.ndarray':
+    """
+        返回numpy数组
+        Returns:
+        """
+    return np.array([self.x, self.y, self.z])

@property

def length(self: Any) -> float

 向量的模。

Returns:

模
+
源代码
python
@property
+def length(self) -> float:
+    """
+        向量的模。
+        Returns:
+
+        """
+    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

def unit(self: Any) -> 'Vector3'

 获取该向量的单位向量。

Returns:

单位向量
+
源代码
python
@property
+def unit(self) -> 'Vector3':
+    """
+        获取该向量的单位向量。
+        Returns:
+            单位向量
+        """
+    return self / self.length

var zero_vector3 = Vector3(0, 0, 0)

var x_axis = Vector3(1, 0, 0)

var y_axis = Vector3(0, 1, 0)

var z_axis = Vector3(0, 0, 1)

var length = self.length

+ + + + \ No newline at end of file diff --git a/api/particle/index.html b/api/particle/index.html new file mode 100644 index 0000000..fb560ac --- /dev/null +++ b/api/particle/index.html @@ -0,0 +1,24 @@ + + + + + + mbcp.particle.\n\ninit\n\n | MBCP docs + + + + + + + + + + + + + +
Skip to content
+ + + + \ No newline at end of file diff --git a/api/presets/index.html b/api/presets/index.html new file mode 100644 index 0000000..17c9720 --- /dev/null +++ b/api/presets/index.html @@ -0,0 +1,24 @@ + + + + + + mbcp.presets.\n\ninit\n\n | MBCP docs + + + + + + + + + + + + + +
Skip to content
+ + + + \ No newline at end of file diff --git a/api/presets/model/index.html b/api/presets/model/index.html new file mode 100644 index 0000000..19dfbff --- /dev/null +++ b/api/presets/model/index.html @@ -0,0 +1,66 @@ + + + + + + mbcp.presets.model.\n\ninit\n\n | MBCP docs + + + + + + + + + + + + + +
Skip to content

def sphere(radius: float, density: float) -> None

生成球体上的点集。

Args:

radius:
+
+density:
+

Returns:

List[Point3]: 球体上的点集。
+
源代码
python
@staticmethod
+def sphere(radius: float, density: float):
+    """
+        生成球体上的点集。
+        Args:
+            radius:
+            density:
+        Returns:
+            List[Point3]: 球体上的点集。
+        """
+    area = 4 * np.pi * radius ** 2
+    num = int(area * density)
+    phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
+    theta_list = np.sqrt(num * np.pi) * phi_list
+    x_array = radius * np.sin(phi_list) * np.cos(theta_list)
+    y_array = radius * np.sin(phi_list) * np.sin(theta_list)
+    z_array = radius * np.cos(phi_list)
+    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

class GeometricModels

@staticmethod

def sphere(radius: float, density: float) -> None

 生成球体上的点集。

Args:

radius:
+
+density:
+

Returns:

List[Point3]: 球体上的点集。
+
源代码
python
@staticmethod
+def sphere(radius: float, density: float):
+    """
+        生成球体上的点集。
+        Args:
+            radius:
+            density:
+        Returns:
+            List[Point3]: 球体上的点集。
+        """
+    area = 4 * np.pi * radius ** 2
+    num = int(area * density)
+    phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
+    theta_list = np.sqrt(num * np.pi) * phi_list
+    x_array = radius * np.sin(phi_list) * np.cos(theta_list)
+    y_array = radius * np.sin(phi_list) * np.sin(theta_list)
+    z_array = radius * np.cos(phi_list)
+    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

var area = 4 * np.pi * radius ** 2

var num = int(area * density)

var phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])

var theta_list = np.sqrt(num * np.pi) * phi_list

var x_array = radius * np.sin(phi_list) * np.cos(theta_list)

var y_array = radius * np.sin(phi_list) * np.sin(theta_list)

var z_array = radius * np.cos(phi_list)

+ + + + \ No newline at end of file diff --git a/assets/api-ex.md.DOsKaL8H.js b/assets/api-ex.md.DOsKaL8H.js new file mode 100644 index 0000000..8273956 --- /dev/null +++ b/assets/api-ex.md.DOsKaL8H.js @@ -0,0 +1,16 @@ +import{u as h,c as p,j as s,t as i,k as e,a2 as r,a,o as k}from"./chunks/framework.BV61Qrc0.js";const d=r(`

Runtime API Examples

This page demonstrates usage of some of the runtime APIs provided by VitePress.

The main useData() API can be used to access site, theme, and page data for the current page. It works in both .md and .vue files:

md
<script setup>
+import { useData } from 'vitepress'
+
+const { theme, page, frontmatter } = useData()
+</script>
+
+## Results
+
+### Theme Data
+<pre>{{ theme }}</pre>
+
+### Page Data
+<pre>{{ page }}</pre>
+
+### Page Frontmatter
+<pre>{{ frontmatter }}</pre>

Results

Theme Data

`,6),o=s("h3",{id:"page-data",tabindex:"-1"},[a("Page Data "),s("a",{class:"header-anchor",href:"#page-data","aria-label":'Permalink to "Page Data"'},"​")],-1),E=s("h3",{id:"page-frontmatter",tabindex:"-1"},[a("Page Frontmatter "),s("a",{class:"header-anchor",href:"#page-frontmatter","aria-label":'Permalink to "Page Frontmatter"'},"​")],-1),g=s("h2",{id:"more",tabindex:"-1"},[a("More "),s("a",{class:"header-anchor",href:"#more","aria-label":'Permalink to "More"'},"​")],-1),c=s("p",null,[a("Check out the documentation for the "),s("a",{href:"https://vitepress.dev/reference/runtime-api#usedata",target:"_blank",rel:"noreferrer"},"full list of runtime APIs"),a(".")],-1),D=JSON.parse('{"title":"Runtime API Examples","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"api-ex.md","filePath":"api-ex.md"}'),m={name:"api-ex.md"},F=Object.assign(m,{setup(u){const{site:y,theme:t,page:n,frontmatter:l}=h();return(_,f)=>(k(),p("div",null,[d,s("pre",null,i(e(t)),1),o,s("pre",null,i(e(n)),1),E,s("pre",null,i(e(l)),1),g,c]))}});export{D as __pageData,F as default}; diff --git a/assets/api-ex.md.DOsKaL8H.lean.js b/assets/api-ex.md.DOsKaL8H.lean.js new file mode 100644 index 0000000..686b36e --- /dev/null +++ b/assets/api-ex.md.DOsKaL8H.lean.js @@ -0,0 +1 @@ +import{u as h,c as p,j as s,t as i,k as e,a2 as r,a,o as k}from"./chunks/framework.BV61Qrc0.js";const d=r("",6),o=s("h3",{id:"page-data",tabindex:"-1"},[a("Page Data "),s("a",{class:"header-anchor",href:"#page-data","aria-label":'Permalink to "Page Data"'},"​")],-1),E=s("h3",{id:"page-frontmatter",tabindex:"-1"},[a("Page Frontmatter "),s("a",{class:"header-anchor",href:"#page-frontmatter","aria-label":'Permalink to "Page Frontmatter"'},"​")],-1),g=s("h2",{id:"more",tabindex:"-1"},[a("More "),s("a",{class:"header-anchor",href:"#more","aria-label":'Permalink to "More"'},"​")],-1),c=s("p",null,[a("Check out the documentation for the "),s("a",{href:"https://vitepress.dev/reference/runtime-api#usedata",target:"_blank",rel:"noreferrer"},"full list of runtime APIs"),a(".")],-1),D=JSON.parse('{"title":"Runtime API Examples","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"api-ex.md","filePath":"api-ex.md"}'),m={name:"api-ex.md"},F=Object.assign(m,{setup(u){const{site:y,theme:t,page:n,frontmatter:l}=h();return(_,f)=>(k(),p("div",null,[d,s("pre",null,i(e(t)),1),o,s("pre",null,i(e(n)),1),E,s("pre",null,i(e(l)),1),g,c]))}});export{D as __pageData,F as default}; diff --git a/assets/api_index.md.CsKClHFh.js b/assets/api_index.md.CsKClHFh.js new file mode 100644 index 0000000..5e98a95 --- /dev/null +++ b/assets/api_index.md.CsKClHFh.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as n}from"./chunks/framework.BV61Qrc0.js";const _=JSON.parse('{"title":"mbcp.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/index.md","filePath":"api/index.md"}'),a={name:"api/index.md"};function i(o,r,c,p,d,s){return n(),t("div")}const l=e(a,[["render",i]]);export{_ as __pageData,l as default}; diff --git a/assets/api_index.md.CsKClHFh.lean.js b/assets/api_index.md.CsKClHFh.lean.js new file mode 100644 index 0000000..5e98a95 --- /dev/null +++ b/assets/api_index.md.CsKClHFh.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as n}from"./chunks/framework.BV61Qrc0.js";const _=JSON.parse('{"title":"mbcp.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/index.md","filePath":"api/index.md"}'),a={name:"api/index.md"};function i(o,r,c,p,d,s){return n(),t("div")}const l=e(a,[["render",i]]);export{_ as __pageData,l as default}; diff --git a/assets/api_mp_math_angle.md.9eUTSIe4.js b/assets/api_mp_math_angle.md.9eUTSIe4.js new file mode 100644 index 0000000..94733bd --- /dev/null +++ b/assets/api_mp_math_angle.md.9eUTSIe4.js @@ -0,0 +1,102 @@ +import{_ as s,c as a,o as i,a2 as n}from"./chunks/framework.BV61Qrc0.js";const F=JSON.parse('{"title":"mbcp.mp\\\\nmath.angle","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.angle","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/angle.md","filePath":"api/mp_math/angle.md"}'),e={name:"api/mp_math/angle.md"},t=n(`

class AnyAngle

def __init__(self, value: float, is_radian: bool) -> None

 任意角度。

Args:

value: 角度或弧度值
+
+is_radian: 是否为弧度,默认为否
+
源代码
python
def __init__(self, value: float, is_radian: bool=False):
+    """
+        任意角度。
+        Args:
+            value: 角度或弧度值
+            is_radian: 是否为弧度,默认为否
+        """
+    if is_radian:
+        self.radian = value
+    else:
+        self.radian = value * PI / 180

@property

def complementary(self: Any) -> 'AnyAngle'

 余角:两角的和为90°。

Returns:

余角
+
源代码
python
@property
+def complementary(self) -> 'AnyAngle':
+    """
+        余角:两角的和为90°。
+        Returns:
+            余角
+        """
+    return AnyAngle(PI / 2 - self.minimum_positive.radian, is_radian=True)

@property

def supplementary(self: Any) -> 'AnyAngle'

 补角:两角的和为180°。

Returns:

补角
+
源代码
python
@property
+def supplementary(self) -> 'AnyAngle':
+    """
+        补角:两角的和为180°。
+        Returns:
+            补角
+        """
+    return AnyAngle(PI - self.minimum_positive.radian, is_radian=True)

@property

def degree(self: Any) -> float

 角度。

Returns:

弧度
+
源代码
python
@property
+def degree(self) -> float:
+    """
+        角度。
+        Returns:
+            弧度
+        """
+    return self.radian * 180 / PI

@property

def minimum_positive(self: Any) -> 'AnyAngle'

 最小正角。

Returns:

最小正角度
+
源代码
python
@property
+def minimum_positive(self) -> 'AnyAngle':
+    """
+        最小正角。
+        Returns:
+            最小正角度
+        """
+    return AnyAngle(self.radian % (2 * PI))

@property

def maximum_negative(self: Any) -> 'AnyAngle'

 最大负角。

Returns:

最大负角度
+
源代码
python
@property
+def maximum_negative(self) -> 'AnyAngle':
+    """
+        最大负角。
+        Returns:
+            最大负角度
+        """
+    return AnyAngle(-self.radian % (2 * PI), is_radian=True)

@property

def sin(self: Any) -> float

 正弦值。

Returns:

正弦值
+
源代码
python
@property
+def sin(self) -> float:
+    """
+        正弦值。
+        Returns:
+            正弦值
+        """
+    return math.sin(self.radian)

@property

def cos(self: Any) -> float

 余弦值。

Returns:

余弦值
+
源代码
python
@property
+def cos(self) -> float:
+    """
+        余弦值。
+        Returns:
+            余弦值
+        """
+    return math.cos(self.radian)

@property

def tan(self: Any) -> float

 正切值。

Returns:

正切值
+
源代码
python
@property
+def tan(self) -> float:
+    """
+        正切值。
+        Returns:
+            正切值
+        """
+    return math.tan(self.radian)

@property

def cot(self: Any) -> float

 余切值。

Returns:

余切值
+
源代码
python
@property
+def cot(self) -> float:
+    """
+        余切值。
+        Returns:
+            余切值
+        """
+    return 1 / math.tan(self.radian)

@property

def sec(self: Any) -> float

 正割值。

Returns:

正割值
+
源代码
python
@property
+def sec(self) -> float:
+    """
+        正割值。
+        Returns:
+            正割值
+        """
+    return 1 / math.cos(self.radian)

@property

def csc(self: Any) -> float

 余割值。

Returns:

余割值
+
源代码
python
@property
+def csc(self) -> float:
+    """
+        余割值。
+        Returns:
+            余割值
+        """
+    return 1 / math.sin(self.radian)
`,72),p=[t];function l(h,k,r,d,o,y){return i(),a("div",null,p)}const c=s(e,[["render",l]]);export{F as __pageData,c as default}; diff --git a/assets/api_mp_math_angle.md.9eUTSIe4.lean.js b/assets/api_mp_math_angle.md.9eUTSIe4.lean.js new file mode 100644 index 0000000..a668d4f --- /dev/null +++ b/assets/api_mp_math_angle.md.9eUTSIe4.lean.js @@ -0,0 +1 @@ +import{_ as s,c as a,o as i,a2 as n}from"./chunks/framework.BV61Qrc0.js";const F=JSON.parse('{"title":"mbcp.mp\\\\nmath.angle","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.angle","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/angle.md","filePath":"api/mp_math/angle.md"}'),e={name:"api/mp_math/angle.md"},t=n("",72),p=[t];function l(h,k,r,d,o,y){return i(),a("div",null,p)}const c=s(e,[["render",l]]);export{F as __pageData,c as default}; diff --git a/assets/api_mp_math_const.md.Bhz27OPg.js b/assets/api_mp_math_const.md.Bhz27OPg.js new file mode 100644 index 0000000..3a2275d --- /dev/null +++ b/assets/api_mp_math_const.md.Bhz27OPg.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a2 as r}from"./chunks/framework.BV61Qrc0.js";const v=JSON.parse('{"title":"mbcp.mp\\\\nmath.const","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.const","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/const.md","filePath":"api/mp_math/const.md"}'),o={name:"api/mp_math/const.md"},n=r('

var PI = math.pi

var E = math.e

var GOLDEN_RATIO = (1 + math.sqrt(5)) / 2

var GAMMA = 0.5772156649015329

var EPSILON = 0.0001

var APPROX = 0.001

',6),s=[n];function m(c,h,i,d,l,p){return t(),e("div",null,s)}const P=a(o,[["render",m]]);export{v as __pageData,P as default}; diff --git a/assets/api_mp_math_const.md.Bhz27OPg.lean.js b/assets/api_mp_math_const.md.Bhz27OPg.lean.js new file mode 100644 index 0000000..11fcd53 --- /dev/null +++ b/assets/api_mp_math_const.md.Bhz27OPg.lean.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a2 as r}from"./chunks/framework.BV61Qrc0.js";const v=JSON.parse('{"title":"mbcp.mp\\\\nmath.const","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.const","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/const.md","filePath":"api/mp_math/const.md"}'),o={name:"api/mp_math/const.md"},n=r("",6),s=[n];function m(c,h,i,d,l,p){return t(),e("div",null,s)}const P=a(o,[["render",m]]);export{v as __pageData,P as default}; diff --git a/assets/api_mp_math_equation.md.xiyFVY1c.js b/assets/api_mp_math_equation.md.xiyFVY1c.js new file mode 100644 index 0000000..ed33888 --- /dev/null +++ b/assets/api_mp_math_equation.md.xiyFVY1c.js @@ -0,0 +1,56 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const u=JSON.parse('{"title":"mbcp.mp\\\\nmath.equation","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.equation","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/equation.md","filePath":"api/mp_math/equation.md"}'),t={name:"api/mp_math/equation.md"},l=n(`

def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number) -> MultiVarsFunc

求N元函数一阶偏导函数。这玩意不太稳定,慎用。

Args:

func: 函数
+
+var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
+
+epsilon: 偏移量
+

Returns:

偏导函数
+

Raises:

ValueError: 无效变量类型
+
源代码
python
def get_partial_derivative_func(func: MultiVarsFunc, var: int | tuple[int, ...], epsilon: Number=EPSILON) -> MultiVarsFunc:
+    """
+    求N元函数一阶偏导函数。这玩意不太稳定,慎用。
+    Args:
+        func: 函数
+        var: 变量位置,可为整数(一阶偏导)或整数元组(高阶偏导)
+        epsilon: 偏移量
+    Returns:
+        偏导函数
+    Raises:
+        ValueError: 无效变量类型
+    """
+    if isinstance(var, int):
+
+        def partial_derivative_func(*args: Var) -> Var:
+            args_list_plus = list(args)
+            args_list_plus[var] += epsilon
+            args_list_minus = list(args)
+            args_list_minus[var] -= epsilon
+            return (func(*args_list_plus) - func(*args_list_minus)) / (2 * epsilon)
+        return partial_derivative_func
+    elif isinstance(var, tuple):
+
+        def high_order_partial_derivative_func(*args: Var) -> Var:
+            result_func = func
+            for v in var:
+                result_func = get_partial_derivative_func(result_func, v, epsilon)
+            return result_func(*args)
+        return high_order_partial_derivative_func
+    else:
+        raise ValueError('Invalid var type')

def partial_derivative_func() -> Var

源代码
python
def partial_derivative_func(*args: Var) -> Var:
+    args_list_plus = list(args)
+    args_list_plus[var] += epsilon
+    args_list_minus = list(args)
+    args_list_minus[var] -= epsilon
+    return (func(*args_list_plus) - func(*args_list_minus)) / (2 * epsilon)

def high_order_partial_derivative_func() -> Var

源代码
python
def high_order_partial_derivative_func(*args: Var) -> Var:
+    result_func = func
+    for v in var:
+        result_func = get_partial_derivative_func(result_func, v, epsilon)
+    return result_func(*args)

class CurveEquation

def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc) -> None

 曲线方程。

:param x_func:

:param y_func:

:param z_func:

源代码
python
def __init__(self, x_func: OneVarFunc, y_func: OneVarFunc, z_func: OneVarFunc):
+    """
+        曲线方程。
+        :param x_func:
+        :param y_func:
+        :param z_func:
+        """
+    self.x_func = x_func
+    self.y_func = y_func
+    self.z_func = z_func

var args_list_plus = list(args)

var args_list_minus = list(args)

var result_func = func

var result_func = get_partial_derivative_func(result_func, v, epsilon)

`,24),e=[l];function h(p,k,r,d,E,g){return a(),i("div",null,e)}const o=s(t,[["render",h]]);export{u as __pageData,o as default}; diff --git a/assets/api_mp_math_equation.md.xiyFVY1c.lean.js b/assets/api_mp_math_equation.md.xiyFVY1c.lean.js new file mode 100644 index 0000000..3b86eb7 --- /dev/null +++ b/assets/api_mp_math_equation.md.xiyFVY1c.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const u=JSON.parse('{"title":"mbcp.mp\\\\nmath.equation","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.equation","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/equation.md","filePath":"api/mp_math/equation.md"}'),t={name:"api/mp_math/equation.md"},l=n("",24),e=[l];function h(p,k,r,d,E,g){return a(),i("div",null,e)}const o=s(t,[["render",h]]);export{u as __pageData,o as default}; diff --git a/assets/api_mp_math_index.md.DTIfeUA1.js b/assets/api_mp_math_index.md.DTIfeUA1.js new file mode 100644 index 0000000..2362a78 --- /dev/null +++ b/assets/api_mp_math_index.md.DTIfeUA1.js @@ -0,0 +1 @@ +import{_ as t,c as e,o as n}from"./chunks/framework.BV61Qrc0.js";const _=JSON.parse('{"title":"mbcp.mp\\\\nmath.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/index.md","filePath":"api/mp_math/index.md"}'),a={name:"api/mp_math/index.md"};function i(p,o,m,r,c,d){return n(),e("div")}const h=t(a,[["render",i]]);export{_ as __pageData,h as default}; diff --git a/assets/api_mp_math_index.md.DTIfeUA1.lean.js b/assets/api_mp_math_index.md.DTIfeUA1.lean.js new file mode 100644 index 0000000..2362a78 --- /dev/null +++ b/assets/api_mp_math_index.md.DTIfeUA1.lean.js @@ -0,0 +1 @@ +import{_ as t,c as e,o as n}from"./chunks/framework.BV61Qrc0.js";const _=JSON.parse('{"title":"mbcp.mp\\\\nmath.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/index.md","filePath":"api/mp_math/index.md"}'),a={name:"api/mp_math/index.md"};function i(p,o,m,r,c,d){return n(),e("div")}const h=t(a,[["render",i]]);export{_ as __pageData,h as default}; diff --git a/assets/api_mp_math_line.md.BybnyRUL.js b/assets/api_mp_math_line.md.BybnyRUL.js new file mode 100644 index 0000000..c0b376e --- /dev/null +++ b/assets/api_mp_math_line.md.BybnyRUL.js @@ -0,0 +1,193 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const E=JSON.parse('{"title":"mbcp.mp\\\\nmath.line","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.line","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/line.md","filePath":"api/mp_math/line.md"}'),e={name:"api/mp_math/line.md"},l=n(`

class Line3

def __init__(self, point: 'Point3', direction: 'Vector3') -> None

 三维空间中的直线。由一个点和一个方向向量确定。

Args:

point: 直线上的一点
+
+direction: 直线的方向向量
+
源代码
python
def __init__(self, point: 'Point3', direction: 'Vector3'):
+    """
+        三维空间中的直线。由一个点和一个方向向量确定。
+        Args:
+            point: 直线上的一点
+            direction: 直线的方向向量
+        """
+    self.point = point
+    self.direction = direction

def approx(self, other: 'Line3', epsilon: float) -> bool

 判断两条直线是否近似相等。

Args:

other: 另一条直线
+
+epsilon: 误差
+

Returns:

是否近似相等
+
源代码
python
def approx(self, other: 'Line3', epsilon: float=APPROX) -> bool:
+    """
+        判断两条直线是否近似相等。
+        Args:
+            other: 另一条直线
+            epsilon: 误差
+        Returns:
+            是否近似相等
+        """
+    return self.is_approx_parallel(other, epsilon) and (self.point - other.point).is_approx_parallel(self.direction, epsilon)

def cal_angle(self, other: 'Line3') -> 'AnyAngle'

 计算直线和直线之间的夹角。

Args:

other: 另一条直线
+

Returns:

夹角弧度
+

Raises:

TypeError: 不支持的类型
+
源代码
python
def cal_angle(self, other: 'Line3') -> 'AnyAngle':
+    """
+        计算直线和直线之间的夹角。
+        Args:
+            other: 另一条直线
+        Returns:
+            夹角弧度
+        Raises:
+            TypeError: 不支持的类型
+        """
+    return self.direction.cal_angle(other.direction)

def cal_distance(self, other: 'Line3 | Point3') -> float

 计算直线和直线或点之间的距离。

Args:

other: 平行直线或点
+

Returns:

距离
+

Raises:

TypeError: 不支持的类型
+
源代码
python
def cal_distance(self, other: 'Line3 | Point3') -> float:
+    """
+        计算直线和直线或点之间的距离。
+        Args:
+            other: 平行直线或点
+
+        Returns:
+            距离
+        Raises:
+            TypeError: 不支持的类型
+        """
+    if isinstance(other, Line3):
+        if self == other:
+            return 0
+        elif self.is_parallel(other):
+            return (other.point - self.point).cross(self.direction).length / self.direction.length
+        elif not self.is_coplanar(other):
+            return abs(self.direction.cross(other.direction) @ (self.point - other.point) / self.direction.cross(other.direction).length)
+        else:
+            return 0
+    elif isinstance(other, Point3):
+        return (other - self.point).cross(self.direction).length / self.direction.length
+    else:
+        raise TypeError('Unsupported type.')

def cal_intersection(self, other: 'Line3') -> 'Point3'

 计算两条直线的交点。

Args:

other: 另一条直线
+

Returns:

交点
+

Raises:

ValueError: 直线平行
+
+ValueError: 直线不共面
+
源代码
python
def cal_intersection(self, other: 'Line3') -> 'Point3':
+    """
+        计算两条直线的交点。
+        Args:
+            other: 另一条直线
+        Returns:
+            交点
+        Raises:
+            ValueError: 直线平行
+            ValueError: 直线不共面
+        """
+    if self.is_parallel(other):
+        raise ValueError('Lines are parallel and do not intersect.')
+    if not self.is_coplanar(other):
+        raise ValueError('Lines are not coplanar and do not intersect.')
+    return self.point + self.direction.cross(other.direction) @ other.direction.cross(self.point - other.point) / self.direction.cross(other.direction).length ** 2 * self.direction

def cal_perpendicular(self, point: 'Point3') -> 'Line3'

 计算直线经过指定点p的垂线。

Args:

point: 指定点
+

Returns:

垂线
+
源代码
python
def cal_perpendicular(self, point: 'Point3') -> 'Line3':
+    """
+        计算直线经过指定点p的垂线。
+        Args:
+            point: 指定点
+        Returns:
+            垂线
+        """
+    return Line3(point, self.direction.cross(point - self.point))

def get_point(self, t: RealNumber) -> 'Point3'

 获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。

Args:

t: 参数t
+

Returns:

点
+
源代码
python
def get_point(self, t: RealNumber) -> 'Point3':
+    """
+        获取直线上的点。同一条直线,但起始点和方向向量不同,则同一个t对应的点不同。
+        Args:
+            t: 参数t
+        Returns:
+
+        """
+    return self.point + t * self.direction

def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]

 获取直线的参数方程。

Returns:

x(t), y(t), z(t)
+
源代码
python
def get_parametric_equations(self) -> tuple[OneSingleVarFunc, OneSingleVarFunc, OneSingleVarFunc]:
+    """
+        获取直线的参数方程。
+        Returns:
+            x(t), y(t), z(t)
+        """
+    return (lambda t: self.point.x + self.direction.x * t, lambda t: self.point.y + self.direction.y * t, lambda t: self.point.z + self.direction.z * t)

def is_approx_parallel(self, other: 'Line3', epsilon: float) -> bool

 判断两条直线是否近似平行。

Args:

other: 另一条直线
+
+epsilon: 误差
+

Returns:

是否近似平行
+
源代码
python
def is_approx_parallel(self, other: 'Line3', epsilon: float=1e-06) -> bool:
+    """
+        判断两条直线是否近似平行。
+        Args:
+            other: 另一条直线
+            epsilon: 误差
+        Returns:
+            是否近似平行
+        """
+    return self.direction.is_approx_parallel(other.direction, epsilon)

def is_parallel(self, other: 'Line3') -> bool

 判断两条直线是否平行。

Args:

other: 另一条直线
+

Returns:

是否平行
+
源代码
python
def is_parallel(self, other: 'Line3') -> bool:
+    """
+        判断两条直线是否平行。
+        Args:
+            other: 另一条直线
+        Returns:
+            是否平行
+        """
+    return self.direction.is_parallel(other.direction)

def is_collinear(self, other: 'Line3') -> bool

 判断两条直线是否共线。

Args:

other: 另一条直线
+

Returns:

是否共线
+
源代码
python
def is_collinear(self, other: 'Line3') -> bool:
+    """
+        判断两条直线是否共线。
+        Args:
+            other: 另一条直线
+        Returns:
+            是否共线
+        """
+    return self.is_parallel(other) and (self.point - other.point).is_parallel(self.direction)

def is_point_on(self, point: 'Point3') -> bool

 判断点是否在直线上。

Args:

point: 点
+

Returns:

是否在直线上
+
源代码
python
def is_point_on(self, point: 'Point3') -> bool:
+    """
+        判断点是否在直线上。
+        Args:
+            point: 点
+        Returns:
+            是否在直线上
+        """
+    return (point - self.point).is_parallel(self.direction)

def is_coplanar(self, other: 'Line3') -> bool

 判断两条直线是否共面。

充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。

Args:

other: 另一条直线
+

Returns:

是否共面
+
源代码
python
def is_coplanar(self, other: 'Line3') -> bool:
+    """
+        判断两条直线是否共面。
+        充要条件:两直线方向向量的叉乘与两直线上任意一点的向量的点积为0。
+        Args:
+            other: 另一条直线
+        Returns:
+            是否共面
+        """
+    return self.direction.cross(other.direction) @ (self.point - other.point) == 0

def simplify(self) -> None

 简化直线方程,等价相等。

自体简化,不返回值。

按照可行性一次对x y z 化 0 处理,并对向量单位化

源代码
python
def simplify(self):
+    """
+        简化直线方程,等价相等。
+        自体简化,不返回值。
+
+        按照可行性一次对x y z 化 0 处理,并对向量单位化
+        """
+    self.direction.normalize()
+    if self.direction.x == 0:
+        self.point.x = 0
+    if self.direction.y == 0:
+        self.point.y = 0
+    if self.direction.z == 0:
+        self.point.z = 0

@classmethod

def from_two_points(cls: Any, p1: 'Point3', p2: 'Point3') -> 'Line3'

 工厂函数 由两点构造直线。

Args:

p1: 点1
+
+p2: 点2
+

Returns:

直线
+
源代码
python
@classmethod
+def from_two_points(cls, p1: 'Point3', p2: 'Point3') -> 'Line3':
+    """
+        工厂函数 由两点构造直线。
+        Args:
+            p1: 点1
+            p2: 点2
+        Returns:
+            直线
+        """
+    direction = p2 - p1
+    return cls(p1, direction)

var direction = p2 - p1

var s = 'Line3: '

`,110),p=[l];function t(h,k,r,d,o,g){return a(),i("div",null,p)}const c=s(e,[["render",t]]);export{E as __pageData,c as default}; diff --git a/assets/api_mp_math_line.md.BybnyRUL.lean.js b/assets/api_mp_math_line.md.BybnyRUL.lean.js new file mode 100644 index 0000000..a5a9e33 --- /dev/null +++ b/assets/api_mp_math_line.md.BybnyRUL.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const E=JSON.parse('{"title":"mbcp.mp\\\\nmath.line","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.line","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/line.md","filePath":"api/mp_math/line.md"}'),e={name:"api/mp_math/line.md"},l=n("",110),p=[l];function t(h,k,r,d,o,g){return a(),i("div",null,p)}const c=s(e,[["render",t]]);export{E as __pageData,c as default}; diff --git a/assets/api_mp_math_mp_math_typing.md.DXaadYgy.js b/assets/api_mp_math_mp_math_typing.md.DXaadYgy.js new file mode 100644 index 0000000..3796359 --- /dev/null +++ b/assets/api_mp_math_mp_math_typing.md.DXaadYgy.js @@ -0,0 +1 @@ +import{_ as a,c as r,o as e,a2 as t}from"./chunks/framework.BV61Qrc0.js";const b=JSON.parse('{"title":"mbcp.mp\\\\nmath.mp\\\\nmath\\\\ntyping","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.mp\\\\nmath\\\\ntyping","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/mp_math_typing.md","filePath":"api/mp_math/mp_math_typing.md"}'),n={name:"api/mp_math/mp_math_typing.md"},o=t('

var SingleVar = TypeVar('SingleVar', bound=Number)

var ArrayVar = TypeVar('ArrayVar', bound=Iterable[Number])

',2),m=[o];function p(i,_,d,s,c,l){return e(),r("div",null,m)}const u=a(n,[["render",p]]);export{b as __pageData,u as default}; diff --git a/assets/api_mp_math_mp_math_typing.md.DXaadYgy.lean.js b/assets/api_mp_math_mp_math_typing.md.DXaadYgy.lean.js new file mode 100644 index 0000000..ff2adae --- /dev/null +++ b/assets/api_mp_math_mp_math_typing.md.DXaadYgy.lean.js @@ -0,0 +1 @@ +import{_ as a,c as r,o as e,a2 as t}from"./chunks/framework.BV61Qrc0.js";const b=JSON.parse('{"title":"mbcp.mp\\\\nmath.mp\\\\nmath\\\\ntyping","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.mp\\\\nmath\\\\ntyping","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/mp_math_typing.md","filePath":"api/mp_math/mp_math_typing.md"}'),n={name:"api/mp_math/mp_math_typing.md"},o=t("",2),m=[o];function p(i,_,d,s,c,l){return e(),r("div",null,m)}const u=a(n,[["render",p]]);export{b as __pageData,u as default}; diff --git a/assets/api_mp_math_plane.md.Cdj0PlKB.js b/assets/api_mp_math_plane.md.Cdj0PlKB.js new file mode 100644 index 0000000..cb489f6 --- /dev/null +++ b/assets/api_mp_math_plane.md.Cdj0PlKB.js @@ -0,0 +1,220 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const y=JSON.parse('{"title":"mbcp.mp\\\\nmath.plane","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.plane","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/plane.md","filePath":"api/mp_math/plane.md"}'),l={name:"api/mp_math/plane.md"},h=n(`

class Plane3

def __init__(self, a: float, b: float, c: float, d: float) -> None

 平面方程:ax + by + cz + d = 0

Args:

a:
+
+b:
+
+c:
+
+d:
+
源代码
python
def __init__(self, a: float, b: float, c: float, d: float):
+    """
+        平面方程:ax + by + cz + d = 0
+        Args:
+            a:
+            b:
+            c:
+            d:
+        """
+    self.a = a
+    self.b = b
+    self.c = c
+    self.d = d

def approx(self, other: 'Plane3', epsilon: float) -> bool

 判断两个平面是否近似相等。

Args:

other:
+
+epsilon:
+

Returns:

是否近似相等
+
源代码
python
def approx(self, other: 'Plane3', epsilon: float=APPROX) -> bool:
+    """
+        判断两个平面是否近似相等。
+        Args:
+            other:
+            epsilon:
+
+        Returns:
+            是否近似相等
+        """
+    if self.a != 0:
+        k = other.a / self.a
+        return approx(other.b, self.b * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
+    elif self.b != 0:
+        k = other.b / self.b
+        return approx(other.a, self.a * k) and approx(other.c, self.c * k) and approx(other.d, self.d * k)
+    elif self.c != 0:
+        k = other.c / self.c
+        return approx(other.a, self.a * k) and approx(other.b, self.b * k) and approx(other.d, self.d * k)
+    else:
+        return False

def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle'

 计算平面与平面之间的夹角。

Args:

other: 另一个平面
+

Returns:

夹角弧度
+

Raises:

TypeError: 不支持的类型
+
源代码
python
def cal_angle(self, other: 'Line3 | Plane3') -> 'AnyAngle':
+    """
+        计算平面与平面之间的夹角。
+        Args:
+            other: 另一个平面
+        Returns:
+            夹角弧度
+        Raises:
+            TypeError: 不支持的类型
+        """
+    if isinstance(other, Line3):
+        return self.normal.cal_angle(other.direction).complementary
+    elif isinstance(other, Plane3):
+        return AnyAngle(math.acos(self.normal @ other.normal / (self.normal.length * other.normal.length)), is_radian=True)
+    else:
+        raise TypeError(f'Unsupported type: {type(other)}')

def cal_distance(self, other: 'Plane3 | Point3') -> float

 计算平面与平面或点之间的距离。

Args:

other: 另一个平面或点
+

Returns:

距离
+

Raises:

TypeError: 不支持的类型
+
源代码
python
def cal_distance(self, other: 'Plane3 | Point3') -> float:
+    """
+        计算平面与平面或点之间的距离。
+        Args:
+            other: 另一个平面或点
+        Returns:
+            距离
+        Raises:
+            TypeError: 不支持的类型
+        """
+    if isinstance(other, Plane3):
+        return 0
+    elif isinstance(other, Point3):
+        return abs(self.a * other.x + self.b * other.y + self.c * other.z + self.d) / (self.a ** 2 + self.b ** 2 + self.c ** 2) ** 0.5
+    else:
+        raise TypeError(f'Unsupported type: {type(other)}')

def cal_intersection_line3(self, other: 'Plane3') -> 'Line3'

 计算两平面的交线。该方法有问题,待修复。

Args:

other: 另一个平面
+

Returns:

交线
+

Raises:

源代码
python
def cal_intersection_line3(self, other: 'Plane3') -> 'Line3':
+    """
+        计算两平面的交线。该方法有问题,待修复。
+        Args:
+            other: 另一个平面
+        Returns:
+            交线
+        Raises:
+        """
+    if self.normal.is_parallel(other.normal):
+        raise ValueError('Planes are parallel and have no intersection.')
+    direction = self.normal.cross(other.normal)
+    x, y, z = (0, 0, 0)
+    if self.a != 0 and other.a != 0:
+        A = np.array([[self.b, self.c], [other.b, other.c]])
+        B = np.array([-self.d, -other.d])
+        y, z = np.linalg.solve(A, B)
+    elif self.b != 0 and other.b != 0:
+        A = np.array([[self.a, self.c], [other.a, other.c]])
+        B = np.array([-self.d, -other.d])
+        x, z = np.linalg.solve(A, B)
+    elif self.c != 0 and other.c != 0:
+        A = np.array([[self.a, self.b], [other.a, other.b]])
+        B = np.array([-self.d, -other.d])
+        x, y = np.linalg.solve(A, B)
+    return Line3(Point3(x, y, z), direction)

def cal_intersection_point3(self, other: 'Line3') -> 'Point3'

 计算平面与直线的交点。

Args:

other: 不与平面平行或在平面上的直线
+

Returns:

交点
+

Raises:

ValueError: 平面与直线平行或重合
+
源代码
python
def cal_intersection_point3(self, other: 'Line3') -> 'Point3':
+    """
+        计算平面与直线的交点。
+        Args:
+            other: 不与平面平行或在平面上的直线
+        Returns:
+            交点
+        Raises:
+            ValueError: 平面与直线平行或重合
+        """
+    if self.normal @ other.direction == 0:
+        raise ValueError('The plane and the line are parallel or coincident.')
+    x, y, z = other.get_parametric_equations()
+    t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)
+    return Point3(x(t), y(t), z(t))

def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3'

 计算平行于该平面且过指定点的平面。

Args:

point: 指定点
+

Returns:

平面
+
源代码
python
def cal_parallel_plane3(self, point: 'Point3') -> 'Plane3':
+    """
+        计算平行于该平面且过指定点的平面。
+        Args:
+            point: 指定点
+        Returns:
+            平面
+        """
+    return Plane3.from_point_and_normal(point, self.normal)

def is_parallel(self, other: 'Plane3') -> bool

 判断两个平面是否平行。

Args:

other: 另一个平面
+

Returns:

是否平行
+
源代码
python
def is_parallel(self, other: 'Plane3') -> bool:
+    """
+        判断两个平面是否平行。
+        Args:
+            other: 另一个平面
+        Returns:
+            是否平行
+        """
+    return self.normal.is_parallel(other.normal)

@property

def normal(self: Any) -> 'Vector3'

 平面的法向量。

Returns:

法向量
+
源代码
python
@property
+def normal(self) -> 'Vector3':
+    """
+        平面的法向量。
+        Returns:
+            法向量
+        """
+    return Vector3(self.a, self.b, self.c)

@classmethod

def from_point_and_normal(cls: Any, point: 'Point3', normal: 'Vector3') -> 'Plane3'

 工厂函数 由点和法向量构造平面(点法式构造)。

Args:

point: 平面上的一点
+
+normal: 法向量
+

Returns:

平面
+
源代码
python
@classmethod
+def from_point_and_normal(cls, point: 'Point3', normal: 'Vector3') -> 'Plane3':
+    """
+        工厂函数 由点和法向量构造平面(点法式构造)。
+        Args:
+            point: 平面上的一点
+            normal: 法向量
+        Returns:
+            平面
+        """
+    a, b, c = (normal.x, normal.y, normal.z)
+    d = -a * point.x - b * point.y - c * point.z
+    return cls(a, b, c, d)

@classmethod

def from_three_points(cls: Any, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3'

 工厂函数 由三点构造平面。

Args:

p1: 点1
+
+p2: 点2
+
+p3: 点3
+

Returns:

平面
+
源代码
python
@classmethod
+def from_three_points(cls, p1: 'Point3', p2: 'Point3', p3: 'Point3') -> 'Plane3':
+    """
+        工厂函数 由三点构造平面。
+        Args:
+            p1: 点1
+            p2: 点2
+            p3: 点3
+        Returns:
+            平面
+        """
+    v1 = p2 - p1
+    v2 = p3 - p1
+    normal = v1.cross(v2)
+    return cls.from_point_and_normal(p1, normal)

@classmethod

def from_two_lines(cls: Any, l1: 'Line3', l2: 'Line3') -> 'Plane3'

 工厂函数 由两直线构造平面。

Args:

l1: 直线1
+
+l2: 直线2
+

Returns:

平面
+
源代码
python
@classmethod
+def from_two_lines(cls, l1: 'Line3', l2: 'Line3') -> 'Plane3':
+    """
+        工厂函数 由两直线构造平面。
+        Args:
+            l1: 直线1
+            l2: 直线2
+        Returns:
+            平面
+        """
+    v1 = l1.direction
+    v2 = l2.point - l1.point
+    if v2 == zero_vector3:
+        v2 = l2.get_point(1) - l1.point
+    return cls.from_point_and_normal(l1.point, v1.cross(v2))

@classmethod

def from_point_and_line(cls: Any, point: 'Point3', line: 'Line3') -> 'Plane3'

 工厂函数 由点和直线构造平面。

Args:

point: 面上一点
+
+line: 面上直线,不包含点
+

Returns:

平面
+
源代码
python
@classmethod
+def from_point_and_line(cls, point: 'Point3', line: 'Line3') -> 'Plane3':
+    """
+        工厂函数 由点和直线构造平面。
+        Args:
+            point: 面上一点
+            line: 面上直线,不包含点
+        Returns:
+            平面
+        """
+    return cls.from_point_and_normal(point, line.direction)

var direction = self.normal.cross(other.normal)

var t = -(self.a * other.point.x + self.b * other.point.y + self.c * other.point.z + self.d) / (self.a * other.direction.x + self.b * other.direction.y + self.c * other.direction.z)

var d = -a * point.x - b * point.y - c * point.z

var v1 = p2 - p1

var v2 = p3 - p1

var normal = v1.cross(v2)

var v1 = l1.direction

var v2 = l2.point - l1.point

var s = 'Plane3: '

var k = other.a / self.a

var A = np.array([[self.b, self.c], [other.b, other.c]])

var B = np.array([-self.d, -other.d])

var v2 = l2.get_point(1) - l1.point

var k = other.b / self.b

var A = np.array([[self.a, self.c], [other.a, other.c]])

var B = np.array([-self.d, -other.d])

var k = other.c / self.c

var A = np.array([[self.a, self.b], [other.a, other.b]])

var B = np.array([-self.d, -other.d])

`,119),t=[h];function e(p,k,r,d,o,E){return a(),i("div",null,t)}const F=s(l,[["render",e]]);export{y as __pageData,F as default}; diff --git a/assets/api_mp_math_plane.md.Cdj0PlKB.lean.js b/assets/api_mp_math_plane.md.Cdj0PlKB.lean.js new file mode 100644 index 0000000..ba3f172 --- /dev/null +++ b/assets/api_mp_math_plane.md.Cdj0PlKB.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const y=JSON.parse('{"title":"mbcp.mp\\\\nmath.plane","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.plane","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/plane.md","filePath":"api/mp_math/plane.md"}'),l={name:"api/mp_math/plane.md"},h=n("",119),t=[h];function e(p,k,r,d,o,E){return a(),i("div",null,t)}const F=s(l,[["render",e]]);export{y as __pageData,F as default}; diff --git a/assets/api_mp_math_point.md.D3f-vzVt.js b/assets/api_mp_math_point.md.D3f-vzVt.js new file mode 100644 index 0000000..5d4d56f --- /dev/null +++ b/assets/api_mp_math_point.md.D3f-vzVt.js @@ -0,0 +1,30 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const y=JSON.parse('{"title":"mbcp.mp\\\\nmath.point","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.point","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/point.md","filePath":"api/mp_math/point.md"}'),t={name:"api/mp_math/point.md"},l=n(`

class Point3

def __init__(self, x: float, y: float, z: float) -> None

 笛卡尔坐标系中的点。

Args:

x: x 坐标
+
+y: y 坐标
+
+z: z 坐标
+
源代码
python
def __init__(self, x: float, y: float, z: float):
+    """
+        笛卡尔坐标系中的点。
+        Args:
+            x: x 坐标
+            y: y 坐标
+            z: z 坐标
+        """
+    self.x = x
+    self.y = y
+    self.z = z

def approx(self, other: 'Point3', epsilon: float) -> bool

 判断两个点是否近似相等。

Args:

other:
+
+epsilon:
+

Returns:

是否近似相等
+
源代码
python
def approx(self, other: 'Point3', epsilon: float=APPROX) -> bool:
+    """
+        判断两个点是否近似相等。
+        Args:
+            other:
+            epsilon:
+
+        Returns:
+            是否近似相等
+        """
+    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])
`,13),p=[l];function h(e,k,o,r,d,E){return a(),i("div",null,p)}const F=s(t,[["render",h]]);export{y as __pageData,F as default}; diff --git a/assets/api_mp_math_point.md.D3f-vzVt.lean.js b/assets/api_mp_math_point.md.D3f-vzVt.lean.js new file mode 100644 index 0000000..af38377 --- /dev/null +++ b/assets/api_mp_math_point.md.D3f-vzVt.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const y=JSON.parse('{"title":"mbcp.mp\\\\nmath.point","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.point","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/point.md","filePath":"api/mp_math/point.md"}'),t={name:"api/mp_math/point.md"},l=n("",13),p=[l];function h(e,k,o,r,d,E){return a(),i("div",null,p)}const F=s(t,[["render",h]]);export{y as __pageData,F as default}; diff --git a/assets/api_mp_math_segment.md.DIViBThe.js b/assets/api_mp_math_segment.md.DIViBThe.js new file mode 100644 index 0000000..92632ee --- /dev/null +++ b/assets/api_mp_math_segment.md.DIViBThe.js @@ -0,0 +1,14 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const o=JSON.parse('{"title":"mbcp.mp\\\\nmath.segment","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.segment","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/segment.md","filePath":"api/mp_math/segment.md"}'),t={name:"api/mp_math/segment.md"},p=n(`

class Segment3

def __init__(self, p1: 'Point3', p2: 'Point3') -> None

 三维空间中的线段。

:param p1:

:param p2:

源代码
python
def __init__(self, p1: 'Point3', p2: 'Point3'):
+    """
+        三维空间中的线段。
+        :param p1:
+        :param p2:
+        """
+    self.p1 = p1
+    self.p2 = p2
+    '方向向量'
+    self.direction = self.p2 - self.p1
+    '长度'
+    self.length = self.direction.length
+    '中心点'
+    self.midpoint = Point3((self.p1.x + self.p2.x) / 2, (self.p1.y + self.p2.y) / 2, (self.p1.z + self.p2.z) / 2)
`,6),h=[p];function l(e,k,r,d,E,g){return a(),i("div",null,h)}const y=s(t,[["render",l]]);export{o as __pageData,y as default}; diff --git a/assets/api_mp_math_segment.md.DIViBThe.lean.js b/assets/api_mp_math_segment.md.DIViBThe.lean.js new file mode 100644 index 0000000..79b1fab --- /dev/null +++ b/assets/api_mp_math_segment.md.DIViBThe.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const o=JSON.parse('{"title":"mbcp.mp\\\\nmath.segment","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.segment","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/segment.md","filePath":"api/mp_math/segment.md"}'),t={name:"api/mp_math/segment.md"},p=n("",6),h=[p];function l(e,k,r,d,E,g){return a(),i("div",null,h)}const y=s(t,[["render",l]]);export{o as __pageData,y as default}; diff --git a/assets/api_mp_math_utils.md.CDwq4icO.js b/assets/api_mp_math_utils.md.CDwq4icO.js new file mode 100644 index 0000000..8bd265a --- /dev/null +++ b/assets/api_mp_math_utils.md.CDwq4icO.js @@ -0,0 +1,74 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const y=JSON.parse('{"title":"mbcp.mp\\\\nmath.utils","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.utils","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/utils.md","filePath":"api/mp_math/utils.md"}'),t={name:"api/mp_math/utils.md"},l=n(`

def clamp(x: float, min_: float, max_: float) -> float

区间截断函数。

Args:

x:
+
+min_:
+
+max_:
+

Returns:

限制后的值
+
源代码
python
def clamp(x: float, min_: float, max_: float) -> float:
+    """
+    区间截断函数。
+    Args:
+        x:
+        min_:
+        max_:
+
+    Returns:
+        限制后的值
+    """
+    return max(min(x, max_), min_)

def approx(x: float, y: float, epsilon: float) -> bool

判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。

Args:

x:
+
+y:
+
+epsilon:
+

Returns:

是否近似相等
+
源代码
python
def approx(x: float, y: float=0.0, epsilon: float=APPROX) -> bool:
+    """
+    判断两个数是否近似相等。或包装一个实数,用于判断是否近似于0。
+    Args:
+        x:
+        y:
+        epsilon:
+
+    Returns:
+        是否近似相等
+    """
+    return abs(x - y) < epsilon

def sign(x: float, only_neg: bool) -> str

获取数的符号。

Args:

x: 数
+
+only_neg: 是否只返回负数的符号
+

Returns:

符号 + - ""
+
源代码
python
def sign(x: float, only_neg: bool=False) -> str:
+    """获取数的符号。
+    Args:
+        x: 数
+        only_neg: 是否只返回负数的符号
+    Returns:
+        符号 + - ""
+    """
+    if x > 0:
+        return '+' if not only_neg else ''
+    elif x < 0:
+        return '-'
+    else:
+        return ''

def sign_format(x: float, only_neg: bool) -> str

格式化符号数

-1 -> -1

1 -> +1

0 -> ""

Args:

x: 数
+
+only_neg: 是否只返回负数的符号
+

Returns:

符号 + - ""
+
源代码
python
def sign_format(x: float, only_neg: bool=False) -> str:
+    """格式化符号数
+    -1 -> -1
+    1 -> +1
+    0 -> ""
+    Args:
+        x: 数
+        only_neg: 是否只返回负数的符号
+    Returns:
+        符号 + - ""
+    """
+    if x > 0:
+        return f'+{x}' if not only_neg else f'{x}'
+    elif x < 0:
+        return f'-{abs(x)}'
+    else:
+        return ''

class Approx

用于近似比较对象

已实现对象 实数 Vector3 Point3 Plane3 Line3

def __init__(self, value: RealNumber) -> None

源代码
python
def __init__(self, value: RealNumber):
+    self.value = value

def raise_type_error(self, other: Any) -> None

源代码
python
def raise_type_error(self, other):
+    raise TypeError(f'Unsupported type: {type(self.value)} and {type(other)}')
`,40),p=[l];function h(e,k,r,d,o,g){return a(),i("div",null,p)}const E=s(t,[["render",h]]);export{y as __pageData,E as default}; diff --git a/assets/api_mp_math_utils.md.CDwq4icO.lean.js b/assets/api_mp_math_utils.md.CDwq4icO.lean.js new file mode 100644 index 0000000..f89f56a --- /dev/null +++ b/assets/api_mp_math_utils.md.CDwq4icO.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const y=JSON.parse('{"title":"mbcp.mp\\\\nmath.utils","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.utils","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/utils.md","filePath":"api/mp_math/utils.md"}'),t={name:"api/mp_math/utils.md"},l=n("",40),p=[l];function h(e,k,r,d,o,g){return a(),i("div",null,p)}const E=s(t,[["render",h]]);export{y as __pageData,E as default}; diff --git a/assets/api_mp_math_vector.md.BgK1TmFY.js b/assets/api_mp_math_vector.md.BgK1TmFY.js new file mode 100644 index 0000000..a82fc7a --- /dev/null +++ b/assets/api_mp_math_vector.md.BgK1TmFY.js @@ -0,0 +1,116 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const y=JSON.parse('{"title":"mbcp.mp\\\\nmath.vector","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.vector","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/vector.md","filePath":"api/mp_math/vector.md"}'),e={name:"api/mp_math/vector.md"},t=n(`

class Vector3

def __init__(self, x: float, y: float, z: float) -> None

 3维向量

Args:

x: x轴分量
+
+y: y轴分量
+
+z: z轴分量
+
源代码
python
def __init__(self, x: float, y: float, z: float):
+    """
+        3维向量
+        Args:
+            x: x轴分量
+            y: y轴分量
+            z: z轴分量
+        """
+    self.x = x
+    self.y = y
+    self.z = z

def approx(self, other: 'Vector3', epsilon: float) -> bool

 判断两个向量是否近似相等。

Args:

other:
+
+epsilon:
+

Returns:

是否近似相等
+
源代码
python
def approx(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    """
+        判断两个向量是否近似相等。
+        Args:
+            other:
+            epsilon:
+
+        Returns:
+            是否近似相等
+        """
+    return all([abs(self.x - other.x) < epsilon, abs(self.y - other.y) < epsilon, abs(self.z - other.z) < epsilon])

def cal_angle(self, other: 'Vector3') -> 'AnyAngle'

 计算两个向量之间的夹角。

Args:

other: 另一个向量
+

Returns:

夹角
+
源代码
python
def cal_angle(self, other: 'Vector3') -> 'AnyAngle':
+    """
+        计算两个向量之间的夹角。
+        Args:
+            other: 另一个向量
+        Returns:
+            夹角
+        """
+    return AnyAngle(math.acos(self @ other / (self.length * other.length)), is_radian=True)

def cross(self, other: 'Vector3') -> 'Vector3'

 向量积 叉乘:v1 cross v2 -> v3

叉乘为0,则两向量平行。

其余结果的模为平行四边形的面积。

返回如下行列式的结果:

i j k

x1 y1 z1

x2 y2 z2

Args:

other:
+

Returns:

行列式的结果
+
源代码
python
def cross(self, other: 'Vector3') -> 'Vector3':
+    """
+        向量积 叉乘:v1 cross v2 -> v3
+
+        叉乘为0,则两向量平行。
+        其余结果的模为平行四边形的面积。
+
+        返回如下行列式的结果:
+
+        \`\`i  j  k\`\`
+
+        \`\`x1 y1 z1\`\`
+
+        \`\`x2 y2 z2\`\`
+
+        Args:
+            other:
+        Returns:
+            行列式的结果
+        """
+    return Vector3(self.y * other.z - self.z * other.y, self.z * other.x - self.x * other.z, self.x * other.y - self.y * other.x)

def is_approx_parallel(self, other: 'Vector3', epsilon: float) -> bool

 判断两个向量是否近似平行。

Args:

other: 另一个向量
+
+epsilon: 允许的误差
+

Returns:

是否近似平行
+
源代码
python
def is_approx_parallel(self, other: 'Vector3', epsilon: float=APPROX) -> bool:
+    """
+        判断两个向量是否近似平行。
+        Args:
+            other: 另一个向量
+            epsilon: 允许的误差
+        Returns:
+            是否近似平行
+        """
+    return self.cross(other).length < epsilon

def is_parallel(self, other: 'Vector3') -> bool

 判断两个向量是否平行。

Args:

other: 另一个向量
+

Returns:

是否平行
+
源代码
python
def is_parallel(self, other: 'Vector3') -> bool:
+    """
+        判断两个向量是否平行。
+        Args:
+            other: 另一个向量
+        Returns:
+            是否平行
+        """
+    return self.cross(other).approx(zero_vector3)

def normalize(self) -> None

 将向量归一化。

自体归一化,不返回值。

源代码
python
def normalize(self):
+    """
+        将向量归一化。
+
+        自体归一化,不返回值。
+        """
+    length = self.length
+    self.x /= length
+    self.y /= length
+    self.z /= length

@property

def np_array(self: Any) -> 'np.ndarray'

 返回numpy数组

Returns:

源代码
python
@property
+def np_array(self) -> 'np.ndarray':
+    """
+        返回numpy数组
+        Returns:
+        """
+    return np.array([self.x, self.y, self.z])

@property

def length(self: Any) -> float

 向量的模。

Returns:

模
+
源代码
python
@property
+def length(self) -> float:
+    """
+        向量的模。
+        Returns:
+
+        """
+    return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)

@property

def unit(self: Any) -> 'Vector3'

 获取该向量的单位向量。

Returns:

单位向量
+
源代码
python
@property
+def unit(self) -> 'Vector3':
+    """
+        获取该向量的单位向量。
+        Returns:
+            单位向量
+        """
+    return self / self.length

var zero_vector3 = Vector3(0, 0, 0)

var x_axis = Vector3(1, 0, 0)

var y_axis = Vector3(0, 1, 0)

var z_axis = Vector3(0, 0, 1)

var length = self.length

`,73),l=[t];function p(h,k,r,o,d,g){return a(),i("div",null,l)}const F=s(e,[["render",p]]);export{y as __pageData,F as default}; diff --git a/assets/api_mp_math_vector.md.BgK1TmFY.lean.js b/assets/api_mp_math_vector.md.BgK1TmFY.lean.js new file mode 100644 index 0000000..c02c385 --- /dev/null +++ b/assets/api_mp_math_vector.md.BgK1TmFY.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const y=JSON.parse('{"title":"mbcp.mp\\\\nmath.vector","description":"","frontmatter":{"title":"mbcp.mp\\\\nmath.vector","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/mp_math/vector.md","filePath":"api/mp_math/vector.md"}'),e={name:"api/mp_math/vector.md"},t=n("",73),l=[t];function p(h,k,r,o,d,g){return a(),i("div",null,l)}const F=s(e,[["render",p]]);export{y as __pageData,F as default}; diff --git a/assets/api_particle_index.md.BqH-w2FR.js b/assets/api_particle_index.md.BqH-w2FR.js new file mode 100644 index 0000000..46b9b1e --- /dev/null +++ b/assets/api_particle_index.md.BqH-w2FR.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a}from"./chunks/framework.BV61Qrc0.js";const m=JSON.parse('{"title":"mbcp.particle.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.particle.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/particle/index.md","filePath":"api/particle/index.md"}'),n={name:"api/particle/index.md"};function i(r,c,p,o,d,s){return a(),t("div")}const _=e(n,[["render",i]]);export{m as __pageData,_ as default}; diff --git a/assets/api_particle_index.md.BqH-w2FR.lean.js b/assets/api_particle_index.md.BqH-w2FR.lean.js new file mode 100644 index 0000000..46b9b1e --- /dev/null +++ b/assets/api_particle_index.md.BqH-w2FR.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a}from"./chunks/framework.BV61Qrc0.js";const m=JSON.parse('{"title":"mbcp.particle.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.particle.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/particle/index.md","filePath":"api/particle/index.md"}'),n={name:"api/particle/index.md"};function i(r,c,p,o,d,s){return a(),t("div")}const _=e(n,[["render",i]]);export{m as __pageData,_ as default}; diff --git a/assets/api_presets_index.md.CvgR5vOS.js b/assets/api_presets_index.md.CvgR5vOS.js new file mode 100644 index 0000000..4baa138 --- /dev/null +++ b/assets/api_presets_index.md.CvgR5vOS.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as n}from"./chunks/framework.BV61Qrc0.js";const _=JSON.parse('{"title":"mbcp.presets.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.presets.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/presets/index.md","filePath":"api/presets/index.md"}'),r={name:"api/presets/index.md"};function s(a,i,p,o,c,d){return n(),t("div")}const l=e(r,[["render",s]]);export{_ as __pageData,l as default}; diff --git a/assets/api_presets_index.md.CvgR5vOS.lean.js b/assets/api_presets_index.md.CvgR5vOS.lean.js new file mode 100644 index 0000000..4baa138 --- /dev/null +++ b/assets/api_presets_index.md.CvgR5vOS.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as n}from"./chunks/framework.BV61Qrc0.js";const _=JSON.parse('{"title":"mbcp.presets.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.presets.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/presets/index.md","filePath":"api/presets/index.md"}'),r={name:"api/presets/index.md"};function s(a,i,p,o,c,d){return n(),t("div")}const l=e(r,[["render",s]]);export{_ as __pageData,l as default}; diff --git a/assets/api_presets_model_index.md.D1iZ1qEr.js b/assets/api_presets_model_index.md.D1iZ1qEr.js new file mode 100644 index 0000000..b06171a --- /dev/null +++ b/assets/api_presets_model_index.md.D1iZ1qEr.js @@ -0,0 +1,43 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const o=JSON.parse('{"title":"mbcp.presets.model.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.presets.model.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/presets/model/index.md","filePath":"api/presets/model/index.md"}'),t={name:"api/presets/model/index.md"},h=n(`

def sphere(radius: float, density: float) -> None

生成球体上的点集。

Args:

radius:
+
+density:
+

Returns:

List[Point3]: 球体上的点集。
+
源代码
python
@staticmethod
+def sphere(radius: float, density: float):
+    """
+        生成球体上的点集。
+        Args:
+            radius:
+            density:
+        Returns:
+            List[Point3]: 球体上的点集。
+        """
+    area = 4 * np.pi * radius ** 2
+    num = int(area * density)
+    phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
+    theta_list = np.sqrt(num * np.pi) * phi_list
+    x_array = radius * np.sin(phi_list) * np.cos(theta_list)
+    y_array = radius * np.sin(phi_list) * np.sin(theta_list)
+    z_array = radius * np.cos(phi_list)
+    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

class GeometricModels

@staticmethod

def sphere(radius: float, density: float) -> None

 生成球体上的点集。

Args:

radius:
+
+density:
+

Returns:

List[Point3]: 球体上的点集。
+
源代码
python
@staticmethod
+def sphere(radius: float, density: float):
+    """
+        生成球体上的点集。
+        Args:
+            radius:
+            density:
+        Returns:
+            List[Point3]: 球体上的点集。
+        """
+    area = 4 * np.pi * radius ** 2
+    num = int(area * density)
+    phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])
+    theta_list = np.sqrt(num * np.pi) * phi_list
+    x_array = radius * np.sin(phi_list) * np.cos(theta_list)
+    y_array = radius * np.sin(phi_list) * np.sin(theta_list)
+    z_array = radius * np.cos(phi_list)
+    return [Point3(x_array[i], y_array[i], z_array[i]) for i in range(num)]

var area = 4 * np.pi * radius ** 2

var num = int(area * density)

var phi_list = np.arccos([clamp(-1 + (2.0 * _ - 1.0) / num, -1, 1) for _ in range(num)])

var theta_list = np.sqrt(num * np.pi) * phi_list

var x_array = radius * np.sin(phi_list) * np.cos(theta_list)

var y_array = radius * np.sin(phi_list) * np.sin(theta_list)

var z_array = radius * np.cos(phi_list)

`,23),p=[h];function l(k,e,r,d,E,y){return a(),i("div",null,p)}const c=s(t,[["render",l]]);export{o as __pageData,c as default}; diff --git a/assets/api_presets_model_index.md.D1iZ1qEr.lean.js b/assets/api_presets_model_index.md.D1iZ1qEr.lean.js new file mode 100644 index 0000000..472d2ee --- /dev/null +++ b/assets/api_presets_model_index.md.D1iZ1qEr.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const o=JSON.parse('{"title":"mbcp.presets.model.\\\\n\\\\ninit\\\\n\\\\n","description":"","frontmatter":{"title":"mbcp.presets.model.\\\\n\\\\ninit\\\\n\\\\n","order":1,"icon":"laptop-code","category":"API"},"headers":[],"relativePath":"api/presets/model/index.md","filePath":"api/presets/model/index.md"}'),t={name:"api/presets/model/index.md"},h=n("",23),p=[h];function l(k,e,r,d,E,y){return a(),i("div",null,p)}const c=s(t,[["render",l]]);export{o as __pageData,c as default}; diff --git a/assets/app.l1Ut0uce.js b/assets/app.l1Ut0uce.js new file mode 100644 index 0000000..96db258 --- /dev/null +++ b/assets/app.l1Ut0uce.js @@ -0,0 +1 @@ +import{t as i}from"./chunks/theme.BPuUWxkA.js";import{U as o,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,ac as y,d as P,u as v,y as C,x as b,ad as w,ae as E,af as R,ag as S}from"./chunks/framework.BV61Qrc0.js";function p(e){if(e.extends){const a=p(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=p(i),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return C(()=>{b(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&w(),E(),R(),s.setup&&s.setup(),()=>S(s.Layout)}});async function x(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function D(){return g(T)}function _(){let e=o,a;return A(t=>{let n=y(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&x().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{x as createApp}; diff --git a/assets/chunks/framework.BV61Qrc0.js b/assets/chunks/framework.BV61Qrc0.js new file mode 100644 index 0000000..ab3df33 --- /dev/null +++ b/assets/chunks/framework.BV61Qrc0.js @@ -0,0 +1,17 @@ +/** +* @vue/shared v3.4.38 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function us(e,t){const n=new Set(e.split(","));return s=>n.has(s)}const se={},mt=[],Ae=()=>{},ao=()=>!1,Vt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ds=e=>e.startsWith("onUpdate:"),le=Object.assign,hs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},fo=Object.prototype.hasOwnProperty,Y=(e,t)=>fo.call(e,t),V=Array.isArray,yt=e=>mn(e)==="[object Map]",Or=e=>mn(e)==="[object Set]",K=e=>typeof e=="function",ie=e=>typeof e=="string",Je=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Lr=e=>(Z(e)||K(e))&&K(e.then)&&K(e.catch),Ir=Object.prototype.toString,mn=e=>Ir.call(e),uo=e=>mn(e).slice(8,-1),Mr=e=>mn(e)==="[object Object]",ps=e=>ie(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,_t=us(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),yn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},ho=/-(\w)/g,Le=yn(e=>e.replace(ho,(t,n)=>n?n.toUpperCase():"")),po=/\B([A-Z])/g,Qe=yn(e=>e.replace(po,"-$1").toLowerCase()),_n=yn(e=>e.charAt(0).toUpperCase()+e.slice(1)),nn=yn(e=>e?`on${_n(e)}`:""),Xe=(e,t)=>!Object.is(e,t),Fn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},go=e=>{const t=parseFloat(e);return isNaN(t)?e:t},mo=e=>{const t=ie(e)?Number(e):NaN;return isNaN(t)?e:t};let js;const Nr=()=>js||(js=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function gs(e){if(V(e)){const t={};for(let n=0;n{if(n){const s=n.split(_o);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ms(e){let t="";if(ie(e))t=e;else if(V(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Co=e=>ie(e)?e:e==null?"":V(e)||Z(e)&&(e.toString===Ir||!K(e.toString))?Hr(e)?Co(e.value):JSON.stringify(e,$r,2):String(e),$r=(e,t)=>Hr(t)?$r(e,t.value):yt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[Hn(s,i)+" =>"]=r,n),{})}:Or(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Hn(n))}:Je(t)?Hn(t):Z(t)&&!V(t)&&!Mr(t)?String(t):t,Hn=(e,t="")=>{var n;return Je(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.38 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ee;class So{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Ee,!t&&Ee&&(this.index=(Ee.scopes||(Ee.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Ee;try{return Ee=this,t()}finally{Ee=n}}}on(){Ee=this}off(){Ee=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),et()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=qe,n=ct;try{return qe=!0,ct=this,this._runnings++,Ds(this),this.fn()}finally{Vs(this),this._runnings--,ct=n,qe=t}}stop(){this.active&&(Ds(this),Vs(this),this.onStop&&this.onStop(),this.active=!1)}}function Ao(e){return e.value}function Ds(e){e._trackId++,e._depsLength=0}function Vs(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},cn=new WeakMap,at=Symbol(""),ns=Symbol("");function ve(e,t,n){if(qe&&ct){let s=cn.get(e);s||cn.set(e,s=new Map);let r=s.get(n);r||s.set(n,r=kr(()=>s.delete(n))),Ur(ct,r)}}function $e(e,t,n,s,r,i){const o=cn.get(e);if(!o)return;let l=[];if(t==="clear")l=[...o.values()];else if(n==="length"&&V(e)){const c=Number(s);o.forEach((u,d)=>{(d==="length"||!Je(d)&&d>=c)&&l.push(u)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":V(e)?ps(n)&&l.push(o.get("length")):(l.push(o.get(at)),yt(e)&&l.push(o.get(ns)));break;case"delete":V(e)||(l.push(o.get(at)),yt(e)&&l.push(o.get(ns)));break;case"set":yt(e)&&l.push(o.get(at));break}_s();for(const c of l)c&&Br(c,4);bs()}function Ro(e,t){const n=cn.get(e);return n&&n.get(t)}const Oo=us("__proto__,__v_isRef,__isVue"),Kr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Je)),Us=Lo();function Lo(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=J(this);for(let i=0,o=this.length;i{e[t]=function(...n){Ze(),_s();const s=J(this)[t].apply(this,n);return bs(),et(),s}}),e}function Io(e){Je(e)||(e=String(e));const t=J(this);return ve(t,"has",e),t.hasOwnProperty(e)}class Wr{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?Ko:Xr:i?zr:Gr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=V(t);if(!r){if(o&&Y(Us,n))return Reflect.get(Us,n,s);if(n==="hasOwnProperty")return Io}const l=Reflect.get(t,n,s);return(Je(n)?Kr.has(n):Oo(n))||(r||ve(t,"get",n),i)?l:ge(l)?o&&ps(n)?l:l.value:Z(l)?r?wn(l):vn(l):l}}class qr extends Wr{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];if(!this._isShallow){const c=dt(i);if(!St(s)&&!dt(s)&&(i=J(i),s=J(s)),!V(t)&&ge(i)&&!ge(s))return c?!1:(i.value=s,!0)}const o=V(t)&&ps(n)?Number(n)e,bn=e=>Reflect.getPrototypeOf(e);function Kt(e,t,n=!1,s=!1){e=e.__v_raw;const r=J(e),i=J(t);n||(Xe(t,i)&&ve(r,"get",t),ve(r,"get",i));const{has:o}=bn(r),l=s?vs:n?Cs:Ft;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function Wt(e,t=!1){const n=this.__v_raw,s=J(n),r=J(e);return t||(Xe(e,r)&&ve(s,"has",e),ve(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function qt(e,t=!1){return e=e.__v_raw,!t&&ve(J(e),"iterate",at),Reflect.get(e,"size",e)}function Bs(e,t=!1){!t&&!St(e)&&!dt(e)&&(e=J(e));const n=J(this);return bn(n).has.call(n,e)||(n.add(e),$e(n,"add",e,e)),this}function ks(e,t,n=!1){!n&&!St(t)&&!dt(t)&&(t=J(t));const s=J(this),{has:r,get:i}=bn(s);let o=r.call(s,e);o||(e=J(e),o=r.call(s,e));const l=i.call(s,e);return s.set(e,t),o?Xe(t,l)&&$e(s,"set",e,t):$e(s,"add",e,t),this}function Ks(e){const t=J(this),{has:n,get:s}=bn(t);let r=n.call(t,e);r||(e=J(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&$e(t,"delete",e,void 0),i}function Ws(){const e=J(this),t=e.size!==0,n=e.clear();return t&&$e(e,"clear",void 0,void 0),n}function Gt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=J(o),c=t?vs:e?Cs:Ft;return!e&&ve(l,"iterate",at),o.forEach((u,d)=>s.call(r,c(u),c(d),i))}}function zt(e,t,n){return function(...s){const r=this.__v_raw,i=J(r),o=yt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,u=r[e](...s),d=n?vs:t?Cs:Ft;return!t&&ve(i,"iterate",c?ns:at),{next(){const{value:h,done:v}=u.next();return v?{value:h,done:v}:{value:l?[d(h[0]),d(h[1])]:d(h),done:v}},[Symbol.iterator](){return this}}}}function Ve(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ho(){const e={get(i){return Kt(this,i)},get size(){return qt(this)},has:Wt,add:Bs,set:ks,delete:Ks,clear:Ws,forEach:Gt(!1,!1)},t={get(i){return Kt(this,i,!1,!0)},get size(){return qt(this)},has:Wt,add(i){return Bs.call(this,i,!0)},set(i,o){return ks.call(this,i,o,!0)},delete:Ks,clear:Ws,forEach:Gt(!1,!0)},n={get(i){return Kt(this,i,!0)},get size(){return qt(this,!0)},has(i){return Wt.call(this,i,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Gt(!0,!1)},s={get(i){return Kt(this,i,!0,!0)},get size(){return qt(this,!0)},has(i){return Wt.call(this,i,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Gt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=zt(i,!1,!1),n[i]=zt(i,!0,!1),t[i]=zt(i,!1,!0),s[i]=zt(i,!0,!0)}),[e,n,t,s]}const[$o,jo,Do,Vo]=Ho();function ws(e,t){const n=t?e?Vo:Do:e?jo:$o;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(Y(n,r)&&r in s?n:s,r,i)}const Uo={get:ws(!1,!1)},Bo={get:ws(!1,!0)},ko={get:ws(!0,!1)};const Gr=new WeakMap,zr=new WeakMap,Xr=new WeakMap,Ko=new WeakMap;function Wo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function qo(e){return e.__v_skip||!Object.isExtensible(e)?0:Wo(uo(e))}function vn(e){return dt(e)?e:Es(e,!1,Po,Uo,Gr)}function Go(e){return Es(e,!1,Fo,Bo,zr)}function wn(e){return Es(e,!0,No,ko,Xr)}function Es(e,t,n,s,r){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=qo(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function bt(e){return dt(e)?bt(e.__v_raw):!!(e&&e.__v_isReactive)}function dt(e){return!!(e&&e.__v_isReadonly)}function St(e){return!!(e&&e.__v_isShallow)}function Yr(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function sn(e){return Object.isExtensible(e)&&Pr(e,"__v_skip",!0),e}const Ft=e=>Z(e)?vn(e):e,Cs=e=>Z(e)?wn(e):e;class Jr{constructor(t,n,s,r){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new ys(()=>t(this._value),()=>It(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&Xe(t._value,t._value=t.effect.run())&&It(t,4),Ss(t),t.effect._dirtyLevel>=2&&It(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function zo(e,t,n=!1){let s,r;const i=K(e);return i?(s=e,r=Ae):(s=e.get,r=e.set),new Jr(s,r,i||!r,n)}function Ss(e){var t;qe&&ct&&(e=J(e),Ur(ct,(t=e.dep)!=null?t:e.dep=kr(()=>e.dep=void 0,e instanceof Jr?e:void 0)))}function It(e,t=4,n,s){e=J(e);const r=e.dep;r&&Br(r,t)}function ge(e){return!!(e&&e.__v_isRef===!0)}function fe(e){return Zr(e,!1)}function Qr(e){return Zr(e,!0)}function Zr(e,t){return ge(e)?e:new Xo(e,t)}class Xo{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Ft(t)}get value(){return Ss(this),this._value}set value(t){const n=this.__v_isShallow||St(t)||dt(t);t=n?t:J(t),Xe(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Ft(t),It(this,4))}}function ei(e){return ge(e)?e.value:e}const Yo={get:(e,t,n)=>ei(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ge(r)&&!ge(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ti(e){return bt(e)?e:new Proxy(e,Yo)}class Jo{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>Ss(this),()=>It(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function Qo(e){return new Jo(e)}class Zo{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Ro(J(this._object),this._key)}}class el{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function tl(e,t,n){return ge(e)?e:K(e)?new el(e):Z(e)&&arguments.length>1?nl(e,t,n):fe(e)}function nl(e,t,n){const s=e[t];return ge(s)?s:new Zo(e,t,n)}/** +* @vue/runtime-core v3.4.38 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ge(e,t,n,s){try{return s?e(...s):e()}catch(r){En(r,t,n)}}function Re(e,t,n,s){if(K(e)){const r=Ge(e,t,n,s);return r&&Lr(r)&&r.catch(i=>{En(i,t,n)}),r}if(V(e)){const r=[];for(let i=0;i>>1,r=he[s],i=$t(r);iNe&&he.splice(t,1)}function ol(e){V(e)?vt.push(...e):(!ke||!ke.includes(e,e.allowRecurse?it+1:it))&&vt.push(e),si()}function qs(e,t,n=Ht?Ne+1:0){for(;n$t(n)-$t(s));if(vt.length=0,ke){ke.push(...t);return}for(ke=t,it=0;ite.id==null?1/0:e.id,ll=(e,t)=>{const n=$t(e)-$t(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function ri(e){ss=!1,Ht=!0,he.sort(ll);try{for(Ne=0;Ne{s._d&&sr(-1);const i=fn(t);let o;try{o=e(...r)}finally{fn(i),s._d&&sr(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function Pe(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o{e.isMounted=!0}),ui(()=>{e.isUnmounting=!0}),e}const Se=[Function,Array],ii={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Se,onEnter:Se,onAfterEnter:Se,onEnterCancelled:Se,onBeforeLeave:Se,onLeave:Se,onAfterLeave:Se,onLeaveCancelled:Se,onBeforeAppear:Se,onAppear:Se,onAfterAppear:Se,onAppearCancelled:Se},oi=e=>{const t=e.subTree;return t.component?oi(t.component):t},fl={name:"BaseTransition",props:ii,setup(e,{slots:t}){const n=Ln(),s=al();return()=>{const r=t.default&&ci(t.default(),!0);if(!r||!r.length)return;let i=r[0];if(r.length>1){for(const v of r)if(v.type!==ye){i=v;break}}const o=J(e),{mode:l}=o;if(s.isLeaving)return $n(i);const c=Gs(i);if(!c)return $n(i);let u=rs(c,o,s,n,v=>u=v);un(c,u);const d=n.subTree,h=d&&Gs(d);if(h&&h.type!==ye&&!lt(c,h)&&oi(n).type!==ye){const v=rs(h,o,s,n);if(un(h,v),l==="out-in"&&c.type!==ye)return s.isLeaving=!0,v.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},$n(i);l==="in-out"&&c.type!==ye&&(v.delayLeave=(T,N,P)=>{const W=li(s,h);W[String(h.key)]=h,T[Ke]=()=>{N(),T[Ke]=void 0,delete u.delayedLeave},u.delayedLeave=P})}return i}}},ul=fl;function li(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function rs(e,t,n,s,r){const{appear:i,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:d,onEnterCancelled:h,onBeforeLeave:v,onLeave:T,onAfterLeave:N,onLeaveCancelled:P,onBeforeAppear:W,onAppear:q,onAfterAppear:G,onAppearCancelled:p}=t,m=String(e.key),I=li(n,e),R=(O,_)=>{O&&Re(O,s,9,_)},U=(O,_)=>{const M=_[1];R(O,_),V(O)?O.every(E=>E.length<=1)&&M():O.length<=1&&M()},B={mode:o,persisted:l,beforeEnter(O){let _=c;if(!n.isMounted)if(i)_=W||c;else return;O[Ke]&&O[Ke](!0);const M=I[m];M&<(e,M)&&M.el[Ke]&&M.el[Ke](),R(_,[O])},enter(O){let _=u,M=d,E=h;if(!n.isMounted)if(i)_=q||u,M=G||d,E=p||h;else return;let D=!1;const ee=O[Xt]=ne=>{D||(D=!0,ne?R(E,[O]):R(M,[O]),B.delayedLeave&&B.delayedLeave(),O[Xt]=void 0)};_?U(_,[O,ee]):ee()},leave(O,_){const M=String(e.key);if(O[Xt]&&O[Xt](!0),n.isUnmounting)return _();R(v,[O]);let E=!1;const D=O[Ke]=ee=>{E||(E=!0,_(),ee?R(P,[O]):R(N,[O]),O[Ke]=void 0,I[M]===e&&delete I[M])};I[M]=e,T?U(T,[O,D]):D()},clone(O){const _=rs(O,t,n,s,r);return r&&r(_),_}};return B}function $n(e){if(xn(e))return e=Ye(e),e.children=null,e}function Gs(e){if(!xn(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&K(n.default))return n.default()}}function un(e,t){e.shapeFlag&6&&e.component?un(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ci(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader,xn=e=>e.type.__isKeepAlive;function dl(e,t){fi(e,"a",t)}function hl(e,t){fi(e,"da",t)}function fi(e,t,n=ae){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Tn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)xn(r.parent.vnode)&&pl(s,t,n,r),r=r.parent}}function pl(e,t,n,s){const r=Tn(t,e,s,!0);An(()=>{hs(s[t],r)},n)}function Tn(e,t,n=ae,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Ze();const l=Ut(n),c=Re(t,n,e,o);return l(),et(),c});return s?r.unshift(i):r.push(i),i}}const De=e=>(t,n=ae)=>{(!In||e==="sp")&&Tn(e,(...s)=>t(...s),n)},gl=De("bm"),Tt=De("m"),ml=De("bu"),yl=De("u"),ui=De("bum"),An=De("um"),_l=De("sp"),bl=De("rtg"),vl=De("rtc");function wl(e,t=ae){Tn("ec",e,t)}const di="components";function ka(e,t){return pi(di,e,!0,t)||e}const hi=Symbol.for("v-ndc");function Ka(e){return ie(e)?pi(di,e,!1)||e:e||hi}function pi(e,t,n=!0,s=!1){const r=pe||ae;if(r){const i=r.type;{const l=dc(i,!1);if(l&&(l===t||l===Le(t)||l===_n(Le(t))))return i}const o=zs(r[e]||i[e],t)||zs(r.appContext[e],t);return!o&&s?i:o}}function zs(e,t){return e&&(e[t]||e[Le(t)]||e[_n(Le(t))])}function Wa(e,t,n,s){let r;const i=n;if(V(e)||ie(e)){r=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,i));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;lpn(t)?!(t.type===ye||t.type===be&&!gi(t.children)):!0)?e:null}function Ga(e,t){const n={};for(const s in e)n[/[A-Z]/.test(s)?`on:${s}`:nn(s)]=e[s];return n}const is=e=>e?Vi(e)?Ls(e):is(e.parent):null,Mt=le(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>is(e.parent),$root:e=>is(e.root),$emit:e=>e.emit,$options:e=>As(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Ts(e.update)}),$nextTick:e=>e.n||(e.n=Cn.bind(e.proxy)),$watch:e=>zl.bind(e)}),jn=(e,t)=>e!==se&&!e.__isScriptSetup&&Y(e,t),El={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const T=o[t];if(T!==void 0)switch(T){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(jn(s,t))return o[t]=1,s[t];if(r!==se&&Y(r,t))return o[t]=2,r[t];if((u=e.propsOptions[0])&&Y(u,t))return o[t]=3,i[t];if(n!==se&&Y(n,t))return o[t]=4,n[t];os&&(o[t]=0)}}const d=Mt[t];let h,v;if(d)return t==="$attrs"&&ve(e.attrs,"get",""),d(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==se&&Y(n,t))return o[t]=4,n[t];if(v=c.config.globalProperties,Y(v,t))return v[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return jn(r,t)?(r[t]=n,!0):s!==se&&Y(s,t)?(s[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==se&&Y(e,o)||jn(t,o)||(l=i[0])&&Y(l,o)||Y(s,o)||Y(Mt,o)||Y(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function za(){return Cl().slots}function Cl(){const e=Ln();return e.setupContext||(e.setupContext=Bi(e))}function Xs(e){return V(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let os=!0;function Sl(e){const t=As(e),n=e.proxy,s=e.ctx;os=!1,t.beforeCreate&&Ys(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:u,created:d,beforeMount:h,mounted:v,beforeUpdate:T,updated:N,activated:P,deactivated:W,beforeDestroy:q,beforeUnmount:G,destroyed:p,unmounted:m,render:I,renderTracked:R,renderTriggered:U,errorCaptured:B,serverPrefetch:O,expose:_,inheritAttrs:M,components:E,directives:D,filters:ee}=t;if(u&&xl(u,s,null),o)for(const X in o){const j=o[X];K(j)&&(s[X]=j.bind(n))}if(r){const X=r.call(n,n);Z(X)&&(e.data=vn(X))}if(os=!0,i)for(const X in i){const j=i[X],ce=K(j)?j.bind(n,n):K(j.get)?j.get.bind(n,n):Ae,Bt=!K(j)&&K(j.set)?j.set.bind(n):Ae,tt=re({get:ce,set:Bt});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>tt.value,set:Ie=>tt.value=Ie})}if(l)for(const X in l)mi(l[X],s,n,X);if(c){const X=K(c)?c.call(n):c;Reflect.ownKeys(X).forEach(j=>{Il(j,X[j])})}d&&Ys(d,e,"c");function $(X,j){V(j)?j.forEach(ce=>X(ce.bind(n))):j&&X(j.bind(n))}if($(gl,h),$(Tt,v),$(ml,T),$(yl,N),$(dl,P),$(hl,W),$(wl,B),$(vl,R),$(bl,U),$(ui,G),$(An,m),$(_l,O),V(_))if(_.length){const X=e.exposed||(e.exposed={});_.forEach(j=>{Object.defineProperty(X,j,{get:()=>n[j],set:ce=>n[j]=ce})})}else e.exposed||(e.exposed={});I&&e.render===Ae&&(e.render=I),M!=null&&(e.inheritAttrs=M),E&&(e.components=E),D&&(e.directives=D)}function xl(e,t,n=Ae){V(e)&&(e=ls(e));for(const s in e){const r=e[s];let i;Z(r)?"default"in r?i=Ct(r.from||s,r.default,!0):i=Ct(r.from||s):i=Ct(r),ge(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function Ys(e,t,n){Re(V(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function mi(e,t,n,s){const r=s.includes(".")?Ii(n,s):()=>n[s];if(ie(e)){const i=t[e];K(i)&&Fe(r,i)}else if(K(e))Fe(r,e.bind(n));else if(Z(e))if(V(e))e.forEach(i=>mi(i,t,n,s));else{const i=K(e.handler)?e.handler.bind(n):t[e.handler];K(i)&&Fe(r,i,e)}}function As(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(u=>dn(c,u,o,!0)),dn(c,t,o)),Z(t)&&i.set(t,c),c}function dn(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&dn(e,i,n,!0),r&&r.forEach(o=>dn(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Tl[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Tl={data:Js,props:Qs,emits:Qs,methods:Lt,computed:Lt,beforeCreate:me,created:me,beforeMount:me,mounted:me,beforeUpdate:me,updated:me,beforeDestroy:me,beforeUnmount:me,destroyed:me,unmounted:me,activated:me,deactivated:me,errorCaptured:me,serverPrefetch:me,components:Lt,directives:Lt,watch:Rl,provide:Js,inject:Al};function Js(e,t){return t?e?function(){return le(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function Al(e,t){return Lt(ls(e),ls(t))}function ls(e){if(V(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(s&&s.proxy):t}}const _i={},bi=()=>Object.create(_i),vi=e=>Object.getPrototypeOf(e)===_i;function Ml(e,t,n,s=!1){const r={},i=bi();e.propsDefaults=Object.create(null),wi(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Go(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Pl(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=J(r),[c]=e.propsOptions;let u=!1;if((s||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[v,T]=Ei(h,t,!0);le(o,v),T&&l.push(...T)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return Z(e)&&s.set(e,mt),mt;if(V(i))for(let d=0;de[0]==="_"||e==="$stable",Rs=e=>V(e)?e.map(Te):[Te(e)],Fl=(e,t,n)=>{if(t._n)return t;const s=cl((...r)=>Rs(t(...r)),n);return s._c=!1,s},Si=(e,t,n)=>{const s=e._ctx;for(const r in e){if(Ci(r))continue;const i=e[r];if(K(i))t[r]=Fl(r,i,s);else if(i!=null){const o=Rs(i);t[r]=()=>o}}},xi=(e,t)=>{const n=Rs(t);e.slots.default=()=>n},Ti=(e,t,n)=>{for(const s in t)(n||s!=="_")&&(e[s]=t[s])},Hl=(e,t,n)=>{const s=e.slots=bi();if(e.vnode.shapeFlag&32){const r=t._;r?(Ti(s,t,n),n&&Pr(s,"_",r,!0)):Si(t,s)}else t&&xi(e,t)},$l=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=se;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:Ti(r,t,n):(i=!t.$stable,Si(t,r)),o=t}else t&&(xi(e,t),o={default:1});if(i)for(const l in r)!Ci(l)&&o[l]==null&&delete r[l]};function hn(e,t,n,s,r=!1){if(V(e)){e.forEach((v,T)=>hn(v,t&&(V(t)?t[T]:t),n,s,r));return}if(wt(s)&&!r)return;const i=s.shapeFlag&4?Ls(s.component):s.el,o=r?null:i,{i:l,r:c}=e,u=t&&t.r,d=l.refs===se?l.refs={}:l.refs,h=l.setupState;if(u!=null&&u!==c&&(ie(u)?(d[u]=null,Y(h,u)&&(h[u]=null)):ge(u)&&(u.value=null)),K(c))Ge(c,l,12,[o,d]);else{const v=ie(c),T=ge(c);if(v||T){const N=()=>{if(e.f){const P=v?Y(h,c)?h[c]:d[c]:c.value;r?V(P)&&hs(P,i):V(P)?P.includes(i)||P.push(i):v?(d[c]=[i],Y(h,c)&&(h[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else v?(d[c]=o,Y(h,c)&&(h[c]=o)):T&&(c.value=o,e.k&&(d[e.k]=o))};o?(N.id=-1,_e(N,n)):N()}}}const jl=Symbol("_vte"),Dl=e=>e.__isTeleport;let er=!1;const gt=()=>{er||(console.error("Hydration completed but contains mismatches."),er=!0)},Vl=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Ul=e=>e.namespaceURI.includes("MathML"),Yt=e=>{if(Vl(e))return"svg";if(Ul(e))return"mathml"},Jt=e=>e.nodeType===8;function Bl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:u}}=e,d=(p,m)=>{if(!m.hasChildNodes()){n(null,p,m),an(),m._vnode=p;return}h(m.firstChild,p,null,null,null),an(),m._vnode=p},h=(p,m,I,R,U,B=!1)=>{B=B||!!m.dynamicChildren;const O=Jt(p)&&p.data==="[",_=()=>P(p,m,I,R,U,O),{type:M,ref:E,shapeFlag:D,patchFlag:ee}=m;let ne=p.nodeType;m.el=p,ee===-2&&(B=!1,m.dynamicChildren=null);let $=null;switch(M){case ft:ne!==3?m.children===""?(c(m.el=r(""),o(p),p),$=p):$=_():(p.data!==m.children&&(gt(),p.data=m.children),$=i(p));break;case ye:G(p)?($=i(p),q(m.el=p.content.firstChild,p,I)):ne!==8||O?$=_():$=i(p);break;case Pt:if(O&&(p=i(p),ne=p.nodeType),ne===1||ne===3){$=p;const X=!m.children.length;for(let j=0;j{B=B||!!m.dynamicChildren;const{type:O,props:_,patchFlag:M,shapeFlag:E,dirs:D,transition:ee}=m,ne=O==="input"||O==="option";if(ne||M!==-1){D&&Pe(m,null,I,"created");let $=!1;if(G(p)){$=Ai(R,ee)&&I&&I.vnode.props&&I.vnode.props.appear;const j=p.content.firstChild;$&&ee.beforeEnter(j),q(j,p,I),m.el=p=j}if(E&16&&!(_&&(_.innerHTML||_.textContent))){let j=T(p.firstChild,m,p,I,R,U,B);for(;j;){gt();const ce=j;j=j.nextSibling,l(ce)}}else E&8&&p.textContent!==m.children&&(gt(),p.textContent=m.children);if(_){if(ne||!B||M&48){const j=p.tagName.includes("-");for(const ce in _)(ne&&(ce.endsWith("value")||ce==="indeterminate")||Vt(ce)&&!_t(ce)||ce[0]==="."||j)&&s(p,ce,null,_[ce],void 0,I)}else if(_.onClick)s(p,"onClick",null,_.onClick,void 0,I);else if(M&4&&bt(_.style))for(const j in _.style)_.style[j]}let X;(X=_&&_.onVnodeBeforeMount)&&xe(X,I,m),D&&Pe(m,null,I,"beforeMount"),((X=_&&_.onVnodeMounted)||D||$)&&Pi(()=>{X&&xe(X,I,m),$&&ee.enter(p),D&&Pe(m,null,I,"mounted")},R)}return p.nextSibling},T=(p,m,I,R,U,B,O)=>{O=O||!!m.dynamicChildren;const _=m.children,M=_.length;for(let E=0;E{const{slotScopeIds:O}=m;O&&(U=U?U.concat(O):O);const _=o(p),M=T(i(p),m,_,I,R,U,B);return M&&Jt(M)&&M.data==="]"?i(m.anchor=M):(gt(),c(m.anchor=u("]"),_,M),M)},P=(p,m,I,R,U,B)=>{if(gt(),m.el=null,B){const M=W(p);for(;;){const E=i(p);if(E&&E!==M)l(E);else break}}const O=i(p),_=o(p);return l(p),n(null,m,_,O,I,R,Yt(_),U),O},W=(p,m="[",I="]")=>{let R=0;for(;p;)if(p=i(p),p&&Jt(p)&&(p.data===m&&R++,p.data===I)){if(R===0)return i(p);R--}return p},q=(p,m,I)=>{const R=m.parentNode;R&&R.replaceChild(p,m);let U=I;for(;U;)U.vnode.el===m&&(U.vnode.el=U.subTree.el=p),U=U.parent},G=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[d,h]}const _e=Pi;function kl(e){return Kl(e,Bl)}function Kl(e,t){const n=Nr();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:u,setElementText:d,parentNode:h,nextSibling:v,setScopeId:T=Ae,insertStaticContent:N}=e,P=(a,f,g,w=null,y=null,C=null,A=void 0,S=null,x=!!f.dynamicChildren)=>{if(a===f)return;a&&!lt(a,f)&&(w=kt(a),Ie(a,y,C,!0),a=null),f.patchFlag===-2&&(x=!1,f.dynamicChildren=null);const{type:b,ref:L,shapeFlag:H}=f;switch(b){case ft:W(a,f,g,w);break;case ye:q(a,f,g,w);break;case Pt:a==null&&G(f,g,w,A);break;case be:E(a,f,g,w,y,C,A,S,x);break;default:H&1?I(a,f,g,w,y,C,A,S,x):H&6?D(a,f,g,w,y,C,A,S,x):(H&64||H&128)&&b.process(a,f,g,w,y,C,A,S,x,ht)}L!=null&&y&&hn(L,a&&a.ref,C,f||a,!f)},W=(a,f,g,w)=>{if(a==null)s(f.el=l(f.children),g,w);else{const y=f.el=a.el;f.children!==a.children&&u(y,f.children)}},q=(a,f,g,w)=>{a==null?s(f.el=c(f.children||""),g,w):f.el=a.el},G=(a,f,g,w)=>{[a.el,a.anchor]=N(a.children,f,g,w,a.el,a.anchor)},p=({el:a,anchor:f},g,w)=>{let y;for(;a&&a!==f;)y=v(a),s(a,g,w),a=y;s(f,g,w)},m=({el:a,anchor:f})=>{let g;for(;a&&a!==f;)g=v(a),r(a),a=g;r(f)},I=(a,f,g,w,y,C,A,S,x)=>{f.type==="svg"?A="svg":f.type==="math"&&(A="mathml"),a==null?R(f,g,w,y,C,A,S,x):O(a,f,y,C,A,S,x)},R=(a,f,g,w,y,C,A,S)=>{let x,b;const{props:L,shapeFlag:H,transition:F,dirs:k}=a;if(x=a.el=o(a.type,C,L&&L.is,L),H&8?d(x,a.children):H&16&&B(a.children,x,null,w,y,Dn(a,C),A,S),k&&Pe(a,null,w,"created"),U(x,a,a.scopeId,A,w),L){for(const te in L)te!=="value"&&!_t(te)&&i(x,te,null,L[te],C,w);"value"in L&&i(x,"value",null,L.value,C),(b=L.onVnodeBeforeMount)&&xe(b,w,a)}k&&Pe(a,null,w,"beforeMount");const z=Ai(y,F);z&&F.beforeEnter(x),s(x,f,g),((b=L&&L.onVnodeMounted)||z||k)&&_e(()=>{b&&xe(b,w,a),z&&F.enter(x),k&&Pe(a,null,w,"mounted")},y)},U=(a,f,g,w,y)=>{if(g&&T(a,g),w)for(let C=0;C{for(let b=x;b{const S=f.el=a.el;let{patchFlag:x,dynamicChildren:b,dirs:L}=f;x|=a.patchFlag&16;const H=a.props||se,F=f.props||se;let k;if(g&&nt(g,!1),(k=F.onVnodeBeforeUpdate)&&xe(k,g,f,a),L&&Pe(f,a,g,"beforeUpdate"),g&&nt(g,!0),(H.innerHTML&&F.innerHTML==null||H.textContent&&F.textContent==null)&&d(S,""),b?_(a.dynamicChildren,b,S,g,w,Dn(f,y),C):A||j(a,f,S,null,g,w,Dn(f,y),C,!1),x>0){if(x&16)M(S,H,F,g,y);else if(x&2&&H.class!==F.class&&i(S,"class",null,F.class,y),x&4&&i(S,"style",H.style,F.style,y),x&8){const z=f.dynamicProps;for(let te=0;te{k&&xe(k,g,f,a),L&&Pe(f,a,g,"updated")},w)},_=(a,f,g,w,y,C,A)=>{for(let S=0;S{if(f!==g){if(f!==se)for(const C in f)!_t(C)&&!(C in g)&&i(a,C,f[C],null,y,w);for(const C in g){if(_t(C))continue;const A=g[C],S=f[C];A!==S&&C!=="value"&&i(a,C,S,A,y,w)}"value"in g&&i(a,"value",f.value,g.value,y)}},E=(a,f,g,w,y,C,A,S,x)=>{const b=f.el=a?a.el:l(""),L=f.anchor=a?a.anchor:l("");let{patchFlag:H,dynamicChildren:F,slotScopeIds:k}=f;k&&(S=S?S.concat(k):k),a==null?(s(b,g,w),s(L,g,w),B(f.children||[],g,L,y,C,A,S,x)):H>0&&H&64&&F&&a.dynamicChildren?(_(a.dynamicChildren,F,g,y,C,A,S),(f.key!=null||y&&f===y.subTree)&&Ri(a,f,!0)):j(a,f,g,L,y,C,A,S,x)},D=(a,f,g,w,y,C,A,S,x)=>{f.slotScopeIds=S,a==null?f.shapeFlag&512?y.ctx.activate(f,g,w,A,x):ee(f,g,w,y,C,A,x):ne(a,f,x)},ee=(a,f,g,w,y,C,A)=>{const S=a.component=cc(a,w,y);if(xn(a)&&(S.ctx.renderer=ht),ac(S,!1,A),S.asyncDep){if(y&&y.registerDep(S,$,A),!a.el){const x=S.subTree=ue(ye);q(null,x,f,g)}}else $(S,a,f,g,y,C,A)},ne=(a,f,g)=>{const w=f.component=a.component;if(Zl(a,f,g))if(w.asyncDep&&!w.asyncResolved){X(w,f,g);return}else w.next=f,il(w.update),w.effect.dirty=!0,w.update();else f.el=a.el,w.vnode=f},$=(a,f,g,w,y,C,A)=>{const S=()=>{if(a.isMounted){let{next:L,bu:H,u:F,parent:k,vnode:z}=a;{const pt=Oi(a);if(pt){L&&(L.el=z.el,X(a,L,A)),pt.asyncDep.then(()=>{a.isUnmounted||S()});return}}let te=L,Q;nt(a,!1),L?(L.el=z.el,X(a,L,A)):L=z,H&&Fn(H),(Q=L.props&&L.props.onVnodeBeforeUpdate)&&xe(Q,k,L,z),nt(a,!0);const oe=Vn(a),Oe=a.subTree;a.subTree=oe,P(Oe,oe,h(Oe.el),kt(Oe),a,y,C),L.el=oe.el,te===null&&ec(a,oe.el),F&&_e(F,y),(Q=L.props&&L.props.onVnodeUpdated)&&_e(()=>xe(Q,k,L,z),y)}else{let L;const{el:H,props:F}=f,{bm:k,m:z,parent:te}=a,Q=wt(f);if(nt(a,!1),k&&Fn(k),!Q&&(L=F&&F.onVnodeBeforeMount)&&xe(L,te,f),nt(a,!0),H&&Nn){const oe=()=>{a.subTree=Vn(a),Nn(H,a.subTree,a,y,null)};Q?f.type.__asyncLoader().then(()=>!a.isUnmounted&&oe()):oe()}else{const oe=a.subTree=Vn(a);P(null,oe,g,w,a,y,C),f.el=oe.el}if(z&&_e(z,y),!Q&&(L=F&&F.onVnodeMounted)){const oe=f;_e(()=>xe(L,te,oe),y)}(f.shapeFlag&256||te&&wt(te.vnode)&&te.vnode.shapeFlag&256)&&a.a&&_e(a.a,y),a.isMounted=!0,f=g=w=null}},x=a.effect=new ys(S,Ae,()=>Ts(b),a.scope),b=a.update=()=>{x.dirty&&x.run()};b.i=a,b.id=a.uid,nt(a,!0),b()},X=(a,f,g)=>{f.component=a;const w=a.vnode.props;a.vnode=f,a.next=null,Pl(a,f.props,w,g),$l(a,f.children,g),Ze(),qs(a),et()},j=(a,f,g,w,y,C,A,S,x=!1)=>{const b=a&&a.children,L=a?a.shapeFlag:0,H=f.children,{patchFlag:F,shapeFlag:k}=f;if(F>0){if(F&128){Bt(b,H,g,w,y,C,A,S,x);return}else if(F&256){ce(b,H,g,w,y,C,A,S,x);return}}k&8?(L&16&&At(b,y,C),H!==b&&d(g,H)):L&16?k&16?Bt(b,H,g,w,y,C,A,S,x):At(b,y,C,!0):(L&8&&d(g,""),k&16&&B(H,g,w,y,C,A,S,x))},ce=(a,f,g,w,y,C,A,S,x)=>{a=a||mt,f=f||mt;const b=a.length,L=f.length,H=Math.min(b,L);let F;for(F=0;FL?At(a,y,C,!0,!1,H):B(f,g,w,y,C,A,S,x,H)},Bt=(a,f,g,w,y,C,A,S,x)=>{let b=0;const L=f.length;let H=a.length-1,F=L-1;for(;b<=H&&b<=F;){const k=a[b],z=f[b]=x?We(f[b]):Te(f[b]);if(lt(k,z))P(k,z,g,null,y,C,A,S,x);else break;b++}for(;b<=H&&b<=F;){const k=a[H],z=f[F]=x?We(f[F]):Te(f[F]);if(lt(k,z))P(k,z,g,null,y,C,A,S,x);else break;H--,F--}if(b>H){if(b<=F){const k=F+1,z=kF)for(;b<=H;)Ie(a[b],y,C,!0),b++;else{const k=b,z=b,te=new Map;for(b=z;b<=F;b++){const we=f[b]=x?We(f[b]):Te(f[b]);we.key!=null&&te.set(we.key,b)}let Q,oe=0;const Oe=F-z+1;let pt=!1,Fs=0;const Rt=new Array(Oe);for(b=0;b=Oe){Ie(we,y,C,!0);continue}let Me;if(we.key!=null)Me=te.get(we.key);else for(Q=z;Q<=F;Q++)if(Rt[Q-z]===0&<(we,f[Q])){Me=Q;break}Me===void 0?Ie(we,y,C,!0):(Rt[Me-z]=b+1,Me>=Fs?Fs=Me:pt=!0,P(we,f[Me],g,null,y,C,A,S,x),oe++)}const Hs=pt?Wl(Rt):mt;for(Q=Hs.length-1,b=Oe-1;b>=0;b--){const we=z+b,Me=f[we],$s=we+1{const{el:C,type:A,transition:S,children:x,shapeFlag:b}=a;if(b&6){tt(a.component.subTree,f,g,w);return}if(b&128){a.suspense.move(f,g,w);return}if(b&64){A.move(a,f,g,ht);return}if(A===be){s(C,f,g);for(let H=0;HS.enter(C),y);else{const{leave:H,delayLeave:F,afterLeave:k}=S,z=()=>s(C,f,g),te=()=>{H(C,()=>{z(),k&&k()})};F?F(C,z,te):te()}else s(C,f,g)},Ie=(a,f,g,w=!1,y=!1)=>{const{type:C,props:A,ref:S,children:x,dynamicChildren:b,shapeFlag:L,patchFlag:H,dirs:F,cacheIndex:k}=a;if(H===-2&&(y=!1),S!=null&&hn(S,null,g,a,!0),k!=null&&(f.renderCache[k]=void 0),L&256){f.ctx.deactivate(a);return}const z=L&1&&F,te=!wt(a);let Q;if(te&&(Q=A&&A.onVnodeBeforeUnmount)&&xe(Q,f,a),L&6)co(a.component,g,w);else{if(L&128){a.suspense.unmount(g,w);return}z&&Pe(a,null,f,"beforeUnmount"),L&64?a.type.remove(a,f,g,ht,w):b&&!b.hasOnce&&(C!==be||H>0&&H&64)?At(b,f,g,!1,!0):(C===be&&H&384||!y&&L&16)&&At(x,f,g),w&&Ps(a)}(te&&(Q=A&&A.onVnodeUnmounted)||z)&&_e(()=>{Q&&xe(Q,f,a),z&&Pe(a,null,f,"unmounted")},g)},Ps=a=>{const{type:f,el:g,anchor:w,transition:y}=a;if(f===be){lo(g,w);return}if(f===Pt){m(a);return}const C=()=>{r(g),y&&!y.persisted&&y.afterLeave&&y.afterLeave()};if(a.shapeFlag&1&&y&&!y.persisted){const{leave:A,delayLeave:S}=y,x=()=>A(g,C);S?S(a.el,C,x):x()}else C()},lo=(a,f)=>{let g;for(;a!==f;)g=v(a),r(a),a=g;r(f)},co=(a,f,g)=>{const{bum:w,scope:y,update:C,subTree:A,um:S,m:x,a:b}=a;tr(x),tr(b),w&&Fn(w),y.stop(),C&&(C.active=!1,Ie(A,a,f,g)),S&&_e(S,f),_e(()=>{a.isUnmounted=!0},f),f&&f.pendingBranch&&!f.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===f.pendingId&&(f.deps--,f.deps===0&&f.resolve())},At=(a,f,g,w=!1,y=!1,C=0)=>{for(let A=C;A{if(a.shapeFlag&6)return kt(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const f=v(a.anchor||a.el),g=f&&f[jl];return g?v(g):f};let Mn=!1;const Ns=(a,f,g)=>{a==null?f._vnode&&Ie(f._vnode,null,null,!0):P(f._vnode||null,a,f,null,null,null,g),f._vnode=a,Mn||(Mn=!0,qs(),an(),Mn=!1)},ht={p:P,um:Ie,m:tt,r:Ps,mt:ee,mc:B,pc:j,pbc:_,n:kt,o:e};let Pn,Nn;return t&&([Pn,Nn]=t(ht)),{render:Ns,hydrate:Pn,createApp:Ll(Ns,Pn)}}function Dn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function nt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ai(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ri(e,t,n=!1){const s=e.children,r=t.children;if(V(s)&&V(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function Oi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Oi(t)}function tr(e){if(e)for(let t=0;tCt(ql);function Li(e,t){return Rn(e,null,t)}function Xa(e,t){return Rn(e,null,{flush:"post"})}const Qt={};function Fe(e,t,n){return Rn(e,t,n)}function Rn(e,t,{immediate:n,deep:s,flush:r,once:i,onTrack:o,onTrigger:l}=se){if(t&&i){const R=t;t=(...U)=>{R(...U),I()}}const c=ae,u=R=>s===!0?R:ot(R,s===!1?1:void 0);let d,h=!1,v=!1;if(ge(e)?(d=()=>e.value,h=St(e)):bt(e)?(d=()=>u(e),h=!0):V(e)?(v=!0,h=e.some(R=>bt(R)||St(R)),d=()=>e.map(R=>{if(ge(R))return R.value;if(bt(R))return u(R);if(K(R))return Ge(R,c,2)})):K(e)?t?d=()=>Ge(e,c,2):d=()=>(T&&T(),Re(e,c,3,[N])):d=Ae,t&&s){const R=d;d=()=>ot(R())}let T,N=R=>{T=p.onStop=()=>{Ge(R,c,4),T=p.onStop=void 0}},P;if(In)if(N=Ae,t?n&&Re(t,c,3,[d(),v?[]:void 0,N]):d(),r==="sync"){const R=Gl();P=R.__watcherHandles||(R.__watcherHandles=[])}else return Ae;let W=v?new Array(e.length).fill(Qt):Qt;const q=()=>{if(!(!p.active||!p.dirty))if(t){const R=p.run();(s||h||(v?R.some((U,B)=>Xe(U,W[B])):Xe(R,W)))&&(T&&T(),Re(t,c,3,[R,W===Qt?void 0:v&&W[0]===Qt?[]:W,N]),W=R)}else p.run()};q.allowRecurse=!!t;let G;r==="sync"?G=q:r==="post"?G=()=>_e(q,c&&c.suspense):(q.pre=!0,c&&(q.id=c.uid),G=()=>Ts(q));const p=new ys(d,Ae,G),m=jr(),I=()=>{p.stop(),m&&hs(m.effects,p)};return t?n?q():W=p.run():r==="post"?_e(p.run.bind(p),c&&c.suspense):p.run(),P&&P.push(I),I}function zl(e,t,n){const s=this.proxy,r=ie(e)?e.includes(".")?Ii(s,e):()=>s[e]:e.bind(s,s);let i;K(t)?i=t:(i=t.handler,n=t);const o=Ut(this),l=Rn(r,i.bind(s),n);return o(),l}function Ii(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{ot(s,t,n)});else if(Mr(e)){for(const s in e)ot(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&ot(e[s],t,n)}return e}const Xl=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Le(t)}Modifiers`]||e[`${Qe(t)}Modifiers`];function Yl(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||se;let r=n;const i=t.startsWith("update:"),o=i&&Xl(s,t.slice(7));o&&(o.trim&&(r=n.map(d=>ie(d)?d.trim():d)),o.number&&(r=n.map(go)));let l,c=s[l=nn(t)]||s[l=nn(Le(t))];!c&&i&&(c=s[l=nn(Qe(t))]),c&&Re(c,e,6,r);const u=s[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Re(u,e,6,r)}}function Mi(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!K(e)){const c=u=>{const d=Mi(u,t,!0);d&&(l=!0,le(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(Z(e)&&s.set(e,null),null):(V(i)?i.forEach(c=>o[c]=null):le(o,i),Z(e)&&s.set(e,o),o)}function On(e,t){return!e||!Vt(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,Qe(t))||Y(e,t))}function Vn(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:c,render:u,renderCache:d,props:h,data:v,setupState:T,ctx:N,inheritAttrs:P}=e,W=fn(e);let q,G;try{if(n.shapeFlag&4){const m=r||s,I=m;q=Te(u.call(I,m,d,h,T,v,N)),G=l}else{const m=t;q=Te(m.length>1?m(h,{attrs:l,slots:o,emit:c}):m(h,null)),G=t.props?l:Jl(l)}}catch(m){Nt.length=0,En(m,e,1),q=ue(ye)}let p=q;if(G&&P!==!1){const m=Object.keys(G),{shapeFlag:I}=p;m.length&&I&7&&(i&&m.some(ds)&&(G=Ql(G,i)),p=Ye(p,G,!1,!0))}return n.dirs&&(p=Ye(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),q=p,fn(W),q}const Jl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Vt(n))&&((t||(t={}))[n]=e[n]);return t},Ql=(e,t)=>{const n={};for(const s in e)(!ds(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Zl(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?nr(s,o,u):!!o;if(c&8){const d=t.dynamicProps;for(let h=0;he.__isSuspense;function Pi(e,t){t&&t.pendingBranch?V(e)?t.effects.push(...e):t.effects.push(e):ol(e)}const be=Symbol.for("v-fgt"),ft=Symbol.for("v-txt"),ye=Symbol.for("v-cmt"),Pt=Symbol.for("v-stc"),Nt=[];let Ce=null;function Ni(e=!1){Nt.push(Ce=e?null:[])}function nc(){Nt.pop(),Ce=Nt[Nt.length-1]||null}let jt=1;function sr(e){jt+=e,e<0&&Ce&&(Ce.hasOnce=!0)}function Fi(e){return e.dynamicChildren=jt>0?Ce||mt:null,nc(),jt>0&&Ce&&Ce.push(e),e}function Ya(e,t,n,s,r,i){return Fi(ji(e,t,n,s,r,i,!0))}function Hi(e,t,n,s,r){return Fi(ue(e,t,n,s,r,!0))}function pn(e){return e?e.__v_isVNode===!0:!1}function lt(e,t){return e.type===t.type&&e.key===t.key}const $i=({key:e})=>e??null,rn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ie(e)||ge(e)||K(e)?{i:pe,r:e,k:t,f:!!n}:e:null);function ji(e,t=null,n=null,s=0,r=null,i=e===be?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&$i(t),ref:t&&rn(t),scopeId:Sn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:pe};return l?(Os(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=ie(n)?8:16),jt>0&&!o&&Ce&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Ce.push(c),c}const ue=sc;function sc(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===hi)&&(e=ye),pn(e)){const l=Ye(e,t,!0);return n&&Os(l,n),jt>0&&!i&&Ce&&(l.shapeFlag&6?Ce[Ce.indexOf(e)]=l:Ce.push(l)),l.patchFlag=-2,l}if(hc(e)&&(e=e.__vccOpts),t){t=rc(t);let{class:l,style:c}=t;l&&!ie(l)&&(t.class=ms(l)),Z(c)&&(Yr(c)&&!V(c)&&(c=le({},c)),t.style=gs(c))}const o=ie(e)?1:tc(e)?128:Dl(e)?64:Z(e)?4:K(e)?2:0;return ji(e,t,n,s,r,o,i,!0)}function rc(e){return e?Yr(e)||vi(e)?le({},e):e:null}function Ye(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:c}=e,u=t?ic(r||{},t):r,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&$i(u),ref:t&&t.ref?n&&i?V(i)?i.concat(rn(t)):[i,rn(t)]:rn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==be?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ye(e.ssContent),ssFallback:e.ssFallback&&Ye(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&un(d,c.clone(d)),d}function Di(e=" ",t=0){return ue(ft,null,e,t)}function Ja(e,t){const n=ue(Pt,null,e);return n.staticCount=t,n}function Qa(e="",t=!1){return t?(Ni(),Hi(ye,null,e)):ue(ye,null,e)}function Te(e){return e==null||typeof e=="boolean"?ue(ye):V(e)?ue(be,null,e.slice()):typeof e=="object"?We(e):ue(ft,null,String(e))}function We(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ye(e)}function Os(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(V(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Os(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!vi(t)?t._ctx=pe:r===3&&pe&&(pe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:pe},n=32):(t=String(t),s&64?(n=16,t=[Di(t)]):n=8);e.children=t,e.shapeFlag|=n}function ic(...e){const t={};for(let n=0;nae||pe;let gn,as;{const e=Nr(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};gn=t("__VUE_INSTANCE_SETTERS__",n=>ae=n),as=t("__VUE_SSR_SETTERS__",n=>In=n)}const Ut=e=>{const t=ae;return gn(e),e.scope.on(),()=>{e.scope.off(),gn(t)}},rr=()=>{ae&&ae.scope.off(),gn(null)};function Vi(e){return e.vnode.shapeFlag&4}let In=!1;function ac(e,t=!1,n=!1){t&&as(t);const{props:s,children:r}=e.vnode,i=Vi(e);Ml(e,s,i,t),Hl(e,r,n);const o=i?fc(e,t):void 0;return t&&as(!1),o}function fc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,El);const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?Bi(e):null,i=Ut(e);Ze();const o=Ge(s,e,0,[e.props,r]);if(et(),i(),Lr(o)){if(o.then(rr,rr),t)return o.then(l=>{ir(e,l,t)}).catch(l=>{En(l,e,0)});e.asyncDep=o}else ir(e,o,t)}else Ui(e,t)}function ir(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=ti(t)),Ui(e,n)}let or;function Ui(e,t,n){const s=e.type;if(!e.render){if(!t&&or&&!s.render){const r=s.template||As(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,u=le(le({isCustomElement:i,delimiters:l},o),c);s.render=or(r,u)}}e.render=s.render||Ae}{const r=Ut(e);Ze();try{Sl(e)}finally{et(),r()}}}const uc={get(e,t){return ve(e,"get",""),e[t]}};function Bi(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,uc),slots:e.slots,emit:e.emit,expose:t}}function Ls(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ti(sn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Mt)return Mt[n](e)},has(t,n){return n in t||n in Mt}})):e.proxy}function dc(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function hc(e){return K(e)&&"__vccOpts"in e}const re=(e,t)=>zo(e,t,In);function fs(e,t,n){const s=arguments.length;return s===2?Z(t)&&!V(t)?pn(t)?ue(e,null,[t]):ue(e,t):ue(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&pn(n)&&(n=[n]),ue(e,t,n))}const pc="3.4.38";/** +* @vue/runtime-dom v3.4.38 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const gc="http://www.w3.org/2000/svg",mc="http://www.w3.org/1998/Math/MathML",He=typeof document<"u"?document:null,lr=He&&He.createElement("template"),yc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?He.createElementNS(gc,e):t==="mathml"?He.createElementNS(mc,e):n?He.createElement(e,{is:n}):He.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>He.createTextNode(e),createComment:e=>He.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>He.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{lr.innerHTML=s==="svg"?`${e}`:s==="mathml"?`${e}`:e;const l=lr.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ue="transition",Ot="animation",Dt=Symbol("_vtc"),ki=(e,{slots:t})=>fs(ul,_c(e),t);ki.displayName="Transition";const Ki={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ki.props=le({},ii,Ki);const st=(e,t=[])=>{V(e)?e.forEach(n=>n(...t)):e&&e(...t)},cr=e=>e?V(e)?e.some(t=>t.length>1):e.length>1:!1;function _c(e){const t={};for(const E in e)E in Ki||(t[E]=e[E]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:u=o,appearToClass:d=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:T=`${n}-leave-to`}=e,N=bc(r),P=N&&N[0],W=N&&N[1],{onBeforeEnter:q,onEnter:G,onEnterCancelled:p,onLeave:m,onLeaveCancelled:I,onBeforeAppear:R=q,onAppear:U=G,onAppearCancelled:B=p}=t,O=(E,D,ee)=>{rt(E,D?d:l),rt(E,D?u:o),ee&&ee()},_=(E,D)=>{E._isLeaving=!1,rt(E,h),rt(E,T),rt(E,v),D&&D()},M=E=>(D,ee)=>{const ne=E?U:G,$=()=>O(D,E,ee);st(ne,[D,$]),ar(()=>{rt(D,E?c:i),Be(D,E?d:l),cr(ne)||fr(D,s,P,$)})};return le(t,{onBeforeEnter(E){st(q,[E]),Be(E,i),Be(E,o)},onBeforeAppear(E){st(R,[E]),Be(E,c),Be(E,u)},onEnter:M(!1),onAppear:M(!0),onLeave(E,D){E._isLeaving=!0;const ee=()=>_(E,D);Be(E,h),Be(E,v),Ec(),ar(()=>{E._isLeaving&&(rt(E,h),Be(E,T),cr(m)||fr(E,s,W,ee))}),st(m,[E,ee])},onEnterCancelled(E){O(E,!1),st(p,[E])},onAppearCancelled(E){O(E,!0),st(B,[E])},onLeaveCancelled(E){_(E),st(I,[E])}})}function bc(e){if(e==null)return null;if(Z(e))return[Un(e.enter),Un(e.leave)];{const t=Un(e);return[t,t]}}function Un(e){return mo(e)}function Be(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Dt]||(e[Dt]=new Set)).add(t)}function rt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Dt];n&&(n.delete(t),n.size||(e[Dt]=void 0))}function ar(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let vc=0;function fr(e,t,n,s){const r=e._endId=++vc,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=wc(e,t);if(!o)return s();const u=o+"end";let d=0;const h=()=>{e.removeEventListener(u,v),i()},v=T=>{T.target===e&&++d>=c&&h()};setTimeout(()=>{d(n[N]||"").split(", "),r=s(`${Ue}Delay`),i=s(`${Ue}Duration`),o=ur(r,i),l=s(`${Ot}Delay`),c=s(`${Ot}Duration`),u=ur(l,c);let d=null,h=0,v=0;t===Ue?o>0&&(d=Ue,h=o,v=i.length):t===Ot?u>0&&(d=Ot,h=u,v=c.length):(h=Math.max(o,u),d=h>0?o>u?Ue:Ot:null,v=d?d===Ue?i.length:c.length:0);const T=d===Ue&&/\b(transform|all)(,|$)/.test(s(`${Ue}Property`).toString());return{type:d,timeout:h,propCount:v,hasTransform:T}}function ur(e,t){for(;e.lengthdr(n)+dr(e[s])))}function dr(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Ec(){return document.body.offsetHeight}function Cc(e,t,n){const s=e[Dt];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const hr=Symbol("_vod"),Sc=Symbol("_vsh"),xc=Symbol(""),Tc=/(^|;)\s*display\s*:/;function Ac(e,t,n){const s=e.style,r=ie(n);let i=!1;if(n&&!r){if(t)if(ie(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&on(s,l,"")}else for(const o in t)n[o]==null&&on(s,o,"");for(const o in n)o==="display"&&(i=!0),on(s,o,n[o])}else if(r){if(t!==n){const o=s[xc];o&&(n+=";"+o),s.cssText=n,i=Tc.test(n)}}else t&&e.removeAttribute("style");hr in e&&(e[hr]=i?s.display:"",e[Sc]&&(s.display="none"))}const pr=/\s*!important$/;function on(e,t,n){if(V(n))n.forEach(s=>on(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Rc(e,t);pr.test(n)?e.setProperty(Qe(s),n.replace(pr,""),"important"):e[s]=n}}const gr=["Webkit","Moz","ms"],Bn={};function Rc(e,t){const n=Bn[t];if(n)return n;let s=Le(t);if(s!=="filter"&&s in e)return Bn[t]=s;s=_n(s);for(let r=0;rkn||(Nc.then(()=>kn=0),kn=Date.now());function Hc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Re($c(s,n.value),t,5,[s])};return n.value=e,n.attached=Fc(),n}function $c(e,t){if(V(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const vr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,jc=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?Cc(e,s,o):t==="style"?Ac(e,n,s):Vt(t)?ds(t)||Mc(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Dc(e,t,s,o))?(Oc(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&yr(e,t,s,o,i,t!=="value")):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),yr(e,t,s,o))};function Dc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&vr(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return vr(t)&&ie(n)?!1:t in e}const Vc=["ctrl","shift","alt","meta"],Uc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Vc.some(n=>e[`${n}Key`]&&!t.includes(n))},Za=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const i=Qe(r.key);if(t.some(o=>o===i||Bc[o]===i))return e(r)})},kc=le({patchProp:jc},yc);let Kn,wr=!1;function Kc(){return Kn=wr?Kn:kl(kc),wr=!0,Kn}const tf=(...e)=>{const t=Kc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=qc(s);if(r)return n(r,!0,Wc(r))},t};function Wc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function qc(e){return ie(e)?document.querySelector(e):e}const Gc=window.__VP_SITE_DATA__;function Is(e){return jr()?(To(e),!0):!1}function ze(e){return typeof e=="function"?e():ei(e)}const Wi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const zc=Object.prototype.toString,Xc=e=>zc.call(e)==="[object Object]",qi=()=>{},Er=Yc();function Yc(){var e,t;return Wi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Jc(e,t){function n(...s){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(i)})}return n}const Gi=e=>e();function Qc(e=Gi){const t=fe(!0);function n(){t.value=!1}function s(){t.value=!0}const r=(...i)=>{t.value&&e(...i)};return{isActive:wn(t),pause:n,resume:s,eventFilter:r}}function Zc(e){return Ln()}function zi(...e){if(e.length!==1)return tl(...e);const t=e[0];return typeof t=="function"?wn(Qo(()=>({get:t,set:qi}))):fe(t)}function ea(e,t,n={}){const{eventFilter:s=Gi,...r}=n;return Fe(e,Jc(s,t),r)}function ta(e,t,n={}){const{eventFilter:s,...r}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=Qc(s);return{stop:ea(e,t,{...r,eventFilter:i}),pause:o,resume:l,isActive:c}}function Ms(e,t=!0,n){Zc()?Tt(e,n):t?e():Cn(e)}function Xi(e){var t;const n=ze(e);return(t=n==null?void 0:n.$el)!=null?t:n}const je=Wi?window:void 0;function xt(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=je):[t,n,s,r]=e,!t)return qi;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const i=[],o=()=>{i.forEach(d=>d()),i.length=0},l=(d,h,v,T)=>(d.addEventListener(h,v,T),()=>d.removeEventListener(h,v,T)),c=Fe(()=>[Xi(t),ze(r)],([d,h])=>{if(o(),!d)return;const v=Xc(h)?{...h}:h;i.push(...n.flatMap(T=>s.map(N=>l(d,T,N,v))))},{immediate:!0,flush:"post"}),u=()=>{c(),o()};return Is(u),u}function na(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function nf(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=je,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=s,c=na(t);return xt(r,i,d=>{d.repeat&&ze(l)||c(d)&&n(d)},o)}function sa(){const e=fe(!1),t=Ln();return t&&Tt(()=>{e.value=!0},t),e}function ra(e){const t=sa();return re(()=>(t.value,!!e()))}function Yi(e,t={}){const{window:n=je}=t,s=ra(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const i=fe(!1),o=u=>{i.value=u.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",o):r.removeListener(o))},c=Li(()=>{s.value&&(l(),r=n.matchMedia(ze(e)),"addEventListener"in r?r.addEventListener("change",o):r.addListener(o),i.value=r.matches)});return Is(()=>{c(),l(),r=void 0}),i}const Zt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},en="__vueuse_ssr_handlers__",ia=oa();function oa(){return en in Zt||(Zt[en]=Zt[en]||{}),Zt[en]}function Ji(e,t){return ia[e]||t}function la(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const ca={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Cr="vueuse-storage";function aa(e,t,n,s={}){var r;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:d,window:h=je,eventFilter:v,onError:T=_=>{console.error(_)},initOnMounted:N}=s,P=(d?Qr:fe)(typeof t=="function"?t():t);if(!n)try{n=Ji("getDefaultStorage",()=>{var _;return(_=je)==null?void 0:_.localStorage})()}catch(_){T(_)}if(!n)return P;const W=ze(t),q=la(W),G=(r=s.serializer)!=null?r:ca[q],{pause:p,resume:m}=ta(P,()=>R(P.value),{flush:i,deep:o,eventFilter:v});h&&l&&Ms(()=>{n instanceof Storage?xt(h,"storage",B):xt(h,Cr,O),N&&B()}),N||B();function I(_,M){if(h){const E={key:e,oldValue:_,newValue:M,storageArea:n};h.dispatchEvent(n instanceof Storage?new StorageEvent("storage",E):new CustomEvent(Cr,{detail:E}))}}function R(_){try{const M=n.getItem(e);if(_==null)I(M,null),n.removeItem(e);else{const E=G.write(_);M!==E&&(n.setItem(e,E),I(M,E))}}catch(M){T(M)}}function U(_){const M=_?_.newValue:n.getItem(e);if(M==null)return c&&W!=null&&n.setItem(e,G.write(W)),W;if(!_&&u){const E=G.read(M);return typeof u=="function"?u(E,W):q==="object"&&!Array.isArray(E)?{...W,...E}:E}else return typeof M!="string"?M:G.read(M)}function B(_){if(!(_&&_.storageArea!==n)){if(_&&_.key==null){P.value=W;return}if(!(_&&_.key!==e)){p();try{(_==null?void 0:_.newValue)!==G.write(P.value)&&(P.value=U(_))}catch(M){T(M)}finally{_?Cn(m):m()}}}}function O(_){B(_.detail)}return P}function Qi(e){return Yi("(prefers-color-scheme: dark)",e)}const fa="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function ua(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=je,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:d=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},v=Qi({window:r}),T=re(()=>v.value?"dark":"light"),N=c||(o==null?zi(s):aa(o,s,i,{window:r,listenToStorageChanges:l})),P=re(()=>N.value==="auto"?T.value:N.value),W=Ji("updateHTMLAttrs",(m,I,R)=>{const U=typeof m=="string"?r==null?void 0:r.document.querySelector(m):Xi(m);if(!U)return;const B=new Set,O=new Set;let _=null;if(I==="class"){const E=R.split(/\s/g);Object.values(h).flatMap(D=>(D||"").split(/\s/g)).filter(Boolean).forEach(D=>{E.includes(D)?B.add(D):O.add(D)})}else _={key:I,value:R};if(B.size===0&&O.size===0&&_===null)return;let M;d&&(M=r.document.createElement("style"),M.appendChild(document.createTextNode(fa)),r.document.head.appendChild(M));for(const E of B)U.classList.add(E);for(const E of O)U.classList.remove(E);_&&U.setAttribute(_.key,_.value),d&&(r.getComputedStyle(M).opacity,document.head.removeChild(M))});function q(m){var I;W(t,n,(I=h[m])!=null?I:m)}function G(m){e.onChanged?e.onChanged(m,q):q(m)}Fe(P,G,{flush:"post",immediate:!0}),Ms(()=>G(P.value));const p=re({get(){return u?N.value:P.value},set(m){N.value=m}});try{return Object.assign(p,{store:N,system:T,state:P})}catch{return p}}function da(e={}){const{valueDark:t="dark",valueLight:n="",window:s=je}=e,r=ua({...e,onChanged:(l,c)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=re(()=>r.system?r.system.value:Qi({window:s}).value?"dark":"light");return re({get(){return r.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?r.value="auto":r.value=c}})}function Wn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Zi(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const qn=new WeakMap;function sf(e,t=!1){const n=fe(t);let s=null,r="";Fe(zi(e),l=>{const c=Wn(ze(l));if(c){const u=c;if(qn.get(u)||qn.set(u,u.style.overflow),u.style.overflow!=="hidden"&&(r=u.style.overflow),u.style.overflow==="hidden")return n.value=!0;if(n.value)return u.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=Wn(ze(e));!l||n.value||(Er&&(s=xt(l,"touchmove",c=>{ha(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=Wn(ze(e));!l||!n.value||(Er&&(s==null||s()),l.style.overflow=r,qn.delete(l),n.value=!1)};return Is(o),re({get(){return n.value},set(l){l?i():o()}})}function rf(e={}){const{window:t=je,behavior:n="auto"}=e;if(!t)return{x:fe(0),y:fe(0)};const s=fe(t.scrollX),r=fe(t.scrollY),i=re({get(){return s.value},set(l){scrollTo({left:l,behavior:n})}}),o=re({get(){return r.value},set(l){scrollTo({top:l,behavior:n})}});return xt(t,"scroll",()=>{s.value=t.scrollX,r.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}function of(e={}){const{window:t=je,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:s=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:i=!0,type:o="inner"}=e,l=fe(n),c=fe(s),u=()=>{t&&(o==="outer"?(l.value=t.outerWidth,c.value=t.outerHeight):i?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight))};if(u(),Ms(u),xt("resize",u,{passive:!0}),r){const d=Yi("(orientation: portrait)");Fe(d,()=>u())}return{width:l,height:c}}const Gn={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};var zn={};const eo=/^(?:[a-z]+:|\/\/)/i,pa="vitepress-theme-appearance",ga=/#.*$/,ma=/[?#].*$/,ya=/(?:(^|\/)index)?\.(?:md|html)$/,de=typeof document<"u",to={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function _a(e,t,n=!1){if(t===void 0)return!1;if(e=Sr(`/${e}`),n)return new RegExp(t).test(e);if(Sr(t)!==e)return!1;const s=t.match(ga);return s?(de?location.hash:"")===s[0]:!0}function Sr(e){return decodeURI(e).replace(ma,"").replace(ya,"$1")}function ba(e){return eo.test(e)}function va(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!ba(n)&&_a(t,`/${n}/`,!0))||"root"}function wa(e,t){var s,r,i,o,l,c,u;const n=va(e,t);return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:so(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function no(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=Ea(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function Ea(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Ca(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function so(e,t){return[...e.filter(n=>!Ca(t,n)),...t]}const Sa=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,xa=/^[a-z]:/i;function xr(e){const t=xa.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Sa,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Xn=new Set;function Ta(e){if(Xn.size===0){const n=typeof process=="object"&&(zn==null?void 0:zn.VITE_EXTRA_EXTENSIONS)||(Gn==null?void 0:Gn.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(s=>Xn.add(s))}const t=e.split(".").pop();return t==null||!Xn.has(t.toLowerCase())}const Aa=Symbol(),ut=Qr(Gc);function lf(e){const t=re(()=>wa(ut.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?fe(!0):n?da({storageKey:pa,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):fe(!1),r=fe(de?location.hash:"");return de&&window.addEventListener("hashchange",()=>{r.value=location.hash}),Fe(()=>e.data,()=>{r.value=de?location.hash:""}),{site:t,theme:re(()=>t.value.themeConfig),page:re(()=>e.data),frontmatter:re(()=>e.data.frontmatter),params:re(()=>e.data.params),lang:re(()=>t.value.lang),dir:re(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:re(()=>t.value.localeIndex||"root"),title:re(()=>no(t.value,e.data)),description:re(()=>e.data.description||t.value.description),isDark:s,hash:re(()=>r.value)}}function Ra(){const e=Ct(Aa);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Oa(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Tr(e){return eo.test(e)||!e.startsWith("/")?e:Oa(ut.value.base,e)}function La(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),de){const n="/";t=xr(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${xr(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let ln=[];function cf(e){ln.push(e),An(()=>{ln=ln.filter(t=>t!==e)})}function Ia(){let e=ut.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Ar(e,n);else if(Array.isArray(e))for(const s of e){const r=Ar(s,n);if(r){t=r;break}}return t}function Ar(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}const Ma=Symbol(),ro="http://a.com",Pa=()=>({path:"/",component:null,data:to});function af(e,t){const n=vn(Pa()),s={route:n,go:r};async function r(l=de?location.href:"/"){var c,u;l=Yn(l),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,l))!==!1&&(de&&l!==Yn(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await o(l),await((u=s.onAfterRouteChanged)==null?void 0:u.call(s,l)))}let i=null;async function o(l,c=0,u=!1){var v;if(await((v=s.onBeforePageLoad)==null?void 0:v.call(s,l))===!1)return;const d=new URL(l,ro),h=i=d.pathname;try{let T=await e(h);if(!T)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:N,__pageData:P}=T;if(!N)throw new Error(`Invalid route component: ${N}`);n.path=de?h:Tr(h),n.component=sn(N),n.data=sn(P),de&&Cn(()=>{let W=ut.value.base+P.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!W.endsWith("/")&&(W+=".html"),W!==d.pathname&&(d.pathname=W,l=W+d.search+d.hash,history.replaceState({},"",l)),d.hash&&!c){let q=null;try{q=document.getElementById(decodeURIComponent(d.hash).slice(1))}catch(G){console.warn(G)}if(q){Rr(q,d.hash);return}}window.scrollTo(0,c)})}}catch(T){if(!/fetch|Page not found/.test(T.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(T),!u)try{const N=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await N.json(),await o(l,c,!0);return}catch{}if(i===h){i=null,n.path=de?h:Tr(h),n.component=t?sn(t):null;const N=de?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...to,relativePath:N}}}}return de&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const u=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(u==null)return;const{href:d,origin:h,pathname:v,hash:T,search:N}=new URL(u,c.baseURI),P=new URL(location.href);h===P.origin&&Ta(v)&&(l.preventDefault(),v===P.pathname&&N===P.search?(T!==P.hash&&(history.pushState({},"",d),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:P.href,newURL:d}))),T?Rr(c,T,c.classList.contains("header-anchor")):window.scrollTo(0,0)):r(d))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await o(Yn(location.href),l.state&&l.state.scrollPosition||0),(c=s.onAfterRouteChanged)==null||c.call(s,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Na(){const e=Ct(Ma);if(!e)throw new Error("useRouter() is called without provider.");return e}function io(){return Na().route}function Rr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-Ia()+i;requestAnimationFrame(r)}}function Yn(e){const t=new URL(e,ro);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ut.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const Jn=()=>ln.forEach(e=>e()),ff=ai({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=io(),{site:n}=Ra();return()=>fs(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?fs(t.component,{onVnodeMounted:Jn,onVnodeUpdated:Jn,onVnodeUnmounted:Jn}):"404 Page Not Found"])}}),uf=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},df=ai({setup(e,{slots:t}){const n=fe(!1);return Tt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function hf(){de&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(u=>u.classList.contains("active"));if(!o)return;const l=i.children[r];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function pf(){if(de){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(d=>d.remove());let u=c.textContent||"";o&&(u=u.replace(/^ *(\$|>) /gm,"").trim()),Fa(u).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const d=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,d)})}})}}async function Fa(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function gf(e,t){let n=!0,s=[];const r=i=>{if(n){n=!1,i.forEach(l=>{const c=Qn(l);for(const u of document.head.children)if(u.isEqualNode(c)){s.push(u);return}});return}const o=i.map(Qn);s.forEach((l,c)=>{const u=o.findIndex(d=>d==null?void 0:d.isEqualNode(l??null));u!==-1?delete o[u]:(l==null||l.remove(),delete s[c])}),o.forEach(l=>l&&document.head.appendChild(l)),s=[...s,...o].filter(Boolean)};Li(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],u=no(o,i);u!==document.title&&(document.title=u);const d=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==d&&h.setAttribute("content",d):Qn(["meta",{name:"description",content:d}]),r(so(o.head,$a(c)))})}function Qn([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&!t.async&&(s.async=!1),s}function Ha(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function $a(e){return e.filter(t=>!Ha(t))}const Zn=new Set,oo=()=>document.createElement("link"),ja=e=>{const t=oo();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Da=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let tn;const Va=de&&(tn=oo())&&tn.relList&&tn.relList.supports&&tn.relList.supports("prefetch")?ja:Da;function mf(){if(!de||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Zn.has(c)){Zn.add(c);const u=La(c);u&&Va(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):Zn.add(l))})})};Tt(s);const r=io();Fe(()=>r.path,s),An(()=>{n&&n.disconnect()})}export{ui as $,Xa as A,yl as B,Ia as C,ka as D,Wa as E,be as F,Qr as G,cf as H,ue as I,Ka as J,eo as K,io as L,ic as M,Ct as N,of as O,gs as P,nf as Q,Cn as R,rf as S,ki as T,de as U,wn as V,sf as W,Il as X,ef as Y,Ga as Z,uf as _,Di as a,Za as a0,za as a1,Ja as a2,gf as a3,Ma as a4,lf as a5,Aa as a6,ff as a7,df as a8,ut as a9,tf as aa,af as ab,La as ac,mf as ad,pf as ae,hf as af,fs as ag,Hi as b,Ya as c,ai as d,Qa as e,Ta as f,Tr as g,re as h,ba as i,ji as j,ei as k,Ba as l,_a as m,ms as n,Ni as o,Ua as p,Yi as q,qa as r,fe as s,Co as t,Ra as u,Fe as v,cl as w,Li as x,Tt as y,An as z}; diff --git a/assets/chunks/theme.BPuUWxkA.js b/assets/chunks/theme.BPuUWxkA.js new file mode 100644 index 0000000..4fc7e40 --- /dev/null +++ b/assets/chunks/theme.BPuUWxkA.js @@ -0,0 +1 @@ +import{d as _,o as a,c,r as l,n as w,a as O,t as T,b as k,w as v,e as f,T as de,_ as b,u as Oe,i as Ge,f as Ue,g as ve,h as g,j as p,k as r,p as C,l as H,m as W,q as ie,s as I,v as G,x as Z,y as K,z as pe,A as he,B as je,C as ze,D as J,F as M,E,G as ye,H as x,I as m,J as F,K as Pe,L as ee,M as q,N as te,O as qe,P as Ve,Q as We,R as Ke,S as Le,U as oe,V as Je,W as Se,X as Te,Y as Re,Z as Ye,$ as Qe,a0 as Xe,a1 as Ze}from"./framework.BV61Qrc0.js";const xe=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:w(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[O(T(e.text),1)])],2))}}),et={key:0,class:"VPBackdrop"},tt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),k(de,{name:"fade"},{default:v(()=>[e.show?(a(),c("div",et)):f("",!0)]),_:1}))}}),ot=b(tt,[["__scopeId","data-v-3cecd3dd"]]),P=Oe;function nt(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function le(o){return/^\//.test(o)?o:`/${o}`}function fe(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(Ge(o)||o.startsWith("#")||!n.startsWith("http")||!Ue(e))return o;const{site:i}=P(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return ve(u)}function Y({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:i}=P(),u=g(()=>{var d,$;return{label:(d=e.value.locales[t.value])==null?void 0:d.label,link:(($=e.value.locales[t.value])==null?void 0:$.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:g(()=>Object.entries(e.value.locales).flatMap(([d,$])=>u.value.label===$.label?[]:{text:$.label,link:st($.link||(d==="root"?"/":`/${d}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:u}}function st(o,e,t,s){return e?o.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const at=o=>(C("data-v-794c8617"),o=o(),H(),o),rt={class:"NotFound"},it={class:"code"},lt={class:"title"},ct=at(()=>p("div",{class:"divider"},null,-1)),ut={class:"quote"},dt={class:"action"},vt=["href","aria-label"],pt=_({__name:"NotFound",setup(o){const{theme:e}=P(),{currentLang:t}=Y();return(s,n)=>{var i,u,h,d,$;return a(),c("div",rt,[p("p",it,T(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",lt,T(((u=r(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),ct,p("blockquote",ut,T(((h=r(e).notFound)==null?void 0:h.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",dt,[p("a",{class:"link",href:r(ve)(r(t).link),"aria-label":((d=r(e).notFound)==null?void 0:d.linkLabel)??"go to home"},T((($=r(e).notFound)==null?void 0:$.linkText)??"Take me home"),9,vt)])])}}}),ht=b(pt,[["__scopeId","data-v-794c8617"]]);function Ie(o,e){if(Array.isArray(o))return Q(o);if(o==null)return[];e=le(e);const t=Object.keys(o).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>e.startsWith(le(n))),s=t?o[t]:[];return Array.isArray(s)?Q(s):Q(s.items,s.base)}function ft(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function _t(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ce(o,e){return Array.isArray(e)?e.some(t=>ce(o,t)):W(o,e.link)?!0:e.items?ce(o,e.items):!1}function Q(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=Q(s.items,n)),s})}function U(){const{frontmatter:o,page:e,theme:t}=P(),s=ie("(min-width: 960px)"),n=I(!1),i=g(()=>{const B=t.value.sidebar,S=e.value.relativePath;return B?Ie(B,S):[]}),u=I(i.value);G(i,(B,S)=>{JSON.stringify(B)!==JSON.stringify(S)&&(u.value=i.value)});const h=g(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),d=g(()=>$?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),$=g(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),V=g(()=>h.value&&s.value),y=g(()=>h.value?ft(u.value):[]);function L(){n.value=!0}function N(){n.value=!1}function A(){n.value?N():L()}return{isOpen:n,sidebar:u,sidebarGroups:y,hasSidebar:h,hasAside:$,leftAside:d,isSidebarEnabled:V,open:L,close:N,toggle:A}}function mt(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),K(()=>{window.addEventListener("keyup",s)}),pe(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function kt(o){const{page:e,hash:t}=P(),s=I(!1),n=g(()=>o.value.collapsed!=null),i=g(()=>!!o.value.link),u=I(!1),h=()=>{u.value=W(e.value.relativePath,o.value.link)};G([e,o,t],h),K(h);const d=g(()=>u.value?!0:o.value.items?ce(e.value.relativePath,o.value.items):!1),$=g(()=>!!(o.value.items&&o.value.items.length));Z(()=>{s.value=!!(n.value&&o.value.collapsed)}),he(()=>{(u.value||d.value)&&(s.value=!1)});function V(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:i,isActiveLink:u,hasActiveLink:d,hasChildren:$,toggle:V}}function bt(){const{hasSidebar:o}=U(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:g(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const ue=[];function we(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function _e(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:$t(t),link:"#"+t.id,level:s}});return gt(e,o)}function $t(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function gt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=s&&u.level<=n),ue.length=0;for(const{element:u,link:h}of o)ue.push({element:u,link:h});const i=[];e:for(let u=0;u=0;d--){const $=o[d];if($.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),je(()=>{u(location.hash)}),pe(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const h=window.scrollY,d=window.innerHeight,$=document.body.offsetHeight,V=Math.abs(h+d-$)<1,y=ue.map(({element:N,link:A})=>({link:A,top:Pt(N)})).filter(({top:N})=>!Number.isNaN(N)).sort((N,A)=>N.top-A.top);if(!y.length){u(null);return}if(h<1){u(null);return}if(V){u(y[y.length-1].link);return}let L=null;for(const{link:N,top:A}of y){if(A>h+ze()+4)break;L=N}u(L)}function u(h){n&&n.classList.remove("active"),h==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const d=n;d?(d.classList.add("active"),e.value.style.top=d.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Pt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const Vt=["href","title"],Lt=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const s=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(s));n==null||n.focus({preventScroll:!0})}return(t,s)=>{const n=J("VPDocOutlineItem",!0);return a(),c("ul",{class:w(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,E(t.headers,({children:i,link:u,title:h})=>(a(),c("li",null,[p("a",{class:"outline-link",href:u,onClick:e,title:h},T(h),9,Vt),i!=null&&i.length?(a(),k(n,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Ne=b(Lt,[["__scopeId","data-v-f55eb20b"]]),St={class:"content"},Tt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},It=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=P(),s=ye([]);x(()=>{s.value=_e(e.value.outline??t.value.outline)});const n=I(),i=I();return yt(n,i),(u,h)=>(a(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:w(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[p("div",St,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",Tt,T(r(we)(r(t))),1),m(Ne,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),wt=b(It,[["__scopeId","data-v-e9eccece"]]),Nt={class:"VPDocAsideCarbonAds"},Mt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),c("div",Nt,[m(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),At=o=>(C("data-v-9030d96a"),o=o(),H(),o),Bt={class:"VPDocAside"},Ct=At(()=>p("div",{class:"spacer"},null,-1)),Ht=_({__name:"VPDocAside",setup(o){const{theme:e}=P();return(t,s)=>(a(),c("div",Bt,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),m(wt),l(t.$slots,"aside-outline-after",{},void 0,!0),Ct,l(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),k(Mt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Et=b(Ht,[["__scopeId","data-v-9030d96a"]]);function Ft(){const{theme:o,page:e}=P();return g(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Dt(){const{page:o,theme:e,frontmatter:t}=P();return g(()=>{var $,V,y,L,N,A,B,S;const s=Ie(e.value.sidebar,o.value.relativePath),n=_t(s),i=Ot(n,j=>j.link.replace(/[?#].*$/,"")),u=i.findIndex(j=>W(o.value.relativePath,j.link)),h=(($=e.value.docFooter)==null?void 0:$.prev)===!1&&!t.value.prev||t.value.prev===!1,d=((V=e.value.docFooter)==null?void 0:V.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((y=i[u-1])==null?void 0:y.docFooterText)??((L=i[u-1])==null?void 0:L.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((N=i[u-1])==null?void 0:N.link)},next:d?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[u+1])==null?void 0:A.docFooterText)??((B=i[u+1])==null?void 0:B.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=i[u+1])==null?void 0:S.link)}}})}function Ot(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const D=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=g(()=>e.tag??(e.href?"a":"span")),s=g(()=>e.href&&Pe.test(e.href)||e.target==="_blank");return(n,i)=>(a(),k(F(t.value),{class:w(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?r(fe)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:v(()=>[l(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Gt={class:"VPLastUpdated"},Ut=["datetime"],jt=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=P(),n=g(()=>new Date(t.value.lastUpdated)),i=g(()=>n.value.toISOString()),u=I("");return K(()=>{Z(()=>{var h,d,$;u.value=new Intl.DateTimeFormat((d=(h=e.value.lastUpdated)==null?void 0:h.formatOptions)!=null&&d.forceLocale?s.value:void 0,(($=e.value.lastUpdated)==null?void 0:$.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(h,d)=>{var $;return a(),c("p",Gt,[O(T((($=r(e).lastUpdated)==null?void 0:$.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:i.value},T(u.value),9,Ut)])}}}),zt=b(jt,[["__scopeId","data-v-0d7790be"]]),Me=o=>(C("data-v-f33b051d"),o=o(),H(),o),qt={key:0,class:"VPDocFooter"},Wt={key:0,class:"edit-info"},Kt={key:0,class:"edit-link"},Jt=Me(()=>p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Rt={key:1,class:"last-updated"},Yt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Qt=Me(()=>p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),Xt={class:"pager"},Zt=["innerHTML"],xt=["innerHTML"],eo={class:"pager"},to=["innerHTML"],oo=["innerHTML"],no=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=P(),n=Ft(),i=Dt(),u=g(()=>e.value.editLink&&s.value.editLink!==!1),h=g(()=>t.value.lastUpdated),d=g(()=>u.value||h.value||i.value.prev||i.value.next);return($,V)=>{var y,L,N,A;return d.value?(a(),c("footer",qt,[l($.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),c("div",Wt,[u.value?(a(),c("div",Kt,[m(D,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:v(()=>[Jt,O(" "+T(r(n).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),c("div",Rt,[m(zt)])):f("",!0)])):f("",!0),(y=r(i).prev)!=null&&y.link||(L=r(i).next)!=null&&L.link?(a(),c("nav",Yt,[Qt,p("div",Xt,[(N=r(i).prev)!=null&&N.link?(a(),k(D,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:v(()=>{var B;return[p("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.prev)||"Previous page"},null,8,Zt),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,xt)]}),_:1},8,["href"])):f("",!0)]),p("div",eo,[(A=r(i).next)!=null&&A.link?(a(),k(D,{key:0,class:"pager-link next",href:r(i).next.link},{default:v(()=>{var B;return[p("span",{class:"desc",innerHTML:((B=r(e).docFooter)==null?void 0:B.next)||"Next page"},null,8,to),p("span",{class:"title",innerHTML:r(i).next.text},null,8,oo)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),so=b(no,[["__scopeId","data-v-f33b051d"]]),ao=o=>(C("data-v-aa782c77"),o=o(),H(),o),ro={class:"container"},io=ao(()=>p("div",{class:"aside-curtain"},null,-1)),lo={class:"aside-container"},co={class:"aside-content"},uo={class:"content"},vo={class:"content-container"},po={class:"main"},ho=_({__name:"VPDoc",setup(o){const{theme:e}=P(),t=ee(),{hasSidebar:s,hasAside:n,leftAside:i}=U(),u=g(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,d)=>{const $=J("Content");return a(),c("div",{class:w(["VPDoc",{"has-sidebar":r(s),"has-aside":r(n)}])},[l(h.$slots,"doc-top",{},void 0,!0),p("div",ro,[r(n)?(a(),c("div",{key:0,class:w(["aside",{"left-aside":r(i)}])},[io,p("div",lo,[p("div",co,[m(Et,null,{"aside-top":v(()=>[l(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[l(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[l(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),p("div",uo,[p("div",vo,[l(h.$slots,"doc-before",{},void 0,!0),p("main",po,[m($,{class:w(["vp-doc",[u.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),m(so,null,{"doc-footer-before":v(()=>[l(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(h.$slots,"doc-after",{},void 0,!0)])])]),l(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),fo=b(ho,[["__scopeId","data-v-aa782c77"]]),_o=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=g(()=>e.href&&Pe.test(e.href)),s=g(()=>e.tag||e.href?"a":"button");return(n,i)=>(a(),k(F(s.value),{class:w(["VPButton",[n.size,n.theme]]),href:n.href?r(fe)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:v(()=>[O(T(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),mo=b(_o,[["__scopeId","data-v-2c313aad"]]),ko=["src","alt"],bo=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=J("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",q({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(ve)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,ko)):(a(),c(M,{key:1},[m(s,q({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),m(s,q({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),X=b(bo,[["__scopeId","data-v-778ce7b3"]]),$o=o=>(C("data-v-1e5b8ae1"),o=o(),H(),o),go={class:"container"},yo={class:"main"},Po={key:0,class:"name"},Vo=["innerHTML"],Lo=["innerHTML"],So=["innerHTML"],To={key:0,class:"actions"},Io={key:0,class:"image"},wo={class:"image-container"},No=$o(()=>p("div",{class:"image-bg"},null,-1)),Mo=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=te("hero-image-slot-exists");return(t,s)=>(a(),c("div",{class:w(["VPHero",{"has-image":t.image||r(e)}])},[p("div",go,[p("div",yo,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",Po,[p("span",{innerHTML:t.name,class:"clip"},null,8,Vo)])):f("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,Lo)):f("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,So)):f("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",To,[(a(!0),c(M,null,E(t.actions,n=>(a(),c("div",{key:n.link,class:"action"},[m(mo,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):f("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),c("div",Io,[p("div",wo,[No,l(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(X,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Ao=b(Mo,[["__scopeId","data-v-1e5b8ae1"]]),Bo=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=P();return(t,s)=>r(e).hero?(a(),k(Ao,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":v(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Co=o=>(C("data-v-dc42ca30"),o=o(),H(),o),Ho={class:"box"},Eo={key:0,class:"icon"},Fo=["innerHTML"],Do=["innerHTML"],Oo=["innerHTML"],Go={key:4,class:"link-text"},Uo={class:"link-text-value"},jo=Co(()=>p("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),zo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),k(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[p("article",Ho,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",Eo,[m(X,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),k(X,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Fo)):f("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Do),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Oo)):f("",!0),e.linkText?(a(),c("div",Go,[p("p",Uo,[O(T(e.linkText)+" ",1),jo])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),qo=b(zo,[["__scopeId","data-v-dc42ca30"]]),Wo={key:0,class:"VPFeatures"},Ko={class:"container"},Jo={class:"items"},Ro=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=g(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),c("div",Wo,[p("div",Ko,[p("div",Jo,[(a(!0),c(M,null,E(s.features,i=>(a(),c("div",{key:i.title,class:w(["item",[t.value]])},[m(qo,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),Yo=b(Ro,[["__scopeId","data-v-d6e8dd35"]]),Qo=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=P();return(t,s)=>r(e).features?(a(),k(Yo,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),Xo=_({__name:"VPHomeContent",setup(o){const{width:e}=qe({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),c("div",{class:"vp-doc container",style:Ve(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),Zo=b(Xo,[["__scopeId","data-v-811aea7b"]]),xo={class:"VPHome"},en=_({__name:"VPHome",setup(o){const{frontmatter:e}=P();return(t,s)=>{const n=J("Content");return a(),c("div",xo,[l(t.$slots,"home-hero-before",{},void 0,!0),m(Bo,null,{"home-hero-info-before":v(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),m(Qo),l(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),k(Zo,{key:0},{default:v(()=>[m(n)]),_:1})):(a(),k(n,{key:1}))])}}}),tn=b(en,[["__scopeId","data-v-4dea4f14"]]),on={},nn={class:"VPPage"};function sn(o,e){const t=J("Content");return a(),c("div",nn,[l(o.$slots,"page-top"),m(t),l(o.$slots,"page-bottom")])}const an=b(on,[["render",sn]]),rn=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=P(),{hasSidebar:s}=U();return(n,i)=>(a(),c("div",{class:w(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?l(n.$slots,"not-found",{key:0},()=>[m(ht)],!0):r(t).layout==="page"?(a(),k(an,{key:1},{"page-top":v(()=>[l(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[l(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),k(tn,{key:2},{"home-hero-before":v(()=>[l(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[l(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[l(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[l(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[l(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),k(F(r(t).layout),{key:3})):(a(),k(fo,{key:4},{"doc-top":v(()=>[l(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[l(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[l(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[l(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[l(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[l(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[l(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[l(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ln=b(rn,[["__scopeId","data-v-4fa77a91"]]),cn={class:"container"},un=["innerHTML"],dn=["innerHTML"],vn=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=U();return(n,i)=>r(e).footer&&r(t).footer!==!1?(a(),c("footer",{key:0,class:w(["VPFooter",{"has-sidebar":r(s)}])},[p("div",cn,[r(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,un)):f("",!0),r(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,dn)):f("",!0)])],2)):f("",!0)}}),pn=b(vn,[["__scopeId","data-v-50f76801"]]);function hn(){const{theme:o,frontmatter:e}=P(),t=ye([]),s=g(()=>t.value.length>0);return x(()=>{t.value=_e(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const fn=o=>(C("data-v-c4b0adf9"),o=o(),H(),o),_n={class:"menu-text"},mn=fn(()=>p("span",{class:"vpi-chevron-right icon"},null,-1)),kn={class:"header"},bn={class:"outline"},$n=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=P(),s=I(!1),n=I(0),i=I(),u=I();function h(y){var L;(L=i.value)!=null&&L.contains(y.target)||(s.value=!1)}G(s,y=>{if(y){document.addEventListener("click",h);return}document.removeEventListener("click",h)}),We("Escape",()=>{s.value=!1}),x(()=>{s.value=!1});function d(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function $(y){y.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),Ke(()=>{s.value=!1}))}function V(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(y,L)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:Ve({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[y.headers.length>0?(a(),c("button",{key:0,onClick:d,class:w({open:s.value})},[p("span",_n,T(r(we)(r(t))),1),mn],2)):(a(),c("button",{key:1,onClick:V},T(r(t).returnToTopLabel||"Return to top"),1)),m(de,{name:"flyout"},{default:v(()=>[s.value?(a(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:$},[p("div",kn,[p("a",{class:"top-link",href:"#",onClick:V},T(r(t).returnToTopLabel||"Return to top"),1)]),p("div",bn,[m(Ne,{headers:y.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),gn=b($n,[["__scopeId","data-v-c4b0adf9"]]),yn=o=>(C("data-v-513d39e6"),o=o(),H(),o),Pn={class:"container"},Vn=["aria-expanded"],Ln=yn(()=>p("span",{class:"vpi-align-left menu-icon"},null,-1)),Sn={class:"menu-text"},Tn=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=U(),{headers:n}=hn(),{y:i}=Le(),u=I(0);K(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{n.value=_e(t.value.outline??e.value.outline)});const h=g(()=>n.value.length===0),d=g(()=>h.value&&!s.value),$=g(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:h.value,fixed:d.value}));return(V,y)=>r(t).layout!=="home"&&(!d.value||r(i)>=u.value)?(a(),c("div",{key:0,class:w($.value)},[p("div",Pn,[r(s)?(a(),c("button",{key:0,class:"menu","aria-expanded":V.open,"aria-controls":"VPSidebarNav",onClick:y[0]||(y[0]=L=>V.$emit("open-menu"))},[Ln,p("span",Sn,T(r(e).sidebarMenuLabel||"Menu"),1)],8,Vn)):f("",!0),m(gn,{headers:r(n),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),In=b(Tn,[["__scopeId","data-v-513d39e6"]]);function wn(){const o=I(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const i=ee();return G(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const Nn={},Mn={class:"VPSwitch",type:"button",role:"switch"},An={class:"check"},Bn={key:0,class:"icon"};function Cn(o,e){return a(),c("button",Mn,[p("span",An,[o.$slots.default?(a(),c("span",Bn,[l(o.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Hn=b(Nn,[["render",Cn],["__scopeId","data-v-793caf05"]]),Ae=o=>(C("data-v-38c704f2"),o=o(),H(),o),En=Ae(()=>p("span",{class:"vpi-sun sun"},null,-1)),Fn=Ae(()=>p("span",{class:"vpi-moon moon"},null,-1)),Dn=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=P(),s=te("toggle-appearance",()=>{e.value=!e.value}),n=I("");return he(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,u)=>(a(),k(Hn,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:v(()=>[En,Fn]),_:1},8,["title","aria-checked","onClick"]))}}),me=b(Dn,[["__scopeId","data-v-38c704f2"]]),On={key:0,class:"VPNavBarAppearance"},Gn=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=P();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),c("div",On,[m(me)])):f("",!0)}}),Un=b(Gn,[["__scopeId","data-v-fd625bab"]]),ke=I();let Be=!1,re=0;function jn(o){const e=I(!1);if(oe){!Be&&zn(),re++;const t=G(ke,s=>{var n,i,u;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});pe(()=>{t(),re--,re||qn()})}return Je(e)}function zn(){document.addEventListener("focusin",Ce),Be=!0,ke.value=document.activeElement}function qn(){document.removeEventListener("focusin",Ce)}function Ce(){ke.value=document.activeElement}const Wn={class:"VPMenuLink"},Kn=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,s)=>(a(),c("div",Wn,[m(D,{class:w({active:r(W)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:v(()=>[O(T(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=b(Kn,[["__scopeId","data-v-a9b5eada"]]),Jn={class:"VPMenuGroup"},Rn={key:0,class:"title"},Yn=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Jn,[e.text?(a(),c("p",Rn,T(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),c(M,null,["link"in s?(a(),k(ne,{key:0,item:s},null,8,["item"])):f("",!0)],64))),256))]))}}),Qn=b(Yn,[["__scopeId","data-v-6d568c27"]]),Xn={class:"VPMenu"},Zn={key:0,class:"items"},xn=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",Xn,[e.items?(a(),c("div",Zn,[(a(!0),c(M,null,E(e.items,s=>(a(),c(M,{key:JSON.stringify(s)},["link"in s?(a(),k(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),k(F(s.component),q({key:1,ref_for:!0},s.props),null,16)):(a(),k(Qn,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),es=b(xn,[["__scopeId","data-v-36a6a4be"]]),ts=o=>(C("data-v-6d56b0ed"),o=o(),H(),o),os=["aria-expanded","aria-label"],ns={key:0,class:"text"},ss=["innerHTML"],as=ts(()=>p("span",{class:"vpi-chevron-down text-icon"},null,-1)),rs={key:1,class:"vpi-more-horizontal icon"},is={class:"menu"},ls=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=I(!1),t=I();jn({el:t,onBlur:s});function s(){e.value=!1}return(n,i)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=u=>e.value=!0),onMouseleave:i[2]||(i[2]=u=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:i[0]||(i[0]=u=>e.value=!e.value)},[n.button||n.icon?(a(),c("span",ns,[n.icon?(a(),c("span",{key:0,class:w([n.icon,"option-icon"])},null,2)):f("",!0),n.button?(a(),c("span",{key:1,innerHTML:n.button},null,8,ss)):f("",!0),as])):(a(),c("span",rs))],8,os),p("div",is,[m(es,{items:n.items},{default:v(()=>[l(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),be=b(ls,[["__scopeId","data-v-6d56b0ed"]]),cs=["href","aria-label","innerHTML"],us=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=g(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,n)=>(a(),c("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,cs))}}),ds=b(us,[["__scopeId","data-v-36d54f99"]]),vs={class:"VPSocialLinks"},ps=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",vs,[(a(!0),c(M,null,E(e.links,({link:s,icon:n,ariaLabel:i})=>(a(),k(ds,{key:s,icon:n,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),$e=b(ps,[["__scopeId","data-v-0ada25a4"]]),hs={key:0,class:"group translations"},fs={class:"trans-title"},_s={key:1,class:"group"},ms={class:"item appearance"},ks={class:"label"},bs={class:"appearance-action"},$s={key:2,class:"group"},gs={class:"item social-links"},ys=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=P(),{localeLinks:s,currentLang:n}=Y({correspondingLink:!0}),i=g(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>i.value?(a(),k(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[r(s).length&&r(n).label?(a(),c("div",hs,[p("p",fs,T(r(n).label),1),(a(!0),c(M,null,E(r(s),d=>(a(),k(ne,{key:d.link,item:d},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),c("div",_s,[p("div",ms,[p("p",ks,T(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",bs,[m(me)])])])):f("",!0),r(t).socialLinks?(a(),c("div",$s,[p("div",gs,[m($e,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Ps=b(ys,[["__scopeId","data-v-8ac0e455"]]),Vs=o=>(C("data-v-9b302893"),o=o(),H(),o),Ls=["aria-expanded"],Ss=Vs(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),Ts=[Ss],Is=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:w(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},Ts,10,Ls))}}),ws=b(Is,[["__scopeId","data-v-9b302893"]]),Ns=["innerHTML"],Ms=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,s)=>(a(),k(D,{class:w({VPNavBarMenuLink:!0,active:r(W)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,Ns)]),_:1},8,["class","href","noIcon","target","rel"]))}}),As=b(Ms,[["__scopeId","data-v-4ca2fdac"]]),Bs=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=P(),s=i=>"component"in i?!1:"link"in i?W(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),n=g(()=>s(e.item));return(i,u)=>(a(),k(be,{class:w({VPNavBarMenuGroup:!0,active:r(W)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Cs=o=>(C("data-v-ae469694"),o=o(),H(),o),Hs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Es=Cs(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Fs=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=P();return(t,s)=>r(e).nav?(a(),c("nav",Hs,[Es,(a(!0),c(M,null,E(r(e).nav,n=>(a(),c(M,{key:JSON.stringify(n)},["link"in n?(a(),k(As,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(F(n.component),q({key:1,ref_for:!0},n.props),null,16)):(a(),k(Bs,{key:2,item:n},null,8,["item"]))],64))),128))])):f("",!0)}}),Ds=b(Fs,[["__scopeId","data-v-ae469694"]]);function Os(o){const{localeIndex:e,theme:t}=P();function s(n){var A,B,S;const i=n.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",d=h&&((S=(B=u.locales)==null?void 0:B[e.value])==null?void 0:S.translations)||null,$=h&&u.translations||null;let V=d,y=$,L=o;const N=i.pop();for(const j of i){let z=null;const R=L==null?void 0:L[j];R&&(z=L=R);const se=y==null?void 0:y[j];se&&(z=y=se);const ae=V==null?void 0:V[j];ae&&(z=V=ae),R||(L=z),se||(y=z),ae||(V=z)}return(V==null?void 0:V[N])??(y==null?void 0:y[N])??(L==null?void 0:L[N])??""}return s}const Gs=["aria-label"],Us={class:"DocSearch-Button-Container"},js=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),zs={class:"DocSearch-Button-Placeholder"},qs=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ge=_({__name:"VPNavBarSearchButton",setup(o){const t=Os({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",Us,[js,p("span",zs,T(r(t)("button.buttonText")),1)]),qs],8,Gs))}}),Ws={class:"VPNavBarSearch"},Ks={id:"local-search"},Js={key:1,id:"docsearch"},Rs=_({__name:"VPNavBarSearch",setup(o){const e=()=>null,t=()=>null,{theme:s}=P(),n=I(!1),i=I(!1);K(()=>{});function u(){n.value||(n.value=!0,setTimeout(h,16))}function h(){const V=new Event("keydown");V.key="k",V.metaKey=!0,window.dispatchEvent(V),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}const d=I(!1),$="";return(V,y)=>{var L;return a(),c("div",Ws,[r($)==="local"?(a(),c(M,{key:0},[d.value?(a(),k(r(e),{key:0,onClose:y[0]||(y[0]=N=>d.value=!1)})):f("",!0),p("div",Ks,[m(ge,{onClick:y[1]||(y[1]=N=>d.value=!0)})])],64)):r($)==="algolia"?(a(),c(M,{key:1},[n.value?(a(),k(r(t),{key:0,algolia:((L=r(s).search)==null?void 0:L.options)??r(s).algolia,onVnodeBeforeMount:y[2]||(y[2]=N=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),c("div",Js,[m(ge,{onClick:u})]))],64)):f("",!0)])}}}),Ys=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=P();return(t,s)=>r(e).socialLinks?(a(),k($e,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Qs=b(Ys,[["__scopeId","data-v-9b3d2141"]]),Xs=["href","rel","target"],Zs={key:1},xs={key:2},ea=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=P(),{hasSidebar:s}=U(),{currentLang:n}=Y(),i=g(()=>{var d;return typeof t.value.logoLink=="string"?t.value.logoLink:(d=t.value.logoLink)==null?void 0:d.link}),u=g(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.rel}),h=g(()=>{var d;return typeof t.value.logoLink=="string"||(d=t.value.logoLink)==null?void 0:d.target});return(d,$)=>(a(),c("div",{class:w(["VPNavBarTitle",{"has-sidebar":r(s)}])},[p("a",{class:"title",href:i.value??r(fe)(r(n).link),rel:u.value,target:h.value},[l(d.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),k(X,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),c("span",Zs,T(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),c("span",xs,T(r(e).title),1)):f("",!0),l(d.$slots,"nav-bar-title-after",{},void 0,!0)],8,Xs)],2))}}),ta=b(ea,[["__scopeId","data-v-73c882b0"]]),oa={class:"items"},na={class:"title"},sa=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=P(),{localeLinks:t,currentLang:s}=Y({correspondingLink:!0});return(n,i)=>r(t).length&&r(s).label?(a(),k(be,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:v(()=>[p("div",oa,[p("p",na,T(r(s).label),1),(a(!0),c(M,null,E(r(t),u=>(a(),k(ne,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),aa=b(sa,[["__scopeId","data-v-ba521018"]]),ra=o=>(C("data-v-af8d762d"),o=o(),H(),o),ia={class:"wrapper"},la={class:"container"},ca={class:"title"},ua={class:"content"},da={class:"content-body"},va=ra(()=>p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1)),pa=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=Le(),{hasSidebar:s}=U(),{frontmatter:n}=P(),i=I({});return he(()=>{i.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,h)=>(a(),c("div",{class:w(["VPNavBar",i.value])},[p("div",ia,[p("div",la,[p("div",ca,[m(ta,null,{"nav-bar-title-before":v(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",ua,[p("div",da,[l(u.$slots,"nav-bar-content-before",{},void 0,!0),m(Rs,{class:"search"}),m(Ds,{class:"menu"}),m(aa,{class:"translations"}),m(Un,{class:"appearance"}),m(Qs,{class:"social-links"}),m(Ps,{class:"extra"}),l(u.$slots,"nav-bar-content-after",{},void 0,!0),m(ws,{class:"hamburger",active:u.isScreenOpen,onClick:h[0]||(h[0]=d=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),va],2))}}),ha=b(pa,[["__scopeId","data-v-af8d762d"]]),fa={key:0,class:"VPNavScreenAppearance"},_a={class:"text"},ma=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=P();return(s,n)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),c("div",fa,[p("p",_a,T(r(t).darkModeSwitchLabel||"Appearance"),1),m(me)])):f("",!0)}}),ka=b(ma,[["__scopeId","data-v-89b5e60a"]]),ba=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,s)=>(a(),k(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),$a=b(ba,[["__scopeId","data-v-1dbea2c1"]]),ga=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,s)=>(a(),k(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:v(()=>[O(T(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),He=b(ga,[["__scopeId","data-v-bfeb9577"]]),ya={class:"VPNavScreenMenuGroupSection"},Pa={key:0,class:"title"},Va=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",ya,[e.text?(a(),c("p",Pa,T(e.text),1)):f("",!0),(a(!0),c(M,null,E(e.items,s=>(a(),k(He,{key:s.text,item:s},null,8,["item"]))),128))]))}}),La=b(Va,[["__scopeId","data-v-479edfcd"]]),Sa=o=>(C("data-v-c2cd7d8e"),o=o(),H(),o),Ta=["aria-controls","aria-expanded"],Ia=["innerHTML"],wa=Sa(()=>p("span",{class:"vpi-plus button-icon"},null,-1)),Na=["id"],Ma={key:0,class:"item"},Aa={key:1,class:"item"},Ba={key:2,class:"group"},Ca=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=I(!1),s=g(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(i,u)=>(a(),c("div",{class:w(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[p("span",{class:"button-text",innerHTML:i.text},null,8,Ia),wa],8,Ta),p("div",{id:s.value,class:"items"},[(a(!0),c(M,null,E(i.items,h=>(a(),c(M,{key:JSON.stringify(h)},["link"in h?(a(),c("div",Ma,[m(He,{item:h},null,8,["item"])])):"component"in h?(a(),c("div",Aa,[(a(),k(F(h.component),q({ref_for:!0},h.props,{"screen-menu":""}),null,16))])):(a(),c("div",Ba,[m(La,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Na)],2))}}),Ha=b(Ca,[["__scopeId","data-v-c2cd7d8e"]]),Ea={key:0,class:"VPNavScreenMenu"},Fa=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=P();return(t,s)=>r(e).nav?(a(),c("nav",Ea,[(a(!0),c(M,null,E(r(e).nav,n=>(a(),c(M,{key:JSON.stringify(n)},["link"in n?(a(),k($a,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(F(n.component),q({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),k(Ha,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Da=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=P();return(t,s)=>r(e).socialLinks?(a(),k($e,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Ee=o=>(C("data-v-7397f3c0"),o=o(),H(),o),Oa=Ee(()=>p("span",{class:"vpi-languages icon lang"},null,-1)),Ga=Ee(()=>p("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Ua={class:"list"},ja=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),s=I(!1);function n(){s.value=!s.value}return(i,u)=>r(e).length&&r(t).label?(a(),c("div",{key:0,class:w(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:n},[Oa,O(" "+T(r(t).label)+" ",1),Ga]),p("ul",Ua,[(a(!0),c(M,null,E(r(e),h=>(a(),c("li",{key:h.link,class:"item"},[m(D,{class:"link",href:h.link},{default:v(()=>[O(T(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),za=b(ja,[["__scopeId","data-v-7397f3c0"]]),qa={class:"container"},Wa=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=I(null),t=Se(oe?document.body:null);return(s,n)=>(a(),k(de,{name:"fade",onEnter:n[0]||(n[0]=i=>t.value=!0),onAfterLeave:n[1]||(n[1]=i=>t.value=!1)},{default:v(()=>[s.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",qa,[l(s.$slots,"nav-screen-content-before",{},void 0,!0),m(Fa,{class:"menu"}),m(za,{class:"translations"}),m(ka,{class:"appearance"}),m(Da,{class:"social-links"}),l(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Ka=b(Wa,[["__scopeId","data-v-9061cc92"]]),Ja={key:0,class:"VPNav"},Ra=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=wn(),{frontmatter:n}=P(),i=g(()=>n.value.navbar!==!1);return Te("close-screen",t),Z(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(u,h)=>i.value?(a(),c("header",Ja,[m(ha,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":v(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),m(Ka,{open:r(e)},{"nav-screen-content-before":v(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Ya=b(Ra,[["__scopeId","data-v-0c3b3583"]]),Fe=o=>(C("data-v-e6240f47"),o=o(),H(),o),Qa=["role","tabindex"],Xa=Fe(()=>p("div",{class:"indicator"},null,-1)),Za=Fe(()=>p("span",{class:"vpi-chevron-right caret-icon"},null,-1)),xa=[Za],er={key:1,class:"items"},tr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:i,hasActiveLink:u,hasChildren:h,toggle:d}=kt(g(()=>e.item)),$=g(()=>h.value?"section":"div"),V=g(()=>n.value?"a":"div"),y=g(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),L=g(()=>n.value?void 0:"button"),N=g(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":i.value},{"has-active":u.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&d()}function B(){e.item.link&&d()}return(S,j)=>{const z=J("VPSidebarItem",!0);return a(),k(F($.value),{class:w(["VPSidebarItem",N.value])},{default:v(()=>[S.item.text?(a(),c("div",q({key:0,class:"item",role:L.value},Ye(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[Xa,S.item.link?(a(),k(D,{key:0,tag:V.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:v(()=>[(a(),k(F(y.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(F(y.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:B,onKeydown:Re(B,["enter"]),tabindex:"0"},xa,32)):f("",!0)],16,Qa)):f("",!0),S.item.items&&S.item.items.length?(a(),c("div",er,[S.depth<5?(a(!0),c(M,{key:0},E(S.item.items,R=>(a(),k(z,{key:R.text,item:R,depth:S.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),or=b(tr,[["__scopeId","data-v-e6240f47"]]),nr=_({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=I(!0);let t=null;return K(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Qe(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),c(M,null,E(s.items,i=>(a(),c("div",{key:i.text,class:w(["group",{"no-transition":e.value}])},[m(or,{item:i,depth:0},null,8,["item"])],2))),128))}}),sr=b(nr,[["__scopeId","data-v-c4d8cef8"]]),De=o=>(C("data-v-a2c838fb"),o=o(),H(),o),ar=De(()=>p("div",{class:"curtain"},null,-1)),rr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ir=De(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),lr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=U(),s=o,n=I(null),i=Se(oe?document.body:null);G([s,n],()=>{var h;s.open?(i.value=!0,(h=n.value)==null||h.focus()):i.value=!1},{immediate:!0,flush:"post"});const u=I(0);return G(e,()=>{u.value+=1},{deep:!0}),(h,d)=>r(t)?(a(),c("aside",{key:0,class:w(["VPSidebar",{open:h.open}]),ref_key:"navEl",ref:n,onClick:d[0]||(d[0]=Xe(()=>{},["stop"]))},[ar,p("nav",rr,[ir,l(h.$slots,"sidebar-nav-before",{},void 0,!0),(a(),k(sr,{items:r(e),key:u.value},null,8,["items"])),l(h.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),cr=b(lr,[["__scopeId","data-v-a2c838fb"]]),ur=_({__name:"VPSkipLink",setup(o){const e=ee(),t=I();G(()=>e.path,()=>t.value.focus());function s({target:n}){const i=document.getElementById(decodeURIComponent(n.hash).slice(1));if(i){const u=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",u)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",u),i.focus(),window.scrollTo(0,0)}}return(n,i)=>(a(),c(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),dr=b(ur,[["__scopeId","data-v-efdf7a7d"]]),vr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=U(),n=ee();G(()=>n.path,s),mt(e,s);const{frontmatter:i}=P(),u=Ze(),h=g(()=>!!u["home-hero-image"]);return Te("hero-image-slot-exists",h),(d,$)=>{const V=J("Content");return r(i).layout!==!1?(a(),c("div",{key:0,class:w(["Layout",r(i).pageClass])},[l(d.$slots,"layout-top",{},void 0,!0),m(dr),m(ot,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),m(Ya,null,{"nav-bar-title-before":v(()=>[l(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[l(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[l(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[l(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[l(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[l(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),m(In,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),m(cr,{open:r(e)},{"sidebar-nav-before":v(()=>[l(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[l(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),m(ln,null,{"page-top":v(()=>[l(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[l(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[l(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[l(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[l(d.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[l(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[l(d.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[l(d.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[l(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[l(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[l(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[l(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[l(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[l(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[l(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[l(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[l(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[l(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[l(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[l(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[l(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[l(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[l(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),m(pn),l(d.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(V,{key:1}))}}}),pr=b(vr,[["__scopeId","data-v-8e016544"]]),fr={Layout:pr,enhanceApp:({app:o})=>{o.component("Badge",xe)}};export{fr as t}; diff --git a/assets/index.md.CJvRmMfL.js b/assets/index.md.CJvRmMfL.js new file mode 100644 index 0000000..7162b9e --- /dev/null +++ b/assets/index.md.CJvRmMfL.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a}from"./chunks/framework.BV61Qrc0.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"MBCP docs","text":"More basic change particle","tagline":"用于几何运算和粒子制作的库","actions":[{"theme":"brand","text":"快速开始","link":"md-ex"},{"theme":"alt","text":"API文档","link":"api/"}]},"features":[{"title":"高可用性","details":"通过简单的接口,实现了大部分几何运算和粒子制作的需求"},{"title":"高集成度","details":"对numpyscipysumpy进行了封装和集成,使脚本编写像使用Geogebra一样简单"},{"title":"内置预设","details":"提供了大量的预设,包括常见的几何图形、粒子效果等,方便快速制作"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),o={name:"index.md"};function i(c,n,d,s,r,l){return a(),t("div")}const x=e(o,[["render",i]]);export{p as __pageData,x as default}; diff --git a/assets/index.md.CJvRmMfL.lean.js b/assets/index.md.CJvRmMfL.lean.js new file mode 100644 index 0000000..7162b9e --- /dev/null +++ b/assets/index.md.CJvRmMfL.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a}from"./chunks/framework.BV61Qrc0.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"MBCP docs","text":"More basic change particle","tagline":"用于几何运算和粒子制作的库","actions":[{"theme":"brand","text":"快速开始","link":"md-ex"},{"theme":"alt","text":"API文档","link":"api/"}]},"features":[{"title":"高可用性","details":"通过简单的接口,实现了大部分几何运算和粒子制作的需求"},{"title":"高集成度","details":"对numpyscipysumpy进行了封装和集成,使脚本编写像使用Geogebra一样简单"},{"title":"内置预设","details":"提供了大量的预设,包括常见的几何图形、粒子效果等,方便快速制作"}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),o={name:"index.md"};function i(c,n,d,s,r,l){return a(),t("div")}const x=e(o,[["render",i]]);export{p as __pageData,x as default}; diff --git a/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 b/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 new file mode 100644 index 0000000..b6b603d Binary files /dev/null and b/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 differ diff --git a/assets/inter-italic-cyrillic.By2_1cv3.woff2 b/assets/inter-italic-cyrillic.By2_1cv3.woff2 new file mode 100644 index 0000000..def40a4 Binary files /dev/null and b/assets/inter-italic-cyrillic.By2_1cv3.woff2 differ diff --git a/assets/inter-italic-greek-ext.1u6EdAuj.woff2 b/assets/inter-italic-greek-ext.1u6EdAuj.woff2 new file mode 100644 index 0000000..e070c3d Binary files /dev/null and b/assets/inter-italic-greek-ext.1u6EdAuj.woff2 differ diff --git a/assets/inter-italic-greek.DJ8dCoTZ.woff2 b/assets/inter-italic-greek.DJ8dCoTZ.woff2 new file mode 100644 index 0000000..a3c16ca Binary files /dev/null and b/assets/inter-italic-greek.DJ8dCoTZ.woff2 differ diff --git a/assets/inter-italic-latin-ext.CN1xVJS-.woff2 b/assets/inter-italic-latin-ext.CN1xVJS-.woff2 new file mode 100644 index 0000000..2210a89 Binary files /dev/null and b/assets/inter-italic-latin-ext.CN1xVJS-.woff2 differ diff --git a/assets/inter-italic-latin.C2AdPX0b.woff2 b/assets/inter-italic-latin.C2AdPX0b.woff2 new file mode 100644 index 0000000..790d62d Binary files /dev/null and b/assets/inter-italic-latin.C2AdPX0b.woff2 differ diff --git a/assets/inter-italic-vietnamese.BSbpV94h.woff2 b/assets/inter-italic-vietnamese.BSbpV94h.woff2 new file mode 100644 index 0000000..1eec077 Binary files /dev/null and b/assets/inter-italic-vietnamese.BSbpV94h.woff2 differ diff --git a/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 b/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 new file mode 100644 index 0000000..2cfe615 Binary files /dev/null and b/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 differ diff --git a/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 b/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 new file mode 100644 index 0000000..e3886dd Binary files /dev/null and b/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 differ diff --git a/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 b/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 new file mode 100644 index 0000000..36d6748 Binary files /dev/null and b/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 differ diff --git a/assets/inter-roman-greek.BBVDIX6e.woff2 b/assets/inter-roman-greek.BBVDIX6e.woff2 new file mode 100644 index 0000000..2bed1e8 Binary files /dev/null and b/assets/inter-roman-greek.BBVDIX6e.woff2 differ diff --git a/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 b/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 new file mode 100644 index 0000000..9a8d1e2 Binary files /dev/null and b/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 differ diff --git a/assets/inter-roman-latin.Di8DUHzh.woff2 b/assets/inter-roman-latin.Di8DUHzh.woff2 new file mode 100644 index 0000000..07d3c53 Binary files /dev/null and b/assets/inter-roman-latin.Di8DUHzh.woff2 differ diff --git a/assets/inter-roman-vietnamese.BjW4sHH5.woff2 b/assets/inter-roman-vietnamese.BjW4sHH5.woff2 new file mode 100644 index 0000000..57bdc22 Binary files /dev/null and b/assets/inter-roman-vietnamese.BjW4sHH5.woff2 differ diff --git a/assets/md-ex.md.BX0WqOqv.js b/assets/md-ex.md.BX0WqOqv.js new file mode 100644 index 0000000..31360cd --- /dev/null +++ b/assets/md-ex.md.BX0WqOqv.js @@ -0,0 +1,33 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const g=JSON.parse('{"title":"Markdown Extension Examples","description":"","frontmatter":{},"headers":[],"relativePath":"md-ex.md","filePath":"md-ex.md"}'),t={name:"md-ex.md"},e=n(`

Markdown Extension Examples

This page demonstrates some of the built-in markdown extensions provided by VitePress.

Syntax Highlighting

VitePress provides Syntax Highlighting powered by Shiki, with additional features like line-highlighting:

Input

md
\`\`\`js{4}
+export default {
+  data () {
+    return {
+      msg: 'Highlighted!'
+    }
+  }
+}
+\`\`\`

Output

js
export default {
+  data () {
+    return {
+      msg: 'Highlighted!'
+    }
+  }
+}

Custom Containers

Input

md
::: info
+This is an info box.
+:::
+
+::: tip
+This is a tip.
+:::
+
+::: warning
+This is a warning.
+:::
+
+::: danger
+This is a dangerous warning.
+:::
+
+::: details
+This is a details block.
+:::

Output

INFO

This is an info box.

TIP

This is a tip.

WARNING

This is a warning.

DANGER

This is a dangerous warning.

Details

This is a details block.

More

Check out the documentation for the full list of markdown extensions.

`,19),l=[e];function p(h,k,r,d,o,E){return a(),i("div",null,l)}const m=s(t,[["render",p]]);export{g as __pageData,m as default}; diff --git a/assets/md-ex.md.BX0WqOqv.lean.js b/assets/md-ex.md.BX0WqOqv.lean.js new file mode 100644 index 0000000..f08e7fd --- /dev/null +++ b/assets/md-ex.md.BX0WqOqv.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a2 as n}from"./chunks/framework.BV61Qrc0.js";const g=JSON.parse('{"title":"Markdown Extension Examples","description":"","frontmatter":{},"headers":[],"relativePath":"md-ex.md","filePath":"md-ex.md"}'),t={name:"md-ex.md"},e=n("",19),l=[e];function p(h,k,r,d,o,E){return a(),i("div",null,l)}const m=s(t,[["render",p]]);export{g as __pageData,m as default}; diff --git a/assets/style.Bb0QBJmh.css b/assets/style.Bb0QBJmh.css new file mode 100644 index 0000000..b26e9bf --- /dev/null +++ b/assets/style.Bb0QBJmh.css @@ -0,0 +1 @@ +@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-3cecd3dd]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-3cecd3dd],.VPBackdrop.fade-leave-to[data-v-3cecd3dd]{opacity:0}.VPBackdrop.fade-leave-active[data-v-3cecd3dd]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-3cecd3dd]{display:none}}.NotFound[data-v-794c8617]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-794c8617]{padding:96px 32px 168px}}.code[data-v-794c8617]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-794c8617]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-794c8617]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-794c8617]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-794c8617]{padding-top:20px}.link[data-v-794c8617]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-794c8617]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-f55eb20b]{position:relative;z-index:1}.nested[data-v-f55eb20b]{padding-right:16px;padding-left:16px}.outline-link[data-v-f55eb20b]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-f55eb20b]:hover,.outline-link.active[data-v-f55eb20b]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-f55eb20b]{padding-left:13px}.VPDocAsideOutline[data-v-e9eccece]{display:none}.VPDocAsideOutline.has-outline[data-v-e9eccece]{display:block}.content[data-v-e9eccece]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-e9eccece]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-e9eccece]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-9030d96a]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-9030d96a]{flex-grow:1}.VPDocAside[data-v-9030d96a] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-9030d96a] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-9030d96a] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-0d7790be]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-0d7790be]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-f33b051d]{margin-top:64px}.edit-info[data-v-f33b051d]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-f33b051d]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-f33b051d]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-f33b051d]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-f33b051d]{margin-right:8px}.prev-next[data-v-f33b051d]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-f33b051d]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-f33b051d]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-f33b051d]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-f33b051d]{margin-left:auto;text-align:right}.desc[data-v-f33b051d]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-f33b051d]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-aa782c77]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-aa782c77]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-aa782c77]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-aa782c77]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-aa782c77]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-aa782c77]{display:flex;justify-content:center}.VPDoc .aside[data-v-aa782c77]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-aa782c77]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-aa782c77]{max-width:1104px}}.container[data-v-aa782c77]{margin:0 auto;width:100%}.aside[data-v-aa782c77]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-aa782c77]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-aa782c77]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-aa782c77]::-webkit-scrollbar{display:none}.aside-curtain[data-v-aa782c77]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-aa782c77]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-aa782c77]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-aa782c77]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-aa782c77]{order:1;margin:0;min-width:640px}}.content-container[data-v-aa782c77]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-aa782c77]{max-width:688px}.VPButton[data-v-2c313aad]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-2c313aad]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-2c313aad]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-2c313aad]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-2c313aad]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-2c313aad]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-2c313aad]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-2c313aad]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-2c313aad]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-2c313aad]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-2c313aad]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-2c313aad]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-2c313aad]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-778ce7b3]{display:none}.dark .VPImage.light[data-v-778ce7b3]{display:none}.VPHero[data-v-1e5b8ae1]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-1e5b8ae1]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-1e5b8ae1]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-1e5b8ae1]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-1e5b8ae1]{flex-direction:row}}.main[data-v-1e5b8ae1]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-1e5b8ae1]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-1e5b8ae1]{text-align:left}}@media (min-width: 960px){.main[data-v-1e5b8ae1]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-1e5b8ae1]{max-width:592px}}.name[data-v-1e5b8ae1],.text[data-v-1e5b8ae1]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-1e5b8ae1],.VPHero.has-image .text[data-v-1e5b8ae1]{margin:0 auto}.name[data-v-1e5b8ae1]{color:var(--vp-home-hero-name-color)}.clip[data-v-1e5b8ae1]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-1e5b8ae1],.text[data-v-1e5b8ae1]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-1e5b8ae1],.text[data-v-1e5b8ae1]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-1e5b8ae1],.VPHero.has-image .text[data-v-1e5b8ae1]{margin:0}}.tagline[data-v-1e5b8ae1]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-1e5b8ae1]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-1e5b8ae1]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-1e5b8ae1]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-1e5b8ae1]{margin:0}}.actions[data-v-1e5b8ae1]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-1e5b8ae1]{justify-content:center}@media (min-width: 640px){.actions[data-v-1e5b8ae1]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-1e5b8ae1]{justify-content:flex-start}}.action[data-v-1e5b8ae1]{flex-shrink:0;padding:6px}.image[data-v-1e5b8ae1]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-1e5b8ae1]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-1e5b8ae1]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-1e5b8ae1]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-1e5b8ae1]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-1e5b8ae1]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-1e5b8ae1]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-1e5b8ae1]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-1e5b8ae1]{width:320px;height:320px}}[data-v-1e5b8ae1] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-1e5b8ae1] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-1e5b8ae1] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-dc42ca30]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-dc42ca30]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-dc42ca30]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-dc42ca30]>.VPImage{margin-bottom:20px}.icon[data-v-dc42ca30]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-dc42ca30]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-dc42ca30]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-dc42ca30]{padding-top:8px}.link-text-value[data-v-dc42ca30]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-dc42ca30]{margin-left:6px}.VPFeatures[data-v-d6e8dd35]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-d6e8dd35]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-d6e8dd35]{padding:0 64px}}.container[data-v-d6e8dd35]{margin:0 auto;max-width:1152px}.items[data-v-d6e8dd35]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-d6e8dd35]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-d6e8dd35],.item.grid-4[data-v-d6e8dd35],.item.grid-6[data-v-d6e8dd35]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-d6e8dd35],.item.grid-4[data-v-d6e8dd35]{width:50%}.item.grid-3[data-v-d6e8dd35],.item.grid-6[data-v-d6e8dd35]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-d6e8dd35]{width:25%}}.container[data-v-811aea7b]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-811aea7b]{padding:0 48px}}@media (min-width: 960px){.container[data-v-811aea7b]{width:100%;padding:0 64px}}.vp-doc[data-v-811aea7b] .VPHomeSponsors,.vp-doc[data-v-811aea7b] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-811aea7b] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-811aea7b] .VPHomeSponsors a,.vp-doc[data-v-811aea7b] .VPTeamPage a{text-decoration:none}.VPHome[data-v-4dea4f14]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-4dea4f14]{margin-bottom:128px}}.VPContent[data-v-4fa77a91]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-4fa77a91]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-4fa77a91]{margin:0}@media (min-width: 960px){.VPContent[data-v-4fa77a91]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-4fa77a91]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-4fa77a91]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-50f76801]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-50f76801]{display:none}.VPFooter[data-v-50f76801] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-50f76801] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-50f76801]{padding:32px}}.container[data-v-50f76801]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-50f76801],.copyright[data-v-50f76801]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-c4b0adf9]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-c4b0adf9]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-c4b0adf9]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-c4b0adf9]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-c4b0adf9]{color:var(--vp-c-text-1)}.icon[data-v-c4b0adf9]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-c4b0adf9]{font-size:14px}.icon[data-v-c4b0adf9]{font-size:16px}}.open>.icon[data-v-c4b0adf9]{transform:rotate(90deg)}.items[data-v-c4b0adf9]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-c4b0adf9]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-c4b0adf9]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-c4b0adf9]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-c4b0adf9]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-c4b0adf9]{transition:all .2s ease-out}.flyout-leave-active[data-v-c4b0adf9]{transition:all .15s ease-in}.flyout-enter-from[data-v-c4b0adf9],.flyout-leave-to[data-v-c4b0adf9]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-513d39e6]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-513d39e6]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-513d39e6]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-513d39e6]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-513d39e6]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-513d39e6]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-513d39e6]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-513d39e6]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-513d39e6]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-513d39e6]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-513d39e6]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-513d39e6]{display:none}}.menu-icon[data-v-513d39e6]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-513d39e6]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-513d39e6]{padding:12px 32px 11px}}.VPSwitch[data-v-793caf05]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-793caf05]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-793caf05]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-793caf05]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-793caf05] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-793caf05] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-38c704f2]{opacity:1}.moon[data-v-38c704f2],.dark .sun[data-v-38c704f2]{opacity:0}.dark .moon[data-v-38c704f2]{opacity:1}.dark .VPSwitchAppearance[data-v-38c704f2] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-fd625bab]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-fd625bab]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-a9b5eada]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-a9b5eada]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-a9b5eada]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-a9b5eada]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-6d568c27]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-6d568c27]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-6d568c27]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-6d568c27]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-36a6a4be]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-36a6a4be] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-36a6a4be] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-36a6a4be] .group:last-child{padding-bottom:0}.VPMenu[data-v-36a6a4be] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-36a6a4be] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-36a6a4be] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-36a6a4be] .action{padding-left:24px}.VPFlyout[data-v-6d56b0ed]{position:relative}.VPFlyout[data-v-6d56b0ed]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-6d56b0ed]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-6d56b0ed]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-6d56b0ed]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-6d56b0ed]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-6d56b0ed],.button[aria-expanded=true]+.menu[data-v-6d56b0ed]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-6d56b0ed]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-6d56b0ed]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-6d56b0ed]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-6d56b0ed]{margin-right:0;font-size:16px}.text-icon[data-v-6d56b0ed]{margin-left:4px;font-size:14px}.icon[data-v-6d56b0ed]{font-size:20px;transition:fill .25s}.menu[data-v-6d56b0ed]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-36d54f99]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-36d54f99]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-36d54f99]>svg,.VPSocialLink[data-v-36d54f99]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-0ada25a4]{display:flex;justify-content:center}.VPNavBarExtra[data-v-8ac0e455]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-8ac0e455]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-8ac0e455]{display:none}}.trans-title[data-v-8ac0e455]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-8ac0e455],.item.social-links[data-v-8ac0e455]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-8ac0e455]{min-width:176px}.appearance-action[data-v-8ac0e455]{margin-right:-2px}.social-links-list[data-v-8ac0e455]{margin:-4px -8px}.VPNavBarHamburger[data-v-9b302893]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-9b302893]{display:none}}.container[data-v-9b302893]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-9b302893]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-9b302893]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-9b302893]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-9b302893]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-9b302893]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-9b302893]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-9b302893],.VPNavBarHamburger.active:hover .middle[data-v-9b302893],.VPNavBarHamburger.active:hover .bottom[data-v-9b302893]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-9b302893],.middle[data-v-9b302893],.bottom[data-v-9b302893]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-9b302893]{top:0;left:0;transform:translate(0)}.middle[data-v-9b302893]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-9b302893]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-4ca2fdac]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-4ca2fdac],.VPNavBarMenuLink[data-v-4ca2fdac]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-ae469694]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-ae469694]{display:flex}}/*! @docsearch/css 3.6.1 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.30196078431372547);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}.DocSearch-Button-Key--pressed{transform:translate3d(0,1px,0);box-shadow:var(--docsearch-key-pressed-shadow)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-9b3d2141]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-9b3d2141]{display:flex;align-items:center}}.title[data-v-73c882b0]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-73c882b0]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-73c882b0]{border-bottom-color:var(--vp-c-divider)}}[data-v-73c882b0] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-ba521018]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-ba521018]{display:flex;align-items:center}}.title[data-v-ba521018]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-af8d762d]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-af8d762d]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-af8d762d]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-af8d762d]:not(.home){background-color:transparent}.VPNavBar[data-v-af8d762d]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-af8d762d]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-af8d762d]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-af8d762d]{padding:0}}.container[data-v-af8d762d]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-af8d762d],.container>.content[data-v-af8d762d]{pointer-events:none}.container[data-v-af8d762d] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-af8d762d]{max-width:100%}}.title[data-v-af8d762d]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-af8d762d]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-af8d762d]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-af8d762d]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-af8d762d]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-af8d762d]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-af8d762d]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-af8d762d]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-af8d762d]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-af8d762d]{column-gap:.5rem}}.menu+.translations[data-v-af8d762d]:before,.menu+.appearance[data-v-af8d762d]:before,.menu+.social-links[data-v-af8d762d]:before,.translations+.appearance[data-v-af8d762d]:before,.appearance+.social-links[data-v-af8d762d]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-af8d762d]:before,.translations+.appearance[data-v-af8d762d]:before{margin-right:16px}.appearance+.social-links[data-v-af8d762d]:before{margin-left:16px}.social-links[data-v-af8d762d]{margin-right:-8px}.divider[data-v-af8d762d]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-af8d762d]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-af8d762d]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-af8d762d]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-af8d762d]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-af8d762d]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-af8d762d]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-89b5e60a]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-89b5e60a]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-1dbea2c1]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-1dbea2c1]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-bfeb9577]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-bfeb9577]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-479edfcd]{display:block}.title[data-v-479edfcd]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-c2cd7d8e]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-c2cd7d8e]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-c2cd7d8e]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-c2cd7d8e]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-c2cd7d8e]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-c2cd7d8e]{transform:rotate(45deg)}.button[data-v-c2cd7d8e]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-c2cd7d8e]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-c2cd7d8e]{transition:transform .25s}.group[data-v-c2cd7d8e]:first-child{padding-top:0}.group+.group[data-v-c2cd7d8e],.group+.item[data-v-c2cd7d8e]{padding-top:4px}.VPNavScreenTranslations[data-v-7397f3c0]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-7397f3c0]{height:auto}.title[data-v-7397f3c0]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-7397f3c0]{font-size:16px}.icon.lang[data-v-7397f3c0]{margin-right:8px}.icon.chevron[data-v-7397f3c0]{margin-left:4px}.list[data-v-7397f3c0]{padding:4px 0 0 24px}.link[data-v-7397f3c0]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-9061cc92]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-9061cc92],.VPNavScreen.fade-leave-active[data-v-9061cc92]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-9061cc92],.VPNavScreen.fade-leave-active .container[data-v-9061cc92]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-9061cc92],.VPNavScreen.fade-leave-to[data-v-9061cc92]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-9061cc92],.VPNavScreen.fade-leave-to .container[data-v-9061cc92]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-9061cc92]{display:none}}.container[data-v-9061cc92]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-9061cc92],.menu+.appearance[data-v-9061cc92],.translations+.appearance[data-v-9061cc92]{margin-top:24px}.menu+.social-links[data-v-9061cc92]{margin-top:16px}.appearance+.social-links[data-v-9061cc92]{margin-top:16px}.VPNav[data-v-0c3b3583]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-0c3b3583]{position:fixed}}.VPSidebarItem.level-0[data-v-e6240f47]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-e6240f47]{padding-bottom:10px}.item[data-v-e6240f47]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-e6240f47]{cursor:pointer}.indicator[data-v-e6240f47]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-e6240f47],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-e6240f47],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-e6240f47],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-e6240f47]{background-color:var(--vp-c-brand-1)}.link[data-v-e6240f47]{display:flex;align-items:center;flex-grow:1}.text[data-v-e6240f47]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-e6240f47]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-e6240f47],.VPSidebarItem.level-2 .text[data-v-e6240f47],.VPSidebarItem.level-3 .text[data-v-e6240f47],.VPSidebarItem.level-4 .text[data-v-e6240f47],.VPSidebarItem.level-5 .text[data-v-e6240f47]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-e6240f47],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-e6240f47],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-e6240f47],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-e6240f47],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-e6240f47],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-e6240f47]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-e6240f47],.VPSidebarItem.level-1.has-active>.item>.text[data-v-e6240f47],.VPSidebarItem.level-2.has-active>.item>.text[data-v-e6240f47],.VPSidebarItem.level-3.has-active>.item>.text[data-v-e6240f47],.VPSidebarItem.level-4.has-active>.item>.text[data-v-e6240f47],.VPSidebarItem.level-5.has-active>.item>.text[data-v-e6240f47],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-e6240f47],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-e6240f47],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-e6240f47],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-e6240f47],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-e6240f47],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-e6240f47]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-e6240f47],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-e6240f47],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-e6240f47],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-e6240f47],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-e6240f47],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-e6240f47]{color:var(--vp-c-brand-1)}.caret[data-v-e6240f47]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-e6240f47]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-e6240f47]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-e6240f47]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-e6240f47]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-e6240f47],.VPSidebarItem.level-2 .items[data-v-e6240f47],.VPSidebarItem.level-3 .items[data-v-e6240f47],.VPSidebarItem.level-4 .items[data-v-e6240f47],.VPSidebarItem.level-5 .items[data-v-e6240f47]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-e6240f47]{display:none}.no-transition[data-v-c4d8cef8] .caret-icon{transition:none}.group+.group[data-v-c4d8cef8]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-c4d8cef8]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-a2c838fb]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-a2c838fb]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-a2c838fb]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-a2c838fb]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-a2c838fb]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-a2c838fb]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-a2c838fb]{outline:0}.VPSkipLink[data-v-efdf7a7d]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-efdf7a7d]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-efdf7a7d]{top:14px;left:16px}}.Layout[data-v-8e016544]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-af52d356]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-af52d356]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-af52d356]{margin:128px 0}}.VPHomeSponsors[data-v-af52d356]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-af52d356]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-af52d356]{padding:0 64px}}.container[data-v-af52d356]{margin:0 auto;max-width:1152px}.love[data-v-af52d356]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-af52d356]{display:inline-block}.message[data-v-af52d356]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-af52d356]{padding-top:32px}.action[data-v-af52d356]{padding-top:40px;text-align:center}.VPTeamPage[data-v-27a8b650]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-27a8b650]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-27a8b650-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-27a8b650-s],.VPTeamMembers+.VPTeamPageSection[data-v-27a8b650-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-27a8b650-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-27a8b650-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-27a8b650-s],.VPTeamMembers+.VPTeamPageSection[data-v-27a8b650-s]{margin-top:96px}}.VPTeamMembers[data-v-27a8b650-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-27a8b650-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-27a8b650-s]{padding:0 64px}}.VPTeamPageTitle[data-v-3b9ba24c]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-3b9ba24c]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-3b9ba24c]{padding:80px 64px 48px}}.title[data-v-3b9ba24c]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-3b9ba24c]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-3b9ba24c]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-3b9ba24c]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-efb85c77]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-efb85c77]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-efb85c77]{padding:0 64px}}.title[data-v-efb85c77]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-efb85c77]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-efb85c77]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-efb85c77]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-efb85c77]{padding-top:40px}.VPTeamMembersItem[data-v-38cef690]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-38cef690]{padding:32px}.VPTeamMembersItem.small .data[data-v-38cef690]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-38cef690]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-38cef690]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-38cef690]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-38cef690]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-38cef690]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-38cef690]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-38cef690]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-38cef690]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-38cef690]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-38cef690]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-38cef690]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-38cef690]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-38cef690]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-38cef690]{text-align:center}.avatar[data-v-38cef690]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-38cef690]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-38cef690]{margin:0;font-weight:600}.affiliation[data-v-38cef690]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-38cef690]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-38cef690]:hover{color:var(--vp-c-brand-1)}.desc[data-v-38cef690]{margin:0 auto}.desc[data-v-38cef690] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-38cef690]{display:flex;justify-content:center;height:56px}.sp-link[data-v-38cef690]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-38cef690]:hover,.sp .sp-link.link[data-v-38cef690]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-38cef690]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-41c192cb]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-41c192cb]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-41c192cb]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-41c192cb]{max-width:876px}.VPTeamMembers.medium .container[data-v-41c192cb]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-41c192cb]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-41c192cb]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-41c192cb]{max-width:760px}.container[data-v-41c192cb]{display:grid;gap:24px;margin:0 auto;max-width:1152px} diff --git a/hashmap.json b/hashmap.json new file mode 100644 index 0000000..0e11d89 --- /dev/null +++ b/hashmap.json @@ -0,0 +1 @@ +{"api-ex.md":"DOsKaL8H","api_index.md":"CsKClHFh","api_mp_math_angle.md":"9eUTSIe4","api_mp_math_const.md":"Bhz27OPg","api_mp_math_equation.md":"xiyFVY1c","api_mp_math_index.md":"DTIfeUA1","api_mp_math_line.md":"BybnyRUL","api_mp_math_mp_math_typing.md":"DXaadYgy","api_mp_math_plane.md":"Cdj0PlKB","api_mp_math_point.md":"D3f-vzVt","api_mp_math_segment.md":"DIViBThe","api_mp_math_utils.md":"CDwq4icO","api_mp_math_vector.md":"BgK1TmFY","api_particle_index.md":"BqH-w2FR","api_presets_index.md":"CvgR5vOS","api_presets_model_index.md":"D1iZ1qEr","index.md":"CJvRmMfL","md-ex.md":"BX0WqOqv"} diff --git a/index.html b/index.html new file mode 100644 index 0000000..233f2df --- /dev/null +++ b/index.html @@ -0,0 +1,24 @@ + + + + + + MBCP docs + + + + + + + + + + + + + +
Skip to content

MBCP docs

More basic change particle

用于几何运算和粒子制作的库

+ + + + \ No newline at end of file diff --git a/md-ex.html b/md-ex.html new file mode 100644 index 0000000..e8653c1 --- /dev/null +++ b/md-ex.html @@ -0,0 +1,56 @@ + + + + + + Markdown Extension Examples | MBCP docs + + + + + + + + + + + + + +
Skip to content

Markdown Extension Examples

This page demonstrates some of the built-in markdown extensions provided by VitePress.

Syntax Highlighting

VitePress provides Syntax Highlighting powered by Shiki, with additional features like line-highlighting:

Input

md
```js{4}
+export default {
+  data () {
+    return {
+      msg: 'Highlighted!'
+    }
+  }
+}
+```

Output

js
export default {
+  data () {
+    return {
+      msg: 'Highlighted!'
+    }
+  }
+}

Custom Containers

Input

md
::: info
+This is an info box.
+:::
+
+::: tip
+This is a tip.
+:::
+
+::: warning
+This is a warning.
+:::
+
+::: danger
+This is a dangerous warning.
+:::
+
+::: details
+This is a details block.
+:::

Output

INFO

This is an info box.

TIP

This is a tip.

WARNING

This is a warning.

DANGER

This is a dangerous warning.

Details

This is a details block.

More

Check out the documentation for the full list of markdown extensions.

+ + + + \ No newline at end of file