@arbidocs/blocks 0.4.95 → 0.4.97
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/dist/agents/index.cjs +283 -283
- package/dist/agents/index.js +7 -7
- package/dist/chat/index.cjs +127 -127
- package/dist/chat/index.js +4 -4
- package/dist/{chunk-DCZGYCN2.cjs → chunk-3US5OIDQ.cjs} +5 -5
- package/dist/{chunk-DCZGYCN2.cjs.map → chunk-3US5OIDQ.cjs.map} +1 -1
- package/dist/{chunk-QQH2NI5U.js → chunk-5NQIBJPP.js} +8 -8
- package/dist/{chunk-QQH2NI5U.js.map → chunk-5NQIBJPP.js.map} +1 -1
- package/dist/{chunk-KBPHLW2R.cjs → chunk-B4SRYJLM.cjs} +3 -3
- package/dist/{chunk-KBPHLW2R.cjs.map → chunk-B4SRYJLM.cjs.map} +1 -1
- package/dist/chunk-D54JXTPG.cjs +164 -0
- package/dist/chunk-D54JXTPG.cjs.map +1 -0
- package/dist/{chunk-VQ65UHTV.cjs → chunk-DDYXFALG.cjs} +47 -47
- package/dist/{chunk-VQ65UHTV.cjs.map → chunk-DDYXFALG.cjs.map} +1 -1
- package/dist/{chunk-RZGVMV6B.cjs → chunk-EHB7J6SR.cjs} +5 -5
- package/dist/{chunk-RZGVMV6B.cjs.map → chunk-EHB7J6SR.cjs.map} +1 -1
- package/dist/{chunk-EJAYB7PP.js → chunk-EWSEQEPL.js} +4 -4
- package/dist/{chunk-EJAYB7PP.js.map → chunk-EWSEQEPL.js.map} +1 -1
- package/dist/{chunk-3OXWJ3CZ.cjs → chunk-GVOTXXZG.cjs} +5 -5
- package/dist/{chunk-3OXWJ3CZ.cjs.map → chunk-GVOTXXZG.cjs.map} +1 -1
- package/dist/{chunk-CKYA2IG5.cjs → chunk-HBF4BDRU.cjs} +3 -3
- package/dist/{chunk-CKYA2IG5.cjs.map → chunk-HBF4BDRU.cjs.map} +1 -1
- package/dist/{chunk-E2AAIMXO.cjs → chunk-HGJGALLN.cjs} +832 -219
- package/dist/chunk-HGJGALLN.cjs.map +1 -0
- package/dist/{chunk-24CS7JWU.js → chunk-HOXKR26S.js} +3 -3
- package/dist/{chunk-24CS7JWU.js.map → chunk-HOXKR26S.js.map} +1 -1
- package/dist/{chunk-PDEHIGJ5.js → chunk-ICBAFX5B.js} +3 -3
- package/dist/{chunk-PDEHIGJ5.js.map → chunk-ICBAFX5B.js.map} +1 -1
- package/dist/{chunk-OYMYNYFV.cjs → chunk-IF6VAYIA.cjs} +5 -5
- package/dist/{chunk-OYMYNYFV.cjs.map → chunk-IF6VAYIA.cjs.map} +1 -1
- package/dist/{chunk-TOVSTC2M.cjs → chunk-LENXDIMY.cjs} +5 -5
- package/dist/{chunk-TOVSTC2M.cjs.map → chunk-LENXDIMY.cjs.map} +1 -1
- package/dist/{chunk-VYKMBLDX.cjs → chunk-MP6FK43E.cjs} +8 -8
- package/dist/{chunk-VYKMBLDX.cjs.map → chunk-MP6FK43E.cjs.map} +1 -1
- package/dist/{chunk-HUFLBZWI.js → chunk-PGDL26TQ.js} +4 -4
- package/dist/{chunk-HUFLBZWI.js.map → chunk-PGDL26TQ.js.map} +1 -1
- package/dist/{chunk-WXLKMEMB.js → chunk-QIEEFBZ5.js} +834 -221
- package/dist/chunk-QIEEFBZ5.js.map +1 -0
- package/dist/{chunk-YPKSLTL5.js → chunk-RSUOOMPT.js} +3 -3
- package/dist/{chunk-YPKSLTL5.js.map → chunk-RSUOOMPT.js.map} +1 -1
- package/dist/{chunk-UMY6Y6BM.js → chunk-VLOPZHFH.js} +3 -3
- package/dist/{chunk-UMY6Y6BM.js.map → chunk-VLOPZHFH.js.map} +1 -1
- package/dist/{chunk-GNHOB2ZB.cjs → chunk-XMBYDLZQ.cjs} +4 -4
- package/dist/{chunk-GNHOB2ZB.cjs.map → chunk-XMBYDLZQ.cjs.map} +1 -1
- package/dist/{chunk-YG7DGGCA.js → chunk-XQDM6T6C.js} +3 -3
- package/dist/{chunk-YG7DGGCA.js.map → chunk-XQDM6T6C.js.map} +1 -1
- package/dist/{chunk-ZNDAXSDP.js → chunk-YH6SSJDW.js} +3 -3
- package/dist/{chunk-ZNDAXSDP.js.map → chunk-YH6SSJDW.js.map} +1 -1
- package/dist/{chunk-EOEDGJ75.js → chunk-Z3G65XHZ.js} +3 -3
- package/dist/{chunk-EOEDGJ75.js.map → chunk-Z3G65XHZ.js.map} +1 -1
- package/dist/chunk-ZCOVDK2E.js +153 -0
- package/dist/chunk-ZCOVDK2E.js.map +1 -0
- package/dist/components/DetailPanel.d.ts +106 -0
- package/dist/connect/docx.cjs +6 -6
- package/dist/connect/docx.js +4 -4
- package/dist/connect/index.cjs +47 -47
- package/dist/connect/index.js +17 -17
- package/dist/databases/DatabaseRowDetail.d.ts +32 -0
- package/dist/databases/DatabaseTable.d.ts +3 -1
- package/dist/databases/DatabaseToolbar.d.ts +9 -1
- package/dist/databases/PickCellEditor.d.ts +8 -1
- package/dist/databases/SelectCellEditor.d.ts +6 -1
- package/dist/databases/column-types.d.ts +5 -0
- package/dist/databases/databaseColumns.d.ts +7 -0
- package/dist/databases/index.cjs +381 -11
- package/dist/databases/index.cjs.map +1 -1
- package/dist/databases/index.d.ts +7 -5
- package/dist/databases/index.js +379 -14
- package/dist/databases/index.js.map +1 -1
- package/dist/databases/linkCells.d.ts +4 -2
- package/dist/docx/NativeDocxEditor.d.ts +3 -1
- package/dist/docx/RibbonMenu.d.ts +15 -0
- package/dist/docx/StyleGallery.d.ts +9 -0
- package/dist/docx/WordReferences.d.ts +21 -0
- package/dist/docx/index.cjs +24 -24
- package/dist/docx/index.js +3 -3
- package/dist/docx/review/DocxEditorReview.d.ts +4 -2
- package/dist/docx/review/commentText.d.ts +7 -0
- package/dist/docx/wordStyles.d.ts +21 -0
- package/dist/facts/index.cjs +5 -5
- package/dist/facts/index.js +2 -2
- package/dist/files/index.cjs +308 -0
- package/dist/files/index.cjs.map +1 -1
- package/dist/files/index.js +298 -2
- package/dist/files/index.js.map +1 -1
- package/dist/files/views/gridViews.d.ts +80 -0
- package/dist/files/views/index.d.ts +2 -0
- package/dist/files/views/useGridViews.d.ts +38 -0
- package/dist/index.cjs +1237 -1237
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +100 -139
- package/dist/index.js.map +1 -1
- package/dist/settings/index.cjs +1 -1
- package/dist/settings/index.js +1 -1
- package/dist/shell/index.cjs +67 -67
- package/dist/shell/index.js +3 -3
- package/dist/studio/index.cjs +7 -7
- package/dist/studio/index.js +6 -6
- package/dist/tags/TagDetail.d.ts +1 -0
- package/dist/workflow-canvas/index.cjs +51 -51
- package/dist/workflow-canvas/index.js +8 -8
- package/package.json +4 -4
- package/src/docx/styles.css +564 -91
- package/dist/chunk-E2AAIMXO.cjs.map +0 -1
- package/dist/chunk-WXLKMEMB.js.map +0 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { X, Loader2 } from 'lucide-react';
|
|
3
|
+
import { Button, cn } from '@arbidocs/react/ui';
|
|
4
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
// src/components/DetailPanel.tsx
|
|
7
|
+
var DEFAULT_DETAIL_PANEL_LABELS = {
|
|
8
|
+
close: "Close",
|
|
9
|
+
loading: "Loading\u2026",
|
|
10
|
+
showing: "Showing {shown} of {count}"
|
|
11
|
+
};
|
|
12
|
+
function DetailPanel({
|
|
13
|
+
title,
|
|
14
|
+
icon,
|
|
15
|
+
subtitle,
|
|
16
|
+
actions,
|
|
17
|
+
onClose,
|
|
18
|
+
isLoading,
|
|
19
|
+
children,
|
|
20
|
+
labels,
|
|
21
|
+
className,
|
|
22
|
+
testId = "detail-panel"
|
|
23
|
+
}) {
|
|
24
|
+
const l = { ...DEFAULT_DETAIL_PANEL_LABELS, ...labels };
|
|
25
|
+
return /* @__PURE__ */ jsxs(
|
|
26
|
+
"section",
|
|
27
|
+
{
|
|
28
|
+
className: cn("flex h-full min-h-0 flex-col bg-card", className),
|
|
29
|
+
"data-slot": "detail-panel",
|
|
30
|
+
"data-testid": testId,
|
|
31
|
+
children: [
|
|
32
|
+
/* @__PURE__ */ jsxs("header", { className: "flex items-start gap-2 border-b border-border px-4 py-3", children: [
|
|
33
|
+
icon && /* @__PURE__ */ jsx("span", { className: "mt-1 shrink-0 text-muted-foreground", children: icon }),
|
|
34
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
35
|
+
/* @__PURE__ */ jsx(
|
|
36
|
+
"h2",
|
|
37
|
+
{
|
|
38
|
+
className: "break-words text-base font-semibold leading-snug",
|
|
39
|
+
"data-testid": `${testId}-title`,
|
|
40
|
+
children: title
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: subtitle })
|
|
44
|
+
] }),
|
|
45
|
+
actions && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-1", children: actions }),
|
|
46
|
+
onClose && /* @__PURE__ */ jsx(
|
|
47
|
+
Button,
|
|
48
|
+
{
|
|
49
|
+
variant: "ghost",
|
|
50
|
+
size: "icon",
|
|
51
|
+
className: "size-8 shrink-0",
|
|
52
|
+
onClick: onClose,
|
|
53
|
+
"aria-label": l.close,
|
|
54
|
+
title: l.close,
|
|
55
|
+
"data-testid": `${testId}-close`,
|
|
56
|
+
children: /* @__PURE__ */ jsx(X, { className: "size-4" })
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
] }),
|
|
60
|
+
/* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1 overflow-y-auto px-4 py-4", children: isLoading ? /* @__PURE__ */ jsx(DetailLoading, { label: l.loading }) : /* @__PURE__ */ jsx(DetailBody, { children }) })
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
function DetailBody({
|
|
66
|
+
children,
|
|
67
|
+
className,
|
|
68
|
+
testId
|
|
69
|
+
}) {
|
|
70
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-6", className), "data-testid": testId, children });
|
|
71
|
+
}
|
|
72
|
+
function DetailLoading({ label = DEFAULT_DETAIL_PANEL_LABELS.loading }) {
|
|
73
|
+
return /* @__PURE__ */ jsxs("p", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
|
|
74
|
+
/* @__PURE__ */ jsx(Loader2, { className: "size-4 animate-spin" }),
|
|
75
|
+
" ",
|
|
76
|
+
label
|
|
77
|
+
] });
|
|
78
|
+
}
|
|
79
|
+
function DetailSection({
|
|
80
|
+
title,
|
|
81
|
+
count,
|
|
82
|
+
shown,
|
|
83
|
+
showingLabel = DEFAULT_DETAIL_PANEL_LABELS.showing,
|
|
84
|
+
children,
|
|
85
|
+
testId
|
|
86
|
+
}) {
|
|
87
|
+
return /* @__PURE__ */ jsxs("section", { className: "flex flex-col gap-2", "data-testid": testId, children: [
|
|
88
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-2", children: [
|
|
89
|
+
/* @__PURE__ */ jsx("h2", { className: "text-sm font-semibold", children: title }),
|
|
90
|
+
count !== void 0 && /* @__PURE__ */ jsx("span", { className: "text-sm tabular-nums text-muted-foreground", children: count }),
|
|
91
|
+
count !== void 0 && shown !== void 0 && shown < count && /* @__PURE__ */ jsx("span", { className: "ml-auto text-xs text-muted-foreground", children: showingLabel.replace("{shown}", String(shown)).replace("{count}", String(count)) })
|
|
92
|
+
] }),
|
|
93
|
+
children
|
|
94
|
+
] });
|
|
95
|
+
}
|
|
96
|
+
function DetailFields({ children, className }) {
|
|
97
|
+
return /* @__PURE__ */ jsx(
|
|
98
|
+
"dl",
|
|
99
|
+
{
|
|
100
|
+
className: cn(
|
|
101
|
+
"grid grid-cols-1 gap-x-4 gap-y-2 sm:grid-cols-[minmax(8rem,auto)_1fr]",
|
|
102
|
+
className
|
|
103
|
+
),
|
|
104
|
+
children
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
function DetailField({ label, icon, children, testId }) {
|
|
109
|
+
return /* @__PURE__ */ jsxs("div", { className: "contents", "data-testid": testId, children: [
|
|
110
|
+
/* @__PURE__ */ jsxs("dt", { className: "flex items-start gap-1.5 pt-1.5 text-sm text-muted-foreground", children: [
|
|
111
|
+
icon && /* @__PURE__ */ jsx("span", { className: "mt-0.5 shrink-0", children: icon }),
|
|
112
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 break-words", children: label })
|
|
113
|
+
] }),
|
|
114
|
+
/* @__PURE__ */ jsx("dd", { className: "min-w-0", children })
|
|
115
|
+
] });
|
|
116
|
+
}
|
|
117
|
+
function DetailLinkList({ children }) {
|
|
118
|
+
return /* @__PURE__ */ jsx("ul", { className: "divide-y divide-border overflow-hidden rounded-lg border border-border", children });
|
|
119
|
+
}
|
|
120
|
+
function DetailLinkItem({
|
|
121
|
+
icon,
|
|
122
|
+
children,
|
|
123
|
+
trailing,
|
|
124
|
+
after,
|
|
125
|
+
onClick,
|
|
126
|
+
testId
|
|
127
|
+
}) {
|
|
128
|
+
return /* @__PURE__ */ jsxs("li", { className: "flex items-start", children: [
|
|
129
|
+
/* @__PURE__ */ jsxs(
|
|
130
|
+
"button",
|
|
131
|
+
{
|
|
132
|
+
type: "button",
|
|
133
|
+
className: "flex w-full items-start gap-2 px-3 py-2 text-left text-sm transition-colors hover:bg-muted/50 disabled:hover:bg-transparent",
|
|
134
|
+
disabled: !onClick,
|
|
135
|
+
onClick,
|
|
136
|
+
"data-testid": testId,
|
|
137
|
+
children: [
|
|
138
|
+
icon && /* @__PURE__ */ jsx("span", { className: "mt-0.5 shrink-0 text-muted-foreground", children: icon }),
|
|
139
|
+
children,
|
|
140
|
+
trailing
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
),
|
|
144
|
+
after
|
|
145
|
+
] });
|
|
146
|
+
}
|
|
147
|
+
function DetailEmpty({ children }) {
|
|
148
|
+
return /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children });
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export { DEFAULT_DETAIL_PANEL_LABELS, DetailBody, DetailEmpty, DetailField, DetailFields, DetailLinkItem, DetailLinkList, DetailLoading, DetailPanel, DetailSection };
|
|
152
|
+
//# sourceMappingURL=chunk-ZCOVDK2E.js.map
|
|
153
|
+
//# sourceMappingURL=chunk-ZCOVDK2E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/DetailPanel.tsx"],"names":[],"mappings":"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","file":"chunk-ZCOVDK2E.js","sourcesContent":["/**\n * DetailPanel: one record in full, the same way for every kind of record (a tag, a database row,\n * …). The parts compose:\n *\n * <DetailPanel title=\"Acme Ltd\" icon={…} actions={…} onClose={…}> header + scrolling body\n * <DetailSection title=\"Fields\"> a titled block (with a count)\n * <DetailFields> label / value grid\n * <DetailField label=\"Status\">{typed editor}</DetailField>\n * </DetailFields>\n * </DetailSection>\n * <DetailSection title=\"Documents\" count={12} shown={5}>\n * <DetailLinkList> linked items, each openable\n * <DetailLinkItem icon={…} onClick={…}>Engagement letter.pdf</DetailLinkItem>\n * </DetailLinkList>\n * </DetailSection>\n * </DetailPanel>\n *\n * `DetailBody` is the body alone (sections stacked, no header) for a host that has its own header,\n * like a page section. Presentational: values and edits belong to the host.\n */\nimport type { ReactNode } from 'react'\nimport { Loader2, X } from 'lucide-react'\nimport { Button, cn } from '@arbidocs/react/ui'\n\nexport interface DetailPanelLabels {\n close: string\n loading: string\n /** `{shown}` of `{count}` listed. */\n showing: string\n}\n\nexport const DEFAULT_DETAIL_PANEL_LABELS: DetailPanelLabels = {\n close: 'Close',\n loading: 'Loading…',\n showing: 'Showing {shown} of {count}',\n}\n\nexport interface DetailPanelProps {\n title: ReactNode\n /** A glyph before the title (the record's kind). */\n icon?: ReactNode\n /** A quieter line under the title. */\n subtitle?: ReactNode\n /** Buttons on the header's right (delete, open elsewhere, …). */\n actions?: ReactNode\n /** Shows a close button. */\n onClose?: () => void\n isLoading?: boolean\n children?: ReactNode\n labels?: Partial<DetailPanelLabels>\n className?: string\n testId?: string\n}\n\n/** A record's header (title, actions, close) over its sections, which scroll. */\nexport function DetailPanel({\n title,\n icon,\n subtitle,\n actions,\n onClose,\n isLoading,\n children,\n labels,\n className,\n testId = 'detail-panel',\n}: DetailPanelProps) {\n const l = { ...DEFAULT_DETAIL_PANEL_LABELS, ...labels }\n return (\n <section\n className={cn('flex h-full min-h-0 flex-col bg-card', className)}\n data-slot=\"detail-panel\"\n data-testid={testId}\n >\n <header className=\"flex items-start gap-2 border-b border-border px-4 py-3\">\n {icon && <span className=\"mt-1 shrink-0 text-muted-foreground\">{icon}</span>}\n <div className=\"min-w-0 flex-1\">\n <h2\n className=\"break-words text-base font-semibold leading-snug\"\n data-testid={`${testId}-title`}\n >\n {title}\n </h2>\n {subtitle && <p className=\"mt-0.5 text-xs text-muted-foreground\">{subtitle}</p>}\n </div>\n {actions && <div className=\"flex shrink-0 items-center gap-1\">{actions}</div>}\n {onClose && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-8 shrink-0\"\n onClick={onClose}\n aria-label={l.close}\n title={l.close}\n data-testid={`${testId}-close`}\n >\n <X className=\"size-4\" />\n </Button>\n )}\n </header>\n <div className=\"min-h-0 flex-1 overflow-y-auto px-4 py-4\">\n {isLoading ? <DetailLoading label={l.loading} /> : <DetailBody>{children}</DetailBody>}\n </div>\n </section>\n )\n}\n\n/** The sections of a record, stacked (a host with its own header renders this alone). */\nexport function DetailBody({\n children,\n className,\n testId,\n}: {\n children?: ReactNode\n className?: string\n testId?: string\n}) {\n return (\n <div className={cn('flex flex-col gap-6', className)} data-testid={testId}>\n {children}\n </div>\n )\n}\n\n/** The record is still loading. */\nexport function DetailLoading({ label = DEFAULT_DETAIL_PANEL_LABELS.loading }: { label?: string }) {\n return (\n <p className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Loader2 className=\"size-4 animate-spin\" /> {label}\n </p>\n )\n}\n\nexport interface DetailSectionProps {\n title: ReactNode\n /** How many there are (shown after the title). */\n count?: number\n /** How many are listed, when fewer than `count`: \"Showing 5 of 12\". */\n shown?: number\n /** The \"showing\" line, `{shown}` and `{count}` filled in. */\n showingLabel?: string\n children: ReactNode\n testId?: string\n}\n\n/** A titled block of a record: its fields, or a kind of linked item. */\nexport function DetailSection({\n title,\n count,\n shown,\n showingLabel = DEFAULT_DETAIL_PANEL_LABELS.showing,\n children,\n testId,\n}: DetailSectionProps) {\n return (\n <section className=\"flex flex-col gap-2\" data-testid={testId}>\n <div className=\"flex items-baseline gap-2\">\n <h2 className=\"text-sm font-semibold\">{title}</h2>\n {count !== undefined && (\n <span className=\"text-sm tabular-nums text-muted-foreground\">{count}</span>\n )}\n {count !== undefined && shown !== undefined && shown < count && (\n <span className=\"ml-auto text-xs text-muted-foreground\">\n {showingLabel.replace('{shown}', String(shown)).replace('{count}', String(count))}\n </span>\n )}\n </div>\n {children}\n </section>\n )\n}\n\n/** The fields of a record: labels beside their values (stacked on a narrow screen). */\nexport function DetailFields({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <dl\n className={cn(\n 'grid grid-cols-1 gap-x-4 gap-y-2 sm:grid-cols-[minmax(8rem,auto)_1fr]',\n className\n )}\n >\n {children}\n </dl>\n )\n}\n\nexport interface DetailFieldProps {\n label: ReactNode\n /** A glyph before the label (the field's type). */\n icon?: ReactNode\n /** The value: read-only text or the field's editor. */\n children: ReactNode\n testId?: string\n}\n\n/** One field: its label and its value (or editor). */\nexport function DetailField({ label, icon, children, testId }: DetailFieldProps) {\n return (\n <div className=\"contents\" data-testid={testId}>\n <dt className=\"flex items-start gap-1.5 pt-1.5 text-sm text-muted-foreground\">\n {icon && <span className=\"mt-0.5 shrink-0\">{icon}</span>}\n <span className=\"min-w-0 break-words\">{label}</span>\n </dt>\n <dd className=\"min-w-0\">{children}</dd>\n </div>\n )\n}\n\n/** Linked items (documents, facts, threads, rows), one per line. */\nexport function DetailLinkList({ children }: { children: ReactNode }) {\n return (\n <ul className=\"divide-y divide-border overflow-hidden rounded-lg border border-border\">\n {children}\n </ul>\n )\n}\n\nexport interface DetailLinkItemProps {\n icon?: ReactNode\n /** The item: its name, and any quieter lines under it. */\n children: ReactNode\n /** Right of the item, inside its button (a date, a count). */\n trailing?: ReactNode\n /** Right of the item, outside its button (its own control: a popover, …). */\n after?: ReactNode\n /** Open the item. Without it the line is inert. */\n onClick?: () => void\n testId?: string\n}\n\n/** One linked item: the whole line opens it. */\nexport function DetailLinkItem({\n icon,\n children,\n trailing,\n after,\n onClick,\n testId,\n}: DetailLinkItemProps) {\n return (\n <li className=\"flex items-start\">\n <button\n type=\"button\"\n className=\"flex w-full items-start gap-2 px-3 py-2 text-left text-sm transition-colors hover:bg-muted/50 disabled:hover:bg-transparent\"\n disabled={!onClick}\n onClick={onClick}\n data-testid={testId}\n >\n {icon && <span className=\"mt-0.5 shrink-0 text-muted-foreground\">{icon}</span>}\n {children}\n {trailing}\n </button>\n {after}\n </li>\n )\n}\n\n/** Nothing of a kind is linked yet. */\nexport function DetailEmpty({ children }: { children: ReactNode }) {\n return <p className=\"text-sm text-muted-foreground\">{children}</p>\n}\n"]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DetailPanel: one record in full, the same way for every kind of record (a tag, a database row,
|
|
3
|
+
* …). The parts compose:
|
|
4
|
+
*
|
|
5
|
+
* <DetailPanel title="Acme Ltd" icon={…} actions={…} onClose={…}> header + scrolling body
|
|
6
|
+
* <DetailSection title="Fields"> a titled block (with a count)
|
|
7
|
+
* <DetailFields> label / value grid
|
|
8
|
+
* <DetailField label="Status">{typed editor}</DetailField>
|
|
9
|
+
* </DetailFields>
|
|
10
|
+
* </DetailSection>
|
|
11
|
+
* <DetailSection title="Documents" count={12} shown={5}>
|
|
12
|
+
* <DetailLinkList> linked items, each openable
|
|
13
|
+
* <DetailLinkItem icon={…} onClick={…}>Engagement letter.pdf</DetailLinkItem>
|
|
14
|
+
* </DetailLinkList>
|
|
15
|
+
* </DetailSection>
|
|
16
|
+
* </DetailPanel>
|
|
17
|
+
*
|
|
18
|
+
* `DetailBody` is the body alone (sections stacked, no header) for a host that has its own header,
|
|
19
|
+
* like a page section. Presentational: values and edits belong to the host.
|
|
20
|
+
*/
|
|
21
|
+
import type { ReactNode } from 'react';
|
|
22
|
+
export interface DetailPanelLabels {
|
|
23
|
+
close: string;
|
|
24
|
+
loading: string;
|
|
25
|
+
/** `{shown}` of `{count}` listed. */
|
|
26
|
+
showing: string;
|
|
27
|
+
}
|
|
28
|
+
export declare const DEFAULT_DETAIL_PANEL_LABELS: DetailPanelLabels;
|
|
29
|
+
export interface DetailPanelProps {
|
|
30
|
+
title: ReactNode;
|
|
31
|
+
/** A glyph before the title (the record's kind). */
|
|
32
|
+
icon?: ReactNode;
|
|
33
|
+
/** A quieter line under the title. */
|
|
34
|
+
subtitle?: ReactNode;
|
|
35
|
+
/** Buttons on the header's right (delete, open elsewhere, …). */
|
|
36
|
+
actions?: ReactNode;
|
|
37
|
+
/** Shows a close button. */
|
|
38
|
+
onClose?: () => void;
|
|
39
|
+
isLoading?: boolean;
|
|
40
|
+
children?: ReactNode;
|
|
41
|
+
labels?: Partial<DetailPanelLabels>;
|
|
42
|
+
className?: string;
|
|
43
|
+
testId?: string;
|
|
44
|
+
}
|
|
45
|
+
/** A record's header (title, actions, close) over its sections, which scroll. */
|
|
46
|
+
export declare function DetailPanel({ title, icon, subtitle, actions, onClose, isLoading, children, labels, className, testId, }: DetailPanelProps): import("react").JSX.Element;
|
|
47
|
+
/** The sections of a record, stacked (a host with its own header renders this alone). */
|
|
48
|
+
export declare function DetailBody({ children, className, testId, }: {
|
|
49
|
+
children?: ReactNode;
|
|
50
|
+
className?: string;
|
|
51
|
+
testId?: string;
|
|
52
|
+
}): import("react").JSX.Element;
|
|
53
|
+
/** The record is still loading. */
|
|
54
|
+
export declare function DetailLoading({ label }: {
|
|
55
|
+
label?: string;
|
|
56
|
+
}): import("react").JSX.Element;
|
|
57
|
+
export interface DetailSectionProps {
|
|
58
|
+
title: ReactNode;
|
|
59
|
+
/** How many there are (shown after the title). */
|
|
60
|
+
count?: number;
|
|
61
|
+
/** How many are listed, when fewer than `count`: "Showing 5 of 12". */
|
|
62
|
+
shown?: number;
|
|
63
|
+
/** The "showing" line, `{shown}` and `{count}` filled in. */
|
|
64
|
+
showingLabel?: string;
|
|
65
|
+
children: ReactNode;
|
|
66
|
+
testId?: string;
|
|
67
|
+
}
|
|
68
|
+
/** A titled block of a record: its fields, or a kind of linked item. */
|
|
69
|
+
export declare function DetailSection({ title, count, shown, showingLabel, children, testId, }: DetailSectionProps): import("react").JSX.Element;
|
|
70
|
+
/** The fields of a record: labels beside their values (stacked on a narrow screen). */
|
|
71
|
+
export declare function DetailFields({ children, className }: {
|
|
72
|
+
children: ReactNode;
|
|
73
|
+
className?: string;
|
|
74
|
+
}): import("react").JSX.Element;
|
|
75
|
+
export interface DetailFieldProps {
|
|
76
|
+
label: ReactNode;
|
|
77
|
+
/** A glyph before the label (the field's type). */
|
|
78
|
+
icon?: ReactNode;
|
|
79
|
+
/** The value: read-only text or the field's editor. */
|
|
80
|
+
children: ReactNode;
|
|
81
|
+
testId?: string;
|
|
82
|
+
}
|
|
83
|
+
/** One field: its label and its value (or editor). */
|
|
84
|
+
export declare function DetailField({ label, icon, children, testId }: DetailFieldProps): import("react").JSX.Element;
|
|
85
|
+
/** Linked items (documents, facts, threads, rows), one per line. */
|
|
86
|
+
export declare function DetailLinkList({ children }: {
|
|
87
|
+
children: ReactNode;
|
|
88
|
+
}): import("react").JSX.Element;
|
|
89
|
+
export interface DetailLinkItemProps {
|
|
90
|
+
icon?: ReactNode;
|
|
91
|
+
/** The item: its name, and any quieter lines under it. */
|
|
92
|
+
children: ReactNode;
|
|
93
|
+
/** Right of the item, inside its button (a date, a count). */
|
|
94
|
+
trailing?: ReactNode;
|
|
95
|
+
/** Right of the item, outside its button (its own control: a popover, …). */
|
|
96
|
+
after?: ReactNode;
|
|
97
|
+
/** Open the item. Without it the line is inert. */
|
|
98
|
+
onClick?: () => void;
|
|
99
|
+
testId?: string;
|
|
100
|
+
}
|
|
101
|
+
/** One linked item: the whole line opens it. */
|
|
102
|
+
export declare function DetailLinkItem({ icon, children, trailing, after, onClick, testId, }: DetailLinkItemProps): import("react").JSX.Element;
|
|
103
|
+
/** Nothing of a kind is linked yet. */
|
|
104
|
+
export declare function DetailEmpty({ children }: {
|
|
105
|
+
children: ReactNode;
|
|
106
|
+
}): import("react").JSX.Element;
|
package/dist/connect/docx.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkEHB7J6SR_cjs = require('../chunk-EHB7J6SR.cjs');
|
|
5
5
|
require('../chunk-MUMH3Z6K.cjs');
|
|
6
|
-
var
|
|
7
|
-
require('../chunk-
|
|
6
|
+
var chunkGVOTXXZG_cjs = require('../chunk-GVOTXXZG.cjs');
|
|
7
|
+
require('../chunk-HGJGALLN.cjs');
|
|
8
8
|
require('../chunk-AOFATOT3.cjs');
|
|
9
9
|
require('../chunk-RC25WMVB.cjs');
|
|
10
10
|
require('../chunk-7UTB4PHM.cjs');
|
|
@@ -16,13 +16,13 @@ function ConnectedStreamedWordArtifact({
|
|
|
16
16
|
fontBaseUrl,
|
|
17
17
|
...props
|
|
18
18
|
}) {
|
|
19
|
-
const adapter =
|
|
20
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
19
|
+
const adapter = chunkEHB7J6SR_cjs.useConnectedNativeDocxAdapter(fontBaseUrl);
|
|
20
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkGVOTXXZG_cjs.StreamedWordArtifact, { ...props, adapter });
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
Object.defineProperty(exports, "ConnectedNativeDocxEditor", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkEHB7J6SR_cjs.ConnectedNativeDocxEditor; }
|
|
26
26
|
});
|
|
27
27
|
exports.ConnectedStreamedWordArtifact = ConnectedStreamedWordArtifact;
|
|
28
28
|
//# sourceMappingURL=docx.cjs.map
|
package/dist/connect/docx.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useConnectedNativeDocxAdapter } from '../chunk-
|
|
3
|
-
export { ConnectedNativeDocxEditor } from '../chunk-
|
|
2
|
+
import { useConnectedNativeDocxAdapter } from '../chunk-YH6SSJDW.js';
|
|
3
|
+
export { ConnectedNativeDocxEditor } from '../chunk-YH6SSJDW.js';
|
|
4
4
|
import '../chunk-OYMWV45N.js';
|
|
5
|
-
import { StreamedWordArtifact } from '../chunk-
|
|
6
|
-
import '../chunk-
|
|
5
|
+
import { StreamedWordArtifact } from '../chunk-RSUOOMPT.js';
|
|
6
|
+
import '../chunk-QIEEFBZ5.js';
|
|
7
7
|
import '../chunk-D3QPYKZG.js';
|
|
8
8
|
import '../chunk-AF6RDAJF.js';
|
|
9
9
|
import '../chunk-AA3PT6KR.js';
|
package/dist/connect/index.cjs
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var chunkGNHOB2ZB_cjs = require('../chunk-GNHOB2ZB.cjs');
|
|
5
4
|
var chunk5YXG342J_cjs = require('../chunk-5YXG342J.cjs');
|
|
5
|
+
var chunkXMBYDLZQ_cjs = require('../chunk-XMBYDLZQ.cjs');
|
|
6
|
+
var chunkEHB7J6SR_cjs = require('../chunk-EHB7J6SR.cjs');
|
|
7
|
+
var chunkMUMH3Z6K_cjs = require('../chunk-MUMH3Z6K.cjs');
|
|
6
8
|
var chunkJH6JTI76_cjs = require('../chunk-JH6JTI76.cjs');
|
|
9
|
+
require('../chunk-HGJGALLN.cjs');
|
|
7
10
|
var chunkO4YPVYPO_cjs = require('../chunk-O4YPVYPO.cjs');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
require('../chunk-
|
|
11
|
-
var
|
|
11
|
+
var chunkLENXDIMY_cjs = require('../chunk-LENXDIMY.cjs');
|
|
12
|
+
var chunkAOFATOT3_cjs = require('../chunk-AOFATOT3.cjs');
|
|
13
|
+
require('../chunk-RC25WMVB.cjs');
|
|
14
|
+
var chunk3US5OIDQ_cjs = require('../chunk-3US5OIDQ.cjs');
|
|
12
15
|
var chunkN26CXGXC_cjs = require('../chunk-N26CXGXC.cjs');
|
|
13
|
-
require('../chunk-KBPHLW2R.cjs');
|
|
14
16
|
var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
|
|
15
|
-
require('../chunk-7D737FLE.cjs');
|
|
16
17
|
require('../chunk-DETZZBG2.cjs');
|
|
17
18
|
require('../chunk-32HW2Q33.cjs');
|
|
18
19
|
var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
|
|
19
|
-
require('../chunk-
|
|
20
|
-
require('../chunk-ADOKTJHV.cjs');
|
|
20
|
+
require('../chunk-7D737FLE.cjs');
|
|
21
21
|
var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
|
|
22
|
+
require('../chunk-ADOKTJHV.cjs');
|
|
23
|
+
var chunkMP6FK43E_cjs = require('../chunk-MP6FK43E.cjs');
|
|
24
|
+
require('../chunk-VGOFFCMT.cjs');
|
|
25
|
+
require('../chunk-B4SRYJLM.cjs');
|
|
26
|
+
require('../chunk-7UTB4PHM.cjs');
|
|
27
|
+
require('../chunk-PPCATBOY.cjs');
|
|
22
28
|
var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
|
|
23
29
|
var chunk3R6XBYL7_cjs = require('../chunk-3R6XBYL7.cjs');
|
|
24
30
|
var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
|
|
25
31
|
require('../chunk-IXALYQT7.cjs');
|
|
26
32
|
require('../chunk-FX3K6LNZ.cjs');
|
|
27
|
-
var chunkRZGVMV6B_cjs = require('../chunk-RZGVMV6B.cjs');
|
|
28
|
-
var chunkMUMH3Z6K_cjs = require('../chunk-MUMH3Z6K.cjs');
|
|
29
|
-
require('../chunk-E2AAIMXO.cjs');
|
|
30
|
-
var chunkAOFATOT3_cjs = require('../chunk-AOFATOT3.cjs');
|
|
31
|
-
require('../chunk-RC25WMVB.cjs');
|
|
32
|
-
require('../chunk-7UTB4PHM.cjs');
|
|
33
33
|
require('../chunk-MHVNT4J3.cjs');
|
|
34
34
|
require('../chunk-DES3K4SD.cjs');
|
|
35
35
|
var react = require('react');
|
|
@@ -119,7 +119,7 @@ function ConnectedWorkspaceActivity({
|
|
|
119
119
|
[feed.data]
|
|
120
120
|
);
|
|
121
121
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
122
|
-
|
|
122
|
+
chunkLENXDIMY_cjs.WorkspaceActivityList,
|
|
123
123
|
{
|
|
124
124
|
...listProps,
|
|
125
125
|
items,
|
|
@@ -145,7 +145,7 @@ function ConnectedWorkspaceNotificationMenu({
|
|
|
145
145
|
});
|
|
146
146
|
if (!workspaceId) return null;
|
|
147
147
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
148
|
-
|
|
148
|
+
chunkLENXDIMY_cjs.WorkspaceNotificationMenu,
|
|
149
149
|
{
|
|
150
150
|
...menuProps,
|
|
151
151
|
level,
|
|
@@ -164,7 +164,7 @@ function ConnectedThreadFollow({
|
|
|
164
164
|
enabled: status === "authenticated"
|
|
165
165
|
});
|
|
166
166
|
if (!conversationId) return null;
|
|
167
|
-
const Control = as === "menu-item" ?
|
|
167
|
+
const Control = as === "menu-item" ? chunkLENXDIMY_cjs.ThreadFollowMenuItem : chunkLENXDIMY_cjs.ThreadFollowButton;
|
|
168
168
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
169
169
|
Control,
|
|
170
170
|
{
|
|
@@ -290,7 +290,7 @@ function StreamedArtifact({
|
|
|
290
290
|
}
|
|
291
291
|
var STARTING = /* @__PURE__ */ new Set(["pending", "running"]);
|
|
292
292
|
function formValues(step, inputs) {
|
|
293
|
-
const fields =
|
|
293
|
+
const fields = chunk3US5OIDQ_cjs.stepFields(step);
|
|
294
294
|
if (!fields.length) return void 0;
|
|
295
295
|
if (step.kind === "form")
|
|
296
296
|
return Object.fromEntries(fields.map((f) => [f.name, inputs[f.name] ?? ""]));
|
|
@@ -325,10 +325,10 @@ function useAnswerRetry(missing, refetch) {
|
|
|
325
325
|
function useWorkflowThread(workflow, options = {}) {
|
|
326
326
|
const arbi = react$1.useArbi();
|
|
327
327
|
const { ensureWorkspaceOpen, status } = chunkMUMH3Z6K_cjs.useConnection();
|
|
328
|
-
const { wsId } =
|
|
328
|
+
const { wsId } = chunkXMBYDLZQ_cjs.useWorkspaceDocs();
|
|
329
329
|
const [threadId, setThreadId] = react.useState(options.conversationId);
|
|
330
330
|
const [localInputs, setLocalInputs] = react.useState(
|
|
331
|
-
() =>
|
|
331
|
+
() => chunk3US5OIDQ_cjs.initialRunInputs(workflow, options.initialInputs)
|
|
332
332
|
);
|
|
333
333
|
const [edits, setEdits] = react.useState({});
|
|
334
334
|
const [localStates, setLocalStates] = react.useState({});
|
|
@@ -348,12 +348,12 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
348
348
|
);
|
|
349
349
|
const conversation = conversations.data?.find((c) => c.external_id === threadId);
|
|
350
350
|
const steps = react.useMemo(
|
|
351
|
-
() =>
|
|
351
|
+
() => chunk3US5OIDQ_cjs.workflowSteps(workflow).length > 0 ? chunk3US5OIDQ_cjs.workflowSteps(workflow) : chunk3US5OIDQ_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
|
|
352
352
|
[workflow, conversation?.plan?.steps]
|
|
353
353
|
);
|
|
354
354
|
const activity = react$1.useConversationActivity(threadId, { live: !!threadId });
|
|
355
355
|
const serverStates = react.useMemo(
|
|
356
|
-
() =>
|
|
356
|
+
() => chunk3US5OIDQ_cjs.stepStatesFromActivity(activity.data ?? []),
|
|
357
357
|
[activity.data]
|
|
358
358
|
);
|
|
359
359
|
const working = steps.some(
|
|
@@ -396,7 +396,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
396
396
|
async (values, done) => {
|
|
397
397
|
await ensureWorkspaceOpen();
|
|
398
398
|
const created = await createWork.mutateAsync({
|
|
399
|
-
title:
|
|
399
|
+
title: chunk3US5OIDQ_cjs.runThreadTitle(workflow, values).slice(0, 60),
|
|
400
400
|
description: workflow.description || null,
|
|
401
401
|
prompt: null,
|
|
402
402
|
skill_ref: null,
|
|
@@ -408,7 +408,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
408
408
|
criteria: [],
|
|
409
409
|
max_passes: 3,
|
|
410
410
|
documents: [],
|
|
411
|
-
steps:
|
|
411
|
+
steps: chunk3US5OIDQ_cjs.toPlanSteps(workflow, {
|
|
412
412
|
inputs: values,
|
|
413
413
|
resolveWorkflow: options.resolveWorkflow,
|
|
414
414
|
compose: options.compose
|
|
@@ -495,7 +495,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
495
495
|
const anyRunning = Object.values(states).some((s) => s.status === "running");
|
|
496
496
|
const needsStart = !threadId || idle && !anyRunning;
|
|
497
497
|
const runError = idle ? conversation?.last_error ?? null : null;
|
|
498
|
-
const view =
|
|
498
|
+
const view = chunk3US5OIDQ_cjs.useWorkflowView({
|
|
499
499
|
steps,
|
|
500
500
|
states,
|
|
501
501
|
inputs,
|
|
@@ -538,7 +538,7 @@ function WorkflowRunThread({
|
|
|
538
538
|
if (listed && activeThreadId !== conversationId) selectThread(conversationId);
|
|
539
539
|
}, [listed, activeThreadId, conversationId, selectThread]);
|
|
540
540
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
541
|
-
|
|
541
|
+
chunkMP6FK43E_cjs.ChatPage,
|
|
542
542
|
{
|
|
543
543
|
chat: { ...chat, threads: chat.threads.filter((t) => t.id === conversationId) },
|
|
544
544
|
singleThread: true,
|
|
@@ -576,7 +576,7 @@ function WorkflowSignDialog({
|
|
|
576
576
|
const arbi = react$1.useArbi();
|
|
577
577
|
const { user, ensureWorkspaceOpen } = chunkMUMH3Z6K_cjs.useConnection();
|
|
578
578
|
const tools = documentTools.useOptionalDocumentTools();
|
|
579
|
-
const { id, version: stepVersion } =
|
|
579
|
+
const { id, version: stepVersion } = chunk3US5OIDQ_cjs.splitDocRef(docRef);
|
|
580
580
|
const [version, setVersion] = react.useState(stepVersion);
|
|
581
581
|
const [pdf, setPdf] = react.useState(null);
|
|
582
582
|
const [preparing, setPreparing] = react.useState(false);
|
|
@@ -654,7 +654,7 @@ function WorkflowWordDialog({
|
|
|
654
654
|
onClose,
|
|
655
655
|
labels
|
|
656
656
|
}) {
|
|
657
|
-
const { id } =
|
|
657
|
+
const { id } = chunk3US5OIDQ_cjs.splitDocRef(docRef);
|
|
658
658
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
659
659
|
chunkULWRNGGE_cjs.ModalScaffold,
|
|
660
660
|
{
|
|
@@ -663,7 +663,7 @@ function WorkflowWordDialog({
|
|
|
663
663
|
title: title ?? labels.wordTitle,
|
|
664
664
|
size: "xl",
|
|
665
665
|
testId: "workflow-word-dialog",
|
|
666
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
666
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkEHB7J6SR_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
|
|
667
667
|
}
|
|
668
668
|
);
|
|
669
669
|
}
|
|
@@ -803,7 +803,7 @@ function ConnectedWorkflowRunner({
|
|
|
803
803
|
const dl = { ...DEFAULT_WORKFLOW_RUNNER_DIALOG_LABELS, ...dialogLabels };
|
|
804
804
|
const arbi = react$1.useArbi();
|
|
805
805
|
const { ensureWorkspaceOpen, user } = chunkMUMH3Z6K_cjs.useConnection();
|
|
806
|
-
const { wsId } =
|
|
806
|
+
const { wsId } = chunkXMBYDLZQ_cjs.useWorkspaceDocs();
|
|
807
807
|
const { data: docs = [], refetch } = react$1.useDocuments(wsId);
|
|
808
808
|
const [sending, setSending] = react.useState([]);
|
|
809
809
|
const [added, setAdded] = react.useState({});
|
|
@@ -826,7 +826,7 @@ function ConnectedWorkflowRunner({
|
|
|
826
826
|
() => ({
|
|
827
827
|
me: user?.externalId,
|
|
828
828
|
openDocument: onOpenDocument && ((ref) => {
|
|
829
|
-
const { id, version } =
|
|
829
|
+
const { id, version } = chunk3US5OIDQ_cjs.splitDocRef(ref);
|
|
830
830
|
onOpenDocument(id, version);
|
|
831
831
|
}),
|
|
832
832
|
openDraft: onOpenDraft && ((draftId) => onOpenDraft(draftId)),
|
|
@@ -836,7 +836,7 @@ function ConnectedWorkflowRunner({
|
|
|
836
836
|
const w = state.waiting;
|
|
837
837
|
if (w?.doc_ext_id) setDialog({ kind: "sign", docRef: w.doc_ext_id });
|
|
838
838
|
}),
|
|
839
|
-
openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(
|
|
839
|
+
openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(chunk3US5OIDQ_cjs.splitDocRef(ref).id) ?? "" })),
|
|
840
840
|
openReview: hostActions?.openReview ?? ((tags, documents) => setDialog({ kind: "review", tags, documents }))
|
|
841
841
|
}),
|
|
842
842
|
[user?.externalId, onOpenDocument, onOpenDraft, onOpenMessage, hostActions, nameOfDoc, inThread]
|
|
@@ -972,7 +972,7 @@ function ConnectedWorkflowRunner({
|
|
|
972
972
|
);
|
|
973
973
|
};
|
|
974
974
|
const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
975
|
-
|
|
975
|
+
chunk3US5OIDQ_cjs.WorkflowRunner,
|
|
976
976
|
{
|
|
977
977
|
people,
|
|
978
978
|
...runnerProps,
|
|
@@ -1018,10 +1018,10 @@ function ConnectedWorkflowRunner({
|
|
|
1018
1018
|
) }),
|
|
1019
1019
|
inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1020
1020
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1021
|
-
|
|
1021
|
+
chunk3US5OIDQ_cjs.WorkflowStepBar,
|
|
1022
1022
|
{
|
|
1023
1023
|
run: view,
|
|
1024
|
-
levels:
|
|
1024
|
+
levels: chunk3US5OIDQ_cjs.stepLevels(view.steps),
|
|
1025
1025
|
doneTitle: (workflow.run.kind === "steps" ? workflow.run.completion?.title : void 0) ?? runnerProps.labels?.complete ?? "Done",
|
|
1026
1026
|
icon: (key) => key && runnerProps.renderIcon ? runnerProps.renderIcon(key) : void 0,
|
|
1027
1027
|
tid: (suffix) => `${testIdPrefix}-${suffix}`
|
|
@@ -1202,7 +1202,7 @@ function ConnectedTagTable({
|
|
|
1202
1202
|
const fail = (e) => setError(e instanceof Error ? e.message : String(e));
|
|
1203
1203
|
const snapshot = (data) => {
|
|
1204
1204
|
const title = exportTitle ?? KIND_TITLES[kind];
|
|
1205
|
-
const bytes =
|
|
1205
|
+
const bytes = chunkLENXDIMY_cjs.tagTableDocx(data, {
|
|
1206
1206
|
title,
|
|
1207
1207
|
nameOf: (id) => people.find((p) => p.value === id)?.label
|
|
1208
1208
|
});
|
|
@@ -1212,7 +1212,7 @@ function ConnectedTagTable({
|
|
|
1212
1212
|
};
|
|
1213
1213
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
1214
1214
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1215
|
-
|
|
1215
|
+
chunkLENXDIMY_cjs.TagTable,
|
|
1216
1216
|
{
|
|
1217
1217
|
...props,
|
|
1218
1218
|
table,
|
|
@@ -3322,7 +3322,7 @@ function ConnectedMailbox({
|
|
|
3322
3322
|
function ActiveChat({ agentId, workspaceId }) {
|
|
3323
3323
|
const chat = react$1.useArbiChat({ agentId, workspaceId });
|
|
3324
3324
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
3325
|
-
|
|
3325
|
+
chunkMP6FK43E_cjs.ChatPage,
|
|
3326
3326
|
{
|
|
3327
3327
|
chat: { ...chat, assistantMode: void 0, setAssistantMode: void 0 },
|
|
3328
3328
|
documentsRequired: false,
|
|
@@ -3384,35 +3384,35 @@ function ConnectedAgentChatPanel({
|
|
|
3384
3384
|
|
|
3385
3385
|
Object.defineProperty(exports, "ConnectedAssistantDock", {
|
|
3386
3386
|
enumerable: true,
|
|
3387
|
-
get: function () { return
|
|
3387
|
+
get: function () { return chunkXMBYDLZQ_cjs.ConnectedAssistantDock; }
|
|
3388
3388
|
});
|
|
3389
3389
|
Object.defineProperty(exports, "redlineStats", {
|
|
3390
3390
|
enumerable: true,
|
|
3391
|
-
get: function () { return
|
|
3391
|
+
get: function () { return chunkXMBYDLZQ_cjs.redlineStats; }
|
|
3392
3392
|
});
|
|
3393
3393
|
Object.defineProperty(exports, "textToArtifact", {
|
|
3394
3394
|
enumerable: true,
|
|
3395
|
-
get: function () { return
|
|
3395
|
+
get: function () { return chunkXMBYDLZQ_cjs.textToArtifact; }
|
|
3396
3396
|
});
|
|
3397
3397
|
Object.defineProperty(exports, "toRedlineMarkdown", {
|
|
3398
3398
|
enumerable: true,
|
|
3399
|
-
get: function () { return
|
|
3399
|
+
get: function () { return chunkXMBYDLZQ_cjs.toRedlineMarkdown; }
|
|
3400
3400
|
});
|
|
3401
3401
|
Object.defineProperty(exports, "useConnectedAiTask", {
|
|
3402
3402
|
enumerable: true,
|
|
3403
|
-
get: function () { return
|
|
3403
|
+
get: function () { return chunkXMBYDLZQ_cjs.useConnectedAiTask; }
|
|
3404
3404
|
});
|
|
3405
3405
|
Object.defineProperty(exports, "useConnectedChat", {
|
|
3406
3406
|
enumerable: true,
|
|
3407
|
-
get: function () { return
|
|
3407
|
+
get: function () { return chunkXMBYDLZQ_cjs.useConnectedChat; }
|
|
3408
3408
|
});
|
|
3409
3409
|
Object.defineProperty(exports, "useSemanticSearch", {
|
|
3410
3410
|
enumerable: true,
|
|
3411
|
-
get: function () { return
|
|
3411
|
+
get: function () { return chunkXMBYDLZQ_cjs.useSemanticSearch; }
|
|
3412
3412
|
});
|
|
3413
3413
|
Object.defineProperty(exports, "useWorkspaceDocs", {
|
|
3414
3414
|
enumerable: true,
|
|
3415
|
-
get: function () { return
|
|
3415
|
+
get: function () { return chunkXMBYDLZQ_cjs.useWorkspaceDocs; }
|
|
3416
3416
|
});
|
|
3417
3417
|
Object.defineProperty(exports, "ConnectionProvider", {
|
|
3418
3418
|
enumerable: true,
|