@arbidocs/blocks 0.4.152 → 0.4.154
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/{ConnectedNativeDocxComparison-OFPIXNJB.js → ConnectedNativeDocxComparison-OLWRQSRS.js} +11 -11
- package/dist/{ConnectedNativeDocxComparison-OFPIXNJB.js.map → ConnectedNativeDocxComparison-OLWRQSRS.js.map} +1 -1
- package/dist/{ConnectedNativeDocxComparison-Y5BNLNH6.cjs → ConnectedNativeDocxComparison-YORMOPPN.cjs} +12 -12
- package/dist/{ConnectedNativeDocxComparison-Y5BNLNH6.cjs.map → ConnectedNativeDocxComparison-YORMOPPN.cjs.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-LRYU5HPA.js → ConnectedNativeDocxEditor-34EBIIFS.js} +10 -10
- package/dist/{ConnectedNativeDocxEditor-LRYU5HPA.js.map → ConnectedNativeDocxEditor-34EBIIFS.js.map} +1 -1
- package/dist/{ConnectedNativeDocxEditor-HTEW5JAH.cjs → ConnectedNativeDocxEditor-EHTWGGX3.cjs} +12 -12
- package/dist/{ConnectedNativeDocxEditor-HTEW5JAH.cjs.map → ConnectedNativeDocxEditor-EHTWGGX3.cjs.map} +1 -1
- package/dist/{ConnectedStreamedWordArtifact-QW74LKHN.cjs → ConnectedStreamedWordArtifact-5DK6QGYN.cjs} +12 -12
- package/dist/ConnectedStreamedWordArtifact-5DK6QGYN.cjs.map +1 -0
- package/dist/{ConnectedStreamedWordArtifact-QAUVUCSX.js → ConnectedStreamedWordArtifact-GLIDLSAS.js} +11 -11
- package/dist/{ConnectedStreamedWordArtifact-QAUVUCSX.js.map → ConnectedStreamedWordArtifact-GLIDLSAS.js.map} +1 -1
- package/dist/WorkspaceTableView-5OWX53R5.js +376 -0
- package/dist/WorkspaceTableView-5OWX53R5.js.map +1 -0
- package/dist/WorkspaceTableView-ZFMAYHUD.cjs +378 -0
- package/dist/WorkspaceTableView-ZFMAYHUD.cjs.map +1 -0
- package/dist/agents/index.cjs +282 -282
- package/dist/agents/index.js +7 -7
- package/dist/{chunk-RQ2Y7USX.cjs → chunk-2VHYOTWW.cjs} +3 -3
- package/dist/chunk-2VHYOTWW.cjs.map +1 -0
- package/dist/{chunk-DTROMMDX.cjs → chunk-3VULDTNL.cjs} +4 -4
- package/dist/{chunk-DTROMMDX.cjs.map → chunk-3VULDTNL.cjs.map} +1 -1
- package/dist/{chunk-UTTTJSQU.cjs → chunk-4RPBUMHB.cjs} +4 -4
- package/dist/{chunk-UTTTJSQU.cjs.map → chunk-4RPBUMHB.cjs.map} +1 -1
- package/dist/chunk-53RCZPMR.cjs +496 -0
- package/dist/chunk-53RCZPMR.cjs.map +1 -0
- package/dist/chunk-5TDGVOR5.js +142 -0
- package/dist/chunk-5TDGVOR5.js.map +1 -0
- package/dist/{chunk-CU2O32Z4.cjs → chunk-6QAAIDQQ.cjs} +62 -99
- package/dist/chunk-6QAAIDQQ.cjs.map +1 -0
- package/dist/chunk-7HHYMDPE.js +431 -0
- package/dist/chunk-7HHYMDPE.js.map +1 -0
- package/dist/{chunk-SMN32BQ3.cjs → chunk-7NL6WJER.cjs} +3 -160
- package/dist/chunk-7NL6WJER.cjs.map +1 -0
- package/dist/{chunk-T74Q3MCZ.cjs → chunk-BDA3RHYD.cjs} +4 -4
- package/dist/{chunk-T74Q3MCZ.cjs.map → chunk-BDA3RHYD.cjs.map} +1 -1
- package/dist/{chunk-IXWJGOM2.js → chunk-BQ77KSXU.js} +3 -3
- package/dist/{chunk-IXWJGOM2.js.map → chunk-BQ77KSXU.js.map} +1 -1
- package/dist/chunk-BTF4AZMG.js +148 -0
- package/dist/chunk-BTF4AZMG.js.map +1 -0
- package/dist/{chunk-HALD6ZB5.cjs → chunk-C3SMTA3C.cjs} +4 -4
- package/dist/{chunk-HALD6ZB5.cjs.map → chunk-C3SMTA3C.cjs.map} +1 -1
- package/dist/{chunk-GAYMJWTC.cjs → chunk-CB4TIDEX.cjs} +6 -6
- package/dist/{chunk-GAYMJWTC.cjs.map → chunk-CB4TIDEX.cjs.map} +1 -1
- package/dist/{chunk-KPZZ5FHE.cjs → chunk-CNHUJRQ4.cjs} +10 -6
- package/dist/chunk-CNHUJRQ4.cjs.map +1 -0
- package/dist/{chunk-Q4BY2CQQ.cjs → chunk-CQCNU5KT.cjs} +28 -28
- package/dist/{chunk-Q4BY2CQQ.cjs.map → chunk-CQCNU5KT.cjs.map} +1 -1
- package/dist/{chunk-GRGS5M6O.cjs → chunk-CROGFB46.cjs} +160 -3
- package/dist/chunk-CROGFB46.cjs.map +1 -0
- package/dist/{chunk-QN47Q4N7.js → chunk-CU6LDQ57.js} +3 -3
- package/dist/{chunk-QN47Q4N7.js.map → chunk-CU6LDQ57.js.map} +1 -1
- package/dist/{chunk-EF4ZLKRM.js → chunk-DEPF5LQI.js} +3 -3
- package/dist/{chunk-EF4ZLKRM.js.map → chunk-DEPF5LQI.js.map} +1 -1
- package/dist/{chunk-JAANWQGB.js → chunk-ETZ5A3GU.js} +3 -3
- package/dist/{chunk-JAANWQGB.js.map → chunk-ETZ5A3GU.js.map} +1 -1
- package/dist/{chunk-TBEVGWY3.js → chunk-F57LNUSZ.js} +10 -6
- package/dist/chunk-F57LNUSZ.js.map +1 -0
- package/dist/{chunk-GFNELPDP.cjs → chunk-FM3IRQJW.cjs} +10 -5
- package/dist/chunk-FM3IRQJW.cjs.map +1 -0
- package/dist/chunk-FPHTSNOE.js +465 -0
- package/dist/chunk-FPHTSNOE.js.map +1 -0
- package/dist/{chunk-OVR3XMYL.js → chunk-FYZXDZM7.js} +3 -3
- package/dist/{chunk-OVR3XMYL.js.map → chunk-FYZXDZM7.js.map} +1 -1
- package/dist/{chunk-2FLWPM3B.cjs → chunk-GC2FSPSQ.cjs} +7 -7
- package/dist/{chunk-2FLWPM3B.cjs.map → chunk-GC2FSPSQ.cjs.map} +1 -1
- package/dist/{chunk-DB2OXRQC.js → chunk-GO3BN76C.js} +7 -7
- package/dist/{chunk-DB2OXRQC.js.map → chunk-GO3BN76C.js.map} +1 -1
- package/dist/{chunk-XZIYRKLW.cjs → chunk-H32DV7XS.cjs} +5 -139
- package/dist/chunk-H32DV7XS.cjs.map +1 -0
- package/dist/{chunk-4236BRZK.js → chunk-HP2C4MD3.js} +29 -3
- package/dist/chunk-HP2C4MD3.js.map +1 -0
- package/dist/{chunk-ZP6Q3KXU.cjs → chunk-HUATKA3M.cjs} +4 -4
- package/dist/{chunk-ZP6Q3KXU.cjs.map → chunk-HUATKA3M.cjs.map} +1 -1
- package/dist/chunk-ISHFVKVU.js +304 -0
- package/dist/chunk-ISHFVKVU.js.map +1 -0
- package/dist/chunk-JUUOJP7I.cjs +164 -0
- package/dist/chunk-JUUOJP7I.cjs.map +1 -0
- package/dist/{chunk-4KMLM3GY.cjs → chunk-KBO75NLM.cjs} +7 -7
- package/dist/{chunk-4KMLM3GY.cjs.map → chunk-KBO75NLM.cjs.map} +1 -1
- package/dist/{chunk-Z4NQ3TED.js → chunk-KCSIX7CY.js} +3 -3
- package/dist/{chunk-Z4NQ3TED.js.map → chunk-KCSIX7CY.js.map} +1 -1
- package/dist/{chunk-DN2KI4BU.js → chunk-KDLX5AA7.js} +3 -3
- package/dist/{chunk-DN2KI4BU.js.map → chunk-KDLX5AA7.js.map} +1 -1
- package/dist/{chunk-WFA2GVZJ.js → chunk-MF5KQ4PS.js} +3 -3
- package/dist/{chunk-WFA2GVZJ.js.map → chunk-MF5KQ4PS.js.map} +1 -1
- package/dist/{chunk-YXNNNP57.js → chunk-MNG7N6M2.js} +4 -4
- package/dist/{chunk-YXNNNP57.js.map → chunk-MNG7N6M2.js.map} +1 -1
- package/dist/chunk-MSFQDELO.cjs +482 -0
- package/dist/chunk-MSFQDELO.cjs.map +1 -0
- package/dist/{chunk-KSHKTOY2.js → chunk-NUSBINUM.js} +3 -3
- package/dist/chunk-NUSBINUM.js.map +1 -0
- package/dist/{chunk-EYKISBDO.cjs → chunk-OALEDG67.cjs} +5 -5
- package/dist/{chunk-EYKISBDO.cjs.map → chunk-OALEDG67.cjs.map} +1 -1
- package/dist/{chunk-COCGRJLA.cjs → chunk-OFV3PRF2.cjs} +7 -7
- package/dist/{chunk-COCGRJLA.cjs.map → chunk-OFV3PRF2.cjs.map} +1 -1
- package/dist/chunk-OOU4QLRK.cjs +319 -0
- package/dist/chunk-OOU4QLRK.cjs.map +1 -0
- package/dist/chunk-OU3RGQFX.cjs +136 -0
- package/dist/chunk-OU3RGQFX.cjs.map +1 -0
- package/dist/{chunk-3PCBYOIZ.js → chunk-P6RIBIVN.js} +38 -7
- package/dist/chunk-P6RIBIVN.js.map +1 -0
- package/dist/{chunk-LXTOOUEN.cjs → chunk-Q7CQYYZW.cjs} +5 -5
- package/dist/{chunk-LXTOOUEN.cjs.map → chunk-Q7CQYYZW.cjs.map} +1 -1
- package/dist/{chunk-CROTH2BS.js → chunk-QKR5LWDO.js} +9 -40
- package/dist/{chunk-CROTH2BS.js.map → chunk-QKR5LWDO.js.map} +1 -1
- package/dist/{chunk-HUJF2XM2.js → chunk-RE7NULEY.js} +3 -3
- package/dist/{chunk-HUJF2XM2.js.map → chunk-RE7NULEY.js.map} +1 -1
- package/dist/chunk-REH7PX3N.cjs +145 -0
- package/dist/chunk-REH7PX3N.cjs.map +1 -0
- package/dist/chunk-RQKWYKZY.js +127 -0
- package/dist/chunk-RQKWYKZY.js.map +1 -0
- package/dist/{chunk-U6JQ4KMX.cjs → chunk-SN2GZ4ZM.cjs} +29 -2
- package/dist/chunk-SN2GZ4ZM.cjs.map +1 -0
- package/dist/{chunk-R6VCPDPF.js → chunk-SZSJGZSO.js} +156 -6
- package/dist/chunk-SZSJGZSO.js.map +1 -0
- package/dist/{chunk-US3S4DCB.js → chunk-TF7HN5EU.js} +10 -5
- package/dist/chunk-TF7HN5EU.js.map +1 -0
- package/dist/{chunk-YKQ2DPIP.js → chunk-VF5EUAIV.js} +3 -3
- package/dist/{chunk-YKQ2DPIP.js.map → chunk-VF5EUAIV.js.map} +1 -1
- package/dist/{chunk-KMZWKSKO.cjs → chunk-VZPFYZZU.cjs} +4 -4
- package/dist/{chunk-KMZWKSKO.cjs.map → chunk-VZPFYZZU.cjs.map} +1 -1
- package/dist/{chunk-ZLEYLCE4.js → chunk-WK6FVIF7.js} +6 -156
- package/dist/chunk-WK6FVIF7.js.map +1 -0
- package/dist/{chunk-COA3S3CZ.js → chunk-XI37A7HH.js} +4 -4
- package/dist/{chunk-COA3S3CZ.js.map → chunk-XI37A7HH.js.map} +1 -1
- package/dist/{chunk-LGBAZD37.js → chunk-XRL4R2TT.js} +7 -139
- package/dist/chunk-XRL4R2TT.js.map +1 -0
- package/dist/{chunk-4JNKXOFZ.cjs → chunk-YBJ4QGNH.cjs} +11 -11
- package/dist/{chunk-4JNKXOFZ.cjs.map → chunk-YBJ4QGNH.cjs.map} +1 -1
- package/dist/{chunk-GFOEWPAP.cjs → chunk-YF3QUHKN.cjs} +49 -12
- package/dist/chunk-YF3QUHKN.cjs.map +1 -0
- package/dist/{chunk-H4D7WKDY.js → chunk-YNMO3DSR.js} +3 -3
- package/dist/{chunk-H4D7WKDY.js.map → chunk-YNMO3DSR.js.map} +1 -1
- package/dist/citations/index.cjs +10 -10
- package/dist/citations/index.js +2 -2
- package/dist/collaboration/index.cjs +77 -77
- package/dist/collaboration/index.js +2 -2
- package/dist/connect/docx.cjs +14 -14
- package/dist/connect/docx.js +10 -10
- package/dist/connect/index.cjs +1577 -962
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +3 -0
- package/dist/connect/index.js +1014 -450
- package/dist/connect/index.js.map +1 -1
- package/dist/connect/viewer.cjs +66 -66
- package/dist/connect/viewer.js +10 -10
- package/dist/connection/ConnectionProvider.d.ts +7 -0
- package/dist/connection/projects/ConnectedProjectsPanel.d.ts +34 -0
- package/dist/connection/projects/index.d.ts +1 -0
- package/dist/connection/workspace-dashboard/ConnectedWorkspaceDashboard.d.ts +37 -0
- package/dist/connection/workspace-dashboard/dashboard-rows.d.ts +42 -0
- package/dist/connection/workspace-dashboard/index.d.ts +1 -0
- package/dist/connection/workspace-list/ConnectedWorkspaceList.d.ts +37 -0
- package/dist/connection/workspace-list/WorkspaceCardsView.d.ts +15 -0
- package/dist/connection/workspace-list/WorkspaceFilterMenu.d.ts +4 -0
- package/dist/connection/workspace-list/WorkspaceTableView.d.ts +13 -0
- package/dist/connection/workspace-list/index.d.ts +5 -0
- package/dist/connection/workspace-list/projectBilling.d.ts +21 -0
- package/dist/connection/workspace-list/useConnectedWorkspaceList.d.ts +251 -0
- package/dist/connection/workspace-list/workspaceTable.d.ts +58 -0
- package/dist/connection/workspace-settings/ConnectedWorkspaceMembers.d.ts +26 -0
- package/dist/connection/workspace-settings/ConnectedWorkspaceSettings.d.ts +7 -9
- package/dist/connection/workspace-settings/index.d.ts +2 -1
- package/dist/connection/workspace-settings/useConnectedWorkspaceSettings.d.ts +0 -1
- package/dist/facts/index.cjs +3 -3
- package/dist/facts/index.js +2 -2
- package/dist/files/index.cjs +169 -169
- package/dist/files/index.js +3 -3
- package/dist/home/index.cjs +119 -459
- package/dist/home/index.cjs.map +1 -1
- package/dist/home/index.js +13 -419
- package/dist/home/index.js.map +1 -1
- package/dist/index.cjs +510 -510
- package/dist/index.js +18 -18
- package/dist/provider/BlocksProvider.d.ts +9 -1
- package/dist/retrieval/index.cjs +4 -4
- package/dist/retrieval/index.js +2 -2
- package/dist/settings/index.cjs +169 -165
- package/dist/settings/index.d.ts +1 -0
- package/dist/settings/index.js +2 -2
- package/dist/settings/tri-state-filters.d.ts +13 -0
- package/dist/shell/index.cjs +44 -44
- package/dist/shell/index.js +3 -3
- package/dist/site/index.cjs +5 -5
- package/dist/site/index.js +1 -1
- package/dist/studio/index.cjs +14 -14
- package/dist/studio/index.js +6 -6
- package/dist/workflow-canvas/index.cjs +27 -27
- package/dist/workflow-canvas/index.js +9 -9
- package/dist/workspaces/index.cjs +110 -369
- package/dist/workspaces/index.cjs.map +1 -1
- package/dist/workspaces/index.d.ts +2 -0
- package/dist/workspaces/index.js +12 -350
- package/dist/workspaces/index.js.map +1 -1
- package/dist/workspaces/workspace-groups.d.ts +90 -0
- package/dist/workspaces/workspace-roles.d.ts +11 -0
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +5 -5
- package/dist/ConnectedStreamedWordArtifact-QW74LKHN.cjs.map +0 -1
- package/dist/chunk-3PCBYOIZ.js.map +0 -1
- package/dist/chunk-4236BRZK.js.map +0 -1
- package/dist/chunk-CU2O32Z4.cjs.map +0 -1
- package/dist/chunk-EV7W64B6.js +0 -134
- package/dist/chunk-EV7W64B6.js.map +0 -1
- package/dist/chunk-GFNELPDP.cjs.map +0 -1
- package/dist/chunk-GFOEWPAP.cjs.map +0 -1
- package/dist/chunk-GRGS5M6O.cjs.map +0 -1
- package/dist/chunk-KPZZ5FHE.cjs.map +0 -1
- package/dist/chunk-KSHKTOY2.js.map +0 -1
- package/dist/chunk-LGBAZD37.js.map +0 -1
- package/dist/chunk-R6VCPDPF.js.map +0 -1
- package/dist/chunk-RQ2Y7USX.cjs.map +0 -1
- package/dist/chunk-RXK3XP62.cjs +0 -144
- package/dist/chunk-RXK3XP62.cjs.map +0 -1
- package/dist/chunk-SMN32BQ3.cjs.map +0 -1
- package/dist/chunk-TBEVGWY3.js.map +0 -1
- package/dist/chunk-U6JQ4KMX.cjs.map +0 -1
- package/dist/chunk-US3S4DCB.js.map +0 -1
- package/dist/chunk-XZIYRKLW.cjs.map +0 -1
- package/dist/chunk-ZLEYLCE4.js.map +0 -1
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkPCB2BPN3_cjs = require('./chunk-PCB2BPN3.cjs');
|
|
5
|
+
var chunkOALEDG67_cjs = require('./chunk-OALEDG67.cjs');
|
|
6
|
+
var chunk3VULDTNL_cjs = require('./chunk-3VULDTNL.cjs');
|
|
7
|
+
var ui = require('@arbidocs/react/ui');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
var lucideReact = require('lucide-react');
|
|
10
|
+
|
|
11
|
+
function HomeFrame({
|
|
12
|
+
testId = "home-page",
|
|
13
|
+
children
|
|
14
|
+
}) {
|
|
15
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "home-frame", "data-testid": testId, className: "flex h-full flex-col", children });
|
|
16
|
+
}
|
|
17
|
+
function HomeMain({ children }) {
|
|
18
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
19
|
+
"main",
|
|
20
|
+
{
|
|
21
|
+
"data-slot": "home-main",
|
|
22
|
+
className: "min-h-0 min-w-sidebar flex-1 overflow-hidden bg-background",
|
|
23
|
+
children
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
function HomeCenteredScroll({ children }) {
|
|
28
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "home-scroll", className: "h-full overflow-y-auto", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto max-w-6xl", children }) });
|
|
29
|
+
}
|
|
30
|
+
function HomeCenteredColumn({
|
|
31
|
+
className,
|
|
32
|
+
children
|
|
33
|
+
}) {
|
|
34
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
"data-slot": "home-column",
|
|
38
|
+
className: ui.cn("mx-auto h-full max-w-6xl px-4 pb-4 sm:px-8", className),
|
|
39
|
+
children
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
function HomeLoadError({
|
|
44
|
+
title,
|
|
45
|
+
body,
|
|
46
|
+
testId
|
|
47
|
+
}) {
|
|
48
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
49
|
+
"div",
|
|
50
|
+
{
|
|
51
|
+
"data-slot": "home-load-error",
|
|
52
|
+
className: "flex h-full flex-col items-center justify-center p-8",
|
|
53
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-md", children: /* @__PURE__ */ jsxRuntime.jsx(chunkPCB2BPN3_cjs.Callout, { variant: "danger", title, body, testId }) })
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
function CreateTile({
|
|
58
|
+
label,
|
|
59
|
+
ariaLabel,
|
|
60
|
+
onSelect,
|
|
61
|
+
help,
|
|
62
|
+
disabledReason,
|
|
63
|
+
className,
|
|
64
|
+
testId
|
|
65
|
+
}) {
|
|
66
|
+
const disabled = !!disabledReason;
|
|
67
|
+
const select = disabled ? void 0 : onSelect;
|
|
68
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
69
|
+
"div",
|
|
70
|
+
{
|
|
71
|
+
className: ui.cn(
|
|
72
|
+
"flex min-h-40 w-full flex-col items-center justify-center gap-1 rounded-lg p-4 text-muted-foreground border border-border bg-card shadow-xs transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
73
|
+
disabled ? "cursor-not-allowed opacity-60" : "cursor-pointer hover:border-ring/50 hover:bg-accent/40 hover:text-foreground",
|
|
74
|
+
className
|
|
75
|
+
),
|
|
76
|
+
onClick: select,
|
|
77
|
+
onKeyDown: (event) => {
|
|
78
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
79
|
+
event.preventDefault();
|
|
80
|
+
select?.();
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
role: "button",
|
|
84
|
+
tabIndex: 0,
|
|
85
|
+
"aria-disabled": disabled || void 0,
|
|
86
|
+
title: disabledReason,
|
|
87
|
+
"aria-label": ariaLabel ?? label,
|
|
88
|
+
"data-slot": "create-tile",
|
|
89
|
+
"data-testid": testId,
|
|
90
|
+
children: [
|
|
91
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex flex-col items-center gap-2 text-sm font-medium", children: [
|
|
92
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-6", "aria-hidden": "true" }),
|
|
93
|
+
label
|
|
94
|
+
] }),
|
|
95
|
+
(disabledReason ?? help) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "max-w-64 px-4 text-center text-xs leading-snug text-muted-foreground", children: disabledReason ?? help })
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
var DASHBOARD_QUIET_ACTION_CLASS = "h-8 gap-1.5 px-2 text-sm bg-transparent text-muted-foreground hover:bg-muted hover:text-foreground pointer-coarse:h-11";
|
|
101
|
+
function DashboardRoot({
|
|
102
|
+
testId,
|
|
103
|
+
className,
|
|
104
|
+
children
|
|
105
|
+
}) {
|
|
106
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
107
|
+
"div",
|
|
108
|
+
{
|
|
109
|
+
"data-slot": "dashboard",
|
|
110
|
+
"data-testid": testId,
|
|
111
|
+
className: ui.cn("flex flex-col gap-6", className),
|
|
112
|
+
children
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
function DashboardBand({
|
|
117
|
+
kind,
|
|
118
|
+
children
|
|
119
|
+
}) {
|
|
120
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
121
|
+
"div",
|
|
122
|
+
{
|
|
123
|
+
"data-slot": "dashboard-band",
|
|
124
|
+
"data-kind": kind,
|
|
125
|
+
className: kind === "start" ? "mt-2" : "mt-4 flex flex-col gap-3",
|
|
126
|
+
children
|
|
127
|
+
}
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
function DashboardColumns({ children }) {
|
|
131
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "dashboard-columns", className: "grid gap-8 @2xl:grid-cols-2", children });
|
|
132
|
+
}
|
|
133
|
+
function FactMark() {
|
|
134
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
135
|
+
"span",
|
|
136
|
+
{
|
|
137
|
+
"data-slot": "fact-mark",
|
|
138
|
+
className: "mx-1 size-1.5 shrink-0 rounded-full bg-muted-foreground/40",
|
|
139
|
+
"aria-hidden": true
|
|
140
|
+
}
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
function DashboardAction({ emphasis, icon, label, onClick, testId }) {
|
|
144
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
145
|
+
ui.Button,
|
|
146
|
+
{
|
|
147
|
+
variant: emphasis === "primary" ? "default" : "ghost",
|
|
148
|
+
size: "sm",
|
|
149
|
+
className: emphasis === "primary" ? "h-8 gap-1.5 px-3 text-sm pointer-coarse:h-11" : DASHBOARD_QUIET_ACTION_CLASS,
|
|
150
|
+
onClick,
|
|
151
|
+
"data-testid": testId,
|
|
152
|
+
children: [
|
|
153
|
+
icon,
|
|
154
|
+
label
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
function FactsStrip({
|
|
160
|
+
icon,
|
|
161
|
+
title,
|
|
162
|
+
count,
|
|
163
|
+
onOpen,
|
|
164
|
+
action,
|
|
165
|
+
groups,
|
|
166
|
+
empty,
|
|
167
|
+
className,
|
|
168
|
+
testId
|
|
169
|
+
}) {
|
|
170
|
+
const filled = groups.filter((g) => g.rows.length > 0);
|
|
171
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
172
|
+
"section",
|
|
173
|
+
{
|
|
174
|
+
className: ui.cn("flex min-w-0 flex-col gap-1", className),
|
|
175
|
+
"data-slot": "facts-strip",
|
|
176
|
+
"data-testid": testId,
|
|
177
|
+
children: [
|
|
178
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
179
|
+
chunkOALEDG67_cjs.SectionHeader,
|
|
180
|
+
{
|
|
181
|
+
icon,
|
|
182
|
+
title,
|
|
183
|
+
count,
|
|
184
|
+
onOpen,
|
|
185
|
+
openTestId: testId && `${testId}-open`,
|
|
186
|
+
action
|
|
187
|
+
}
|
|
188
|
+
),
|
|
189
|
+
filled.length === 0 ? empty && /* @__PURE__ */ jsxRuntime.jsx(
|
|
190
|
+
chunkOALEDG67_cjs.EmptyStrip,
|
|
191
|
+
{
|
|
192
|
+
icon: empty.icon,
|
|
193
|
+
label: empty.label,
|
|
194
|
+
description: empty.description,
|
|
195
|
+
onSelect: empty.onSelect,
|
|
196
|
+
testId: empty.testId
|
|
197
|
+
}
|
|
198
|
+
) : filled.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
199
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 pb-1 pt-1 text-right text-xs text-muted-foreground", children: group.caption }),
|
|
200
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { children: group.rows.map((row) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
201
|
+
"button",
|
|
202
|
+
{
|
|
203
|
+
type: "button",
|
|
204
|
+
onClick: row.onSelect,
|
|
205
|
+
title: row.title,
|
|
206
|
+
className: "flex w-full min-w-0 items-center gap-3 rounded-md px-3 py-2 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&:hover]:bg-muted pointer-coarse:min-h-11",
|
|
207
|
+
"data-testid": group.rowTestId ?? (testId && `${testId}-row`),
|
|
208
|
+
children: [
|
|
209
|
+
row.leading,
|
|
210
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-sm text-foreground", children: row.title }),
|
|
211
|
+
row.time && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-xs tabular-nums text-muted-foreground", children: row.time })
|
|
212
|
+
]
|
|
213
|
+
}
|
|
214
|
+
) }, row.id)) })
|
|
215
|
+
] }, group.caption))
|
|
216
|
+
]
|
|
217
|
+
}
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
function RecentList({
|
|
221
|
+
icon,
|
|
222
|
+
title,
|
|
223
|
+
count,
|
|
224
|
+
onOpen,
|
|
225
|
+
openHref,
|
|
226
|
+
action,
|
|
227
|
+
rows,
|
|
228
|
+
caption,
|
|
229
|
+
empty,
|
|
230
|
+
className,
|
|
231
|
+
testId
|
|
232
|
+
}) {
|
|
233
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
234
|
+
"section",
|
|
235
|
+
{
|
|
236
|
+
className: ui.cn("flex min-w-0 flex-col gap-1", className),
|
|
237
|
+
"data-slot": "recent-list",
|
|
238
|
+
"data-testid": testId,
|
|
239
|
+
children: [
|
|
240
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
241
|
+
chunkOALEDG67_cjs.SectionHeader,
|
|
242
|
+
{
|
|
243
|
+
icon,
|
|
244
|
+
title,
|
|
245
|
+
count,
|
|
246
|
+
onOpen,
|
|
247
|
+
openHref,
|
|
248
|
+
openTestId: testId && `${testId}-open`,
|
|
249
|
+
action
|
|
250
|
+
}
|
|
251
|
+
),
|
|
252
|
+
rows.length === 0 ? empty?.onSelect ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
253
|
+
chunkOALEDG67_cjs.EmptyStrip,
|
|
254
|
+
{
|
|
255
|
+
icon: empty.icon,
|
|
256
|
+
label: empty.label,
|
|
257
|
+
description: empty.description,
|
|
258
|
+
onSelect: empty.onSelect,
|
|
259
|
+
testId: testId && `${testId}-empty-action`
|
|
260
|
+
}
|
|
261
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-1 py-3 text-sm text-muted-foreground", children: empty?.description ?? empty?.label }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
262
|
+
caption && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "sr-only", "data-testid": testId && `${testId}-caption`, children: caption }),
|
|
263
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { children: rows.map((row) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
264
|
+
"li",
|
|
265
|
+
{
|
|
266
|
+
className: "relative flex items-center rounded-md transition-colors [&:hover]:bg-muted has-[:focus-visible]:bg-muted",
|
|
267
|
+
"data-slot": "recent-row",
|
|
268
|
+
children: [
|
|
269
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
270
|
+
chunk3VULDTNL_cjs.ActionLink,
|
|
271
|
+
{
|
|
272
|
+
href: row.href,
|
|
273
|
+
onSelect: row.onSelect,
|
|
274
|
+
title: row.title,
|
|
275
|
+
className: ui.cn(
|
|
276
|
+
"flex min-w-0 flex-1 items-start gap-3 rounded-md px-3 py-2 text-left focus-visible:outline-none",
|
|
277
|
+
row.onSelect && "cursor-pointer",
|
|
278
|
+
"pointer-coarse:min-h-11"
|
|
279
|
+
),
|
|
280
|
+
"data-testid": testId && `${testId}-row`,
|
|
281
|
+
children: [
|
|
282
|
+
row.leading,
|
|
283
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
284
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline gap-2", children: [
|
|
285
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-sm font-medium text-foreground", children: row.title }),
|
|
286
|
+
!row.trailing && row.time && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-xs tabular-nums text-muted-foreground", children: row.time })
|
|
287
|
+
] }),
|
|
288
|
+
row.subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 truncate text-xs text-muted-foreground", children: row.subtitle })
|
|
289
|
+
] })
|
|
290
|
+
]
|
|
291
|
+
}
|
|
292
|
+
),
|
|
293
|
+
row.trailing ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0 pr-3", children: row.trailing }) : null
|
|
294
|
+
]
|
|
295
|
+
},
|
|
296
|
+
row.id
|
|
297
|
+
)) })
|
|
298
|
+
] })
|
|
299
|
+
]
|
|
300
|
+
}
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
exports.CreateTile = CreateTile;
|
|
305
|
+
exports.DASHBOARD_QUIET_ACTION_CLASS = DASHBOARD_QUIET_ACTION_CLASS;
|
|
306
|
+
exports.DashboardAction = DashboardAction;
|
|
307
|
+
exports.DashboardBand = DashboardBand;
|
|
308
|
+
exports.DashboardColumns = DashboardColumns;
|
|
309
|
+
exports.DashboardRoot = DashboardRoot;
|
|
310
|
+
exports.FactMark = FactMark;
|
|
311
|
+
exports.FactsStrip = FactsStrip;
|
|
312
|
+
exports.HomeCenteredColumn = HomeCenteredColumn;
|
|
313
|
+
exports.HomeCenteredScroll = HomeCenteredScroll;
|
|
314
|
+
exports.HomeFrame = HomeFrame;
|
|
315
|
+
exports.HomeLoadError = HomeLoadError;
|
|
316
|
+
exports.HomeMain = HomeMain;
|
|
317
|
+
exports.RecentList = RecentList;
|
|
318
|
+
//# sourceMappingURL=chunk-OOU4QLRK.cjs.map
|
|
319
|
+
//# sourceMappingURL=chunk-OOU4QLRK.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/home/HomeLayout.tsx","../src/home/CreateTile.tsx","../src/home/DashboardParts.tsx","../src/home/FactsStrip.tsx","../src/home/RecentList.tsx"],"names":["jsx","cn","Callout","jsxs","Plus","Button","SectionHeader","EmptyStrip","Fragment","ActionLink"],"mappings":"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","file":"chunk-OOU4QLRK.cjs","sourcesContent":["import type { ReactNode } from 'react'\nimport { cn } from '@arbidocs/react/ui'\nimport { Callout } from '../components/Callout'\n\n/** Column of the home page: greeting header, then the content. */\nexport function HomeFrame({\n testId = 'home-page',\n children,\n}: {\n testId?: string\n children: ReactNode\n}) {\n return (\n <div data-slot=\"home-frame\" data-testid={testId} className=\"flex h-full flex-col\">\n {children}\n </div>\n )\n}\n\n/** Content area under the header; the pages inside own their scrolling. */\nexport function HomeMain({ children }: { children: ReactNode }) {\n return (\n <main\n data-slot=\"home-main\"\n className=\"min-h-0 min-w-sidebar flex-1 overflow-hidden bg-background\"\n >\n {children}\n </main>\n )\n}\n\n/**\n * Scroll container that spans the full width (so its scrollbar rides the window edge) with the\n * content centred in a bounded column.\n */\nexport function HomeCenteredScroll({ children }: { children: ReactNode }) {\n return (\n <div data-slot=\"home-scroll\" className=\"h-full overflow-y-auto\">\n <div className=\"mx-auto max-w-6xl\">{children}</div>\n </div>\n )\n}\n\n/** Bounded, centred column for a full-height child (the workspaces table). */\nexport function HomeCenteredColumn({\n className,\n children,\n}: {\n className?: string\n children: ReactNode\n}) {\n return (\n <div\n data-slot=\"home-column\"\n className={cn('mx-auto h-full max-w-6xl px-4 pb-4 sm:px-8', className)}\n >\n {children}\n </div>\n )\n}\n\n/** Centred error notice for a page that could not load. */\nexport function HomeLoadError({\n title,\n body,\n testId,\n}: {\n title: string\n body: string\n testId?: string\n}) {\n return (\n <div\n data-slot=\"home-load-error\"\n className=\"flex h-full flex-col items-center justify-center p-8\"\n >\n <div className=\"w-full max-w-md\">\n <Callout variant=\"danger\" title={title} body={body} testId={testId} />\n </div>\n </div>\n )\n}\n","import type { ReactNode } from 'react'\nimport { Plus } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\n\nexport interface CreateTileProps {\n /** Visible label, e.g. \"New workspace\". */\n label: string\n /** Accessible name; defaults to `label`. */\n ariaLabel?: string\n onSelect?: () => void\n /** One line explaining what is being created (first-run empty state). */\n help?: ReactNode\n /** When set, the tile is disabled and shows this explanation instead of `help`. */\n disabledReason?: string\n className?: string\n testId?: string\n}\n\n/**\n * The \"create\" tile. Sits in the grid beside the workspace tiles at the same\n * height, in the same tonal family: no dashed outline, no shadow.\n */\nexport function CreateTile({\n label,\n ariaLabel,\n onSelect,\n help,\n disabledReason,\n className,\n testId,\n}: CreateTileProps) {\n const disabled = !!disabledReason\n const select = disabled ? undefined : onSelect\n return (\n <div\n className={cn(\n 'flex min-h-40 w-full flex-col items-center justify-center gap-1 rounded-lg p-4 text-muted-foreground border border-border bg-card shadow-xs transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n disabled\n ? 'cursor-not-allowed opacity-60'\n : 'cursor-pointer hover:border-ring/50 hover:bg-accent/40 hover:text-foreground',\n className\n )}\n onClick={select}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n select?.()\n }\n }}\n role=\"button\"\n tabIndex={0}\n aria-disabled={disabled || undefined}\n title={disabledReason}\n aria-label={ariaLabel ?? label}\n data-slot=\"create-tile\"\n data-testid={testId}\n >\n <span className=\"inline-flex flex-col items-center gap-2 text-sm font-medium\">\n <Plus className=\"size-6\" aria-hidden=\"true\" />\n {label}\n </span>\n {(disabledReason ?? help) && (\n <p className=\"max-w-64 px-4 text-center text-xs leading-snug text-muted-foreground\">\n {disabledReason ?? help}\n </p>\n )}\n </div>\n )\n}\n","import type { ReactNode } from 'react'\nimport { Button, cn } from '@arbidocs/react/ui'\n\n/** A section's quiet header action: ghost, small, still 44px on touch. */\nexport const DASHBOARD_QUIET_ACTION_CLASS =\n 'h-8 gap-1.5 px-2 text-sm bg-transparent text-muted-foreground hover:bg-muted hover:text-foreground pointer-coarse:h-11'\n\n/** Column of the workspace dashboard's bands. A container, so children can use `@2xl:` queries. */\nexport function DashboardRoot({\n testId,\n className,\n children,\n}: {\n testId?: string\n className?: string\n children: ReactNode\n}) {\n return (\n <div\n data-slot=\"dashboard\"\n data-testid={testId}\n className={cn('flex flex-col gap-6', className)}\n >\n {children}\n </div>\n )\n}\n\n/** A dashboard band: `start` is the tiles under the identity bar, `recent` the lists with an eyebrow. */\nexport function DashboardBand({\n kind,\n children,\n}: {\n kind: 'start' | 'recent'\n children: ReactNode\n}) {\n return (\n <div\n data-slot=\"dashboard-band\"\n data-kind={kind}\n className={kind === 'start' ? 'mt-2' : 'mt-4 flex flex-col gap-3'}\n >\n {children}\n </div>\n )\n}\n\n/** Two equal columns from the `@2xl` container width, one below it. */\nexport function DashboardColumns({ children }: { children: ReactNode }) {\n return (\n <div data-slot=\"dashboard-columns\" className=\"grid gap-8 @2xl:grid-cols-2\">\n {children}\n </div>\n )\n}\n\n/** A fact row's mark: a quiet dot. */\nexport function FactMark() {\n return (\n <span\n data-slot=\"fact-mark\"\n className=\"mx-1 size-1.5 shrink-0 rounded-full bg-muted-foreground/40\"\n aria-hidden\n />\n )\n}\n\nexport interface DashboardActionProps {\n /** `primary` is the page's one filled action; `quiet` the ghost header actions. */\n emphasis: 'primary' | 'quiet'\n icon: ReactNode\n label: string\n onClick: () => void\n testId?: string\n}\n\n/** Header action of a dashboard section (\"New chat\", \"New fact\"). */\nexport function DashboardAction({ emphasis, icon, label, onClick, testId }: DashboardActionProps) {\n return (\n <Button\n variant={emphasis === 'primary' ? 'default' : 'ghost'}\n size=\"sm\"\n className={\n emphasis === 'primary'\n ? 'h-8 gap-1.5 px-3 text-sm pointer-coarse:h-11'\n : DASHBOARD_QUIET_ACTION_CLASS\n }\n onClick={onClick}\n data-testid={testId}\n >\n {icon}\n {label}\n </Button>\n )\n}\n","import type { ReactNode } from 'react'\nimport type { LucideIcon } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { EmptyStrip, SectionHeader } from './sections'\n\nexport interface FactsStripRow {\n id: string\n leading?: ReactNode\n title: string\n /** Right-aligned stamp: a date or a time. */\n time?: string\n onSelect?: () => void\n}\n\nexport interface FactsStripGroup {\n /** Captions the group (\"Upcoming\", \"Created\"); an empty group is not rendered. */\n caption: string\n rows: FactsStripRow[]\n /** Test id of every row in this group. Defaults to `${testId}-row`. */\n rowTestId?: string\n}\n\nexport interface FactsStripEmpty {\n icon: LucideIcon\n label: ReactNode\n description?: ReactNode\n onSelect?: () => void\n testId?: string\n}\n\nexport interface FactsStripProps {\n icon?: LucideIcon\n title: string\n count?: number\n onOpen?: () => void\n action?: ReactNode\n groups: FactsStripGroup[]\n empty?: FactsStripEmpty\n className?: string\n /** Root test id; the title button gets `${testId}-open`. */\n testId?: string\n}\n\n/**\n * A glanceable band of captioned groups (facts: upcoming, recently created).\n * Not a third list page: callers hand it a few rows per group.\n */\nexport function FactsStrip({\n icon,\n title,\n count,\n onOpen,\n action,\n groups,\n empty,\n className,\n testId,\n}: FactsStripProps) {\n const filled = groups.filter((g) => g.rows.length > 0)\n return (\n <section\n className={cn('flex min-w-0 flex-col gap-1', className)}\n data-slot=\"facts-strip\"\n data-testid={testId}\n >\n <SectionHeader\n icon={icon}\n title={title}\n count={count}\n onOpen={onOpen}\n openTestId={testId && `${testId}-open`}\n action={action}\n />\n {filled.length === 0\n ? empty && (\n <EmptyStrip\n icon={empty.icon}\n label={empty.label}\n description={empty.description}\n onSelect={empty.onSelect}\n testId={empty.testId}\n />\n )\n : filled.map((group) => (\n <div key={group.caption} className=\"min-w-0\">\n <p className=\"px-3 pb-1 pt-1 text-right text-xs text-muted-foreground\">\n {group.caption}\n </p>\n <ul>\n {group.rows.map((row) => (\n <li key={row.id}>\n <button\n type=\"button\"\n onClick={row.onSelect}\n title={row.title}\n className=\"flex w-full min-w-0 items-center gap-3 rounded-md px-3 py-2 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [&:hover]:bg-muted pointer-coarse:min-h-11\"\n data-testid={group.rowTestId ?? (testId && `${testId}-row`)}\n >\n {row.leading}\n <span className=\"min-w-0 flex-1 truncate text-sm text-foreground\">\n {row.title}\n </span>\n {row.time && (\n <span className=\"shrink-0 text-xs tabular-nums text-muted-foreground\">\n {row.time}\n </span>\n )}\n </button>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </section>\n )\n}\n","import type { ReactNode } from 'react'\nimport type { LucideIcon } from 'lucide-react'\nimport { cn } from '@arbidocs/react/ui'\nimport { ActionLink } from '../components/ActionLink'\nimport { EmptyStrip, SectionHeader } from './sections'\n\n/** One listed item. Source-agnostic: a chat, a file. */\nexport interface RecentRow {\n id: string\n /** Bare entity mark (an icon carries its own identity; no tinted box). */\n leading?: ReactNode\n title: string\n subtitle?: string\n /** Pinned right on the title line, like a message time. Hidden when `trailing` is set. */\n time?: string\n onSelect?: () => void\n /** Real link target; `onSelect` still fires on a plain click (see `ActionLink`). */\n href?: string\n /** A control rendered beside the row, outside its button. */\n trailing?: ReactNode\n}\n\nexport interface RecentListEmpty {\n icon?: LucideIcon\n label: ReactNode\n description?: ReactNode\n /** Makes the empty strip an invitation button. */\n onSelect?: () => void\n}\n\nexport interface RecentListProps {\n icon?: LucideIcon\n title: string\n count?: number\n /** Opens the full list; makes the header title a button. */\n onOpen?: () => void\n /** Real link target of the header title (with `onOpen`, plain clicks call `onOpen`). */\n openHref?: string\n /** The section's one quiet header action. */\n action?: ReactNode\n rows: RecentRow[]\n /** Names the right-hand column (\"Added\", \"Messaged\"). */\n caption?: string\n /** What an empty section says. A plain muted line unless `onSelect` is set. */\n empty?: RecentListEmpty\n className?: string\n /** Root test id; derived ids: `-open`, `-caption`, `-row`, `-empty-action`. */\n testId?: string\n}\n\n/**\n * A titled list of recent items (files, chats): plain rows under a quiet\n * header. An empty list is one tonal strip that invites the first item.\n */\nexport function RecentList({\n icon,\n title,\n count,\n onOpen,\n openHref,\n action,\n rows,\n caption,\n empty,\n className,\n testId,\n}: RecentListProps) {\n return (\n <section\n className={cn('flex min-w-0 flex-col gap-1', className)}\n data-slot=\"recent-list\"\n data-testid={testId}\n >\n <SectionHeader\n icon={icon}\n title={title}\n count={count}\n onOpen={onOpen}\n openHref={openHref}\n openTestId={testId && `${testId}-open`}\n action={action}\n />\n {rows.length === 0 ? (\n empty?.onSelect ? (\n <EmptyStrip\n icon={empty.icon}\n label={empty.label}\n description={empty.description}\n onSelect={empty.onSelect}\n testId={testId && `${testId}-empty-action`}\n />\n ) : (\n <p className=\"px-1 py-3 text-sm text-muted-foreground\">\n {empty?.description ?? empty?.label}\n </p>\n )\n ) : (\n <>\n {caption && (\n <p className=\"sr-only\" data-testid={testId && `${testId}-caption`}>\n {caption}\n </p>\n )}\n <ul>\n {rows.map((row) => (\n <li\n key={row.id}\n className=\"relative flex items-center rounded-md transition-colors [&:hover]:bg-muted has-[:focus-visible]:bg-muted\"\n data-slot=\"recent-row\"\n >\n <ActionLink\n href={row.href}\n onSelect={row.onSelect}\n title={row.title}\n className={cn(\n 'flex min-w-0 flex-1 items-start gap-3 rounded-md px-3 py-2 text-left focus-visible:outline-none',\n row.onSelect && 'cursor-pointer',\n 'pointer-coarse:min-h-11'\n )}\n data-testid={testId && `${testId}-row`}\n >\n {row.leading}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-baseline gap-2\">\n <span className=\"min-w-0 flex-1 truncate text-sm font-medium text-foreground\">\n {row.title}\n </span>\n {!row.trailing && row.time && (\n <span className=\"shrink-0 text-xs tabular-nums text-muted-foreground\">\n {row.time}\n </span>\n )}\n </div>\n {row.subtitle && (\n <p className=\"mt-0.5 truncate text-xs text-muted-foreground\">\n {row.subtitle}\n </p>\n )}\n </div>\n </ActionLink>\n {row.trailing ? <div className=\"shrink-0 pr-3\">{row.trailing}</div> : null}\n </li>\n ))}\n </ul>\n </>\n )}\n </section>\n )\n}\n"]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var lucideReact = require('lucide-react');
|
|
5
|
+
var ui = require('@arbidocs/react/ui');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
// src/home/ProjectBandParts.tsx
|
|
9
|
+
function PlainBandTitle({
|
|
10
|
+
title,
|
|
11
|
+
count,
|
|
12
|
+
hint
|
|
13
|
+
}) {
|
|
14
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", "data-slot": "band-title", children: [
|
|
15
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-semibold text-foreground", children: title }),
|
|
16
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm tabular-nums text-muted-foreground", children: count }),
|
|
17
|
+
hint && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: hint })
|
|
18
|
+
] });
|
|
19
|
+
}
|
|
20
|
+
function ProjectBandTitle({
|
|
21
|
+
name,
|
|
22
|
+
count,
|
|
23
|
+
nameTestId,
|
|
24
|
+
breakdown,
|
|
25
|
+
readout
|
|
26
|
+
}) {
|
|
27
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1", "data-slot": "band-title", children: [
|
|
28
|
+
/* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
|
|
29
|
+
/* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-semibold text-foreground", "data-testid": nameTestId, children: name }) }),
|
|
30
|
+
breakdown && /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { side: "top", children: breakdown })
|
|
31
|
+
] }),
|
|
32
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm tabular-nums text-muted-foreground", children: count }),
|
|
33
|
+
readout
|
|
34
|
+
] });
|
|
35
|
+
}
|
|
36
|
+
function ProjectBreakdown({ name, badge, meters, dailyCap }) {
|
|
37
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-64 space-y-2.5", "data-slot": "project-breakdown", children: [
|
|
38
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-3", children: [
|
|
39
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-semibold text-foreground", children: name }),
|
|
40
|
+
badge
|
|
41
|
+
] }),
|
|
42
|
+
meters && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2.5 border-t border-border/50 pt-2.5", children: [
|
|
43
|
+
meters,
|
|
44
|
+
dailyCap && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-6 text-xs", children: [
|
|
45
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: dailyCap.label }),
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium tabular-nums text-foreground", children: dailyCap.value })
|
|
47
|
+
] })
|
|
48
|
+
] })
|
|
49
|
+
] });
|
|
50
|
+
}
|
|
51
|
+
function ProjectReadout({ plan, usageLabel = "Usage:", usage }) {
|
|
52
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
53
|
+
plan && /* @__PURE__ */ jsxRuntime.jsx(
|
|
54
|
+
"span",
|
|
55
|
+
{
|
|
56
|
+
className: "flex items-center whitespace-nowrap",
|
|
57
|
+
"data-testid": plan.testId,
|
|
58
|
+
"data-slot": "project-plan",
|
|
59
|
+
children: plan.badge
|
|
60
|
+
}
|
|
61
|
+
),
|
|
62
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
63
|
+
"span",
|
|
64
|
+
{
|
|
65
|
+
className: "flex items-center gap-1.5 text-sm text-muted-foreground",
|
|
66
|
+
"data-testid": usage.testId,
|
|
67
|
+
"data-slot": "project-usage",
|
|
68
|
+
children: [
|
|
69
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: usageLabel }),
|
|
70
|
+
usage.node
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
)
|
|
74
|
+
] });
|
|
75
|
+
}
|
|
76
|
+
function GridWithSelectionBar({
|
|
77
|
+
className,
|
|
78
|
+
grid,
|
|
79
|
+
bar
|
|
80
|
+
}) {
|
|
81
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
82
|
+
"div",
|
|
83
|
+
{
|
|
84
|
+
className: ui.cn("flex h-full min-h-0 flex-col", className),
|
|
85
|
+
"data-slot": "grid-with-selection-bar",
|
|
86
|
+
children: [
|
|
87
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative min-h-0 flex-1", children: grid }),
|
|
88
|
+
bar
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
function BulkDeleteButton({
|
|
94
|
+
count,
|
|
95
|
+
isCompact,
|
|
96
|
+
disabled,
|
|
97
|
+
onClick,
|
|
98
|
+
label = "Delete"
|
|
99
|
+
}) {
|
|
100
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
101
|
+
ui.Button,
|
|
102
|
+
{
|
|
103
|
+
variant: "outline",
|
|
104
|
+
size: "sm",
|
|
105
|
+
onClick,
|
|
106
|
+
disabled,
|
|
107
|
+
title: label,
|
|
108
|
+
className: "border-destructive/30 text-destructive hover:bg-destructive hover:text-destructive-foreground pointer-coarse:h-11",
|
|
109
|
+
children: [
|
|
110
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "size-4" }),
|
|
111
|
+
isCompact ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: label }) : /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-1", children: [
|
|
112
|
+
label,
|
|
113
|
+
" ",
|
|
114
|
+
count > 0 ? `(${count})` : ""
|
|
115
|
+
] })
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
function GridCellRow({ testId, children }) {
|
|
121
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "grid-cell-row", "data-testid": testId, className: "flex items-center", children });
|
|
122
|
+
}
|
|
123
|
+
function EmptyCellDash() {
|
|
124
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", "aria-label": "None", children: "\u2014" });
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
exports.BulkDeleteButton = BulkDeleteButton;
|
|
128
|
+
exports.EmptyCellDash = EmptyCellDash;
|
|
129
|
+
exports.GridCellRow = GridCellRow;
|
|
130
|
+
exports.GridWithSelectionBar = GridWithSelectionBar;
|
|
131
|
+
exports.PlainBandTitle = PlainBandTitle;
|
|
132
|
+
exports.ProjectBandTitle = ProjectBandTitle;
|
|
133
|
+
exports.ProjectBreakdown = ProjectBreakdown;
|
|
134
|
+
exports.ProjectReadout = ProjectReadout;
|
|
135
|
+
//# sourceMappingURL=chunk-OU3RGQFX.cjs.map
|
|
136
|
+
//# sourceMappingURL=chunk-OU3RGQFX.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/home/ProjectBandParts.tsx"],"names":["jsxs","jsx","Tooltip","TooltipTrigger","TooltipContent","Fragment","cn","Button","Trash2"],"mappings":"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","file":"chunk-OU3RGQFX.cjs","sourcesContent":["import type { ReactNode } from 'react'\nimport { Trash2 } from 'lucide-react'\nimport { Button, cn, Tooltip, TooltipContent, TooltipTrigger } from '@arbidocs/react/ui'\n\n/** Name + count text of a band that has no project to open (\"Common\", own workspaces). */\nexport function PlainBandTitle({\n title,\n count,\n hint,\n}: {\n title: string\n count: number\n /** Muted explanation after the count, e.g. \"Shared with everyone\". */\n hint?: string\n}) {\n return (\n <span className=\"flex items-center gap-2\" data-slot=\"band-title\">\n <span className=\"truncate text-sm font-semibold text-foreground\">{title}</span>\n <span className=\"text-sm tabular-nums text-muted-foreground\">{count}</span>\n {hint && <span className=\"text-sm text-muted-foreground\">{hint}</span>}\n </span>\n )\n}\n\nexport interface ProjectBandTitleProps {\n name: string\n count: number\n nameTestId: string\n /** Full plan / usage breakdown shown as a tooltip on the name. */\n breakdown?: ReactNode\n /** Plan badge and usage readout, right after the count. */\n readout?: ReactNode\n}\n\n/** Title of a project band: name (with breakdown tooltip), count and the plan / usage readout. */\nexport function ProjectBandTitle({\n name,\n count,\n nameTestId,\n breakdown,\n readout,\n}: ProjectBandTitleProps) {\n return (\n <span className=\"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1\" data-slot=\"band-title\">\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"truncate text-sm font-semibold text-foreground\" data-testid={nameTestId}>\n {name}\n </span>\n </TooltipTrigger>\n {breakdown && <TooltipContent side=\"top\">{breakdown}</TooltipContent>}\n </Tooltip>\n <span className=\"text-sm tabular-nums text-muted-foreground\">{count}</span>\n {readout}\n </span>\n )\n}\n\nexport interface ProjectBreakdownProps {\n name: string\n /** Plan badge (owned projects only). */\n badge?: ReactNode\n /** Quota meters; shown for owned projects only. */\n meters?: ReactNode\n dailyCap?: { label: string; value: string }\n}\n\n/** Plan + limits panel of the project tooltip. */\nexport function ProjectBreakdown({ name, badge, meters, dailyCap }: ProjectBreakdownProps) {\n return (\n <div className=\"w-64 space-y-2.5\" data-slot=\"project-breakdown\">\n <div className=\"flex items-center justify-between gap-3\">\n <span className=\"text-sm font-semibold text-foreground\">{name}</span>\n {badge}\n </div>\n {meters && (\n <div className=\"space-y-2.5 border-t border-border/50 pt-2.5\">\n {meters}\n {dailyCap && (\n <div className=\"flex items-center justify-between gap-6 text-xs\">\n <span className=\"text-muted-foreground\">{dailyCap.label}</span>\n <span className=\"font-medium tabular-nums text-foreground\">{dailyCap.value}</span>\n </div>\n )}\n </div>\n )}\n </div>\n )\n}\n\nexport interface ProjectReadoutProps {\n /** Plan badge, with the id of its wrapper. */\n plan?: { badge: ReactNode; testId: string }\n usageLabel?: string\n /** The quota meter (a slot: it needs the host's formatter), with its wrapper's test id. */\n usage: { testId: string; node: ReactNode }\n}\n\n/** Plan / usage readout beside a project name: always visible, nothing hover-only. */\nexport function ProjectReadout({ plan, usageLabel = 'Usage:', usage }: ProjectReadoutProps) {\n return (\n <>\n {plan && (\n <span\n className=\"flex items-center whitespace-nowrap\"\n data-testid={plan.testId}\n data-slot=\"project-plan\"\n >\n {plan.badge}\n </span>\n )}\n <span\n className=\"flex items-center gap-1.5 text-sm text-muted-foreground\"\n data-testid={usage.testId}\n data-slot=\"project-usage\"\n >\n <span>{usageLabel}</span>\n {usage.node}\n </span>\n </>\n )\n}\n\n/** Column filling its container: scrolling grid on top, selection bar underneath. */\nexport function GridWithSelectionBar({\n className,\n grid,\n bar,\n}: {\n className?: string\n grid: ReactNode\n bar: ReactNode\n}) {\n return (\n <div\n className={cn('flex h-full min-h-0 flex-col', className)}\n data-slot=\"grid-with-selection-bar\"\n >\n <div className=\"relative min-h-0 flex-1\">{grid}</div>\n {bar}\n </div>\n )\n}\n\nexport interface BulkDeleteButtonProps {\n count: number\n /** Icon only (a narrow selection bar). */\n isCompact: boolean\n disabled?: boolean\n onClick: () => void\n label?: string\n}\n\n/** \"Delete (n)\" of a selection bar. */\nexport function BulkDeleteButton({\n count,\n isCompact,\n disabled,\n onClick,\n label = 'Delete',\n}: BulkDeleteButtonProps) {\n return (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onClick}\n disabled={disabled}\n title={label}\n className=\"border-destructive/30 text-destructive hover:bg-destructive hover:text-destructive-foreground pointer-coarse:h-11\"\n >\n <Trash2 className=\"size-4\" />\n {isCompact ? (\n <span className=\"sr-only\">{label}</span>\n ) : (\n <span className=\"ml-1\">\n {label} {count > 0 ? `(${count})` : ''}\n </span>\n )}\n </Button>\n )\n}\n\n/** Single-line row inside a grid cell (identity pill, avatars). */\nexport function GridCellRow({ testId, children }: { testId?: string; children: ReactNode }) {\n return (\n <div data-slot=\"grid-cell-row\" data-testid={testId} className=\"flex items-center\">\n {children}\n </div>\n )\n}\n\n/** Muted em dash of an empty grid cell. */\nexport function EmptyCellDash() {\n return (\n <span className=\"text-muted-foreground\" aria-label=\"None\">\n —\n </span>\n )\n}\n"]}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { SchemaForm, workflowRunStatusLabel } from './chunk-
|
|
3
|
-
import { FoldSection } from './chunk-
|
|
2
|
+
import { SchemaForm, workflowRunStatusLabel } from './chunk-XI37A7HH.js';
|
|
3
|
+
import { FoldSection } from './chunk-BQ77KSXU.js';
|
|
4
4
|
import { UploadDropzone } from './chunk-M4S75AEJ.js';
|
|
5
5
|
import { useControllableState } from './chunk-RLWIUUQ5.js';
|
|
6
|
-
import { ActionLink } from './chunk-
|
|
6
|
+
import { ActionLink } from './chunk-VF5EUAIV.js';
|
|
7
7
|
import { GridView } from './chunk-N5YEF3LC.js';
|
|
8
8
|
import { TabHeader } from './chunk-4WWM3GQ5.js';
|
|
9
9
|
import { workflowSteps, canAssign, nextAction, validateStep, assigneeName, runFieldsOf, failedUpstream, stepPhase, useElementSize, sendBackTargets, formatDate, shownValue, stepKindOf, stepLevels, waitingDocuments, stepDependencies, reviewInstructions, splitDocRef, isPersonStep, eventWaitingDocuments, waitingForDocumentsText, StepBadgeMark, StepChip, STEP_KIND_ICONS, DEFAULT_STEP_KIND_LABELS, composeStepPrompt, isRunFinished, runFields } from './chunk-PDKM27DF.js';
|
|
10
10
|
import { fieldToFrontmatter, workflowFromFrontmatter, mergeSkillWorkflows } from './chunk-TZGBRLPK.js';
|
|
11
11
|
import { testIdOr } from './chunk-7F6CBP3Z.js';
|
|
12
|
-
import { useBlocksEnvironment } from './chunk-
|
|
12
|
+
import { useBlocksEnvironment } from './chunk-F57LNUSZ.js';
|
|
13
13
|
import { useState, useRef, useEffect, useCallback, useMemo } from 'react';
|
|
14
14
|
import { Globe, Terminal, Telescope, ListChecks, FileText, ImageIcon, Brain, Wand2, Loader2, UserRound, CornerUpLeft, ShieldCheck, MessageSquare, Check, Hourglass, Clock, PenLine, X, ExternalLink, Mail, Table2, CheckCircle2, ArrowLeft, ArrowRight, RotateCw, GitBranch, AlertTriangle, Bot, Sparkles, Copy, Play, Pencil, Lock, Download, Trash2, Eye, History, LayoutGrid, List, ChevronLeft, ChevronRight, ArrowUpRight, BellRing, Flag, RotateCcw, Disc, Phone, UserRoundCog, MessageSquareReply, Square, KeyRound } from 'lucide-react';
|
|
15
15
|
import { cn, Popover, PopoverTrigger, PopoverContent, Button, Textarea, Card, Label, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, Input, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, Tooltip, TooltipTrigger, TooltipContent } from '@arbidocs/react/ui';
|
|
@@ -3526,6 +3526,37 @@ function SkillLibraryDetail({
|
|
|
3526
3526
|
}
|
|
3527
3527
|
);
|
|
3528
3528
|
}
|
|
3529
|
+
|
|
3530
|
+
// src/agents/tasks/taskLabels.ts
|
|
3531
|
+
var TRIGGER_LABELS = {
|
|
3532
|
+
one_time: "One-time",
|
|
3533
|
+
recurring: "Recurring",
|
|
3534
|
+
event: "Event",
|
|
3535
|
+
after: "After a task",
|
|
3536
|
+
on_demand: "On demand"
|
|
3537
|
+
};
|
|
3538
|
+
var STATUS_LABELS = {
|
|
3539
|
+
todo: "To do",
|
|
3540
|
+
generating: "Generating",
|
|
3541
|
+
done: "Done",
|
|
3542
|
+
chat: "Chat"
|
|
3543
|
+
};
|
|
3544
|
+
var STATUS_ORDER = ["generating", "todo", "done", "chat"];
|
|
3545
|
+
var STATUS_TONE = {
|
|
3546
|
+
todo: "neutral",
|
|
3547
|
+
generating: "ai",
|
|
3548
|
+
done: "success",
|
|
3549
|
+
chat: "neutral"
|
|
3550
|
+
};
|
|
3551
|
+
function asTaskStatus(status) {
|
|
3552
|
+
if (!status) return "chat";
|
|
3553
|
+
return STATUS_ORDER.includes(status) ? status : "todo";
|
|
3554
|
+
}
|
|
3555
|
+
function goalProgress(task) {
|
|
3556
|
+
const gs = task.goal_state;
|
|
3557
|
+
if (!gs || gs.criteria_total == null) return null;
|
|
3558
|
+
return { met: gs.criteria_met ?? 0, total: gs.criteria_total, done: gs.done === true };
|
|
3559
|
+
}
|
|
3529
3560
|
var DEFAULT_TASK_ACTIVITY_LABELS = {
|
|
3530
3561
|
title: "Activity",
|
|
3531
3562
|
empty: "Nothing has happened yet.",
|
|
@@ -3883,6 +3914,6 @@ function TaskRunsDialog({
|
|
|
3883
3914
|
) });
|
|
3884
3915
|
}
|
|
3885
3916
|
|
|
3886
|
-
export { ActionStepBody, AgentAvatarField, AgentConnectInstructions, AgentCreator, AgentTypeSelector, ApprovalEvidence, AssigneeLine, CapabilityGrid, CapabilityTile, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_CAPABILITIES, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_TEMPLATES, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TYPE_SELECTOR_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_STEP_BAR_LABELS, DEFAULT_TASK_ACTIVITY_LABELS, DEFAULT_TASK_RUNS_DIALOG_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_STEP_PARTS_LABELS, SKILL_FIELD_TYPE_LABELS, SKILL_MAIN_FILENAME, SKILL_SOURCE_LABELS, SKILL_TYPES, SKILL_TYPE_LABELS, STEP_LABEL, STEP_LABEL_CURRENT, STEP_LABEL_MAX, SendBackControl, SkillActionButton, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillLibraryDetail, SkillTile, SkillTypeBadge, SkillViewToggle, StepBarFrame, TaskActivityDialog, TaskActivityTimeline, TaskRunsDialog, WorkflowRunner, WorkflowStepBar, activateOnKey, activeStepId, agentConfigSectionToValues, agentCreatorToConfigSection, buildLibrarySkills, buildZipSkillImport, composePersona, deriveAgentName, filterLibrarySkills, fromPlanAssignee, fromPlanDocumentRef, fromPlanSteps, importMarkdownSkill, importSkillFile, importSkillFromUrl, isIncompleteSignal, isMainSkillFile, isValidAgentName, layoutFromPlanSteps, parseSkillFrontmatter, readSkillArchive, serializeSkill, skillSlug, stepWindow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskActivityHeadline, toPlanAssignee, toPlanDocumentRef, toPlanSteps, useWorkflowView, workflowFromSkillMarkdown, workflowToSkillMarkdown };
|
|
3887
|
-
//# sourceMappingURL=chunk-
|
|
3888
|
-
//# sourceMappingURL=chunk-
|
|
3917
|
+
export { ActionStepBody, AgentAvatarField, AgentConnectInstructions, AgentCreator, AgentTypeSelector, ApprovalEvidence, AssigneeLine, CapabilityGrid, CapabilityTile, DEFAULT_AGENT_AVATAR_FIELD_LABELS, DEFAULT_AGENT_CAPABILITIES, DEFAULT_AGENT_CREATOR_LABELS, DEFAULT_AGENT_TEMPLATES, DEFAULT_AGENT_TYPES, DEFAULT_AGENT_TYPE_SELECTOR_LABELS, DEFAULT_SKILL_EDIT_FORM_LABELS, DEFAULT_SKILL_GENERATE_FORM_LABELS, DEFAULT_SKILL_GLOBAL_BADGE_LABELS, DEFAULT_SKILL_VIEW_TOGGLE_LABELS, DEFAULT_STEP_BAR_LABELS, DEFAULT_TASK_ACTIVITY_LABELS, DEFAULT_TASK_RUNS_DIALOG_LABELS, DEFAULT_WORKFLOW_RUNNER_LABELS, DEFAULT_WORKFLOW_STEP_PARTS_LABELS, SKILL_FIELD_TYPE_LABELS, SKILL_MAIN_FILENAME, SKILL_SOURCE_LABELS, SKILL_TYPES, SKILL_TYPE_LABELS, STATUS_LABELS, STATUS_ORDER, STATUS_TONE, STEP_LABEL, STEP_LABEL_CURRENT, STEP_LABEL_MAX, SendBackControl, SkillActionButton, SkillDetail, SkillDetailSection, SkillEditForm, SkillFilterChips, SkillGenerateForm, SkillGlobalBadge, SkillLibraryDetail, SkillTile, SkillTypeBadge, SkillViewToggle, StepBarFrame, TRIGGER_LABELS, TaskActivityDialog, TaskActivityTimeline, TaskRunsDialog, WorkflowRunner, WorkflowStepBar, activateOnKey, activeStepId, agentConfigSectionToValues, agentCreatorToConfigSection, asTaskStatus, buildLibrarySkills, buildZipSkillImport, composePersona, deriveAgentName, filterLibrarySkills, fromPlanAssignee, fromPlanDocumentRef, fromPlanSteps, goalProgress, importMarkdownSkill, importSkillFile, importSkillFromUrl, isIncompleteSignal, isMainSkillFile, isValidAgentName, layoutFromPlanSteps, parseSkillFrontmatter, readSkillArchive, serializeSkill, skillSlug, stepWindow, stripPersonaPreamble, summarizeAgent, summarizeCapabilities, taskActivityHeadline, toPlanAssignee, toPlanDocumentRef, toPlanSteps, useWorkflowView, workflowFromSkillMarkdown, workflowToSkillMarkdown };
|
|
3918
|
+
//# sourceMappingURL=chunk-P6RIBIVN.js.map
|
|
3919
|
+
//# sourceMappingURL=chunk-P6RIBIVN.js.map
|