@deepseek-ai/dsh-client-ui-schedule 0.1.6-alpha.2 → 0.1.7-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/client/ui-schedule/README.md
5
- README.md: 37ffbc0ef0b4a55af3238efa700dfdd0b942dd35
6
- README.zh.md: e381243a5a43f2e03e53a06de2a95746eb4bddf1
5
+ README.md: 689bd3fa219a5ee43ff81de7dd924e83af099c02
6
+ README.zh.md: b868eaee032bc79ba17b4eac8ae2921a397309d1
package/README.md CHANGED
@@ -35,7 +35,7 @@ The shipped Web graph already resolves `@deepseek-ai/dsh-client-ui-schedule` thr
35
35
 
36
36
  ### Read and dismiss the catalog
37
37
 
38
- Each row shows the complete wrapping prompt, a separate Scheduled or Overdue status, localized Once or the largest exact whole unit for a repeating interval, browser-local target time, and browser-clock-relative time. Intervals are never rounded, and the three metadata fields wrap across lines instead of clipping valid large values. The body-portaled popover targets 336px, shares the trigger's left edge when space permits, and shifts left to retain a 16px viewport margin when the trigger is near the right edge; its maximum width is the viewport width minus 32px. It scrolls vertically when needed and exposes no Schedule id, raw UTC value, details, or action controls.
38
+ Each row shows the complete wrapping prompt, a separate Scheduled or Overdue status, localized Once or the largest exact whole unit for a repeating interval, browser-local target time, and browser-clock-relative time. Scheduled uses the shared idle dot and Overdue uses the shared warning dot. Intervals are never rounded, and the three metadata fields wrap across lines instead of clipping valid large values. The body-portaled popover targets 336px, shares the trigger's left edge when space permits, and shifts left to retain a 16px viewport margin when the trigger is near the right edge; its maximum width is the viewport width minus 32px. It scrolls vertically when needed and exposes no Schedule id, raw UTC value, details, or action controls.
39
39
 
40
40
  Only the native trigger button enters the tab order. Enter and Space use normal button activation; while focus remains on the trigger or catalog, Escape closes the popover and restores trigger focus; an outside pointer press dismisses it. If a live update removes the final record, the component closes and unmounts without moving focus to another header action. A failed Session open hides the trigger even when a tentative cached projection exists.
41
41
 
package/README.zh.md CHANGED
@@ -35,7 +35,7 @@ dsh web --patch apps/cli/config/examples/schedule/cordis.yml
35
35
 
36
36
  ### 阅读和关闭目录
37
37
 
38
- 每一行显示可完整换行的提示词、独立的「等待中」或「已逾期」状态、本地化的「单次」或重复间隔可整除的最大完整单位、浏览器本地目标时间,以及按浏览器时钟派生的相对时间。间隔绝不舍入,三项元数据会按行换行,不会裁剪合法的大数值。通过 portal 挂到 body 的弹层目标宽度为 336px;空间足够时与触发按钮左边缘对齐,触发器靠近视口右侧时向左避让并保留 16px 视口边距,最大宽度为视口宽度减 32px。弹层会在需要时纵向滚动,且不显示 Schedule id、原始 UTC 值、详情或操作控件。
38
+ 每一行显示可完整换行的提示词、独立的「等待中」或「已逾期」状态、本地化的「单次」或重复间隔可整除的最大完整单位、浏览器本地目标时间,以及按浏览器时钟派生的相对时间。「等待中」使用共享 idle 灰点,「已逾期」使用共享 warning 橙点。间隔绝不舍入,三项元数据会按行换行,不会裁剪合法的大数值。通过 portal 挂到 body 的弹层目标宽度为 336px;空间足够时与触发按钮左边缘对齐,触发器靠近视口右侧时向左避让并保留 16px 视口边距,最大宽度为视口宽度减 32px。弹层会在需要时纵向滚动,且不显示 Schedule id、原始 UTC 值、详情或操作控件。
39
39
 
40
40
  只有原生触发按钮进入 Tab 顺序。Enter 与 Space 使用按钮的正常激活行为;焦点仍在触发器或目录内时,Escape 会关闭弹层并把焦点交还触发器;在外部按下指针也会关闭。若 live 更新移除最后一条记录,组件会关闭并卸载,但不会把焦点移到另一个会话头部动作。会话打开失败时,即使存在暂定的缓存 projection,也会隐藏触发器。
41
41
 
