@haklex/rich-editor-ui 0.0.110 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,29 @@
1
+ export interface RGBA {
2
+ a: number;
3
+ b: number;
4
+ g: number;
5
+ r: number;
6
+ }
7
+ export interface HSVA {
8
+ a: number;
9
+ h: number;
10
+ s: number;
11
+ v: number;
12
+ }
13
+ export declare const clamp: (n: number, min: number, max: number) => number;
14
+ export declare function hsvToRgb(h: number, s: number, v: number): {
15
+ r: number;
16
+ g: number;
17
+ b: number;
18
+ };
19
+ export declare function rgbToHsv(r: number, g: number, b: number): {
20
+ h: number;
21
+ s: number;
22
+ v: number;
23
+ };
24
+ export declare function hsvaToHex(hsva: HSVA): string;
25
+ export declare function hsvaToCss(hsva: HSVA): string;
26
+ export declare function parseHex(input: string): RGBA | null;
27
+ export declare function hexToHsva(input: string): HSVA | null;
28
+ export declare function huePreviewHex(h: number): string;
29
+ //# sourceMappingURL=color-math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-math.d.ts","sourceRoot":"","sources":["../../../src/components/color-picker/color-math.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MACzB,CAAC;AAMpC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAmB7F;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAiB7F;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAI5C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAK5C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAiBnD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAKpD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/color-picker/index.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,WAAW,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CA4ClF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/color-picker/index.tsx"],"names":[],"mappings":"AAqBA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,WAAW,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAkFlF"}
@@ -0,0 +1,9 @@
1
+ interface PickerViewProps {
2
+ initialColor: string;
3
+ onApply: (hex: string) => void;
4
+ onBack: () => void;
5
+ onCancel: () => void;
6
+ }
7
+ export declare function PickerView({ initialColor, onApply, onCancel, onBack }: PickerViewProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=picker-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"picker-view.d.ts","sourceRoot":"","sources":["../../../src/components/color-picker/picker-view.tsx"],"names":[],"mappings":"AAcA,UAAU,eAAe;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAeD,wBAAgB,UAAU,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,2CA0MtF"}
@@ -8,4 +8,27 @@ export declare const grid: string;
8
8
  export declare const swatch: string;
9
9
  export declare const swatchDot: string;
10
10
  export declare const swatchCheck: string;
11
+ export declare const addSwatchDot: string;
12
+ export declare const addSwatchIcon: string;
13
+ export declare const pickerView: string;
14
+ export declare const backButton: string;
15
+ export declare const backIcon: string;
16
+ export declare const satSquare: string;
17
+ export declare const satOverlayX: string;
18
+ export declare const satOverlayY: string;
19
+ export declare const satThumb: string;
20
+ export declare const hueTrack: string;
21
+ export declare const alphaTrack: string;
22
+ export declare const alphaGradient: string;
23
+ export declare const sliderThumb: string;
24
+ export declare const hexRow: string;
25
+ export declare const hexInput: string;
26
+ export declare const hexInputInvalid: string;
27
+ export declare const iconButton: string;
28
+ export declare const icon: string;
29
+ export declare const previewPair: string;
30
+ export declare const previewCell: string;
31
+ export declare const actionRow: string;
32
+ export declare const actionButton: string;
33
+ export declare const actionButtonPrimary: string;
11
34
  //# sourceMappingURL=styles.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../src/components/color-picker/styles.css.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,OAAO,QAgBlB,CAAA;AAEF,eAAO,MAAM,YAAY,QAIvB,CAAA;AAEF,eAAO,MAAM,aAAa,QAIxB,CAAA;AAEF,eAAO,MAAM,UAAU,QAKrB,CAAA;AAEF,eAAO,MAAM,cAAc,QAIzB,CAAA;AAEF,eAAO,MAAM,KAAK,QAQhB,CAAA;AAEF,eAAO,MAAM,IAAI,QAIf,CAAA;AAEF,eAAO,MAAM,MAAM,QAgBjB,CAAA;AAEF,eAAO,MAAM,SAAS,QAKpB,CAAA;AAEF,eAAO,MAAM,WAAW,QAKtB,CAAA"}
