@arbidocs/blocks 0.5.62 → 0.5.63
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 +7 -0
- package/dist/{ConnectedCallDock-CRECGH7K.js → ConnectedCallDock-DEAEFUUD.js} +5 -5
- package/dist/{ConnectedCallDock-CRECGH7K.js.map → ConnectedCallDock-DEAEFUUD.js.map} +1 -1
- package/dist/{ConnectedCallDock-RGDNX76B.cjs → ConnectedCallDock-GJAGY75U.cjs} +14 -14
- package/dist/{ConnectedCallDock-RGDNX76B.cjs.map → ConnectedCallDock-GJAGY75U.cjs.map} +1 -1
- package/dist/{ConnectedCallRoom-Z2M6QRJJ.js → ConnectedCallRoom-DI7UYRHE.js} +5 -5
- package/dist/{ConnectedCallRoom-Z2M6QRJJ.js.map → ConnectedCallRoom-DI7UYRHE.js.map} +1 -1
- package/dist/{ConnectedCallRoom-LM7UNH34.cjs → ConnectedCallRoom-KLE2PCMQ.cjs} +6 -6
- package/dist/{ConnectedCallRoom-LM7UNH34.cjs.map → ConnectedCallRoom-KLE2PCMQ.cjs.map} +1 -1
- package/dist/{ConnectedDocumentViewer-ELA7R4RJ.js → ConnectedDocumentViewer-7VKAM6KD.js} +8 -8
- package/dist/{ConnectedDocumentViewer-ELA7R4RJ.js.map → ConnectedDocumentViewer-7VKAM6KD.js.map} +1 -1
- package/dist/{ConnectedDocumentViewer-6SFJWKXN.cjs → ConnectedDocumentViewer-FGQ27H4B.cjs} +9 -9
- package/dist/{ConnectedDocumentViewer-6SFJWKXN.cjs.map → ConnectedDocumentViewer-FGQ27H4B.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-3MCCETF5.js → ConnectedNativeDocxComparison-FPW3BNBN.js} +8 -8
- package/dist/ConnectedNativeDocxComparison-FPW3BNBN.js.map +1 -0
- package/dist/{ConnectedNativeDocxComparison-XZIRCESL.cjs → ConnectedNativeDocxComparison-HJ4FTVH6.cjs} +9 -9
- package/dist/ConnectedNativeDocxComparison-HJ4FTVH6.cjs.map +1 -0
- package/dist/{ConnectedNativeDocxEditor-YE6KA53Q.cjs → ConnectedNativeDocxEditor-PF46MU5H.cjs} +9 -9
- package/dist/ConnectedNativeDocxEditor-PF46MU5H.cjs.map +1 -0
- package/dist/{ConnectedNativeDocxEditor-FGW35PIL.js → ConnectedNativeDocxEditor-S7NJMDSU.js} +7 -7
- package/dist/ConnectedNativeDocxEditor-S7NJMDSU.js.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-N6YRKWDH.js → ConnectedStreamedWordArtifact-5MHLV24V.js} +8 -8
- package/dist/ConnectedStreamedWordArtifact-5MHLV24V.js.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-ROPYU3LE.cjs → ConnectedStreamedWordArtifact-LNGW7YGV.cjs} +9 -9
- package/dist/ConnectedStreamedWordArtifact-LNGW7YGV.cjs.map +1 -0
- package/dist/{DocumentReviewCard-SYBCU7NL.js → DocumentReviewCard-5U3TGJZA.js} +7 -7
- package/dist/{DocumentReviewCard-SYBCU7NL.js.map → DocumentReviewCard-5U3TGJZA.js.map} +1 -1
- package/dist/{DocumentReviewCard-YOZMWE33.cjs → DocumentReviewCard-VFNMJSK7.cjs} +7 -7
- package/dist/{DocumentReviewCard-YOZMWE33.cjs.map → DocumentReviewCard-VFNMJSK7.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-4DGONK5A.cjs → WorkspaceTableView-DHMCJRC6.cjs} +7 -7
- package/dist/{WorkspaceTableView-4DGONK5A.cjs.map → WorkspaceTableView-DHMCJRC6.cjs.map} +1 -1
- package/dist/{WorkspaceTableView-ZCUYOMSL.js → WorkspaceTableView-EH5CEB44.js} +5 -5
- package/dist/{WorkspaceTableView-ZCUYOMSL.js.map → WorkspaceTableView-EH5CEB44.js.map} +1 -1
- package/dist/agents/index.cjs +283 -283
- package/dist/agents/index.js +5 -5
- package/dist/agents/tasks/WorkflowsTable.d.ts +2 -1
- package/dist/calls/index.cjs +132 -132
- package/dist/calls/index.js +8 -8
- package/dist/{chunk-57FBBWU2.cjs → chunk-23ACBETH.cjs} +4 -4
- package/dist/{chunk-57FBBWU2.cjs.map → chunk-23ACBETH.cjs.map} +1 -1
- package/dist/{chunk-D34YIJGE.js → chunk-2SLDVFOZ.js} +4 -4
- package/dist/{chunk-D34YIJGE.js.map → chunk-2SLDVFOZ.js.map} +1 -1
- package/dist/{chunk-6SWK5QCT.cjs → chunk-33PWCTND.cjs} +21 -21
- package/dist/{chunk-6SWK5QCT.cjs.map → chunk-33PWCTND.cjs.map} +1 -1
- package/dist/{chunk-LZROSRGK.cjs → chunk-3X37I6QE.cjs} +10 -10
- package/dist/{chunk-LZROSRGK.cjs.map → chunk-3X37I6QE.cjs.map} +1 -1
- package/dist/{chunk-3VCVMW5X.cjs → chunk-4RJPTXUQ.cjs} +5 -5
- package/dist/{chunk-3VCVMW5X.cjs.map → chunk-4RJPTXUQ.cjs.map} +1 -1
- package/dist/{chunk-GWTKLPBJ.js → chunk-5CWBAINB.js} +3 -3
- package/dist/{chunk-GWTKLPBJ.js.map → chunk-5CWBAINB.js.map} +1 -1
- package/dist/{chunk-X5GO56JN.js → chunk-64DMXUYS.js} +3 -3
- package/dist/{chunk-X5GO56JN.js.map → chunk-64DMXUYS.js.map} +1 -1
- package/dist/{chunk-PBIFISDD.js → chunk-7P24MJQN.js} +3 -3
- package/dist/{chunk-PBIFISDD.js.map → chunk-7P24MJQN.js.map} +1 -1
- package/dist/{chunk-CLOYC6QG.cjs → chunk-7YHGLYRJ.cjs} +67 -67
- package/dist/{chunk-CLOYC6QG.cjs.map → chunk-7YHGLYRJ.cjs.map} +1 -1
- package/dist/{chunk-2CH22I7M.js → chunk-AMP7KX7F.js} +3 -3
- package/dist/{chunk-2CH22I7M.js.map → chunk-AMP7KX7F.js.map} +1 -1
- package/dist/{chunk-UQAHDGYH.cjs → chunk-CCSF7RI4.cjs} +5 -5
- package/dist/{chunk-UQAHDGYH.cjs.map → chunk-CCSF7RI4.cjs.map} +1 -1
- package/dist/{chunk-QK546T4C.cjs → chunk-CKNUL4LM.cjs} +3 -3
- package/dist/{chunk-QK546T4C.cjs.map → chunk-CKNUL4LM.cjs.map} +1 -1
- package/dist/{chunk-6USEJFPC.cjs → chunk-COZDIUG7.cjs} +24 -24
- package/dist/chunk-COZDIUG7.cjs.map +1 -0
- package/dist/{chunk-SLX2YIUA.cjs → chunk-EOIJ5JYP.cjs} +4 -4
- package/dist/{chunk-SLX2YIUA.cjs.map → chunk-EOIJ5JYP.cjs.map} +1 -1
- package/dist/{chunk-LMKEDVEB.cjs → chunk-F73EZQT4.cjs} +4 -4
- package/dist/{chunk-LMKEDVEB.cjs.map → chunk-F73EZQT4.cjs.map} +1 -1
- package/dist/{chunk-J55WDXIR.js → chunk-G4OZQFES.js} +3 -3
- package/dist/{chunk-J55WDXIR.js.map → chunk-G4OZQFES.js.map} +1 -1
- package/dist/{chunk-JHLIVEJI.js → chunk-GRDLCRNL.js} +5 -5
- package/dist/{chunk-JHLIVEJI.js.map → chunk-GRDLCRNL.js.map} +1 -1
- package/dist/{chunk-XPB6KMPY.cjs → chunk-HVOPUYAG.cjs} +19 -19
- package/dist/{chunk-XPB6KMPY.cjs.map → chunk-HVOPUYAG.cjs.map} +1 -1
- package/dist/{chunk-TL7SHXBN.js → chunk-IC6SBDYA.js} +3 -3
- package/dist/{chunk-TL7SHXBN.js.map → chunk-IC6SBDYA.js.map} +1 -1
- package/dist/{chunk-QTZ25F5G.js → chunk-IFLFLP4K.js} +5 -5
- package/dist/{chunk-QTZ25F5G.js.map → chunk-IFLFLP4K.js.map} +1 -1
- package/dist/{chunk-C3SLFANS.js → chunk-ITS3USZ3.js} +5 -5
- package/dist/{chunk-C3SLFANS.js.map → chunk-ITS3USZ3.js.map} +1 -1
- package/dist/{chunk-SEH4ZDN5.js → chunk-IUFS3AYQ.js} +7 -7
- package/dist/{chunk-SEH4ZDN5.js.map → chunk-IUFS3AYQ.js.map} +1 -1
- package/dist/{chunk-3IRJ4MTF.cjs → chunk-J25NN3XJ.cjs} +14 -14
- package/dist/{chunk-3IRJ4MTF.cjs.map → chunk-J25NN3XJ.cjs.map} +1 -1
- package/dist/{chunk-TX4CIWH5.cjs → chunk-JBL4PPEE.cjs} +6 -6
- package/dist/{chunk-TX4CIWH5.cjs.map → chunk-JBL4PPEE.cjs.map} +1 -1
- package/dist/{chunk-QUSDMOSF.js → chunk-JWRTUYLC.js} +3 -3
- package/dist/{chunk-QUSDMOSF.js.map → chunk-JWRTUYLC.js.map} +1 -1
- package/dist/{chunk-XGJU2Y5N.cjs → chunk-LBKTTQUR.cjs} +7 -7
- package/dist/{chunk-XGJU2Y5N.cjs.map → chunk-LBKTTQUR.cjs.map} +1 -1
- package/dist/{chunk-SMM32PL6.cjs → chunk-M42XWNS6.cjs} +4 -4
- package/dist/{chunk-SMM32PL6.cjs.map → chunk-M42XWNS6.cjs.map} +1 -1
- package/dist/{chunk-F3VIBHH2.cjs → chunk-MAKTAR7H.cjs} +18 -18
- package/dist/{chunk-F3VIBHH2.cjs.map → chunk-MAKTAR7H.cjs.map} +1 -1
- package/dist/{chunk-2TOM5FT5.js → chunk-NDVLCOWS.js} +12 -12
- package/dist/chunk-NDVLCOWS.js.map +1 -0
- package/dist/{chunk-UJI52BUA.js → chunk-OI4DL2DX.js} +3 -3
- package/dist/{chunk-UJI52BUA.js.map → chunk-OI4DL2DX.js.map} +1 -1
- package/dist/{chunk-7BH55CGS.js → chunk-OZL5ABLF.js} +4 -4
- package/dist/{chunk-7BH55CGS.js.map → chunk-OZL5ABLF.js.map} +1 -1
- package/dist/{chunk-7S3CTSF7.js → chunk-PKDPQS6Z.js} +3 -3
- package/dist/{chunk-7S3CTSF7.js.map → chunk-PKDPQS6Z.js.map} +1 -1
- package/dist/{chunk-LIOT6WLN.js → chunk-PVPGD6QR.js} +3 -3
- package/dist/{chunk-LIOT6WLN.js.map → chunk-PVPGD6QR.js.map} +1 -1
- package/dist/{chunk-HISU5HLW.js → chunk-QUZPQWPX.js} +3 -3
- package/dist/{chunk-HISU5HLW.js.map → chunk-QUZPQWPX.js.map} +1 -1
- package/dist/{chunk-RCBGX4IC.cjs → chunk-RGPKW6KQ.cjs} +4 -4
- package/dist/{chunk-RCBGX4IC.cjs.map → chunk-RGPKW6KQ.cjs.map} +1 -1
- package/dist/{chunk-VFBQBWZI.js → chunk-TAI23FCY.js} +46 -43
- package/dist/chunk-TAI23FCY.js.map +1 -0
- package/dist/{chunk-ONML6J5O.cjs → chunk-UDMII47W.cjs} +8 -8
- package/dist/{chunk-ONML6J5O.cjs.map → chunk-UDMII47W.cjs.map} +1 -1
- package/dist/{chunk-ABEKUV6L.js → chunk-VDXKB4WK.js} +82 -77
- package/dist/chunk-VDXKB4WK.js.map +1 -0
- package/dist/{chunk-MEMWZ72Y.cjs → chunk-WVEFRQSW.cjs} +81 -76
- package/dist/chunk-WVEFRQSW.cjs.map +1 -0
- package/dist/{chunk-PJW2IOPZ.cjs → chunk-X3JJTHQ4.cjs} +51 -51
- package/dist/{chunk-PJW2IOPZ.cjs.map → chunk-X3JJTHQ4.cjs.map} +1 -1
- package/dist/{chunk-4OJGFYB5.cjs → chunk-Y6ZNWC7E.cjs} +47 -44
- package/dist/chunk-Y6ZNWC7E.cjs.map +1 -0
- package/dist/{chunk-B63TSC3W.js → chunk-ZZTH27G7.js} +3 -3
- package/dist/{chunk-B63TSC3W.js.map → chunk-ZZTH27G7.js.map} +1 -1
- package/dist/connect/docx.cjs +13 -13
- package/dist/connect/docx.js +9 -9
- package/dist/connect/index.cjs +694 -694
- package/dist/connect/index.js +36 -36
- package/dist/connect/viewer.cjs +7 -7
- package/dist/connect/viewer.js +6 -6
- package/dist/connection/workflows/ConnectedWorkflowsPage.d.ts +7 -1
- package/dist/dashboards/index.cjs +1 -1
- package/dist/dashboards/index.js +1 -1
- package/dist/document-tools/index.cjs +17 -17
- package/dist/document-tools/index.js +2 -2
- package/dist/embed/index.cjs +13 -13
- package/dist/embed/index.js +10 -10
- package/dist/facts/index.cjs +40 -40
- package/dist/facts/index.js +4 -4
- package/dist/files/index.cjs +1 -1
- package/dist/files/index.js +1 -1
- package/dist/index.cjs +434 -434
- package/dist/index.js +13 -13
- package/dist/settings/index.cjs +156 -156
- package/dist/settings/index.js +2 -2
- package/dist/shell/TabHeader.d.ts +6 -1
- package/dist/shell/index.cjs +3 -3
- package/dist/shell/index.js +1 -1
- package/dist/site/index.cjs +22 -22
- package/dist/site/index.js +2 -2
- package/dist/studio/index.cjs +3 -3
- package/dist/studio/index.js +3 -3
- package/dist/workflow-canvas/index.cjs +64 -40
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.js +49 -25
- package/dist/workflow-canvas/index.js.map +1 -1
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedNativeDocxComparison-3MCCETF5.js.map +0 -1
- package/dist/ConnectedNativeDocxComparison-XZIRCESL.cjs.map +0 -1
- package/dist/ConnectedNativeDocxEditor-FGW35PIL.js.map +0 -1
- package/dist/ConnectedNativeDocxEditor-YE6KA53Q.cjs.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-N6YRKWDH.js.map +0 -1
- package/dist/ConnectedStreamedWordArtifact-ROPYU3LE.cjs.map +0 -1
- package/dist/chunk-2TOM5FT5.js.map +0 -1
- package/dist/chunk-4OJGFYB5.cjs.map +0 -1
- package/dist/chunk-6USEJFPC.cjs.map +0 -1
- package/dist/chunk-ABEKUV6L.js.map +0 -1
- package/dist/chunk-MEMWZ72Y.cjs.map +0 -1
- package/dist/chunk-VFBQBWZI.js.map +0 -1
|
@@ -173,6 +173,7 @@ function TabHeader({
|
|
|
173
173
|
centerContent,
|
|
174
174
|
absoluteCenterContent,
|
|
175
175
|
rightContent,
|
|
176
|
+
belowContent,
|
|
176
177
|
className,
|
|
177
178
|
compactBreakpoint = 640,
|
|
178
179
|
labels,
|
|
@@ -210,98 +211,102 @@ function TabHeader({
|
|
|
210
211
|
const active = scroller?.querySelector('[data-slot="tab"][data-state="active"]');
|
|
211
212
|
if (scroller && active) scrollRowToShow(scroller, active);
|
|
212
213
|
}, [activeTabId]);
|
|
213
|
-
|
|
214
|
+
const below = typeof belowContent === "function" ? belowContent(isCompact) : belowContent;
|
|
215
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
214
216
|
"div",
|
|
215
217
|
{
|
|
216
218
|
ref: containerRef,
|
|
217
219
|
className: ui.cn("w-full bg-background pt-1 pr-3 pb-2", className),
|
|
218
220
|
"data-slot": "tab-header",
|
|
219
221
|
"data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "tab-header" }),
|
|
220
|
-
children:
|
|
221
|
-
/* @__PURE__ */ jsxRuntime.
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
222
|
+
children: [
|
|
223
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative bg-background", children: [
|
|
224
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
225
|
+
"span",
|
|
226
|
+
{
|
|
227
|
+
"aria-hidden": true,
|
|
228
|
+
className: "pointer-events-none absolute inset-x-0 bottom-0 h-px bg-border"
|
|
229
|
+
}
|
|
230
|
+
),
|
|
231
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex min-h-[40px] items-end justify-between gap-4", children: [
|
|
232
|
+
leading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-1.5 left-1.5 z-10 flex items-center", children: leading }),
|
|
233
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex min-w-0 flex-shrink items-end", children: [
|
|
234
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
235
|
+
"div",
|
|
236
|
+
{
|
|
237
|
+
ref: scrollerRef,
|
|
238
|
+
"data-slot": "tab-scroller",
|
|
239
|
+
className: ui.cn(
|
|
240
|
+
"flex min-w-0 items-end overflow-x-auto overflow-y-hidden pt-1",
|
|
241
|
+
leading ? "pl-8" : "pl-3"
|
|
242
|
+
),
|
|
243
|
+
children: leftContent || /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-1", children: [
|
|
244
|
+
tabs.map((tab, index) => {
|
|
245
|
+
const tabButton = /* @__PURE__ */ jsxRuntime.jsx(
|
|
246
|
+
TabButton,
|
|
247
|
+
{
|
|
248
|
+
tab,
|
|
249
|
+
isActive: activeTabId === tab.id,
|
|
250
|
+
isChip: isChipRow,
|
|
251
|
+
isCompact: isCompact && tabs.length > 1,
|
|
252
|
+
onTabChange,
|
|
253
|
+
labels: mergedLabels,
|
|
254
|
+
testIds
|
|
255
|
+
},
|
|
256
|
+
tab.id
|
|
257
|
+
);
|
|
258
|
+
const renderedTab = !tab.tooltip ? tabButton : /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
|
|
259
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, children: tabButton }),
|
|
260
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { side: "bottom", children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: tab.tooltip }) })
|
|
261
|
+
] }, tab.id);
|
|
262
|
+
if (index !== 0 || !firstTabContent) return renderedTab;
|
|
263
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
264
|
+
"div",
|
|
265
|
+
{
|
|
266
|
+
"data-slot": "count-tab-group",
|
|
267
|
+
className: "flex shrink-0 items-end gap-1",
|
|
268
|
+
children: [
|
|
269
|
+
renderedTab,
|
|
270
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: ui.cn("self-center", COMPACT_SECTION), children: typeof firstTabContent === "function" ? firstTabContent(isCompact) : firstTabContent })
|
|
271
|
+
]
|
|
272
|
+
},
|
|
273
|
+
tab.id
|
|
274
|
+
);
|
|
275
|
+
}),
|
|
276
|
+
afterTabs && /* @__PURE__ */ jsxRuntime.jsx("div", { className: ui.cn("self-center", COMPACT_SECTION), children: typeof afterTabs === "function" ? afterTabs(isCompact) : afterTabs })
|
|
277
|
+
] })
|
|
278
|
+
}
|
|
279
|
+
),
|
|
280
|
+
canScrollEnd && /* @__PURE__ */ jsxRuntime.jsx(
|
|
281
|
+
"span",
|
|
282
|
+
{
|
|
283
|
+
"aria-hidden": true,
|
|
284
|
+
"data-slot": "tab-scroll-cue",
|
|
285
|
+
className: "pointer-events-none absolute inset-y-0 right-0 w-8 bg-gradient-to-l from-background to-transparent"
|
|
286
|
+
}
|
|
287
|
+
)
|
|
288
|
+
] }),
|
|
289
|
+
centerContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: ui.cn("flex min-w-fit flex-1 items-center self-center", COMPACT_SECTION), children: typeof centerContent === "function" ? centerContent(isCompact) : centerContent }),
|
|
290
|
+
absoluteCenterContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0 z-10 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-auto", children: absoluteCenterContent }) }),
|
|
231
291
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
232
292
|
"div",
|
|
233
293
|
{
|
|
234
|
-
ref: scrollerRef,
|
|
235
|
-
"data-slot": "tab-scroller",
|
|
236
294
|
className: ui.cn(
|
|
237
|
-
"flex
|
|
238
|
-
|
|
295
|
+
"flex flex-shrink-0 items-center justify-end gap-2 self-center",
|
|
296
|
+
COMPACT_SECTION
|
|
239
297
|
),
|
|
240
|
-
children:
|
|
241
|
-
tabs.map((tab, index) => {
|
|
242
|
-
const tabButton = /* @__PURE__ */ jsxRuntime.jsx(
|
|
243
|
-
TabButton,
|
|
244
|
-
{
|
|
245
|
-
tab,
|
|
246
|
-
isActive: activeTabId === tab.id,
|
|
247
|
-
isChip: isChipRow,
|
|
248
|
-
isCompact: isCompact && tabs.length > 1,
|
|
249
|
-
onTabChange,
|
|
250
|
-
labels: mergedLabels,
|
|
251
|
-
testIds
|
|
252
|
-
},
|
|
253
|
-
tab.id
|
|
254
|
-
);
|
|
255
|
-
const renderedTab = !tab.tooltip ? tabButton : /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
|
|
256
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, children: tabButton }),
|
|
257
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { side: "bottom", children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: tab.tooltip }) })
|
|
258
|
-
] }, tab.id);
|
|
259
|
-
if (index !== 0 || !firstTabContent) return renderedTab;
|
|
260
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
261
|
-
"div",
|
|
262
|
-
{
|
|
263
|
-
"data-slot": "count-tab-group",
|
|
264
|
-
className: "flex shrink-0 items-end gap-1",
|
|
265
|
-
children: [
|
|
266
|
-
renderedTab,
|
|
267
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: ui.cn("self-center", COMPACT_SECTION), children: typeof firstTabContent === "function" ? firstTabContent(isCompact) : firstTabContent })
|
|
268
|
-
]
|
|
269
|
-
},
|
|
270
|
-
tab.id
|
|
271
|
-
);
|
|
272
|
-
}),
|
|
273
|
-
afterTabs && /* @__PURE__ */ jsxRuntime.jsx("div", { className: ui.cn("self-center", COMPACT_SECTION), children: typeof afterTabs === "function" ? afterTabs(isCompact) : afterTabs })
|
|
274
|
-
] })
|
|
275
|
-
}
|
|
276
|
-
),
|
|
277
|
-
canScrollEnd && /* @__PURE__ */ jsxRuntime.jsx(
|
|
278
|
-
"span",
|
|
279
|
-
{
|
|
280
|
-
"aria-hidden": true,
|
|
281
|
-
"data-slot": "tab-scroll-cue",
|
|
282
|
-
className: "pointer-events-none absolute inset-y-0 right-0 w-8 bg-gradient-to-l from-background to-transparent"
|
|
298
|
+
children: typeof rightContent === "function" ? rightContent(isCompact) : rightContent
|
|
283
299
|
}
|
|
284
300
|
)
|
|
285
|
-
] })
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
"div",
|
|
290
|
-
{
|
|
291
|
-
className: ui.cn(
|
|
292
|
-
"flex flex-shrink-0 items-center justify-end gap-2 self-center",
|
|
293
|
-
COMPACT_SECTION
|
|
294
|
-
),
|
|
295
|
-
children: typeof rightContent === "function" ? rightContent(isCompact) : rightContent
|
|
296
|
-
}
|
|
297
|
-
)
|
|
298
|
-
] })
|
|
299
|
-
] })
|
|
301
|
+
] })
|
|
302
|
+
] }),
|
|
303
|
+
below != null && below !== false && /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "tab-header-below", className: "flex items-center pt-2 pl-3", children: below })
|
|
304
|
+
]
|
|
300
305
|
}
|
|
301
306
|
);
|
|
302
307
|
}
|
|
303
308
|
|
|
304
309
|
exports.DEFAULT_TAB_HEADER_LABELS = DEFAULT_TAB_HEADER_LABELS;
|
|
305
310
|
exports.TabHeader = TabHeader;
|
|
306
|
-
//# sourceMappingURL=chunk-
|
|
307
|
-
//# sourceMappingURL=chunk-
|
|
311
|
+
//# sourceMappingURL=chunk-WVEFRQSW.cjs.map
|
|
312
|
+
//# sourceMappingURL=chunk-WVEFRQSW.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/shell/TabHeader.tsx"],"names":["useCallback","cn","jsx","jsxs","testIdOr","Fragment","Badge","Tooltip","TooltipTrigger","X","TooltipContent","useRef","useState","useEffect","observeResize"],"mappings":"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","file":"chunk-WVEFRQSW.cjs","sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n useState,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n} from 'react'\nimport { X } from 'lucide-react'\nimport { Badge, cn, Tooltip, TooltipContent, TooltipTrigger } from '@arbidocs/react/ui'\nimport { testIdOr } from '../chat/test-id'\nimport { observeResize } from '../lib/observe-resize'\n\n/** Fixed strings of the tab row. */\nexport interface TabHeaderLabels {\n /** A tab's close button (a tab's own `closeTooltip` wins). */\n closeTab: string\n}\n\nexport const DEFAULT_TAB_HEADER_LABELS: TabHeaderLabels = {\n closeTab: 'Close tab',\n}\n\nexport interface Tab {\n id: string\n label: string | ReactNode\n testId?: string\n icon?: ReactNode\n /**\n * An entity pill (conversation, workspace, …) shown in place of the icon + label. The app\n * renders it, so the block stays free of entity components.\n */\n pill?: ReactNode\n count?: number\n /** Where the count sits relative to the label. Defaults to 'trailing'. */\n countPlacement?: 'leading' | 'trailing'\n /** Glyph INSIDE the count, in front of the number, so icon and count read as one object. */\n countIcon?: ReactNode\n /** Classes for the number alone (e.g. a filled pill), leaving the glyph as it is. */\n countClassName?: string\n badge?: string | ReactNode\n disabled?: boolean\n tooltip?: string\n actions?: ReactNode\n /** Hover handlers from actions (e.g. a filter dropdown), attached to the whole tab wrapper. */\n actionsHoverHandlers?: { onMouseEnter: () => void; onMouseLeave: () => void }\n isProcessing?: boolean\n isVariable?: boolean\n onClose?: () => void\n closeTooltip?: string\n hasActiveFilters?: boolean\n /** Entity count header without selectable-tab chrome (Facts, Tasks, Files). */\n presentation?: 'tab' | 'count'\n /** Extra classes for the tab button. */\n tabClassName?: string\n}\n\n/** Forces buttons in a header section to a uniform compact size (28px, 14px text). */\nconst COMPACT_SECTION =\n '[&_button]:h-7 [&_button]:px-2 [&_button]:py-0 [&_button]:text-sm [&_button]:font-medium ' +\n '[&_[role=button]]:h-7 [&_[role=button]]:px-2 [&_[role=button]]:py-0 [&_[role=button]]:text-sm [&_[role=button]]:font-medium ' +\n // Touch: the compact 28px floor is lifted to 44px (important beats the rules above).\n 'pointer-coarse:[&_button]:h-11! pointer-coarse:[&_[role=button]]:h-11!'\n\ninterface TabButtonProps {\n tab: Tab\n isActive: boolean\n /** Closable-items row: a soft chip with a close button instead of an underline. */\n isChip: boolean\n isCompact: boolean\n onTabChange: (tabId: string) => void\n labels: TabHeaderLabels\n testIds?: TabHeaderProps['testIds']\n}\n\nfunction TabButton({\n tab,\n isActive,\n isChip,\n isCompact,\n onTabChange,\n labels,\n testIds,\n}: TabButtonProps) {\n // Compact mode (narrow header) collapses every INACTIVE tab that has an icon to icon-only so\n // the trailing controls are never pushed off the edge. The active tab keeps a truncated title:\n // otherwise two icon-only tabs cannot be told apart on a phone. Collapsed tabs keep an\n // accessible name and a title with their label; label-only tabs keep their text.\n const hideLabel = isCompact && !!tab.icon && !isActive\n const handleClick = useCallback(() => {\n if (!tab.disabled) onTabChange(tab.id)\n }, [tab.disabled, tab.id, onTabChange])\n\n // div+role=button needs explicit keyboard handling; Space must not scroll the page.\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (tab.disabled) return\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onTabChange(tab.id)\n }\n },\n [tab.disabled, tab.id, onTabChange]\n )\n\n const handleClose = useCallback(\n (e: MouseEvent) => {\n e.stopPropagation()\n tab.onClose?.()\n },\n [tab]\n )\n\n // Two looks, chosen by the row: a row that holds closable items (conversations, open panels)\n // shows soft chips, the active one filled, so \"close\" has an obvious owner. Every other row is a\n // plain underline: ink text + a 2px primary underline for the active tab, nothing else.\n const className = cn(\n 'group relative z-[1] flex pointer-coarse:h-11 cursor-pointer items-center justify-start text-left text-sm transition-colors',\n isChip\n ? 'h-8 max-w-[260px] rounded-md px-2.5'\n : 'h-9 max-w-[320px] border-b-2 bg-transparent px-2.5',\n isChip\n ? isActive\n ? 'bg-muted font-semibold text-foreground'\n : 'bg-transparent font-medium text-muted-foreground hover:bg-muted/60 hover:text-foreground'\n : isActive\n ? 'border-b-primary font-semibold text-foreground'\n : 'border-b-transparent font-medium text-muted-foreground hover:text-foreground',\n // Touch: an icon-only tab still meets the 44px target; a titled active tab truncates.\n isCompact && tab.icon && (isActive ? 'max-w-[45vw]' : 'pointer-coarse:min-w-11 justify-center'),\n tab.disabled && 'cursor-not-allowed opacity-50',\n tab.presentation === 'count' &&\n 'rounded-none border-transparent bg-transparent pl-0 font-normal hover:bg-transparent',\n tab.tabClassName\n )\n\n const countValue = tab.isProcessing ? (\n <span className=\"animate-pulse\">{tab.count}</span>\n ) : (\n tab.count\n )\n const countBadge =\n tab.count === undefined ? null : (\n // A plain muted number, a footnote to the label. A filtered count switches to primary ink so\n // \"this is narrowed\" still reads without a fill.\n <span\n data-testid={testIdOr(testIds?.count, { testId: 'tab-count' })}\n className={cn(\n 'flex-shrink-0 items-center justify-center gap-1 font-normal leading-none tabular-nums',\n tab.countIcon ? 'text-sm' : 'text-xs',\n tab.countPlacement === 'leading' ? 'mr-1.5' : 'ml-1.5',\n // Compact rows drop counts to save width, but a tab whose glyph lives in the count has\n // nothing else to show: there the count IS the tab.\n isCompact && !tab.countIcon ? 'hidden' : 'inline-flex',\n tab.hasActiveFilters ? 'text-primary' : 'text-muted-foreground'\n )}\n >\n {tab.countIcon && (\n <span aria-hidden className=\"flex shrink-0 items-center justify-center\">\n {tab.countIcon}\n </span>\n )}\n {tab.countClassName ? <span className={tab.countClassName}>{countValue}</span> : countValue}\n </span>\n )\n\n const content = tab.pill ? (\n // The outer wrapper hosts the processing dot outside the pill's bounds; the inner span keeps\n // the truncation the pill needs without clipping the dot.\n <span className=\"relative inline-flex min-w-0 items-center\">\n <span className=\"min-w-0 truncate overflow-hidden\">{tab.pill}</span>\n {tab.isProcessing && (\n <span className=\"absolute -right-1 -top-1 size-2 rounded-full border border-background bg-yellow-solid\" />\n )}\n </span>\n ) : (\n <>\n {tab.icon && (\n <span\n className={cn(\n 'flex size-5 flex-shrink-0 items-center justify-center',\n !hideLabel && 'mr-1.5'\n )}\n >\n {tab.icon}\n </span>\n )}\n {tab.countPlacement === 'leading' && countBadge}\n <span className={cn('truncate', hideLabel ? 'hidden' : 'inline')}>{tab.label}</span>\n {tab.countPlacement !== 'leading' && countBadge}\n {tab.badge &&\n (typeof tab.badge === 'string' ? (\n <Badge\n variant=\"outline\"\n className={cn('ml-1.5 truncate', isCompact ? 'max-w-[120px]' : 'max-w-none')}\n >\n {tab.badge}\n </Badge>\n ) : (\n <span className=\"ml-1.5 inline-flex items-center\">{tab.badge}</span>\n ))}\n </>\n )\n\n return (\n <div\n className={cn('flex items-end', isChip && 'pb-1')}\n data-testid={testIdOr(tab.testId, { testId: `${tab.id}-tab` })}\n onMouseEnter={tab.actionsHoverHandlers?.onMouseEnter}\n onMouseLeave={tab.actionsHoverHandlers?.onMouseLeave}\n >\n {/* role=button on a div, not a <button>: a tab whose badge holds a real interactive element\n (an entity tooltip trigger) would otherwise nest a button inside a button. */}\n <div\n role=\"button\"\n tabIndex={tab.disabled ? -1 : 0}\n aria-disabled={tab.disabled || undefined}\n aria-current={isActive ? 'true' : undefined}\n data-slot=\"tab\"\n data-state={isActive ? 'active' : 'inactive'}\n // Icon-only tabs expose the label for a11y and as a native title.\n aria-label={hideLabel && typeof tab.label === 'string' ? tab.label : undefined}\n title={hideLabel && !tab.tooltip && typeof tab.label === 'string' ? tab.label : undefined}\n className={className}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {content}\n {tab.actions && (\n <span className=\"ml-auto flex-shrink-0\" onClick={(e) => e.stopPropagation()}>\n {tab.actions}\n </span>\n )}\n {tab.onClose && (\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n role=\"button\"\n tabIndex={0}\n className={cn(\n 'ml-0.5 inline-flex !size-4 flex-shrink-0 items-center justify-center rounded-sm !p-0 text-muted-foreground transition-colors hover:bg-foreground/10 hover:text-foreground pointer-coarse:!size-11',\n // A chip row keeps the close button quiet until the chip is the active one or is\n // hovered or focused; touch always shows it (there is no hover).\n isChip &&\n !isActive &&\n 'opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 pointer-coarse:opacity-100'\n )}\n onClick={handleClose}\n aria-label={tab.closeTooltip || labels.closeTab}\n data-testid={testIdOr(testIds?.closeButton, { testId: 'close-tab-button' })}\n >\n <X className=\"size-3\" />\n </span>\n </TooltipTrigger>\n <TooltipContent>\n <p>{tab.closeTooltip || labels.closeTab}</p>\n </TooltipContent>\n </Tooltip>\n )}\n </div>\n </div>\n )\n}\n\nexport interface TabHeaderProps {\n tabs: Tab[]\n activeTabId: string\n onTabChange: (tabId: string) => void\n /** Pinned to the far left before the tabs (e.g. the sidebar toggle). */\n leading?: ReactNode\n leftContent?: ReactNode\n /** Controls attached to the first count tab, before any additional tabs. */\n firstTabContent?: ReactNode | ((isCompact: boolean) => ReactNode)\n afterTabs?: ReactNode | ((isCompact: boolean) => ReactNode)\n centerContent?: ReactNode | ((isCompact: boolean) => ReactNode)\n /** Pinned to the true horizontal center of the row, independent of left/right widths. */\n absoluteCenterContent?: ReactNode\n rightContent?: ReactNode | ((isCompact: boolean) => ReactNode)\n /**\n * A row under the tabs, e.g. a filter that leaves the tab row on a narrow header (return it\n * for `isCompact` only) so the tabs keep their room. Nothing rendered when it returns nothing.\n */\n belowContent?: ReactNode | ((isCompact: boolean) => ReactNode)\n className?: string\n /** Header width below which tabs collapse to icons. */\n compactBreakpoint?: number\n labels?: Partial<TabHeaderLabels>\n /**\n * `chips` renders every tab as a soft chip (for rows of closable items), `underline` as a plain\n * underline tab. Default: chips when any tab can be closed, underline otherwise.\n */\n variant?: 'underline' | 'chips'\n /** Root id (default `tab-header`). */\n testId?: string\n /**\n * Per-tab ids; defaults are the current ids. A tab's own id is `Tab.testId`, else `<tab id>-tab`\n * (structural).\n */\n testIds?: Partial<Record<'count' | 'closeButton', string>>\n}\n\n/** Scroll `row` sideways (only it, no ancestor) so `item` is fully visible. */\nfunction scrollRowToShow(row: HTMLElement, item: Element): void {\n const r = row.getBoundingClientRect()\n const i = item.getBoundingClientRect()\n if (i.left < r.left) row.scrollLeft -= r.left - i.left\n else if (i.right > r.right) row.scrollLeft += i.right - r.right\n}\n\n/** Underline tab row with leading / center / right slots; collapses to icons when narrow. */\nexport function TabHeader({\n tabs,\n activeTabId,\n onTabChange,\n leading,\n leftContent,\n firstTabContent,\n afterTabs,\n centerContent,\n absoluteCenterContent,\n rightContent,\n belowContent,\n className,\n compactBreakpoint = 640,\n labels,\n variant,\n testId,\n testIds,\n}: TabHeaderProps) {\n const mergedLabels = { ...DEFAULT_TAB_HEADER_LABELS, ...labels }\n const isChipRow = variant ? variant === 'chips' : tabs.some((tab) => !!tab.onClose)\n const containerRef = useRef<HTMLDivElement>(null)\n const scrollerRef = useRef<HTMLDivElement>(null)\n const [isCompact, setIsCompact] = useState(false)\n const [canScrollEnd, setCanScrollEnd] = useState(false)\n\n useEffect(() => {\n const container = containerRef.current\n if (!container) return\n return observeResize(container, (entries) => {\n for (const entry of entries) setIsCompact(entry.contentRect.width < compactBreakpoint)\n })\n }, [compactBreakpoint])\n\n // Overflow cue: track whether tabs are hidden past the trailing edge.\n useEffect(() => {\n const scroller = scrollerRef.current\n if (!scroller) return\n const update = () =>\n setCanScrollEnd(scroller.scrollLeft + scroller.clientWidth < scroller.scrollWidth - 1)\n update()\n scroller.addEventListener('scroll', update, { passive: true })\n const stopObserving = observeResize(scroller, update)\n return () => {\n scroller.removeEventListener('scroll', update)\n stopObserving()\n }\n }, [tabs.length])\n\n // Keep the active tab visible when it changes (or on first render) in a scrolling row. Only the\n // row scrolls, sideways: `scrollIntoView` would also scroll every ancestor, so a tab header below\n // the fold dragged the whole page down to it on load.\n useEffect(() => {\n const scroller = scrollerRef.current\n const active = scroller?.querySelector('[data-slot=\"tab\"][data-state=\"active\"]')\n if (scroller && active) scrollRowToShow(scroller, active)\n }, [activeTabId])\n\n const below = typeof belowContent === 'function' ? belowContent(isCompact) : belowContent\n\n return (\n <div\n ref={containerRef}\n className={cn('w-full bg-background pt-1 pr-3 pb-2', className)}\n data-slot=\"tab-header\"\n data-testid={testIdOr(testId, { testId: 'tab-header' })}\n >\n <div className=\"relative bg-background\">\n {/* The hairline lives on this non-scrolling wrapper: overflow-y-hidden on the scroll row\n would clip the active tab's underline overhang. The tabs paint over the line. */}\n <span\n aria-hidden\n className=\"pointer-events-none absolute inset-x-0 bottom-0 h-px bg-border\"\n />\n {/* overflow-y-hidden is mandatory: overflow-x-auto alone makes the browser compute\n overflow-y to `auto` too, surfacing a phantom vertical scrollbar from sub-pixel\n overflow (e.g. the processing dot's -top-1). pt-1 keeps that dot inside the clip box. */}\n <div className=\"relative flex min-h-[40px] items-end justify-between gap-4\">\n {/* Leading slot: placed in the left margin (the pl-8 gap), claiming no extra width. */}\n {leading && (\n <div className=\"absolute bottom-1.5 left-1.5 z-10 flex items-center\">{leading}</div>\n )}\n {/* Only the tabs scroll: the center and right slots sit outside the scroller so they can\n never overlap a tab, and a fade at the trailing edge signals that more tabs exist. */}\n <div className=\"relative flex min-w-0 flex-shrink items-end\">\n <div\n ref={scrollerRef}\n data-slot=\"tab-scroller\"\n className={cn(\n 'flex min-w-0 items-end overflow-x-auto overflow-y-hidden pt-1',\n leading ? 'pl-8' : 'pl-3'\n )}\n >\n {leftContent || (\n <div className=\"flex items-end gap-1\">\n {tabs.map((tab, index) => {\n const tabButton = (\n <TabButton\n key={tab.id}\n tab={tab}\n isActive={activeTabId === tab.id}\n isChip={isChipRow}\n // A lone tab competes with nothing: its label is the surface's title.\n isCompact={isCompact && tabs.length > 1}\n onTabChange={onTabChange}\n labels={mergedLabels}\n testIds={testIds}\n />\n )\n const renderedTab = !tab.tooltip ? (\n tabButton\n ) : (\n <Tooltip key={tab.id}>\n <TooltipTrigger asChild>{tabButton}</TooltipTrigger>\n {/* Below: the header can sit at the very top of the viewport. */}\n <TooltipContent side=\"bottom\">\n <p>{tab.tooltip}</p>\n </TooltipContent>\n </Tooltip>\n )\n if (index !== 0 || !firstTabContent) return renderedTab\n return (\n <div\n key={tab.id}\n data-slot=\"count-tab-group\"\n className=\"flex shrink-0 items-end gap-1\"\n >\n {renderedTab}\n <div className={cn('self-center', COMPACT_SECTION)}>\n {typeof firstTabContent === 'function'\n ? firstTabContent(isCompact)\n : firstTabContent}\n </div>\n </div>\n )\n })}\n {afterTabs && (\n <div className={cn('self-center', COMPACT_SECTION)}>\n {typeof afterTabs === 'function' ? afterTabs(isCompact) : afterTabs}\n </div>\n )}\n </div>\n )}\n </div>\n {canScrollEnd && (\n <span\n aria-hidden\n data-slot=\"tab-scroll-cue\"\n className=\"pointer-events-none absolute inset-y-0 right-0 w-8 bg-gradient-to-l from-background to-transparent\"\n />\n )}\n </div>\n\n {centerContent && (\n <div className={cn('flex min-w-fit flex-1 items-center self-center', COMPACT_SECTION)}>\n {typeof centerContent === 'function' ? centerContent(isCompact) : centerContent}\n </div>\n )}\n\n {/* pointer-events-none on the overlay so clicks reach the tabs beneath; the inner div\n re-enables them for the actual content. */}\n {absoluteCenterContent && (\n <div className=\"pointer-events-none absolute inset-0 z-10 flex items-center justify-center\">\n <div className=\"pointer-events-auto\">{absoluteCenterContent}</div>\n </div>\n )}\n\n <div\n className={cn(\n 'flex flex-shrink-0 items-center justify-end gap-2 self-center',\n COMPACT_SECTION\n )}\n >\n {typeof rightContent === 'function' ? rightContent(isCompact) : rightContent}\n </div>\n </div>\n </div>\n {below != null && below !== false && (\n <div data-slot=\"tab-header-below\" className=\"flex items-center pt-2 pl-3\">\n {below}\n </div>\n )}\n </div>\n )\n}\n"]}
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
|
|
4
4
|
var chunkHYAYXLIZ_cjs = require('./chunk-HYAYXLIZ.cjs');
|
|
5
5
|
var chunkKWJW5TMH_cjs = require('./chunk-KWJW5TMH.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunkLBKTTQUR_cjs = require('./chunk-LBKTTQUR.cjs');
|
|
7
7
|
var chunkEGJ7WJ6Q_cjs = require('./chunk-EGJ7WJ6Q.cjs');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var chunkJBL4PPEE_cjs = require('./chunk-JBL4PPEE.cjs');
|
|
9
|
+
var chunkUDMII47W_cjs = require('./chunk-UDMII47W.cjs');
|
|
10
10
|
var chunkT35SGVB2_cjs = require('./chunk-T35SGVB2.cjs');
|
|
11
11
|
var chunkJH6JTI76_cjs = require('./chunk-JH6JTI76.cjs');
|
|
12
12
|
var chunkZ3LFF3YT_cjs = require('./chunk-Z3LFF3YT.cjs');
|
|
13
13
|
var chunkNSD37OF5_cjs = require('./chunk-NSD37OF5.cjs');
|
|
14
|
-
var
|
|
14
|
+
var chunkHVOPUYAG_cjs = require('./chunk-HVOPUYAG.cjs');
|
|
15
15
|
var chunk3T3IKNGF_cjs = require('./chunk-3T3IKNGF.cjs');
|
|
16
|
-
var
|
|
16
|
+
var chunkY6ZNWC7E_cjs = require('./chunk-Y6ZNWC7E.cjs');
|
|
17
17
|
var chunkQUMUAJ2P_cjs = require('./chunk-QUMUAJ2P.cjs');
|
|
18
18
|
var chunk7JVP3LS6_cjs = require('./chunk-7JVP3LS6.cjs');
|
|
19
19
|
var chunkKGAYUFXD_cjs = require('./chunk-KGAYUFXD.cjs');
|
|
@@ -38,25 +38,25 @@ function useSkillsEnabled() {
|
|
|
38
38
|
}
|
|
39
39
|
function useWorkflowDefinitions() {
|
|
40
40
|
const { data: listings } = react.useSkills();
|
|
41
|
-
const usage =
|
|
41
|
+
const usage = chunkHVOPUYAG_cjs.useWorkflowUsage();
|
|
42
42
|
const skillsEnabled = useSkillsEnabled();
|
|
43
43
|
return react$1.useMemo(() => {
|
|
44
44
|
const { host: builtins, skills: fromServer } = chunk555BS22J_cjs.mergeSkillWorkflows(
|
|
45
|
-
|
|
45
|
+
chunkHVOPUYAG_cjs.WEB_WORKFLOWS,
|
|
46
46
|
listings ?? []
|
|
47
47
|
);
|
|
48
48
|
const all = [...builtins, ...fromServer];
|
|
49
49
|
const byId = new Map(all.map((w) => [w.id, w]));
|
|
50
|
-
const pinned =
|
|
50
|
+
const pinned = chunkHVOPUYAG_cjs.DASHBOARD_PINNED.flatMap((id) => {
|
|
51
51
|
const w = byId.get(id);
|
|
52
52
|
return w ? [w] : [];
|
|
53
53
|
});
|
|
54
54
|
return {
|
|
55
55
|
skills: all,
|
|
56
56
|
skillsEnabled,
|
|
57
|
-
start: skillsEnabled ? [...builtins, ...
|
|
58
|
-
dashboard: [...pinned, ...
|
|
59
|
-
forTasks: [
|
|
57
|
+
start: skillsEnabled ? [...builtins, ...chunkHVOPUYAG_cjs.sortByRecentUse(fromServer, usage)] : [],
|
|
58
|
+
dashboard: [...pinned, ...chunkHVOPUYAG_cjs.DASHBOARD_OPERATIONS],
|
|
59
|
+
forTasks: [chunkHVOPUYAG_cjs.CUSTOM_TASK, ...all.filter((w) => w.schedulable), chunkHVOPUYAG_cjs.REMIND_TASK]
|
|
60
60
|
};
|
|
61
61
|
}, [listings, usage, skillsEnabled]);
|
|
62
62
|
}
|
|
@@ -84,7 +84,7 @@ function useWorkflowTasks() {
|
|
|
84
84
|
);
|
|
85
85
|
const create = react$1.useCallback(
|
|
86
86
|
async (ctx, forceWorkflow = false) => {
|
|
87
|
-
const request =
|
|
87
|
+
const request = chunkHVOPUYAG_cjs.taskComposerToCreateRequest(
|
|
88
88
|
{ ...ctx, documentTitles, plan: ctx.plan ?? null },
|
|
89
89
|
activeWorkspaceId ?? void 0,
|
|
90
90
|
forceWorkflow
|
|
@@ -126,7 +126,7 @@ function useWorkflowTasks() {
|
|
|
126
126
|
);
|
|
127
127
|
const update = react$1.useCallback(
|
|
128
128
|
async (task, ctx) => {
|
|
129
|
-
const patch =
|
|
129
|
+
const patch = chunkHVOPUYAG_cjs.taskComposerToUpdateRequest({ ...ctx, plan: ctx.plan ?? null });
|
|
130
130
|
if (task.is_owner === false) delete patch.shared;
|
|
131
131
|
await updateConversation.mutateAsync({ conversationId: task.external_id, patch });
|
|
132
132
|
},
|
|
@@ -134,7 +134,7 @@ function useWorkflowTasks() {
|
|
|
134
134
|
);
|
|
135
135
|
const updateWorkflow = react$1.useCallback(
|
|
136
136
|
async (workflow, ctx) => {
|
|
137
|
-
const patch =
|
|
137
|
+
const patch = chunkHVOPUYAG_cjs.composerToWorkflowUpdate({ ...ctx, documentTitles, plan: ctx.plan ?? null });
|
|
138
138
|
if (workflow.is_owner === false) delete patch.shared;
|
|
139
139
|
const workspaceId = workflow.workspace_ext_id ?? activeWorkspaceId;
|
|
140
140
|
const updated = await updateWorkflowMutation.mutateAsync({
|
|
@@ -249,7 +249,7 @@ function ConnectedTaskComposer({
|
|
|
249
249
|
const { tasks: allTasks } = react.useWorkItems();
|
|
250
250
|
const { data: documents = [] } = react.useDocuments();
|
|
251
251
|
const { create, update, updateWorkflow, isPending } = useWorkflowTasks();
|
|
252
|
-
const scopeSource =
|
|
252
|
+
const scopeSource = chunkUDMII47W_cjs.useConnectedWorkflowScopeSource();
|
|
253
253
|
const activeWorkspaceId = react.useArbiSessionState((s) => s.workspaceId);
|
|
254
254
|
const activeWorkspace = react$1.useMemo(
|
|
255
255
|
() => workspaces.find((w) => w.external_id === activeWorkspaceId) ?? null,
|
|
@@ -266,7 +266,7 @@ function ConnectedTaskComposer({
|
|
|
266
266
|
const label = (t) => t.title?.trim() || "Untitled task";
|
|
267
267
|
if (isWorkflow) return allTasks.map((t) => ({ id: t.external_id, name: label(t) }));
|
|
268
268
|
const subject = task ?? { external_id: "__new__" };
|
|
269
|
-
return
|
|
269
|
+
return chunkHVOPUYAG_cjs.moveTargets(
|
|
270
270
|
[...allTasks.filter((t) => t.external_id !== subject.external_id), subject],
|
|
271
271
|
subject
|
|
272
272
|
).map((t) => ({ id: t.external_id, name: label(t) }));
|
|
@@ -281,33 +281,33 @@ function ConnectedTaskComposer({
|
|
|
281
281
|
);
|
|
282
282
|
const initialValues = react$1.useMemo(() => {
|
|
283
283
|
const ids = {
|
|
284
|
-
customWorkflowId:
|
|
285
|
-
reminderWorkflowId:
|
|
284
|
+
customWorkflowId: chunkHVOPUYAG_cjs.CUSTOM_TASK_ID,
|
|
285
|
+
reminderWorkflowId: chunkHVOPUYAG_cjs.REMIND_TASK_ID,
|
|
286
286
|
definitions: forTasks
|
|
287
287
|
};
|
|
288
288
|
const base = launchWorkflow ? {
|
|
289
|
-
...
|
|
289
|
+
...chunkHVOPUYAG_cjs.workflowToComposerValues(launchWorkflow, ids),
|
|
290
290
|
when: "once",
|
|
291
291
|
runAt: "",
|
|
292
292
|
rrule: "",
|
|
293
293
|
eventKind: "",
|
|
294
294
|
afterTaskId: "",
|
|
295
295
|
name: ""
|
|
296
|
-
} : editingWorkflow ?
|
|
296
|
+
} : editingWorkflow ? chunkHVOPUYAG_cjs.workflowToComposerValues(editingWorkflow, ids) : task ? chunkHVOPUYAG_cjs.taskToComposerValues(task, ids) : isWorkflow ? {
|
|
297
297
|
// Run now is the default start; scheduling is the fallback in the same field.
|
|
298
298
|
assignee: "agent",
|
|
299
|
-
workflowId: initialWorkflowId ??
|
|
299
|
+
workflowId: initialWorkflowId ?? chunkHVOPUYAG_cjs.CUSTOM_TASK_ID,
|
|
300
300
|
when: startLater ? "once" : "now",
|
|
301
301
|
...initialPrompt ? {
|
|
302
302
|
inputs: {
|
|
303
|
-
[initialWorkflowId ===
|
|
303
|
+
[initialWorkflowId === chunkHVOPUYAG_cjs.REMIND_TASK_ID ? "message" : "instruction"]: initialPrompt
|
|
304
304
|
}
|
|
305
305
|
} : {},
|
|
306
306
|
// A scheduled run needs an agent: the owner's Assistant unless another is picked.
|
|
307
307
|
...startLater && defaultAgentId ? { agentId: defaultAgentId } : {}
|
|
308
308
|
} : initialAgentExtId ? (
|
|
309
309
|
// Assigning an agent means agentic work: the free instruction, and tell me when done.
|
|
310
|
-
{ agentId: initialAgentExtId, workflowId:
|
|
310
|
+
{ agentId: initialAgentExtId, workflowId: chunkHVOPUYAG_cjs.CUSTOM_TASK_ID, notifyOnComplete: true }
|
|
311
311
|
) : {};
|
|
312
312
|
return {
|
|
313
313
|
timezone: chunkQUMUAJ2P_cjs.detectTimeZone(),
|
|
@@ -368,7 +368,7 @@ function ConnectedTaskComposer({
|
|
|
368
368
|
const ctx = {
|
|
369
369
|
workflow: chosen,
|
|
370
370
|
values: submitted,
|
|
371
|
-
plan: chosen.id ===
|
|
371
|
+
plan: chosen.id === chunkHVOPUYAG_cjs.CUSTOM_TASK_ID ? plan : null
|
|
372
372
|
};
|
|
373
373
|
try {
|
|
374
374
|
if (isWorkflow && editingWorkflow && !options?.runOnce) {
|
|
@@ -404,7 +404,7 @@ function ConnectedTaskComposer({
|
|
|
404
404
|
}
|
|
405
405
|
};
|
|
406
406
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
407
|
-
|
|
407
|
+
chunkHVOPUYAG_cjs.TaskComposer,
|
|
408
408
|
{
|
|
409
409
|
open,
|
|
410
410
|
onOpenChange,
|
|
@@ -423,10 +423,10 @@ function ConnectedTaskComposer({
|
|
|
423
423
|
isPending,
|
|
424
424
|
planDrafting: planWork.isPending,
|
|
425
425
|
hasPlan: plan !== null,
|
|
426
|
-
renderIcon:
|
|
426
|
+
renderIcon: chunkHVOPUYAG_cjs.renderWorkflowIcon,
|
|
427
427
|
scopeSource,
|
|
428
428
|
renderDocuments: (field, value, onChange) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
429
|
-
|
|
429
|
+
chunkUDMII47W_cjs.ConnectedWorkflowDocumentsField,
|
|
430
430
|
{
|
|
431
431
|
field,
|
|
432
432
|
value,
|
|
@@ -457,8 +457,8 @@ function ConnectedTaskComposer({
|
|
|
457
457
|
...plan ? { addAndStart: "Approve plan and start", addAndSchedule: "Approve plan and schedule" } : {}
|
|
458
458
|
},
|
|
459
459
|
onSubmit: submit,
|
|
460
|
-
goal: (values) => values.workflowId ===
|
|
461
|
-
|
|
460
|
+
goal: (values) => values.workflowId === chunkHVOPUYAG_cjs.CUSTOM_TASK_ID ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
461
|
+
chunkHVOPUYAG_cjs.TaskPlan,
|
|
462
462
|
{
|
|
463
463
|
plan,
|
|
464
464
|
onChange: setPlan,
|
|
@@ -504,7 +504,7 @@ function ConnectedWorkflowHistory({
|
|
|
504
504
|
const { openConversation } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
|
|
505
505
|
const { data: runs = [], isLoading } = react.useWorkflowRuns(workflow?.external_id);
|
|
506
506
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
507
|
-
|
|
507
|
+
chunkHVOPUYAG_cjs.TaskRunsDialog,
|
|
508
508
|
{
|
|
509
509
|
inline,
|
|
510
510
|
hideHeader,
|
|
@@ -540,14 +540,14 @@ function ConnectedTaskActivityDialog({
|
|
|
540
540
|
const activity = react.useConversationActivity(conversationId, { live });
|
|
541
541
|
const { data: agents = [] } = react.useAgents();
|
|
542
542
|
const { userId } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
|
|
543
|
-
const { members } =
|
|
543
|
+
const { members } = chunkUDMII47W_cjs.useConnectedWorkspaceRole();
|
|
544
544
|
const renderPerson = react$1.useCallback(
|
|
545
545
|
(id) => {
|
|
546
546
|
const isMe = !!id && id === userId;
|
|
547
547
|
const member = members.find((m) => m.user.external_id === id)?.user;
|
|
548
548
|
const name = member && [member.given_name, member.family_name].filter(Boolean).join(" ") || member?.email;
|
|
549
549
|
const person = { id, label: isMe ? "You" : name || "Someone", isMe };
|
|
550
|
-
return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
550
|
+
return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(chunkY6ZNWC7E_cjs.PersonPill, { person });
|
|
551
551
|
},
|
|
552
552
|
[renderTaskPerson, userId, members]
|
|
553
553
|
);
|
|
@@ -556,7 +556,7 @@ function ConnectedTaskActivityDialog({
|
|
|
556
556
|
[agents]
|
|
557
557
|
);
|
|
558
558
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
559
|
-
|
|
559
|
+
chunkHVOPUYAG_cjs.TaskActivityDialog,
|
|
560
560
|
{
|
|
561
561
|
open: true,
|
|
562
562
|
onOpenChange: (open) => !open && onClose(),
|
|
@@ -593,7 +593,7 @@ function useRenderTaskPerson() {
|
|
|
593
593
|
return react$1.useCallback(
|
|
594
594
|
(person) => {
|
|
595
595
|
const user = person.id ? byId.get(person.id) : void 0;
|
|
596
|
-
return user ? /* @__PURE__ */ jsxRuntime.jsx(chunkEGJ7WJ6Q_cjs.DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
596
|
+
return user ? /* @__PURE__ */ jsxRuntime.jsx(chunkEGJ7WJ6Q_cjs.DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkY6ZNWC7E_cjs.PersonPill, { person });
|
|
597
597
|
},
|
|
598
598
|
[byId]
|
|
599
599
|
);
|
|
@@ -606,7 +606,7 @@ function ConnectedThreadTaskBar({
|
|
|
606
606
|
renderIcon
|
|
607
607
|
}) {
|
|
608
608
|
const { conversations } = react.useConversationItems();
|
|
609
|
-
const { activity, items, related, signals, startedBy } =
|
|
609
|
+
const { activity, items, related, signals, startedBy } = chunkLBKTTQUR_cjs.useConnectedThreadActivity(conversationId);
|
|
610
610
|
const canEditShared = react.useCanEditShared();
|
|
611
611
|
const update = react.useUpdateConversation();
|
|
612
612
|
const actOnStep = react.useActOnStep();
|
|
@@ -643,7 +643,7 @@ function ConnectedThreadTaskBar({
|
|
|
643
643
|
).finally(() => setBusy(false));
|
|
644
644
|
};
|
|
645
645
|
const strip = /* @__PURE__ */ jsxRuntime.jsx(
|
|
646
|
-
|
|
646
|
+
chunkHVOPUYAG_cjs.WorkflowThreadStrip,
|
|
647
647
|
{
|
|
648
648
|
renderIcon,
|
|
649
649
|
...variant === "steps" ? { maxSpan: 3, current: currentStepId, onSelectStep } : {},
|
|
@@ -672,7 +672,7 @@ function ConnectedThreadTaskBar({
|
|
|
672
672
|
renderStepAction: (step, phase) => (
|
|
673
673
|
// A signer or a draft's person acts on their step even on a thread they cannot edit.
|
|
674
674
|
canEdit || phase === "waiting" || phase === "done" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
675
|
-
|
|
675
|
+
chunkHVOPUYAG_cjs.WorkflowStepAction,
|
|
676
676
|
{
|
|
677
677
|
step,
|
|
678
678
|
phase,
|
|
@@ -704,7 +704,7 @@ function ConnectedThreadTaskBar({
|
|
|
704
704
|
// A workflow run: its named steps, with what happened in the thread under each.
|
|
705
705
|
strip
|
|
706
706
|
) : items.length || startedBy ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
707
|
-
startedBy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
707
|
+
startedBy && /* @__PURE__ */ jsxRuntime.jsx(chunkHVOPUYAG_cjs.WorkflowThreadStartedBy, { origin: startedBy }),
|
|
708
708
|
/* @__PURE__ */ jsxRuntime.jsx(chunk3T3IKNGF_cjs.TaskFlow, { items: items.filter((item) => !item.step) })
|
|
709
709
|
] }) : (
|
|
710
710
|
// Ordinary chats record no activity events, so an empty ribbon says nothing rather than
|
|
@@ -790,7 +790,7 @@ function ConnectedThreadTaskBar({
|
|
|
790
790
|
] }),
|
|
791
791
|
error && /* @__PURE__ */ jsxRuntime.jsx("span", { role: "alert", className: "text-xs text-destructive", children: error }),
|
|
792
792
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
793
|
-
|
|
793
|
+
chunkJBL4PPEE_cjs.RenameDialog,
|
|
794
794
|
{
|
|
795
795
|
open: renameOpen,
|
|
796
796
|
onClose: () => setRenameOpen(false),
|
|
@@ -823,7 +823,7 @@ ${labels.map((l) => `${l.key}=${l.name}`).join("\n")}`;
|
|
|
823
823
|
if (known) return known;
|
|
824
824
|
const setUp = (async () => {
|
|
825
825
|
const existing = await arbi.tags.list({ workspaceId });
|
|
826
|
-
const { ids, missing } =
|
|
826
|
+
const { ids, missing } = chunkHVOPUYAG_cjs.matchRequiredLabels(labels, existing);
|
|
827
827
|
for (const label of missing) {
|
|
828
828
|
const tag = await createTag({
|
|
829
829
|
name: label.name,
|
|
@@ -1014,7 +1014,7 @@ function useWorkflowRunTarget({
|
|
|
1014
1014
|
}) {
|
|
1015
1015
|
const { workspaceId: open } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
|
|
1016
1016
|
const session = react.useArbiSessionStore();
|
|
1017
|
-
const selectWorkspace =
|
|
1017
|
+
const selectWorkspace = chunkLBKTTQUR_cjs.useSelectWorkspace();
|
|
1018
1018
|
const createProject = react.useCreateProject();
|
|
1019
1019
|
const { projects, isLoading: projectsLoading } = useProjectSummaries();
|
|
1020
1020
|
const { data: workspaces } = react.useWorkspaces();
|
|
@@ -1425,7 +1425,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
1425
1425
|
const createThread = react$1.useCallback(
|
|
1426
1426
|
async (values, done) => {
|
|
1427
1427
|
const prepared = await options.beforeStart?.();
|
|
1428
|
-
const planned = prepared?.labelIds ?
|
|
1428
|
+
const planned = prepared?.labelIds ? chunkHVOPUYAG_cjs.withLabelIds(workflow, prepared.labelIds) : workflow;
|
|
1429
1429
|
await ensureWorkspaceOpen();
|
|
1430
1430
|
const created = await createWork.mutateAsync({
|
|
1431
1431
|
title: chunk555BS22J_cjs.runThreadTitle(workflow, values).slice(0, 60),
|
|
@@ -1527,7 +1527,7 @@ function useWorkflowThread(workflow, options = {}) {
|
|
|
1527
1527
|
const anyRunning = Object.values(states).some((s) => s.status === "running");
|
|
1528
1528
|
const needsStart = !threadId || idle && !anyRunning;
|
|
1529
1529
|
const runError = idle ? conversation?.last_error ?? null : null;
|
|
1530
|
-
const view =
|
|
1530
|
+
const view = chunkHVOPUYAG_cjs.useWorkflowView({
|
|
1531
1531
|
steps,
|
|
1532
1532
|
states,
|
|
1533
1533
|
inputs,
|
|
@@ -1663,7 +1663,7 @@ function WorkflowWordDialog({
|
|
|
1663
1663
|
title: title ?? labels.wordTitle,
|
|
1664
1664
|
size: "xl",
|
|
1665
1665
|
testId: "workflow-word-dialog",
|
|
1666
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1666
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkUDMII47W_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
|
|
1667
1667
|
}
|
|
1668
1668
|
);
|
|
1669
1669
|
}
|
|
@@ -1827,7 +1827,7 @@ function RunnerBody({
|
|
|
1827
1827
|
const session = react.useArbiSessionStore();
|
|
1828
1828
|
const openRef = react$1.useRef(workspaceId);
|
|
1829
1829
|
openRef.current = workspaceId;
|
|
1830
|
-
const required =
|
|
1830
|
+
const required = chunkHVOPUYAG_cjs.requiredLabelsOf(given);
|
|
1831
1831
|
const ownEnsureLabels = useEnsureRequiredLabels();
|
|
1832
1832
|
const ensureLabels = page?.ensureLabels ?? ownEnsureLabels;
|
|
1833
1833
|
const [startedLabelIds, setStartedLabelIds] = react$1.useState({});
|
|
@@ -1839,7 +1839,7 @@ function RunnerBody({
|
|
|
1839
1839
|
const pageTarget = page?.target;
|
|
1840
1840
|
const projectStep = pageTarget && typeof projectFrom === "object" ? projectFrom.step : void 0;
|
|
1841
1841
|
const workflow = react$1.useMemo(
|
|
1842
|
-
() => withCommitStep(
|
|
1842
|
+
() => withCommitStep(chunkHVOPUYAG_cjs.withLabelIds(given, labelIds), projectStep),
|
|
1843
1843
|
[given, labelIds, projectStep]
|
|
1844
1844
|
);
|
|
1845
1845
|
const hostBeforeStart = options?.beforeStart;
|
|
@@ -2054,7 +2054,7 @@ function RunnerBody({
|
|
|
2054
2054
|
);
|
|
2055
2055
|
};
|
|
2056
2056
|
const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2057
|
-
|
|
2057
|
+
chunkHVOPUYAG_cjs.WorkflowRunner,
|
|
2058
2058
|
{
|
|
2059
2059
|
people,
|
|
2060
2060
|
...runnerProps,
|
|
@@ -2115,7 +2115,7 @@ function RunnerBody({
|
|
|
2115
2115
|
pageBar,
|
|
2116
2116
|
inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2117
2117
|
!page && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2118
|
-
|
|
2118
|
+
chunkHVOPUYAG_cjs.WorkflowStepBar,
|
|
2119
2119
|
{
|
|
2120
2120
|
run: view,
|
|
2121
2121
|
levels: chunk555BS22J_cjs.stepLevels(view.steps),
|
|
@@ -2198,7 +2198,7 @@ function RunnerPage(props) {
|
|
|
2198
2198
|
workspaceId,
|
|
2199
2199
|
onProjectCreated
|
|
2200
2200
|
});
|
|
2201
|
-
const required =
|
|
2201
|
+
const required = chunkHVOPUYAG_cjs.requiredLabelsOf(workflow);
|
|
2202
2202
|
const ensure = useEnsureRequiredLabels();
|
|
2203
2203
|
const labels = useRequiredLabels(required, target.target, ensure, target.stage === "ready");
|
|
2204
2204
|
const fromStep = typeof projectFrom === "object";
|
|
@@ -2475,5 +2475,5 @@ exports.useWorkflowDefinitions = useWorkflowDefinitions;
|
|
|
2475
2475
|
exports.useWorkflowTasks = useWorkflowTasks;
|
|
2476
2476
|
exports.useWorkflowsPageState = useWorkflowsPageState;
|
|
2477
2477
|
exports.workflowRunView = workflowRunView;
|
|
2478
|
-
//# sourceMappingURL=chunk-
|
|
2479
|
-
//# sourceMappingURL=chunk-
|
|
2478
|
+
//# sourceMappingURL=chunk-X3JJTHQ4.cjs.map
|
|
2479
|
+
//# sourceMappingURL=chunk-X3JJTHQ4.cjs.map
|