package/lib/client.js CHANGED
@@ -9,7 +9,7 @@ window.__ModuleLoader__.load({
9
9
  let react_dom = require("react-dom");
10
10
  let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
11
11
  //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-schedule/src/client/ScheduleCatalogAction.module.css.mjs
12
- const css = ".-\\34 LnlG_root{position:relative}.-\\34 LnlG_trigger{min-height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:4px;padding:3px 2px;font-size:12px;line-height:18px;display:inline-flex}.-\\34 LnlG_trigger:hover,.-\\34 LnlG_trigger:focus-visible{color:var(--dsw-alias-label-secondary)}.-\\34 LnlG_trigger svg{flex:none}.-\\34 LnlG_trigger>svg:last-child{transition:transform .12s}.-\\34 LnlG_triggerOpen{transform:rotate(180deg)}.-\\34 LnlG_count{margin-left:2px}.-\\34 LnlG_menu{z-index:100;box-sizing:border-box;background:var(--dsw-specific-menu);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);width:336px;max-width:min(336px,100vw - 32px);max-height:min(420px,100vh - 140px);box-shadow:var(--dsw-elevation-prominent);border:0;border-radius:20px;flex-direction:column;gap:2px;margin:0;padding:4px;list-style:none;display:flex;position:fixed;overflow:auto}.-\\34 LnlG_row{box-sizing:border-box;width:100%;min-height:54px;color:var(--dsw-alias-label-primary);border-radius:8px;flex-direction:column;flex-shrink:0;gap:3px;padding:8px 10px;display:flex}.-\\34 LnlG_rowOverdue{background:var(--dsw-alias-state-warn-tertiary)}.-\\34 LnlG_status{color:var(--dsw-alias-label-tertiary);align-items:center;gap:5px;font-size:11px;line-height:16px;display:inline-flex}.-\\34 LnlG_statusDot{corner-shape:round;background:var(--dsw-alias-state-business-primary);border-radius:50%;flex:none;width:8px;height:8px}.-\\34 LnlG_rowOverdue .-\\34 LnlG_status{color:var(--dsw-alias-state-warn-label)}.-\\34 LnlG_rowOverdue .-\\34 LnlG_statusDot{background:var(--dsw-alias-state-warn-primary)}.-\\34 LnlG_prompt{overflow-wrap:anywhere;white-space:normal;font-size:13px;line-height:18px}.-\\34 LnlG_metadata{min-width:0;color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;gap:5px;font-size:11px;line-height:16px;display:flex}.-\\34 LnlG_relativeOverdue{color:var(--dsw-alias-state-warn-label)}";
12
+ const css = ".-\\34 LnlG_root{position:relative}.-\\34 LnlG_trigger{min-height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:4px;padding:3px 2px;font-size:12px;line-height:18px;display:inline-flex}.-\\34 LnlG_trigger:hover,.-\\34 LnlG_trigger:focus-visible{color:var(--dsw-alias-label-secondary)}.-\\34 LnlG_trigger svg{flex:none}.-\\34 LnlG_trigger>svg:last-child{transition:transform .12s}.-\\34 LnlG_triggerOpen{transform:rotate(180deg)}.-\\34 LnlG_count{margin-left:2px}.-\\34 LnlG_menu{z-index:100;box-sizing:border-box;background:var(--dsw-specific-menu);width:336px;max-width:min(336px,100vw - 32px);max-height:min(420px,100vh - 140px);backdrop-filter:var(--dsw-menu-backdrop-filter);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);--dsw-elevation-stroke-color:var(--dsw-alias-border-l1);box-shadow:var(--dsw-elevation-prominent);border:0;border-radius:16px;flex-direction:column;gap:1px;margin:0;padding:3px;list-style:none;display:flex;position:fixed;overflow:auto}.-\\34 LnlG_row{box-sizing:border-box;width:100%;min-height:48px;color:var(--dsw-alias-label-primary);border-radius:7px;flex-direction:column;flex-shrink:0;gap:2px;padding:6px 8px;display:flex}.-\\34 LnlG_rowOverdue{background:var(--dsw-alias-state-warn-tertiary)}.-\\34 LnlG_status{color:var(--dsw-alias-label-tertiary);align-items:center;gap:4px;font-size:10px;line-height:15px;display:inline-flex}.-\\34 LnlG_rowOverdue .-\\34 LnlG_status{color:var(--dsw-alias-state-warn-label)}.-\\34 LnlG_prompt{overflow-wrap:anywhere;white-space:normal;font-size:12px;line-height:17px}.-\\34 LnlG_metadata{min-width:0;color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;gap:4px;font-size:10px;line-height:15px;display:flex}.-\\34 LnlG_relativeOverdue{color:var(--dsw-alias-state-warn-label)}";
13
13
  const tagId = "@deepseek-ai/dsh-client-ui-schedule/ScheduleCatalogAction.module.css";
14
14
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
15
15
  const tag = document.createElement("style");
@@ -28,7 +28,6 @@ window.__ModuleLoader__.load({
28
28
  "row": "-4LnlG_row",
29
29
  "rowOverdue": "-4LnlG_rowOverdue",
30
30
  "status": "-4LnlG_status",
31
- "statusDot": "-4LnlG_statusDot",
32
31
  "trigger": "-4LnlG_trigger",
33
32
  "triggerOpen": "-4LnlG_triggerOpen"
34
33
  };
@@ -173,12 +172,15 @@ window.__ModuleLoader__.load({
173
172
  "aria-label": countLabel,
174
173
  onClick: toggleCatalog,
175
174
  children: [
176
- (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconAlarmClockOutline16, { size: 14 }),
175
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconAlarmClockOutlineRegular, { size: 12 }),
177
176
  (0, react_jsx_runtime.jsx)("span", {
178
177
  className: ScheduleCatalogAction_module_css_default.count,
179
178
  children: countLabel
180
179
  }),
181
- (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutline14, { className: open ? ScheduleCatalogAction_module_css_default.triggerOpen : void 0 })
180
+ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconChevronDownOutlineRegular, {
181
+ size: 12,
182
+ className: open ? ScheduleCatalogAction_module_css_default.triggerOpen : void 0
183
+ })
182
184
  ]
183
185
  });
184
186
  const catalog = open ? (0, react_dom.createPortal)((0, react_jsx_runtime.jsx)("ul", {
@@ -193,10 +195,7 @@ window.__ModuleLoader__.load({
193
195
  children: [
194
196
  (0, react_jsx_runtime.jsxs)("span", {
195
197
  className: ScheduleCatalogAction_module_css_default.status,
196
- children: [(0, react_jsx_runtime.jsx)("span", {
197
- className: ScheduleCatalogAction_module_css_default.statusDot,
198
- "aria-hidden": "true"
199
- }), (0, react_jsx_runtime.jsx)("span", { children: t(overdue ? "status.overdue" : "status.scheduled") })]
198
+ children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state: overdue ? "warning" : "idle" }), (0, react_jsx_runtime.jsx)("span", { children: t(overdue ? "status.overdue" : "status.scheduled") })]
200
199
  }),
201
200
  (0, react_jsx_runtime.jsx)("span", {
202
201
  className: ScheduleCatalogAction_module_css_default.prompt,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-client-ui-schedule",
3
3
  "description": "Read-only active Schedule catalog in the Web Session header",
4
- "version": "0.1.6-alpha.2",
4
+ "version": "0.1.7-alpha.1",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/types/index.d.ts",
@@ -37,7 +37,7 @@
37
37
  "access": "public"
38
38
  },
39
39
  "peerDependencies": {
40
- "@deepseek-ai/cordis": "^4.0.2"
40
+ "@deepseek-ai/cordis": "^4.0.3"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@testing-library/react": "^16.1.0",
@@ -45,17 +45,17 @@
45
45
  "@types/react-dom": "~18.3.0",
46
46
  "react": "^18.2.0",
47
47
  "react-dom": "^18.2.0",
48
- "@deepseek-ai/dsh-api-session-controller": "^0.1.6-alpha.2",
49
- "@deepseek-ai/dsh-client-locale": "^0.1.6-alpha.2",
50
- "@deepseek-ai/dsh-client-test-runtime": "^0.1.6-alpha.2",
51
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.6-alpha.2",
52
- "@deepseek-ai/dsh-client-ui-conversation": "^0.1.6-alpha.2",
53
- "@deepseek-ai/dsh-client-ui-primitives": "^0.1.6-alpha.2",
54
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.6-alpha.2",
55
- "@deepseek-ai/dsh-client-ui-session": "^0.1.6-alpha.2",
56
- "@deepseek-ai/dsh-schedule": "^0.1.6-alpha.2",
57
- "@deepseek-ai/dsh-session": "^0.1.6-alpha.2",
58
- "@deepseek-ai/cordis": "^4.0.2"
48
+ "@deepseek-ai/dsh-client-locale": "^0.1.7-alpha.1",
49
+ "@deepseek-ai/dsh-client-test-runtime": "^0.1.7-alpha.1",
50
+ "@deepseek-ai/dsh-client-ui-conversation": "^0.1.7-alpha.1",
51
+ "@deepseek-ai/dsh-client-ui-primitives": "^0.1.7-alpha.1",
52
+ "@deepseek-ai/dsh-client-ui-renderer": "^0.1.7-alpha.1",
53
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.7-alpha.1",
54
+ "@deepseek-ai/dsh-client-ui-session": "^0.1.7-alpha.1",
55
+ "@deepseek-ai/dsh-schedule": "^0.1.7-alpha.1",
56
+ "@deepseek-ai/dsh-session": "^0.1.7-alpha.1",
57
+ "@deepseek-ai/dsh-api-session-controller": "^0.1.7-alpha.1",
58
+ "@deepseek-ai/cordis": "^4.0.3"
59
59
  },
60
60
  "files": [
61
61
  "lib/index.js",