1
+ {"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../../../src/components/color-picker/styles.css.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,OAAO,QAgBlB,CAAC;AAEH,eAAO,MAAM,YAAY,QAIvB,CAAC;AAEH,eAAO,MAAM,aAAa,QAIxB,CAAC;AAEH,eAAO,MAAM,UAAU,QAKrB,CAAC;AAEH,eAAO,MAAM,cAAc,QAIzB,CAAC;AAEH,eAAO,MAAM,KAAK,QAQhB,CAAC;AAEH,eAAO,MAAM,IAAI,QAIf,CAAC;AAEH,eAAO,MAAM,MAAM,QAgBjB,CAAC;AAEH,eAAO,MAAM,SAAS,QAKpB,CAAC;AAEH,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,YAAY,QAUvB,CAAC;AAEH,eAAO,MAAM,aAAa,QAIxB,CAAC;AAEH,eAAO,MAAM,UAAU,QAIrB,CAAC;AAEH,eAAO,MAAM,UAAU,QAkBrB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAGnB,CAAC;AAEH,eAAO,MAAM,SAAS,QASpB,CAAC;AAEH,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,QAAQ,QASnB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAUnB,CAAC;AAEH,eAAO,MAAM,UAAU,QAUrB,CAAC;AAEH,eAAO,MAAM,aAAa,QAIxB,CAAC;AAEH,eAAO,MAAM,WAAW,QAUtB,CAAC;AAEH,eAAO,MAAM,MAAM,QAIjB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAgBnB,CAAC;AAEH,eAAO,MAAM,eAAe,QAK1B,CAAC;AAEH,eAAO,MAAM,UAAU,QAiBrB,CAAC;AAEH,eAAO,MAAM,IAAI,QAGf,CAAC;AAEH,eAAO,MAAM,WAAW,QAQtB,CAAC;AAEH,eAAO,MAAM,WAAW,QAEtB,CAAC;AAEH,eAAO,MAAM,SAAS,QAIpB,CAAC;AAEH,eAAO,MAAM,YAAY,QAavB,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAO9B,CAAC"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { AlertCircle, AlertTriangle, Info, Check, Copy, ChevronDown, ChevronRight, X, ChevronUp } from "lucide-react";
2
+ import { AlertCircle, AlertTriangle, Info, Check, Copy, ChevronDown, ChevronRight, ArrowLeft, Pipette, Plus, X, ChevronUp } from "lucide-react";
3
3
  import { useState, useRef, useCallback, useEffect, forwardRef, useImperativeHandle, useMemo, createContext, use, createElement, useSyncExternalStore } from "react";
4
4
  import { Collapsible as Collapsible$1 } from "@base-ui/react/collapsible";
5
5
  import { Popover as Popover$1 } from "@base-ui/react/popover";
@@ -116,7 +116,7 @@ var createRuntimeFn = (config) => {
116
116
  };
117
117
  var semanticClassNames = { actionBar: "re-ui-action-bar", actionButton: "re-ui-action-btn", actionButtonEnd: "re-ui-action-btn--end", actionButtonDanger: "re-ui-action-btn--danger", actionButtonIcon: "re-ui-action-btn--icon" };
118
118
  var actionBar = "_73ej2i0";
119
- var actionButton = createRuntimeFn({ defaultClassName: "_73ej2i1", variantClassNames: { variant: { ghost: "_73ej2i2", solid: "_73ej2i3", outline: "_73ej2i4", accent: "_73ej2i5" }, size: { sm: "_73ej2i6", md: "_73ej2i7", lg: "_73ej2i8" }, icon: { true: "_73ej2i9", false: "_73ej2ia" }, end: { true: "_73ej2ib", false: "_73ej2ic" }, danger: { true: "_73ej2id", false: "_73ej2ie" }, rounded: { true: "_73ej2if", false: "_73ej2ig" } }, defaultVariants: { variant: "ghost", size: "sm", icon: false, end: false, danger: false, rounded: false }, compoundVariants: [[{ icon: true, size: "sm" }, "_73ej2ih"], [{ icon: true, size: "md" }, "_73ej2ii"], [{ icon: true, size: "lg" }, "_73ej2ij"], [{ rounded: true, icon: true }, "_73ej2ik"], [{ danger: true }, "_73ej2il"]] });
119
+ var actionButton$1 = createRuntimeFn({ defaultClassName: "_73ej2i1", variantClassNames: { variant: { ghost: "_73ej2i2", solid: "_73ej2i3", outline: "_73ej2i4", accent: "_73ej2i5" }, size: { sm: "_73ej2i6", md: "_73ej2i7", lg: "_73ej2i8" }, icon: { true: "_73ej2i9", false: "_73ej2ia" }, end: { true: "_73ej2ib", false: "_73ej2ic" }, danger: { true: "_73ej2id", false: "_73ej2ie" }, rounded: { true: "_73ej2if", false: "_73ej2ig" } }, defaultVariants: { variant: "ghost", size: "sm", icon: false, end: false, danger: false, rounded: false }, compoundVariants: [[{ icon: true, size: "sm" }, "_73ej2ih"], [{ icon: true, size: "md" }, "_73ej2ii"], [{ icon: true, size: "lg" }, "_73ej2ij"], [{ rounded: true, icon: true }, "_73ej2ik"], [{ danger: true }, "_73ej2il"]] });
120
120
  function ActionBar({ className, gap, style, ...props }) {
121
121
  return /* @__PURE__ */ jsx(
122
122
  "div",
@@ -132,7 +132,7 @@ function ActionButton({
132
132
  size,
133
133
  end = false,
134
134
  danger = false,
135
- icon = false,
135
+ icon: icon2 = false,
136
136
  rounded = false,
137
137
  className,
138
138
  type = "button",
@@ -141,8 +141,8 @@ function ActionButton({
141
141
  const semanticParts = [semanticClassNames.actionButton];
142
142
  if (end) semanticParts.push(semanticClassNames.actionButtonEnd);
143
143
  if (danger) semanticParts.push(semanticClassNames.actionButtonDanger);
144
- if (icon) semanticParts.push(semanticClassNames.actionButtonIcon);
145
- const recipeClass = actionButton({ variant, size, end, danger, icon, rounded });
144
+ if (icon2) semanticParts.push(semanticClassNames.actionButtonIcon);
145
+ const recipeClass = actionButton$1({ variant, size, end, danger, icon: icon2, rounded });
146
146
  return /* @__PURE__ */ jsx(
147
147
  "button",
148
148
  {
@@ -153,7 +153,7 @@ function ActionButton({
153
153
  );
154
154
  }
155
155
  function getActionButtonClassName(options) {
156
- return `${actionButton(options)} ${semanticClassNames.actionButton}`;
156
+ return `${actionButton$1(options)} ${semanticClassNames.actionButton}`;
157
157
  }
158
158
  var alert = createRuntimeFn({ defaultClassName: "_15r7gwx0", variantClassNames: { variant: { info: "_15r7gwx1", warning: "_15r7gwx2", error: "_15r7gwx3" } }, defaultVariants: { variant: "info" }, compoundVariants: [] });
159
159
  var alertContent = "_15r7gwx4";
@@ -743,6 +743,70 @@ function PopoverDescription({
743
743
  }
744
744
  );
745
745
  }
746
+ const clamp = (n, min, max) => n < min ? min : n > max ? max : n;
747
+ const to255 = (n) => Math.round(clamp(n, 0, 1) * 255);
748
+ const pad2 = (n) => n.toString(16).padStart(2, "0");
749
+ function hsvToRgb(h, s, v) {
750
+ const hh = (h % 360 + 360) % 360 / 60;
751
+ const ss = clamp(s, 0, 1);
752
+ const vv = clamp(v, 0, 1);
753
+ const c = vv * ss;
754
+ const x = c * (1 - Math.abs(hh % 2 - 1));
755
+ const m = vv - c;
756
+ let r;
757
+ let g;
758
+ let b;
759
+ if (hh < 1) [r, g, b] = [c, x, 0];
760
+ else if (hh < 2) [r, g, b] = [x, c, 0];
761
+ else if (hh < 3) [r, g, b] = [0, c, x];
762
+ else if (hh < 4) [r, g, b] = [0, x, c];
763
+ else if (hh < 5) [r, g, b] = [x, 0, c];
764
+ else [r, g, b] = [c, 0, x];
765
+ return { r: r + m, g: g + m, b: b + m };
766
+ }
767
+ function rgbToHsv(r, g, b) {
768
+ const max = Math.max(r, g, b);
769
+ const min = Math.min(r, g, b);
770
+ const d = max - min;
771
+ const v = max;
772
+ const s = max === 0 ? 0 : d / max;
773
+ let h = 0;
774
+ if (d !== 0) {
775
+ if (max === r) h = (g - b) / d % 6;
776
+ else if (max === g) h = (b - r) / d + 2;
777
+ else h = (r - g) / d + 4;
778
+ h *= 60;
779
+ if (h < 0) h += 360;
780
+ }
781
+ return { h, s, v };
782
+ }
783
+ function hsvaToHex(hsva) {
784
+ const { r, g, b } = hsvToRgb(hsva.h, hsva.s, hsva.v);
785
+ const hex = `#${pad2(to255(r))}${pad2(to255(g))}${pad2(to255(b))}`;
786
+ return hsva.a < 1 ? `${hex}${pad2(to255(hsva.a))}` : hex;
787
+ }
788
+ function parseHex(input) {
789
+ let s = input.trim().replace(/^#/, "");
790
+ if (!/^[\da-f]+$/i.test(s)) return null;
791
+ if (s.length === 3 || s.length === 4) {
792
+ s = s.split("").map((c) => c + c).join("");
793
+ }
794
+ if (s.length !== 6 && s.length !== 8) return null;
795
+ const r = Number.parseInt(s.slice(0, 2), 16) / 255;
796
+ const g = Number.parseInt(s.slice(2, 4), 16) / 255;
797
+ const b = Number.parseInt(s.slice(4, 6), 16) / 255;
798
+ const a = s.length === 8 ? Number.parseInt(s.slice(6, 8), 16) / 255 : 1;
799
+ return { r, g, b, a };
800
+ }
801
+ function hexToHsva(input) {
802
+ const rgba = parseHex(input);
803
+ if (!rgba) return null;
804
+ const { h, s, v } = rgbToHsv(rgba.r, rgba.g, rgba.b);
805
+ return { h, s, v, a: rgba.a };
806
+ }
807
+ function huePreviewHex(h) {
808
+ return hsvaToHex({ h, s: 1, v: 1, a: 1 });
809
+ }
746
810
  var trigger = "_17r50hf1";
747
811
  var triggerLabel = "_17r50hf2";
748
812
  var triggerLetter = "_17r50hf3";
@@ -753,6 +817,246 @@ var grid = "_17r50hf7";
753
817
  var swatch = "_17r50hf8";
754
818
  var swatchDot = "_17r50hf9";
755
819
  var swatchCheck = "_17r50hfa";
820
+ var addSwatchDot = "_17r50hfb";
821
+ var addSwatchIcon = "_17r50hfc";
822
+ var pickerView = "_17r50hfd";
823
+ var backButton = "_17r50hfe";
824
+ var backIcon = "_17r50hff";
825
+ var satSquare = "_17r50hfg";
826
+ var satOverlayX = "_17r50hfh";
827
+ var satOverlayY = "_17r50hfi";
828
+ var satThumb = "_17r50hfj";
829
+ var hueTrack = "_17r50hfk";
830
+ var alphaTrack = "_17r50hfl";
831
+ var alphaGradient = "_17r50hfm";
832
+ var sliderThumb = "_17r50hfn";
833
+ var hexRow = "_17r50hfo";
834
+ var hexInput = "_17r50hfp";
835
+ var hexInputInvalid = "_17r50hfq";
836
+ var iconButton = "_17r50hfr";
837
+ var icon = "_17r50hfs";
838
+ var previewPair = "_17r50hft";
839
+ var previewCell = "_17r50hfu";
840
+ var actionRow = "_17r50hfv";
841
+ var actionButton = "_17r50hfw";
842
+ var actionButtonPrimary = "_17r50hfx";
843
+ const FALLBACK = { h: 0, s: 0, v: 0, a: 1 };
844
+ function seedHsva(input) {
845
+ if (!input || input === "inherit" || input === "currentColor") return FALLBACK;
846
+ return hexToHsva(input) ?? FALLBACK;
847
+ }
848
+ function PickerView({ initialColor, onApply, onCancel, onBack }) {
849
+ const [hsva, setHsva] = useState(() => seedHsva(initialColor));
850
+ const [hexDraft, setHexDraft] = useState(() => hsvaToHex(seedHsva(initialColor)));
851
+ const [hexInvalid, setHexInvalid] = useState(false);
852
+ const [hasEyeDropper, setHasEyeDropper] = useState(false);
853
+ const oldColorRef = useRef(initialColor);
854
+ const satRef = useRef(null);
855
+ const hueRef = useRef(null);
856
+ const alphaRef = useRef(null);
857
+ useEffect(() => {
858
+ setHasEyeDropper(
859
+ typeof window !== "undefined" && "EyeDropper" in window
860
+ );
861
+ }, []);
862
+ useEffect(() => {
863
+ if (document.activeElement?.tagName !== "INPUT") {
864
+ setHexDraft(hsvaToHex(hsva));
865
+ setHexInvalid(false);
866
+ }
867
+ }, [hsva]);
868
+ const currentHex = hsvaToHex(hsva);
869
+ const updateFromPointer = (target, ev) => {
870
+ const el = target === "sat" ? satRef.current : target === "hue" ? hueRef.current : alphaRef.current;
871
+ if (!el) return;
872
+ const rect = el.getBoundingClientRect();
873
+ const x = clamp((ev.clientX - rect.left) / rect.width, 0, 1);
874
+ const y = clamp((ev.clientY - rect.top) / rect.height, 0, 1);
875
+ setHsva((prev) => {
876
+ if (target === "sat") return { ...prev, s: x, v: 1 - y };
877
+ if (target === "hue") return { ...prev, h: x * 360 };
878
+ return { ...prev, a: x };
879
+ });
880
+ };
881
+ const startDrag = (target) => (ev) => {
882
+ ev.preventDefault();
883
+ ev.currentTarget.setPointerCapture(ev.pointerId);
884
+ updateFromPointer(target, ev);
885
+ };
886
+ const onMove = (target) => (ev) => {
887
+ if (ev.buttons === 0) return;
888
+ updateFromPointer(target, ev);
889
+ };
890
+ const onHexChange = (value) => {
891
+ setHexDraft(value);
892
+ const parsed = parseHex(value);
893
+ if (!parsed) {
894
+ setHexInvalid(true);
895
+ return;
896
+ }
897
+ setHexInvalid(false);
898
+ const { h, s, v } = rgbToHsv(parsed.r, parsed.g, parsed.b);
899
+ setHsva({ h, s, v, a: parsed.a });
900
+ };
901
+ const onHexBlur = () => {
902
+ if (hexInvalid) {
903
+ setHexDraft(currentHex);
904
+ setHexInvalid(false);
905
+ }
906
+ };
907
+ const openEyeDropper = async () => {
908
+ const Ctor = window.EyeDropper;
909
+ if (!Ctor) return;
910
+ try {
911
+ const result = await new Ctor().open();
912
+ const parsed = parseHex(result.sRGBHex);
913
+ if (!parsed) return;
914
+ const { h, s, v } = rgbToHsv(parsed.r, parsed.g, parsed.b);
915
+ setHsva((prev) => ({ h, s, v, a: prev.a }));
916
+ } catch {
917
+ }
918
+ };
919
+ const handleApply = () => onApply(currentHex);
920
+ const hueHex = huePreviewHex(hsva.h);
921
+ const previewNewCss = hsvaToHex(hsva);
922
+ const previewOldCss = oldColorRef.current === "inherit" || !oldColorRef.current ? "transparent" : oldColorRef.current;
923
+ return /* @__PURE__ */ jsxs("div", { className: pickerView, children: [
924
+ /* @__PURE__ */ jsxs(
925
+ "button",
926
+ {
927
+ "aria-label": "Back to presets",
928
+ className: backButton,
929
+ type: "button",
930
+ onClick: onBack,
931
+ onMouseDown: (e) => e.preventDefault(),
932
+ children: [
933
+ /* @__PURE__ */ jsx(ArrowLeft, { className: backIcon }),
934
+ /* @__PURE__ */ jsx("span", { children: "Back" })
935
+ ]
936
+ }
937
+ ),
938
+ /* @__PURE__ */ jsxs(
939
+ "div",
940
+ {
941
+ className: satSquare,
942
+ ref: satRef,
943
+ style: { backgroundColor: hueHex },
944
+ onPointerDown: startDrag("sat"),
945
+ onPointerMove: onMove("sat"),
946
+ children: [
947
+ /* @__PURE__ */ jsx("div", { className: satOverlayX }),
948
+ /* @__PURE__ */ jsx("div", { className: satOverlayY }),
949
+ /* @__PURE__ */ jsx(
950
+ "div",
951
+ {
952
+ className: satThumb,
953
+ style: {
954
+ left: `${hsva.s * 100}%`,
955
+ top: `${(1 - hsva.v) * 100}%`,
956
+ backgroundColor: hsvaToHex({ ...hsva, a: 1 })
957
+ }
958
+ }
959
+ )
960
+ ]
961
+ }
962
+ ),
963
+ /* @__PURE__ */ jsx(
964
+ "div",
965
+ {
966
+ className: hueTrack,
967
+ ref: hueRef,
968
+ onPointerDown: startDrag("hue"),
969
+ onPointerMove: onMove("hue"),
970
+ children: /* @__PURE__ */ jsx(
971
+ "div",
972
+ {
973
+ className: sliderThumb,
974
+ style: { left: `${hsva.h / 360 * 100}%`, backgroundColor: hueHex }
975
+ }
976
+ )
977
+ }
978
+ ),
979
+ /* @__PURE__ */ jsxs(
980
+ "div",
981
+ {
982
+ className: alphaTrack,
983
+ ref: alphaRef,
984
+ onPointerDown: startDrag("alpha"),
985
+ onPointerMove: onMove("alpha"),
986
+ children: [
987
+ /* @__PURE__ */ jsx(
988
+ "div",
989
+ {
990
+ className: alphaGradient,
991
+ style: {
992
+ background: `linear-gradient(to right, transparent, ${hsvaToHex({ ...hsva, a: 1 })})`
993
+ }
994
+ }
995
+ ),
996
+ /* @__PURE__ */ jsx(
997
+ "div",
998
+ {
999
+ className: sliderThumb,
1000
+ style: { left: `${hsva.a * 100}%`, backgroundColor: currentHex }
1001
+ }
1002
+ )
1003
+ ]
1004
+ }
1005
+ ),
1006
+ /* @__PURE__ */ jsxs("div", { className: hexRow, children: [
1007
+ /* @__PURE__ */ jsx(
1008
+ "input",
1009
+ {
1010
+ "aria-invalid": hexInvalid || void 0,
1011
+ "aria-label": "Hex color",
1012
+ className: `${hexInput}${hexInvalid ? ` ${hexInputInvalid}` : ""}`,
1013
+ spellCheck: false,
1014
+ type: "text",
1015
+ value: hexDraft,
1016
+ onBlur: onHexBlur,
1017
+ onChange: (e) => onHexChange(e.target.value)
1018
+ }
1019
+ ),
1020
+ hasEyeDropper && /* @__PURE__ */ jsx(
1021
+ "button",
1022
+ {
1023
+ "aria-label": "Pick color from screen",
1024
+ className: iconButton,
1025
+ type: "button",
1026
+ onClick: openEyeDropper,
1027
+ onMouseDown: (e) => e.preventDefault(),
1028
+ children: /* @__PURE__ */ jsx(Pipette, { className: icon })
1029
+ }
1030
+ ),
1031
+ /* @__PURE__ */ jsxs("div", { "aria-hidden": true, className: previewPair, children: [
1032
+ /* @__PURE__ */ jsx("div", { className: previewCell, style: { backgroundColor: previewOldCss } }),
1033
+ /* @__PURE__ */ jsx("div", { className: previewCell, style: { backgroundColor: previewNewCss } })
1034
+ ] })
1035
+ ] }),
1036
+ /* @__PURE__ */ jsxs("div", { className: actionRow, children: [
1037
+ /* @__PURE__ */ jsx(
1038
+ "button",
1039
+ {
1040
+ className: actionButton,
1041
+ type: "button",
1042
+ onClick: onCancel,
1043
+ onMouseDown: (e) => e.preventDefault(),
1044
+ children: "Cancel"
1045
+ }
1046
+ ),
1047
+ /* @__PURE__ */ jsx(
1048
+ "button",
1049
+ {
1050
+ className: `${actionButton} ${actionButtonPrimary}`,
1051
+ type: "button",
1052
+ onClick: handleApply,
1053
+ onMouseDown: (e) => e.preventDefault(),
1054
+ children: "Apply"
1055
+ }
1056
+ )
1057
+ ] })
1058
+ ] });
1059
+ }
756
1060
  const TEXT_COLORS = [
757
1061
  { name: "Default", value: "inherit" },
758
1062
  { name: "Gray", value: "#6b7280" },
@@ -763,11 +1067,27 @@ const TEXT_COLORS = [
763
1067
  { name: "Teal", value: "#14b8a6" },
764
1068
  { name: "Blue", value: "#3b82f6" },
765
1069
  { name: "Indigo", value: "#6366f1" },
1070
+ { name: "Purple", value: "#a855f7" },
766
1071
  { name: "Pink", value: "#ec4899" }
767
1072
  ];
768
1073
  function ColorPicker({ currentColor, onSelect, className }) {
1074
+ const [open, setOpen] = useState(false);
1075
+ const [view, setView] = useState("preset");
769
1076
  const displayColor = currentColor === "inherit" || !currentColor ? "currentColor" : currentColor;
770
- return /* @__PURE__ */ jsxs(Popover, { children: [
1077
+ const handleOpenChange = (next) => {
1078
+ setOpen(next);
1079
+ if (!next) setView("preset");
1080
+ };
1081
+ const handlePreset = (value) => {
1082
+ onSelect(value);
1083
+ handleOpenChange(false);
1084
+ };
1085
+ const handleApply = (hex) => {
1086
+ onSelect(hex);
1087
+ handleOpenChange(false);
1088
+ };
1089
+ const handleCancel = () => handleOpenChange(false);
1090
+ return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: handleOpenChange, children: [
771
1091
  /* @__PURE__ */ jsxs(
772
1092
  PopoverTrigger,
773
1093
  {
@@ -782,31 +1102,50 @@ function ColorPicker({ currentColor, onSelect, className }) {
782
1102
  ]
783
1103
  }
784
1104
  ),
785
- /* @__PURE__ */ jsx(PopoverPanel, { className: panel, side: "bottom", sideOffset: 6, children: /* @__PURE__ */ jsx("div", { className: grid, children: TEXT_COLORS.map((color) => /* @__PURE__ */ jsxs(
786
- "button",
787
- {
788
- "aria-label": color.name,
789
- className: swatch,
790
- type: "button",
791
- onMouseDown: (e) => {
792
- e.preventDefault();
793
- onSelect(color.value);
794
- },
795
- children: [
796
- /* @__PURE__ */ jsx(
797
- "span",
798
- {
799
- className: swatchDot,
800
- style: {
801
- backgroundColor: color.value === "inherit" ? "currentColor" : color.value
1105
+ /* @__PURE__ */ jsx(PopoverPanel, { className: panel, side: "bottom", sideOffset: 6, children: view === "preset" ? /* @__PURE__ */ jsxs("div", { className: grid, children: [
1106
+ TEXT_COLORS.map((color) => /* @__PURE__ */ jsxs(
1107
+ "button",
1108
+ {
1109
+ "aria-label": color.name,
1110
+ className: swatch,
1111
+ type: "button",
1112
+ onClick: () => handlePreset(color.value),
1113
+ onMouseDown: (e) => e.preventDefault(),
1114
+ children: [
1115
+ /* @__PURE__ */ jsx(
1116
+ "span",
1117
+ {
1118
+ className: swatchDot,
1119
+ style: {
1120
+ backgroundColor: color.value === "inherit" ? "currentColor" : color.value
1121
+ }
802
1122
  }
803
- }
804
- ),
805
- currentColor === color.value && /* @__PURE__ */ jsx(Check, { className: swatchCheck })
806
- ]
807
- },
808
- color.value
809
- )) }) })
1123
+ ),
1124
+ currentColor === color.value && /* @__PURE__ */ jsx(Check, { className: swatchCheck })
1125
+ ]
1126
+ },
1127
+ color.value
1128
+ )),
1129
+ /* @__PURE__ */ jsx(
1130
+ "button",
1131
+ {
1132
+ "aria-label": "Custom color",
1133
+ className: swatch,
1134
+ type: "button",
1135
+ onClick: () => setView("picker"),
1136
+ onMouseDown: (e) => e.preventDefault(),
1137
+ children: /* @__PURE__ */ jsx("span", { className: addSwatchDot, children: /* @__PURE__ */ jsx(Plus, { className: addSwatchIcon }) })
1138
+ }
1139
+ )
1140
+ ] }) : /* @__PURE__ */ jsx(
1141
+ PickerView,
1142
+ {
1143
+ initialColor: currentColor,
1144
+ onApply: handleApply,
1145
+ onBack: () => setView("preset"),
1146
+ onCancel: handleCancel
1147
+ }
1148
+ ) })
810
1149
  ] });
811
1150
  }
812
1151
  var popup$4 = "_2buwsh0";
@@ -1 +1 @@
1
- :root{--rc-text: #000;--rc-text-secondary: #262626;--rc-text-tertiary: #737373;--rc-text-quaternary: #a3a3a3;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f5f5f5;--rc-fill: #e8e8e8;--rc-fill-secondary: #eeeeee;--rc-fill-tertiary: #f5f5f5;--rc-fill-quaternary: #fafafa;--rc-border: #f5f5f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #404040;--rc-code-bg: #f5f5f5;--rc-hr-border: #e5e5e5;--rc-quote-border: #2563eb;--rc-quote-bg: #f5f5f5;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}:root.dark{--rc-text: #fafafa;--rc-text-secondary: #a3a3a3;--rc-text-tertiary: #737373;--rc-text-quaternary: #525252;--rc-bg: #0a0a0a;--rc-bg-secondary: #171717;--rc-bg-tertiary: #262626;--rc-fill: #2a2a2a;--rc-fill-secondary: #222222;--rc-fill-tertiary: #1a1a1a;--rc-fill-quaternary: #141414;--rc-border: #262626;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #d4d4d4;--rc-code-bg: #262626;--rc-hr-border: #262626;--rc-quote-border: #60a5fa;--rc-quote-bg: #262626;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}[data-theme=dark]{--rc-text: #fafafa;--rc-text-secondary: #a3a3a3;--rc-text-tertiary: #737373;--rc-text-quaternary: #525252;--rc-bg: #0a0a0a;--rc-bg-secondary: #171717;--rc-bg-tertiary: #262626;--rc-fill: #2a2a2a;--rc-fill-secondary: #222222;--rc-fill-tertiary: #1a1a1a;--rc-fill-quaternary: #141414;--rc-border: #262626;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #d4d4d4;--rc-code-bg: #262626;--rc-hr-border: #262626;--rc-quote-border: #60a5fa;--rc-quote-bg: #262626;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._4yrh350{--rc-text: #000;--rc-text-secondary: #262626;--rc-text-tertiary: #737373;--rc-text-quaternary: #a3a3a3;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f5f5f5;--rc-fill: #e8e8e8;--rc-fill-secondary: #eeeeee;--rc-fill-tertiary: #f5f5f5;--rc-fill-quaternary: #fafafa;--rc-border: #f5f5f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #404040;--rc-code-bg: #f5f5f5;--rc-hr-border: #e5e5e5;--rc-quote-border: #2563eb;--rc-quote-bg: #f5f5f5;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._4yrh351{--rc-text: #000;--rc-text-secondary: #262626;--rc-text-tertiary: #737373;--rc-text-quaternary: #a3a3a3;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f5f5f5;--rc-fill: #e8e8e8;--rc-fill-secondary: #eeeeee;--rc-fill-tertiary: #f5f5f5;--rc-fill-quaternary: #fafafa;--rc-border: #f5f5f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #404040;--rc-code-bg: #f5f5f5;--rc-hr-border: #e5e5e5;--rc-quote-border: #2563eb;--rc-quote-bg: #f5f5f5;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.8;--rc-line-height-tight: 1.4;--rc-font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._4yrh352{--rc-text: #000;--rc-text-secondary: #262626;--rc-text-tertiary: #737373;--rc-text-quaternary: #a3a3a3;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f5f5f5;--rc-fill: #e8e8e8;--rc-fill-secondary: #eeeeee;--rc-fill-tertiary: #f5f5f5;--rc-fill-quaternary: #fafafa;--rc-border: #f5f5f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #404040;--rc-code-bg: #f5f5f5;--rc-hr-border: #e5e5e5;--rc-quote-border: #a3a3a3;--rc-quote-bg: #fafafa;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: none;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 2px;--rc-space-sm: 4px;--rc-space-md: 10px;--rc-space-lg: 16px;--rc-space-xl: 20px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 14px;--rc-font-size-small: 12px;--rc-line-height: 1.5;--rc-line-height-tight: 1.3;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 3px;--rc-radius-md: 6px;--rc-radius-lg: 12px}.dark ._4yrh350,[data-theme=dark] ._4yrh350,.dark._4yrh350,[data-theme=dark]._4yrh350,.dark ._4yrh351,[data-theme=dark] ._4yrh351,.dark._4yrh351,[data-theme=dark]._4yrh351,.dark ._4yrh352,[data-theme=dark] ._4yrh352,.dark._4yrh352,[data-theme=dark]._4yrh352{--rc-text: #fafafa;--rc-text-secondary: #a3a3a3;--rc-text-tertiary: #737373;--rc-text-quaternary: #525252;--rc-bg: #0a0a0a;--rc-bg-secondary: #171717;--rc-bg-tertiary: #262626;--rc-fill: #2a2a2a;--rc-fill-secondary: #222222;--rc-fill-tertiary: #1a1a1a;--rc-fill-quaternary: #141414;--rc-border: #262626;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #d4d4d4;--rc-code-bg: #262626;--rc-hr-border: #262626;--rc-quote-border: #60a5fa;--rc-quote-bg: #262626;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4)}._73ej2i0{display:flex;align-items:center;justify-content:flex-end;gap:4px}._73ej2i1{display:inline-flex;align-items:center;justify-content:center;appearance:none;border:none;background:none;cursor:pointer;font-family:inherit;transition:color .15s ease,background-color .15s ease;outline:none}._73ej2i1:focus-visible{box-shadow:0 0 0 2px var(--rc-accent-light)}._73ej2i1:disabled{opacity:.45;cursor:not-allowed}._73ej2i2{color:inherit}._73ej2i2:hover:not(:disabled){background-color:var(--rc-fill-secondary)}._73ej2i3{background-color:var(--rc-text);color:var(--rc-bg);transition:background-color .15s ease,border-color .15s ease,color .15s ease}._73ej2i3:hover:not(:disabled){background-color:color-mix(in srgb,var(--rc-text) 86%,transparent)}._73ej2i4{background:var(--rc-bg);color:var(--rc-text-secondary);border:1px solid var(--rc-border);transition:background-color .15s ease,border-color .15s ease,color .15s ease}._73ej2i4:hover:not(:disabled){background:var(--rc-fill-secondary);color:var(--rc-text)}._73ej2i5{background-color:var(--rc-accent);color:#fff}._73ej2i5:hover:not(:disabled){filter:brightness(.9)}._73ej2i5:disabled{opacity:.5;cursor:default;pointer-events:none}._73ej2i6{gap:6px;font-size:var(--rc-font-size-sm);font-weight:500;padding:4px 8px;border-radius:var(--rc-radius-sm);height:24px;white-space:nowrap}._73ej2i7{gap:6px;font-size:var(--rc-font-size-sm);font-weight:500;padding:4px 10px;border-radius:var(--rc-radius-md);height:28px;line-height:1.4;white-space:nowrap}._73ej2i8{gap:8px;font-size:var(--rc-font-size-small);font-weight:600;padding:0 14px;border-radius:var(--rc-radius-md);height:36px;white-space:nowrap}._73ej2ib{margin-left:auto}._73ej2ih{font-size:var(--rc-font-size-small);width:24px;height:24px;padding:0;gap:0;color:color-mix(in srgb,var(--rc-text-secondary) 60%,transparent)}._73ej2ih:hover:not(:disabled){color:var(--rc-text);background-color:var(--rc-fill-secondary)}._73ej2ih:disabled{opacity:.3;pointer-events:none}._73ej2ii{font-size:var(--rc-font-size-base);padding:6px;border-radius:var(--rc-radius-md);height:auto;width:auto;gap:0;color:var(--rc-text-secondary)}._73ej2ii:hover:not(:disabled){color:var(--rc-text);background-color:color-mix(in srgb,var(--rc-text) 8%,transparent)}._73ej2ii:disabled{opacity:.3;cursor:default}._73ej2ii:disabled:hover{background:none;color:var(--rc-text-secondary)}._73ej2ij{font-size:20px;padding:8px;border-radius:var(--rc-radius-md);height:auto;width:auto;gap:0;color:var(--rc-text-secondary)}._73ej2ij:hover:not(:disabled){color:var(--rc-text);background-color:color-mix(in srgb,var(--rc-text) 8%,transparent)}._73ej2ij:disabled{opacity:.3;cursor:default}._73ej2ij:disabled:hover{background:none;color:var(--rc-text-secondary)}._73ej2ik{border-radius:50%}._73ej2il:hover:not(:disabled){color:var(--rc-alert-caution);background-color:color-mix(in srgb,var(--rc-alert-caution) 10%,transparent)}.re-ui-action-btn--icon svg{width:1em;height:1em}._15r7gwx0{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:8px;font-size:13px;line-height:1.5;border:1px solid transparent}._15r7gwx1{background-color:#3b82f60f;border-color:#3b82f63d;color:#1e40af}._15r7gwx2{background-color:#f59e0b0f;border-color:#f59e0b3d;color:#92400e}._15r7gwx3{background-color:#ef44440f;border-color:#ef44443d;color:#991b1b}._15r7gwx4{flex:1;min-width:0}._15r7gwx5{width:16px;height:16px;flex-shrink:0;margin-top:2px}._15r7gwx6{flex-shrink:0;margin-left:auto}.iryuae0{position:relative}.iryuae1{display:flex}.iryuae2{position:relative;padding:.625rem 1rem;font-size:var(--rc-font-size-md);font-weight:500;transition:color .2s;cursor:pointer;border:none;background:none;color:var(--rc-text-secondary);outline:none}.iryuae2:hover{color:color-mix(in srgb,currentColor 80%,transparent)}.iryuae2:focus-visible{outline:2px solid var(--rc-accent);outline-offset:2px}.iryuae3{color:var(--rc-text)}.iryuae4{position:absolute;bottom:0;left:0;right:0;height:1px;background-color:var(--rc-border)}.iryuae5{position:absolute;bottom:0;height:2px;background-color:var(--rc-text);transition:left .3s ease-in-out,width .3s ease-in-out}._1b25hgb0{width:100%;resize:none;overflow:hidden;border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);padding:8px 12px;font-size:14px;line-height:1.5;outline:none;background:var(--rc-bg);color:var(--rc-text);font-family:inherit}._1b25hgb0:focus{border-color:var(--rc-text-quaternary)}._1b25hgb0::placeholder{color:var(--rc-text-quaternary)}._1b25hgb1{overflow-y:auto}._1vt0sm10{display:inline-flex;align-items:center;border-radius:9999px;font-weight:500;white-space:nowrap;line-height:1}._1vt0sm11{background-color:var(--rc-fill-tertiary);color:var(--rc-text-tertiary)}._1vt0sm12{background-color:#22c55e1a;color:#16a34a}._1vt0sm13{background-color:#ef44441a;color:#dc2626}._1vt0sm14{background-color:#f59e0b1a;color:#d97706}._1vt0sm15{background-color:#3b82f61a;color:#2563eb}._1vt0sm16{font-size:11px;padding:2px 6px;gap:3px}._1vt0sm17{font-size:12px;padding:3px 8px;gap:4px}@keyframes _10muorc0{0%{transform:scale(1)}40%{transform:scale(.85)}to{transform:scale(1)}}@keyframes _10muorc1{0%{box-shadow:0 0 color-mix(in srgb,var(--rc-accent) 40%,transparent)}to{box-shadow:0 0 0 6px transparent}}._10muorc2{display:inline-flex;align-items:flex-start;gap:.75rem;border-radius:.5rem;padding:.25rem;text-align:left;border:none;background:none;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit}._10muorc2:focus-visible{outline:2px solid var(--rc-accent);outline-offset:2px}._10muorc3{cursor:not-allowed;opacity:.5}._10muorc4{position:relative;display:flex;width:1.125rem;height:1.125rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.3rem;border-width:2px;border-style:solid;transition:all .3s cubic-bezier(.34,1.56,.64,1);box-sizing:border-box}._10muorc5{border-color:color-mix(in srgb,var(--rc-text-secondary) 50%,transparent);background-color:transparent}._10muorc6{border-color:var(--rc-accent);background-color:var(--rc-accent)}._10muorc7{animation:_10muorc0 .4s ease-out}._10muorc8{width:.75rem;height:.75rem;transition:all .3s cubic-bezier(.34,1.56,.64,1)}._10muorc9{opacity:1;transform:scale(1)}._10muorca{opacity:0;transform:scale(.5)}._10muorcb{position:absolute;inset:0;border-radius:.3rem;pointer-events:none}._10muorcc{animation:_10muorc1 .4s ease-out}._10muorcd{display:flex;flex-direction:column;gap:.125rem}._10muorce{font-size:var(--rc-font-size-md);font-weight:500;line-height:1.25;color:var(--rc-text);transition:color .2s}._10muorcf{color:var(--rc-text-secondary)}._10muorcg{font-size:var(--rc-font-size-xs);line-height:1.25;color:var(--rc-text-secondary)}._1gq8hf90{--rr-code-accent: #737373;position:relative;margin:1.5rem 0;border-radius:.5rem;overflow:hidden;font-size:var(--rc-font-size-md);font-family:var(--rc-font-mono);line-height:1.65}._1gq8hf91{position:absolute;bottom:.75rem;right:.75rem;z-index:1;display:flex;align-items:center;gap:.375rem;font-size:var(--rc-font-size-md);opacity:.6;pointer-events:none}._1gq8hf92{appearance:none;position:absolute;right:.5rem;top:.5rem;z-index:3;display:flex;align-items:center;justify-content:center;padding:.375rem;border-radius:.375rem;border:1px solid color-mix(in srgb,var(--rr-code-accent) 5%,transparent);background:color-mix(in srgb,var(--rr-code-accent) 80%,transparent);color:#fff;cursor:pointer;opacity:0;transition:opacity .2s ease;backdrop-filter:blur(8px)}._1gq8hf90:hover ._1gq8hf92{opacity:1}._1gq8hf93{position:relative;background:color-mix(in srgb,var(--rr-code-accent) 5%,transparent);padding:0}._1gq8hf94{padding-block:12px}._1gq8hf95{position:relative;width:100%;overflow:auto}._1gq8hf96{max-height:50vh;overflow:hidden}._1gq8hf97{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;padding:.5rem 0 .75rem;background:linear-gradient(to bottom,transparent 0%,var(--bg, var(--rc-bg-secondary)) 80%);pointer-events:none}._1gq8hf98{appearance:none;border:none;background:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:var(--rc-font-size-xs);color:inherit;opacity:.7;pointer-events:auto}._1gq8hf98:hover{opacity:1}._1gq8hf99{counter-reset:shiki-line 0}._1gq8hf99 .line{counter-increment:shiki-line 1}._1gq8hf99 .line:before{content:counter(shiki-line);color:transparent;text-align:right;box-sizing:border-box;width:2em;display:inline-block;position:sticky;left:0}._1gq8hf9a .line:before{color:inherit;opacity:.4;width:5em;padding-right:2em}._1gq8hf90 pre{margin:0!important;padding:0!important;border-radius:0;font-size:1em;overflow-x:auto}._1gq8hf90 pre code{display:flex;flex-direction:column;font-family:var(--rc-font-mono)!important;line-height:inherit}._1gq8hf90 .shiki,._1gq8hf90 code,._1gq8hf90 pre{background:transparent!important;line-height:inherit}[data-theme=dark] ._1gq8hf90 .shiki-themes,[data-theme=dark] ._1gq8hf90 .shiki-themes span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}._1gq8hf90 .line{display:block;padding:0 1.25rem}._1gq8hf90 .line>span:last-child{margin-right:1.25rem}._1gq8hf90 .line:after{content:" "}._1hdi6a90{display:flex;align-items:center;gap:6px;cursor:pointer;border:none;background:none;padding:0;color:var(--rc-text-tertiary);font-size:inherit;font-family:inherit;width:100%;text-align:left}._1hdi6a90:hover{color:var(--rc-text-secondary)}._1hdi6a91{transition:transform .2s ease;width:14px;height:14px;flex-shrink:0}[data-panel-open] ._1hdi6a91{transform:rotate(90deg)}._1hdi6a92{overflow:hidden;interpolate-size:allow-keywords;height:var(--collapsible-panel-height);transition:height .2s cubic-bezier(.4,0,.2,1)}._1hdi6a92[data-closed],._1hdi6a92[data-starting-style],._1hdi6a92[data-ending-style]{height:0}@keyframes f2q44l0{0%{opacity:0;transform:translateY(2px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes f2q44l1{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(2px) scale(.96)}}.f2q44l2{z-index:50;width:288px;border-radius:.5rem;border:1px solid var(--rc-border);padding:1rem;background-color:var(--rc-bg);box-shadow:var(--rc-shadow-modal);outline:none;transition:opacity .15s ease-out,transform .15s ease-out;font-family:var(--rc-font-family-sans)}.f2q44l2[data-open]{animation:f2q44l0 .15s ease-out}.f2q44l2[data-ending-style]{opacity:0;transform:translateY(2px) scale(.96)}.f2q44l2[data-closed]{animation:f2q44l1 .15s ease-in}.f2q44l3{width:10px;height:10px;transform-origin:center}.f2q44l3>polygon{fill:var(--rc-bg)}.f2q44l3>polyline{stroke:var(--rc-border);fill:none}.f2q44l4{font-size:var(--rc-font-size-md);font-weight:600;line-height:1;color:var(--rc-text)}.f2q44l5{font-size:var(--rc-font-size-md);line-height:1.25rem;color:var(--rc-text-secondary);margin-top:.25rem}@keyframes _17r50hf0{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}._17r50hf1{display:flex;align-items:center;gap:2px;height:32px;padding:0 6px;border:none;background:none;border-radius:8px;cursor:pointer;color:var(--rc-text-secondary);transition:color .1s,background-color .1s}._17r50hf1:hover{color:var(--rc-text);background-color:color-mix(in srgb,var(--rc-text) 4%,transparent)}._17r50hf2{display:flex;flex-direction:column;align-items:center}._17r50hf3{font-size:var(--rc-font-size-xs);font-weight:600;line-height:1}._17r50hf4{margin-top:2px;height:2px;width:14px;border-radius:1px}._17r50hf5{width:12px;height:12px;transition:transform .15s}._17r50hf6{padding:8px;width:auto}._17r50hf6[data-open]{animation:_17r50hf0 .12s ease-out}._17r50hf7{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}._17r50hf8{position:relative;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;border-radius:8px;cursor:pointer;padding:0;transition:background-color .1s}._17r50hf8:hover{background-color:color-mix(in srgb,var(--rc-text) 4%,transparent)}._17r50hf9{width:16px;height:16px;border-radius:50%;border:1px solid color-mix(in srgb,var(--rc-text) 10%,transparent)}._17r50hfa{position:absolute;width:10px;height:10px;color:var(--rc-bg)}@keyframes _1sxaacb0{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes _1sxaacb1{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}._1sxaacb2{height:1px;background-color:var(--rc-hr-border);margin:.25rem -.25rem}._1sxaacb3{font-size:var(--rc-font-size-xs);font-weight:500;line-height:1.4;color:var(--rc-text-tertiary);padding:.25rem .375rem}._2buwsh0{min-width:8rem;border-radius:var(--rc-radius-lg);padding:var(--rc-space-xs);background-color:var(--rc-bg);box-shadow:0 0 0 1px color-mix(in srgb,var(--rc-text) 10%,transparent),var(--rc-shadow-menu);outline:none;color:var(--rc-text);font-family:var(--rc-font-family-sans);font-size:var(--rc-font-size-small);z-index:50;max-height:min(var(--available-height),16rem);overflow-x:hidden;overflow-y:auto;transform-origin:var(--transform-origin);transition:opacity .1s ease-out,transform .1s ease-out}._2buwsh0[data-open]{animation:_1sxaacb0 .1s ease-out}._2buwsh0[data-starting-style],._2buwsh0[data-ending-style]{opacity:0;transform:scale(.95)}._2buwsh0[data-closed]{animation:_1sxaacb1 .1s ease-in;overflow:hidden}._2buwsh1{display:flex;align-items:center;gap:.375rem;border-radius:var(--rc-radius-md);padding:var(--rc-space-xs) var(--rc-space-md) var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-small);line-height:1.35;outline:none;user-select:none;cursor:default;color:var(--rc-text);position:relative;transition:background-color .1s ease,color .1s ease}._2buwsh1[data-highlighted]{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._2buwsh1[data-disabled]{opacity:.5;pointer-events:none}._2buwsh1 svg{pointer-events:none;flex-shrink:0;width:1rem;height:1rem;color:var(--rc-text-secondary);transition:color .1s ease}._2buwsh1[data-highlighted] svg{color:var(--rc-text)}._2buwsh2{font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);text-align:center}@keyframes vwlngv0{0%{opacity:0}to{opacity:1}}@keyframes vwlngv1{0%{opacity:1}to{opacity:0}}@keyframes vwlngv2{0%{opacity:0;transform:translate(-50%,-48%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes vwlngv3{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-48%) scale(.95)}}@keyframes vwlngvd{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes vwlngve{0%{transform:translateY(0)}to{transform:translateY(100%)}}.vwlngv4{position:fixed;inset:0;z-index:50;background-color:#000c}.vwlngv4[data-open]{animation:vwlngv0 .25s ease-out}.vwlngv4[data-closed]{animation:vwlngv1 .2s ease-in}.vwlngv5{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:50;display:grid;width:100%;max-width:calc(100% - 2rem);gap:0;border-radius:var(--rc-radius-lg);border:1px solid var(--rc-border);padding:0;font-family:var(--rc-font-family-sans);line-height:1.43;color:var(--rc-text);background-color:var(--rc-bg);box-shadow:var(--rc-shadow-modal);outline:none}.vwlngv5[data-open]{animation:vwlngv2 .15s ease-out}.vwlngv5[data-closed]{animation:vwlngv3 .1s ease-in}.vwlngv6{position:absolute;top:1.25rem;right:1.5rem;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:.25rem;border:none;background:none;cursor:pointer;opacity:.7;color:var(--rc-text-secondary);transition:opacity .2s ease,color .2s ease}.vwlngv6:hover{opacity:1;color:var(--rc-text)}.vwlngv6:focus-visible{outline:none;box-shadow:0 0 0 2px var(--rc-bg),0 0 0 4px var(--rc-text-secondary)}.vwlngv6:disabled{pointer-events:none;opacity:.5}.vwlngv6 svg{width:16px;height:16px;pointer-events:none;flex-shrink:0}.vwlngv7{display:flex;align-items:flex-start;gap:.75rem;padding:1.25rem 1.5rem .75rem}.vwlngv8{display:flex;flex-direction:column;gap:.375rem;flex:1;min-width:0;text-align:center}.vwlngv9{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:.25rem;border:none;background:none;cursor:pointer;opacity:.7;color:var(--rc-text-secondary);flex-shrink:0;transition:opacity .2s ease,color .2s ease}.vwlngv9:hover{opacity:1;color:var(--rc-text)}.vwlngv9:focus-visible{outline:none;box-shadow:0 0 0 2px var(--rc-bg),0 0 0 4px var(--rc-text-secondary)}.vwlngv9 svg{width:16px;height:16px;pointer-events:none;flex-shrink:0}.vwlngva{display:flex;flex-direction:column-reverse;gap:.5rem;padding:.75rem 1.5rem 1.25rem}.vwlngvb{font-family:var(--rc-font-family);font-size:1.125em;font-weight:600;line-height:1.33;letter-spacing:-.015em;color:var(--rc-text)}.vwlngvc{font-family:var(--rc-font-family);font-size:var(--rc-font-size-md);line-height:1.43;color:var(--rc-text-secondary)}.vwlngvf{position:fixed;inset:0;z-index:50;background-color:#00000080;transition:opacity .2s ease}.vwlngvg{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;flex-direction:column;max-height:85vh;border-top-left-radius:12px;border-top-right-radius:12px;background-color:var(--rc-bg);color:var(--rc-text);font-family:var(--rc-font-family-sans);box-shadow:0 -4px 24px #00000026;will-change:transform}.vwlngvg[data-open]{animation:vwlngvd .3s cubic-bezier(.32,.72,0,1)}.vwlngvg[data-closed]{animation:vwlngve .2s ease-in}.vwlngvh{display:flex;align-items:center;justify-content:center;padding:12px 0 4px;cursor:grab;flex-shrink:0;touch-action:none}.vwlngvh:active{cursor:grabbing}.vwlngvi{width:36px;height:4px;border-radius:2px;background-color:var(--rc-text-tertiary);opacity:.5}.vwlngvj{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 1.5rem 1.5rem;-webkit-overflow-scrolling:touch}.vwlngvk{display:flex;flex-direction:column;gap:.375rem;text-align:center;padding:0 1.5rem .5rem}@media(min-width:640px){.vwlngv5{max-width:28rem}.vwlngv8{text-align:left}.vwlngva{flex-direction:row;justify-content:flex-end}}.oih0op0{min-width:8rem;border-radius:var(--rc-radius-lg);padding:var(--rc-space-xs);background-color:var(--rc-bg);box-shadow:0 0 0 1px color-mix(in srgb,var(--rc-text) 10%,transparent),var(--rc-shadow-menu);outline:none;color:var(--rc-text);font-family:var(--rc-font-family-sans);font-size:var(--rc-font-size-small);z-index:50;max-height:var(--available-height);overflow-x:hidden;overflow-y:auto;transform-origin:var(--transform-origin);transition:opacity .1s ease-out,transform .1s ease-out;max-width:min(20rem,calc(100vw - .75rem))}.oih0op0[data-open]{animation:_1sxaacb0 .1s ease-out}.oih0op0[data-starting-style],.oih0op0[data-ending-style]{opacity:0;transform:scale(.95)}.oih0op0[data-closed]{animation:_1sxaacb1 .1s ease-in;overflow:hidden}.oih0op1{outline:none;z-index:50;isolation:isolate}.oih0op1[data-side=bottom]{transform:translateY(2px)}.oih0op1[data-side=top]{transform:translateY(-2px)}.oih0op1[data-side=left]{transform:translate(-2px)}.oih0op1[data-side=right]{transform:translate(2px)}.oih0op2{display:flex;align-items:center;gap:.375rem;border-radius:var(--rc-radius-md);padding:var(--rc-space-xs) var(--rc-space-md) var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-small);line-height:1.35;outline:none;user-select:none;cursor:default;color:var(--rc-text);position:relative;transition:background-color .1s ease,color .1s ease}.oih0op2[data-highlighted]{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.oih0op2[data-disabled]{opacity:.5;pointer-events:none}.oih0op2 svg{pointer-events:none;flex-shrink:0;width:1rem;height:1rem;color:var(--rc-text-secondary);transition:color .1s ease}.oih0op2[data-highlighted] svg{color:var(--rc-text)}.oih0op3{padding-right:2rem}.oih0op4,.oih0op5{position:absolute;right:.5rem;display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;flex-shrink:0;pointer-events:none;color:var(--rc-text-secondary)}._1y5k2ih0{overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}._1y5k2ih0::-webkit-scrollbar{width:6px}._1y5k2ih0::-webkit-scrollbar-track{background:transparent}._1y5k2ih0::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}._6d8tz20{position:relative;display:inline-flex;align-items:center;border-radius:.5rem;background-color:var(--rc-bg-tertiary);padding:.25rem}._6d8tz21{height:2rem;font-size:var(--rc-font-size-xs)}._6d8tz22{height:2.5rem;font-size:var(--rc-font-size-md)}._6d8tz23{width:100%}._6d8tz25{position:absolute;top:.25rem;bottom:.25rem;border-radius:.375rem;background-color:var(--rc-bg);box-shadow:0 1px 2px #0000000d;transition:all .3s cubic-bezier(.25,1,.5,1);pointer-events:none}._6d8tz27{opacity:0}._6d8tz28{position:relative;z-index:10;display:flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.375rem;font-weight:500;outline:none;border:none;background:transparent;cursor:pointer;transition:color .2s;color:var(--rc-text-secondary)}._6d8tz28:focus-visible{outline:2px solid var(--rc-accent);outline-offset:1px}._6d8tz29{padding:0 .75rem}._6d8tz2a{padding:0 1rem}._6d8tz2b{color:var(--rc-text)}._6d8tz2d{pointer-events:none;opacity:.4}._6d8tz2f{flex:1}@keyframes p74a620{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes p74a621{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.p74a622{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;height:36px;padding:8px 8px 8px 10px;font-size:var(--rc-font-size-small);line-height:1.35;font-family:var(--rc-font-family-sans);border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);background:transparent;color:var(--rc-text);cursor:pointer;outline:none;white-space:nowrap;box-shadow:0 1px 2px #0000000d;transition:color .15s ease,box-shadow .15s ease,border-color .15s ease}.p74a622:hover{background:var(--rc-fill-quaternary)}.p74a622:focus-visible{border-color:var(--rc-accent);box-shadow:0 0 0 3px var(--rc-accent-light)}.p74a622[data-popup-open]{background:var(--rc-fill-quaternary)}.p74a622[data-disabled]{opacity:.5;cursor:not-allowed}.p74a623{width:16px;height:16px;color:var(--rc-text-tertiary);flex-shrink:0;pointer-events:none}.p74a624{outline:none;z-index:50;isolation:isolate}.p74a625{background:var(--rc-bg);color:var(--rc-text);font-family:var(--rc-font-family-sans);font-size:var(--rc-font-size-small);border-radius:var(--rc-radius-md);box-shadow:0 0 0 1px color-mix(in srgb,var(--rc-text) 10%,transparent),var(--rc-shadow-menu);width:min(var(--anchor-width),calc(100vw - .75rem));max-width:calc(100vw - .75rem);max-height:var(--available-height);overflow-x:hidden;overflow-y:auto;outline:none;transform-origin:var(--transform-origin);transition:opacity .1s ease-out,transform .1s ease-out}.p74a625[data-open]{animation:p74a620 .1s ease-out}.p74a625[data-starting-style],.p74a625[data-ending-style]{opacity:0;transform:scale(.95)}.p74a625[data-closed]{animation:p74a621 .1s ease-in;overflow:hidden}.p74a626{padding:4px}.p74a626+.p74a626{border-top:1px solid var(--rc-hr-border)}.p74a627{display:flex;align-items:center;gap:8px;padding:6px 32px 6px 8px;border-radius:var(--rc-radius-sm);font-size:var(--rc-font-size-small);line-height:1.35;outline:none;user-select:none;cursor:default;color:var(--rc-text);position:relative;transition:background-color .1s ease,color .1s ease}.p74a627[data-highlighted]{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.p74a627[data-disabled]{opacity:.5;pointer-events:none}.p74a627 svg{pointer-events:none;flex-shrink:0;width:16px;height:16px}.p74a628{position:absolute;right:8px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;pointer-events:none;color:var(--rc-text-secondary)}.p74a627[data-highlighted] .p74a628{color:var(--rc-text)}.p74a629{padding:6px 8px;font-size:var(--rc-font-size-xs);font-weight:500;line-height:1.4;color:var(--rc-text-tertiary)}.p74a62a{height:1px;background-color:var(--rc-hr-border);margin:4px -4px}.p74a62b{display:flex;align-items:center;justify-content:center;width:100%;padding:4px 0;cursor:default;color:var(--rc-text-tertiary);background:var(--rc-bg);z-index:10}.p74a62b svg{width:16px;height:16px}@keyframes _131cfek0{to{transform:rotate(360deg)}}._131cfek1{display:inline-block;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:_131cfek0 .6s linear infinite;flex-shrink:0}._131cfek2{width:14px;height:14px}._131cfek3{width:20px;height:20px}@keyframes _73cmpa0{0%{transform:scale(1);opacity:1}50%{transform:scale(1.8);opacity:0}to{transform:scale(1.8);opacity:0}}._73cmpa1{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}._73cmpa2{border-radius:50%;flex-shrink:0}._73cmpa3{background-color:#a3a3a3}._73cmpa4{background-color:#3b82f6}._73cmpa5{background-color:#22c55e}._73cmpa6{background-color:#ef4444}._73cmpa7{background-color:#f59e0b}._73cmpa8{width:8px;height:8px}._73cmpa9{width:12px;height:12px}._73cmpaa{position:absolute;border-radius:50%;animation:_73cmpa0 1.5s ease-in-out infinite}._73cmpab{background-color:#a3a3a3}._73cmpac{background-color:#3b82f6}._73cmpad{background-color:#22c55e}._73cmpae{background-color:#ef4444}._73cmpaf{background-color:#f59e0b}._73cmpag{width:8px;height:8px}._73cmpah{width:12px;height:12px}@keyframes _1cspf2m0{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes _1cspf2m1{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(2px)}}._1cspf2m2{z-index:50;outline:none}._1cspf2m3{max-width:320px;padding:var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-xs);line-height:1.4;color:var(--rc-text);background-color:var(--rc-bg);border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);box-shadow:var(--rc-shadow-menu);outline:none;white-space:normal;word-break:break-word;pointer-events:none;transition:opacity .12s ease-out,transform .12s ease-out}._1cspf2m3[data-open]{animation:_1cspf2m0 .12s ease-out}._1cspf2m3[data-ending-style]{opacity:0;transform:translateY(2px)}._1cspf2m3[data-closed]{animation:_1cspf2m1 .12s ease-in}
1
+ :root{--rc-text: #000;--rc-text-secondary: #262626;--rc-text-tertiary: #737373;--rc-text-quaternary: #a3a3a3;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f5f5f5;--rc-fill: #e8e8e8;--rc-fill-secondary: #eeeeee;--rc-fill-tertiary: #f5f5f5;--rc-fill-quaternary: #fafafa;--rc-border: #f5f5f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #404040;--rc-code-bg: #f5f5f5;--rc-hr-border: #e5e5e5;--rc-quote-border: #2563eb;--rc-quote-bg: #f5f5f5;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}:root.dark{--rc-text: #fafafa;--rc-text-secondary: #a3a3a3;--rc-text-tertiary: #737373;--rc-text-quaternary: #525252;--rc-bg: #0a0a0a;--rc-bg-secondary: #171717;--rc-bg-tertiary: #262626;--rc-fill: #2a2a2a;--rc-fill-secondary: #222222;--rc-fill-tertiary: #1a1a1a;--rc-fill-quaternary: #141414;--rc-border: #262626;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #d4d4d4;--rc-code-bg: #262626;--rc-hr-border: #262626;--rc-quote-border: #60a5fa;--rc-quote-bg: #262626;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}[data-theme=dark]{--rc-text: #fafafa;--rc-text-secondary: #a3a3a3;--rc-text-tertiary: #737373;--rc-text-quaternary: #525252;--rc-bg: #0a0a0a;--rc-bg-secondary: #171717;--rc-bg-tertiary: #262626;--rc-fill: #2a2a2a;--rc-fill-secondary: #222222;--rc-fill-tertiary: #1a1a1a;--rc-fill-quaternary: #141414;--rc-border: #262626;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #d4d4d4;--rc-code-bg: #262626;--rc-hr-border: #262626;--rc-quote-border: #60a5fa;--rc-quote-bg: #262626;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._4yrh350{--rc-text: #000;--rc-text-secondary: #262626;--rc-text-tertiary: #737373;--rc-text-quaternary: #a3a3a3;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f5f5f5;--rc-fill: #e8e8e8;--rc-fill-secondary: #eeeeee;--rc-fill-tertiary: #f5f5f5;--rc-fill-quaternary: #fafafa;--rc-border: #f5f5f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #404040;--rc-code-bg: #f5f5f5;--rc-hr-border: #e5e5e5;--rc-quote-border: #2563eb;--rc-quote-bg: #f5f5f5;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._4yrh351{--rc-text: #000;--rc-text-secondary: #262626;--rc-text-tertiary: #737373;--rc-text-quaternary: #a3a3a3;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f5f5f5;--rc-fill: #e8e8e8;--rc-fill-secondary: #eeeeee;--rc-fill-tertiary: #f5f5f5;--rc-fill-quaternary: #fafafa;--rc-border: #f5f5f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #404040;--rc-code-bg: #f5f5f5;--rc-hr-border: #e5e5e5;--rc-quote-border: #2563eb;--rc-quote-bg: #f5f5f5;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.8;--rc-line-height-tight: 1.4;--rc-font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._4yrh352{--rc-text: #000;--rc-text-secondary: #262626;--rc-text-tertiary: #737373;--rc-text-quaternary: #a3a3a3;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f5f5f5;--rc-fill: #e8e8e8;--rc-fill-secondary: #eeeeee;--rc-fill-tertiary: #f5f5f5;--rc-fill-quaternary: #fafafa;--rc-border: #f5f5f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #404040;--rc-code-bg: #f5f5f5;--rc-hr-border: #e5e5e5;--rc-quote-border: #a3a3a3;--rc-quote-bg: #fafafa;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: none;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 2px;--rc-space-sm: 4px;--rc-space-md: 10px;--rc-space-lg: 16px;--rc-space-xl: 20px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai: "楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 14px;--rc-font-size-small: 12px;--rc-line-height: 1.5;--rc-line-height-tight: 1.3;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 3px;--rc-radius-md: 6px;--rc-radius-lg: 12px}.dark ._4yrh350,[data-theme=dark] ._4yrh350,.dark._4yrh350,[data-theme=dark]._4yrh350,.dark ._4yrh351,[data-theme=dark] ._4yrh351,.dark._4yrh351,[data-theme=dark]._4yrh351,.dark ._4yrh352,[data-theme=dark] ._4yrh352,.dark._4yrh352,[data-theme=dark]._4yrh352{--rc-text: #fafafa;--rc-text-secondary: #a3a3a3;--rc-text-tertiary: #737373;--rc-text-quaternary: #525252;--rc-bg: #0a0a0a;--rc-bg-secondary: #171717;--rc-bg-tertiary: #262626;--rc-fill: #2a2a2a;--rc-fill-secondary: #222222;--rc-fill-tertiary: #1a1a1a;--rc-fill-quaternary: #141414;--rc-border: #262626;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #d4d4d4;--rc-code-bg: #262626;--rc-hr-border: #262626;--rc-quote-border: #60a5fa;--rc-quote-bg: #262626;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4)}._73ej2i0{display:flex;align-items:center;justify-content:flex-end;gap:4px}._73ej2i1{display:inline-flex;align-items:center;justify-content:center;appearance:none;border:none;background:none;cursor:pointer;font-family:inherit;transition:color .15s ease,background-color .15s ease;outline:none}._73ej2i1:focus-visible{box-shadow:0 0 0 2px var(--rc-accent-light)}._73ej2i1:disabled{opacity:.45;cursor:not-allowed}._73ej2i2{color:inherit}._73ej2i2:hover:not(:disabled){background-color:var(--rc-fill-secondary)}._73ej2i3{background-color:var(--rc-text);color:var(--rc-bg);transition:background-color .15s ease,border-color .15s ease,color .15s ease}._73ej2i3:hover:not(:disabled){background-color:color-mix(in srgb,var(--rc-text) 86%,transparent)}._73ej2i4{background:var(--rc-bg);color:var(--rc-text-secondary);border:1px solid var(--rc-border);transition:background-color .15s ease,border-color .15s ease,color .15s ease}._73ej2i4:hover:not(:disabled){background:var(--rc-fill-secondary);color:var(--rc-text)}._73ej2i5{background-color:var(--rc-accent);color:#fff}._73ej2i5:hover:not(:disabled){filter:brightness(.9)}._73ej2i5:disabled{opacity:.5;cursor:default;pointer-events:none}._73ej2i6{gap:6px;font-size:var(--rc-font-size-sm);font-weight:500;padding:4px 8px;border-radius:var(--rc-radius-sm);height:24px;white-space:nowrap}._73ej2i7{gap:6px;font-size:var(--rc-font-size-sm);font-weight:500;padding:4px 10px;border-radius:var(--rc-radius-md);height:28px;line-height:1.4;white-space:nowrap}._73ej2i8{gap:8px;font-size:var(--rc-font-size-small);font-weight:600;padding:0 14px;border-radius:var(--rc-radius-md);height:36px;white-space:nowrap}._73ej2ib{margin-left:auto}._73ej2ih{font-size:var(--rc-font-size-small);width:24px;height:24px;padding:0;gap:0;color:color-mix(in srgb,var(--rc-text-secondary) 60%,transparent)}._73ej2ih:hover:not(:disabled){color:var(--rc-text);background-color:var(--rc-fill-secondary)}._73ej2ih:disabled{opacity:.3;pointer-events:none}._73ej2ii{font-size:var(--rc-font-size-base);padding:6px;border-radius:var(--rc-radius-md);height:auto;width:auto;gap:0;color:var(--rc-text-secondary)}._73ej2ii:hover:not(:disabled){color:var(--rc-text);background-color:color-mix(in srgb,var(--rc-text) 8%,transparent)}._73ej2ii:disabled{opacity:.3;cursor:default}._73ej2ii:disabled:hover{background:none;color:var(--rc-text-secondary)}._73ej2ij{font-size:20px;padding:8px;border-radius:var(--rc-radius-md);height:auto;width:auto;gap:0;color:var(--rc-text-secondary)}._73ej2ij:hover:not(:disabled){color:var(--rc-text);background-color:color-mix(in srgb,var(--rc-text) 8%,transparent)}._73ej2ij:disabled{opacity:.3;cursor:default}._73ej2ij:disabled:hover{background:none;color:var(--rc-text-secondary)}._73ej2ik{border-radius:50%}._73ej2il:hover:not(:disabled){color:var(--rc-alert-caution);background-color:color-mix(in srgb,var(--rc-alert-caution) 10%,transparent)}.re-ui-action-btn--icon svg{width:1em;height:1em}._15r7gwx0{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:8px;font-size:13px;line-height:1.5;border:1px solid transparent}._15r7gwx1{background-color:#3b82f60f;border-color:#3b82f63d;color:#1e40af}._15r7gwx2{background-color:#f59e0b0f;border-color:#f59e0b3d;color:#92400e}._15r7gwx3{background-color:#ef44440f;border-color:#ef44443d;color:#991b1b}._15r7gwx4{flex:1;min-width:0}._15r7gwx5{width:16px;height:16px;flex-shrink:0;margin-top:2px}._15r7gwx6{flex-shrink:0;margin-left:auto}.iryuae0{position:relative}.iryuae1{display:flex}.iryuae2{position:relative;padding:.625rem 1rem;font-size:var(--rc-font-size-md);font-weight:500;transition:color .2s;cursor:pointer;border:none;background:none;color:var(--rc-text-secondary);outline:none}.iryuae2:hover{color:color-mix(in srgb,currentColor 80%,transparent)}.iryuae2:focus-visible{outline:2px solid var(--rc-accent);outline-offset:2px}.iryuae3{color:var(--rc-text)}.iryuae4{position:absolute;bottom:0;left:0;right:0;height:1px;background-color:var(--rc-border)}.iryuae5{position:absolute;bottom:0;height:2px;background-color:var(--rc-text);transition:left .3s ease-in-out,width .3s ease-in-out}._1b25hgb0{width:100%;resize:none;overflow:hidden;border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);padding:8px 12px;font-size:14px;line-height:1.5;outline:none;background:var(--rc-bg);color:var(--rc-text);font-family:inherit}._1b25hgb0:focus{border-color:var(--rc-text-quaternary)}._1b25hgb0::placeholder{color:var(--rc-text-quaternary)}._1b25hgb1{overflow-y:auto}._1vt0sm10{display:inline-flex;align-items:center;border-radius:9999px;font-weight:500;white-space:nowrap;line-height:1}._1vt0sm11{background-color:var(--rc-fill-tertiary);color:var(--rc-text-tertiary)}._1vt0sm12{background-color:#22c55e1a;color:#16a34a}._1vt0sm13{background-color:#ef44441a;color:#dc2626}._1vt0sm14{background-color:#f59e0b1a;color:#d97706}._1vt0sm15{background-color:#3b82f61a;color:#2563eb}._1vt0sm16{font-size:11px;padding:2px 6px;gap:3px}._1vt0sm17{font-size:12px;padding:3px 8px;gap:4px}@keyframes _10muorc0{0%{transform:scale(1)}40%{transform:scale(.85)}to{transform:scale(1)}}@keyframes _10muorc1{0%{box-shadow:0 0 color-mix(in srgb,var(--rc-accent) 40%,transparent)}to{box-shadow:0 0 0 6px transparent}}._10muorc2{display:inline-flex;align-items:flex-start;gap:.75rem;border-radius:.5rem;padding:.25rem;text-align:left;border:none;background:none;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit}._10muorc2:focus-visible{outline:2px solid var(--rc-accent);outline-offset:2px}._10muorc3{cursor:not-allowed;opacity:.5}._10muorc4{position:relative;display:flex;width:1.125rem;height:1.125rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.3rem;border-width:2px;border-style:solid;transition:all .3s cubic-bezier(.34,1.56,.64,1);box-sizing:border-box}._10muorc5{border-color:color-mix(in srgb,var(--rc-text-secondary) 50%,transparent);background-color:transparent}._10muorc6{border-color:var(--rc-accent);background-color:var(--rc-accent)}._10muorc7{animation:_10muorc0 .4s ease-out}._10muorc8{width:.75rem;height:.75rem;transition:all .3s cubic-bezier(.34,1.56,.64,1)}._10muorc9{opacity:1;transform:scale(1)}._10muorca{opacity:0;transform:scale(.5)}._10muorcb{position:absolute;inset:0;border-radius:.3rem;pointer-events:none}._10muorcc{animation:_10muorc1 .4s ease-out}._10muorcd{display:flex;flex-direction:column;gap:.125rem}._10muorce{font-size:var(--rc-font-size-md);font-weight:500;line-height:1.25;color:var(--rc-text);transition:color .2s}._10muorcf{color:var(--rc-text-secondary)}._10muorcg{font-size:var(--rc-font-size-xs);line-height:1.25;color:var(--rc-text-secondary)}._1gq8hf90{--rr-code-accent: #737373;position:relative;margin:1.5rem 0;border-radius:.5rem;overflow:hidden;font-size:var(--rc-font-size-md);font-family:var(--rc-font-mono);line-height:1.65}._1gq8hf91{position:absolute;bottom:.75rem;right:.75rem;z-index:1;display:flex;align-items:center;gap:.375rem;font-size:var(--rc-font-size-md);opacity:.6;pointer-events:none}._1gq8hf92{appearance:none;position:absolute;right:.5rem;top:.5rem;z-index:3;display:flex;align-items:center;justify-content:center;padding:.375rem;border-radius:.375rem;border:1px solid color-mix(in srgb,var(--rr-code-accent) 5%,transparent);background:color-mix(in srgb,var(--rr-code-accent) 80%,transparent);color:#fff;cursor:pointer;opacity:0;transition:opacity .2s ease;backdrop-filter:blur(8px)}._1gq8hf90:hover ._1gq8hf92{opacity:1}._1gq8hf93{position:relative;background:color-mix(in srgb,var(--rr-code-accent) 5%,transparent);padding:0}._1gq8hf94{padding-block:12px}._1gq8hf95{position:relative;width:100%;overflow:auto}._1gq8hf96{max-height:50vh;overflow:hidden}._1gq8hf97{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;padding:.5rem 0 .75rem;background:linear-gradient(to bottom,transparent 0%,var(--bg, var(--rc-bg-secondary)) 80%);pointer-events:none}._1gq8hf98{appearance:none;border:none;background:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:var(--rc-font-size-xs);color:inherit;opacity:.7;pointer-events:auto}._1gq8hf98:hover{opacity:1}._1gq8hf99{counter-reset:shiki-line 0}._1gq8hf99 .line{counter-increment:shiki-line 1}._1gq8hf99 .line:before{content:counter(shiki-line);color:transparent;text-align:right;box-sizing:border-box;width:2em;display:inline-block;position:sticky;left:0}._1gq8hf9a .line:before{color:inherit;opacity:.4;width:5em;padding-right:2em}._1gq8hf90 pre{margin:0!important;padding:0!important;border-radius:0;font-size:1em;overflow-x:auto}._1gq8hf90 pre code{display:flex;flex-direction:column;font-family:var(--rc-font-mono)!important;line-height:inherit}._1gq8hf90 .shiki,._1gq8hf90 code,._1gq8hf90 pre{background:transparent!important;line-height:inherit}[data-theme=dark] ._1gq8hf90 .shiki-themes,[data-theme=dark] ._1gq8hf90 .shiki-themes span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}._1gq8hf90 .line{display:block;padding:0 1.25rem}._1gq8hf90 .line>span:last-child{margin-right:1.25rem}._1gq8hf90 .line:after{content:" "}._1hdi6a90{display:flex;align-items:center;gap:6px;cursor:pointer;border:none;background:none;padding:0;color:var(--rc-text-tertiary);font-size:inherit;font-family:inherit;width:100%;text-align:left}._1hdi6a90:hover{color:var(--rc-text-secondary)}._1hdi6a91{transition:transform .2s ease;width:14px;height:14px;flex-shrink:0}[data-panel-open] ._1hdi6a91{transform:rotate(90deg)}._1hdi6a92{overflow:hidden;interpolate-size:allow-keywords;height:var(--collapsible-panel-height);transition:height .2s cubic-bezier(.4,0,.2,1)}._1hdi6a92[data-closed],._1hdi6a92[data-starting-style],._1hdi6a92[data-ending-style]{height:0}@keyframes f2q44l0{0%{opacity:0;transform:translateY(2px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes f2q44l1{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(2px) scale(.96)}}.f2q44l2{z-index:50;width:288px;border-radius:.5rem;border:1px solid var(--rc-border);padding:1rem;background-color:var(--rc-bg);box-shadow:var(--rc-shadow-modal);outline:none;transition:opacity .15s ease-out,transform .15s ease-out;font-family:var(--rc-font-family-sans)}.f2q44l2[data-open]{animation:f2q44l0 .15s ease-out}.f2q44l2[data-ending-style]{opacity:0;transform:translateY(2px) scale(.96)}.f2q44l2[data-closed]{animation:f2q44l1 .15s ease-in}.f2q44l3{width:10px;height:10px;transform-origin:center}.f2q44l3>polygon{fill:var(--rc-bg)}.f2q44l3>polyline{stroke:var(--rc-border);fill:none}.f2q44l4{font-size:var(--rc-font-size-md);font-weight:600;line-height:1;color:var(--rc-text)}.f2q44l5{font-size:var(--rc-font-size-md);line-height:1.25rem;color:var(--rc-text-secondary);margin-top:.25rem}@keyframes _17r50hf0{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}._17r50hf1{display:flex;align-items:center;gap:2px;height:32px;padding:0 6px;border:none;background:none;border-radius:8px;cursor:pointer;color:var(--rc-text-secondary);transition:color .1s,background-color .1s}._17r50hf1:hover{color:var(--rc-text);background-color:color-mix(in srgb,var(--rc-text) 4%,transparent)}._17r50hf2{display:flex;flex-direction:column;align-items:center}._17r50hf3{font-size:var(--rc-font-size-xs);font-weight:600;line-height:1}._17r50hf4{margin-top:2px;height:2px;width:14px;border-radius:1px}._17r50hf5{width:12px;height:12px;transition:transform .15s}._17r50hf6{padding:8px;width:220px}._17r50hf6[data-open]{animation:_17r50hf0 .12s ease-out}._17r50hf7{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}._17r50hf8{position:relative;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;border-radius:8px;cursor:pointer;padding:0;transition:background-color .1s}._17r50hf8:hover{background-color:color-mix(in srgb,var(--rc-text) 4%,transparent)}._17r50hf9{width:16px;height:16px;border-radius:50%;border:1px solid color-mix(in srgb,var(--rc-text) 10%,transparent)}._17r50hfa{position:absolute;width:10px;height:10px;color:var(--rc-bg)}._17r50hfb{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:conic-gradient(from 0deg,#ef4444,#f59e0b,#22c55e,#3b82f6,#6366f1,#ec4899,#ef4444)}._17r50hfc{width:10px;height:10px;stroke-width:3}._17r50hfd{display:flex;flex-direction:column;gap:8px}._17r50hfe{display:flex;align-items:center;gap:4px;align-self:flex-start;padding:2px 6px;margin-bottom:2px;border:none;background:none;border-radius:6px;cursor:pointer;font-size:var(--rc-font-size-xs);color:var(--rc-text-tertiary);transition:color .1s,background-color .1s}._17r50hfe:hover{color:var(--rc-text);background-color:color-mix(in srgb,var(--rc-text) 4%,transparent)}._17r50hff{width:12px;height:12px}._17r50hfg{position:relative;width:100%;height:140px;border-radius:6px;cursor:crosshair;touch-action:none;user-select:none;overflow:hidden}._17r50hfh{position:absolute;inset:0;background:linear-gradient(to right,#fff,transparent);pointer-events:none}._17r50hfi{position:absolute;inset:0;background:linear-gradient(to top,#000,transparent);pointer-events:none}._17r50hfj{position:absolute;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0000004d;transform:translate(-50%,-50%);pointer-events:none}._17r50hfk{position:relative;width:100%;height:10px;border-radius:5px;background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);cursor:pointer;touch-action:none;user-select:none}._17r50hfl{position:relative;width:100%;height:10px;border-radius:5px;background:repeating-conic-gradient(#ddd 0% 25%,#fff 0% 50%) 0 / 8px 8px;cursor:pointer;touch-action:none;user-select:none;overflow:hidden}._17r50hfm{position:absolute;inset:0;pointer-events:none}._17r50hfn{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #0000004d;transform:translate(-50%,-50%);pointer-events:none}._17r50hfo{display:flex;align-items:center;gap:4px}._17r50hfp{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,Courier New,monospace;font-size:var(--rc-font-size-xs);padding:4px 6px;border:1px solid var(--rc-border);border-radius:6px;background:var(--rc-bg-secondary);color:var(--rc-text);outline:none;text-transform:uppercase}._17r50hfp:focus{border-color:var(--rc-accent)}._17r50hfq{border-color:#ef4444}._17r50hfq:focus{border-color:#ef4444}._17r50hfr{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--rc-border);border-radius:6px;background:var(--rc-bg);color:var(--rc-text-secondary);cursor:pointer;padding:0;transition:background-color .1s,color .1s}._17r50hfr:hover{color:var(--rc-text);background-color:var(--rc-fill-tertiary)}._17r50hfs{width:12px;height:12px}._17r50hft{display:flex;width:40px;height:24px;border-radius:6px;overflow:hidden;border:1px solid var(--rc-border);background:repeating-conic-gradient(#ddd 0% 25%,#fff 0% 50%) 0 / 6px 6px}._17r50hfu{flex:1}._17r50hfv{display:flex;gap:6px;margin-top:2px}._17r50hfw{flex:1;height:28px;border-radius:6px;font-size:var(--rc-font-size-xs);border:1px solid var(--rc-border);background:var(--rc-bg);color:var(--rc-text);cursor:pointer;transition:background-color .1s}._17r50hfw:hover{background-color:var(--rc-fill-tertiary)}._17r50hfx{background:var(--rc-text);color:var(--rc-bg);border-color:var(--rc-text)}._17r50hfx:hover{background-color:color-mix(in srgb,var(--rc-text) 85%,transparent)}@keyframes _1sxaacb0{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes _1sxaacb1{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}._1sxaacb2{height:1px;background-color:var(--rc-hr-border);margin:.25rem -.25rem}._1sxaacb3{font-size:var(--rc-font-size-xs);font-weight:500;line-height:1.4;color:var(--rc-text-tertiary);padding:.25rem .375rem}._2buwsh0{min-width:8rem;border-radius:var(--rc-radius-lg);padding:var(--rc-space-xs);background-color:var(--rc-bg);box-shadow:0 0 0 1px color-mix(in srgb,var(--rc-text) 10%,transparent),var(--rc-shadow-menu);outline:none;color:var(--rc-text);font-family:var(--rc-font-family-sans);font-size:var(--rc-font-size-small);z-index:50;max-height:min(var(--available-height),16rem);overflow-x:hidden;overflow-y:auto;transform-origin:var(--transform-origin);transition:opacity .1s ease-out,transform .1s ease-out}._2buwsh0[data-open]{animation:_1sxaacb0 .1s ease-out}._2buwsh0[data-starting-style],._2buwsh0[data-ending-style]{opacity:0;transform:scale(.95)}._2buwsh0[data-closed]{animation:_1sxaacb1 .1s ease-in;overflow:hidden}._2buwsh1{display:flex;align-items:center;gap:.375rem;border-radius:var(--rc-radius-md);padding:var(--rc-space-xs) var(--rc-space-md) var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-small);line-height:1.35;outline:none;user-select:none;cursor:default;color:var(--rc-text);position:relative;transition:background-color .1s ease,color .1s ease}._2buwsh1[data-highlighted]{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._2buwsh1[data-disabled]{opacity:.5;pointer-events:none}._2buwsh1 svg{pointer-events:none;flex-shrink:0;width:1rem;height:1rem;color:var(--rc-text-secondary);transition:color .1s ease}._2buwsh1[data-highlighted] svg{color:var(--rc-text)}._2buwsh2{font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);text-align:center}@keyframes vwlngv0{0%{opacity:0}to{opacity:1}}@keyframes vwlngv1{0%{opacity:1}to{opacity:0}}@keyframes vwlngv2{0%{opacity:0;transform:translate(-50%,-48%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes vwlngv3{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-48%) scale(.95)}}@keyframes vwlngvd{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes vwlngve{0%{transform:translateY(0)}to{transform:translateY(100%)}}.vwlngv4{position:fixed;inset:0;z-index:50;background-color:#000c}.vwlngv4[data-open]{animation:vwlngv0 .25s ease-out}.vwlngv4[data-closed]{animation:vwlngv1 .2s ease-in}.vwlngv5{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:50;display:grid;width:100%;max-width:calc(100% - 2rem);gap:0;border-radius:var(--rc-radius-lg);border:1px solid var(--rc-border);padding:0;font-family:var(--rc-font-family-sans);line-height:1.43;color:var(--rc-text);background-color:var(--rc-bg);box-shadow:var(--rc-shadow-modal);outline:none}.vwlngv5[data-open]{animation:vwlngv2 .15s ease-out}.vwlngv5[data-closed]{animation:vwlngv3 .1s ease-in}.vwlngv6{position:absolute;top:1.25rem;right:1.5rem;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:.25rem;border:none;background:none;cursor:pointer;opacity:.7;color:var(--rc-text-secondary);transition:opacity .2s ease,color .2s ease}.vwlngv6:hover{opacity:1;color:var(--rc-text)}.vwlngv6:focus-visible{outline:none;box-shadow:0 0 0 2px var(--rc-bg),0 0 0 4px var(--rc-text-secondary)}.vwlngv6:disabled{pointer-events:none;opacity:.5}.vwlngv6 svg{width:16px;height:16px;pointer-events:none;flex-shrink:0}.vwlngv7{display:flex;align-items:flex-start;gap:.75rem;padding:1.25rem 1.5rem .75rem}.vwlngv8{display:flex;flex-direction:column;gap:.375rem;flex:1;min-width:0;text-align:center}.vwlngv9{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:.25rem;border:none;background:none;cursor:pointer;opacity:.7;color:var(--rc-text-secondary);flex-shrink:0;transition:opacity .2s ease,color .2s ease}.vwlngv9:hover{opacity:1;color:var(--rc-text)}.vwlngv9:focus-visible{outline:none;box-shadow:0 0 0 2px var(--rc-bg),0 0 0 4px var(--rc-text-secondary)}.vwlngv9 svg{width:16px;height:16px;pointer-events:none;flex-shrink:0}.vwlngva{display:flex;flex-direction:column-reverse;gap:.5rem;padding:.75rem 1.5rem 1.25rem}.vwlngvb{font-family:var(--rc-font-family);font-size:1.125em;font-weight:600;line-height:1.33;letter-spacing:-.015em;color:var(--rc-text)}.vwlngvc{font-family:var(--rc-font-family);font-size:var(--rc-font-size-md);line-height:1.43;color:var(--rc-text-secondary)}.vwlngvf{position:fixed;inset:0;z-index:50;background-color:#00000080;transition:opacity .2s ease}.vwlngvg{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;flex-direction:column;max-height:85vh;border-top-left-radius:12px;border-top-right-radius:12px;background-color:var(--rc-bg);color:var(--rc-text);font-family:var(--rc-font-family-sans);box-shadow:0 -4px 24px #00000026;will-change:transform}.vwlngvg[data-open]{animation:vwlngvd .3s cubic-bezier(.32,.72,0,1)}.vwlngvg[data-closed]{animation:vwlngve .2s ease-in}.vwlngvh{display:flex;align-items:center;justify-content:center;padding:12px 0 4px;cursor:grab;flex-shrink:0;touch-action:none}.vwlngvh:active{cursor:grabbing}.vwlngvi{width:36px;height:4px;border-radius:2px;background-color:var(--rc-text-tertiary);opacity:.5}.vwlngvj{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 1.5rem 1.5rem;-webkit-overflow-scrolling:touch}.vwlngvk{display:flex;flex-direction:column;gap:.375rem;text-align:center;padding:0 1.5rem .5rem}@media(min-width:640px){.vwlngv5{max-width:28rem}.vwlngv8{text-align:left}.vwlngva{flex-direction:row;justify-content:flex-end}}.oih0op0{min-width:8rem;border-radius:var(--rc-radius-lg);padding:var(--rc-space-xs);background-color:var(--rc-bg);box-shadow:0 0 0 1px color-mix(in srgb,var(--rc-text) 10%,transparent),var(--rc-shadow-menu);outline:none;color:var(--rc-text);font-family:var(--rc-font-family-sans);font-size:var(--rc-font-size-small);z-index:50;max-height:var(--available-height);overflow-x:hidden;overflow-y:auto;transform-origin:var(--transform-origin);transition:opacity .1s ease-out,transform .1s ease-out;max-width:min(20rem,calc(100vw - .75rem))}.oih0op0[data-open]{animation:_1sxaacb0 .1s ease-out}.oih0op0[data-starting-style],.oih0op0[data-ending-style]{opacity:0;transform:scale(.95)}.oih0op0[data-closed]{animation:_1sxaacb1 .1s ease-in;overflow:hidden}.oih0op1{outline:none;z-index:50;isolation:isolate}.oih0op1[data-side=bottom]{transform:translateY(2px)}.oih0op1[data-side=top]{transform:translateY(-2px)}.oih0op1[data-side=left]{transform:translate(-2px)}.oih0op1[data-side=right]{transform:translate(2px)}.oih0op2{display:flex;align-items:center;gap:.375rem;border-radius:var(--rc-radius-md);padding:var(--rc-space-xs) var(--rc-space-md) var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-small);line-height:1.35;outline:none;user-select:none;cursor:default;color:var(--rc-text);position:relative;transition:background-color .1s ease,color .1s ease}.oih0op2[data-highlighted]{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.oih0op2[data-disabled]{opacity:.5;pointer-events:none}.oih0op2 svg{pointer-events:none;flex-shrink:0;width:1rem;height:1rem;color:var(--rc-text-secondary);transition:color .1s ease}.oih0op2[data-highlighted] svg{color:var(--rc-text)}.oih0op3{padding-right:2rem}.oih0op4,.oih0op5{position:absolute;right:.5rem;display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;flex-shrink:0;pointer-events:none;color:var(--rc-text-secondary)}._1y5k2ih0{overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}._1y5k2ih0::-webkit-scrollbar{width:6px}._1y5k2ih0::-webkit-scrollbar-track{background:transparent}._1y5k2ih0::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}._6d8tz20{position:relative;display:inline-flex;align-items:center;border-radius:.5rem;background-color:var(--rc-bg-tertiary);padding:.25rem}._6d8tz21{height:2rem;font-size:var(--rc-font-size-xs)}._6d8tz22{height:2.5rem;font-size:var(--rc-font-size-md)}._6d8tz23{width:100%}._6d8tz25{position:absolute;top:.25rem;bottom:.25rem;border-radius:.375rem;background-color:var(--rc-bg);box-shadow:0 1px 2px #0000000d;transition:all .3s cubic-bezier(.25,1,.5,1);pointer-events:none}._6d8tz27{opacity:0}._6d8tz28{position:relative;z-index:10;display:flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:.375rem;font-weight:500;outline:none;border:none;background:transparent;cursor:pointer;transition:color .2s;color:var(--rc-text-secondary)}._6d8tz28:focus-visible{outline:2px solid var(--rc-accent);outline-offset:1px}._6d8tz29{padding:0 .75rem}._6d8tz2a{padding:0 1rem}._6d8tz2b{color:var(--rc-text)}._6d8tz2d{pointer-events:none;opacity:.4}._6d8tz2f{flex:1}@keyframes p74a620{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes p74a621{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.p74a622{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;height:36px;padding:8px 8px 8px 10px;font-size:var(--rc-font-size-small);line-height:1.35;font-family:var(--rc-font-family-sans);border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);background:transparent;color:var(--rc-text);cursor:pointer;outline:none;white-space:nowrap;box-shadow:0 1px 2px #0000000d;transition:color .15s ease,box-shadow .15s ease,border-color .15s ease}.p74a622:hover{background:var(--rc-fill-quaternary)}.p74a622:focus-visible{border-color:var(--rc-accent);box-shadow:0 0 0 3px var(--rc-accent-light)}.p74a622[data-popup-open]{background:var(--rc-fill-quaternary)}.p74a622[data-disabled]{opacity:.5;cursor:not-allowed}.p74a623{width:16px;height:16px;color:var(--rc-text-tertiary);flex-shrink:0;pointer-events:none}.p74a624{outline:none;z-index:50;isolation:isolate}.p74a625{background:var(--rc-bg);color:var(--rc-text);font-family:var(--rc-font-family-sans);font-size:var(--rc-font-size-small);border-radius:var(--rc-radius-md);box-shadow:0 0 0 1px color-mix(in srgb,var(--rc-text) 10%,transparent),var(--rc-shadow-menu);width:min(var(--anchor-width),calc(100vw - .75rem));max-width:calc(100vw - .75rem);max-height:var(--available-height);overflow-x:hidden;overflow-y:auto;outline:none;transform-origin:var(--transform-origin);transition:opacity .1s ease-out,transform .1s ease-out}.p74a625[data-open]{animation:p74a620 .1s ease-out}.p74a625[data-starting-style],.p74a625[data-ending-style]{opacity:0;transform:scale(.95)}.p74a625[data-closed]{animation:p74a621 .1s ease-in;overflow:hidden}.p74a626{padding:4px}.p74a626+.p74a626{border-top:1px solid var(--rc-hr-border)}.p74a627{display:flex;align-items:center;gap:8px;padding:6px 32px 6px 8px;border-radius:var(--rc-radius-sm);font-size:var(--rc-font-size-small);line-height:1.35;outline:none;user-select:none;cursor:default;color:var(--rc-text);position:relative;transition:background-color .1s ease,color .1s ease}.p74a627[data-highlighted]{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.p74a627[data-disabled]{opacity:.5;pointer-events:none}.p74a627 svg{pointer-events:none;flex-shrink:0;width:16px;height:16px}.p74a628{position:absolute;right:8px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;pointer-events:none;color:var(--rc-text-secondary)}.p74a627[data-highlighted] .p74a628{color:var(--rc-text)}.p74a629{padding:6px 8px;font-size:var(--rc-font-size-xs);font-weight:500;line-height:1.4;color:var(--rc-text-tertiary)}.p74a62a{height:1px;background-color:var(--rc-hr-border);margin:4px -4px}.p74a62b{display:flex;align-items:center;justify-content:center;width:100%;padding:4px 0;cursor:default;color:var(--rc-text-tertiary);background:var(--rc-bg);z-index:10}.p74a62b svg{width:16px;height:16px}@keyframes _131cfek0{to{transform:rotate(360deg)}}._131cfek1{display:inline-block;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:_131cfek0 .6s linear infinite;flex-shrink:0}._131cfek2{width:14px;height:14px}._131cfek3{width:20px;height:20px}@keyframes _73cmpa0{0%{transform:scale(1);opacity:1}50%{transform:scale(1.8);opacity:0}to{transform:scale(1.8);opacity:0}}._73cmpa1{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}._73cmpa2{border-radius:50%;flex-shrink:0}._73cmpa3{background-color:#a3a3a3}._73cmpa4{background-color:#3b82f6}._73cmpa5{background-color:#22c55e}._73cmpa6{background-color:#ef4444}._73cmpa7{background-color:#f59e0b}._73cmpa8{width:8px;height:8px}._73cmpa9{width:12px;height:12px}._73cmpaa{position:absolute;border-radius:50%;animation:_73cmpa0 1.5s ease-in-out infinite}._73cmpab{background-color:#a3a3a3}._73cmpac{background-color:#3b82f6}._73cmpad{background-color:#22c55e}._73cmpae{background-color:#ef4444}._73cmpaf{background-color:#f59e0b}._73cmpag{width:8px;height:8px}._73cmpah{width:12px;height:12px}@keyframes _1cspf2m0{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes _1cspf2m1{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(2px)}}._1cspf2m2{z-index:50;outline:none}._1cspf2m3{max-width:320px;padding:var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-xs);line-height:1.4;color:var(--rc-text);background-color:var(--rc-bg);border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);box-shadow:var(--rc-shadow-menu);outline:none;white-space:normal;word-break:break-word;pointer-events:none;transition:opacity .12s ease-out,transform .12s ease-out}._1cspf2m3[data-open]{animation:_1cspf2m0 .12s ease-out}._1cspf2m3[data-ending-style]{opacity:0;transform:translateY(2px)}._1cspf2m3[data-closed]{animation:_1cspf2m1 .12s ease-in}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-editor-ui",
3
- "version": "0.0.110",
3
+ "version": "0.1.1",
4
4
  "description": "UI components for haklex rich editor",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,7 +22,7 @@
22
22
  ],
23
23
  "dependencies": {
24
24
  "@base-ui/react": "^1.2.0",
25
- "@haklex/rich-style-token": "0.0.110"
25
+ "@haklex/rich-style-token": "0.1.1"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/react": "^19.2.14",