@tanzerfe/page-use 0.0.8 → 0.0.9
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.
|
@@ -363,9 +363,19 @@ declare function createPageUse(options: PageUseOptions): PageUseHandle;
|
|
|
363
363
|
//#endregion
|
|
364
364
|
//#region src/ui/launcher.d.ts
|
|
365
365
|
declare const PAGE_USE_LAUNCHER_TAG = "tz-page-use-launcher";
|
|
366
|
+
/**
|
|
367
|
+
* 面板布局:
|
|
368
|
+
* - `desktop`(默认):可拖动的浮动窗口,展开位置由入口按钮所在角推导;
|
|
369
|
+
* - `mobile`:贴底的移动端面板,宽度占满视口、高度约七成视口,位置不可拖动。
|
|
370
|
+
*
|
|
371
|
+
* 由宿主显式声明,不按视口尺寸或 UA 自动判断:同一页面可能既有窄屏也有宽屏使用场景。
|
|
372
|
+
*/
|
|
373
|
+
type PageUseLauncherLayout = 'desktop' | 'mobile';
|
|
366
374
|
interface PageUseLauncherConfig {
|
|
367
375
|
/** 入口与面板标题,默认 'Page Use' */
|
|
368
376
|
title?: string;
|
|
377
|
+
/** 面板布局,默认 'desktop'(与未声明该配置的旧版本行为一致) */
|
|
378
|
+
layout?: PageUseLauncherLayout;
|
|
369
379
|
/** 追加到「常用」分组的快捷指令(排在菜单生成的「打开 XX」与通用示例之后) */
|
|
370
380
|
presets?: PageUsePreset[];
|
|
371
381
|
/** 「复杂场景」分组的快捷指令;为空时不显示该分组 */
|
|
@@ -432,7 +442,19 @@ declare class PageUseLauncherElement extends LitElement {
|
|
|
432
442
|
private fabFromWidth;
|
|
433
443
|
/** 进行中宽度过渡的结束回调注销函数;过渡中再次切换时先注销,避免旧回调提前清除宽度 */
|
|
434
444
|
private fabWidthCleanup;
|
|
445
|
+
/**
|
|
446
|
+
* 本次入口手势是否已判定为拖动。
|
|
447
|
+
* 指针捕获会把手势结束后浏览器补发的 click 重定向到入口,该 click 不是点击意图,不得展开面板。
|
|
448
|
+
*/
|
|
449
|
+
private fabDragged;
|
|
435
450
|
private cleanups;
|
|
451
|
+
/** 生效的面板布局:未声明或取值非法时按桌面端处理,既有接入方的行为不变 */
|
|
452
|
+
private get isMobileLayout();
|
|
453
|
+
/**
|
|
454
|
+
* 下达指令后是否自动收起面板:仅移动端布局生效,默认开启,可在设置页关闭。
|
|
455
|
+
* 桌面端不提供该行为,也不显示设置项,存储中被改过的值在桌面端不生效。
|
|
456
|
+
*/
|
|
457
|
+
private get collapseOnRun();
|
|
436
458
|
private get fabEl();
|
|
437
459
|
private get panelEl();
|
|
438
460
|
private get logEl();
|
|
@@ -468,10 +490,26 @@ declare class PageUseLauncherElement extends LitElement {
|
|
|
468
490
|
private resolvePanelAnchor;
|
|
469
491
|
/** 未拖动过时用默认角落定位,拖动后切换为 left/top */
|
|
470
492
|
private fabStyle;
|
|
471
|
-
/**
|
|
493
|
+
/**
|
|
494
|
+
* 面板位置完全由入口位置推导,展开时与入口重合于同一角。
|
|
495
|
+
* 移动端不使用内联几何:位置与尺寸由 styles.ts 的 .panel.mobile 决定(贴底、占满宽度)。
|
|
496
|
+
*/
|
|
472
497
|
private panelStyle;
|
|
473
498
|
/** 调试入口是否显示:持久化状态优先,未操作过时跟随宿主 defaultHidden */
|
|
474
499
|
private isVisible;
|
|
500
|
+
/**
|
|
501
|
+
* 入口按下:先清掉上一次手势遗留的拖动标记,本次是否为拖动由 fabDrag 判定。
|
|
502
|
+
* 必须挂在 pointerdown 最前面,否则拖动未补发 click 时标记会残留到下一次真实点击。
|
|
503
|
+
*/
|
|
504
|
+
private onFabPointerDown;
|
|
505
|
+
/**
|
|
506
|
+
* 入口点击展开。
|
|
507
|
+
* 展开动作挂在 click 而非 pointerup:fabDrag 对手势调用 preventDefault 后浏览器没有 mousedown / mouseup 目标,
|
|
508
|
+
* 会在 pointerup 之后按当时坐标重新命中测试补发一次 click;若 pointerup 时面板已展开,
|
|
509
|
+
* 这次 click 就落在与入口重叠的面板底部控件上(「执行」「重跑」或快捷指令胶囊),造成误触提交。
|
|
510
|
+
* 由入口自身消费这次 click,即不再有穿透。
|
|
511
|
+
*/
|
|
512
|
+
private onFabClick;
|
|
475
513
|
/** 展开面板(showPageUseLauncher 调用):等入口按新的显示状态渲染后再测量定位 */
|
|
476
514
|
private expand;
|
|
477
515
|
/** 关闭调试入口:收起面板并持久化隐藏状态,之后需调用显示方法或 URL 参数调出 */
|
|
@@ -510,6 +548,10 @@ declare class PageUseLauncherElement extends LitElement {
|
|
|
510
548
|
private renderChips;
|
|
511
549
|
/** 分组顺序:我的 → 常用 → 复杂场景;空分组不显示,全部为空时提示去设置中维护 */
|
|
512
550
|
private renderPresetGroups;
|
|
551
|
+
/**
|
|
552
|
+
* checked 为复选框的显示状态,默认取存储值。
|
|
553
|
+
* 「未设置时按布局取默认」的设置项(如 autoCollapseOnRun)需要传生效值,否则未操作过时显示与生效状态不一致。
|
|
554
|
+
*/
|
|
513
555
|
private renderCheckbox;
|
|
514
556
|
private renderSettings;
|
|
515
557
|
/** 打开表单:id 为 null 时新增,否则编辑该条;替换当前未保存的草稿 */
|
|
@@ -719,6 +761,11 @@ interface PageUseSettings {
|
|
|
719
761
|
* null 表示从未操作过,跟随宿主 PageUseLauncherConfig.defaultHidden。
|
|
720
762
|
*/
|
|
721
763
|
launcherVisible: boolean | null;
|
|
764
|
+
/**
|
|
765
|
+
* 面板内下达指令后是否自动收起面板(收起为浮动入口,从入口查看执行进度)。
|
|
766
|
+
* 仅移动端布局生效;null 表示从未操作过,按默认开启处理。桌面端不显示该设置项,值也不生效。
|
|
767
|
+
*/
|
|
768
|
+
autoCollapseOnRun: boolean | null;
|
|
722
769
|
/** 浮动入口位置(null = 默认右下角);面板展开时以入口为锚点定位,不单独存位置 */
|
|
723
770
|
fabPos: PageUsePoint | null;
|
|
724
771
|
}
|
|
@@ -858,4 +905,4 @@ declare const PAGE_USE_MASK_COLORS: {
|
|
|
858
905
|
readonly warning: "#fa8c16";
|
|
859
906
|
};
|
|
860
907
|
//#endregion
|
|
861
|
-
export {
|
|
908
|
+
export { DEFAULT_TOUR_MAX_TAB_SWITCHES as $, PageUseGlobal as A, MountPageUseUIOptions as B, getElapsedSeconds as C, PageUseTaskResult as Ct, pageUseStore as D, isRunning as E, PAGE_USE_TOOL_NAME as F, PageUseLauncherElement as G, mountPageUseUI as H, PageUseCommand as I, createPageUse as J, PageUseLauncherLayout as K, formatPageUseResultForModel as L, showPageUseLauncher as M, PAGE_USE_COMMAND_TYPE as N, ReadonlyStore as O, PAGE_USE_TOOL as P, DEFAULT_STORAGE_KEY_PREFIX as Q, isPageUseCommand as R, clearPageUseLog as S, PageUseStepLog as St, isPageUseConfigured as T, PageUseTaskStatus as Tt, PAGE_USE_LAUNCHER_TAG as U, definePageUseElements as V, PageUseLauncherConfig as W, DEFAULT_MODEL as X, DEFAULT_MAX_STEPS as Y, DEFAULT_SESSION_HEADER as Z, pageUseSettings as _, PageUseMenuNode as _t, PAGE_USE_ROBOT_ICON_SVG as a, normalizeOptions as at, PageUseQuestion as b, PageUseRunOptions as bt, PageUseCustomPreset as c, PageUseTtsSpeakOptions as ct, pageUsePresets as d, PageUseTourStyle as dt, NormalizedPageUseOptions as et, PageUseHistoryEntry as f, TOUR_STYLE_TRAINER as ft, PageUseSettings as g, PageUseErrorCode as gt, PageUsePoint as h, pageUseCapability as ht, PageUseGlowElement as i, PageUseTourOptions as it, hidePageUseLauncher as j, PAGE_USE_GLOBAL_KEY as k, PageUsePresetSaveResult as l, PageUseTtsVoice as lt, DEFAULT_PAGE_USE_SETTINGS as m, PageUseCapability as mt, SIMULATOR_MASK_ID as n, PageUseOptions as nt, PAGE_USE_STATIC_PRESETS as o, readLauncherSwitch as ot, pageUseHistory as p, TOUR_STYLE_USER as pt, PageUseHandle as q, PAGE_USE_GLOW_TAG as r, PageUseRouterMode as rt, buildMenuPresets as s, PageUseTtsEngine as st, PAGE_USE_MASK_COLORS as t, PageUseLLMOptions as tt, PageUsePresetState as u, DEFAULT_TOUR_STYLES as ut, BROWSER_ENGINE_ID as v, PageUsePreset as vt, getPageUseConfig as w, PageUseTaskSource as wt, PageUseState as x, PageUseSnapshot as xt, browserTtsEngine as y, PageUseProgressEvent as yt, runPageUseTool as z };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { BROWSER_ENGINE_ID, DEFAULT_MAX_STEPS, DEFAULT_MODEL, DEFAULT_PAGE_USE_SETTINGS, DEFAULT_SESSION_HEADER, DEFAULT_STORAGE_KEY_PREFIX, DEFAULT_TOUR_MAX_TAB_SWITCHES, DEFAULT_TOUR_STYLES, type MountPageUseUIOptions, type NormalizedPageUseOptions, PAGE_USE_COMMAND_TYPE, PAGE_USE_GLOBAL_KEY, PAGE_USE_GLOW_TAG, PAGE_USE_LAUNCHER_TAG, PAGE_USE_MASK_COLORS, PAGE_USE_ROBOT_ICON_SVG, PAGE_USE_STATIC_PRESETS, PAGE_USE_TOOL, PAGE_USE_TOOL_NAME, type PageUseCapability, type PageUseCommand, type PageUseCustomPreset, type PageUseErrorCode, type PageUseGlobal, PageUseGlowElement, type PageUseHandle, type PageUseHistoryEntry, type PageUseLLMOptions, type PageUseLauncherConfig, PageUseLauncherElement, type PageUseMenuNode, type PageUseOptions, type PageUsePoint, type PageUsePreset, type PageUsePresetSaveResult, type PageUsePresetState, type PageUseProgressEvent, type PageUseQuestion, type PageUseRouterMode, type PageUseRunOptions, type PageUseSettings, type PageUseSnapshot, type PageUseState, type PageUseStepLog, type PageUseTaskResult, type PageUseTaskSource, type PageUseTaskStatus, type PageUseTourOptions, type PageUseTourStyle, type PageUseTtsEngine, type PageUseTtsSpeakOptions, type PageUseTtsVoice, type ReadonlyStore, SIMULATOR_MASK_ID, TOUR_STYLE_TRAINER, TOUR_STYLE_USER, browserTtsEngine, buildMenuPresets, clearPageUseLog, createPageUse, definePageUseElements, formatPageUseResultForModel, getElapsedSeconds, getPageUseConfig, hidePageUseLauncher, isPageUseCommand, isPageUseConfigured, isRunning, mountPageUseUI, normalizeOptions, pageUseCapability, pageUseHistory, pageUsePresets, pageUseSettings, pageUseStore, readLauncherSwitch, runPageUseTool, showPageUseLauncher };
|
|
1
|
+
import { $ as DEFAULT_TOUR_MAX_TAB_SWITCHES, A as PageUseGlobal, B as MountPageUseUIOptions, C as getElapsedSeconds, Ct as PageUseTaskResult, D as pageUseStore, E as isRunning, F as PAGE_USE_TOOL_NAME, G as PageUseLauncherElement, H as mountPageUseUI, I as PageUseCommand, J as createPageUse, K as PageUseLauncherLayout, L as formatPageUseResultForModel, M as showPageUseLauncher, N as PAGE_USE_COMMAND_TYPE, O as ReadonlyStore, P as PAGE_USE_TOOL, Q as DEFAULT_STORAGE_KEY_PREFIX, R as isPageUseCommand, S as clearPageUseLog, St as PageUseStepLog, T as isPageUseConfigured, Tt as PageUseTaskStatus, U as PAGE_USE_LAUNCHER_TAG, V as definePageUseElements, W as PageUseLauncherConfig, X as DEFAULT_MODEL, Y as DEFAULT_MAX_STEPS, Z as DEFAULT_SESSION_HEADER, _ as pageUseSettings, _t as PageUseMenuNode, a as PAGE_USE_ROBOT_ICON_SVG, at as normalizeOptions, b as PageUseQuestion, bt as PageUseRunOptions, c as PageUseCustomPreset, ct as PageUseTtsSpeakOptions, d as pageUsePresets, dt as PageUseTourStyle, et as NormalizedPageUseOptions, f as PageUseHistoryEntry, ft as TOUR_STYLE_TRAINER, g as PageUseSettings, gt as PageUseErrorCode, h as PageUsePoint, ht as pageUseCapability, i as PageUseGlowElement, it as PageUseTourOptions, j as hidePageUseLauncher, k as PAGE_USE_GLOBAL_KEY, l as PageUsePresetSaveResult, lt as PageUseTtsVoice, m as DEFAULT_PAGE_USE_SETTINGS, mt as PageUseCapability, n as SIMULATOR_MASK_ID, nt as PageUseOptions, o as PAGE_USE_STATIC_PRESETS, ot as readLauncherSwitch, p as pageUseHistory, pt as TOUR_STYLE_USER, q as PageUseHandle, r as PAGE_USE_GLOW_TAG, rt as PageUseRouterMode, s as buildMenuPresets, st as PageUseTtsEngine, t as PAGE_USE_MASK_COLORS, tt as PageUseLLMOptions, u as PageUsePresetState, ut as DEFAULT_TOUR_STYLES, v as BROWSER_ENGINE_ID, vt as PageUsePreset, w as getPageUseConfig, wt as PageUseTaskSource, x as PageUseState, xt as PageUseSnapshot, y as browserTtsEngine, yt as PageUseProgressEvent, z as runPageUseTool } from "./index-BACVE8Ig.mjs";
|
|
2
|
+
export { BROWSER_ENGINE_ID, DEFAULT_MAX_STEPS, DEFAULT_MODEL, DEFAULT_PAGE_USE_SETTINGS, DEFAULT_SESSION_HEADER, DEFAULT_STORAGE_KEY_PREFIX, DEFAULT_TOUR_MAX_TAB_SWITCHES, DEFAULT_TOUR_STYLES, type MountPageUseUIOptions, type NormalizedPageUseOptions, PAGE_USE_COMMAND_TYPE, PAGE_USE_GLOBAL_KEY, PAGE_USE_GLOW_TAG, PAGE_USE_LAUNCHER_TAG, PAGE_USE_MASK_COLORS, PAGE_USE_ROBOT_ICON_SVG, PAGE_USE_STATIC_PRESETS, PAGE_USE_TOOL, PAGE_USE_TOOL_NAME, type PageUseCapability, type PageUseCommand, type PageUseCustomPreset, type PageUseErrorCode, type PageUseGlobal, PageUseGlowElement, type PageUseHandle, type PageUseHistoryEntry, type PageUseLLMOptions, type PageUseLauncherConfig, PageUseLauncherElement, type PageUseLauncherLayout, type PageUseMenuNode, type PageUseOptions, type PageUsePoint, type PageUsePreset, type PageUsePresetSaveResult, type PageUsePresetState, type PageUseProgressEvent, type PageUseQuestion, type PageUseRouterMode, type PageUseRunOptions, type PageUseSettings, type PageUseSnapshot, type PageUseState, type PageUseStepLog, type PageUseTaskResult, type PageUseTaskSource, type PageUseTaskStatus, type PageUseTourOptions, type PageUseTourStyle, type PageUseTtsEngine, type PageUseTtsSpeakOptions, type PageUseTtsVoice, type ReadonlyStore, SIMULATOR_MASK_ID, TOUR_STYLE_TRAINER, TOUR_STYLE_USER, browserTtsEngine, buildMenuPresets, clearPageUseLog, createPageUse, definePageUseElements, formatPageUseResultForModel, getElapsedSeconds, getPageUseConfig, hidePageUseLauncher, isPageUseCommand, isPageUseConfigured, isRunning, mountPageUseUI, normalizeOptions, pageUseCapability, pageUseHistory, pageUsePresets, pageUseSettings, pageUseStore, readLauncherSwitch, runPageUseTool, showPageUseLauncher };
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as pageUseSettings, B as BROWSER_ENGINE_ID, C as getPageUseConfig, D as pageUsePresets, E as pageUseStore, F as DEFAULT_TOUR_MAX_TAB_SWITCHES, H as DEFAULT_TOUR_STYLES, I as normalizeOptions, L as readLauncherSwitch, M as DEFAULT_MODEL, N as DEFAULT_SESSION_HEADER, O as pageUseHistory, P as DEFAULT_STORAGE_KEY_PREFIX, R as PAGE_USE_MASK_COLORS, S as getElapsedSeconds, T as isRunning, U as TOUR_STYLE_TRAINER, V as browserTtsEngine, W as TOUR_STYLE_USER, _ as runPageUseTool, a as PAGE_USE_STATIC_PRESETS, b as pageUseCapability, c as PAGE_USE_GLOW_TAG, d as PAGE_USE_GLOBAL_KEY, f as PAGE_USE_COMMAND_TYPE, g as isPageUseCommand, h as formatPageUseResultForModel, i as PageUseLauncherElement, j as DEFAULT_MAX_STEPS, k as DEFAULT_PAGE_USE_SETTINGS, l as PageUseGlowElement, m as PAGE_USE_TOOL_NAME, n as mountPageUseUI, o as buildMenuPresets, p as PAGE_USE_TOOL, r as PAGE_USE_LAUNCHER_TAG, s as PAGE_USE_ROBOT_ICON_SVG, t as definePageUseElements, u as createPageUse, v as hidePageUseLauncher, w as isPageUseConfigured, x as clearPageUseLog, y as showPageUseLauncher, z as SIMULATOR_MASK_ID } from "./src-
|
|
1
|
+
import { A as pageUseSettings, B as BROWSER_ENGINE_ID, C as getPageUseConfig, D as pageUsePresets, E as pageUseStore, F as DEFAULT_TOUR_MAX_TAB_SWITCHES, H as DEFAULT_TOUR_STYLES, I as normalizeOptions, L as readLauncherSwitch, M as DEFAULT_MODEL, N as DEFAULT_SESSION_HEADER, O as pageUseHistory, P as DEFAULT_STORAGE_KEY_PREFIX, R as PAGE_USE_MASK_COLORS, S as getElapsedSeconds, T as isRunning, U as TOUR_STYLE_TRAINER, V as browserTtsEngine, W as TOUR_STYLE_USER, _ as runPageUseTool, a as PAGE_USE_STATIC_PRESETS, b as pageUseCapability, c as PAGE_USE_GLOW_TAG, d as PAGE_USE_GLOBAL_KEY, f as PAGE_USE_COMMAND_TYPE, g as isPageUseCommand, h as formatPageUseResultForModel, i as PageUseLauncherElement, j as DEFAULT_MAX_STEPS, k as DEFAULT_PAGE_USE_SETTINGS, l as PageUseGlowElement, m as PAGE_USE_TOOL_NAME, n as mountPageUseUI, o as buildMenuPresets, p as PAGE_USE_TOOL, r as PAGE_USE_LAUNCHER_TAG, s as PAGE_USE_ROBOT_ICON_SVG, t as definePageUseElements, u as createPageUse, v as hidePageUseLauncher, w as isPageUseConfigured, x as clearPageUseLog, y as showPageUseLauncher, z as SIMULATOR_MASK_ID } from "./src-MjVXh_cW.mjs";
|
|
2
2
|
|
|
3
3
|
export { BROWSER_ENGINE_ID, DEFAULT_MAX_STEPS, DEFAULT_MODEL, DEFAULT_PAGE_USE_SETTINGS, DEFAULT_SESSION_HEADER, DEFAULT_STORAGE_KEY_PREFIX, DEFAULT_TOUR_MAX_TAB_SWITCHES, DEFAULT_TOUR_STYLES, PAGE_USE_COMMAND_TYPE, PAGE_USE_GLOBAL_KEY, PAGE_USE_GLOW_TAG, PAGE_USE_LAUNCHER_TAG, PAGE_USE_MASK_COLORS, PAGE_USE_ROBOT_ICON_SVG, PAGE_USE_STATIC_PRESETS, PAGE_USE_TOOL, PAGE_USE_TOOL_NAME, PageUseGlowElement, PageUseLauncherElement, SIMULATOR_MASK_ID, TOUR_STYLE_TRAINER, TOUR_STYLE_USER, browserTtsEngine, buildMenuPresets, clearPageUseLog, createPageUse, definePageUseElements, formatPageUseResultForModel, getElapsedSeconds, getPageUseConfig, hidePageUseLauncher, isPageUseCommand, isPageUseConfigured, isRunning, mountPageUseUI, normalizeOptions, pageUseCapability, pageUseHistory, pageUsePresets, pageUseSettings, pageUseStore, readLauncherSwitch, runPageUseTool, showPageUseLauncher };
|
|
@@ -436,6 +436,7 @@ const DEFAULT_PAGE_USE_SETTINGS = {
|
|
|
436
436
|
voiceNames: {},
|
|
437
437
|
tourStyle: "",
|
|
438
438
|
launcherVisible: null,
|
|
439
|
+
autoCollapseOnRun: null,
|
|
439
440
|
fabPos: null
|
|
440
441
|
};
|
|
441
442
|
/**
|
|
@@ -3044,7 +3045,7 @@ var PageUseGlowElement = class extends LitElement {
|
|
|
3044
3045
|
|
|
3045
3046
|
//#endregion
|
|
3046
3047
|
//#region package.json
|
|
3047
|
-
var version = "0.0.
|
|
3048
|
+
var version = "0.0.9";
|
|
3048
3049
|
|
|
3049
3050
|
//#endregion
|
|
3050
3051
|
//#region src/ui/drag.ts
|
|
@@ -3082,6 +3083,7 @@ function createDrag(options) {
|
|
|
3082
3083
|
const dx = e.clientX - startX;
|
|
3083
3084
|
const dy = e.clientY - startY;
|
|
3084
3085
|
if (!moved && Math.hypot(dx, dy) < DRAG_THRESHOLD) return;
|
|
3086
|
+
if (!moved) options.onDragStart?.();
|
|
3085
3087
|
moved = true;
|
|
3086
3088
|
options.setPos(clampToViewport({
|
|
3087
3089
|
x: rect.left + dx,
|
|
@@ -3508,6 +3510,38 @@ const launcherStyles = css`
|
|
|
3508
3510
|
animation-duration: 10s;
|
|
3509
3511
|
}
|
|
3510
3512
|
|
|
3513
|
+
/*
|
|
3514
|
+
* 移动端布局(launcher.layout = 'mobile'):贴底面板。
|
|
3515
|
+
* 宽度不写死数值,用左右内缩占满视口,避免 100vw 在桌面端把滚动条宽度算进去。
|
|
3516
|
+
*/
|
|
3517
|
+
.panel.mobile {
|
|
3518
|
+
/* 回退值:不支持安全区 / dvh 的浏览器贴满两侧、按 vh 计算高度 */
|
|
3519
|
+
left: 0;
|
|
3520
|
+
right: 0;
|
|
3521
|
+
bottom: 0;
|
|
3522
|
+
height: 70vh;
|
|
3523
|
+
/* 左右内缩取安全区(横屏刘海屏),高度取七成动态视口(地址栏收缩时 vh 会跳变) */
|
|
3524
|
+
left: env(safe-area-inset-left, 0px);
|
|
3525
|
+
right: env(safe-area-inset-right, 0px);
|
|
3526
|
+
height: 70dvh;
|
|
3527
|
+
/* 底边与屏幕贴合,去掉下圆角 */
|
|
3528
|
+
border-radius: 12px 12px 0 0;
|
|
3529
|
+
}
|
|
3530
|
+
/* 位置由布局决定,头部不再是拖动区域;仍保留按下检测,用于标题连点解锁元信息 */
|
|
3531
|
+
.panel.mobile .head,
|
|
3532
|
+
.panel.mobile .head:active {
|
|
3533
|
+
cursor: default;
|
|
3534
|
+
touch-action: auto;
|
|
3535
|
+
}
|
|
3536
|
+
/* 底边与屏幕贴合,不需要下圆角;底部内边距让出 iPhone 手势条 */
|
|
3537
|
+
.panel.mobile .composer {
|
|
3538
|
+
border-radius: 0;
|
|
3539
|
+
padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
|
|
3540
|
+
}
|
|
3541
|
+
.panel.mobile .toast {
|
|
3542
|
+
bottom: calc(24px + env(safe-area-inset-bottom, 0px));
|
|
3543
|
+
}
|
|
3544
|
+
|
|
3511
3545
|
.head {
|
|
3512
3546
|
display: flex;
|
|
3513
3547
|
align-items: center;
|
|
@@ -4286,7 +4320,23 @@ var PageUseLauncherElement = class extends LitElement {
|
|
|
4286
4320
|
fabFromWidth = null;
|
|
4287
4321
|
/** 进行中宽度过渡的结束回调注销函数;过渡中再次切换时先注销,避免旧回调提前清除宽度 */
|
|
4288
4322
|
fabWidthCleanup = null;
|
|
4323
|
+
/**
|
|
4324
|
+
* 本次入口手势是否已判定为拖动。
|
|
4325
|
+
* 指针捕获会把手势结束后浏览器补发的 click 重定向到入口,该 click 不是点击意图,不得展开面板。
|
|
4326
|
+
*/
|
|
4327
|
+
fabDragged = false;
|
|
4289
4328
|
cleanups = [];
|
|
4329
|
+
/** 生效的面板布局:未声明或取值非法时按桌面端处理,既有接入方的行为不变 */
|
|
4330
|
+
get isMobileLayout() {
|
|
4331
|
+
return this._config.layout === "mobile";
|
|
4332
|
+
}
|
|
4333
|
+
/**
|
|
4334
|
+
* 下达指令后是否自动收起面板:仅移动端布局生效,默认开启,可在设置页关闭。
|
|
4335
|
+
* 桌面端不提供该行为,也不显示设置项,存储中被改过的值在桌面端不生效。
|
|
4336
|
+
*/
|
|
4337
|
+
get collapseOnRun() {
|
|
4338
|
+
return this.isMobileLayout && (pageUseSettings.get().autoCollapseOnRun ?? true);
|
|
4339
|
+
}
|
|
4290
4340
|
get fabEl() {
|
|
4291
4341
|
return this.renderRoot.querySelector(".fab");
|
|
4292
4342
|
}
|
|
@@ -4303,11 +4353,8 @@ var PageUseLauncherElement = class extends LitElement {
|
|
|
4303
4353
|
getEl: () => this.fabEl,
|
|
4304
4354
|
getPos: () => pageUseSettings.get().fabPos,
|
|
4305
4355
|
setPos: (pos) => pageUseSettings.update({ fabPos: pos }),
|
|
4306
|
-
|
|
4307
|
-
this.
|
|
4308
|
-
this.resolvePanelAnchor();
|
|
4309
|
-
this.open = true;
|
|
4310
|
-
this.requestUpdate();
|
|
4356
|
+
onDragStart: () => {
|
|
4357
|
+
this.fabDragged = true;
|
|
4311
4358
|
},
|
|
4312
4359
|
skipInteractive: false
|
|
4313
4360
|
});
|
|
@@ -4319,6 +4366,7 @@ var PageUseLauncherElement = class extends LitElement {
|
|
|
4319
4366
|
if (target?.closest?.(".title")) this.onTitleTap();
|
|
4320
4367
|
},
|
|
4321
4368
|
setPos: ({ x, y }) => {
|
|
4369
|
+
if (this.isMobileLayout) return;
|
|
4322
4370
|
const el = this.panelEl;
|
|
4323
4371
|
if (!el) return;
|
|
4324
4372
|
const { width: fabWidth, height: fabHeight } = this.fabSize;
|
|
@@ -4499,8 +4547,12 @@ var PageUseLauncherElement = class extends LitElement {
|
|
|
4499
4547
|
bottom: `${FAB_DEFAULT_BOTTOM}px`
|
|
4500
4548
|
});
|
|
4501
4549
|
}
|
|
4502
|
-
/**
|
|
4550
|
+
/**
|
|
4551
|
+
* 面板位置完全由入口位置推导,展开时与入口重合于同一角。
|
|
4552
|
+
* 移动端不使用内联几何:位置与尺寸由 styles.ts 的 .panel.mobile 决定(贴底、占满宽度)。
|
|
4553
|
+
*/
|
|
4503
4554
|
panelStyle(settings) {
|
|
4555
|
+
if (this.isMobileLayout) return "";
|
|
4504
4556
|
const rect = this.fabRect(settings);
|
|
4505
4557
|
const { width: vw, height: vh } = this.viewport;
|
|
4506
4558
|
const { alignRight, alignBottom } = this.panelAnchor;
|
|
@@ -4519,6 +4571,31 @@ var PageUseLauncherElement = class extends LitElement {
|
|
|
4519
4571
|
isVisible(settings) {
|
|
4520
4572
|
return settings.launcherVisible ?? !this._config.defaultHidden;
|
|
4521
4573
|
}
|
|
4574
|
+
/**
|
|
4575
|
+
* 入口按下:先清掉上一次手势遗留的拖动标记,本次是否为拖动由 fabDrag 判定。
|
|
4576
|
+
* 必须挂在 pointerdown 最前面,否则拖动未补发 click 时标记会残留到下一次真实点击。
|
|
4577
|
+
*/
|
|
4578
|
+
onFabPointerDown = (event) => {
|
|
4579
|
+
this.fabDragged = false;
|
|
4580
|
+
this.fabDrag.onPointerDown(event);
|
|
4581
|
+
};
|
|
4582
|
+
/**
|
|
4583
|
+
* 入口点击展开。
|
|
4584
|
+
* 展开动作挂在 click 而非 pointerup:fabDrag 对手势调用 preventDefault 后浏览器没有 mousedown / mouseup 目标,
|
|
4585
|
+
* 会在 pointerup 之后按当时坐标重新命中测试补发一次 click;若 pointerup 时面板已展开,
|
|
4586
|
+
* 这次 click 就落在与入口重叠的面板底部控件上(「执行」「重跑」或快捷指令胶囊),造成误触提交。
|
|
4587
|
+
* 由入口自身消费这次 click,即不再有穿透。
|
|
4588
|
+
*/
|
|
4589
|
+
onFabClick = () => {
|
|
4590
|
+
if (this.fabDragged) {
|
|
4591
|
+
this.fabDragged = false;
|
|
4592
|
+
return;
|
|
4593
|
+
}
|
|
4594
|
+
this.measureFab();
|
|
4595
|
+
this.resolvePanelAnchor();
|
|
4596
|
+
this.open = true;
|
|
4597
|
+
this.requestUpdate();
|
|
4598
|
+
};
|
|
4522
4599
|
/** 展开面板(showPageUseLauncher 调用):等入口按新的显示状态渲染后再测量定位 */
|
|
4523
4600
|
async expand() {
|
|
4524
4601
|
await this.updateComplete;
|
|
@@ -4582,6 +4659,7 @@ var PageUseLauncherElement = class extends LitElement {
|
|
|
4582
4659
|
if (isRunning() || !text) return;
|
|
4583
4660
|
this.task = "";
|
|
4584
4661
|
this.requestUpdate();
|
|
4662
|
+
if (this.collapseOnRun) this.collapse();
|
|
4585
4663
|
await runTask(text, {
|
|
4586
4664
|
source: LAUNCHER_SOURCE,
|
|
4587
4665
|
...tourStyle ? { tourStyle } : {}
|
|
@@ -4704,12 +4782,16 @@ var PageUseLauncherElement = class extends LitElement {
|
|
|
4704
4782
|
${this.renderChips(presets, accent)}
|
|
4705
4783
|
</div>`);
|
|
4706
4784
|
}
|
|
4707
|
-
|
|
4785
|
+
/**
|
|
4786
|
+
* checked 为复选框的显示状态,默认取存储值。
|
|
4787
|
+
* 「未设置时按布局取默认」的设置项(如 autoCollapseOnRun)需要传生效值,否则未操作过时显示与生效状态不一致。
|
|
4788
|
+
*/
|
|
4789
|
+
renderCheckbox(key, label, hint, disabled = false, checked) {
|
|
4708
4790
|
const settings = pageUseSettings.get();
|
|
4709
4791
|
return html`<label class="checkbox ${disabled ? "disabled" : ""}">
|
|
4710
4792
|
<input
|
|
4711
4793
|
type="checkbox"
|
|
4712
|
-
.checked=${Boolean(settings[key])}
|
|
4794
|
+
.checked=${checked ?? Boolean(settings[key])}
|
|
4713
4795
|
?disabled=${disabled}
|
|
4714
4796
|
@change=${(e) => pageUseSettings.update({ [key]: e.target.checked })}
|
|
4715
4797
|
/>
|
|
@@ -4727,6 +4809,7 @@ var PageUseLauncherElement = class extends LitElement {
|
|
|
4727
4809
|
${this.renderCheckbox("enableMask", "运行时蒙层防误触", "下次任务开始生效")}
|
|
4728
4810
|
${config?.beforeTask ? this.renderCheckbox("enableBeforeTask", config.beforeTaskLabel) : nothing}
|
|
4729
4811
|
${this.renderCheckbox("showStepDetails", "步骤显示模型思考与返回")}
|
|
4812
|
+
${this.isMobileLayout ? this.renderCheckbox("autoCollapseOnRun", "执行后自动收起面板", "收起后可看到页面执行过程", false, this.collapseOnRun) : nothing}
|
|
4730
4813
|
${this.renderVoiceSettings(settings)}
|
|
4731
4814
|
${config?.pageTour.enabled ? this.renderTourStyleSetting(settings, config) : nothing}
|
|
4732
4815
|
<div class="row settings-actions">
|
|
@@ -5210,14 +5293,15 @@ var PageUseLauncherElement = class extends LitElement {
|
|
|
5210
5293
|
?hidden=${this.open}
|
|
5211
5294
|
style=${this.fabStyle(settings)}
|
|
5212
5295
|
title=${running ? `执行中:${state.activityText || state.currentTask}` : `打开 ${title}`}
|
|
5213
|
-
@pointerdown=${this.
|
|
5296
|
+
@pointerdown=${this.onFabPointerDown}
|
|
5297
|
+
@click=${this.onFabClick}
|
|
5214
5298
|
>
|
|
5215
5299
|
<span class="fab-icon">${robotIcon}</span>
|
|
5216
5300
|
<span>${running ? "执行中" : title}</span>
|
|
5217
5301
|
</button>
|
|
5218
5302
|
|
|
5219
5303
|
<section
|
|
5220
|
-
class="panel ${running ? "running" : ""}"
|
|
5304
|
+
class="panel ${running ? "running" : ""} ${this.isMobileLayout ? "mobile" : ""}"
|
|
5221
5305
|
?hidden=${!this.open}
|
|
5222
5306
|
style=${this.open ? this.panelStyle(settings) : ""}
|
|
5223
5307
|
>
|
package/dist/vue.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as DEFAULT_TOUR_MAX_TAB_SWITCHES, A as PageUseGlobal, B as MountPageUseUIOptions, C as getElapsedSeconds, Ct as PageUseTaskResult, D as pageUseStore, E as isRunning, F as PAGE_USE_TOOL_NAME, G as PageUseLauncherElement, H as mountPageUseUI, I as PageUseCommand, J as createPageUse, K as PageUseLauncherLayout, L as formatPageUseResultForModel, M as showPageUseLauncher, N as PAGE_USE_COMMAND_TYPE, O as ReadonlyStore, P as PAGE_USE_TOOL, Q as DEFAULT_STORAGE_KEY_PREFIX, R as isPageUseCommand, S as clearPageUseLog, St as PageUseStepLog, T as isPageUseConfigured, Tt as PageUseTaskStatus, U as PAGE_USE_LAUNCHER_TAG, V as definePageUseElements, W as PageUseLauncherConfig, X as DEFAULT_MODEL, Y as DEFAULT_MAX_STEPS, Z as DEFAULT_SESSION_HEADER, _ as pageUseSettings, _t as PageUseMenuNode, a as PAGE_USE_ROBOT_ICON_SVG, at as normalizeOptions, b as PageUseQuestion, bt as PageUseRunOptions, c as PageUseCustomPreset, ct as PageUseTtsSpeakOptions, d as pageUsePresets, dt as PageUseTourStyle, et as NormalizedPageUseOptions, f as PageUseHistoryEntry, ft as TOUR_STYLE_TRAINER, g as PageUseSettings, gt as PageUseErrorCode, h as PageUsePoint, ht as pageUseCapability, i as PageUseGlowElement, it as PageUseTourOptions, j as hidePageUseLauncher, k as PAGE_USE_GLOBAL_KEY, l as PageUsePresetSaveResult, lt as PageUseTtsVoice, m as DEFAULT_PAGE_USE_SETTINGS, mt as PageUseCapability, n as SIMULATOR_MASK_ID, nt as PageUseOptions, o as PAGE_USE_STATIC_PRESETS, ot as readLauncherSwitch, p as pageUseHistory, pt as TOUR_STYLE_USER, q as PageUseHandle, r as PAGE_USE_GLOW_TAG, rt as PageUseRouterMode, s as buildMenuPresets, st as PageUseTtsEngine, t as PAGE_USE_MASK_COLORS, tt as PageUseLLMOptions, u as PageUsePresetState, ut as DEFAULT_TOUR_STYLES, v as BROWSER_ENGINE_ID, vt as PageUsePreset, w as getPageUseConfig, wt as PageUseTaskSource, x as PageUseState, xt as PageUseSnapshot, y as browserTtsEngine, yt as PageUseProgressEvent, z as runPageUseTool } from "./index-BACVE8Ig.mjs";
|
|
2
2
|
import { PropType, ShallowRef } from "vue";
|
|
3
3
|
import { Router } from "vue-router";
|
|
4
4
|
//#region src/vue.d.ts
|
|
@@ -50,4 +50,4 @@ export declare function usePageUseState(): Readonly<ShallowRef<PageUseState>>;
|
|
|
50
50
|
/** 本地设置的 Vue 响应式引用;修改请调用 pageUseSettings.update */
|
|
51
51
|
export declare function usePageUseSettings(): Readonly<ShallowRef<PageUseSettings>>;
|
|
52
52
|
//#endregion
|
|
53
|
-
export { BROWSER_ENGINE_ID, DEFAULT_MAX_STEPS, DEFAULT_MODEL, DEFAULT_PAGE_USE_SETTINGS, DEFAULT_SESSION_HEADER, DEFAULT_STORAGE_KEY_PREFIX, DEFAULT_TOUR_MAX_TAB_SWITCHES, DEFAULT_TOUR_STYLES, type MountPageUseUIOptions, type NormalizedPageUseOptions, PAGE_USE_COMMAND_TYPE, PAGE_USE_GLOBAL_KEY, PAGE_USE_GLOW_TAG, PAGE_USE_LAUNCHER_TAG, PAGE_USE_MASK_COLORS, PAGE_USE_ROBOT_ICON_SVG, PAGE_USE_STATIC_PRESETS, PAGE_USE_TOOL, PAGE_USE_TOOL_NAME, type PageUseCapability, type PageUseCommand, type PageUseCustomPreset, type PageUseErrorCode, type PageUseGlobal, PageUseGlowElement, type PageUseHandle, type PageUseHistoryEntry, type PageUseLLMOptions, type PageUseLauncherConfig, PageUseLauncherElement, type PageUseMenuNode, type PageUseOptions, type PageUsePoint, type PageUsePreset, type PageUsePresetSaveResult, type PageUsePresetState, type PageUseProgressEvent, type PageUseQuestion, type PageUseRouterMode, type PageUseRunOptions, type PageUseSettings, type PageUseSnapshot, type PageUseState, type PageUseStepLog, type PageUseTaskResult, type PageUseTaskSource, type PageUseTaskStatus, type PageUseTourOptions, type PageUseTourStyle, type PageUseTtsEngine, type PageUseTtsSpeakOptions, type PageUseTtsVoice, type ReadonlyStore, SIMULATOR_MASK_ID, TOUR_STYLE_TRAINER, TOUR_STYLE_USER, browserTtsEngine, buildMenuPresets, clearPageUseLog, createPageUse, definePageUseElements, formatPageUseResultForModel, getElapsedSeconds, getPageUseConfig, hidePageUseLauncher, isPageUseCommand, isPageUseConfigured, isRunning, mountPageUseUI, normalizeOptions, pageUseCapability, pageUseHistory, pageUsePresets, pageUseSettings, pageUseStore, readLauncherSwitch, runPageUseTool, showPageUseLauncher };
|
|
53
|
+
export { BROWSER_ENGINE_ID, DEFAULT_MAX_STEPS, DEFAULT_MODEL, DEFAULT_PAGE_USE_SETTINGS, DEFAULT_SESSION_HEADER, DEFAULT_STORAGE_KEY_PREFIX, DEFAULT_TOUR_MAX_TAB_SWITCHES, DEFAULT_TOUR_STYLES, type MountPageUseUIOptions, type NormalizedPageUseOptions, PAGE_USE_COMMAND_TYPE, PAGE_USE_GLOBAL_KEY, PAGE_USE_GLOW_TAG, PAGE_USE_LAUNCHER_TAG, PAGE_USE_MASK_COLORS, PAGE_USE_ROBOT_ICON_SVG, PAGE_USE_STATIC_PRESETS, PAGE_USE_TOOL, PAGE_USE_TOOL_NAME, type PageUseCapability, type PageUseCommand, type PageUseCustomPreset, type PageUseErrorCode, type PageUseGlobal, PageUseGlowElement, type PageUseHandle, type PageUseHistoryEntry, type PageUseLLMOptions, type PageUseLauncherConfig, PageUseLauncherElement, type PageUseLauncherLayout, type PageUseMenuNode, type PageUseOptions, type PageUsePoint, type PageUsePreset, type PageUsePresetSaveResult, type PageUsePresetState, type PageUseProgressEvent, type PageUseQuestion, type PageUseRouterMode, type PageUseRunOptions, type PageUseSettings, type PageUseSnapshot, type PageUseState, type PageUseStepLog, type PageUseTaskResult, type PageUseTaskSource, type PageUseTaskStatus, type PageUseTourOptions, type PageUseTourStyle, type PageUseTtsEngine, type PageUseTtsSpeakOptions, type PageUseTtsVoice, type ReadonlyStore, SIMULATOR_MASK_ID, TOUR_STYLE_TRAINER, TOUR_STYLE_USER, browserTtsEngine, buildMenuPresets, clearPageUseLog, createPageUse, definePageUseElements, formatPageUseResultForModel, getElapsedSeconds, getPageUseConfig, hidePageUseLauncher, isPageUseCommand, isPageUseConfigured, isRunning, mountPageUseUI, normalizeOptions, pageUseCapability, pageUseHistory, pageUsePresets, pageUseSettings, pageUseStore, readLauncherSwitch, runPageUseTool, showPageUseLauncher };
|
package/dist/vue.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as pageUseSettings, B as BROWSER_ENGINE_ID, C as getPageUseConfig, D as pageUsePresets, E as pageUseStore, F as DEFAULT_TOUR_MAX_TAB_SWITCHES, H as DEFAULT_TOUR_STYLES, I as normalizeOptions, L as readLauncherSwitch, M as DEFAULT_MODEL, N as DEFAULT_SESSION_HEADER, O as pageUseHistory, P as DEFAULT_STORAGE_KEY_PREFIX, R as PAGE_USE_MASK_COLORS, S as getElapsedSeconds, T as isRunning, U as TOUR_STYLE_TRAINER, V as browserTtsEngine, W as TOUR_STYLE_USER, _ as runPageUseTool, a as PAGE_USE_STATIC_PRESETS, b as pageUseCapability, c as PAGE_USE_GLOW_TAG, d as PAGE_USE_GLOBAL_KEY, f as PAGE_USE_COMMAND_TYPE, g as isPageUseCommand, h as formatPageUseResultForModel, i as PageUseLauncherElement, j as DEFAULT_MAX_STEPS, k as DEFAULT_PAGE_USE_SETTINGS, l as PageUseGlowElement, m as PAGE_USE_TOOL_NAME, n as mountPageUseUI, o as buildMenuPresets, p as PAGE_USE_TOOL, r as PAGE_USE_LAUNCHER_TAG, s as PAGE_USE_ROBOT_ICON_SVG, t as definePageUseElements, u as createPageUse, v as hidePageUseLauncher, w as isPageUseConfigured, x as clearPageUseLog, y as showPageUseLauncher, z as SIMULATOR_MASK_ID } from "./src-
|
|
1
|
+
import { A as pageUseSettings, B as BROWSER_ENGINE_ID, C as getPageUseConfig, D as pageUsePresets, E as pageUseStore, F as DEFAULT_TOUR_MAX_TAB_SWITCHES, H as DEFAULT_TOUR_STYLES, I as normalizeOptions, L as readLauncherSwitch, M as DEFAULT_MODEL, N as DEFAULT_SESSION_HEADER, O as pageUseHistory, P as DEFAULT_STORAGE_KEY_PREFIX, R as PAGE_USE_MASK_COLORS, S as getElapsedSeconds, T as isRunning, U as TOUR_STYLE_TRAINER, V as browserTtsEngine, W as TOUR_STYLE_USER, _ as runPageUseTool, a as PAGE_USE_STATIC_PRESETS, b as pageUseCapability, c as PAGE_USE_GLOW_TAG, d as PAGE_USE_GLOBAL_KEY, f as PAGE_USE_COMMAND_TYPE, g as isPageUseCommand, h as formatPageUseResultForModel, i as PageUseLauncherElement, j as DEFAULT_MAX_STEPS, k as DEFAULT_PAGE_USE_SETTINGS, l as PageUseGlowElement, m as PAGE_USE_TOOL_NAME, n as mountPageUseUI, o as buildMenuPresets, p as PAGE_USE_TOOL, r as PAGE_USE_LAUNCHER_TAG, s as PAGE_USE_ROBOT_ICON_SVG, t as definePageUseElements, u as createPageUse, v as hidePageUseLauncher, w as isPageUseConfigured, x as clearPageUseLog, y as showPageUseLauncher, z as SIMULATOR_MASK_ID } from "./src-MjVXh_cW.mjs";
|
|
2
2
|
import { defineComponent, inject, onBeforeUnmount, onScopeDispose, shallowRef } from "vue";
|
|
3
3
|
import { routerKey } from "vue-router";
|
|
4
4
|
|
package/package.json
CHANGED