@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
|
@@ -0,0 +1,90 @@
|
|
|
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 { h, type FunctionalComponent } from "vue";
|
|
9
|
+
|
|
10
|
+
function glyph(paths: string[], extra: Record<string, unknown> = {}): FunctionalComponent {
|
|
11
|
+
const component: FunctionalComponent = () =>
|
|
12
|
+
h(
|
|
13
|
+
"svg",
|
|
14
|
+
{
|
|
15
|
+
width: 15,
|
|
16
|
+
height: 15,
|
|
17
|
+
viewBox: "0 0 24 24",
|
|
18
|
+
fill: "none",
|
|
19
|
+
stroke: "currentColor",
|
|
20
|
+
"stroke-width": 2,
|
|
21
|
+
"stroke-linecap": "round",
|
|
22
|
+
"stroke-linejoin": "round",
|
|
23
|
+
"aria-hidden": "true",
|
|
24
|
+
...extra,
|
|
25
|
+
},
|
|
26
|
+
paths.map((d) => h("path", { d })),
|
|
27
|
+
);
|
|
28
|
+
return component;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const BoldIcon = glyph(["M6 4h8a4 4 0 0 1 0 8H6z", "M6 12h9a4 4 0 0 1 0 8H6z"]);
|
|
32
|
+
export const ItalicIcon = glyph(["M19 4h-9", "M14 20H5", "M15 4L9 20"]);
|
|
33
|
+
export const UnderlineIcon = glyph(["M6 4v6a6 6 0 0 0 12 0V4", "M4 20h16"]);
|
|
34
|
+
export const BulletListIcon = glyph([
|
|
35
|
+
"M8 6h13", "M8 12h13", "M8 18h13", "M3 6h.01", "M3 12h.01", "M3 18h.01",
|
|
36
|
+
]);
|
|
37
|
+
export const OrderedListIcon = glyph([
|
|
38
|
+
"M10 6h11", "M10 12h11", "M10 18h11", "M4 6h1v4", "M4 10h2", "M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",
|
|
39
|
+
]);
|
|
40
|
+
export const LinkIcon = glyph([
|
|
41
|
+
"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",
|
|
42
|
+
"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",
|
|
43
|
+
]);
|
|
44
|
+
export const ImageIcon = glyph([
|
|
45
|
+
"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z",
|
|
46
|
+
"M8.5 10a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z",
|
|
47
|
+
"M21 15l-5-5L5 21",
|
|
48
|
+
]);
|
|
49
|
+
export const SendIcon = glyph(["M22 2L11 13", "M22 2l-7 20-4-9-9-4 20-7z"]);
|
|
50
|
+
export const SearchIcon = glyph(["M21 21l-4.34-4.34", "M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16z"]);
|
|
51
|
+
export const ArrowLeftIcon = glyph(["M19 12H5", "M12 19l-7-7 7-7"]);
|
|
52
|
+
export const CheckIcon = glyph(["M20 6L9 17l-5-5"]);
|
|
53
|
+
export const MessageIcon = glyph(["M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"]);
|
|
54
|
+
export const RotateIcon = glyph(["M3 12a9 9 0 1 0 3-6.7L3 8", "M3 3v5h5"]);
|
|
55
|
+
export const AlertIcon = glyph(["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z", "M12 8v4", "M12 16h.01"]);
|
|
56
|
+
export const InboxIcon = glyph([
|
|
57
|
+
"M22 12h-6l-2 3h-4l-2-3H2",
|
|
58
|
+
"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",
|
|
59
|
+
]);
|
|
60
|
+
export const ClockIcon = glyph(["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z", "M12 6v6l4 2"]);
|
|
61
|
+
export const CheckCircleIcon = glyph(["M22 11.08V12a10 10 0 1 1-5.93-9.14", "M22 4L12 14.01l-3-3"]);
|
|
62
|
+
export const BanIcon = glyph(["M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z", "M4.93 4.93l14.14 14.14"]);
|
|
63
|
+
export const WrenchIcon = glyph([
|
|
64
|
+
"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",
|
|
65
|
+
]);
|
|
66
|
+
|
|
67
|
+
/* The annotator toolbar — the same four tools the app's dialog offers. */
|
|
68
|
+
export const SquareIcon = glyph(["M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2z"], { width: 14, height: 14 });
|
|
69
|
+
export const ArrowUpRightIcon = glyph(["M7 17L17 7", "M7 7h10v10"], { width: 14, height: 14 });
|
|
70
|
+
export const HighlighterIcon = glyph([
|
|
71
|
+
"M9 11l-6 6v3h9l3-3", "M22 12l-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4",
|
|
72
|
+
], { width: 14, height: 14 });
|
|
73
|
+
export const TypeIcon = glyph(["M4 7V4h16v3", "M9 20h6", "M12 4v16"], { width: 14, height: 14 });
|
|
74
|
+
export const TrashIcon = glyph([
|
|
75
|
+
"M3 6h18", "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
|
|
76
|
+
], { width: 14, height: 14 });
|
|
77
|
+
|
|
78
|
+
/* The three the admin composer had grown beyond the original's NOTE_TOOLBAR. */
|
|
79
|
+
export const StrikeIcon = glyph(["M16 4H9a3 3 0 0 0-2.83 4", "M14 12a4 4 0 0 1 0 8H6", "M4 12h16"]);
|
|
80
|
+
export const CodeIcon = glyph(["M16 18l6-6-6-6", "M8 6l-6 6 6 6"]);
|
|
81
|
+
export const QuoteIcon = glyph([
|
|
82
|
+
"M3 21c3 0 7-1 7-8V5a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h3",
|
|
83
|
+
"M14 21c3 0 7-1 7-8V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h3",
|
|
84
|
+
]);
|
|
85
|
+
|
|
86
|
+
export const PencilIcon = glyph([
|
|
87
|
+
"M12 20h9", "M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z",
|
|
88
|
+
], { width: 11, height: 11 });
|
|
89
|
+
export const CheckIcon2 = glyph(["M20 6L9 17l-5-5"], { width: 12, height: 12 });
|
|
90
|
+
export const XIcon = glyph(["M18 6L6 18", "M6 6l12 12"], { width: 12, height: 12 });
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
|
|
18
|
+
// Composable pieces, for a host that wants to arrange them itself.
|
|
19
|
+
export { default as TicketTable } from "./components/TicketTable.vue";
|
|
20
|
+
export { default as TicketDetail } from "./components/TicketDetail.vue";
|
|
21
|
+
export { default as TicketConversation } from "./components/TicketConversation.vue";
|
|
22
|
+
export { default as RichReplyEditor } from "./components/RichReplyEditor.vue";
|
|
23
|
+
export { default as TicketBody } from "./components/TicketBody.vue";
|
|
24
|
+
export { default as ImageAnnotatorDialog } from "./components/ImageAnnotatorDialog.vue";
|
|
25
|
+
|
|
26
|
+
// One import for a host, not two.
|
|
27
|
+
export { configureDebugCapture, launch, onCrash } from "@lightworkai.official/debug-capture";
|
|
28
|
+
export type {
|
|
29
|
+
DebugCaptureConfig,
|
|
30
|
+
DebugReason,
|
|
31
|
+
ErroredQuery,
|
|
32
|
+
MyTicketListItem,
|
|
33
|
+
MyTicketDetail,
|
|
34
|
+
} from "@lightworkai.official/debug-capture";
|