@lightworkai.official/debug-capture 0.13.0 → 0.14.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/src/ui/strings.ts CHANGED
@@ -65,14 +65,15 @@ export interface Strings {
65
65
  handoffBlocked: string;
66
66
  handoffOpen: string;
67
67
  /*
68
- * ขอให้ทีมดำเนินการ — offered beside แจ้งปัญหา when the desk opens request
69
- * types to its reporters (requests.ts). A request asks for no screenshot.
68
+ * ขอให้ทีมดำเนินการ — the same dialog turned into a request, where the desk
69
+ * opens request types to its reporters (docs/WIDGET-ASK-PLAN.md): two cards
70
+ * under the heading, แจ้งปัญหา chosen as it opens, either one any time.
70
71
  */
71
72
  chooseTitle: string;
72
- chooseProblem: string;
73
- chooseProblemHint: string;
74
- chooseRequest: string;
75
- chooseRequestHint: string;
73
+ kindProblem: string;
74
+ kindProblemHint: string;
75
+ kindRequest: string;
76
+ kindRequestHint: string;
76
77
  requestTitle: string;
77
78
  requestTypeLabel: string;
78
79
  /** Carries `{time}`. */
@@ -83,7 +84,15 @@ export interface Strings {
83
84
  requestDetailPlaceholder: string;
84
85
  requestSubmit: string;
85
86
  requestSubmitted: string;
86
- back: string;
87
+ /** The picture, a request's to keep or take off. */
88
+ requestWithShot: string;
89
+ requestAnnotateHint: string;
90
+ /** What was typed last time and not sent, back in the form — and the way to clear it. */
91
+ draftRestored: string;
92
+ draftClear: string;
93
+ /** In the captured row, turned: what a request does NOT send. */
94
+ requestLeaves: string;
95
+ requestLeavesWhat: string;
87
96
  /** Carry `{n}`. */
88
97
  days: string;
89
98
  hours: string;
@@ -133,10 +142,10 @@ const th: Strings = {
133
142
  handoffBlocked: "เบราว์เซอร์บล็อกการเปิดแท็บใหม่",
134
143
  handoffOpen: "เปิดในแท็บใหม่",
135
144
  chooseTitle: "ต้องการให้ทีมช่วยเรื่องอะไร",
136
- chooseProblem: "แจ้งปัญหา",
137
- chooseProblemHint: "มีอะไรเสียหรือใช้งานไม่ได้ — แนบภาพหน้าจอ",
138
- chooseRequest: "ขอให้ทีมดำเนินการ",
139
- chooseRequestHint: "ขอสิทธิ์ ขอแก้ข้อมูล หรือขอให้ทีมทำบางอย่าง",
145
+ kindProblem: "แจ้งปัญหา",
146
+ kindProblemHint: "มีอะไรเสีย หรือใช้งานไม่ได้",
147
+ kindRequest: "คำขอ",
148
+ kindRequestHint: "ขอให้ทีมทำ เช่น ขอสิทธิ์ ขอแก้ข้อมูล",
140
149
  requestTitle: "ขอให้ทีมดำเนินการ",
141
150
  requestTypeLabel: "เรื่องที่ขอ",
142
151
  requestTarget: "ทีมตั้งใจให้เสร็จภายใน {time}",
@@ -146,7 +155,12 @@ const th: Strings = {
146
155
  requestDetailPlaceholder: "สิ่งที่ทีมต้องรู้เพื่อดำเนินการ",
147
156
  requestSubmit: "ส่งคำขอ",
148
157
  requestSubmitted: "ส่งคำขอแล้ว",
149
- back: "ย้อนกลับ",
158
+ requestWithShot: "แนบภาพหน้าจอนี้ไปกับคำขอ",
159
+ requestAnnotateHint: "ทำเครื่องหมายสิ่งที่ขอบนภาพ — วงกรอบ ชี้ลูกศร ไฮไลต์ หรือพิมพ์ข้อความ",
160
+ draftRestored: "ข้อความที่พิมพ์ไว้ครั้งก่อน ยังไม่ได้ส่ง",
161
+ draftClear: "ล้าง",
162
+ requestLeaves: "ไม่ส่งไปกับคำขอ",
163
+ requestLeavesWhat: "บันทึกการใช้งานของหน้านี้ — ใช้กับการแจ้งปัญหาเท่านั้น",
150
164
  days: "{n} วัน",
151
165
  hours: "{n} ชั่วโมง",
152
166
  };
@@ -195,10 +209,10 @@ const en: Strings = {
195
209
  handoffBlocked: "Your browser blocked the new tab",
196
210
  handoffOpen: "Open in a new tab",
197
211
  chooseTitle: "How can the team help?",
198
- chooseProblem: "Report a problem",
199
- chooseProblemHint: "Something is broken or not working — with a screenshot",
200
- chooseRequest: "Ask the team",
201
- chooseRequestHint: "Access, a data change, or something done for you",
212
+ kindProblem: "Report a problem",
213
+ kindProblemHint: "Something is broken or not working",
214
+ kindRequest: "Request",
215
+ kindRequestHint: "Ask the team to do something, like access or a data change",
202
216
  requestTitle: "Ask the team",
203
217
  requestTypeLabel: "What you need",
204
218
  requestTarget: "The team aims to finish within {time}",
@@ -208,7 +222,12 @@ const en: Strings = {
208
222
  requestDetailPlaceholder: "What the team needs to know to do it",
209
223
  requestSubmit: "Send request",
210
224
  requestSubmitted: "Request sent",
211
- back: "Back",
225
+ requestWithShot: "Attach this screenshot to the request",
226
+ requestAnnotateHint: "Mark what you are asking about — box it, point at it, highlight it, or type on it",
227
+ draftRestored: "What you typed last time, not sent yet",
228
+ draftClear: "Clear",
229
+ requestLeaves: "Not sent with a request",
230
+ requestLeavesWhat: "this page's activity log — it is for problem reports only",
212
231
  days: "{n} days",
213
232
  hours: "{n} hours",
214
233
  };
package/src/ui/styles.ts CHANGED
@@ -94,16 +94,55 @@ canvas { width: 100%; height: auto; display: block; border: 1px solid #e2e8f0; b
94
94
  }
95
95
  .foot .grow { flex: 1; }
96
96
 
97
- /* ขอให้ทีมดำเนินการ: the chooser and the request form — a smaller dialog, no image in it. */
98
- .panel.narrow { width: min(560px, 100%); }
99
- .choices { display: grid; gap: 10px; padding-bottom: 24px; }
100
- button.choice {
101
- display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
102
- width: 100%; padding: 14px 16px; text-align: left; border-radius: 12px;
97
+ /* ขอให้ทีมดำเนินการ — the same dialog turned into a request (docs/WIDGET-ASK-PLAN.md):
98
+ แจ้งปัญหา · คำขอ as two cards under the heading, the way the desk's own
99
+ สร้างเวิร์กโฟลว์ asks it; what is asked for as cards, the way the portal lists it. */
100
+ [hidden] { display: none !important; }
101
+ .kinds { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: -4px; }
102
+ button.kind {
103
+ position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
104
+ padding: 12px 34px 12px 14px; text-align: left; border-radius: 12px;
103
105
  }
104
- button.choice b { font-size: 15px; font-weight: 600; }
105
- button.choice span { font-size: 13px; font-weight: 400; color: #64748b; }
106
- button.choice:focus-visible { outline: none; border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18); }
107
- .panel.narrow p { margin: 0; }
108
- .ask-type { font-size: 14px; font-weight: 600; margin-top: -8px; }
106
+ .kind-top { display: flex; align-items: center; gap: 8px; font-size: 15px; }
107
+ .kind-top b { font-weight: 600; }
108
+ .kind-hint { font-size: 13px; font-weight: 400; line-height: 1.5; color: #64748b; }
109
+ button.kind .icon { width: 18px; height: 18px; flex-shrink: 0; color: #64748b; }
110
+ button.kind[data-kind="request"] .icon { color: #1d4ed8; }
111
+ button.kind .tick { position: absolute; top: 12px; right: 12px; width: 16px; height: 16px; color: #2563eb; opacity: 0; }
112
+ button.kind[aria-checked="true"], button.kind[aria-checked="true"]:hover:not(:disabled) {
113
+ border-color: #2563eb; background: #eff6ff; box-shadow: inset 0 0 0 1px #2563eb;
114
+ }
115
+ button.kind[aria-checked="true"] .tick { opacity: 1; }
116
+ button.kind:focus-visible, button.type:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25); }
117
+ button.kind[aria-checked="true"]:focus-visible { box-shadow: inset 0 0 0 1px #2563eb, 0 0 0 3px rgba(37, 99, 235, 0.25); }
118
+ .types { display: grid; gap: 8px; }
119
+ button.type {
120
+ display: flex; align-items: flex-start; gap: 10px; width: 100%;
121
+ padding: 10px 12px; text-align: left; border-radius: 10px;
122
+ }
123
+ button.type .icon { width: 16px; height: 16px; margin-top: 3px; flex-shrink: 0; color: #64748b; }
124
+ button.type[aria-checked="true"], button.type[aria-checked="true"]:hover:not(:disabled) { border-color: #2563eb; background: #eff6ff; }
125
+ button.type[aria-checked="true"] .icon { color: #2563eb; }
126
+ .type-body { display: grid; gap: 2px; min-width: 0; }
127
+ .type-body b { font-size: 14px; font-weight: 600; }
128
+ .type-hint { font-size: 13px; font-weight: 400; color: #64748b; }
129
+ .type-due { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 400; color: #64748b; }
130
+ button.type .type-due .icon { width: 12px; height: 12px; margin: 0; }
131
+ /* A phone: the two kinds still side by side — their names are the choice; the hints stay short. */
132
+ @media (max-width: 480px) {
133
+ .kind-hint { font-size: 12px; }
134
+ button.kind { padding: 10px 30px 10px 12px; }
135
+ }
136
+ button.link {
137
+ display: inline; padding: 0; border: 0; border-radius: 4px; background: none;
138
+ font-size: 13px; font-weight: 600; color: #2563eb;
139
+ text-decoration: underline; text-underline-offset: 3px;
140
+ }
141
+ button.link:hover:not(:disabled) { background: none; color: #1d4ed8; }
142
+ button.link:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
143
+ .ask p { margin: 0; }
144
+ .shot-choice { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 500; }
145
+ .shot-choice input { width: 16px; height: 16px; margin: 0; accent-color: #2563eb; }
146
+ .dropped { opacity: 0.35; pointer-events: none; }
147
+ .draft { margin: -8px 0 0; padding: 8px 12px; border-radius: 10px; background: #eff6ff; font-size: 13px; color: #1e3a8a; }
109
148
  `;