gbrichtext 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 甲宁
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,102 @@
1
- # Temporary Holding Version
1
+ # gbrichtext
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ 面向 Vue 3 的通用富文本编辑器:**自研 contenteditable 内核 + 块级编辑体验**。正文是一整篇 HTML,不绑定任何后端容器格式。
4
+
5
+ - **块模式**:块标悬浮、拖拽排序、边缘并排成超级块、块菜单(复制/删除/移动/缩进/转换)。
6
+ - **斜杠命令**:输入 `/` 或 `、` 打开;支持中文、拼音全拼与首字母搜索(如 `bg` → 表格、`glk` → 高亮块)。
7
+ - **块专属能力**:高亮块(callout)、超级块(多列)、超级块加/删列、块属性(`data-battrs`)。
8
+ - **编辑 / 只读双态**:只读态不起编辑器实例,正文样式与编辑面同源。
9
+ - **表格**:插入表格、表头开关、合并/拆分、行列增删、列宽拖拽、单元格右键菜单。
10
+ - **查找替换**:`Ctrl/Cmd + F`;命中高亮走 CSS Custom Highlight API,不改正文 DOM。
11
+ - **轻依赖**:运行时只依赖 `vue`(peer)与 [`guabiui`](https://www.npmjs.com/package/guabiui);拼音库按需加载,不进首屏。
12
+
13
+ ## 安装
14
+
15
+ ```bash
16
+ npm install gbrichtext guabiui
17
+ ```
18
+
19
+ `vue` 需要由宿主提供(`^3.4`)。
20
+
21
+ ## 快速开始
22
+
23
+ ```js
24
+ import { createApp } from 'vue';
25
+ import { GbRichTextEditor } from 'gbrichtext';
26
+ import 'guabiui/styles';
27
+ import 'gbrichtext/styles';
28
+
29
+ createApp(App).mount('#app');
30
+ ```
31
+
32
+ ```vue
33
+ <script setup>
34
+ import { ref } from 'vue';
35
+ import { GbRichTextEditor } from 'gbrichtext';
36
+
37
+ const html = ref('<p>写点什么…</p>');
38
+ </script>
39
+
40
+ <template>
41
+ <GbRichTextEditor v-model="html" :height="480" placeholder="写点什么…" />
42
+ </template>
43
+ ```
44
+
45
+ 样式必须引入两份:`guabiui/styles`(令牌与浮层组件样式)与 `gbrichtext/styles`(编辑器正文与 UI)。
46
+
47
+ ## API
48
+
49
+ ### Props
50
+
51
+ | 名称 | 类型 | 默认值 | 说明 |
52
+ | --- | --- | --- | --- |
53
+ | `modelValue` | `string` | `''` | 正文 HTML(v-model)。整篇由宿主持久化。 |
54
+ | `mode` | `'edit' \| 'view'` | `'edit'` | 编辑态 / 只读态。 |
55
+ | `height` | `number` | `320` | 编辑区高度 px;`0` 表示填满父容器(父级需为 flex 布局)。 |
56
+ | `placeholder` | `string` | `''` | 空正文占位文案。 |
57
+ | `domain` | `'block' \| 'basic'` | `'block'` | `block` 开放高亮块/超级块/列操作/块属性;`basic` 只保留基础块能力。 |
58
+
59
+ ### Events
60
+
61
+ | 名称 | 载荷 | 说明 |
62
+ | --- | --- | --- |
63
+ | `update:modelValue` | `string` | 正文 HTML 变化(内核 250ms 拖尾防抖)。 |
64
+
65
+ ### Expose
66
+
67
+ | 方法 | 说明 |
68
+ | --- | --- |
69
+ | `flush()` | 落地防抖并返回当前 HTML;切档/提交前现读。 |
70
+ | `exec(name, ...args)` | 透传内核命令(如 `insertTable`、`setBlockAttrs`)。 |
71
+ | `getEditor()` | 取内核实例(高级用法)。 |
72
+ | `getBlockAttrsOf(el?)` | 读块自定义属性;`el` 缺省为光标所在块。 |
73
+ | `setBlockAttrs(map, el?)` | 写块自定义属性(入撤销历史)。 |
74
+ | `highlightKeyword(keyword, options?)` | 只读态关键词高亮(CSS Custom Highlight),返回命中数。 |
75
+ | `clearHighlight()` | 清关键词高亮。 |
76
+
77
+ ### Slots
78
+
79
+ | 名称 | 说明 |
80
+ | --- | --- |
81
+ | `toolbar-extra` | 追加到工具栏末尾。 |
82
+ | `floaters-extra` | 追加到编辑器浮层族(插槽参数 `{ editor, state }`)。 |
83
+
84
+ ## 设计边界
85
+
86
+ - **正文 = 一整篇 HTML**:不产生块树、不写块 ID;高亮块/超级块/块属性都以 `data-callout` / `data-super` / `data-col` / `data-battrs` 随正文落盘。
87
+ - **不内置附件条、图片上传服务或 `.gbRtx`/笔记容器协议**:图片从本地选择后以 base64 内嵌正文;附件、资源库、引用等由宿主自行提供。
88
+ - **拼音搜索按需加载**:第一次打开斜杠面板时才动态载入 `pinyin-pro`,不会进入首屏静态图;加载期间显示「正在加载拼音匹配…」。
89
+ - **只读态**必须挂 `.rich-text-content`(组件内部已挂),正文排版规则随 `gbrichtext/styles` 一起发布。
90
+
91
+ ## 开发
92
+
93
+ ```bash
94
+ npm install
95
+ npm run dev # demo: http://localhost:5173/
96
+ npm run build # dist/gbrichtext.js + dist/gbrichtext.css
97
+ npm test # node:test(内核/纯函数)
98
+ ```
99
+
100
+ ## License
101
+
102
+ MIT
@@ -0,0 +1,138 @@
1
+ import { openBlock as i, createBlock as S, unref as P, normalizeProps as j, guardReactiveProps as z, createSlots as B, withCtx as c, renderSlot as p, ref as k, watch as y, computed as N, createElementVNode as o, createElementBlock as r, toDisplayString as O, createCommentVNode as _, Fragment as x, renderList as E, withDirectives as g, vModelText as b, createVNode as V } from "vue";
2
+ import { GbPopupHost as H } from "guabiui";
3
+ import { _ as R, a as $ } from "./index-BMSGFbdL.js";
4
+ const q = /* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
5
+ __name: "PopupHost",
6
+ setup(l) {
7
+ return (a, f) => (i(), S(P(H), j(z(a.$attrs)), B({
8
+ default: c(() => [
9
+ p(a.$slots, "default")
10
+ ]),
11
+ _: 2
12
+ }, [
13
+ a.$slots.footer ? {
14
+ name: "footer",
15
+ fn: c(() => [
16
+ p(a.$slots, "footer")
17
+ ]),
18
+ key: "0"
19
+ } : void 0,
20
+ a.$slots["header-actions"] ? {
21
+ name: "header-actions",
22
+ fn: c(() => [
23
+ p(a.$slots, "header-actions")
24
+ ]),
25
+ key: "1"
26
+ } : void 0
27
+ ]), 1040));
28
+ }
29
+ }), F = { class: "ad" }, G = ["title"], I = { class: "ad-rows" }, L = ["onUpdate:modelValue"], M = ["onUpdate:modelValue"], T = ["onClick"], J = {
30
+ key: 1,
31
+ class: "ad-hint"
32
+ }, K = {
33
+ __name: "AttrDialog",
34
+ props: {
35
+ /** 弹层形态记忆键(PopupHost 组件 K 按 scene 存抽屉/弹窗形态与宽度;不同入口各用各的键) */
36
+ scene: { type: String, default: "attr_dialog" },
37
+ /** 弹层标题(「文档属性」/「块属性」) */
38
+ title: { type: String, default: "属性" },
39
+ /** 目标提示(块文本摘要或文档名;空则不占位) */
40
+ subtitle: { type: String, default: "" },
41
+ /** 打开时快照的属性表 */
42
+ attrs: { type: Object, default: () => ({}) }
43
+ },
44
+ emits: ["update", "close"],
45
+ setup(l, { emit: a }) {
46
+ const f = l, v = a, n = k([]);
47
+ let C = 0;
48
+ const h = (e = "", t = "") => ({ id: ++C, k: e, v: t });
49
+ y(() => f.attrs, (e) => {
50
+ n.value = Object.entries(e || {}).map(([t, s]) => h(t, String(s ?? "")));
51
+ }, { immediate: !0, deep: !0 });
52
+ const u = () => {
53
+ const e = {};
54
+ for (const t of n.value) {
55
+ const s = t.k.trim();
56
+ s && (e[s] = t.v);
57
+ }
58
+ v("update", e);
59
+ }, w = N(() => n.value.some((e) => e.k.trim())), U = () => n.value.push(h()), A = (e) => {
60
+ n.value.splice(e, 1), u();
61
+ }, m = k(!0);
62
+ return y(m, (e) => {
63
+ e || v("close");
64
+ }), (e, t) => (i(), S(q, {
65
+ modelValue: m.value,
66
+ "onUpdate:modelValue": t[0] || (t[0] = (s) => m.value = s),
67
+ scene: l.scene,
68
+ title: l.title,
69
+ variant: "form",
70
+ "initial-width": 460,
71
+ "initial-height": 360
72
+ }, {
73
+ default: c(() => [
74
+ o("div", F, [
75
+ l.subtitle ? (i(), r("p", {
76
+ key: 0,
77
+ class: "ad-target",
78
+ title: l.subtitle
79
+ }, O(l.subtitle), 9, G)) : _("", !0),
80
+ t[2] || (t[2] = o("div", { class: "ad-label" }, "自定义属性", -1)),
81
+ o("div", I, [
82
+ (i(!0), r(x, null, E(n.value, (s, D) => (i(), r("div", {
83
+ key: s.id,
84
+ class: "ad-row"
85
+ }, [
86
+ g(o("input", {
87
+ "onUpdate:modelValue": (d) => s.k = d,
88
+ class: "ad-key",
89
+ type: "text",
90
+ placeholder: "键",
91
+ onChange: u
92
+ }, null, 40, L), [
93
+ [b, s.k]
94
+ ]),
95
+ t[1] || (t[1] = o("span", { class: "ad-sep" }, ":", -1)),
96
+ g(o("input", {
97
+ "onUpdate:modelValue": (d) => s.v = d,
98
+ class: "ad-val",
99
+ type: "text",
100
+ placeholder: "值",
101
+ onChange: u
102
+ }, null, 40, M), [
103
+ [b, s.v]
104
+ ]),
105
+ o("button", {
106
+ type: "button",
107
+ class: "ad-del",
108
+ title: "删除该属性",
109
+ onClick: (d) => A(D)
110
+ }, [
111
+ V($, {
112
+ name: "rte-trash",
113
+ size: 14
114
+ })
115
+ ], 8, T)
116
+ ]))), 128)),
117
+ o("button", {
118
+ type: "button",
119
+ class: "ad-add",
120
+ title: "添加属性",
121
+ onClick: U
122
+ }, [
123
+ V($, {
124
+ name: "plus",
125
+ size: 14
126
+ })
127
+ ])
128
+ ]),
129
+ w.value ? _("", !0) : (i(), r("p", J, "还没有属性,点「+」添加一条(键:值)"))
130
+ ])
131
+ ]),
132
+ _: 1
133
+ }, 8, ["modelValue", "scene", "title"]));
134
+ }
135
+ }, Z = /* @__PURE__ */ R(K, [["__scopeId", "data-v-032a63d6"]]);
136
+ export {
137
+ Z as default
138
+ };
@@ -0,0 +1 @@
1
+ @charset "UTF-8";:root{--gb-accent: #2a6bff;--gb-accent-hover: #5a8bff;--gb-accent-active: #1f52d8;--gb-on-accent: #ffffff;--gb-accent-soft: rgba(42, 107, 255, .14);--gb-accent-soft-strong: rgba(42, 107, 255, .3);--gb-surface: #ffffff;--gb-surface-2: #f6f8fb;--gb-bg: #ffffff;--gb-bg-2: #f7f9fc;--gb-bg-3: #fafbfd;--gb-bg-elevated: #ffffff;--gb-text: #171a1f;--gb-text-secondary: rgba(23, 26, 31, .64);--gb-text-tertiary: rgba(23, 26, 31, .44);--gb-text-disabled: rgba(23, 26, 31, .3);--gb-border: rgba(23, 26, 31, .09);--gb-border-strong: rgba(23, 26, 31, .18);--gb-hover: rgba(23, 26, 31, .05);--gb-active: rgba(23, 26, 31, .09);--gb-fill: rgba(23, 26, 31, .035);--gb-success: #16a34a;--gb-success-soft: rgba(22, 163, 74, .14);--gb-warning: #f59e0b;--gb-warning-soft: rgba(245, 158, 11, .14);--gb-danger: #e5484d;--gb-danger-hover: #d93a40;--gb-danger-soft: rgba(229, 72, 77, .12);--gb-info: #0891b2;--gb-shadow-popup: 0 10px 34px rgba(15, 23, 42, .18);--gb-shadow-window: 0 10px 30px rgba(15, 23, 42, .14), 0 0 0 .5px rgba(15, 23, 42, .08);--gb-shadow-soft: 0 2px 8px rgba(15, 23, 42, .08);--gb-shadow-float: 0 8px 24px rgba(0, 0, 0, .1);--gb-shadow-float-2: 0 2px 6px rgba(0, 0, 0, .06);--gb-shadow-media: 0 8px 28px rgba(0, 0, 0, .45);--gb-shadow-scrim: 0 4px 20px rgba(0, 0, 0, .4);--gb-radius-sm: 6px;--gb-radius-md: 10px;--gb-radius-lg: 14px;--gb-radius-pill: 999px;--gb-ease-out: cubic-bezier(.16, 1, .3, 1);--gb-duration-fast: .15s;--gb-duration-normal: .22s;--gb-space-2xs: 2px;--gb-space-xs: 4px;--gb-space-sm: 6px;--gb-space-md: 8px;--gb-space-lg: 12px;--gb-space-xl: 16px;--gb-space-2xl: 20px;--gb-space-3xl: 24px;--gb-space-4xl: 32px;--gb-control-h-sm: 24px;--gb-control-h: 32px;--gb-control-h-lg: 40px;--gb-row-h: 34px;--gb-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--gb-font-size-2xs: 10px;--gb-font-size-xs: 11px;--gb-font-size-sm: 12px;--gb-font-size: 13px;--gb-font-size-lg: 14px;--gb-line-height: 1.5;--gb-line-height-tight: 1.25;--gb-mono: "JetBrains Mono", "Cascadia Code", Consolas, "Courier New", monospace;--gb-dim: rgba(9, 14, 24, .34);--gb-on-solid: #ffffff;--gb-on-warning: #1a1204;--gb-tint: #ffffff;--gb-shade: #000000;--gb-scrim: rgba(8, 10, 14, .9);--gb-scrim-strong: rgba(0, 0, 0, .7);--gb-scrim-surface: rgba(20, 24, 32, .6);--gb-scrim-surface-strong: rgba(20, 24, 32, .78);--gb-scrim-border: rgba(255, 255, 255, .16);--gb-scrim-border-soft: rgba(255, 255, 255, .12);--gb-scrim-hover: rgba(255, 255, 255, .12);--gb-scrim-active: rgba(255, 255, 255, .2);--gb-scrim-text: #ffffff;--gb-scrim-text-2: rgba(255, 255, 255, .82);--gb-scrim-text-3: rgba(255, 255, 255, .62);--gb-z-popover: 1200;--gb-z-context-menu: 1300;--gb-z-viewer: 7600;--gb-z-popup-base: 9000}[data-gb-theme=dark]{--gb-accent: #7aa2ff;--gb-accent-hover: #9bbaff;--gb-accent-active: #5f8bff;--gb-on-accent: #0b1220;--gb-accent-soft: rgba(122, 162, 255, .2);--gb-accent-soft-strong: rgba(122, 162, 255, .4);--gb-surface: #1a1d24;--gb-surface-2: #22262f;--gb-bg: #1a1d24;--gb-bg-2: #22262f;--gb-bg-3: #282d37;--gb-bg-elevated: #22262f;--gb-text: #eef1f6;--gb-text-secondary: rgba(238, 241, 246, .64);--gb-text-tertiary: rgba(238, 241, 246, .44);--gb-text-disabled: rgba(238, 241, 246, .3);--gb-border: rgba(255, 255, 255, .09);--gb-border-strong: rgba(255, 255, 255, .18);--gb-hover: rgba(255, 255, 255, .06);--gb-active: rgba(255, 255, 255, .1);--gb-fill: rgba(255, 255, 255, .04);--gb-success: #34c47c;--gb-success-soft: rgba(52, 196, 124, .16);--gb-warning: #fbbf24;--gb-warning-soft: rgba(251, 191, 36, .16);--gb-danger: #ff6b6e;--gb-danger-hover: #ff8d90;--gb-danger-soft: rgba(255, 107, 110, .18);--gb-info: #22d3ee;--gb-shadow-popup: 0 10px 38px rgba(0, 0, 0, .58);--gb-shadow-window: 0 12px 36px rgba(0, 0, 0, .55), 0 0 0 .5px rgba(255, 255, 255, .08);--gb-shadow-soft: 0 2px 10px rgba(0, 0, 0, .4)}.gb-scroll-thin{scrollbar-width:thin;scrollbar-color:var(--gb-border-strong) transparent}.gb-scroll-thin::-webkit-scrollbar{width:8px;height:8px}.gb-scroll-thin::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--gb-border-strong) content-box}.gb-scroll-thin::-webkit-scrollbar-thumb:hover{background:var(--gb-text-tertiary) content-box}.gb-scroll-thin::-webkit-scrollbar-track{background:transparent}.gb-popup-embed-container{position:relative}.gb-float-surface{font-family:var(--gb-font-family);color:var(--gb-text);font-size:var(--gb-font-size);box-sizing:border-box}.gb-float-surface *,.gb-float-surface *:before,.gb-float-surface *:after{box-sizing:border-box}.gb-focus-ring:focus-visible{outline:2px solid var(--gb-accent);outline-offset:2px}.gb-toast-stack{position:fixed;left:50%;bottom:28px;z-index:var(--gb-z-viewer);display:flex;flex-direction:column;align-items:center;gap:8px;transform:translate(-50%);pointer-events:none}.gb-toast{display:flex;align-items:center;gap:8px;max-width:420px;padding:9px 14px;border:1px solid var(--gb-border);border-radius:var(--gb-radius-md);background:var(--gb-bg-elevated);color:var(--gb-text);font-family:var(--gb-font-family);font-size:var(--gb-font-size);line-height:1.45;box-shadow:var(--gb-shadow-popup);opacity:0;transform:translateY(6px) scale(.98);transition:opacity var(--gb-duration-normal) var(--gb-ease-out),transform var(--gb-duration-normal) var(--gb-ease-out);pointer-events:auto;cursor:default}.gb-toast.is-in{opacity:1;transform:none}.gb-toast__dot{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--gb-info)}.gb-toast.is-success .gb-toast__dot{background:var(--gb-success)}.gb-toast.is-warning .gb-toast__dot{background:var(--gb-warning)}.gb-toast.is-error .gb-toast__dot{background:var(--gb-danger)}.gb-toast__text{min-width:0;word-break:break-word}.gb-icon[data-v-00845d56]{display:inline-block;flex-shrink:0;vertical-align:middle}.gb-icon.is-spin[data-v-00845d56]{animation:gb-icon-spin-00845d56 1s linear infinite}@keyframes gb-icon-spin-00845d56{to{transform:rotate(360deg)}}.gb-button[data-v-68f850f3]{--gb-button-height: 32px;--gb-button-padding: 0 14px;--gb-button-font: var(--gb-font-size);--gb-button-color: var(--gb-text);--gb-button-bg: var(--gb-surface);--gb-button-border: var(--gb-border-strong);--gb-button-hover-bg: var(--gb-hover);--gb-button-hover-color: var(--gb-accent);--gb-button-hover-border: var(--gb-accent);display:inline-flex;align-items:center;justify-content:center;gap:5px;height:var(--gb-button-height);padding:var(--gb-button-padding);border:1px solid var(--gb-button-border);border-radius:var(--gb-radius-sm);background:var(--gb-button-bg);color:var(--gb-button-color);font-family:var(--gb-font-family);font-size:var(--gb-button-font);line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--gb-duration-fast) ease,border-color var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease,box-shadow var(--gb-duration-fast) ease}.gb-button[data-v-68f850f3]:hover:not(:disabled){background:var(--gb-button-hover-bg);border-color:var(--gb-button-hover-border);color:var(--gb-button-hover-color)}.gb-button[data-v-68f850f3]:active:not(:disabled){transform:translateY(.5px)}.gb-button[data-v-68f850f3]:focus-visible{outline:2px solid var(--gb-accent);outline-offset:2px}.gb-button--small[data-v-68f850f3]{--gb-button-height: 24px;--gb-button-padding: 0 9px;--gb-button-font: var(--gb-font-size-sm)}.gb-button--large[data-v-68f850f3]{--gb-button-height: 40px;--gb-button-padding: 0 20px;--gb-button-font: var(--gb-font-size-lg)}.gb-button--primary[data-v-68f850f3]{--gb-button-color: var(--gb-on-accent);--gb-button-bg: var(--gb-accent);--gb-button-border: var(--gb-accent);--gb-button-hover-bg: var(--gb-accent-hover);--gb-button-hover-border: var(--gb-accent-hover);--gb-button-hover-color: var(--gb-on-accent)}.gb-button--success[data-v-68f850f3]{--gb-button-color: var(--gb-on-solid);--gb-button-bg: var(--gb-success);--gb-button-border: var(--gb-success);--gb-button-hover-bg: color-mix(in srgb, var(--gb-success) 84%, var(--gb-shade));--gb-button-hover-border: color-mix(in srgb, var(--gb-success) 84%, var(--gb-shade));--gb-button-hover-color: var(--gb-on-solid)}.gb-button--danger[data-v-68f850f3]{--gb-button-color: var(--gb-on-solid);--gb-button-bg: var(--gb-danger);--gb-button-border: var(--gb-danger);--gb-button-hover-bg: var(--gb-danger-hover);--gb-button-hover-border: var(--gb-danger-hover);--gb-button-hover-color: var(--gb-on-solid)}.gb-button--warning[data-v-68f850f3]{--gb-button-color: var(--gb-on-solid);--gb-button-bg: var(--gb-warning);--gb-button-border: var(--gb-warning);--gb-button-hover-bg: color-mix(in srgb, var(--gb-warning) 84%, var(--gb-shade));--gb-button-hover-border: color-mix(in srgb, var(--gb-warning) 84%, var(--gb-shade));--gb-button-hover-color: var(--gb-on-solid)}.gb-button--info[data-v-68f850f3]{--gb-button-color: var(--gb-on-solid);--gb-button-bg: var(--gb-info);--gb-button-border: var(--gb-info);--gb-button-hover-bg: color-mix(in srgb, var(--gb-info) 84%, var(--gb-shade));--gb-button-hover-border: color-mix(in srgb, var(--gb-info) 84%, var(--gb-shade));--gb-button-hover-color: var(--gb-on-solid)}.gb-button.is-plain[data-v-68f850f3]{--gb-button-bg: color-mix(in srgb, var(--gb-accent) 8%, transparent);--gb-button-color: var(--gb-accent);--gb-button-border: color-mix(in srgb, var(--gb-accent) 40%, transparent)}.gb-button--default.is-plain[data-v-68f850f3]{--gb-button-bg: var(--gb-fill);--gb-button-color: var(--gb-text);--gb-button-border: var(--gb-border)}.gb-button.is-round[data-v-68f850f3]{border-radius:999px}.gb-button.is-circle[data-v-68f850f3]{width:var(--gb-button-height);padding:0;border-radius:50%}.gb-button.is-text[data-v-68f850f3]{--gb-button-bg: transparent;--gb-button-border: transparent;--gb-button-hover-bg: var(--gb-hover);--gb-button-hover-border: transparent;--gb-button-color: var(--gb-text-secondary);--gb-button-hover-color: var(--gb-accent)}.gb-button.is-disabled[data-v-68f850f3],.gb-button[data-v-68f850f3]:disabled{opacity:.5;cursor:not-allowed}.gb-button__icon[data-v-68f850f3]{flex-shrink:0}.gb-button__label[data-v-68f850f3]{display:inline-flex;align-items:center}.gb-menu-icon[data-v-512a6657]{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:16px;height:16px}.gb-menu-icon__img[data-v-512a6657]{width:16px;height:16px;object-fit:contain}.gb-menu-icon__dot[data-v-512a6657]{width:8px;height:8px;border-radius:50%}.gb-popup-controls[data-v-b4b0a7c3]{display:flex;align-items:stretch;align-self:stretch;flex-shrink:0;margin-left:auto}.gb-popup-ctl[data-v-b4b0a7c3]{display:flex;align-items:center;justify-content:center;width:40px;padding:0;border:none;background:transparent;color:var(--gb-text-secondary);cursor:pointer;transition:background-color var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease}.gb-popup-ctl[data-v-b4b0a7c3]:hover{background:var(--gb-hover);color:var(--gb-text)}.gb-popup-ctl.is-active[data-v-b4b0a7c3]{color:var(--gb-accent)}.gb-popup-ctl.is-close[data-v-b4b0a7c3]:hover{background:var(--gb-danger);color:var(--gb-on-solid)}.gb-popup-layer[data-v-a6fec61e]{position:absolute;inset:0;display:flex;opacity:0;pointer-events:none;transition:opacity var(--gb-duration-normal) var(--gb-ease-out)}.gb-popup-layer.is-open[data-v-a6fec61e]{opacity:1}.gb-popup-layer.is-modal[data-v-a6fec61e]{background:var(--gb-dim)}.gb-popup-layer.is-open.is-modal[data-v-a6fec61e]{pointer-events:auto}.gb-popup-layer.is-minimized[data-v-a6fec61e]{display:none}.gb-popup-layer.is-root[data-v-a6fec61e]{position:fixed;align-items:flex-start;justify-content:center;padding:6vh 0;overflow:auto}.gb-popup-drawer[data-v-a6fec61e],.gb-popup-dialog[data-v-a6fec61e]{display:flex;flex-direction:column;min-height:0;border:1px solid var(--gb-border);background:var(--gb-bg);color:var(--gb-text);box-shadow:var(--gb-shadow-window);pointer-events:auto;transform:translateY(8px);opacity:0;transition:transform var(--gb-duration-normal) var(--gb-ease-out),opacity var(--gb-duration-normal) var(--gb-ease-out)}.gb-popup-layer.is-open .gb-popup-drawer[data-v-a6fec61e],.gb-popup-layer.is-open .gb-popup-dialog[data-v-a6fec61e]{transform:none;opacity:1}.gb-popup-drawer.is-resizing[data-v-a6fec61e],.gb-popup-dialog.is-resizing[data-v-a6fec61e],.gb-popup-dialog.is-dragging[data-v-a6fec61e]{transition:none}.gb-popup__header[data-v-a6fec61e]{display:flex;align-items:stretch;flex-shrink:0;height:40px;padding-left:16px;border-bottom:1px solid var(--gb-border);-webkit-user-select:none;user-select:none}.gb-popup__header.is-draggable[data-v-a6fec61e]{cursor:move}.gb-popup__title[data-v-a6fec61e]{flex:0 1 auto;min-width:0;align-self:center;font-size:var(--gb-font-size);font-weight:600;line-height:1.4;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gb-popup__tag[data-v-a6fec61e]{flex-shrink:0;align-self:center;margin-left:8px;padding:0 8px;border:1px solid var(--gb-border);border-radius:9px;color:var(--gb-text-tertiary);font-size:var(--gb-font-size-xs);line-height:16px}.gb-popup__actions[data-v-a6fec61e]{display:flex;align-items:stretch;flex-shrink:0;align-self:stretch;margin-left:auto}.gb-popup__body[data-v-a6fec61e]{flex:1;min-height:0;padding:16px 20px;overflow:auto}.gb-popup__body.is-fixed-height[data-v-a6fec61e]{flex:0 0 auto}.gb-popup__footer[data-v-a6fec61e]{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0;padding:12px 20px;border-top:1px solid var(--gb-border)}.gb-popup-drawer.is-detail .gb-popup__body[data-v-a6fec61e],.gb-popup-dialog.is-detail .gb-popup__body[data-v-a6fec61e]{padding:0;display:flex;flex-direction:column}.gb-popup-drawer.is-edit .gb-popup__body[data-v-a6fec61e],.gb-popup-dialog.is-edit .gb-popup__body[data-v-a6fec61e]{padding:8px 10px;display:flex;flex-direction:column}.gb-popup-drawer[data-v-a6fec61e]{position:absolute;top:0;bottom:0;max-width:100%}.gb-popup-drawer.is-right[data-v-a6fec61e]{right:0;border-right:none}.gb-popup-drawer.is-left[data-v-a6fec61e]{left:0;border-left:none}.gb-popup-drawer .gb-popup__header[data-v-a6fec61e]{background:var(--gb-accent-soft)}.gb-popup__grip[data-v-a6fec61e]{position:absolute;top:50%;width:20px;height:84px;display:flex;align-items:center;justify-content:center;transform:translateY(-50%);border:1px solid var(--gb-border);background:var(--gb-bg);color:var(--gb-text-tertiary);cursor:ew-resize;transition:border-color var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease,box-shadow var(--gb-duration-fast) ease}.gb-popup__grip.is-right[data-v-a6fec61e]{left:-20px;border-right:none;border-radius:10px 0 0 10px;box-shadow:-2px 0 10px color-mix(in srgb,var(--gb-text) 12%,transparent)}.gb-popup__grip.is-left[data-v-a6fec61e]{right:-20px;border-left:none;border-radius:0 10px 10px 0;box-shadow:2px 0 10px color-mix(in srgb,var(--gb-text) 12%,transparent)}.gb-popup__grip[data-v-a6fec61e]:before{content:"";width:2px;height:2px;border-radius:50%;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor}.gb-popup__grip[data-v-a6fec61e]:hover{border-color:color-mix(in srgb,var(--gb-accent) 45%,var(--gb-border));color:var(--gb-accent)}.gb-popup-dialog[data-v-a6fec61e]{position:absolute;max-height:100%;border-radius:var(--gb-radius-lg);overflow:hidden}.gb-popup-dialog.is-maximized[data-v-a6fec61e]{max-height:100%;border-radius:0}.gb-popup-layer.is-root .gb-popup-dialog[data-v-a6fec61e]{position:relative;margin:0;max-height:88vh}.gb-popup-dialog.is-maximized .gb-popup__body[data-v-a6fec61e]{flex:1;min-height:0}.gb-popup__handle[data-v-a6fec61e]{position:absolute;z-index:2}.gb-popup__handle.is-n[data-v-a6fec61e]{top:0;left:8px;right:8px;height:4px;cursor:n-resize}.gb-popup__handle.is-s[data-v-a6fec61e]{bottom:0;left:8px;right:8px;height:4px;cursor:s-resize}.gb-popup__handle.is-e[data-v-a6fec61e]{top:8px;right:0;bottom:8px;width:4px;cursor:e-resize}.gb-popup__handle.is-w[data-v-a6fec61e]{top:8px;left:0;bottom:8px;width:4px;cursor:w-resize}.gb-popup__handle.is-ne[data-v-a6fec61e],.gb-popup__handle.is-nw[data-v-a6fec61e],.gb-popup__handle.is-se[data-v-a6fec61e],.gb-popup__handle.is-sw[data-v-a6fec61e]{width:12px;height:12px;z-index:3}.gb-popup__handle.is-ne[data-v-a6fec61e]{top:0;right:0;cursor:ne-resize}.gb-popup__handle.is-nw[data-v-a6fec61e]{top:0;left:0;cursor:nw-resize}.gb-popup__handle.is-se[data-v-a6fec61e]{bottom:0;right:0;cursor:se-resize}.gb-popup__handle.is-sw[data-v-a6fec61e]{bottom:0;left:0;cursor:sw-resize}.gb-popup-minibar[data-v-a6fec61e]{position:absolute;z-index:calc(var(--gb-z-popup-base) + 1);width:280px;height:36px;border-radius:8px;background:var(--gb-bg-elevated);box-shadow:var(--gb-shadow-popup);cursor:grab;-webkit-user-select:none;user-select:none;overflow:hidden}.gb-popup-minibar[data-v-a6fec61e]:before{content:"";position:absolute;top:50%;left:50%;width:200%;height:200%;transform:translate(-50%,-50%);background:conic-gradient(var(--gb-accent),color-mix(in srgb,var(--gb-accent) 15%,transparent),var(--gb-accent),color-mix(in srgb,var(--gb-accent) 15%,transparent),var(--gb-accent));animation:gb-minibar-spin-a6fec61e 2s linear infinite;pointer-events:none}@keyframes gb-minibar-spin-a6fec61e{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.gb-popup-minibar__inner[data-v-a6fec61e]{position:absolute;inset:3px;display:flex;align-items:center;border-radius:5px;background:var(--gb-bg-elevated);overflow:hidden}.gb-popup-minibar__title[data-v-a6fec61e]{flex:1;min-width:0;padding:0 12px;color:var(--gb-text);font-size:var(--gb-font-size);font-weight:500;line-height:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gb-popup-minibar__btn[data-v-a6fec61e]{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:30px;border:none;border-left:1px solid var(--gb-border);background:transparent;color:var(--gb-text-secondary);cursor:pointer;transition:background var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease}.gb-popup-minibar__btn[data-v-a6fec61e]:hover{background:var(--gb-hover);color:var(--gb-text)}.gb-popup-minibar__btn.is-close[data-v-a6fec61e]:hover{background:var(--gb-danger);color:var(--gb-on-solid)}.gb-popover-trigger[data-v-befcd071]{display:inline-flex;align-items:center}.gb-float[data-v-befcd071]{position:fixed;z-index:var(--gb-z-popover);min-width:120px;border:1px solid var(--gb-border);border-radius:var(--gb-radius-lg);background:var(--gb-surface);color:var(--gb-text);filter:drop-shadow(var(--gb-shadow-float)) drop-shadow(var(--gb-shadow-float-2));-webkit-user-select:none;user-select:none}.gb-float__body[data-v-befcd071]{padding:12px;border-radius:calc(var(--gb-radius-lg) - 1px);overflow-y:auto;overflow-x:hidden}.gb-float__body.is-menu[data-v-befcd071]{padding:4px}.gb-float__items.is-split[data-v-befcd071]{margin:8px -8px -4px;padding-top:6px;border-top:1px solid var(--gb-border)}.gb-float__arrow[data-v-befcd071]{position:absolute;width:10px;height:10px;margin-left:-5px;margin-top:-5px;background:var(--gb-surface);transform:rotate(45deg);pointer-events:none;z-index:-1}.is-top .gb-float__arrow[data-v-befcd071],.is-top-start .gb-float__arrow[data-v-befcd071],.is-top-end .gb-float__arrow[data-v-befcd071]{top:auto;bottom:-5px;border-right:1px solid var(--gb-border);border-bottom:1px solid var(--gb-border);border-bottom-right-radius:2px}.is-bottom .gb-float__arrow[data-v-befcd071],.is-bottom-start .gb-float__arrow[data-v-befcd071],.is-bottom-end .gb-float__arrow[data-v-befcd071]{top:0;border-left:1px solid var(--gb-border);border-top:1px solid var(--gb-border);border-top-left-radius:2px}.is-left .gb-float__arrow[data-v-befcd071],.is-left-start .gb-float__arrow[data-v-befcd071],.is-left-end .gb-float__arrow[data-v-befcd071]{left:auto;right:-5px;border-bottom:1px solid var(--gb-border);border-right:1px solid var(--gb-border);border-bottom-right-radius:2px}.is-right .gb-float__arrow[data-v-befcd071],.is-right-start .gb-float__arrow[data-v-befcd071],.is-right-end .gb-float__arrow[data-v-befcd071]{left:0;border-top:1px solid var(--gb-border);border-left:1px solid var(--gb-border);border-top-left-radius:2px}.gb-float__item[data-v-befcd071]{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:var(--gb-radius-sm);font-size:var(--gb-font-size);cursor:pointer;white-space:nowrap;transition:background-color var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease}.gb-float__label[data-v-befcd071]{overflow:hidden;text-overflow:ellipsis}.gb-float__item[data-v-befcd071]:hover{background:var(--gb-hover)}.gb-float__item.is-danger[data-v-befcd071]{color:var(--gb-danger)}.gb-float__item.is-active[data-v-befcd071]{color:var(--gb-accent);background:var(--gb-accent-soft);font-weight:500}.gb-float__item.is-divided[data-v-befcd071]{position:relative;margin-top:5px}.gb-float__item.is-divided[data-v-befcd071]:before{content:"";position:absolute;left:8px;right:8px;top:-3px;height:1px;background:var(--gb-border)}.gb-float__item.is-disabled[data-v-befcd071]{opacity:.45;cursor:default}.gb-float__item.is-disabled[data-v-befcd071]:hover{background:transparent}.gb-float__act[data-v-befcd071]{display:inline-flex;align-items:center;margin-left:auto;padding:2px 4px;border:none;border-radius:var(--gb-radius-sm);background:transparent;color:var(--gb-text-tertiary);cursor:pointer}.gb-float__act[data-v-befcd071]:hover{color:var(--gb-accent);background:var(--gb-hover)}.gb-float__act.is-on[data-v-befcd071]{color:var(--gb-accent)}.gb-float.is-compact[data-v-befcd071]{min-width:0;border-radius:var(--gb-radius-md)}.gb-float.is-compact .gb-float__body[data-v-befcd071]{padding:10px}.gb-float.is-compact .gb-float__body.is-menu[data-v-befcd071]{padding:3px}.gb-float.is-compact .gb-float__items.is-split[data-v-befcd071]{margin:6px -6px -3px}.gb-float.is-compact .gb-float__item[data-v-befcd071]{gap:6px;padding:6px 10px;font-size:var(--gb-font-size-sm);border-radius:5px}.gb-submenu[data-v-befcd071]{min-width:150px;padding:4px;overflow-y:auto}.gb-pop-enter-active[data-v-befcd071],.gb-pop-leave-active[data-v-befcd071]{transition:opacity var(--gb-duration-fast) ease,transform var(--gb-duration-fast) ease;transform-origin:top left}.gb-pop-enter-from[data-v-befcd071],.gb-pop-leave-to[data-v-befcd071]{opacity:0;transform:scale(.96)}.gb-menu[data-v-5fb9bddf]{position:fixed;z-index:var(--gb-z-context-menu);min-width:180px;box-sizing:border-box;padding:8px 0;border:1px solid var(--gb-border);border-radius:var(--gb-radius-md);background:var(--gb-surface);box-shadow:var(--gb-shadow-popup);color:var(--gb-text);font-size:var(--gb-font-size);-webkit-user-select:none;user-select:none}.gb-menu__body[data-v-5fb9bddf]{padding:0 8px;overflow-x:hidden;overflow-y:auto}.gb-menu__item[data-v-5fb9bddf]{position:relative;display:flex;align-items:center;gap:8px;box-sizing:border-box;width:100%;margin:1px 0;padding:0 8px;border:0;border-radius:var(--gb-radius-sm);background:transparent;color:inherit;line-height:28px;text-align:left;white-space:nowrap;cursor:pointer;transition:background-color var(--gb-duration-fast) ease}.gb-menu__item[data-v-5fb9bddf]:hover,.gb-menu__item.is-open[data-v-5fb9bddf]{background:var(--gb-hover)}.gb-menu__item.is-danger[data-v-5fb9bddf]:hover,.gb-menu__item.is-danger.is-open[data-v-5fb9bddf]{color:var(--gb-danger)}.gb-menu__item.is-disabled[data-v-5fb9bddf]{cursor:not-allowed}.gb-menu__item.is-disabled[data-v-5fb9bddf]>*{opacity:.38}.gb-menu__item.is-disabled[data-v-5fb9bddf]:hover{background:transparent}.gb-menu__divider[data-v-5fb9bddf]{display:block;box-sizing:border-box;width:100%;height:1px;margin:4px 0;padding:0;border:0;background:var(--gb-border)}.gb-menu__check[data-v-5fb9bddf]{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:16px;color:var(--gb-accent);font-size:var(--gb-font-size-sm)}.gb-menu__item[data-v-5fb9bddf] .gb-menu-icon{color:var(--gb-text-secondary)}.gb-menu__label[data-v-5fb9bddf]{display:inline-flex;align-items:center;flex:1;min-width:84px;gap:4px}.gb-menu__label-text[data-v-5fb9bddf]{white-space:nowrap}.gb-menu__input[data-v-5fb9bddf]{flex-shrink:0;box-sizing:border-box;width:64px;height:22px;padding:0 6px;border:1px solid var(--gb-border-strong);border-radius:var(--gb-radius-sm);background:var(--gb-bg);color:var(--gb-text);font-size:var(--gb-font-size);line-height:20px;text-align:center;appearance:textfield}.gb-menu__input[data-v-5fb9bddf]:focus{border-color:var(--gb-accent);box-shadow:0 0 0 1px var(--gb-accent-soft);outline:none}.gb-menu__input[data-v-5fb9bddf]::-webkit-outer-spin-button,.gb-menu__input[data-v-5fb9bddf]::-webkit-inner-spin-button{margin:0;appearance:none}.gb-menu__unit[data-v-5fb9bddf]{flex-shrink:0;color:var(--gb-text-secondary)}.gb-menu__shortcut[data-v-5fb9bddf]{flex-shrink:0;margin-left:16px;color:var(--gb-text-secondary);font-size:var(--gb-font-size-sm)}.gb-menu__badge[data-v-5fb9bddf]{flex-shrink:0;margin-left:auto;padding:0 8px;border-radius:999px;background:var(--gb-hover);color:var(--gb-text-tertiary);font-size:var(--gb-font-size-xs);line-height:18px}.gb-menu__badge.is-success[data-v-5fb9bddf]{background:var(--gb-success-soft);color:var(--gb-success)}.gb-menu__badge.is-warning[data-v-5fb9bddf]{background:var(--gb-warning-soft);color:var(--gb-warning)}.gb-menu__badge.is-danger[data-v-5fb9bddf]{background:var(--gb-danger-soft);color:var(--gb-danger)}.gb-menu__arrow[data-v-5fb9bddf]{flex-shrink:0;margin-left:auto;padding-left:8px;color:var(--gb-text-tertiary);font-size:var(--gb-font-size-lg);line-height:1}.gb-submenu[data-v-5fb9bddf]{min-width:150px}.gb-menu-pop-enter-active[data-v-5fb9bddf],.gb-menu-pop-leave-active[data-v-5fb9bddf]{transition:opacity var(--gb-duration-fast) ease,transform var(--gb-duration-fast) ease;transform-origin:top left}.gb-menu.is-above[data-v-5fb9bddf]{transform-origin:bottom left}.gb-menu-pop-enter-from[data-v-5fb9bddf],.gb-menu-pop-leave-to[data-v-5fb9bddf]{opacity:0;transform:scale(.96)}.gb-heat[data-v-78649fe7]{display:flex;flex-direction:column;width:100%;font-family:var(--gb-font-family)}.gb-heat__header[data-v-78649fe7]{display:flex;align-items:center;justify-content:center;gap:8px;padding-bottom:10px;flex-shrink:0}.gb-heat__month[data-v-78649fe7]{padding:2px 8px;border:none;border-radius:var(--gb-radius-sm);background:transparent;color:var(--gb-text);font-family:inherit;font-size:var(--gb-font-size-lg);font-weight:600;cursor:pointer;transition:background var(--gb-duration-fast) ease}.gb-heat__month[data-v-78649fe7]:hover{background:var(--gb-hover)}.gb-heat__nav[data-v-78649fe7]{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 4px;border:1px solid var(--gb-border);border-radius:var(--gb-radius-sm);background:var(--gb-surface);color:var(--gb-text-secondary);cursor:pointer;transition:background var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease,border-color var(--gb-duration-fast) ease}.gb-heat__nav[data-v-78649fe7]:hover:not(:disabled){border-color:var(--gb-accent);color:var(--gb-accent)}.gb-heat__nav[data-v-78649fe7]:disabled{opacity:.45;cursor:not-allowed}.gb-heat__nav .is-flip[data-v-78649fe7]{transform:rotate(180deg)}.gb-heat__week[data-v-78649fe7]{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding-bottom:4px;flex-shrink:0}.gb-heat__week-label[data-v-78649fe7]{color:var(--gb-text-tertiary);font-size:var(--gb-font-size-xs);line-height:18px;text-align:center}.gb-heat__body[data-v-78649fe7]{display:flex;gap:4px;flex:none}.gb-heat__viewport[data-v-78649fe7]{flex:1;height:220px;min-height:0;overflow:hidden}.gb-heat__grid[data-v-78649fe7]{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;transition:transform .3s var(--gb-ease-out)}.gb-heat__scroll[data-v-78649fe7]{display:flex;flex-direction:column;align-self:center;justify-content:center;gap:4px;flex-shrink:0}.gb-heat__cell[data-v-78649fe7]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;border:1px solid var(--gb-border);border-radius:6px;background:var(--gb-bg-3);cursor:pointer;transition:filter var(--gb-duration-fast) ease,border-color var(--gb-duration-fast) ease}.gb-heat__cell[data-v-78649fe7]:hover{filter:brightness(1.06)}.gb-heat__cell.is-other-month[data-v-78649fe7]{opacity:.35}.gb-heat__cell.is-future[data-v-78649fe7]{opacity:.4;cursor:default}.gb-heat__cell.is-future[data-v-78649fe7]:hover{filter:none}.gb-heat__cell.is-success[data-v-78649fe7]{border-color:color-mix(in srgb,var(--gb-success) 76%,var(--gb-text));background:var(--gb-success);box-shadow:0 1px 3px color-mix(in srgb,var(--gb-success) 35%,transparent)}.gb-heat__cell.is-accent[data-v-78649fe7]{border-color:color-mix(in srgb,var(--gb-accent) 76%,var(--gb-text));background:var(--gb-accent);box-shadow:0 1px 3px color-mix(in srgb,var(--gb-accent) 35%,transparent)}.gb-heat__cell.is-danger[data-v-78649fe7]{border-color:color-mix(in srgb,var(--gb-danger) 76%,var(--gb-text));background:var(--gb-danger);box-shadow:0 1px 3px color-mix(in srgb,var(--gb-danger) 35%,transparent)}.gb-heat__cell.is-today .gb-heat__day[data-v-78649fe7]{color:var(--gb-accent)}.gb-heat__cell.is-selected[data-v-78649fe7]{outline:2px solid var(--gb-accent);outline-offset:1px}.gb-heat__day[data-v-78649fe7]{color:var(--gb-text);font-size:var(--gb-font-size);font-weight:600}.gb-heat__cell.is-success .gb-heat__day[data-v-78649fe7],.gb-heat__cell.is-accent .gb-heat__day[data-v-78649fe7],.gb-heat__cell.is-danger .gb-heat__day[data-v-78649fe7]{color:var(--gb-on-accent)}.gb-heat__count[data-v-78649fe7]{position:absolute;top:3px;left:4px;color:var(--gb-on-accent);font-size:var(--gb-font-size-2xs);font-weight:600;line-height:1;opacity:.9}.gb-heat__dot[data-v-78649fe7]{position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--gb-on-accent);opacity:.8}.gb-heat__picker[data-v-78649fe7]{padding:8px}.gb-heat__picker-head[data-v-78649fe7]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px}.gb-heat__picker-year[data-v-78649fe7]{color:var(--gb-text);font-size:var(--gb-font-size);font-weight:600}.gb-heat__picker-grid[data-v-78649fe7]{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.gb-heat__picker-cell[data-v-78649fe7]{padding:6px 0;border:1px solid transparent;border-radius:var(--gb-radius-sm);background:var(--gb-fill);color:var(--gb-text);font-family:inherit;font-size:var(--gb-font-size-sm);cursor:pointer;transition:background var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease}.gb-heat__picker-cell[data-v-78649fe7]:hover:not(:disabled){background:var(--gb-accent-soft);color:var(--gb-accent)}.gb-heat__picker-cell.is-active[data-v-78649fe7]{border-color:var(--gb-accent);background:var(--gb-accent);color:var(--gb-on-accent)}.gb-heat__picker-cell[data-v-78649fe7]:disabled{opacity:.35;cursor:not-allowed}.gb-viewer[data-v-4bf4bfae]{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--gb-font-family)}.gb-viewer__mask[data-v-4bf4bfae]{position:absolute;inset:0;background:var(--gb-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.gb-viewer__stage[data-v-4bf4bfae]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:64px 72px;overflow:hidden}.gb-viewer__img[data-v-4bf4bfae]{max-width:100%;max-height:100%;object-fit:contain;transition:transform var(--gb-duration-fast) var(--gb-ease-out);-webkit-user-select:none;user-select:none}.gb-viewer__img.is-grabbing[data-v-4bf4bfae]{cursor:grabbing}.gb-viewer__nav[data-v-4bf4bfae]{position:absolute;top:50%;z-index:2;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--gb-scrim-border);border-radius:50%;background:var(--gb-scrim-surface);color:var(--gb-scrim-text);cursor:pointer;transform:translateY(-50%);transition:background var(--gb-duration-fast) ease,border-color var(--gb-duration-fast) ease}.gb-viewer__nav[data-v-4bf4bfae]:hover{background:color-mix(in srgb,var(--gb-accent) 85%,transparent);border-color:transparent}.gb-viewer__nav.is-prev[data-v-4bf4bfae]{left:20px;transform:translateY(-50%) rotate(180deg)}.gb-viewer__nav.is-next[data-v-4bf4bfae]{right:20px}.gb-viewer__toolbar[data-v-4bf4bfae]{position:absolute;bottom:28px;left:50%;z-index:2;display:flex;align-items:center;gap:2px;padding:6px 10px;border:1px solid var(--gb-scrim-border-soft);border-radius:999px;background:var(--gb-scrim-surface-strong);box-shadow:var(--gb-shadow-media);transform:translate(-50%)}.gb-viewer__btn[data-v-4bf4bfae]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--gb-scrim-text-2);cursor:pointer;transition:background var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease}.gb-viewer__btn[data-v-4bf4bfae]:hover{background:var(--gb-scrim-hover);color:var(--gb-scrim-text)}.gb-viewer__btn.is-close[data-v-4bf4bfae]:hover{background:var(--gb-danger)}.gb-viewer__scale[data-v-4bf4bfae]{min-width:44px;color:var(--gb-scrim-text-3);font-size:var(--gb-font-size-sm);text-align:center;font-variant-numeric:tabular-nums}.gb-viewer__sep[data-v-4bf4bfae]{width:1px;height:16px;margin:0 4px;background:var(--gb-scrim-active)}.gb-viewer__counter[data-v-4bf4bfae]{margin-left:8px;padding-left:10px;border-left:1px solid var(--gb-scrim-border);color:var(--gb-scrim-text-3);font-size:var(--gb-font-size-sm);font-variant-numeric:tabular-nums}.gb-album[data-v-93adcdc9]{display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--gb-font-family)}.gb-album__stack[data-v-93adcdc9]{--gb-album-z-top: 10;--gb-album-depth: 0;--gb-album-shrink: .02;position:relative;width:100%;overflow:visible;isolation:isolate}.gb-album__card[data-v-93adcdc9]{position:absolute;top:0;left:0;display:flex;flex-direction:column;width:calc(100% / var(--gb-album-span));aspect-ratio:var(--gb-album-aspect);padding:calc(3% / var(--gb-album-span));border:1px solid var(--gb-border-strong);border-radius:var(--gb-radius-sm);background:var(--gb-bg);box-shadow:0 6px 14px color-mix(in srgb,var(--gb-text) 12%,transparent);cursor:pointer;container-type:inline-size;z-index:calc(var(--gb-album-z-top) - var(--gb-album-depth));transform-origin:left center;transform:translate(calc(var(--gb-album-depth) * var(--gb-album-step))) scale(calc(1 - var(--gb-album-depth) * var(--gb-album-shrink)));transition:transform var(--gb-duration-normal) var(--gb-ease-out),opacity var(--gb-duration-normal) var(--gb-ease-out)}.gb-album__card.has-caption[data-v-93adcdc9]{padding-bottom:calc(10% / var(--gb-album-span))}.gb-album__card[data-v-93adcdc9]:focus-visible{outline:2px solid var(--gb-accent);outline-offset:2px}.gb-album__card.is-top[data-v-93adcdc9]{cursor:zoom-in;box-shadow:var(--gb-shadow-window)}.gb-album__photo[data-v-93adcdc9]{flex:1;min-height:0;width:100%;object-fit:cover;border-radius:calc(var(--gb-radius-sm) / 2);pointer-events:none}.gb-album__caption[data-v-93adcdc9]{margin-top:2%;color:var(--gb-text-secondary);font-size:clamp(10px,4cqw,13px);line-height:1.4;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--gb-duration-fast) var(--gb-ease-out)}.gb-album__veil[data-v-93adcdc9]{position:absolute;inset:0;border-radius:inherit;background:var(--gb-hover);opacity:0;pointer-events:none;transition:opacity var(--gb-duration-fast) var(--gb-ease-out)}.gb-album__card:hover .gb-album__veil[data-v-93adcdc9]{opacity:1}.gb-album__card:active .gb-album__veil[data-v-93adcdc9]{background:var(--gb-active);opacity:1}.gb-album__card:hover .gb-album__caption[data-v-93adcdc9]{color:var(--gb-text)}.gb-album__remove[data-v-93adcdc9]{position:absolute;top:4%;right:4%;display:flex;align-items:center;justify-content:center;width:9cqw;height:9cqw;min-width:16px;min-height:16px;border-radius:50%;background:var(--gb-surface);box-shadow:var(--gb-shadow-popup);color:var(--gb-text-secondary);font-size:clamp(11px,6cqw,16px);line-height:1;cursor:pointer;opacity:0;transition:opacity var(--gb-duration-fast) var(--gb-ease-out),color var(--gb-duration-fast) var(--gb-ease-out)}.gb-album__card:hover .gb-album__remove[data-v-93adcdc9],.gb-album__card:focus-within .gb-album__remove[data-v-93adcdc9]{opacity:1}.gb-album__remove[data-v-93adcdc9]:hover{color:var(--gb-danger)}.gb-album-enter-from[data-v-93adcdc9],.gb-album-leave-to[data-v-93adcdc9]{opacity:0}.gb-orderable[data-v-03d2da03]{display:flex;flex-direction:column;gap:4px;font-family:var(--gb-font-family)}.gb-orderable__row[data-v-03d2da03]{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid transparent;border-radius:6px;background:var(--gb-fill);transition:background-color var(--gb-duration-fast) ease,border-color var(--gb-duration-fast) ease,opacity var(--gb-duration-fast) ease}.gb-orderable__row[data-v-03d2da03]:hover{background:var(--gb-hover)}.gb-orderable__row.is-dragging[data-v-03d2da03]{opacity:.4}.gb-orderable__row.is-over[data-v-03d2da03]{border-color:var(--gb-accent);background:color-mix(in srgb,var(--gb-accent) 8%,transparent)}.gb-orderable__row.is-active{border-color:var(--gb-accent);background:var(--gb-accent-soft)}.gb-orderable__handle[data-v-03d2da03]{display:inline-flex;flex-shrink:0;align-items:center;color:var(--gb-text-secondary);cursor:grab}.gb-orderable__handle[data-v-03d2da03]:active{cursor:grabbing}.gb-orderable__content[data-v-03d2da03]{flex:1;min-width:0}.gb-orderable__btns[data-v-03d2da03]{display:flex;align-items:center;gap:2px;flex-shrink:0;margin-left:auto}.gb-find-bar[data-v-787ca217]{position:absolute;z-index:9;display:flex;flex-direction:column;gap:2px;padding:5px;border:1px solid var(--gb-border);border-radius:8px;background:var(--gb-surface);box-shadow:var(--gb-shadow-popup);font-family:var(--gb-font-family)}.gb-find-row[data-v-787ca217]{display:flex;align-items:center;gap:4px}.gb-find-toggle[data-v-787ca217],.gb-find-btn[data-v-787ca217]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--gb-text-secondary);cursor:pointer;transition:background-color var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease}.gb-find-toggle[data-v-787ca217]:hover,.gb-find-btn[data-v-787ca217]:hover{background:var(--gb-hover);color:var(--gb-text)}.gb-find-icon[data-v-787ca217]{display:inline-flex;align-items:center;color:var(--gb-text-tertiary)}.gb-find-input[data-v-787ca217]{width:150px;height:24px;padding:0 7px;border:1px solid var(--gb-border);border-radius:4px;background:var(--gb-bg);color:var(--gb-text);font-family:inherit;font-size:var(--gb-font-size);outline:none}.gb-find-input[data-v-787ca217]:focus{border-color:var(--gb-accent)}.gb-find-count[data-v-787ca217]{min-width:52px;color:var(--gb-text-secondary);font-size:var(--gb-font-size-sm);text-align:center}.gb-find-count.is-empty[data-v-787ca217]{color:var(--gb-danger)}.gb-find-pop-enter-active[data-v-787ca217],.gb-find-pop-leave-active[data-v-787ca217]{transition:opacity var(--gb-duration-fast) ease,transform var(--gb-duration-fast) ease}.gb-find-pop-enter-from[data-v-787ca217],.gb-find-pop-leave-to[data-v-787ca217]{opacity:0;transform:translateY(-4px)}::highlight(gb-find){background:color-mix(in srgb,var(--gb-warning) 38%,transparent);color:inherit}::highlight(gb-find-active){background:var(--gb-warning);color:var(--gb-on-warning)}.gb-color-panel[data-v-1e9b2e4c]{padding:8px}.gb-color-panel__head[data-v-1e9b2e4c]{padding:0 2px 6px;color:var(--gb-text-secondary);font-size:var(--gb-font-size-sm)}.gb-color-panel__grid[data-v-1e9b2e4c]{display:grid;gap:3px;margin-bottom:8px}.gb-color-panel__swatch[data-v-1e9b2e4c]{width:100%;aspect-ratio:1;padding:0;border:1px solid var(--gb-border-strong);border-radius:4px;box-sizing:border-box;cursor:pointer;transition:transform var(--gb-duration-fast) ease,box-shadow var(--gb-duration-fast) ease}.gb-color-panel__swatch[data-v-1e9b2e4c]:hover{transform:scale(1.14);box-shadow:0 1px 4px var(--gb-border-strong)}.gb-color-panel__swatch.is-selected[data-v-1e9b2e4c]{box-shadow:0 0 0 2px var(--gb-accent)}.gb-color-panel__custom[data-v-1e9b2e4c]{display:flex;align-items:center;gap:6px}.gb-color-panel__preview[data-v-1e9b2e4c]{width:22px;height:22px;flex-shrink:0;border:1px solid var(--gb-border);border-radius:4px;background-image:linear-gradient(45deg,var(--gb-fill) 25%,transparent 25%,transparent 75%,var(--gb-fill) 75%),linear-gradient(45deg,var(--gb-border) 25%,transparent 25%,transparent 75%,var(--gb-border) 75%);background-size:10px 10px;background-position:0 0,5px 5px}.gb-color-panel__wheel[data-v-1e9b2e4c]{position:relative;width:22px;height:22px;flex-shrink:0;border:1px solid var(--gb-border);border-radius:4px;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);cursor:pointer}.gb-color-panel__wheel input[data-v-1e9b2e4c]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.gb-color-panel__hex[data-v-1e9b2e4c]{flex:1;min-width:0;height:26px;padding:0 7px;border:1px solid var(--gb-border);border-radius:5px;background:var(--gb-bg);color:var(--gb-text);font-family:inherit;font-size:var(--gb-font-size-sm);text-transform:uppercase;outline:none}.gb-color-panel__hex[data-v-1e9b2e4c]:focus{border-color:var(--gb-accent)}.gb-color-panel__clear[data-v-1e9b2e4c]{width:100%;margin-top:6px}.gb-appearance[data-v-5f904905]{padding:8px;max-height:70vh;overflow-y:auto}.gb-appearance__head[data-v-5f904905]{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 4px;color:var(--gb-text-secondary);font-size:var(--gb-font-size-sm)}.gb-appearance__head[data-v-5f904905]:first-child{padding-top:0}.gb-appearance__grid[data-v-5f904905]{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin-bottom:4px}.gb-appearance__swatch[data-v-5f904905]{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;padding:0;border:1px solid var(--gb-border-strong);border-radius:4px;background:var(--gb-surface);color:var(--gb-text);font-family:inherit;font-size:var(--gb-font-size);line-height:1;cursor:pointer;transition:transform var(--gb-duration-fast) ease,box-shadow var(--gb-duration-fast) ease}.gb-appearance__swatch[data-v-5f904905]:hover{transform:scale(1.1);box-shadow:0 1px 4px var(--gb-border-strong);z-index:1}.gb-appearance__swatch.is-active[data-v-5f904905]{box-shadow:0 0 0 2px var(--gb-accent)}.gb-appearance__clear[data-v-5f904905]{width:100%;margin-top:6px}.gb-table-surface[data-v-901a83f5]{position:relative;display:flex;flex-direction:column;width:100%;min-height:0}.gb-table-surface.is-fill[data-v-901a83f5]{height:100%}.gb-table-surface__scroll[data-v-901a83f5]{position:relative;flex:1;min-width:0;overflow:auto;font-family:var(--gb-font-family)}.gb-table-surface__scroll.is-selecting[data-v-901a83f5]{-webkit-user-select:none;user-select:none}.gb-table-surface__probe[data-v-901a83f5]{position:absolute;top:0;left:0;height:0;pointer-events:none}.gb-table-layer[data-v-901a83f5]{--gb-table-handle-thickness: 12px;position:absolute;inset:0;overflow:visible;z-index:7;pointer-events:none}.gb-table-handles[data-v-901a83f5]{position:absolute;inset:0;pointer-events:none}.gb-table-handle[data-v-901a83f5]{position:absolute;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:var(--gb-fill);color:var(--gb-text-secondary);font-family:inherit;font-size:var(--gb-font-size-lg);line-height:1;cursor:pointer;pointer-events:auto;transition:background-color var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease}.gb-table-handle[data-v-901a83f5]:hover{background:var(--gb-accent-soft);color:var(--gb-accent)}.gb-table-handle.is-column[data-v-901a83f5]{width:var(--gb-table-handle-thickness);border-radius:0 999px 999px 0}.gb-table-handle.is-row[data-v-901a83f5]{height:var(--gb-table-handle-thickness);border-radius:0 0 999px 999px}.gb-table-select[data-v-901a83f5]{position:absolute;box-sizing:border-box;border:1px solid var(--gb-accent);background:var(--gb-accent-soft);pointer-events:none}.gb-col-line[data-v-901a83f5]{position:absolute;width:6px;pointer-events:none}.gb-col-line[data-v-901a83f5]:after{content:"";position:absolute;top:0;left:2px;width:2px;height:100%;background:var(--gb-accent-hover)}.gb-size-picker[data-v-69a88256]{padding:10px}.gb-size-picker__head[data-v-69a88256]{padding-bottom:8px;color:var(--gb-text-secondary);font-size:var(--gb-font-size-sm)}.gb-size-picker__grid[data-v-69a88256]{display:grid;grid-template-columns:repeat(var(--gb-tsp-cols, 8),20px);gap:3px}.gb-size-picker__cell[data-v-69a88256]{width:20px;height:20px;box-sizing:border-box;border:1px solid var(--gb-border);border-radius:3px;background:var(--gb-surface)}.gb-size-picker__cell.is-on[data-v-69a88256]{border-color:var(--gb-accent);background:var(--gb-accent-soft)}.gb-size-picker__label[data-v-69a88256]{margin-top:8px;color:var(--gb-text);font-size:var(--gb-font-size-sm)}.gb-progress[data-v-3536d43b]{position:absolute;left:50%;z-index:9;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--gb-danger) 40%,transparent);border-radius:var(--gb-radius-lg);background:var(--gb-scrim-strong);box-shadow:var(--gb-shadow-scrim);font-family:var(--gb-font-family);transform:translate(-50%);pointer-events:auto}.gb-progress.is-global[data-v-3536d43b]{position:fixed;z-index:var(--gb-z-popover)}.gb-progress__row[data-v-3536d43b]{display:flex;align-items:center;gap:8px}.gb-progress__dot[data-v-3536d43b]{width:8px;height:8px;border-radius:50%;background:var(--gb-danger);animation:gb-progress-blink-3536d43b 1s ease-in-out infinite}.gb-progress__title[data-v-3536d43b]{color:var(--gb-scrim-text);font-size:var(--gb-font-size-lg);font-weight:500}.gb-progress__hint[data-v-3536d43b]{color:var(--gb-scrim-text-3);font-size:var(--gb-font-size-sm)}@keyframes gb-progress-blink-3536d43b{0%,to{opacity:1}50%{opacity:.3}}.gb-check[data-v-6cb24515]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:15px;height:15px;padding:0;border:1px solid var(--gb-border-strong);border-radius:4px;background:var(--gb-surface);color:var(--gb-on-accent);cursor:pointer;transition:background-color var(--gb-duration-fast) ease,border-color var(--gb-duration-fast) ease}.gb-check[data-v-6cb24515]:hover{border-color:var(--gb-accent)}.gb-check.is-on[data-v-6cb24515],.gb-check.is-indeterminate[data-v-6cb24515]{background:var(--gb-accent);border-color:var(--gb-accent)}.gb-batch-cell[data-v-e3df307a]{display:flex;align-items:center;gap:var(--gb-space-xs);min-width:0;width:100%;overflow:hidden;font-size:var(--gb-font-size);line-height:20px;color:var(--gb-text)}.gb-batch-cell__text[data-v-e3df307a]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gb-batch-cell__text.is-link[data-v-e3df307a]{color:var(--gb-accent)}.gb-batch-cell.is-empty[data-v-e3df307a]{color:var(--gb-text-disabled)}.gb-batch-cell.is-number[data-v-e3df307a]{justify-content:flex-end;font-variant-numeric:tabular-nums}.gb-batch-chip[data-v-e3df307a]{flex-shrink:0;max-width:100%;padding:0 7px;border-radius:4px;font-size:var(--gb-font-size-sm);line-height:19px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gb-batch-progress[data-v-e3df307a]{display:flex;align-items:center;gap:var(--gb-space-md);width:100%;min-width:0}.gb-batch-progress__track[data-v-e3df307a]{flex:1;min-width:32px;height:6px;border-radius:999px;background:var(--gb-fill);overflow:hidden}.gb-batch-progress__bar[data-v-e3df307a]{display:block;height:100%;border-radius:999px;background:var(--gb-accent);transition:width var(--gb-duration-normal) var(--gb-ease-out)}.gb-batch-progress__num[data-v-e3df307a]{flex-shrink:0;color:var(--gb-text-secondary);font-size:var(--gb-font-size-sm);font-variant-numeric:tabular-nums}.gb-be[data-v-e7410b24]{position:fixed;box-sizing:border-box;display:flex;align-items:center;padding:var(--gb-space-2xs) var(--gb-space-xs);border:2px solid var(--gb-accent);border-radius:var(--gb-radius-sm);background:var(--gb-bg-elevated);box-shadow:var(--gb-shadow-soft);font-family:var(--gb-font-family);font-size:var(--gb-font-size);color:var(--gb-text)}.gb-be.is-select[data-v-e7410b24]{padding:var(--gb-space-2xs) var(--gb-space-sm)}.gb-be__input[data-v-e7410b24]{width:100%;min-width:0;padding:0 var(--gb-space-2xs);border:none;background:transparent;color:var(--gb-text);font-family:inherit;font-size:inherit;line-height:22px;outline:none;resize:none}.gb-be__input--text[data-v-e7410b24]{max-height:40vh;overflow:auto}.gb-be__input--number[data-v-e7410b24]{text-align:right;font-variant-numeric:tabular-nums}.gb-be__input--number[data-v-e7410b24]::-webkit-outer-spin-button,.gb-be__input--number[data-v-e7410b24]::-webkit-inner-spin-button{appearance:none;margin:0}.gb-be__input--date[data-v-e7410b24]{height:100%;min-height:22px;padding:0 var(--gb-space-2xs);cursor:text;font-size:var(--gb-font-size)}.gb-be__input--date[data-v-e7410b24]::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}.gb-be__input--date[data-v-e7410b24]::-webkit-calendar-picker-indicator:hover{opacity:.9}.gb-be__select[data-v-e7410b24]{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:3px;width:100%;min-width:0}.gb-be__chip[data-v-e7410b24]{display:inline-flex;align-items:center;gap:var(--gb-space-2xs);max-width:100%;padding:0 var(--gb-space-sm);border-radius:4px;font-size:var(--gb-font-size-sm);line-height:18px}.gb-be__chip-text[data-v-e7410b24]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gb-be__chip-x[data-v-e7410b24]{display:inline-flex;padding:0;border:none;background:transparent;color:inherit;opacity:.6;cursor:pointer}.gb-be__chip-x[data-v-e7410b24]:hover{opacity:1}.gb-be__search[data-v-e7410b24]{flex:1;min-width:60px;padding:0;border:none;background:transparent;color:var(--gb-text);font-family:inherit;font-size:inherit;line-height:22px;outline:none}.gb-be__search[data-v-e7410b24]::placeholder{color:var(--gb-text-tertiary)}.gb-be__caret[data-v-e7410b24]{flex-shrink:0;color:var(--gb-text-tertiary)}.gb-be__panel[data-v-e7410b24]{position:absolute;top:calc(100% + 3px);z-index:1;border:1px solid var(--gb-border);border-radius:var(--gb-radius-md);background:var(--gb-bg-elevated);box-shadow:var(--gb-shadow-popup);overflow:hidden}.gb-be__options[data-v-e7410b24]{max-height:232px;padding:var(--gb-space-xs);overflow-y:auto}.gb-be__option[data-v-e7410b24]{display:flex;align-items:center;justify-content:space-between;gap:var(--gb-space-md);width:100%;padding:5px var(--gb-space-md);border:none;border-radius:var(--gb-radius-sm);background:transparent;text-align:left;cursor:pointer}.gb-be__option[data-v-e7410b24]:hover{background:var(--gb-hover)}.gb-be__option.is-on[data-v-e7410b24]{background:var(--gb-accent-soft)}.gb-be__tick[data-v-e7410b24]{flex-shrink:0;color:var(--gb-accent)}.gb-be__empty[data-v-e7410b24]{padding:14px 10px;color:var(--gb-text-tertiary);font-size:var(--gb-font-size-sm);text-align:center}.gb-be__footer[data-v-e7410b24]{display:flex;justify-content:flex-end;gap:var(--gb-space-sm);padding:var(--gb-space-sm) var(--gb-space-md);border-top:1px solid var(--gb-border)}.gb-confirm[data-v-165055e4]{width:208px}.gb-confirm__title[data-v-165055e4]{font-size:var(--gb-font-size);font-weight:600;color:var(--gb-text)}.gb-confirm__desc[data-v-165055e4]{margin:var(--gb-space-sm) 0 var(--gb-space-lg);font-size:var(--gb-font-size-sm);line-height:1.5;color:var(--gb-text-secondary)}.gb-confirm__actions[data-v-165055e4]{display:flex;justify-content:flex-end;gap:var(--gb-space-sm)}.gb-batch[data-v-28af1cbf]{--gb-batch-idx-w: 54px;display:flex;flex-direction:column;min-width:0;width:100%;border:1px solid var(--gb-border);border-radius:var(--gb-radius-md);background:var(--gb-bg);overflow:hidden;font-family:var(--gb-font-family);font-size:var(--gb-font-size);color:var(--gb-text)}.gb-batch__bar[data-v-28af1cbf]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gb-space-sm);flex-shrink:0;padding:var(--gb-space-sm) var(--gb-space-md);border-bottom:1px solid var(--gb-border);background:var(--gb-bg-2)}.gb-batch__sep[data-v-28af1cbf]{width:1px;height:14px;margin:0 var(--gb-space-2xs);background:var(--gb-border-strong)}.gb-batch__stat[data-v-28af1cbf]{margin-left:auto;padding-right:var(--gb-space-2xs);color:var(--gb-text-tertiary);font-size:var(--gb-font-size-sm);font-variant-numeric:tabular-nums}.gb-batch__scroll[data-v-28af1cbf]{flex:1;min-height:0;overflow:auto;outline:none;-webkit-user-select:none;user-select:none}.gb-batch__grid[data-v-28af1cbf]{width:max-content;min-width:100%}.gb-batch__row[data-v-28af1cbf]{display:flex;align-items:stretch;min-height:var(--gb-row-h);border-bottom:1px solid var(--gb-border);transition:background-color var(--gb-duration-fast) ease}.gb-batch__row[data-v-28af1cbf]:hover{background:var(--gb-hover)}.gb-batch__row.is-selected[data-v-28af1cbf]{background:var(--gb-accent-soft)}.gb-batch__head[data-v-28af1cbf]{position:sticky;top:0;z-index:3;border-bottom:1px solid var(--gb-border-strong);background:var(--gb-bg-2)}.gb-batch__filler[data-v-28af1cbf]{flex:1 0 0;min-width:0}.gb-batch__idx[data-v-28af1cbf]{position:sticky;left:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:var(--gb-space-xs);flex:0 0 var(--gb-batch-idx-w);width:var(--gb-batch-idx-w);border-right:1px solid var(--gb-border);background:var(--gb-bg)}.gb-batch__row:hover .gb-batch__idx[data-v-28af1cbf]{background:var(--gb-bg-2)}.gb-batch__row.is-selected .gb-batch__idx[data-v-28af1cbf]{background:color-mix(in srgb,var(--gb-accent) 10%,var(--gb-bg))}.gb-batch__idx--head[data-v-28af1cbf]{background:var(--gb-bg-2);justify-content:center}.gb-batch__num[data-v-28af1cbf]{min-width:14px;color:var(--gb-text-tertiary);font-size:var(--gb-font-size-sm);font-variant-numeric:tabular-nums;text-align:center;transition:opacity var(--gb-duration-fast) ease}.gb-batch__del[data-v-28af1cbf]{position:absolute;right:2px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;border-radius:var(--gb-radius-sm);background:transparent;color:var(--gb-text-tertiary);cursor:pointer;opacity:0;transform:translateY(-50%);transition:opacity var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease}.gb-batch__row:hover .gb-batch__del[data-v-28af1cbf]{opacity:1}.gb-batch__row:hover .gb-batch__num[data-v-28af1cbf]{opacity:0}.gb-batch__del[data-v-28af1cbf]:hover{background:var(--gb-danger-soft);color:var(--gb-danger)}.gb-batch__th[data-v-28af1cbf]{position:relative;display:flex;align-items:center;gap:5px;flex:0 0 auto;box-sizing:border-box;padding:0 var(--gb-space-md);border-right:1px solid var(--gb-border);cursor:pointer;transition:background-color var(--gb-duration-fast) ease,box-shadow var(--gb-duration-fast) ease}.gb-batch__th[data-v-28af1cbf]:hover{background:var(--gb-fill)}.gb-batch__th.is-in-selection[data-v-28af1cbf]{background:var(--gb-accent-soft);box-shadow:inset 0 -2px 0 var(--gb-accent)}.gb-batch__th-icon[data-v-28af1cbf]{flex-shrink:0;color:var(--gb-text-tertiary)}.gb-batch__th-name[data-v-28af1cbf]{flex:0 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:500;color:var(--gb-text)}.gb-batch__req[data-v-28af1cbf]{flex-shrink:0;color:var(--gb-danger);font-weight:600;line-height:1}.gb-batch__resizer[data-v-28af1cbf]{position:absolute;top:0;right:-3px;bottom:0;width:6px;cursor:col-resize;z-index:1}.gb-batch__resizer[data-v-28af1cbf]:hover{background:var(--gb-accent)}.gb-batch__cell[data-v-28af1cbf]{position:relative;display:flex;align-items:center;flex:0 0 auto;box-sizing:border-box;padding:0 var(--gb-space-md);border-right:1px solid var(--gb-border);cursor:cell}.gb-batch__cell.is-selected[data-v-28af1cbf]{box-shadow:inset 0 0 0 9999px var(--gb-accent-soft)}.gb-batch__cell.is-active[data-v-28af1cbf]{z-index:1;outline:2px solid var(--gb-accent);outline-offset:-2px;border-radius:2px}.gb-batch__trigger[data-v-28af1cbf]{position:absolute;right:3px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;padding:0;border:1px solid var(--gb-border);border-radius:4px;background:var(--gb-bg-elevated);color:var(--gb-text-tertiary);cursor:pointer;opacity:0;transform:translateY(-50%);box-shadow:var(--gb-shadow-soft);transition:opacity var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease,border-color var(--gb-duration-fast) ease}.gb-batch__cell:hover .gb-batch__trigger[data-v-28af1cbf],.gb-batch__cell.is-active .gb-batch__trigger[data-v-28af1cbf]{opacity:1}.gb-batch__trigger[data-v-28af1cbf]:hover{color:var(--gb-accent);border-color:var(--gb-accent)}.gb-batch__fill[data-v-28af1cbf]{position:absolute;right:-4px;bottom:-4px;z-index:4;width:8px;height:8px;border:1px solid var(--gb-bg);border-radius:2px;background:var(--gb-accent);cursor:crosshair;box-shadow:0 1px 3px color-mix(in srgb,var(--gb-text) 30%,transparent);transition:transform var(--gb-duration-fast) ease}.gb-batch__fill[data-v-28af1cbf]:hover{transform:scale(1.35)}.gb-batch__add[data-v-28af1cbf]{border-bottom:none}.gb-batch__add-btn[data-v-28af1cbf]{display:inline-flex;align-items:center;gap:5px;height:26px;margin:var(--gb-space-xs) var(--gb-space-md);padding:0 9px;border:none;border-radius:var(--gb-radius-sm);background:transparent;color:var(--gb-accent);font-family:inherit;font-size:var(--gb-font-size);cursor:pointer;transition:background-color var(--gb-duration-fast) ease}.gb-batch__add-btn[data-v-28af1cbf]:hover:not(:disabled){background:var(--gb-accent-soft)}.gb-batch__add-btn[data-v-28af1cbf]:disabled{opacity:.6;cursor:not-allowed}.gb-batch__blank[data-v-28af1cbf]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--gb-space-sm);padding:56px var(--gb-space-2xl);color:var(--gb-text-tertiary)}.gb-batch__blank p[data-v-28af1cbf]{margin:var(--gb-space-xs) 0 0;color:var(--gb-text);font-size:var(--gb-font-size-lg)}.gb-batch__blank span[data-v-28af1cbf]{font-size:var(--gb-font-size-sm)}.gb-batch-entry[data-v-b168e211]{display:flex;flex:1;min-height:0;padding:var(--gb-space-md) var(--gb-space-lg) var(--gb-space-lg)}.gb-batch-entry[data-v-b168e211]>*{flex:1;min-width:0}.gb-batch-entry__tip[data-v-b168e211]{margin-right:auto;color:var(--gb-text-tertiary);font-size:var(--gb-font-size-sm)}:root{--z-richtext-float: 9500}:where(.gb-rte,.gb-rte-core) .rich-text-content{--richtext-z-cell-hit: 3;--richtext-z-pin-head: 4;color:var(--gb-text);caret-color:var(--gb-text);font-size:var(--richtext-font-size, 14px);font-family:var(--richtext-font-family);line-height:var(--richtext-line-height, 1.25);word-break:break-word}:where(.gb-rte,.gb-rte-core) .rich-text-content>*:first-child{margin-top:0}:where(.gb-rte,.gb-rte-core) .rich-text-content>*:last-child{margin-bottom:0}:where(.gb-rte,.gb-rte-core) .rich-text-content p{margin:2px 0}:where(.gb-rte,.gb-rte-core) .rich-text-content h1,:where(.gb-rte,.gb-rte-core) .rich-text-content h2,:where(.gb-rte,.gb-rte-core) .rich-text-content h3,:where(.gb-rte,.gb-rte-core) .rich-text-content h4,:where(.gb-rte,.gb-rte-core) .rich-text-content h5,:where(.gb-rte,.gb-rte-core) .rich-text-content h6{margin:18px 0 3px;font-weight:600;line-height:1.3}:where(.gb-rte,.gb-rte-core) .rich-text-content h1{font-size:1.875em}:where(.gb-rte,.gb-rte-core) .rich-text-content h2{font-size:1.5em}:where(.gb-rte,.gb-rte-core) .rich-text-content h3{font-size:1.25em}:where(.gb-rte,.gb-rte-core) .rich-text-content h4{font-size:1.125em}:where(.gb-rte,.gb-rte-core) .rich-text-content h5{font-size:1em}:where(.gb-rte,.gb-rte-core) .rich-text-content h6{font-size:.875em;color:var(--gb-text-secondary)}:where(.gb-rte,.gb-rte-core) .rich-text-content blockquote{margin:8px 0;padding:2px 0 2px 14px;border-left:3px solid var(--gb-text-secondary);color:var(--gb-text)}:where(.gb-rte,.gb-rte-core) .rich-text-content blockquote p{margin:2px 0}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-callout]{margin:8px 0;padding:10px 14px;border-left:3px solid var(--gb-accent);border-radius:6px;background:var(--gb-accent-soft)}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-callout]>*:first-child{margin-top:0}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-callout]>*:last-child{margin-bottom:0}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-callout] p{margin:2px 0}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-callout=warn]{border-left-color:var(--gb-warning);background:var(--gb-warning-soft)}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-callout=success]{border-left-color:var(--gb-success);background:var(--gb-success-soft)}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-callout=danger]{border-left-color:var(--gb-danger);background:var(--gb-danger-soft)}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-super]{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:12px;margin:8px 0}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-col]{min-width:0}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-col]>*:first-child{margin-top:0}:where(.gb-rte,.gb-rte-core) .rich-text-content [data-col]>*:last-child{margin-bottom:0}:where(.gb-rte,.gb-rte-core) .rich-text-content ul,:where(.gb-rte,.gb-rte-core) .rich-text-content ol{margin:2px 0;padding-left:1.6em}:where(.gb-rte,.gb-rte-core) .rich-text-content ul ul,:where(.gb-rte,.gb-rte-core) .rich-text-content ul ol,:where(.gb-rte,.gb-rte-core) .rich-text-content ol ul,:where(.gb-rte,.gb-rte-core) .rich-text-content ol ol{margin:2px 0 0}:where(.gb-rte,.gb-rte-core) .rich-text-content li{margin:1px 0}:where(.gb-rte,.gb-rte-core) .rich-text-content li>p{margin:0}:where(.gb-rte,.gb-rte-core) .rich-text-content hr{margin:12px 0;border:none;border-top:1px solid var(--gb-border)}:where(.gb-rte,.gb-rte-core) .rich-text-content pre{margin:8px 0;padding:12px 14px;border-radius:6px;background:var(--gb-fill);color:var(--gb-text);font-family:var(--richtext-font-family-code, "SFMono-Regular", Consolas, "Courier New", monospace);font-size:13px;line-height:1.5;overflow-x:auto;white-space:pre-wrap}:where(.gb-rte,.gb-rte-core) .rich-text-content pre code{padding:0;background:none;font-size:inherit}:where(.gb-rte,.gb-rte-core) .rich-text-content code{padding:1px 4px;border-radius:3px;background:var(--gb-fill);color:var(--gb-danger);font-family:var(--richtext-font-family-code, "SFMono-Regular", Consolas, "Courier New", monospace);font-size:.9em}:where(.gb-rte,.gb-rte-core) .rich-text-content a{color:var(--gb-accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}:where(.gb-rte,.gb-rte-core) .rich-text-content img{display:block;max-width:100%;height:auto!important;margin:8px 0;border-radius:4px;cursor:zoom-in}:where(.gb-rte,.gb-rte-core) .rich-text-content .doc-ref,:where(.gb-rte,.gb-rte-core) .rich-text-content .doc-attach{display:inline;padding:0 4px;margin:0 1px;border-radius:3px;background:var(--gb-bg-3);color:var(--gb-accent);white-space:nowrap;cursor:pointer}:where(.gb-rte,.gb-rte-core) .rich-text-content .doc-ref:hover,:where(.gb-rte,.gb-rte-core) .rich-text-content .doc-attach:hover{text-decoration:underline}:where(.gb-rte,.gb-rte-core) .rich-text-content .doc-ref[data-gbblk-missing],:where(.gb-rte,.gb-rte-core) .rich-text-content .doc-attach[data-gbblk-missing]{color:var(--gb-text-tertiary);text-decoration:line-through;cursor:default}:where(.gb-rte,.gb-rte-core) .rich-text-content .doc-embed{display:block;margin:10px 0;padding:8px 12px;border:1px solid var(--gb-border);border-left:3px solid var(--gb-accent);border-radius:6px;background:var(--gb-bg-3);cursor:pointer}:where(.gb-rte,.gb-rte-core) .rich-text-content .doc-embed:before{content:"嵌入引用";display:block;margin-bottom:4px;font-size:11px;line-height:1.2;color:var(--gb-text-tertiary)}:where(.gb-rte,.gb-rte-core) .rich-text-content .doc-embed[data-gbblk-missing]{opacity:.75}:where(.gb-rte,.gb-rte-core) .rich-text-content .is-selected-node{outline:2px solid var(--gb-accent);outline-offset:1px}:where(.gb-rte,.gb-rte-core) .rich-text-content .is-block-dragging{opacity:.35}:where(.gb-rte,.gb-rte-core) .rich-text-content .is-block-selected,:where(.gb-rte,.gb-rte-core) .rich-text-content .is-block-hover{border-radius:4px;background:var(--gb-accent-soft)}:where(.gb-rte,.gb-rte-core) .rich-text-content ::highlight(richtext-search){background-color:var(--gb-warning-soft)}:where(.gb-rte,.gb-rte-core) .rich-text-content ::highlight(richtext-search-current){background-color:var(--gb-warning)}:where(.gb-rte,.gb-rte-core) .rich-text-content ul[data-type=taskList]{padding-left:0;list-style:none}:where(.gb-rte,.gb-rte-core) .rich-text-content ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:8px}:where(.gb-rte,.gb-rte-core) .rich-text-content ul[data-type=taskList] li>label{display:flex;align-items:center;height:1.5em;flex-shrink:0;-webkit-user-select:none;user-select:none}:where(.gb-rte,.gb-rte-core) .rich-text-content ul[data-type=taskList] li>label input[type=checkbox]{width:15px;height:15px;margin:0;accent-color:var(--gb-accent)}:where(.gb-rte,.gb-rte-core) .rich-text-content ul[data-type=taskList] li>div{flex:1;min-width:0}:where(.gb-rte,.gb-rte-core) .rich-text-content ul[data-type=taskList] li[data-checked=true]>div{color:var(--gb-text-tertiary);text-decoration:line-through}:where(.gb-rte,.gb-rte-core) .rich-text-content table{width:100%;margin:8px 0;border-collapse:collapse;table-layout:fixed;position:relative}:where(.gb-rte,.gb-rte-core) .rich-text-content table th,:where(.gb-rte,.gb-rte-core) .rich-text-content table td{position:relative;box-sizing:border-box;min-width:var(--default-cell-min-width, 60px);padding:6px 10px;border:1px solid var(--gb-border-strong);vertical-align:top;text-align:left}:where(.gb-rte,.gb-rte-core) .rich-text-content table th>p,:where(.gb-rte,.gb-rte-core) .rich-text-content table td>p{margin:0}:where(.gb-rte,.gb-rte-core) .rich-text-content table th{background:var(--gb-fill);font-weight:600}:where(.gb-rte,.gb-rte-core) .rich-text-content table[data-pin-head=true] thead>tr>th,:where(.gb-rte,.gb-rte-core) .rich-text-content table[data-pin-head=true] thead>tr>td,:where(.gb-rte,.gb-rte-core) .rich-text-content table[data-pin-head=true]>tbody>tr:first-child>th,:where(.gb-rte,.gb-rte-core) .rich-text-content table[data-pin-head=true]>tbody>tr:first-child>td{position:sticky;top:0;z-index:var(--richtext-z-pin-head);background:var(--gb-fill)}:where(.gb-rte,.gb-rte-core) .rich-text-content.re-content table td:hover,:where(.gb-rte,.gb-rte-core) .rich-text-content.re-content table th:hover{background:var(--gb-hover)}:where(.gb-rte,.gb-rte-core) .rich-text-content.re-content table.re-cell-dragging th,:where(.gb-rte,.gb-rte-core) .rich-text-content.re-content table.re-cell-dragging td{-webkit-user-select:none;user-select:none}:where(.gb-rte,.gb-rte-core) .rich-text-content.re-content table th:before,:where(.gb-rte,.gb-rte-core) .rich-text-content.re-content table td:before{content:"";position:absolute;z-index:var(--richtext-z-cell-hit);top:0;bottom:0;right:-3px;width:6px;cursor:col-resize}:where(.gb-rte,.gb-rte-core) .rich-text-content.resize-cursor{cursor:col-resize}:where(.gb-rte,.gb-rte-core) .rich-text-content.resize-cursor table{outline:1px solid var(--gb-accent);outline-offset:-1px}:where(.gb-rte,.gb-rte-core) .rich-text-content [style*=-webkit-text-stroke]{-webkit-text-fill-color:transparent}.rich-edit-surface[data-v-ea6f6b3c]{position:relative;display:flex;flex-direction:column;width:100%;min-height:0;overflow:hidden}.rich-edit-surface .re-scroll[data-v-ea6f6b3c]{position:relative;flex:1;min-width:0;overflow-y:auto;overflow-x:auto}.rich-edit-surface .re-scroll.has-gutter[data-v-ea6f6b3c]{padding-left:14px}.rich-edit-surface .re-overlay-probe[data-v-ea6f6b3c]{position:absolute;top:0;left:0;height:0;pointer-events:none}.rich-edit-surface .re-content[data-v-ea6f6b3c]{flex:1;box-sizing:border-box;min-height:var(--re-content-min-h, 100%);width:var(--re-content-w, auto);margin:var(--re-content-m, 0);padding:var(--re-content-pad, 14px 18px);outline:none}.rich-edit-surface .re-marquee[data-v-ea6f6b3c]{--richtext-z-marquee: 8;position:absolute;z-index:var(--richtext-z-marquee);box-sizing:border-box;border:1px solid var(--gb-accent);background:var(--gb-accent-soft);pointer-events:none}.rich-edit-surface .re-placeholder[data-v-ea6f6b3c]{position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:var(--re-content-w, auto);margin:var(--re-content-m, 0);padding:var(--re-content-pad, 14px 18px);color:var(--gb-text-disabled);font-size:var(--richtext-font-size, 14px);pointer-events:none}.rich-edit-surface .re-scroll.has-gutter .re-placeholder[data-v-ea6f6b3c]{left:14px}.rich-edit-surface .re-table-layer[data-v-ea6f6b3c]{--re-handle-thickness: 12px;--richtext-z-table-float: 7;position:absolute;inset:0;overflow:visible;z-index:var(--richtext-z-table-float);pointer-events:none}.rich-edit-surface .re-table-layer .re-table-handles[data-v-ea6f6b3c]{position:absolute;inset:0;pointer-events:none}.rich-edit-surface .re-table-layer .re-table-handle[data-v-ea6f6b3c]{position:absolute;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:var(--gb-fill);color:var(--gb-text-secondary);font-size:14px;line-height:1;cursor:pointer;pointer-events:auto;transition:background-color var(--gb-duration-fast) ease,color var(--gb-duration-fast) ease}.rich-edit-surface .re-table-layer .re-table-handle[data-v-ea6f6b3c]:hover{background:var(--gb-accent-soft);color:var(--gb-accent)}.rich-edit-surface .re-table-layer .re-table-handle.is-column[data-v-ea6f6b3c]{width:var(--re-handle-thickness);border-radius:0 999px 999px 0}.rich-edit-surface .re-table-layer .re-table-handle.is-row[data-v-ea6f6b3c]{height:var(--re-handle-thickness);border-radius:0 0 999px 999px}.rich-edit-surface .re-table-layer .re-table-select[data-v-ea6f6b3c]{position:absolute;box-sizing:border-box;border:1px solid var(--gb-accent);background:var(--gb-accent-soft);pointer-events:none}.rich-edit-surface .re-table-layer .re-col-line[data-v-ea6f6b3c]{position:absolute;width:6px;margin-left:-3px;pointer-events:none}.rich-edit-surface .re-table-layer .re-col-line[data-v-ea6f6b3c]:after{content:"";position:absolute;top:0;left:2px;width:2px;height:100%;background:var(--gb-accent-hover)}.rich-edit-surface .re-resize-box[data-v-ea6f6b3c]{--richtext-z-resize: 6;position:absolute;z-index:var(--richtext-z-resize);pointer-events:none}.rich-edit-surface .re-resize-box .re-zoom-btn[data-v-ea6f6b3c]{position:absolute;top:-12px;left:50%;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;transform:translate(-50%);border:1px solid var(--gb-border-strong);border-radius:50%;background:var(--gb-surface);box-shadow:var(--gb-shadow-popup);color:var(--gb-text-secondary);cursor:pointer;pointer-events:auto}.rich-edit-surface .re-resize-box .re-zoom-btn[data-v-ea6f6b3c]:hover{border-color:var(--gb-accent);background:var(--gb-accent-soft);color:var(--gb-accent)}.rich-edit-surface .re-resize-box .re-resize-handle[data-v-ea6f6b3c]{position:absolute;width:10px;height:10px;box-sizing:border-box;border:2px solid var(--gb-surface);border-radius:50%;background:var(--gb-accent);box-shadow:0 0 0 1px var(--gb-border-strong);pointer-events:auto;cursor:nwse-resize}.rich-edit-surface .re-resize-box .re-resize-handle.is-top-left[data-v-ea6f6b3c]{left:-5px;top:-5px}.rich-edit-surface .re-resize-box .re-resize-handle.is-top-right[data-v-ea6f6b3c]{right:-5px;top:-5px;cursor:nesw-resize}.rich-edit-surface .re-resize-box .re-resize-handle.is-bottom-left[data-v-ea6f6b3c]{left:-5px;bottom:-5px;cursor:nesw-resize}.rich-edit-surface .re-resize-box .re-resize-handle.is-bottom-right[data-v-ea6f6b3c]{right:-5px;bottom:-5px}.rich-edit-surface.is-fill[data-v-ea6f6b3c]{height:100%}.rich-edit-surface[data-v-ea6f6b3c]:not(.is-fill){height:var(--richtext-height, 400px)}.tool-btn[data-v-7af2498b]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;padding:0;border:none;border-radius:5px;background:transparent;color:var(--gb-text-secondary);cursor:pointer;transition:background-color .12s ease,color .12s ease}.tool-btn[data-v-7af2498b]:hover:not(:disabled){background:var(--gb-hover)}.tool-btn.is-active[data-v-7af2498b]{background:var(--gb-accent-soft);color:var(--gb-accent)}.tool-btn[data-v-7af2498b]:disabled{opacity:.32;cursor:not-allowed}.re-dd-trigger[data-v-b00865fb]{display:inline-flex;flex-shrink:0;align-items:center;gap:3px;height:28px;padding:0 7px;border:none;border-radius:5px;background:transparent;color:var(--gb-text-secondary);font-size:13px;cursor:pointer;transition:background-color .12s ease}.re-dd-trigger[data-v-b00865fb]:hover{background:var(--gb-hover)}.re-dd-trigger.is-open[data-v-b00865fb]{background:var(--gb-accent-soft);color:var(--gb-accent)}.re-dd-trigger .re-dd-text[data-v-b00865fb]{max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.re-dd-trigger .re-dd-caret[data-v-b00865fb]{opacity:.55}.re-dd-panel{padding:4px;min-width:132px;max-width:260px;font-size:13px}.re-dd-panel .re-dd-search{display:flex;align-items:center;gap:6px;padding:2px 6px 6px;color:var(--gb-text-tertiary);border-bottom:1px solid var(--gb-border);margin-bottom:4px}.re-dd-panel .re-dd-search input{flex:1;min-width:0;height:24px;border:none;outline:none;font-size:13px;color:var(--gb-text);background:transparent}.re-dd-panel .re-dd-list{max-height:280px;overflow-y:auto}.re-dd-panel .re-dd-option{display:flex;align-items:center;gap:7px;padding:6px 9px;border-radius:5px;color:var(--gb-text);cursor:pointer;white-space:nowrap}.re-dd-panel .re-dd-option:hover,.re-dd-panel .re-dd-option.is-highlight{background:var(--gb-fill)}.re-dd-panel .re-dd-option.is-selected{color:var(--gb-accent)}.re-dd-panel .re-dd-option .re-dd-opt-icon{display:inline-flex;width:18px;justify-content:center;color:var(--gb-text-secondary)}.re-dd-panel .re-dd-option .re-dd-opt-label{flex:1;overflow:hidden;text-overflow:ellipsis}.re-dd-panel .re-dd-option .re-dd-opt-hint{font-size:11px;color:var(--gb-text-tertiary)}.re-dd-panel .re-dd-option .re-dd-check{color:var(--gb-accent);flex-shrink:0}.re-dd-panel .re-dd-empty{padding:14px 8px;text-align:center;color:var(--gb-text-tertiary)}.re-pop-enter-active,.re-pop-leave-active{transition:opacity .12s ease,transform .12s ease}.re-pop-enter-from,.re-pop-leave-to{opacity:0;transform:translateY(-4px)}.re-toolbar[data-v-c830d1e7]{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:4px 8px;border-bottom:1px solid var(--gb-border);background:var(--gb-surface);flex-shrink:0}.re-toolbar .re-group[data-v-c830d1e7]{display:inline-flex;align-items:center;gap:1px}.re-toolbar .re-sep[data-v-c830d1e7]{width:1px;height:18px;margin:0 6px;background:var(--gb-border);flex-shrink:0}.re-toolbar .re-spacer[data-v-c830d1e7]{flex:1}.re-toolbar .re-color-trigger[data-v-c830d1e7]{position:relative;display:inline-flex;align-items:center}.re-toolbar .re-color-trigger .re-color-bar[data-v-c830d1e7]{position:absolute;left:50%;bottom:3px;width:14px;height:3px;transform:translate(-50%);border-radius:2px;box-shadow:inset 0 0 0 1px var(--gb-border-strong);pointer-events:none}.re-slash{display:flex;flex-direction:column;font-size:13px;overflow:hidden}.re-slash .re-slash-head{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--gb-border);background:var(--gb-fill);color:var(--gb-text-secondary)}.re-slash .re-slash-head .re-slash-query{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gb-text)}.re-slash .re-slash-head .re-slash-hint{font-size:11px;color:var(--gb-text-disabled);white-space:nowrap}.re-slash .re-slash-list{flex:1;min-height:0;overflow-y:auto;padding:4px}.re-slash .re-slash-group{padding:7px 9px 4px;font-size:11px;letter-spacing:.4px;color:var(--gb-text-tertiary)}.re-slash .re-slash-item{display:flex;align-items:center;gap:9px;padding:6px 9px;border-radius:5px;color:var(--gb-text);cursor:pointer}.re-slash .re-slash-item.is-active{background:var(--gb-fill)}.re-slash .re-slash-item .re-slash-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;border:1px solid var(--gb-border);border-radius:4px;background:var(--gb-surface);color:var(--gb-text-secondary)}.re-slash .re-slash-item .re-slash-title{flex-shrink:0;white-space:nowrap}.re-slash .re-slash-item .re-slash-tip{margin-left:auto;overflow:hidden;font-size:11px;color:var(--gb-text-tertiary);text-overflow:ellipsis;white-space:nowrap}.re-slash .re-slash-empty{padding:18px 8px;text-align:center;color:var(--gb-text-tertiary)}.tpp[data-v-a7d17bc1]{display:flex;flex-direction:column;gap:8px;padding:10px}.tpp-title[data-v-a7d17bc1]{font-size:var(--gb-font-size-sm);font-weight:600;color:var(--gb-text-secondary)}.tpp-input[data-v-a7d17bc1]{width:100%;height:var(--gb-control-h-sm);padding:0 8px;border:1px solid var(--gb-border);border-radius:var(--gb-radius-sm);background:var(--gb-surface);color:var(--gb-text);font-size:var(--gb-font-size-sm);outline:none;box-sizing:border-box}.tpp-input[data-v-a7d17bc1]:focus{border-color:var(--gb-accent)}.tpp-actions[data-v-a7d17bc1]{display:flex;justify-content:flex-end;gap:6px}.re-bubble{position:fixed;z-index:var(--z-richtext-float);display:flex;align-items:center;gap:1px;padding:3px;border-radius:8px;background:var(--gb-surface);box-shadow:var(--gb-shadow-popup)}.re-bubble .re-bubble-sep{width:1px;height:16px;margin:0 3px;background:var(--gb-border)}.re-bubble .re-bubble-color{position:relative;display:inline-flex;align-items:center}.re-bubble .re-bubble-color .re-bubble-bar{position:absolute;left:50%;bottom:3px;width:12px;height:2px;transform:translate(-50%);border-radius:1px;box-shadow:0 0 0 1px var(--gb-border-strong);pointer-events:none}.re-bubble-enter-active,.re-bubble-leave-active{transition:opacity .1s ease}.re-bubble-enter-from,.re-bubble-leave-to{opacity:0}.re-gutter[data-v-002b9bfb]{--richtext-z-gutter: 6;position:absolute;inset:0;z-index:var(--richtext-z-gutter);pointer-events:none}.re-gutter__icon[data-v-002b9bfb]{--re-gutter-icon-z: 2;position:absolute;z-index:var(--re-gutter-icon-z);display:flex;align-items:center;justify-content:center;width:22px;height:24px;color:var(--gb-text-tertiary);cursor:grab;pointer-events:auto;-webkit-user-select:none;user-select:none;transition:color var(--gb-duration-fast) ease}.re-gutter__icon[data-v-002b9bfb]:before{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;transform:translate(-50%,-50%);border-radius:4px;background:var(--gb-active);opacity:0;transition:opacity var(--gb-duration-fast) ease}.re-gutter__icon[data-v-002b9bfb]:hover{color:var(--gb-text-secondary)}.re-gutter__icon[data-v-002b9bfb]:hover:before{opacity:1}.re-gutter__icon[data-v-002b9bfb]:active{cursor:grabbing}.re-gutter__icon[data-v-002b9bfb] svg{position:relative}.re-gutter__line[data-v-002b9bfb]{--re-gutter-line-z: 1;position:absolute;z-index:var(--re-gutter-line-z);height:2px;border-radius:1px;background:var(--gb-active);pointer-events:auto;cursor:pointer;transition:opacity var(--gb-duration-fast) ease}.re-gutter__line.is-hidden[data-v-002b9bfb]{opacity:0}.re-gutter__line[data-v-002b9bfb]:before{content:"";position:absolute;inset:-14px -10px}.re-gutter__plus[data-v-002b9bfb]{--re-gutter-plus-z: 3;position:absolute;z-index:var(--re-gutter-plus-z);display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--gb-text-tertiary);cursor:pointer;pointer-events:auto;animation:re-gutter-plus-in-002b9bfb .28s cubic-bezier(.34,1.56,.64,1) both}.re-gutter__plus[data-v-002b9bfb]:before{content:"";position:absolute;inset:-6px}.re-gutter__plus[data-v-002b9bfb]:hover{color:var(--gb-text-secondary)}@keyframes re-gutter-plus-in-002b9bfb{0%{transform:scale(.2);opacity:0}40%{opacity:1}to{transform:scale(1.15);opacity:1}}.re-gutter__indicator[data-v-002b9bfb]{position:absolute;border-radius:1px;background:var(--gb-accent);pointer-events:none;box-shadow:0 0 0 1px var(--gb-surface)}.re-gutter__indicator[data-v-002b9bfb]:before{content:"";position:absolute;left:-3px;top:-2px;width:6px;height:6px;border-radius:50%;background:var(--gb-accent)}.re-gutter__indicator.is-vertical[data-v-002b9bfb]:before{left:-2px;top:-3px}.re-drag-ghost{position:fixed;z-index:var(--z-richtext-float);margin:0;padding:2px 6px;border-radius:4px;background:var(--gb-surface);box-shadow:var(--gb-shadow-popup);opacity:.92;pointer-events:none;overflow:hidden;max-height:140px}body.re-block-dragging,body.re-block-dragging *{cursor:grabbing!important}.gb-float.rt-panel>.gb-float__body{padding:0}.gb-rte[data-v-2d725fe4]{display:flex;flex-direction:column;min-height:0;position:relative}.gb-rte.is-fill[data-v-2d725fe4]{flex:1;height:100%}.gb-rte__edit[data-v-2d725fe4]{border:1px solid var(--gb-border);border-radius:var(--gb-radius-sm)}.is-fill .gb-rte__edit[data-v-2d725fe4]{flex:1;min-height:0}.gb-rte__view[data-v-2d725fe4]{min-height:0;overflow:auto;border:1px solid var(--gb-border);border-radius:var(--gb-radius-sm);padding:4px 12px}.ad[data-v-032a63d6]{display:flex;flex-direction:column;gap:6px;height:100%;min-height:0;overflow-y:auto;padding:12px 4px 8px}.ad-target[data-v-032a63d6]{margin:0 10px;padding:6px 8px;border-radius:var(--gb-radius-sm);background:var(--gb-bg-3);font-size:12px;line-height:1.5;color:var(--gb-text-secondary);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.ad-label[data-v-032a63d6]{padding:0 10px;font-size:12px;font-weight:600;color:var(--gb-text-secondary)}.ad-rows[data-v-032a63d6]{display:flex;flex-direction:column;gap:4px;padding:2px 10px 6px}.ad-row[data-v-032a63d6]{display:flex;align-items:center;gap:4px}.ad-key[data-v-032a63d6],.ad-val[data-v-032a63d6]{min-width:0;height:24px;padding:0 6px;border:1px solid var(--gb-border);border-radius:4px;background:var(--gb-surface);color:var(--gb-text);font-size:12px;outline:none}.ad-key[data-v-032a63d6]:focus,.ad-val[data-v-032a63d6]:focus{border-color:var(--gb-accent)}.ad-key[data-v-032a63d6]{flex:0 0 40%}.ad-val[data-v-032a63d6]{flex:1}.ad-sep[data-v-032a63d6]{flex-shrink:0;color:var(--gb-text-tertiary);font-size:12px}.ad-del[data-v-032a63d6]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--gb-text-tertiary);cursor:pointer}.ad-del[data-v-032a63d6]:hover{background:var(--gb-danger-soft, transparent);color:var(--gb-danger)}.ad-add[data-v-032a63d6]{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-top:2px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--gb-accent);cursor:pointer}.ad-add[data-v-032a63d6]:hover{background:var(--gb-accent-soft)}.ad-add[data-v-032a63d6]:focus-visible{outline:1px solid var(--gb-accent)}.ad-hint[data-v-032a63d6]{margin:0 10px;font-size:12px;color:var(--gb-text-tertiary)}
@@ -0,0 +1,6 @@
1
+ import { b as r, G as t, i as a } from "./index-BMSGFbdL.js";
2
+ export {
3
+ r as GbRichEditorCore,
4
+ t as GbRichTextEditor,
5
+ a as default
6
+ };