@lightworkai.official/debug-capture-vue 0.6.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/README.md +52 -0
- package/dist/components/BugIcon.d.ts +3 -0
- package/dist/components/DebugCaptureInit.vue.d.ts +13 -0
- package/dist/components/ImageAnnotatorDialog.vue.d.ts +19 -0
- package/dist/components/MyTicketsPanel.vue.d.ts +17 -0
- package/dist/components/ReopenPanel.vue.d.ts +12 -0
- package/dist/components/ReportProblemButton.vue.d.ts +17 -0
- package/dist/components/RichReplyEditor.vue.d.ts +59 -0
- package/dist/components/StatusHero.vue.d.ts +10 -0
- package/dist/components/StatusPill.vue.d.ts +16 -0
- package/dist/components/TicketBody.vue.d.ts +6 -0
- package/dist/components/TicketConversation.vue.d.ts +22 -0
- package/dist/components/TicketDetail.vue.d.ts +28 -0
- package/dist/components/TicketScreenshots.vue.d.ts +8 -0
- package/dist/components/TicketTable.vue.d.ts +25 -0
- package/dist/components/TicketTimeline.vue.d.ts +11 -0
- package/dist/components/ToolbarButton.vue.d.ts +21 -0
- package/dist/components/icons.d.ts +38 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.mjs +2996 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +64 -0
- package/src/components/BugIcon.ts +23 -0
- package/src/components/DebugCaptureInit.vue +41 -0
- package/src/components/ImageAnnotatorDialog.vue +160 -0
- package/src/components/MyTicketsPanel.vue +312 -0
- package/src/components/README.md +12 -0
- package/src/components/ReopenPanel.vue +47 -0
- package/src/components/ReportProblemButton.vue +28 -0
- package/src/components/RichReplyEditor.vue +321 -0
- package/src/components/StatusHero.vue +85 -0
- package/src/components/StatusPill.vue +14 -0
- package/src/components/TicketBody.vue +50 -0
- package/src/components/TicketConversation.vue +227 -0
- package/src/components/TicketDetail.vue +130 -0
- package/src/components/TicketScreenshots.vue +47 -0
- package/src/components/TicketTable.vue +142 -0
- package/src/components/TicketTimeline.vue +86 -0
- package/src/components/ToolbarButton.vue +33 -0
- package/src/components/icons.ts +90 -0
- package/src/index.ts +34 -0
package/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# @lightworkai.official/debug-capture-vue
|
|
2
|
+
|
|
3
|
+
Vue 3 bindings for [`@lightworkai.official/debug-capture`](../debug-capture/README.md).
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
// main.ts
|
|
7
|
+
import { configureDebugCapture } from "@lightworkai.official/debug-capture-vue";
|
|
8
|
+
|
|
9
|
+
configureDebugCapture({
|
|
10
|
+
host: "https://support.example.com",
|
|
11
|
+
realmKey: "pk_live_…",
|
|
12
|
+
app: { version: "1.4.2", environment: import.meta.env.MODE },
|
|
13
|
+
user: () => ({ id: auth.user?.id, email: auth.user?.email, fullName: auth.user?.name }),
|
|
14
|
+
});
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
```vue
|
|
18
|
+
<!-- App.vue — once, above <RouterView> -->
|
|
19
|
+
<DebugCaptureInit />
|
|
20
|
+
|
|
21
|
+
<!-- wherever the button belongs, styled by you -->
|
|
22
|
+
<ReportProblemButton class="rounded-md border p-2 hover:bg-gray-50" />
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Notes
|
|
26
|
+
|
|
27
|
+
**No `isCustomElement` config needed.** The reporter is a custom element, but it
|
|
28
|
+
is created imperatively by `installDebugCapture` and never appears in a template,
|
|
29
|
+
so Vue's compiler never sees an unknown tag. Absorbing that is most of why this
|
|
30
|
+
wrapper exists.
|
|
31
|
+
|
|
32
|
+
**`MyTicketsPanel` shows what this person has reported** — the list, the
|
|
33
|
+
conversation, and "still a problem". It needs `identity` in the config: a token
|
|
34
|
+
your *server* signs, because `realmKey` is public and can authorise filing a
|
|
35
|
+
report but never reading one back. See
|
|
36
|
+
[the core README](../debug-capture/README.md#it-needs-to-know-who-is-asking).
|
|
37
|
+
|
|
38
|
+
```vue
|
|
39
|
+
<!-- a route of your own -->
|
|
40
|
+
<MyTicketsPanel />
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Bind `:refresh-key` to make it re-read the list — after filing a report, say.
|
|
44
|
+
|
|
45
|
+
**Components are `defineComponent` + `h`, not SFCs**, so the package ships as
|
|
46
|
+
plain TypeScript with no build step of its own and nothing for a consumer to
|
|
47
|
+
configure. There are two components and neither has a template worth the
|
|
48
|
+
machinery.
|
|
49
|
+
|
|
50
|
+
**Mount `DebugCaptureInit` above the router view** — the buffers must be
|
|
51
|
+
recording before a user hits a problem, or the report arrives with no trail of
|
|
52
|
+
how they got there.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type DebugCaptureConfig, type ErroredQuery } from "@lightworkai.official/debug-capture";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
/** Mount the built-in reporter UI. Off if the host renders its own. */
|
|
4
|
+
ui?: boolean;
|
|
5
|
+
/** Failed queries from the app's data layer, if it has one. */
|
|
6
|
+
errorQueries?: () => ErroredQuery[];
|
|
7
|
+
/** The config, if you did not call configureDebugCapture at module scope. */
|
|
8
|
+
config?: DebugCaptureConfig;
|
|
9
|
+
};
|
|
10
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
11
|
+
ui: boolean;
|
|
12
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
/**
|
|
3
|
+
* The picked image, as a same-origin data URI. Null closes the dialog, so a
|
|
4
|
+
* caller can keep it mounted and drive it from one nullable ref.
|
|
5
|
+
*/
|
|
6
|
+
src: string | null;
|
|
7
|
+
/** Shown in the description, as the app's dialog does. */
|
|
8
|
+
filename?: string;
|
|
9
|
+
/** Falls back to the configured locale — a caller inside the app need not pass it. */
|
|
10
|
+
locale?: "th" | "en";
|
|
11
|
+
};
|
|
12
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
13
|
+
cancel: () => any;
|
|
14
|
+
confirm: (dataUri: string) => any;
|
|
15
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
16
|
+
onCancel?: (() => any) | undefined;
|
|
17
|
+
onConfirm?: ((dataUri: string) => any) | undefined;
|
|
18
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type MyTicketDetail } from "@lightworkai.official/debug-capture";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
/** Change it to re-read the list — after filing a report, say. */
|
|
4
|
+
refreshKey?: string | number;
|
|
5
|
+
/** Hide the panel's own heading when the host page already has one. */
|
|
6
|
+
hideTitle?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
9
|
+
error: (message: string) => any;
|
|
10
|
+
reopened: (ticket: MyTicketDetail) => any;
|
|
11
|
+
replied: (ticket: MyTicketDetail) => any;
|
|
12
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
|
+
onError?: ((message: string) => any) | undefined;
|
|
14
|
+
onReopened?: ((ticket: MyTicketDetail) => any) | undefined;
|
|
15
|
+
onReplied?: ((ticket: MyTicketDetail) => any) | undefined;
|
|
16
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TicketStrings } from "@lightworkai.official/debug-capture";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
t: TicketStrings;
|
|
4
|
+
locale: "th" | "en";
|
|
5
|
+
busy?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
8
|
+
reopen: (note: string) => any;
|
|
9
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
10
|
+
onReopen?: ((note: string) => any) | undefined;
|
|
11
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
label?: string;
|
|
3
|
+
};
|
|
4
|
+
declare var __VLS_1: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_1) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
9
|
+
label: string;
|
|
10
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type EditorTool } from "@lightworkai.official/debug-capture";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
placeholder: string;
|
|
4
|
+
/** Support host origin — the sanitiser resolves inline image URLs against it. */
|
|
5
|
+
host: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
/** Which controls to show. Defaults to the original's NOTE_TOOLBAR. */
|
|
8
|
+
tools?: EditorTool[];
|
|
9
|
+
/** Hide the toolbar until focused or non-empty. */
|
|
10
|
+
compact?: boolean;
|
|
11
|
+
labels: Record<string, string>;
|
|
12
|
+
/**
|
|
13
|
+
* Store an image and return the URL to reference it by.
|
|
14
|
+
*
|
|
15
|
+
* Optional, and the fallback is not "no images" — it is the annotated data
|
|
16
|
+
* URI carried in the body for the server to store on arrival. A composer on
|
|
17
|
+
* a ticket that does not exist yet has nowhere to upload to, and that is a
|
|
18
|
+
* reason to move the work, not to take the feature away.
|
|
19
|
+
*/
|
|
20
|
+
uploadImage?: (file: File) => Promise<string>;
|
|
21
|
+
/** UI language, for the annotator's own labels. */
|
|
22
|
+
locale?: "th" | "en";
|
|
23
|
+
/** Content to start from — editing an existing message rather than writing one. */
|
|
24
|
+
initial?: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Sanitised HTML, or "" when there is nothing worth sending.
|
|
28
|
+
*
|
|
29
|
+
* `cleanHtml` is not belt-and-braces over TipTap's schema. The schema drops an
|
|
30
|
+
* `onclick`, but the Image extension takes any `src` it is given — so a
|
|
31
|
+
* screenshot pasted from a web page arrives with that page's remote image
|
|
32
|
+
* intact, and posting it would store a tracking pixel in the thread aimed at
|
|
33
|
+
* every future reader. The allowlist is what narrows an image to our own.
|
|
34
|
+
*/
|
|
35
|
+
declare function value(): string;
|
|
36
|
+
declare function clear(): void;
|
|
37
|
+
type __VLS_PublicProps = __VLS_Props & {
|
|
38
|
+
/**
|
|
39
|
+
* Two-way binding, for a host that would rather drive this from a ref than call
|
|
40
|
+
* `value()`. Optional: the panel uses the imperative API, the app uses v-model.
|
|
41
|
+
*/
|
|
42
|
+
modelValue?: string;
|
|
43
|
+
};
|
|
44
|
+
declare const _default: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
45
|
+
value: typeof value;
|
|
46
|
+
clear: typeof clear;
|
|
47
|
+
focus: () => boolean | undefined;
|
|
48
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
49
|
+
"update:modelValue": (value: string | undefined) => any;
|
|
50
|
+
} & {
|
|
51
|
+
error: (message: string) => any;
|
|
52
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
53
|
+
onError?: ((message: string) => any) | undefined;
|
|
54
|
+
"onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
|
|
55
|
+
}>, {
|
|
56
|
+
tools: EditorTool[];
|
|
57
|
+
compact: boolean;
|
|
58
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
59
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MyTicketDetail, StatusMaps, TicketStrings } from "@lightworkai.official/debug-capture";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
ticket: MyTicketDetail;
|
|
4
|
+
maps: StatusMaps;
|
|
5
|
+
t: TicketStrings;
|
|
6
|
+
locale: "th" | "en";
|
|
7
|
+
host: string;
|
|
8
|
+
};
|
|
9
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A status as the realm coloured it.
|
|
3
|
+
*
|
|
4
|
+
* The tone arrives as DATA — a realm adds lanes whenever it likes — so it is an
|
|
5
|
+
* inline style rather than a class. There is no stylesheet that could know the
|
|
6
|
+
* names in advance.
|
|
7
|
+
*/
|
|
8
|
+
type __VLS_Props = {
|
|
9
|
+
label: string;
|
|
10
|
+
tone: {
|
|
11
|
+
fg: string;
|
|
12
|
+
bg: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
html: string;
|
|
3
|
+
host: string;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type MyTicketDetail, type TicketStrings } from "@lightworkai.official/debug-capture";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
ticket: MyTicketDetail;
|
|
4
|
+
t: TicketStrings;
|
|
5
|
+
host: string;
|
|
6
|
+
timezone: string;
|
|
7
|
+
locale: "th" | "en" | undefined;
|
|
8
|
+
sending?: boolean;
|
|
9
|
+
uploadImage: (file: File) => Promise<string>;
|
|
10
|
+
};
|
|
11
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {
|
|
12
|
+
clear: () => void | undefined;
|
|
13
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
14
|
+
error: (message: string) => any;
|
|
15
|
+
edited: () => any;
|
|
16
|
+
send: (body: string) => any;
|
|
17
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
18
|
+
onError?: ((message: string) => any) | undefined;
|
|
19
|
+
onEdited?: (() => any) | undefined;
|
|
20
|
+
onSend?: ((body: string) => any) | undefined;
|
|
21
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
|
+
export default _default;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type MyTicketDetail, type RealmConfig, type StatusEvent, type StatusMaps, type TicketStrings } from "@lightworkai.official/debug-capture";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
ticket: MyTicketDetail;
|
|
4
|
+
history: StatusEvent[];
|
|
5
|
+
config: RealmConfig;
|
|
6
|
+
maps: StatusMaps;
|
|
7
|
+
t: TicketStrings;
|
|
8
|
+
host: string;
|
|
9
|
+
locale: "th" | "en" | undefined;
|
|
10
|
+
sending?: boolean;
|
|
11
|
+
reopening?: boolean;
|
|
12
|
+
uploadImage: (file: File) => Promise<string>;
|
|
13
|
+
attachmentUrl: (id: string) => Promise<string>;
|
|
14
|
+
};
|
|
15
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
16
|
+
error: (message: string) => any;
|
|
17
|
+
back: () => any;
|
|
18
|
+
edited: () => any;
|
|
19
|
+
send: (body: string) => any;
|
|
20
|
+
reopen: (note: string) => any;
|
|
21
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
22
|
+
onError?: ((message: string) => any) | undefined;
|
|
23
|
+
onBack?: (() => any) | undefined;
|
|
24
|
+
onEdited?: (() => any) | undefined;
|
|
25
|
+
onSend?: ((body: string) => any) | undefined;
|
|
26
|
+
onReopen?: ((note: string) => any) | undefined;
|
|
27
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
28
|
+
export default _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TicketAttachment } from "@lightworkai.official/debug-capture";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
images: TicketAttachment[];
|
|
4
|
+
title: string;
|
|
5
|
+
attachmentUrl: (id: string) => Promise<string>;
|
|
6
|
+
};
|
|
7
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type MyTicketListItem, type Sort, type SortKey, type StatusMaps, type TicketStrings } from "@lightworkai.official/debug-capture";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
items: MyTicketListItem[];
|
|
4
|
+
maps: StatusMaps;
|
|
5
|
+
t: TicketStrings;
|
|
6
|
+
slug: string | undefined;
|
|
7
|
+
timezone: string;
|
|
8
|
+
locale: "th" | "en" | undefined;
|
|
9
|
+
keyword: string;
|
|
10
|
+
statusFilter: string;
|
|
11
|
+
sort: Sort;
|
|
12
|
+
page: number;
|
|
13
|
+
};
|
|
14
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {
|
|
15
|
+
count: import("vue").ComputedRef<number>;
|
|
16
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
17
|
+
sort: (key: SortKey) => any;
|
|
18
|
+
page: (page: number) => any;
|
|
19
|
+
open: (id: string) => any;
|
|
20
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
21
|
+
onSort?: ((key: SortKey) => any) | undefined;
|
|
22
|
+
onPage?: ((page: number) => any) | undefined;
|
|
23
|
+
onOpen?: ((id: string) => any) | undefined;
|
|
24
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
|
+
export default _default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type StatusEvent, type StatusMaps } from "@lightworkai.official/debug-capture";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
history: StatusEvent[];
|
|
4
|
+
status: string;
|
|
5
|
+
createdAt: string;
|
|
6
|
+
maps: StatusMaps;
|
|
7
|
+
timezone: string;
|
|
8
|
+
locale: "th" | "en";
|
|
9
|
+
};
|
|
10
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
label: string;
|
|
3
|
+
active?: boolean;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare var __VLS_1: {};
|
|
7
|
+
type __VLS_Slots = {} & {
|
|
8
|
+
default?: (props: typeof __VLS_1) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
11
|
+
activate: () => any;
|
|
12
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
|
+
onActivate?: (() => any) | undefined;
|
|
14
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
|
+
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
16
|
+
export default _default;
|
|
17
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
18
|
+
new (): {
|
|
19
|
+
$slots: S;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The toolbar's icons, as tiny functional components.
|
|
3
|
+
*
|
|
4
|
+
* Drawn rather than imported: the original uses lucide, and a package that
|
|
5
|
+
* pulled an icon set in so a reply box could show a B would cost every consumer
|
|
6
|
+
* that dependency. These are the same lucide paths at the same 24-unit scale.
|
|
7
|
+
*/
|
|
8
|
+
import { type FunctionalComponent } from "vue";
|
|
9
|
+
export declare const BoldIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
10
|
+
export declare const ItalicIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
11
|
+
export declare const UnderlineIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
12
|
+
export declare const BulletListIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
13
|
+
export declare const OrderedListIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
14
|
+
export declare const LinkIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
15
|
+
export declare const ImageIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
16
|
+
export declare const SendIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
17
|
+
export declare const SearchIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
18
|
+
export declare const ArrowLeftIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
19
|
+
export declare const CheckIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
20
|
+
export declare const MessageIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
21
|
+
export declare const RotateIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
22
|
+
export declare const AlertIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
23
|
+
export declare const InboxIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
24
|
+
export declare const ClockIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
25
|
+
export declare const CheckCircleIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
26
|
+
export declare const BanIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
27
|
+
export declare const WrenchIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
28
|
+
export declare const SquareIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
29
|
+
export declare const ArrowUpRightIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
30
|
+
export declare const HighlighterIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
31
|
+
export declare const TypeIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
32
|
+
export declare const TrashIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
33
|
+
export declare const StrikeIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
34
|
+
export declare const CodeIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
35
|
+
export declare const QuoteIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
36
|
+
export declare const PencilIcon: FunctionalComponent<{}, {}, any, {}>;
|
|
37
|
+
export declare const CheckIcon2: FunctionalComponent<{}, {}, any, {}>;
|
|
38
|
+
export declare const XIcon: FunctionalComponent<{}, {}, any, {}>;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vue 3 bindings for @lightworkai.official/debug-capture.
|
|
3
|
+
*
|
|
4
|
+
* Real single-file components, not `h()` calls into a web component. The core
|
|
5
|
+
* package holds the logic every framework shares — the ingest client, the
|
|
6
|
+
* sanitiser, the status maps, the comparators, the capture buffers — and each
|
|
7
|
+
* framework package renders it the way that framework renders things. A table
|
|
8
|
+
* is a `<table>` in a template; a rich editor is TipTap.
|
|
9
|
+
*
|
|
10
|
+
* Import the stylesheet once, anywhere:
|
|
11
|
+
*
|
|
12
|
+
* import "@lightworkai.official/debug-capture/style.css";
|
|
13
|
+
*/
|
|
14
|
+
export { default as DebugCaptureInit } from "./components/DebugCaptureInit.vue";
|
|
15
|
+
export { default as ReportProblemButton } from "./components/ReportProblemButton.vue";
|
|
16
|
+
export { default as MyTicketsPanel } from "./components/MyTicketsPanel.vue";
|
|
17
|
+
export { default as TicketTable } from "./components/TicketTable.vue";
|
|
18
|
+
export { default as TicketDetail } from "./components/TicketDetail.vue";
|
|
19
|
+
export { default as TicketConversation } from "./components/TicketConversation.vue";
|
|
20
|
+
export { default as RichReplyEditor } from "./components/RichReplyEditor.vue";
|
|
21
|
+
export { default as TicketBody } from "./components/TicketBody.vue";
|
|
22
|
+
export { default as ImageAnnotatorDialog } from "./components/ImageAnnotatorDialog.vue";
|
|
23
|
+
export { configureDebugCapture, launch, onCrash } from "@lightworkai.official/debug-capture";
|
|
24
|
+
export type { DebugCaptureConfig, DebugReason, ErroredQuery, MyTicketListItem, MyTicketDetail, } from "@lightworkai.official/debug-capture";
|