@cjlapao/ui-kit 0.2.3 → 0.2.5
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/{CapsuleBlueprint-DwDZ7nii.d.cts → CapsuleBlueprint-BI0jdbTt.d.cts} +16 -1
- package/dist/{CapsuleBlueprint-DwDZ7nii.d.ts → CapsuleBlueprint-BI0jdbTt.d.ts} +16 -1
- package/dist/index.cjs +1158 -713
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +73 -0
- package/dist/index.d.cts +320 -46
- package/dist/index.d.ts +320 -46
- package/dist/index.js +1077 -639
- package/dist/index.js.map +1 -1
- package/dist/markdown.cjs.map +1 -1
- package/dist/markdown.d.cts +2 -2
- package/dist/markdown.d.ts +2 -2
- package/dist/markdown.js.map +1 -1
- package/package.json +3 -3
- package/dist/CapsuleBlueprint--CgRT7dr.d.cts +0 -426
- package/dist/CapsuleBlueprint--CgRT7dr.d.ts +0 -426
- package/dist/CapsuleBlueprint-12uQWAvU.d.cts +0 -732
- package/dist/CapsuleBlueprint-12uQWAvU.d.ts +0 -732
- package/dist/CapsuleBlueprint-1FP6avn4.d.cts +0 -1017
- package/dist/CapsuleBlueprint-1FP6avn4.d.ts +0 -1017
- package/dist/CapsuleBlueprint-6DmJgar9.d.cts +0 -358
- package/dist/CapsuleBlueprint-6DmJgar9.d.ts +0 -358
- package/dist/CapsuleBlueprint-B7MPc5wu.d.cts +0 -835
- package/dist/CapsuleBlueprint-B7MPc5wu.d.ts +0 -835
- package/dist/CapsuleBlueprint-BFHAMKUF.d.cts +0 -991
- package/dist/CapsuleBlueprint-BFHAMKUF.d.ts +0 -991
- package/dist/CapsuleBlueprint-BG23ZWsl.d.cts +0 -460
- package/dist/CapsuleBlueprint-BG23ZWsl.d.ts +0 -460
- package/dist/CapsuleBlueprint-BGx-KPqS.d.cts +0 -925
- package/dist/CapsuleBlueprint-BGx-KPqS.d.ts +0 -925
- package/dist/CapsuleBlueprint-BJYVRyFD.d.cts +0 -449
- package/dist/CapsuleBlueprint-BJYVRyFD.d.ts +0 -449
- package/dist/CapsuleBlueprint-BQq4ywG4.d.cts +0 -835
- package/dist/CapsuleBlueprint-BQq4ywG4.d.ts +0 -835
- package/dist/CapsuleBlueprint-BTgmUcyF.d.cts +0 -278
- package/dist/CapsuleBlueprint-BTgmUcyF.d.ts +0 -278
- package/dist/CapsuleBlueprint-BX2YI1yC.d.cts +0 -415
- package/dist/CapsuleBlueprint-BX2YI1yC.d.ts +0 -415
- package/dist/CapsuleBlueprint-BfPODmvJ.d.cts +0 -822
- package/dist/CapsuleBlueprint-BfPODmvJ.d.ts +0 -822
- package/dist/CapsuleBlueprint-BfSPPu5k.d.cts +0 -616
- package/dist/CapsuleBlueprint-BfSPPu5k.d.ts +0 -616
- package/dist/CapsuleBlueprint-BoPkPR2J.d.cts +0 -785
- package/dist/CapsuleBlueprint-BoPkPR2J.d.ts +0 -785
- package/dist/CapsuleBlueprint-CJeLH0j2.d.cts +0 -228
- package/dist/CapsuleBlueprint-CJeLH0j2.d.ts +0 -228
- package/dist/CapsuleBlueprint-CJwXDMzM.d.cts +0 -622
- package/dist/CapsuleBlueprint-CJwXDMzM.d.ts +0 -622
- package/dist/CapsuleBlueprint-CM125BJI.d.cts +0 -811
- package/dist/CapsuleBlueprint-CM125BJI.d.ts +0 -811
- package/dist/CapsuleBlueprint-CQPeacGV.d.cts +0 -426
- package/dist/CapsuleBlueprint-CQPeacGV.d.ts +0 -426
- package/dist/CapsuleBlueprint-CQy2O0UN.d.cts +0 -889
- package/dist/CapsuleBlueprint-CQy2O0UN.d.ts +0 -889
- package/dist/CapsuleBlueprint-CRy04iCR.d.cts +0 -695
- package/dist/CapsuleBlueprint-CRy04iCR.d.ts +0 -695
- package/dist/CapsuleBlueprint-CixXdjMu.d.cts +0 -925
- package/dist/CapsuleBlueprint-CixXdjMu.d.ts +0 -925
- package/dist/CapsuleBlueprint-CjCxwO1O.d.cts +0 -786
- package/dist/CapsuleBlueprint-CjCxwO1O.d.ts +0 -786
- package/dist/CapsuleBlueprint-Cm10IA2w.d.cts +0 -342
- package/dist/CapsuleBlueprint-Cm10IA2w.d.ts +0 -342
- package/dist/CapsuleBlueprint-CoGsooJJ.d.cts +0 -492
- package/dist/CapsuleBlueprint-CoGsooJJ.d.ts +0 -492
- package/dist/CapsuleBlueprint-CpHqUsJK.d.cts +0 -786
- package/dist/CapsuleBlueprint-CpHqUsJK.d.ts +0 -786
- package/dist/CapsuleBlueprint-CrRg8EVW.d.cts +0 -358
- package/dist/CapsuleBlueprint-CrRg8EVW.d.ts +0 -358
- package/dist/CapsuleBlueprint-DGxsd0aY.d.cts +0 -785
- package/dist/CapsuleBlueprint-DGxsd0aY.d.ts +0 -785
- package/dist/CapsuleBlueprint-DYnwizSo.d.cts +0 -698
- package/dist/CapsuleBlueprint-DYnwizSo.d.ts +0 -698
- package/dist/CapsuleBlueprint-DbLSB78P.d.cts +0 -235
- package/dist/CapsuleBlueprint-DbLSB78P.d.ts +0 -235
- package/dist/CapsuleBlueprint-DfV8XBEZ.d.cts +0 -1001
- package/dist/CapsuleBlueprint-DfV8XBEZ.d.ts +0 -1001
- package/dist/CapsuleBlueprint-DiG1FUoM.d.cts +0 -757
- package/dist/CapsuleBlueprint-DiG1FUoM.d.ts +0 -757
- package/dist/CapsuleBlueprint-DvdeHC13.d.cts +0 -289
- package/dist/CapsuleBlueprint-DvdeHC13.d.ts +0 -289
- package/dist/CapsuleBlueprint-DvinXyHp.d.cts +0 -342
- package/dist/CapsuleBlueprint-DvinXyHp.d.ts +0 -342
- package/dist/CapsuleBlueprint-DwW8YOJg.d.cts +0 -925
- package/dist/CapsuleBlueprint-DwW8YOJg.d.ts +0 -925
- package/dist/CapsuleBlueprint-E069msDY.d.cts +0 -310
- package/dist/CapsuleBlueprint-E069msDY.d.ts +0 -310
- package/dist/CapsuleBlueprint-LECoxlXA.d.cts +0 -497
- package/dist/CapsuleBlueprint-LECoxlXA.d.ts +0 -497
- package/dist/CapsuleBlueprint-V9pDg6lh.d.cts +0 -247
- package/dist/CapsuleBlueprint-V9pDg6lh.d.ts +0 -247
- package/dist/CapsuleBlueprint-bOLrWbIc.d.cts +0 -858
- package/dist/CapsuleBlueprint-bOLrWbIc.d.ts +0 -858
- package/dist/CapsuleBlueprint-if_tP8K8.d.cts +0 -1022
- package/dist/CapsuleBlueprint-if_tP8K8.d.ts +0 -1022
- package/dist/CapsuleBlueprint-pP0Ima0I.d.cts +0 -768
- package/dist/CapsuleBlueprint-pP0Ima0I.d.ts +0 -768
- package/dist/CapsuleBlueprint-w82xP6zg.d.cts +0 -222
- package/dist/CapsuleBlueprint-w82xP6zg.d.ts +0 -222
- package/dist/CapsuleBlueprint-wdlxOX4L.d.cts +0 -472
- package/dist/CapsuleBlueprint-wdlxOX4L.d.ts +0 -472
- package/dist/CapsuleBlueprint-wxqu6jA3.d.cts +0 -529
- package/dist/CapsuleBlueprint-wxqu6jA3.d.ts +0 -529
package/dist/index.js
CHANGED
|
@@ -5338,6 +5338,15 @@ var getSurfacePaddingClass = (padding) => surfacePaddingClasses[padding] ?? surf
|
|
|
5338
5338
|
var getSurfacePaddingClasses = () => ({
|
|
5339
5339
|
...surfacePaddingClasses
|
|
5340
5340
|
});
|
|
5341
|
+
var SURFACE_GUTTER_AXES = ["top", "right", "bottom", "left"];
|
|
5342
|
+
var surfaceGutterClasses = {
|
|
5343
|
+
top: { none: "mt-0", xs: "mt-2", sm: "mt-4", md: "mt-6", lg: "mt-8", xl: "mt-10" },
|
|
5344
|
+
right: { none: "mr-0", xs: "mr-2", sm: "mr-4", md: "mr-6", lg: "mr-8", xl: "mr-10" },
|
|
5345
|
+
bottom: { none: "mb-0", xs: "mb-2", sm: "mb-4", md: "mb-6", lg: "mb-8", xl: "mb-10" },
|
|
5346
|
+
left: { none: "ml-0", xs: "ml-2", sm: "ml-4", md: "ml-6", lg: "ml-8", xl: "ml-10" }
|
|
5347
|
+
};
|
|
5348
|
+
var DEFAULT_SURFACE_GUTTER = "none";
|
|
5349
|
+
var getSurfaceGutterClass = (axis, gutter) => surfaceGutterClasses[axis][gutter] ?? surfaceGutterClasses[axis][DEFAULT_SURFACE_GUTTER];
|
|
5341
5350
|
var NEUTRAL_TONES = [
|
|
5342
5351
|
"neutral",
|
|
5343
5352
|
"slate",
|
|
@@ -21517,27 +21526,54 @@ var PageHeader = ({
|
|
|
21517
21526
|
center,
|
|
21518
21527
|
end,
|
|
21519
21528
|
children,
|
|
21529
|
+
variant = "default",
|
|
21530
|
+
accentColor = "blue",
|
|
21531
|
+
padding,
|
|
21532
|
+
paddingTop,
|
|
21533
|
+
paddingRight,
|
|
21534
|
+
paddingBottom,
|
|
21535
|
+
paddingLeft,
|
|
21536
|
+
corner = DEFAULT_SURFACE_CORNER,
|
|
21520
21537
|
className = "",
|
|
21521
21538
|
...rest
|
|
21522
|
-
}) =>
|
|
21523
|
-
"
|
|
21524
|
-
|
|
21525
|
-
|
|
21526
|
-
|
|
21527
|
-
|
|
21528
|
-
|
|
21529
|
-
|
|
21530
|
-
|
|
21531
|
-
|
|
21532
|
-
|
|
21533
|
-
|
|
21534
|
-
|
|
21535
|
-
|
|
21536
|
-
|
|
21537
|
-
|
|
21538
|
-
|
|
21539
|
-
|
|
21540
|
-
)
|
|
21539
|
+
}) => {
|
|
21540
|
+
const surface = variant === "default" ? null : getSidebarSurfaceTokens(variant, accentColor);
|
|
21541
|
+
const pair = surface ? "xs" : "none";
|
|
21542
|
+
const gutter = {
|
|
21543
|
+
top: paddingTop ?? padding ?? pair,
|
|
21544
|
+
right: paddingRight ?? padding ?? pair,
|
|
21545
|
+
bottom: paddingBottom ?? padding ?? "none",
|
|
21546
|
+
left: paddingLeft ?? padding ?? "none"
|
|
21547
|
+
};
|
|
21548
|
+
return /* @__PURE__ */ jsxs97(
|
|
21549
|
+
"header",
|
|
21550
|
+
{
|
|
21551
|
+
...rest,
|
|
21552
|
+
className: classNames51(
|
|
21553
|
+
"flex w-full items-center justify-between gap-4 px-5",
|
|
21554
|
+
SIDE_MENU_HEADER_HEIGHT,
|
|
21555
|
+
getSurfaceGutterClass("top", gutter.top),
|
|
21556
|
+
getSurfaceGutterClass("right", gutter.right),
|
|
21557
|
+
getSurfaceGutterClass("bottom", gutter.bottom),
|
|
21558
|
+
getSurfaceGutterClass("left", gutter.left),
|
|
21559
|
+
getSurfaceCornerClass(corner),
|
|
21560
|
+
surface ? classNames51(
|
|
21561
|
+
"border",
|
|
21562
|
+
surface.border,
|
|
21563
|
+
surface.shadow,
|
|
21564
|
+
surface.fill
|
|
21565
|
+
) : classNames51("border-b", SIDE_MENU_HEADER_FILL, SIDE_MENU_HEADER_SEAM),
|
|
21566
|
+
className
|
|
21567
|
+
),
|
|
21568
|
+
children: [
|
|
21569
|
+
/* @__PURE__ */ jsx201("div", { className: GROUP_CLASS2, children: start }),
|
|
21570
|
+
/* @__PURE__ */ jsx201("div", { className: GROUP_CLASS2, children: center }),
|
|
21571
|
+
/* @__PURE__ */ jsx201("div", { className: GROUP_CLASS2, children: end }),
|
|
21572
|
+
children != null && /* @__PURE__ */ jsx201("div", { className: GROUP_CLASS2, children })
|
|
21573
|
+
]
|
|
21574
|
+
}
|
|
21575
|
+
);
|
|
21576
|
+
};
|
|
21541
21577
|
PageHeader.displayName = "PageHeader";
|
|
21542
21578
|
var PageHeader_default = PageHeader;
|
|
21543
21579
|
|
|
@@ -42312,7 +42348,8 @@ var SideMenu = ({
|
|
|
42312
42348
|
const hasVisibleLink = visibleItems2.some(
|
|
42313
42349
|
(item) => item.type !== "group" && item.type !== "divider"
|
|
42314
42350
|
);
|
|
42315
|
-
const
|
|
42351
|
+
const detached = Boolean(surface.offset);
|
|
42352
|
+
const heightClass = fullHeight ? detached ? "h-[calc(100%-1rem)]" : "h-full" : detached ? "sticky top-16 h-[calc(100vh-64px-1rem)]" : "sticky top-16 h-[calc(100vh-64px)]";
|
|
42316
42353
|
const isLeft = side === "left";
|
|
42317
42354
|
const isHoverMode = openOnHover && !isMobile;
|
|
42318
42355
|
const borderClasses = surface.border ? `${surface.border} ${surface.borderSides === "all" ? "border" : isLeft ? "border-r" : "border-l"}` : "";
|
|
@@ -42485,48 +42522,56 @@ var SideMenu = ({
|
|
|
42485
42522
|
]
|
|
42486
42523
|
}
|
|
42487
42524
|
),
|
|
42488
|
-
/* @__PURE__ */ jsx257(
|
|
42489
|
-
|
|
42490
|
-
|
|
42491
|
-
|
|
42492
|
-
|
|
42493
|
-
|
|
42494
|
-
|
|
42495
|
-
|
|
42496
|
-
|
|
42497
|
-
|
|
42498
|
-
|
|
42499
|
-
|
|
42500
|
-
|
|
42501
|
-
|
|
42502
|
-
|
|
42503
|
-
|
|
42504
|
-
|
|
42505
|
-
|
|
42506
|
-
|
|
42507
|
-
|
|
42508
|
-
|
|
42509
|
-
|
|
42510
|
-
|
|
42511
|
-
|
|
42512
|
-
|
|
42513
|
-
|
|
42514
|
-
|
|
42515
|
-
|
|
42516
|
-
|
|
42517
|
-
|
|
42518
|
-
|
|
42519
|
-
|
|
42520
|
-
|
|
42521
|
-
|
|
42522
|
-
|
|
42523
|
-
|
|
42524
|
-
|
|
42525
|
-
|
|
42526
|
-
|
|
42527
|
-
|
|
42528
|
-
|
|
42529
|
-
|
|
42525
|
+
/* @__PURE__ */ jsx257(
|
|
42526
|
+
ScrollArea_default,
|
|
42527
|
+
{
|
|
42528
|
+
variant: "hover",
|
|
42529
|
+
className: "flex-1 w-full",
|
|
42530
|
+
contentClassName: "px-3 py-1",
|
|
42531
|
+
children: /* @__PURE__ */ jsxs145("nav", { "aria-label": title || "Side menu", className: "space-y-1 w-full", children: [
|
|
42532
|
+
visibleItems2.map((item, index) => {
|
|
42533
|
+
if (item.type === "divider") {
|
|
42534
|
+
return /* @__PURE__ */ jsx257(
|
|
42535
|
+
"div",
|
|
42536
|
+
{
|
|
42537
|
+
className: `my-2 border-t ${surface.divider} ${contentCollapsed2 && !isMobileView ? "mx-1" : "mx-0"}`
|
|
42538
|
+
},
|
|
42539
|
+
`divider-${index}-${item.slug}`
|
|
42540
|
+
);
|
|
42541
|
+
}
|
|
42542
|
+
if (item.type === "group") {
|
|
42543
|
+
if (contentCollapsed2 && !isMobileView) return null;
|
|
42544
|
+
return /* @__PURE__ */ jsxs145(React59.Fragment, { children: [
|
|
42545
|
+
item.hasDivider && /* @__PURE__ */ jsx257(
|
|
42546
|
+
"div",
|
|
42547
|
+
{
|
|
42548
|
+
className: `my-2 border-t ${surface.divider} ${contentCollapsed2 && !isMobileView ? "mx-1" : "mx-0"}`
|
|
42549
|
+
}
|
|
42550
|
+
),
|
|
42551
|
+
/* @__PURE__ */ jsx257(
|
|
42552
|
+
"div",
|
|
42553
|
+
{
|
|
42554
|
+
className: `px-3 py-1 mb-1 text-xs font-semibold uppercase tracking-wider ${surface.muted} ${index === 0 ? "mt-1" : "mt-4"}`,
|
|
42555
|
+
children: item.label
|
|
42556
|
+
}
|
|
42557
|
+
)
|
|
42558
|
+
] }, `group-${index}-${item.slug}`);
|
|
42559
|
+
}
|
|
42560
|
+
return renderLinkRow(
|
|
42561
|
+
item,
|
|
42562
|
+
0,
|
|
42563
|
+
`link-${index}-${item.slug}`,
|
|
42564
|
+
contentCollapsed2
|
|
42565
|
+
);
|
|
42566
|
+
}),
|
|
42567
|
+
searchActive && !hasVisibleLink && /* @__PURE__ */ jsxs145("p", { className: `px-3 py-6 text-center text-xs ${surface.muted}`, children: [
|
|
42568
|
+
'No results for "',
|
|
42569
|
+
searchQuery.trim(),
|
|
42570
|
+
'"'
|
|
42571
|
+
] })
|
|
42572
|
+
] })
|
|
42573
|
+
}
|
|
42574
|
+
),
|
|
42530
42575
|
footerItem && /* @__PURE__ */ jsx257("div", { className: "shrink-0 px-3 pb-1", children: /* @__PURE__ */ jsx257(
|
|
42531
42576
|
SideMenuDropdownRow,
|
|
42532
42577
|
{
|
|
@@ -59820,12 +59865,16 @@ var TreeView = ({
|
|
|
59820
59865
|
var TreeView_default = TreeView;
|
|
59821
59866
|
|
|
59822
59867
|
// src/components/WorkflowTracker/WorkflowTracker.tsx
|
|
59823
|
-
import { useMemo as
|
|
59824
|
-
import
|
|
59868
|
+
import { useMemo as useMemo56 } from "react";
|
|
59869
|
+
import classNames119 from "classnames";
|
|
59870
|
+
|
|
59871
|
+
// src/components/WorkflowTracker/WorkflowTrackerRail.tsx
|
|
59872
|
+
import { useMemo as useMemo52 } from "react";
|
|
59873
|
+
import classNames112 from "classnames";
|
|
59825
59874
|
|
|
59826
59875
|
// src/components/WorkflowTracker/WorkflowTimeline.tsx
|
|
59827
59876
|
import React87 from "react";
|
|
59828
|
-
import
|
|
59877
|
+
import classNames111 from "classnames";
|
|
59829
59878
|
|
|
59830
59879
|
// src/components/WorkflowTracker/WorkflowSkeleton.tsx
|
|
59831
59880
|
import classNames107 from "classnames";
|
|
@@ -60114,34 +60163,73 @@ var WorkflowStatusNode = ({
|
|
|
60114
60163
|
};
|
|
60115
60164
|
var WorkflowStatusNode_default = WorkflowStatusNode;
|
|
60116
60165
|
|
|
60117
|
-
// src/components/WorkflowTracker/
|
|
60166
|
+
// src/components/WorkflowTracker/WorkflowQuickActions.tsx
|
|
60118
60167
|
import classNames109 from "classnames";
|
|
60119
|
-
import { jsx as jsx298
|
|
60168
|
+
import { jsx as jsx298 } from "react/jsx-runtime";
|
|
60169
|
+
var WorkflowQuickActions = ({
|
|
60170
|
+
stepId,
|
|
60171
|
+
actions,
|
|
60172
|
+
palette,
|
|
60173
|
+
groupLabel,
|
|
60174
|
+
onAction,
|
|
60175
|
+
className,
|
|
60176
|
+
style
|
|
60177
|
+
}) => {
|
|
60178
|
+
if (!onAction || actions.length === 0) return null;
|
|
60179
|
+
return /* @__PURE__ */ jsx298(
|
|
60180
|
+
"div",
|
|
60181
|
+
{
|
|
60182
|
+
role: "group",
|
|
60183
|
+
"aria-label": groupLabel,
|
|
60184
|
+
className: classNames109("flex flex-wrap gap-1.5", className),
|
|
60185
|
+
style,
|
|
60186
|
+
children: actions.map((action) => /* @__PURE__ */ jsx298(
|
|
60187
|
+
Button_default,
|
|
60188
|
+
{
|
|
60189
|
+
size: "xs",
|
|
60190
|
+
weight: "medium",
|
|
60191
|
+
variant: action.variant ?? "soft",
|
|
60192
|
+
color: action.tone ?? palette.accent,
|
|
60193
|
+
leadingIcon: action.leadingIcon,
|
|
60194
|
+
disabled: action.disabled,
|
|
60195
|
+
onClick: () => onAction(stepId, action.id),
|
|
60196
|
+
children: action.label
|
|
60197
|
+
},
|
|
60198
|
+
action.id
|
|
60199
|
+
))
|
|
60200
|
+
}
|
|
60201
|
+
);
|
|
60202
|
+
};
|
|
60203
|
+
var WorkflowQuickActions_default = WorkflowQuickActions;
|
|
60204
|
+
|
|
60205
|
+
// src/components/WorkflowTracker/parts.tsx
|
|
60206
|
+
import classNames110 from "classnames";
|
|
60207
|
+
import { jsx as jsx299, jsxs as jsxs181 } from "react/jsx-runtime";
|
|
60120
60208
|
var resolve = (surfaces) => surfaces ?? getSurfaceTokens(false);
|
|
60121
60209
|
var WorkflowPlaceholder = ({ title, subtitle, palette, surfaces, className }) => /* @__PURE__ */ jsxs181(
|
|
60122
60210
|
"div",
|
|
60123
60211
|
{
|
|
60124
|
-
className:
|
|
60212
|
+
className: classNames110(
|
|
60125
60213
|
"flex flex-col items-center justify-center gap-3 px-6 py-10 text-center",
|
|
60126
60214
|
className
|
|
60127
60215
|
),
|
|
60128
60216
|
children: [
|
|
60129
|
-
/* @__PURE__ */
|
|
60217
|
+
/* @__PURE__ */ jsx299(WorkflowStatusNode_default, { status: "not_started", palette, size: "lg" }),
|
|
60130
60218
|
/* @__PURE__ */ jsxs181("div", { className: "space-y-1", children: [
|
|
60131
|
-
/* @__PURE__ */
|
|
60219
|
+
/* @__PURE__ */ jsx299(
|
|
60132
60220
|
"p",
|
|
60133
60221
|
{
|
|
60134
|
-
className:
|
|
60222
|
+
className: classNames110(
|
|
60135
60223
|
"text-sm font-semibold",
|
|
60136
60224
|
resolve(surfaces).mutedText
|
|
60137
60225
|
),
|
|
60138
60226
|
children: title
|
|
60139
60227
|
}
|
|
60140
60228
|
),
|
|
60141
|
-
subtitle && /* @__PURE__ */
|
|
60229
|
+
subtitle && /* @__PURE__ */ jsx299(
|
|
60142
60230
|
"p",
|
|
60143
60231
|
{
|
|
60144
|
-
className:
|
|
60232
|
+
className: classNames110(
|
|
60145
60233
|
"max-w-xs text-xs leading-5",
|
|
60146
60234
|
resolve(surfaces).faintText
|
|
60147
60235
|
),
|
|
@@ -60152,10 +60240,10 @@ var WorkflowPlaceholder = ({ title, subtitle, palette, surfaces, className }) =>
|
|
|
60152
60240
|
]
|
|
60153
60241
|
}
|
|
60154
60242
|
);
|
|
60155
|
-
var SectionTitle = ({ children, surfaces, className }) => /* @__PURE__ */
|
|
60243
|
+
var SectionTitle = ({ children, surfaces, className }) => /* @__PURE__ */ jsx299(
|
|
60156
60244
|
"span",
|
|
60157
60245
|
{
|
|
60158
|
-
className:
|
|
60246
|
+
className: classNames110(
|
|
60159
60247
|
"text-[10px] font-semibold uppercase tracking-widest",
|
|
60160
60248
|
resolve(surfaces).faintText,
|
|
60161
60249
|
className
|
|
@@ -60163,7 +60251,7 @@ var SectionTitle = ({ children, surfaces, className }) => /* @__PURE__ */ jsx298
|
|
|
60163
60251
|
children
|
|
60164
60252
|
}
|
|
60165
60253
|
);
|
|
60166
|
-
var SectionMeta = ({ children, surfaces, className }) => /* @__PURE__ */
|
|
60254
|
+
var SectionMeta = ({ children, surfaces, className }) => /* @__PURE__ */ jsx299("span", { className: classNames110("text-xs", resolve(surfaces).mutedText, className), children });
|
|
60167
60255
|
var WorkflowBadge = ({
|
|
60168
60256
|
children,
|
|
60169
60257
|
status,
|
|
@@ -60171,14 +60259,14 @@ var WorkflowBadge = ({
|
|
|
60171
60259
|
tone
|
|
60172
60260
|
}) => {
|
|
60173
60261
|
const tokens = getStatusTokens(status, palette);
|
|
60174
|
-
return /* @__PURE__ */
|
|
60262
|
+
return /* @__PURE__ */ jsx299(
|
|
60175
60263
|
Pill_default,
|
|
60176
60264
|
{
|
|
60177
60265
|
size: "xs",
|
|
60178
60266
|
uppercase: true,
|
|
60179
60267
|
tone: tone ?? tokens.pillTone,
|
|
60180
60268
|
variant: "outline",
|
|
60181
|
-
className:
|
|
60269
|
+
className: classNames110(
|
|
60182
60270
|
"shrink-0 font-medium",
|
|
60183
60271
|
tone ? `bg-${tone}-100 dark:bg-${tone}-900` : tokens.pillFill
|
|
60184
60272
|
),
|
|
@@ -60187,16 +60275,16 @@ var WorkflowBadge = ({
|
|
|
60187
60275
|
);
|
|
60188
60276
|
};
|
|
60189
60277
|
var MetaField = ({ label, value, surfaces }) => /* @__PURE__ */ jsxs181("div", { className: "min-w-0", children: [
|
|
60190
|
-
/* @__PURE__ */
|
|
60191
|
-
/* @__PURE__ */
|
|
60278
|
+
/* @__PURE__ */ jsx299(SectionTitle, { surfaces, children: label }),
|
|
60279
|
+
/* @__PURE__ */ jsx299("p", { className: "mt-1 text-sm font-medium text-neutral-800 dark:text-neutral-100", children: value })
|
|
60192
60280
|
] });
|
|
60193
60281
|
var Tally = ({ count, label, surfaces }) => /* @__PURE__ */ jsxs181("span", { className: "inline-flex items-center gap-1", children: [
|
|
60194
|
-
/* @__PURE__ */
|
|
60195
|
-
/* @__PURE__ */
|
|
60282
|
+
/* @__PURE__ */ jsx299("span", { className: "font-semibold text-neutral-900 dark:text-white", children: count }),
|
|
60283
|
+
/* @__PURE__ */ jsx299("span", { className: resolve(surfaces).mutedText, children: label })
|
|
60196
60284
|
] });
|
|
60197
60285
|
|
|
60198
60286
|
// src/components/WorkflowTracker/WorkflowTimeline.tsx
|
|
60199
|
-
import { Fragment as Fragment46, jsx as
|
|
60287
|
+
import { Fragment as Fragment46, jsx as jsx300, jsxs as jsxs182 } from "react/jsx-runtime";
|
|
60200
60288
|
var CONNECTOR_LEFT = 9;
|
|
60201
60289
|
var CONNECTOR_TOP = 24;
|
|
60202
60290
|
var NESTED_INDENT = 32;
|
|
@@ -60214,16 +60302,16 @@ var NestedSubSteps = ({
|
|
|
60214
60302
|
palette,
|
|
60215
60303
|
surfaces,
|
|
60216
60304
|
onSubStepSelect
|
|
60217
|
-
}) => /* @__PURE__ */
|
|
60305
|
+
}) => /* @__PURE__ */ jsx300(
|
|
60218
60306
|
"div",
|
|
60219
60307
|
{
|
|
60220
|
-
className:
|
|
60308
|
+
className: classNames111("mt-3 rounded-lg p-3", surfaces.nestedBox),
|
|
60221
60309
|
style: { marginLeft: NESTED_INDENT },
|
|
60222
|
-
children: /* @__PURE__ */
|
|
60310
|
+
children: /* @__PURE__ */ jsx300("ul", { className: "space-y-2.5", children: subSteps.map((subStep) => {
|
|
60223
60311
|
const status = normalizeStatus(subStep.status);
|
|
60224
60312
|
const isActive = status === "running" || status === "in_progress";
|
|
60225
60313
|
const content = /* @__PURE__ */ jsxs182(Fragment46, { children: [
|
|
60226
|
-
/* @__PURE__ */
|
|
60314
|
+
/* @__PURE__ */ jsx300(
|
|
60227
60315
|
WorkflowStatusNode_default,
|
|
60228
60316
|
{
|
|
60229
60317
|
status,
|
|
@@ -60231,10 +60319,10 @@ var NestedSubSteps = ({
|
|
|
60231
60319
|
size: "sm"
|
|
60232
60320
|
}
|
|
60233
60321
|
),
|
|
60234
|
-
/* @__PURE__ */
|
|
60322
|
+
/* @__PURE__ */ jsx300(
|
|
60235
60323
|
"span",
|
|
60236
60324
|
{
|
|
60237
|
-
className:
|
|
60325
|
+
className: classNames111(
|
|
60238
60326
|
"text-sm",
|
|
60239
60327
|
isActive ? "font-semibold text-neutral-900 dark:text-white" : "text-neutral-600 dark:text-neutral-300"
|
|
60240
60328
|
),
|
|
@@ -60242,7 +60330,7 @@ var NestedSubSteps = ({
|
|
|
60242
60330
|
}
|
|
60243
60331
|
)
|
|
60244
60332
|
] });
|
|
60245
|
-
return /* @__PURE__ */
|
|
60333
|
+
return /* @__PURE__ */ jsx300("li", { children: onSubStepSelect ? /* @__PURE__ */ jsx300(
|
|
60246
60334
|
"button",
|
|
60247
60335
|
{
|
|
60248
60336
|
type: "button",
|
|
@@ -60250,7 +60338,7 @@ var NestedSubSteps = ({
|
|
|
60250
60338
|
className: "flex w-full items-center gap-2.5 rounded-sm text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-neutral-400 focus-visible:ring-offset-2 dark:focus-visible:ring-neutral-500",
|
|
60251
60339
|
children: content
|
|
60252
60340
|
}
|
|
60253
|
-
) : /* @__PURE__ */
|
|
60341
|
+
) : /* @__PURE__ */ jsx300("div", { className: "flex items-center gap-2.5", children: content }) }, subStep.id);
|
|
60254
60342
|
}) })
|
|
60255
60343
|
}
|
|
60256
60344
|
);
|
|
@@ -60267,10 +60355,11 @@ var WorkflowTimeline = ({
|
|
|
60267
60355
|
loadingRows,
|
|
60268
60356
|
emptyState,
|
|
60269
60357
|
onStepSelect,
|
|
60270
|
-
onSubStepSelect
|
|
60358
|
+
onSubStepSelect,
|
|
60359
|
+
onStepAction
|
|
60271
60360
|
}) => {
|
|
60272
60361
|
if (loading) {
|
|
60273
|
-
return /* @__PURE__ */
|
|
60362
|
+
return /* @__PURE__ */ jsx300(WorkflowRailSkeleton, { rows: loadingRows });
|
|
60274
60363
|
}
|
|
60275
60364
|
const isEmpty2 = steps.length === 0;
|
|
60276
60365
|
const tallyEntries = [
|
|
@@ -60280,18 +60369,18 @@ var WorkflowTimeline = ({
|
|
|
60280
60369
|
{ count: tallies.remaining, label: labels.remaining }
|
|
60281
60370
|
].filter((entry) => entry.count > 0);
|
|
60282
60371
|
return /* @__PURE__ */ jsxs182("div", { className: "flex flex-col", children: [
|
|
60283
|
-
!isEmpty2 && /* @__PURE__ */ jsxs182("div", { className:
|
|
60372
|
+
!isEmpty2 && /* @__PURE__ */ jsxs182("div", { className: classNames111("border-b px-5 pb-4 pt-5", surfaces.border), children: [
|
|
60284
60373
|
/* @__PURE__ */ jsxs182("div", { className: "flex items-baseline justify-between gap-3", children: [
|
|
60285
|
-
/* @__PURE__ */
|
|
60374
|
+
/* @__PURE__ */ jsx300(SectionTitle, { surfaces, children: labels.progress }),
|
|
60286
60375
|
/* @__PURE__ */ jsxs182("span", { className: "text-sm font-semibold text-neutral-900 dark:text-white", children: [
|
|
60287
60376
|
progress,
|
|
60288
60377
|
"%"
|
|
60289
60378
|
] })
|
|
60290
60379
|
] }),
|
|
60291
|
-
/* @__PURE__ */
|
|
60380
|
+
/* @__PURE__ */ jsx300(
|
|
60292
60381
|
Progress_default,
|
|
60293
60382
|
{
|
|
60294
|
-
className:
|
|
60383
|
+
className: classNames111(
|
|
60295
60384
|
"mt-2",
|
|
60296
60385
|
surfaces.translucent ? "bg-white/40 dark:bg-white/15" : "bg-neutral-200 dark:bg-neutral-700"
|
|
60297
60386
|
),
|
|
@@ -60301,8 +60390,8 @@ var WorkflowTimeline = ({
|
|
|
60301
60390
|
motion: "none"
|
|
60302
60391
|
}
|
|
60303
60392
|
),
|
|
60304
|
-
tallyEntries.length > 0 && /* @__PURE__ */
|
|
60305
|
-
index > 0 && /* @__PURE__ */
|
|
60393
|
+
tallyEntries.length > 0 && /* @__PURE__ */ jsx300("div", { className: "mt-3 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs", children: tallyEntries.map((entry, index) => /* @__PURE__ */ jsxs182(React87.Fragment, { children: [
|
|
60394
|
+
index > 0 && /* @__PURE__ */ jsx300(
|
|
60306
60395
|
"span",
|
|
60307
60396
|
{
|
|
60308
60397
|
"aria-hidden": "true",
|
|
@@ -60310,7 +60399,7 @@ var WorkflowTimeline = ({
|
|
|
60310
60399
|
children: "\xB7"
|
|
60311
60400
|
}
|
|
60312
60401
|
),
|
|
60313
|
-
/* @__PURE__ */
|
|
60402
|
+
/* @__PURE__ */ jsx300(
|
|
60314
60403
|
Tally,
|
|
60315
60404
|
{
|
|
60316
60405
|
count: entry.count,
|
|
@@ -60320,7 +60409,7 @@ var WorkflowTimeline = ({
|
|
|
60320
60409
|
)
|
|
60321
60410
|
] }, entry.label)) })
|
|
60322
60411
|
] }),
|
|
60323
|
-
/* @__PURE__ */
|
|
60412
|
+
/* @__PURE__ */ jsx300("div", { className: classNames111(isEmpty2 ? "" : "px-5 py-5"), children: isEmpty2 ? emptyState ?? /* @__PURE__ */ jsx300(
|
|
60324
60413
|
WorkflowPlaceholder,
|
|
60325
60414
|
{
|
|
60326
60415
|
title: labels.empty,
|
|
@@ -60328,14 +60417,14 @@ var WorkflowTimeline = ({
|
|
|
60328
60417
|
palette,
|
|
60329
60418
|
surfaces
|
|
60330
60419
|
}
|
|
60331
|
-
) : /* @__PURE__ */
|
|
60420
|
+
) : /* @__PURE__ */ jsx300("ol", { className: "m-0 list-none p-0", children: steps.map((step, index) => {
|
|
60332
60421
|
const status = normalizeStatus(step.status);
|
|
60333
60422
|
const tokens = getStatusTokens(status, palette);
|
|
60334
60423
|
const isActive = step.id === activeStepId;
|
|
60335
60424
|
const isLast = index === steps.length - 1;
|
|
60336
60425
|
const nested = isActive && step.subSteps && step.subSteps.length > 0 ? step.subSteps : void 0;
|
|
60337
60426
|
const rowContent = /* @__PURE__ */ jsxs182(Fragment46, { children: [
|
|
60338
|
-
/* @__PURE__ */
|
|
60427
|
+
/* @__PURE__ */ jsx300(
|
|
60339
60428
|
WorkflowStatusNode_default,
|
|
60340
60429
|
{
|
|
60341
60430
|
status,
|
|
@@ -60345,17 +60434,17 @@ var WorkflowTimeline = ({
|
|
|
60345
60434
|
),
|
|
60346
60435
|
/* @__PURE__ */ jsxs182("div", { className: "min-w-0 flex-1", children: [
|
|
60347
60436
|
/* @__PURE__ */ jsxs182("div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
60348
|
-
/* @__PURE__ */
|
|
60437
|
+
/* @__PURE__ */ jsx300(
|
|
60349
60438
|
"span",
|
|
60350
60439
|
{
|
|
60351
|
-
className:
|
|
60440
|
+
className: classNames111(
|
|
60352
60441
|
"text-sm",
|
|
60353
60442
|
isActive ? "font-semibold text-neutral-900 dark:text-white" : "font-medium text-neutral-700 dark:text-neutral-200"
|
|
60354
60443
|
),
|
|
60355
60444
|
children: step.label
|
|
60356
60445
|
}
|
|
60357
60446
|
),
|
|
60358
|
-
step.badge && /* @__PURE__ */
|
|
60447
|
+
step.badge && /* @__PURE__ */ jsx300(
|
|
60359
60448
|
WorkflowBadge,
|
|
60360
60449
|
{
|
|
60361
60450
|
status,
|
|
@@ -60365,10 +60454,10 @@ var WorkflowTimeline = ({
|
|
|
60365
60454
|
}
|
|
60366
60455
|
)
|
|
60367
60456
|
] }),
|
|
60368
|
-
step.meta && /* @__PURE__ */
|
|
60457
|
+
step.meta && /* @__PURE__ */ jsx300(
|
|
60369
60458
|
"p",
|
|
60370
60459
|
{
|
|
60371
|
-
className:
|
|
60460
|
+
className: classNames111(
|
|
60372
60461
|
"mt-1 text-xs leading-5",
|
|
60373
60462
|
surfaces.mutedText
|
|
60374
60463
|
),
|
|
@@ -60380,21 +60469,21 @@ var WorkflowTimeline = ({
|
|
|
60380
60469
|
return /* @__PURE__ */ jsxs182(
|
|
60381
60470
|
"li",
|
|
60382
60471
|
{
|
|
60383
|
-
className:
|
|
60472
|
+
className: classNames111("relative", !isLast && "pb-5"),
|
|
60384
60473
|
"aria-current": isActive ? "step" : void 0,
|
|
60385
60474
|
children: [
|
|
60386
|
-
!isLast && /* @__PURE__ */
|
|
60475
|
+
!isLast && /* @__PURE__ */ jsx300(
|
|
60387
60476
|
"span",
|
|
60388
60477
|
{
|
|
60389
60478
|
"aria-hidden": "true",
|
|
60390
|
-
className:
|
|
60479
|
+
className: classNames111(
|
|
60391
60480
|
"absolute bottom-0",
|
|
60392
60481
|
tokens.connectorDashed ? `border-l-2 border-dashed ${tokens.connector}` : `w-0.5 rounded-full ${tokens.connector}`
|
|
60393
60482
|
),
|
|
60394
60483
|
style: { left: CONNECTOR_LEFT, top: CONNECTOR_TOP }
|
|
60395
60484
|
}
|
|
60396
60485
|
),
|
|
60397
|
-
onStepSelect ? /* @__PURE__ */
|
|
60486
|
+
onStepSelect ? /* @__PURE__ */ jsx300(
|
|
60398
60487
|
"button",
|
|
60399
60488
|
{
|
|
60400
60489
|
type: "button",
|
|
@@ -60402,8 +60491,19 @@ var WorkflowTimeline = ({
|
|
|
60402
60491
|
className: "flex w-full items-start gap-3 rounded-sm text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-neutral-400 focus-visible:ring-offset-2 dark:focus-visible:ring-neutral-500",
|
|
60403
60492
|
children: rowContent
|
|
60404
60493
|
}
|
|
60405
|
-
) : /* @__PURE__ */
|
|
60406
|
-
|
|
60494
|
+
) : /* @__PURE__ */ jsx300("div", { className: "flex items-start gap-3", children: rowContent }),
|
|
60495
|
+
/* @__PURE__ */ jsx300(
|
|
60496
|
+
WorkflowQuickActions_default,
|
|
60497
|
+
{
|
|
60498
|
+
stepId: step.id,
|
|
60499
|
+
actions: step.actions ?? [],
|
|
60500
|
+
palette,
|
|
60501
|
+
groupLabel: labels.quickActions,
|
|
60502
|
+
onAction: onStepAction,
|
|
60503
|
+
className: "ml-8 mt-2"
|
|
60504
|
+
}
|
|
60505
|
+
),
|
|
60506
|
+
nested && /* @__PURE__ */ jsx300(
|
|
60407
60507
|
NestedSubSteps,
|
|
60408
60508
|
{
|
|
60409
60509
|
stepId: step.id,
|
|
@@ -60418,8 +60518,8 @@ var WorkflowTimeline = ({
|
|
|
60418
60518
|
step.id
|
|
60419
60519
|
);
|
|
60420
60520
|
}) }) }),
|
|
60421
|
-
showLegend && !isEmpty2 && /* @__PURE__ */
|
|
60422
|
-
/* @__PURE__ */
|
|
60521
|
+
showLegend && !isEmpty2 && /* @__PURE__ */ jsx300("div", { className: classNames111("mt-auto border-t px-5 py-4", surfaces.border), children: /* @__PURE__ */ jsx300("ul", { className: "flex flex-wrap gap-x-4 gap-y-2", children: LEGEND_ORDER.map((status) => /* @__PURE__ */ jsxs182("li", { className: "flex items-center gap-2", children: [
|
|
60522
|
+
/* @__PURE__ */ jsx300(
|
|
60423
60523
|
WorkflowStatusNode_default,
|
|
60424
60524
|
{
|
|
60425
60525
|
status,
|
|
@@ -60427,14 +60527,92 @@ var WorkflowTimeline = ({
|
|
|
60427
60527
|
size: "sm"
|
|
60428
60528
|
}
|
|
60429
60529
|
),
|
|
60430
|
-
/* @__PURE__ */
|
|
60530
|
+
/* @__PURE__ */ jsx300("span", { className: classNames111("text-xs", surfaces.mutedText), children: labels.statuses[status] })
|
|
60431
60531
|
] }, status)) }) })
|
|
60432
60532
|
] });
|
|
60433
60533
|
};
|
|
60434
60534
|
var WorkflowTimeline_default = WorkflowTimeline;
|
|
60435
60535
|
|
|
60436
|
-
// src/components/WorkflowTracker/
|
|
60437
|
-
import
|
|
60536
|
+
// src/components/WorkflowTracker/chrome.ts
|
|
60537
|
+
import { useMemo as useMemo51 } from "react";
|
|
60538
|
+
var DEFAULT_LABELS = {
|
|
60539
|
+
progress: "Progress",
|
|
60540
|
+
done: "done",
|
|
60541
|
+
skipped: "skipped",
|
|
60542
|
+
flagged: "flagged",
|
|
60543
|
+
remaining: "remaining",
|
|
60544
|
+
step: "Step",
|
|
60545
|
+
of: "of",
|
|
60546
|
+
elapsed: "Elapsed",
|
|
60547
|
+
owner: "Owner",
|
|
60548
|
+
started: "Started",
|
|
60549
|
+
sla: "SLA",
|
|
60550
|
+
subSteps: "Sub-steps",
|
|
60551
|
+
accepted: "accepted",
|
|
60552
|
+
open: "open",
|
|
60553
|
+
needsAttention: "Needs attention",
|
|
60554
|
+
skippedSteps: "Skipped steps",
|
|
60555
|
+
live: "LIVE \xB7 read-only view",
|
|
60556
|
+
empty: "No steps yet",
|
|
60557
|
+
emptySubtitle: "Steps appear here as soon as the workflow starts.",
|
|
60558
|
+
noActiveStep: "No step selected",
|
|
60559
|
+
details: "Step details",
|
|
60560
|
+
quickActions: "Quick actions",
|
|
60561
|
+
statuses: {
|
|
60562
|
+
done: "Done",
|
|
60563
|
+
in_progress: "In progress",
|
|
60564
|
+
running: "Running",
|
|
60565
|
+
skipped: "Skipped",
|
|
60566
|
+
blocked: "Blocked",
|
|
60567
|
+
attention: "Attention",
|
|
60568
|
+
not_started: "Not started"
|
|
60569
|
+
}
|
|
60570
|
+
};
|
|
60571
|
+
var useWorkflowChrome = ({
|
|
60572
|
+
accentColor = "blue",
|
|
60573
|
+
attentionColor = "rose",
|
|
60574
|
+
blockedColor = "amber",
|
|
60575
|
+
mutedColor = "neutral",
|
|
60576
|
+
variant = "outlined",
|
|
60577
|
+
translucentSurfaces
|
|
60578
|
+
}) => {
|
|
60579
|
+
const translucent = translucentSurfaces ?? isTranslucentVariant(variant);
|
|
60580
|
+
const palette = useMemo51(
|
|
60581
|
+
() => ({
|
|
60582
|
+
accent: accentColor,
|
|
60583
|
+
attention: attentionColor,
|
|
60584
|
+
blocked: blockedColor,
|
|
60585
|
+
muted: mutedColor,
|
|
60586
|
+
translucent
|
|
60587
|
+
}),
|
|
60588
|
+
[accentColor, attentionColor, blockedColor, mutedColor, translucent]
|
|
60589
|
+
);
|
|
60590
|
+
const surfaces = useMemo51(() => getSurfaceTokens(translucent), [translucent]);
|
|
60591
|
+
return { translucent, palette, surfaces };
|
|
60592
|
+
};
|
|
60593
|
+
var resolveLabels = (labelOverrides) => labelOverrides ? {
|
|
60594
|
+
...DEFAULT_LABELS,
|
|
60595
|
+
...labelOverrides,
|
|
60596
|
+
statuses: { ...DEFAULT_LABELS.statuses, ...labelOverrides.statuses }
|
|
60597
|
+
} : DEFAULT_LABELS;
|
|
60598
|
+
var buildCardProps = ({
|
|
60599
|
+
variant = "outlined",
|
|
60600
|
+
cardTone = "neutral",
|
|
60601
|
+
corner = DEFAULT_SURFACE_CORNER,
|
|
60602
|
+
glassOpacity = "light",
|
|
60603
|
+
vibrancy,
|
|
60604
|
+
specularMode,
|
|
60605
|
+
padding = "none"
|
|
60606
|
+
}) => ({
|
|
60607
|
+
variant,
|
|
60608
|
+
tone: cardTone,
|
|
60609
|
+
corner,
|
|
60610
|
+
glassOpacity,
|
|
60611
|
+
vibrancy,
|
|
60612
|
+
specularMode,
|
|
60613
|
+
padding,
|
|
60614
|
+
scrollable: false
|
|
60615
|
+
});
|
|
60438
60616
|
|
|
60439
60617
|
// src/components/WorkflowTracker/derive.ts
|
|
60440
60618
|
var computeProgress = (steps) => {
|
|
@@ -60509,8 +60687,262 @@ var resolveActiveStep = (steps, activeStepId) => {
|
|
|
60509
60687
|
return { step: steps[0], index: 1 };
|
|
60510
60688
|
};
|
|
60511
60689
|
|
|
60690
|
+
// src/components/WorkflowTracker/sampleWorkflow.tsx
|
|
60691
|
+
import { jsx as jsx301, jsxs as jsxs183 } from "react/jsx-runtime";
|
|
60692
|
+
var sampleWorkflow = {
|
|
60693
|
+
eyebrow: "VENDOR ONBOARDING \xB7 REQ-4128",
|
|
60694
|
+
title: "Northwind Logistics GmbH",
|
|
60695
|
+
live: true,
|
|
60696
|
+
activeStepId: "security_questionnaire",
|
|
60697
|
+
steps: [
|
|
60698
|
+
{
|
|
60699
|
+
id: "request_submitted",
|
|
60700
|
+
label: "Request submitted",
|
|
60701
|
+
status: "done",
|
|
60702
|
+
meta: "2m"
|
|
60703
|
+
},
|
|
60704
|
+
{
|
|
60705
|
+
id: "duplicate_check",
|
|
60706
|
+
label: "Duplicate check",
|
|
60707
|
+
status: "skipped",
|
|
60708
|
+
badge: "Not needed",
|
|
60709
|
+
meta: "No match in registry"
|
|
60710
|
+
},
|
|
60711
|
+
{
|
|
60712
|
+
id: "business_verification",
|
|
60713
|
+
label: "Business verification",
|
|
60714
|
+
status: "done",
|
|
60715
|
+
meta: "12m \xB7 3 of 3 sub-steps"
|
|
60716
|
+
},
|
|
60717
|
+
{
|
|
60718
|
+
id: "sanctions_screening",
|
|
60719
|
+
label: "Sanctions screening",
|
|
60720
|
+
status: "done",
|
|
60721
|
+
meta: "4m"
|
|
60722
|
+
},
|
|
60723
|
+
{
|
|
60724
|
+
id: "tax_documents",
|
|
60725
|
+
label: "Tax documents",
|
|
60726
|
+
status: "skipped",
|
|
60727
|
+
badge: "Skipped",
|
|
60728
|
+
meta: "Skipped by M. Reyes \xB7 resume anytime"
|
|
60729
|
+
},
|
|
60730
|
+
{
|
|
60731
|
+
id: "insurance_certificates",
|
|
60732
|
+
label: "Insurance certificates",
|
|
60733
|
+
status: "attention",
|
|
60734
|
+
badge: "Needs attention",
|
|
60735
|
+
meta: "1h 06m \xB7 Liability certificate expired 12 Aug",
|
|
60736
|
+
details: /* @__PURE__ */ jsxs183("div", { className: "space-y-3 px-5 py-4 sm:px-6", children: [
|
|
60737
|
+
/* @__PURE__ */ jsx301("p", { className: "text-sm leading-6 text-neutral-600 dark:text-neutral-300", children: "The liability certificate expired on 12 Aug. A reminder went to the vendor\u2019s compliance contact; the underwriter quote is still pending." }),
|
|
60738
|
+
/* @__PURE__ */ jsx301("ul", { className: "flex flex-wrap gap-2", children: ["reminder-12-aug.pdf", "underwriter-quote.pdf"].map((file) => /* @__PURE__ */ jsx301(
|
|
60739
|
+
"li",
|
|
60740
|
+
{
|
|
60741
|
+
className: "rounded-full border border-neutral-200 px-2.5 py-0.5 text-xs text-neutral-500 dark:border-neutral-700 dark:text-neutral-400",
|
|
60742
|
+
children: file
|
|
60743
|
+
},
|
|
60744
|
+
file
|
|
60745
|
+
)) })
|
|
60746
|
+
] }),
|
|
60747
|
+
actions: [
|
|
60748
|
+
{ id: "review", label: "Review" },
|
|
60749
|
+
{ id: "remind", label: "Remind vendor", tone: "amber" }
|
|
60750
|
+
]
|
|
60751
|
+
},
|
|
60752
|
+
{
|
|
60753
|
+
id: "contract_drafting",
|
|
60754
|
+
label: "Contract drafting",
|
|
60755
|
+
status: "done",
|
|
60756
|
+
meta: "1h 10m"
|
|
60757
|
+
},
|
|
60758
|
+
{
|
|
60759
|
+
id: "security_questionnaire",
|
|
60760
|
+
label: "Security questionnaire",
|
|
60761
|
+
status: "in_progress",
|
|
60762
|
+
badge: "In progress",
|
|
60763
|
+
meta: "24m \xB7 3 of 6 sub-steps",
|
|
60764
|
+
elapsed: "24m",
|
|
60765
|
+
description: "Vendor is completing the long-form questionnaire. Each sub-step unlocks once its evidence file is accepted by the reviewer.",
|
|
60766
|
+
owner: "D. Okafor",
|
|
60767
|
+
startedAt: "19 Aug \xB7 09:12",
|
|
60768
|
+
sla: "Due in 6h",
|
|
60769
|
+
details: /* @__PURE__ */ jsxs183("div", { className: "space-y-5 px-5 py-4 sm:px-6", children: [
|
|
60770
|
+
/* @__PURE__ */ jsxs183("div", { children: [
|
|
60771
|
+
/* @__PURE__ */ jsx301("p", { className: "text-[11px] font-semibold uppercase tracking-widest text-neutral-400 dark:text-neutral-500", children: "Review activity" }),
|
|
60772
|
+
/* @__PURE__ */ jsx301("p", { className: "mt-2 text-sm leading-6 text-neutral-600 dark:text-neutral-300", children: "Reviewer A. Lindqvist is cross-checking the subprocessor list against the master agreement. Uploads appear here as the vendor submits them." })
|
|
60773
|
+
] }),
|
|
60774
|
+
/* @__PURE__ */ jsxs183("div", { children: [
|
|
60775
|
+
/* @__PURE__ */ jsx301("p", { className: "text-[11px] font-semibold uppercase tracking-widest text-neutral-400 dark:text-neutral-500", children: "Files received" }),
|
|
60776
|
+
/* @__PURE__ */ jsx301("ul", { className: "mt-2 flex flex-wrap gap-2", children: [
|
|
60777
|
+
"data-handling-v3.pdf",
|
|
60778
|
+
"pentest-2026.pdf",
|
|
60779
|
+
"soc2-typeii.pdf"
|
|
60780
|
+
].map((file) => /* @__PURE__ */ jsx301(
|
|
60781
|
+
"li",
|
|
60782
|
+
{
|
|
60783
|
+
className: "rounded-full border border-neutral-200 px-2.5 py-0.5 text-xs text-neutral-500 dark:border-neutral-700 dark:text-neutral-400",
|
|
60784
|
+
children: file
|
|
60785
|
+
},
|
|
60786
|
+
file
|
|
60787
|
+
)) })
|
|
60788
|
+
] }),
|
|
60789
|
+
/* @__PURE__ */ jsxs183("div", { children: [
|
|
60790
|
+
/* @__PURE__ */ jsx301("p", { className: "text-[11px] font-semibold uppercase tracking-widest text-neutral-400 dark:text-neutral-500", children: "Open findings" }),
|
|
60791
|
+
/* @__PURE__ */ jsxs183("ul", { className: "mt-2 space-y-2", children: [
|
|
60792
|
+
/* @__PURE__ */ jsxs183("li", { className: "flex items-start gap-2 text-sm leading-6 text-neutral-600 dark:text-neutral-300", children: [
|
|
60793
|
+
/* @__PURE__ */ jsx301(
|
|
60794
|
+
"span",
|
|
60795
|
+
{
|
|
60796
|
+
"aria-hidden": "true",
|
|
60797
|
+
className: "mt-[9px] size-1.5 shrink-0 rounded-full bg-amber-400"
|
|
60798
|
+
}
|
|
60799
|
+
),
|
|
60800
|
+
"Subprocessor \u201CCloudDot BV\u201D is not covered by the DPA yet"
|
|
60801
|
+
] }),
|
|
60802
|
+
/* @__PURE__ */ jsxs183("li", { className: "flex items-start gap-2 text-sm leading-6 text-neutral-600 dark:text-neutral-300", children: [
|
|
60803
|
+
/* @__PURE__ */ jsx301(
|
|
60804
|
+
"span",
|
|
60805
|
+
{
|
|
60806
|
+
"aria-hidden": "true",
|
|
60807
|
+
className: "mt-[9px] size-1.5 shrink-0 rounded-full bg-neutral-300 dark:bg-neutral-600"
|
|
60808
|
+
}
|
|
60809
|
+
),
|
|
60810
|
+
"Waiting on the incident-contact annex"
|
|
60811
|
+
] })
|
|
60812
|
+
] })
|
|
60813
|
+
] })
|
|
60814
|
+
] }),
|
|
60815
|
+
subSteps: [
|
|
60816
|
+
{
|
|
60817
|
+
id: "data_handling",
|
|
60818
|
+
label: "Data handling policy",
|
|
60819
|
+
status: "done",
|
|
60820
|
+
badge: "Accepted",
|
|
60821
|
+
duration: "5m"
|
|
60822
|
+
},
|
|
60823
|
+
{
|
|
60824
|
+
id: "pentest",
|
|
60825
|
+
label: "Penetration test report",
|
|
60826
|
+
status: "done",
|
|
60827
|
+
badge: "Accepted",
|
|
60828
|
+
duration: "8m"
|
|
60829
|
+
},
|
|
60830
|
+
{
|
|
60831
|
+
id: "soc2",
|
|
60832
|
+
label: "SOC 2 Type II evidence",
|
|
60833
|
+
status: "done",
|
|
60834
|
+
badge: "Accepted",
|
|
60835
|
+
duration: "11m"
|
|
60836
|
+
},
|
|
60837
|
+
{
|
|
60838
|
+
id: "subprocessor_list",
|
|
60839
|
+
label: "Subprocessor list",
|
|
60840
|
+
status: "running",
|
|
60841
|
+
badge: "Running",
|
|
60842
|
+
note: "Vendor uploading \u2014 2 of 3 files received"
|
|
60843
|
+
},
|
|
60844
|
+
{
|
|
60845
|
+
id: "incident_response",
|
|
60846
|
+
label: "Incident response plan",
|
|
60847
|
+
status: "skipped",
|
|
60848
|
+
badge: "Skipped",
|
|
60849
|
+
note: "Covered by master agreement \xA77"
|
|
60850
|
+
},
|
|
60851
|
+
{
|
|
60852
|
+
id: "business_continuity",
|
|
60853
|
+
label: "Business continuity plan",
|
|
60854
|
+
status: "not_started"
|
|
60855
|
+
}
|
|
60856
|
+
]
|
|
60857
|
+
},
|
|
60858
|
+
{
|
|
60859
|
+
id: "legal_review",
|
|
60860
|
+
label: "Legal review",
|
|
60861
|
+
status: "blocked",
|
|
60862
|
+
badge: "Blocked",
|
|
60863
|
+
meta: "Waiting on Legal \xB7 queued 2d",
|
|
60864
|
+
actions: [{ id: "nudge", label: "Nudge Legal", tone: "violet" }]
|
|
60865
|
+
},
|
|
60866
|
+
{
|
|
60867
|
+
id: "banking_details",
|
|
60868
|
+
label: "Banking details",
|
|
60869
|
+
status: "not_started"
|
|
60870
|
+
},
|
|
60871
|
+
{
|
|
60872
|
+
id: "system_provisioning",
|
|
60873
|
+
label: "System provisioning",
|
|
60874
|
+
status: "not_started"
|
|
60875
|
+
},
|
|
60876
|
+
{ id: "go_live", label: "Go-live", status: "not_started" }
|
|
60877
|
+
]
|
|
60878
|
+
};
|
|
60879
|
+
|
|
60880
|
+
// src/components/WorkflowTracker/WorkflowTrackerRail.tsx
|
|
60881
|
+
import { jsx as jsx302 } from "react/jsx-runtime";
|
|
60882
|
+
var WorkflowTrackerRail = ({
|
|
60883
|
+
data = sampleWorkflow,
|
|
60884
|
+
loading = false,
|
|
60885
|
+
loadingRows = 6,
|
|
60886
|
+
showLegend = true,
|
|
60887
|
+
emptyState,
|
|
60888
|
+
labels: labelOverrides,
|
|
60889
|
+
cardClassName,
|
|
60890
|
+
cardScrollable,
|
|
60891
|
+
onStepSelect,
|
|
60892
|
+
onSubStepSelect,
|
|
60893
|
+
onStepAction,
|
|
60894
|
+
className,
|
|
60895
|
+
style,
|
|
60896
|
+
...styleProps
|
|
60897
|
+
}) => {
|
|
60898
|
+
const steps = data?.steps ?? [];
|
|
60899
|
+
const { palette, surfaces } = useWorkflowChrome(styleProps);
|
|
60900
|
+
const labels = useMemo52(() => resolveLabels(labelOverrides), [labelOverrides]);
|
|
60901
|
+
const cardProps = buildCardProps(styleProps);
|
|
60902
|
+
const active = useMemo52(
|
|
60903
|
+
() => resolveActiveStep(steps, data?.activeStepId),
|
|
60904
|
+
[steps, data?.activeStepId]
|
|
60905
|
+
);
|
|
60906
|
+
const progress = useMemo52(() => computeProgress(steps), [steps]);
|
|
60907
|
+
const tallies = useMemo52(() => computeTallies(steps), [steps]);
|
|
60908
|
+
return /* @__PURE__ */ jsx302(
|
|
60909
|
+
Panel_default,
|
|
60910
|
+
{
|
|
60911
|
+
...cardProps,
|
|
60912
|
+
scrollable: cardScrollable ?? false,
|
|
60913
|
+
className: classNames112(className, cardClassName),
|
|
60914
|
+
style,
|
|
60915
|
+
children: /* @__PURE__ */ jsx302(
|
|
60916
|
+
WorkflowTimeline_default,
|
|
60917
|
+
{
|
|
60918
|
+
steps,
|
|
60919
|
+
activeStepId: active?.step.id,
|
|
60920
|
+
palette,
|
|
60921
|
+
surfaces,
|
|
60922
|
+
labels,
|
|
60923
|
+
progress,
|
|
60924
|
+
tallies,
|
|
60925
|
+
showLegend: showLegend && !loading,
|
|
60926
|
+
loading,
|
|
60927
|
+
loadingRows,
|
|
60928
|
+
emptyState,
|
|
60929
|
+
onStepSelect,
|
|
60930
|
+
onSubStepSelect,
|
|
60931
|
+
onStepAction
|
|
60932
|
+
}
|
|
60933
|
+
)
|
|
60934
|
+
}
|
|
60935
|
+
);
|
|
60936
|
+
};
|
|
60937
|
+
var WorkflowTrackerRail_default = WorkflowTrackerRail;
|
|
60938
|
+
|
|
60939
|
+
// src/components/WorkflowTracker/WorkflowTrackerStepDetails.tsx
|
|
60940
|
+
import { useMemo as useMemo53 } from "react";
|
|
60941
|
+
import classNames114 from "classnames";
|
|
60942
|
+
|
|
60512
60943
|
// src/components/WorkflowTracker/WorkflowDetailPanel.tsx
|
|
60513
|
-
import
|
|
60944
|
+
import classNames113 from "classnames";
|
|
60945
|
+
import { Fragment as Fragment47, jsx as jsx303, jsxs as jsxs184 } from "react/jsx-runtime";
|
|
60514
60946
|
var WorkflowDetailPanel = ({
|
|
60515
60947
|
active,
|
|
60516
60948
|
totalSteps,
|
|
@@ -60518,13 +60950,14 @@ var WorkflowDetailPanel = ({
|
|
|
60518
60950
|
surfaces,
|
|
60519
60951
|
labels,
|
|
60520
60952
|
loading,
|
|
60521
|
-
onSubStepSelect
|
|
60953
|
+
onSubStepSelect,
|
|
60954
|
+
onStepAction
|
|
60522
60955
|
}) => {
|
|
60523
60956
|
if (loading) {
|
|
60524
|
-
return /* @__PURE__ */
|
|
60957
|
+
return /* @__PURE__ */ jsx303(WorkflowDetailSkeleton, {});
|
|
60525
60958
|
}
|
|
60526
60959
|
if (!active) {
|
|
60527
|
-
return /* @__PURE__ */
|
|
60960
|
+
return /* @__PURE__ */ jsx303(
|
|
60528
60961
|
WorkflowPlaceholder,
|
|
60529
60962
|
{
|
|
60530
60963
|
title: labels.noActiveStep,
|
|
@@ -60542,11 +60975,11 @@ var WorkflowDetailPanel = ({
|
|
|
60542
60975
|
step.startedAt ? { label: labels.started, value: step.startedAt } : void 0,
|
|
60543
60976
|
step.sla ? { label: labels.sla, value: step.sla } : void 0
|
|
60544
60977
|
].filter(Boolean);
|
|
60545
|
-
return /* @__PURE__ */
|
|
60546
|
-
/* @__PURE__ */
|
|
60547
|
-
/* @__PURE__ */
|
|
60548
|
-
/* @__PURE__ */
|
|
60549
|
-
/* @__PURE__ */
|
|
60978
|
+
return /* @__PURE__ */ jsxs184("div", { className: "flex flex-col", children: [
|
|
60979
|
+
/* @__PURE__ */ jsxs184("div", { className: "px-5 pb-6 pt-5 sm:px-6", children: [
|
|
60980
|
+
/* @__PURE__ */ jsxs184("div", { className: "flex flex-wrap items-center justify-between gap-x-4 gap-y-2", children: [
|
|
60981
|
+
/* @__PURE__ */ jsxs184("div", { className: "flex flex-wrap items-center gap-3", children: [
|
|
60982
|
+
/* @__PURE__ */ jsxs184(SectionTitle, { surfaces, children: [
|
|
60550
60983
|
labels.step,
|
|
60551
60984
|
" ",
|
|
60552
60985
|
index,
|
|
@@ -60555,7 +60988,7 @@ var WorkflowDetailPanel = ({
|
|
|
60555
60988
|
" ",
|
|
60556
60989
|
totalSteps
|
|
60557
60990
|
] }),
|
|
60558
|
-
step.badge && /* @__PURE__ */
|
|
60991
|
+
step.badge && /* @__PURE__ */ jsx303(
|
|
60559
60992
|
WorkflowBadge,
|
|
60560
60993
|
{
|
|
60561
60994
|
status,
|
|
@@ -60565,24 +60998,36 @@ var WorkflowDetailPanel = ({
|
|
|
60565
60998
|
}
|
|
60566
60999
|
)
|
|
60567
61000
|
] }),
|
|
60568
|
-
|
|
60569
|
-
|
|
60570
|
-
|
|
60571
|
-
|
|
61001
|
+
/* @__PURE__ */ jsxs184("div", { className: "flex flex-wrap items-center justify-end gap-x-4 gap-y-2", children: [
|
|
61002
|
+
step.elapsed && /* @__PURE__ */ jsxs184(SectionMeta, { surfaces, children: [
|
|
61003
|
+
labels.elapsed,
|
|
61004
|
+
" ",
|
|
61005
|
+
step.elapsed
|
|
61006
|
+
] }),
|
|
61007
|
+
/* @__PURE__ */ jsx303(
|
|
61008
|
+
WorkflowQuickActions_default,
|
|
61009
|
+
{
|
|
61010
|
+
stepId: step.id,
|
|
61011
|
+
actions: step.actions ?? [],
|
|
61012
|
+
palette,
|
|
61013
|
+
groupLabel: labels.quickActions,
|
|
61014
|
+
onAction: onStepAction
|
|
61015
|
+
}
|
|
61016
|
+
)
|
|
60572
61017
|
] })
|
|
60573
61018
|
] }),
|
|
60574
|
-
/* @__PURE__ */
|
|
60575
|
-
step.description && /* @__PURE__ */
|
|
61019
|
+
/* @__PURE__ */ jsx303("h3", { className: "mt-3 text-xl font-semibold tracking-tight text-neutral-900 dark:text-white sm:text-2xl", children: step.label }),
|
|
61020
|
+
step.description && /* @__PURE__ */ jsx303(
|
|
60576
61021
|
"p",
|
|
60577
61022
|
{
|
|
60578
|
-
className:
|
|
61023
|
+
className: classNames113(
|
|
60579
61024
|
"mt-2 max-w-3xl text-sm leading-6",
|
|
60580
61025
|
surfaces.mutedText
|
|
60581
61026
|
),
|
|
60582
61027
|
children: step.description
|
|
60583
61028
|
}
|
|
60584
61029
|
),
|
|
60585
|
-
metaFields.length > 0 && /* @__PURE__ */
|
|
61030
|
+
metaFields.length > 0 && /* @__PURE__ */ jsx303("div", { className: "mt-5 flex flex-wrap gap-x-10 gap-y-4", children: metaFields.map((field) => /* @__PURE__ */ jsx303(
|
|
60586
61031
|
MetaField,
|
|
60587
61032
|
{
|
|
60588
61033
|
label: field.label,
|
|
@@ -60592,18 +61037,18 @@ var WorkflowDetailPanel = ({
|
|
|
60592
61037
|
field.label
|
|
60593
61038
|
)) })
|
|
60594
61039
|
] }),
|
|
60595
|
-
subSteps.length > 0 && /* @__PURE__ */
|
|
60596
|
-
/* @__PURE__ */
|
|
61040
|
+
subSteps.length > 0 && /* @__PURE__ */ jsxs184(Fragment47, { children: [
|
|
61041
|
+
/* @__PURE__ */ jsxs184(
|
|
60597
61042
|
"div",
|
|
60598
61043
|
{
|
|
60599
|
-
className:
|
|
61044
|
+
className: classNames113(
|
|
60600
61045
|
"flex flex-wrap items-center justify-between gap-2 border-y px-5 py-2.5 sm:px-6",
|
|
60601
61046
|
surfaces.border,
|
|
60602
61047
|
surfaces.strip
|
|
60603
61048
|
),
|
|
60604
61049
|
children: [
|
|
60605
|
-
/* @__PURE__ */
|
|
60606
|
-
/* @__PURE__ */
|
|
61050
|
+
/* @__PURE__ */ jsx303(SectionTitle, { surfaces, children: labels.subSteps }),
|
|
61051
|
+
/* @__PURE__ */ jsxs184(SectionMeta, { surfaces, children: [
|
|
60607
61052
|
summary.accepted,
|
|
60608
61053
|
" ",
|
|
60609
61054
|
labels.accepted,
|
|
@@ -60619,24 +61064,24 @@ var WorkflowDetailPanel = ({
|
|
|
60619
61064
|
]
|
|
60620
61065
|
}
|
|
60621
61066
|
),
|
|
60622
|
-
/* @__PURE__ */
|
|
61067
|
+
/* @__PURE__ */ jsx303(
|
|
60623
61068
|
"ul",
|
|
60624
61069
|
{
|
|
60625
|
-
className:
|
|
61070
|
+
className: classNames113(
|
|
60626
61071
|
"m-0 list-none divide-y p-0",
|
|
60627
61072
|
surfaces.divider
|
|
60628
61073
|
),
|
|
60629
61074
|
children: subSteps.map((subStep) => {
|
|
60630
61075
|
const subStatus = normalizeStatus(subStep.status);
|
|
60631
61076
|
const isRunning = subStatus === "running";
|
|
60632
|
-
const rowContent = /* @__PURE__ */
|
|
60633
|
-
/* @__PURE__ */
|
|
60634
|
-
/* @__PURE__ */
|
|
60635
|
-
/* @__PURE__ */
|
|
60636
|
-
subStep.note && /* @__PURE__ */
|
|
61077
|
+
const rowContent = /* @__PURE__ */ jsxs184(Fragment47, { children: [
|
|
61078
|
+
/* @__PURE__ */ jsx303(WorkflowStatusNode_default, { status: subStatus, palette }),
|
|
61079
|
+
/* @__PURE__ */ jsxs184("div", { className: "min-w-0 flex-1", children: [
|
|
61080
|
+
/* @__PURE__ */ jsx303("p", { className: "text-sm font-medium text-neutral-800 dark:text-neutral-100", children: subStep.label }),
|
|
61081
|
+
subStep.note && /* @__PURE__ */ jsx303(
|
|
60637
61082
|
"p",
|
|
60638
61083
|
{
|
|
60639
|
-
className:
|
|
61084
|
+
className: classNames113(
|
|
60640
61085
|
"mt-0.5 text-xs leading-5",
|
|
60641
61086
|
surfaces.mutedText
|
|
60642
61087
|
),
|
|
@@ -60644,7 +61089,7 @@ var WorkflowDetailPanel = ({
|
|
|
60644
61089
|
}
|
|
60645
61090
|
)
|
|
60646
61091
|
] }),
|
|
60647
|
-
subStep.badge && /* @__PURE__ */
|
|
61092
|
+
subStep.badge && /* @__PURE__ */ jsx303(
|
|
60648
61093
|
WorkflowBadge,
|
|
60649
61094
|
{
|
|
60650
61095
|
status: subStatus,
|
|
@@ -60653,10 +61098,10 @@ var WorkflowDetailPanel = ({
|
|
|
60653
61098
|
children: subStep.badge
|
|
60654
61099
|
}
|
|
60655
61100
|
),
|
|
60656
|
-
/* @__PURE__ */
|
|
61101
|
+
/* @__PURE__ */ jsx303(
|
|
60657
61102
|
"span",
|
|
60658
61103
|
{
|
|
60659
|
-
className:
|
|
61104
|
+
className: classNames113(
|
|
60660
61105
|
"w-10 shrink-0 text-right text-xs tabular-nums",
|
|
60661
61106
|
surfaces.faintText
|
|
60662
61107
|
),
|
|
@@ -60664,22 +61109,22 @@ var WorkflowDetailPanel = ({
|
|
|
60664
61109
|
}
|
|
60665
61110
|
)
|
|
60666
61111
|
] });
|
|
60667
|
-
const rowClasses =
|
|
61112
|
+
const rowClasses = classNames113(
|
|
60668
61113
|
"flex w-full items-center gap-3 px-5 py-3 text-left sm:px-6",
|
|
60669
61114
|
isRunning && getRowHighlight(palette.accent, surfaces.translucent)
|
|
60670
61115
|
);
|
|
60671
|
-
return /* @__PURE__ */
|
|
61116
|
+
return /* @__PURE__ */ jsx303("li", { children: onSubStepSelect ? /* @__PURE__ */ jsx303(
|
|
60672
61117
|
"button",
|
|
60673
61118
|
{
|
|
60674
61119
|
type: "button",
|
|
60675
61120
|
onClick: () => onSubStepSelect(step.id, subStep.id),
|
|
60676
|
-
className:
|
|
61121
|
+
className: classNames113(
|
|
60677
61122
|
rowClasses,
|
|
60678
61123
|
"focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-neutral-400 dark:focus-visible:ring-neutral-500"
|
|
60679
61124
|
),
|
|
60680
61125
|
children: rowContent
|
|
60681
61126
|
}
|
|
60682
|
-
) : /* @__PURE__ */
|
|
61127
|
+
) : /* @__PURE__ */ jsx303("div", { className: rowClasses, children: rowContent }) }, subStep.id);
|
|
60683
61128
|
})
|
|
60684
61129
|
}
|
|
60685
61130
|
)
|
|
@@ -60688,18 +61133,128 @@ var WorkflowDetailPanel = ({
|
|
|
60688
61133
|
};
|
|
60689
61134
|
var WorkflowDetailPanel_default = WorkflowDetailPanel;
|
|
60690
61135
|
|
|
61136
|
+
// src/components/WorkflowTracker/WorkflowTrackerStepDetails.tsx
|
|
61137
|
+
import { jsx as jsx304 } from "react/jsx-runtime";
|
|
61138
|
+
var WorkflowTrackerStepDetails = ({
|
|
61139
|
+
data = sampleWorkflow,
|
|
61140
|
+
loading = false,
|
|
61141
|
+
labels: labelOverrides,
|
|
61142
|
+
cardClassName,
|
|
61143
|
+
onSubStepSelect,
|
|
61144
|
+
onStepAction,
|
|
61145
|
+
className,
|
|
61146
|
+
style,
|
|
61147
|
+
...styleProps
|
|
61148
|
+
}) => {
|
|
61149
|
+
const steps = data?.steps ?? [];
|
|
61150
|
+
const { palette, surfaces } = useWorkflowChrome(styleProps);
|
|
61151
|
+
const labels = useMemo53(
|
|
61152
|
+
() => resolveLabels(labelOverrides),
|
|
61153
|
+
[labelOverrides]
|
|
61154
|
+
);
|
|
61155
|
+
const cardProps = buildCardProps(styleProps);
|
|
61156
|
+
const active = useMemo53(
|
|
61157
|
+
() => resolveActiveStep(steps, data?.activeStepId),
|
|
61158
|
+
[steps, data?.activeStepId]
|
|
61159
|
+
);
|
|
61160
|
+
return /* @__PURE__ */ jsx304(
|
|
61161
|
+
Panel_default,
|
|
61162
|
+
{
|
|
61163
|
+
...cardProps,
|
|
61164
|
+
className: classNames114(className, cardClassName),
|
|
61165
|
+
style,
|
|
61166
|
+
children: /* @__PURE__ */ jsx304(
|
|
61167
|
+
WorkflowDetailPanel_default,
|
|
61168
|
+
{
|
|
61169
|
+
active,
|
|
61170
|
+
totalSteps: steps.length,
|
|
61171
|
+
palette,
|
|
61172
|
+
surfaces,
|
|
61173
|
+
labels,
|
|
61174
|
+
loading,
|
|
61175
|
+
onSubStepSelect,
|
|
61176
|
+
onStepAction
|
|
61177
|
+
}
|
|
61178
|
+
)
|
|
61179
|
+
}
|
|
61180
|
+
);
|
|
61181
|
+
};
|
|
61182
|
+
var WorkflowTrackerStepDetails_default = WorkflowTrackerStepDetails;
|
|
61183
|
+
|
|
61184
|
+
// src/components/WorkflowTracker/WorkflowTrackerDetails.tsx
|
|
61185
|
+
import { useMemo as useMemo54 } from "react";
|
|
61186
|
+
import classNames116 from "classnames";
|
|
61187
|
+
|
|
61188
|
+
// src/components/WorkflowTracker/WorkflowDetailsCard.tsx
|
|
61189
|
+
import classNames115 from "classnames";
|
|
61190
|
+
import { jsx as jsx305 } from "react/jsx-runtime";
|
|
61191
|
+
var WorkflowDetailsCard = ({
|
|
61192
|
+
details,
|
|
61193
|
+
ariaLabel,
|
|
61194
|
+
cardProps,
|
|
61195
|
+
className,
|
|
61196
|
+
style
|
|
61197
|
+
}) => /* @__PURE__ */ jsx305(
|
|
61198
|
+
Panel_default,
|
|
61199
|
+
{
|
|
61200
|
+
...cardProps,
|
|
61201
|
+
flexBody: true,
|
|
61202
|
+
className: classNames115("flex-1", className),
|
|
61203
|
+
style,
|
|
61204
|
+
children: /* @__PURE__ */ jsx305(ScrollArea_default, { className: "h-full", mask: true, role: "region", "aria-label": ariaLabel, children: details })
|
|
61205
|
+
}
|
|
61206
|
+
);
|
|
61207
|
+
var WorkflowDetailsCard_default = WorkflowDetailsCard;
|
|
61208
|
+
|
|
61209
|
+
// src/components/WorkflowTracker/WorkflowTrackerDetails.tsx
|
|
61210
|
+
import { jsx as jsx306 } from "react/jsx-runtime";
|
|
61211
|
+
var WorkflowTrackerDetails = ({
|
|
61212
|
+
data = sampleWorkflow,
|
|
61213
|
+
loading = false,
|
|
61214
|
+
labels: labelOverrides,
|
|
61215
|
+
cardClassName,
|
|
61216
|
+
className,
|
|
61217
|
+
style,
|
|
61218
|
+
...styleProps
|
|
61219
|
+
}) => {
|
|
61220
|
+
const steps = data?.steps ?? [];
|
|
61221
|
+
const labels = useMemo54(() => resolveLabels(labelOverrides), [labelOverrides]);
|
|
61222
|
+
const cardProps = buildCardProps(styleProps);
|
|
61223
|
+
const active = useMemo54(
|
|
61224
|
+
() => resolveActiveStep(steps, data?.activeStepId),
|
|
61225
|
+
[steps, data?.activeStepId]
|
|
61226
|
+
);
|
|
61227
|
+
const details = active?.step.details;
|
|
61228
|
+
if (loading || details == null || details === "") return null;
|
|
61229
|
+
return /* @__PURE__ */ jsx306(
|
|
61230
|
+
WorkflowDetailsCard_default,
|
|
61231
|
+
{
|
|
61232
|
+
details,
|
|
61233
|
+
ariaLabel: labels.details,
|
|
61234
|
+
cardProps,
|
|
61235
|
+
className: classNames116(className, cardClassName),
|
|
61236
|
+
style
|
|
61237
|
+
}
|
|
61238
|
+
);
|
|
61239
|
+
};
|
|
61240
|
+
var WorkflowTrackerDetails_default = WorkflowTrackerDetails;
|
|
61241
|
+
|
|
61242
|
+
// src/components/WorkflowTracker/WorkflowTrackerRollups.tsx
|
|
61243
|
+
import { useMemo as useMemo55 } from "react";
|
|
61244
|
+
import classNames118 from "classnames";
|
|
61245
|
+
|
|
60691
61246
|
// src/components/WorkflowTracker/WorkflowSummaryCard.tsx
|
|
60692
|
-
import
|
|
60693
|
-
import { jsx as
|
|
61247
|
+
import classNames117 from "classnames";
|
|
61248
|
+
import { jsx as jsx307, jsxs as jsxs185 } from "react/jsx-runtime";
|
|
60694
61249
|
var WorkflowSummaryCard = ({
|
|
60695
61250
|
title,
|
|
60696
61251
|
steps,
|
|
60697
61252
|
palette,
|
|
60698
61253
|
surfaces
|
|
60699
|
-
}) => /* @__PURE__ */
|
|
60700
|
-
/* @__PURE__ */
|
|
60701
|
-
/* @__PURE__ */
|
|
60702
|
-
/* @__PURE__ */
|
|
61254
|
+
}) => /* @__PURE__ */ jsxs185("div", { className: "px-5 py-4", children: [
|
|
61255
|
+
/* @__PURE__ */ jsx307(SectionTitle, { surfaces, children: title }),
|
|
61256
|
+
/* @__PURE__ */ jsx307("ul", { className: "mt-3 space-y-3", children: steps.map((step) => /* @__PURE__ */ jsxs185("li", { className: "flex items-start gap-3", children: [
|
|
61257
|
+
/* @__PURE__ */ jsx307(
|
|
60703
61258
|
WorkflowStatusNode_default,
|
|
60704
61259
|
{
|
|
60705
61260
|
status: normalizeStatus(step.status),
|
|
@@ -60707,12 +61262,12 @@ var WorkflowSummaryCard = ({
|
|
|
60707
61262
|
className: "mt-0.5"
|
|
60708
61263
|
}
|
|
60709
61264
|
),
|
|
60710
|
-
/* @__PURE__ */
|
|
60711
|
-
/* @__PURE__ */
|
|
60712
|
-
step.meta && /* @__PURE__ */
|
|
61265
|
+
/* @__PURE__ */ jsxs185("div", { className: "min-w-0 flex-1", children: [
|
|
61266
|
+
/* @__PURE__ */ jsx307("p", { className: "text-sm font-medium text-neutral-800 dark:text-neutral-100", children: step.label }),
|
|
61267
|
+
step.meta && /* @__PURE__ */ jsx307(
|
|
60713
61268
|
"p",
|
|
60714
61269
|
{
|
|
60715
|
-
className:
|
|
61270
|
+
className: classNames117(
|
|
60716
61271
|
"mt-0.5 text-xs leading-5",
|
|
60717
61272
|
surfaces.mutedText
|
|
60718
61273
|
),
|
|
@@ -60724,166 +61279,57 @@ var WorkflowSummaryCard = ({
|
|
|
60724
61279
|
] });
|
|
60725
61280
|
var WorkflowSummaryCard_default = WorkflowSummaryCard;
|
|
60726
61281
|
|
|
60727
|
-
// src/components/WorkflowTracker/
|
|
60728
|
-
|
|
60729
|
-
|
|
60730
|
-
|
|
60731
|
-
|
|
60732
|
-
|
|
60733
|
-
|
|
60734
|
-
|
|
60735
|
-
|
|
60736
|
-
|
|
60737
|
-
|
|
60738
|
-
|
|
60739
|
-
|
|
60740
|
-
|
|
60741
|
-
|
|
60742
|
-
|
|
60743
|
-
|
|
60744
|
-
|
|
60745
|
-
|
|
60746
|
-
|
|
60747
|
-
|
|
60748
|
-
id: "business_verification",
|
|
60749
|
-
label: "Business verification",
|
|
60750
|
-
status: "done",
|
|
60751
|
-
meta: "12m \xB7 3 of 3 sub-steps"
|
|
60752
|
-
},
|
|
60753
|
-
{
|
|
60754
|
-
id: "sanctions_screening",
|
|
60755
|
-
label: "Sanctions screening",
|
|
60756
|
-
status: "done",
|
|
60757
|
-
meta: "4m"
|
|
60758
|
-
},
|
|
60759
|
-
{
|
|
60760
|
-
id: "tax_documents",
|
|
60761
|
-
label: "Tax documents",
|
|
60762
|
-
status: "skipped",
|
|
60763
|
-
badge: "Skipped",
|
|
60764
|
-
meta: "Skipped by M. Reyes \xB7 resume anytime"
|
|
60765
|
-
},
|
|
60766
|
-
{
|
|
60767
|
-
id: "insurance_certificates",
|
|
60768
|
-
label: "Insurance certificates",
|
|
60769
|
-
status: "attention",
|
|
60770
|
-
badge: "Needs attention",
|
|
60771
|
-
meta: "1h 06m \xB7 Liability certificate expired 12 Aug"
|
|
60772
|
-
},
|
|
60773
|
-
{
|
|
60774
|
-
id: "contract_drafting",
|
|
60775
|
-
label: "Contract drafting",
|
|
60776
|
-
status: "done",
|
|
60777
|
-
meta: "1h 10m"
|
|
60778
|
-
},
|
|
61282
|
+
// src/components/WorkflowTracker/WorkflowTrackerRollups.tsx
|
|
61283
|
+
import { jsx as jsx308, jsxs as jsxs186 } from "react/jsx-runtime";
|
|
61284
|
+
var WorkflowTrackerRollups = ({
|
|
61285
|
+
data = sampleWorkflow,
|
|
61286
|
+
loading = false,
|
|
61287
|
+
labels: labelOverrides,
|
|
61288
|
+
className,
|
|
61289
|
+
style,
|
|
61290
|
+
...styleProps
|
|
61291
|
+
}) => {
|
|
61292
|
+
const steps = data?.steps ?? [];
|
|
61293
|
+
const { palette, surfaces } = useWorkflowChrome(styleProps);
|
|
61294
|
+
const labels = useMemo55(() => resolveLabels(labelOverrides), [labelOverrides]);
|
|
61295
|
+
const cardProps = buildCardProps(styleProps);
|
|
61296
|
+
const attentionSteps = useMemo55(() => getAttentionSteps(steps), [steps]);
|
|
61297
|
+
const skippedSteps = useMemo55(() => getSkippedSteps(steps), [steps]);
|
|
61298
|
+
if (loading || attentionSteps.length === 0 && skippedSteps.length === 0) {
|
|
61299
|
+
return null;
|
|
61300
|
+
}
|
|
61301
|
+
return /* @__PURE__ */ jsxs186(
|
|
61302
|
+
"div",
|
|
60779
61303
|
{
|
|
60780
|
-
|
|
60781
|
-
|
|
60782
|
-
|
|
60783
|
-
|
|
60784
|
-
|
|
60785
|
-
|
|
60786
|
-
|
|
60787
|
-
|
|
60788
|
-
|
|
60789
|
-
|
|
60790
|
-
|
|
60791
|
-
|
|
60792
|
-
|
|
60793
|
-
|
|
60794
|
-
|
|
60795
|
-
|
|
60796
|
-
|
|
60797
|
-
|
|
60798
|
-
|
|
60799
|
-
|
|
60800
|
-
|
|
60801
|
-
status: "done",
|
|
60802
|
-
badge: "Accepted",
|
|
60803
|
-
duration: "8m"
|
|
60804
|
-
},
|
|
60805
|
-
{
|
|
60806
|
-
id: "soc2",
|
|
60807
|
-
label: "SOC 2 Type II evidence",
|
|
60808
|
-
status: "done",
|
|
60809
|
-
badge: "Accepted",
|
|
60810
|
-
duration: "11m"
|
|
60811
|
-
},
|
|
60812
|
-
{
|
|
60813
|
-
id: "subprocessor_list",
|
|
60814
|
-
label: "Subprocessor list",
|
|
60815
|
-
status: "running",
|
|
60816
|
-
badge: "Running",
|
|
60817
|
-
note: "Vendor uploading \u2014 2 of 3 files received"
|
|
60818
|
-
},
|
|
60819
|
-
{
|
|
60820
|
-
id: "incident_response",
|
|
60821
|
-
label: "Incident response plan",
|
|
60822
|
-
status: "skipped",
|
|
60823
|
-
badge: "Skipped",
|
|
60824
|
-
note: "Covered by master agreement \xA77"
|
|
60825
|
-
},
|
|
60826
|
-
{
|
|
60827
|
-
id: "business_continuity",
|
|
60828
|
-
label: "Business continuity plan",
|
|
60829
|
-
status: "not_started"
|
|
60830
|
-
}
|
|
61304
|
+
className: classNames118("grid grid-cols-1 gap-5 @xl:grid-cols-2", className),
|
|
61305
|
+
style,
|
|
61306
|
+
children: [
|
|
61307
|
+
attentionSteps.length > 0 && /* @__PURE__ */ jsx308(Panel_default, { ...cardProps, children: /* @__PURE__ */ jsx308(
|
|
61308
|
+
WorkflowSummaryCard_default,
|
|
61309
|
+
{
|
|
61310
|
+
title: labels.needsAttention,
|
|
61311
|
+
steps: attentionSteps,
|
|
61312
|
+
palette,
|
|
61313
|
+
surfaces
|
|
61314
|
+
}
|
|
61315
|
+
) }),
|
|
61316
|
+
skippedSteps.length > 0 && /* @__PURE__ */ jsx308(Panel_default, { ...cardProps, children: /* @__PURE__ */ jsx308(
|
|
61317
|
+
WorkflowSummaryCard_default,
|
|
61318
|
+
{
|
|
61319
|
+
title: labels.skippedSteps,
|
|
61320
|
+
steps: skippedSteps,
|
|
61321
|
+
palette,
|
|
61322
|
+
surfaces
|
|
61323
|
+
}
|
|
61324
|
+
) })
|
|
60831
61325
|
]
|
|
60832
|
-
}
|
|
60833
|
-
|
|
60834
|
-
id: "legal_review",
|
|
60835
|
-
label: "Legal review",
|
|
60836
|
-
status: "blocked",
|
|
60837
|
-
badge: "Blocked",
|
|
60838
|
-
meta: "Waiting on Legal \xB7 queued 2d"
|
|
60839
|
-
},
|
|
60840
|
-
{
|
|
60841
|
-
id: "banking_details",
|
|
60842
|
-
label: "Banking details",
|
|
60843
|
-
status: "not_started"
|
|
60844
|
-
},
|
|
60845
|
-
{
|
|
60846
|
-
id: "system_provisioning",
|
|
60847
|
-
label: "System provisioning",
|
|
60848
|
-
status: "not_started"
|
|
60849
|
-
},
|
|
60850
|
-
{ id: "go_live", label: "Go-live", status: "not_started" }
|
|
60851
|
-
]
|
|
61326
|
+
}
|
|
61327
|
+
);
|
|
60852
61328
|
};
|
|
61329
|
+
var WorkflowTrackerRollups_default = WorkflowTrackerRollups;
|
|
60853
61330
|
|
|
60854
61331
|
// src/components/WorkflowTracker/WorkflowTracker.tsx
|
|
60855
|
-
import { jsx as
|
|
60856
|
-
var DEFAULT_LABELS = {
|
|
60857
|
-
progress: "Progress",
|
|
60858
|
-
done: "done",
|
|
60859
|
-
skipped: "skipped",
|
|
60860
|
-
flagged: "flagged",
|
|
60861
|
-
remaining: "remaining",
|
|
60862
|
-
step: "Step",
|
|
60863
|
-
of: "of",
|
|
60864
|
-
elapsed: "Elapsed",
|
|
60865
|
-
owner: "Owner",
|
|
60866
|
-
started: "Started",
|
|
60867
|
-
sla: "SLA",
|
|
60868
|
-
subSteps: "Sub-steps",
|
|
60869
|
-
accepted: "accepted",
|
|
60870
|
-
open: "open",
|
|
60871
|
-
needsAttention: "Needs attention",
|
|
60872
|
-
skippedSteps: "Skipped steps",
|
|
60873
|
-
live: "LIVE \xB7 read-only view",
|
|
60874
|
-
empty: "No steps yet",
|
|
60875
|
-
emptySubtitle: "Steps appear here as soon as the workflow starts.",
|
|
60876
|
-
noActiveStep: "No step selected",
|
|
60877
|
-
statuses: {
|
|
60878
|
-
done: "Done",
|
|
60879
|
-
in_progress: "In progress",
|
|
60880
|
-
running: "Running",
|
|
60881
|
-
skipped: "Skipped",
|
|
60882
|
-
blocked: "Blocked",
|
|
60883
|
-
attention: "Attention",
|
|
60884
|
-
not_started: "Not started"
|
|
60885
|
-
}
|
|
60886
|
-
};
|
|
61332
|
+
import { jsx as jsx309, jsxs as jsxs187 } from "react/jsx-runtime";
|
|
60887
61333
|
var WorkflowTracker = ({
|
|
60888
61334
|
data = sampleWorkflow,
|
|
60889
61335
|
accentColor = "blue",
|
|
@@ -60902,6 +61348,8 @@ var WorkflowTracker = ({
|
|
|
60902
61348
|
maxWidth = 1180,
|
|
60903
61349
|
railWidth = 360,
|
|
60904
61350
|
stickyRail = false,
|
|
61351
|
+
fillHeight = false,
|
|
61352
|
+
fillHeightOffset = 0,
|
|
60905
61353
|
loading = false,
|
|
60906
61354
|
loadingRows = 6,
|
|
60907
61355
|
emptyState,
|
|
@@ -60910,81 +61358,54 @@ var WorkflowTracker = ({
|
|
|
60910
61358
|
labels: labelOverrides,
|
|
60911
61359
|
onStepSelect,
|
|
60912
61360
|
onSubStepSelect,
|
|
61361
|
+
onStepAction,
|
|
60913
61362
|
className,
|
|
60914
61363
|
style,
|
|
60915
61364
|
...rest
|
|
60916
61365
|
}) => {
|
|
60917
|
-
const
|
|
60918
|
-
|
|
60919
|
-
|
|
60920
|
-
|
|
60921
|
-
|
|
60922
|
-
);
|
|
60923
|
-
const palette = useMemo51(
|
|
60924
|
-
() => ({
|
|
60925
|
-
accent: accentColor,
|
|
60926
|
-
attention: attentionColor,
|
|
60927
|
-
blocked: blockedColor,
|
|
60928
|
-
muted: mutedColor,
|
|
60929
|
-
translucent
|
|
60930
|
-
}),
|
|
60931
|
-
[accentColor, attentionColor, blockedColor, mutedColor, translucent]
|
|
60932
|
-
);
|
|
60933
|
-
const labels = useMemo51(
|
|
60934
|
-
() => ({
|
|
60935
|
-
...DEFAULT_LABELS,
|
|
60936
|
-
...labelOverrides,
|
|
60937
|
-
statuses: {
|
|
60938
|
-
...DEFAULT_LABELS.statuses,
|
|
60939
|
-
...labelOverrides?.statuses
|
|
60940
|
-
}
|
|
60941
|
-
}),
|
|
60942
|
-
[labelOverrides]
|
|
60943
|
-
);
|
|
60944
|
-
const progress = useMemo51(() => computeProgress(steps), [steps]);
|
|
60945
|
-
const tallies = useMemo51(() => computeTallies(steps), [steps]);
|
|
60946
|
-
const active = useMemo51(
|
|
60947
|
-
() => resolveActiveStep(steps, data?.activeStepId),
|
|
60948
|
-
[steps, data?.activeStepId]
|
|
60949
|
-
);
|
|
60950
|
-
const attentionSteps = useMemo51(() => getAttentionSteps(steps), [steps]);
|
|
60951
|
-
const skippedSteps = useMemo51(() => getSkippedSteps(steps), [steps]);
|
|
60952
|
-
const cardProps = {
|
|
61366
|
+
const styleProps = {
|
|
61367
|
+
accentColor,
|
|
61368
|
+
attentionColor,
|
|
61369
|
+
blockedColor,
|
|
61370
|
+
mutedColor,
|
|
60953
61371
|
variant,
|
|
60954
|
-
|
|
61372
|
+
cardTone,
|
|
60955
61373
|
corner,
|
|
60956
61374
|
glassOpacity,
|
|
60957
61375
|
vibrancy,
|
|
60958
61376
|
specularMode,
|
|
60959
61377
|
padding,
|
|
60960
|
-
|
|
61378
|
+
translucentSurfaces
|
|
60961
61379
|
};
|
|
61380
|
+
const { surfaces } = useWorkflowChrome(styleProps);
|
|
61381
|
+
const labels = useMemo56(() => resolveLabels(labelOverrides), [labelOverrides]);
|
|
60962
61382
|
const railStyle = {
|
|
60963
|
-
"--wt-rail-width": typeof railWidth === "number" ? `${railWidth}px` : railWidth
|
|
61383
|
+
"--wt-rail-width": typeof railWidth === "number" ? `${railWidth}px` : railWidth,
|
|
61384
|
+
"--wt-fill-offset": typeof fillHeightOffset === "number" ? `${fillHeightOffset}px` : fillHeightOffset
|
|
60964
61385
|
};
|
|
60965
|
-
return /* @__PURE__ */
|
|
61386
|
+
return /* @__PURE__ */ jsxs187(
|
|
60966
61387
|
"div",
|
|
60967
61388
|
{
|
|
60968
|
-
className:
|
|
61389
|
+
className: classNames119("@container w-full", className),
|
|
60969
61390
|
style: { maxWidth, ...railStyle, ...style },
|
|
60970
61391
|
"aria-busy": loading || void 0,
|
|
60971
61392
|
...rest,
|
|
60972
61393
|
children: [
|
|
60973
|
-
showHeader && loading && /* @__PURE__ */
|
|
61394
|
+
showHeader && loading && /* @__PURE__ */ jsx309(
|
|
60974
61395
|
WorkflowHeaderSkeleton,
|
|
60975
61396
|
{
|
|
60976
61397
|
hasIcon: Boolean(data?.icon),
|
|
60977
61398
|
iconCorner
|
|
60978
61399
|
}
|
|
60979
61400
|
),
|
|
60980
|
-
showHeader && !loading && /* @__PURE__ */
|
|
60981
|
-
/* @__PURE__ */
|
|
61401
|
+
showHeader && !loading && /* @__PURE__ */ jsxs187("header", { className: "mb-5 flex flex-wrap items-start justify-between gap-3", children: [
|
|
61402
|
+
/* @__PURE__ */ jsxs187("div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
60982
61403
|
data?.icon && // `overflow-hidden` plus the shared corner class clips whatever
|
|
60983
61404
|
// the caller passes, so an <img> needs no rounding of its own.
|
|
60984
|
-
/* @__PURE__ */
|
|
61405
|
+
/* @__PURE__ */ jsx309(
|
|
60985
61406
|
"span",
|
|
60986
61407
|
{
|
|
60987
|
-
className:
|
|
61408
|
+
className: classNames119(
|
|
60988
61409
|
"flex h-12 w-12 shrink-0 items-center justify-center overflow-hidden [&>img]:h-full [&>img]:w-full [&>img]:object-cover",
|
|
60989
61410
|
getSurfaceCornerClass(iconCorner),
|
|
60990
61411
|
surfaces.chip
|
|
@@ -60992,33 +61413,33 @@ var WorkflowTracker = ({
|
|
|
60992
61413
|
children: data.icon
|
|
60993
61414
|
}
|
|
60994
61415
|
),
|
|
60995
|
-
/* @__PURE__ */
|
|
60996
|
-
data?.eyebrow && /* @__PURE__ */
|
|
61416
|
+
/* @__PURE__ */ jsxs187("div", { className: "min-w-0", children: [
|
|
61417
|
+
data?.eyebrow && /* @__PURE__ */ jsx309(
|
|
60997
61418
|
"p",
|
|
60998
61419
|
{
|
|
60999
|
-
className:
|
|
61420
|
+
className: classNames119(
|
|
61000
61421
|
"text-[11px] font-semibold uppercase tracking-widest",
|
|
61001
61422
|
surfaces.faintText
|
|
61002
61423
|
),
|
|
61003
61424
|
children: data.eyebrow
|
|
61004
61425
|
}
|
|
61005
61426
|
),
|
|
61006
|
-
/* @__PURE__ */
|
|
61427
|
+
/* @__PURE__ */ jsx309("h2", { className: "mt-1 text-2xl font-semibold tracking-tight text-neutral-900 dark:text-white sm:text-3xl", children: data?.title })
|
|
61007
61428
|
] })
|
|
61008
61429
|
] }),
|
|
61009
|
-
data?.live && /* @__PURE__ */
|
|
61430
|
+
data?.live && /* @__PURE__ */ jsxs187(
|
|
61010
61431
|
Pill_default,
|
|
61011
61432
|
{
|
|
61012
61433
|
size: "md",
|
|
61013
61434
|
tone: mutedColor,
|
|
61014
61435
|
variant: "outline",
|
|
61015
|
-
className:
|
|
61436
|
+
className: classNames119("tracking-wide", surfaces.chip),
|
|
61016
61437
|
children: [
|
|
61017
|
-
/* @__PURE__ */
|
|
61438
|
+
/* @__PURE__ */ jsx309(
|
|
61018
61439
|
"span",
|
|
61019
61440
|
{
|
|
61020
61441
|
"aria-hidden": "true",
|
|
61021
|
-
className:
|
|
61442
|
+
className: classNames119(
|
|
61022
61443
|
"mr-2 inline-block h-1.5 w-1.5 rounded-full",
|
|
61023
61444
|
`bg-${accentColor}-500 dark:bg-${accentColor}-400`
|
|
61024
61445
|
)
|
|
@@ -61029,67 +61450,77 @@ var WorkflowTracker = ({
|
|
|
61029
61450
|
}
|
|
61030
61451
|
)
|
|
61031
61452
|
] }),
|
|
61032
|
-
/* @__PURE__ */
|
|
61033
|
-
|
|
61034
|
-
|
|
61035
|
-
|
|
61036
|
-
|
|
61037
|
-
|
|
61038
|
-
|
|
61039
|
-
|
|
61453
|
+
/* @__PURE__ */ jsxs187(
|
|
61454
|
+
"div",
|
|
61455
|
+
{
|
|
61456
|
+
className: classNames119(
|
|
61457
|
+
"grid grid-cols-1 items-start gap-5 @4xl:grid-cols-[var(--wt-rail-width)_minmax(0,1fr)]",
|
|
61458
|
+
fillHeight && "@4xl:h-[calc(100dvh-var(--wt-fill-offset))]"
|
|
61459
|
+
),
|
|
61460
|
+
children: [
|
|
61461
|
+
/* @__PURE__ */ jsx309(
|
|
61462
|
+
WorkflowTrackerRail_default,
|
|
61040
61463
|
{
|
|
61041
|
-
|
|
61042
|
-
|
|
61043
|
-
palette,
|
|
61044
|
-
surfaces,
|
|
61045
|
-
labels,
|
|
61046
|
-
progress,
|
|
61047
|
-
tallies,
|
|
61048
|
-
showLegend: showLegend && !loading,
|
|
61464
|
+
...styleProps,
|
|
61465
|
+
data,
|
|
61049
61466
|
loading,
|
|
61050
61467
|
loadingRows,
|
|
61468
|
+
showLegend,
|
|
61051
61469
|
emptyState,
|
|
61470
|
+
labels: labelOverrides,
|
|
61471
|
+
cardScrollable: fillHeight,
|
|
61472
|
+
cardClassName: classNames119(
|
|
61473
|
+
stickyRail && !fillHeight && "@4xl:sticky @4xl:top-6",
|
|
61474
|
+
fillHeight && "@4xl:min-h-0 @4xl:self-stretch"
|
|
61475
|
+
),
|
|
61052
61476
|
onStepSelect,
|
|
61053
|
-
onSubStepSelect
|
|
61477
|
+
onSubStepSelect,
|
|
61478
|
+
onStepAction
|
|
61054
61479
|
}
|
|
61055
|
-
)
|
|
61056
|
-
|
|
61057
|
-
|
|
61058
|
-
/* @__PURE__ */ jsxs185("div", { className: "@container flex min-w-0 flex-col gap-5", children: [
|
|
61059
|
-
/* @__PURE__ */ jsx302(Panel_default, { ...cardProps, children: /* @__PURE__ */ jsx302(
|
|
61060
|
-
WorkflowDetailPanel_default,
|
|
61061
|
-
{
|
|
61062
|
-
active,
|
|
61063
|
-
totalSteps: steps.length,
|
|
61064
|
-
palette,
|
|
61065
|
-
surfaces,
|
|
61066
|
-
labels,
|
|
61067
|
-
loading,
|
|
61068
|
-
onSubStepSelect
|
|
61069
|
-
}
|
|
61070
|
-
) }),
|
|
61071
|
-
!loading && (attentionSteps.length > 0 || skippedSteps.length > 0) && /* @__PURE__ */ jsxs185("div", { className: "grid grid-cols-1 gap-5 @xl:grid-cols-2", children: [
|
|
61072
|
-
attentionSteps.length > 0 && /* @__PURE__ */ jsx302(Panel_default, { ...cardProps, children: /* @__PURE__ */ jsx302(
|
|
61073
|
-
WorkflowSummaryCard_default,
|
|
61074
|
-
{
|
|
61075
|
-
title: labels.needsAttention,
|
|
61076
|
-
steps: attentionSteps,
|
|
61077
|
-
palette,
|
|
61078
|
-
surfaces
|
|
61079
|
-
}
|
|
61080
|
-
) }),
|
|
61081
|
-
skippedSteps.length > 0 && /* @__PURE__ */ jsx302(Panel_default, { ...cardProps, children: /* @__PURE__ */ jsx302(
|
|
61082
|
-
WorkflowSummaryCard_default,
|
|
61480
|
+
),
|
|
61481
|
+
/* @__PURE__ */ jsxs187(
|
|
61482
|
+
"div",
|
|
61083
61483
|
{
|
|
61084
|
-
|
|
61085
|
-
|
|
61086
|
-
|
|
61087
|
-
|
|
61484
|
+
className: classNames119(
|
|
61485
|
+
"@container flex min-w-0 flex-col gap-5",
|
|
61486
|
+
fillHeight && "@4xl:min-h-0 @4xl:self-stretch"
|
|
61487
|
+
),
|
|
61488
|
+
children: [
|
|
61489
|
+
/* @__PURE__ */ jsx309(
|
|
61490
|
+
WorkflowTrackerStepDetails_default,
|
|
61491
|
+
{
|
|
61492
|
+
...styleProps,
|
|
61493
|
+
data,
|
|
61494
|
+
loading,
|
|
61495
|
+
labels: labelOverrides,
|
|
61496
|
+
onSubStepSelect,
|
|
61497
|
+
onStepAction
|
|
61498
|
+
}
|
|
61499
|
+
),
|
|
61500
|
+
/* @__PURE__ */ jsx309(
|
|
61501
|
+
WorkflowTrackerDetails_default,
|
|
61502
|
+
{
|
|
61503
|
+
...styleProps,
|
|
61504
|
+
data,
|
|
61505
|
+
loading,
|
|
61506
|
+
labels: labelOverrides
|
|
61507
|
+
}
|
|
61508
|
+
),
|
|
61509
|
+
/* @__PURE__ */ jsx309(
|
|
61510
|
+
WorkflowTrackerRollups_default,
|
|
61511
|
+
{
|
|
61512
|
+
...styleProps,
|
|
61513
|
+
data,
|
|
61514
|
+
loading,
|
|
61515
|
+
labels: labelOverrides
|
|
61516
|
+
}
|
|
61517
|
+
)
|
|
61518
|
+
]
|
|
61088
61519
|
}
|
|
61089
|
-
)
|
|
61090
|
-
]
|
|
61091
|
-
|
|
61092
|
-
|
|
61520
|
+
)
|
|
61521
|
+
]
|
|
61522
|
+
}
|
|
61523
|
+
)
|
|
61093
61524
|
]
|
|
61094
61525
|
}
|
|
61095
61526
|
);
|
|
@@ -61097,9 +61528,9 @@ var WorkflowTracker = ({
|
|
|
61097
61528
|
var WorkflowTracker_default = WorkflowTracker;
|
|
61098
61529
|
|
|
61099
61530
|
// src/components/Gantt/Gantt.tsx
|
|
61100
|
-
import { useCallback as useCallback42, useEffect as useEffect71, useMemo as
|
|
61531
|
+
import { useCallback as useCallback42, useEffect as useEffect71, useMemo as useMemo60, useRef as useRef68, useState as useState79 } from "react";
|
|
61101
61532
|
import { createPortal as createPortal15 } from "react-dom";
|
|
61102
|
-
import
|
|
61533
|
+
import classNames123 from "classnames";
|
|
61103
61534
|
|
|
61104
61535
|
// ../common/gantt/types.ts
|
|
61105
61536
|
var GANTT_ZOOM_PRESETS = [
|
|
@@ -62445,38 +62876,38 @@ var sampleGantt = {
|
|
|
62445
62876
|
};
|
|
62446
62877
|
|
|
62447
62878
|
// src/components/Gantt/GanttScale.tsx
|
|
62448
|
-
import
|
|
62449
|
-
import { jsx as
|
|
62879
|
+
import classNames120 from "classnames";
|
|
62880
|
+
import { jsx as jsx310, jsxs as jsxs188 } from "react/jsx-runtime";
|
|
62450
62881
|
var GanttScale = ({ levels, height }) => {
|
|
62451
62882
|
if (levels.length === 0) {
|
|
62452
|
-
return /* @__PURE__ */
|
|
62883
|
+
return /* @__PURE__ */ jsx310("div", { style: { height } });
|
|
62453
62884
|
}
|
|
62454
62885
|
const coarseHeight = levels.length > 1 ? 24 : height;
|
|
62455
|
-
return /* @__PURE__ */
|
|
62886
|
+
return /* @__PURE__ */ jsx310("div", { className: "flex h-full w-full flex-col", children: levels.map((level, li) => /* @__PURE__ */ jsx310(
|
|
62456
62887
|
"div",
|
|
62457
62888
|
{
|
|
62458
|
-
className:
|
|
62889
|
+
className: classNames120("flex w-full", li === 0 ? "shrink-0" : "min-h-0 flex-1"),
|
|
62459
62890
|
style: li === 0 ? { height: coarseHeight } : void 0,
|
|
62460
|
-
children: level.columns.map((col) => /* @__PURE__ */
|
|
62891
|
+
children: level.columns.map((col) => /* @__PURE__ */ jsxs188(
|
|
62461
62892
|
"div",
|
|
62462
62893
|
{
|
|
62463
|
-
className:
|
|
62894
|
+
className: classNames120(
|
|
62464
62895
|
"flex shrink-0 flex-col items-center justify-center overflow-hidden border-r border-neutral-200/70 dark:border-neutral-800/70",
|
|
62465
62896
|
li === 0 ? "bg-neutral-50/60 dark:bg-neutral-800/40" : "bg-white dark:bg-neutral-900"
|
|
62466
62897
|
),
|
|
62467
62898
|
style: { width: col.width },
|
|
62468
62899
|
children: [
|
|
62469
|
-
/* @__PURE__ */
|
|
62900
|
+
/* @__PURE__ */ jsx310(
|
|
62470
62901
|
"span",
|
|
62471
62902
|
{
|
|
62472
|
-
className:
|
|
62903
|
+
className: classNames120(
|
|
62473
62904
|
"max-w-full truncate px-1 text-[10px] font-semibold uppercase leading-none tracking-wide",
|
|
62474
62905
|
li === 0 ? "text-neutral-700 dark:text-neutral-200" : "text-neutral-500 dark:text-neutral-400"
|
|
62475
62906
|
),
|
|
62476
62907
|
children: col.label
|
|
62477
62908
|
}
|
|
62478
62909
|
),
|
|
62479
|
-
col.subLabel != null && /* @__PURE__ */
|
|
62910
|
+
col.subLabel != null && /* @__PURE__ */ jsx310("span", { className: "max-w-full truncate px-1 text-[9px] font-medium leading-none text-neutral-400 dark:text-neutral-500", children: col.subLabel })
|
|
62480
62911
|
]
|
|
62481
62912
|
},
|
|
62482
62913
|
col.id
|
|
@@ -62489,7 +62920,7 @@ GanttScale.displayName = "GanttScale";
|
|
|
62489
62920
|
|
|
62490
62921
|
// src/components/Gantt/GanttLinkLayer.tsx
|
|
62491
62922
|
import { forwardRef as forwardRef160, useRef as useRef66 } from "react";
|
|
62492
|
-
import { jsx as
|
|
62923
|
+
import { jsx as jsx311, jsxs as jsxs189 } from "react/jsx-runtime";
|
|
62493
62924
|
var GanttLinkLayer = forwardRef160(
|
|
62494
62925
|
function GanttLinkLayer2({
|
|
62495
62926
|
width,
|
|
@@ -62525,24 +62956,24 @@ var GanttLinkLayer = forwardRef160(
|
|
|
62525
62956
|
const pick = pickFromEvent(e) ?? clicked;
|
|
62526
62957
|
if (interactive && onDeleteLink) onDeleteLink(pick.link);
|
|
62527
62958
|
};
|
|
62528
|
-
return /* @__PURE__ */
|
|
62959
|
+
return /* @__PURE__ */ jsxs189(
|
|
62529
62960
|
"div",
|
|
62530
62961
|
{
|
|
62531
62962
|
ref,
|
|
62532
62963
|
className: "pointer-events-none absolute top-0 z-10",
|
|
62533
62964
|
style: { left: offsetLeft, width, height },
|
|
62534
62965
|
children: [
|
|
62535
|
-
/* @__PURE__ */
|
|
62966
|
+
/* @__PURE__ */ jsxs189("svg", { ref: svgRef, width, height, className: "block overflow-visible", children: [
|
|
62536
62967
|
paths.map((p, i) => {
|
|
62537
62968
|
const tokens = getGanttLinkTokens(p.color ?? color);
|
|
62538
62969
|
const sel = selected != null && p.link === selected;
|
|
62539
62970
|
const nodeR = sel ? 4.5 : 3.5;
|
|
62540
|
-
return /* @__PURE__ */
|
|
62971
|
+
return /* @__PURE__ */ jsxs189(
|
|
62541
62972
|
"g",
|
|
62542
62973
|
{
|
|
62543
62974
|
style: sel ? { filter: `drop-shadow(0 0 3px var(--color-${p.color ?? color}-500))` } : void 0,
|
|
62544
62975
|
children: [
|
|
62545
|
-
/* @__PURE__ */
|
|
62976
|
+
/* @__PURE__ */ jsx311(
|
|
62546
62977
|
"path",
|
|
62547
62978
|
{
|
|
62548
62979
|
d: p.d,
|
|
@@ -62558,10 +62989,10 @@ var GanttLinkLayer = forwardRef160(
|
|
|
62558
62989
|
},
|
|
62559
62990
|
onClick: (e) => handlePick(e, p),
|
|
62560
62991
|
onDoubleClick: (e) => handleDelete(e, p),
|
|
62561
|
-
children: /* @__PURE__ */
|
|
62992
|
+
children: /* @__PURE__ */ jsx311("title", { children: `${p.link.source} \u2192 ${p.link.target} (${p.type.toUpperCase()})` })
|
|
62562
62993
|
}
|
|
62563
62994
|
),
|
|
62564
|
-
/* @__PURE__ */
|
|
62995
|
+
/* @__PURE__ */ jsx311(
|
|
62565
62996
|
"path",
|
|
62566
62997
|
{
|
|
62567
62998
|
d: p.d,
|
|
@@ -62577,14 +63008,14 @@ var GanttLinkLayer = forwardRef160(
|
|
|
62577
63008
|
},
|
|
62578
63009
|
onClick: (e) => handlePick(e, p),
|
|
62579
63010
|
onDoubleClick: (e) => handleDelete(e, p),
|
|
62580
|
-
children: /* @__PURE__ */
|
|
63011
|
+
children: /* @__PURE__ */ jsx311("title", { children: `${p.link.source} \u2192 ${p.link.target} (${p.type.toUpperCase()})` })
|
|
62581
63012
|
}
|
|
62582
63013
|
),
|
|
62583
|
-
p.arrow && /* @__PURE__ */
|
|
62584
|
-
/* @__PURE__ */
|
|
62585
|
-
/* @__PURE__ */
|
|
62586
|
-
/* @__PURE__ */
|
|
62587
|
-
/* @__PURE__ */
|
|
63014
|
+
p.arrow && /* @__PURE__ */ jsx311("polygon", { points: p.arrow, className: tokens.fill }),
|
|
63015
|
+
/* @__PURE__ */ jsx311("circle", { cx: p.from.x, cy: p.from.y, r: nodeR + 2.5, className: tokens.halo }),
|
|
63016
|
+
/* @__PURE__ */ jsx311("circle", { cx: p.from.x, cy: p.from.y, r: nodeR, className: tokens.fill }),
|
|
63017
|
+
/* @__PURE__ */ jsx311("circle", { cx: p.to.x, cy: p.to.y, r: nodeR + 2.5, className: tokens.halo }),
|
|
63018
|
+
/* @__PURE__ */ jsx311("circle", { cx: p.to.x, cy: p.to.y, r: nodeR, className: tokens.fill })
|
|
62588
63019
|
]
|
|
62589
63020
|
},
|
|
62590
63021
|
`${p.link.source}->${p.link.target}-${p.type}-${i}`
|
|
@@ -62592,8 +63023,8 @@ var GanttLinkLayer = forwardRef160(
|
|
|
62592
63023
|
}),
|
|
62593
63024
|
rubber && (() => {
|
|
62594
63025
|
const tokens = getGanttLinkTokens(rubber.color);
|
|
62595
|
-
return /* @__PURE__ */
|
|
62596
|
-
/* @__PURE__ */
|
|
63026
|
+
return /* @__PURE__ */ jsxs189("g", { children: [
|
|
63027
|
+
/* @__PURE__ */ jsx311(
|
|
62597
63028
|
"path",
|
|
62598
63029
|
{
|
|
62599
63030
|
d: rubber.d,
|
|
@@ -62604,15 +63035,15 @@ var GanttLinkLayer = forwardRef160(
|
|
|
62604
63035
|
strokeDasharray: "5 3"
|
|
62605
63036
|
}
|
|
62606
63037
|
),
|
|
62607
|
-
rubber.arrow && /* @__PURE__ */
|
|
62608
|
-
/* @__PURE__ */
|
|
62609
|
-
/* @__PURE__ */
|
|
62610
|
-
/* @__PURE__ */
|
|
62611
|
-
/* @__PURE__ */
|
|
63038
|
+
rubber.arrow && /* @__PURE__ */ jsx311("polygon", { points: rubber.arrow, className: tokens.fill }),
|
|
63039
|
+
/* @__PURE__ */ jsx311("circle", { cx: rubber.from.x, cy: rubber.from.y, r: 6, className: tokens.halo }),
|
|
63040
|
+
/* @__PURE__ */ jsx311("circle", { cx: rubber.from.x, cy: rubber.from.y, r: 3.5, className: tokens.fill }),
|
|
63041
|
+
/* @__PURE__ */ jsx311("circle", { cx: rubber.to.x, cy: rubber.to.y, r: 6, className: tokens.halo }),
|
|
63042
|
+
/* @__PURE__ */ jsx311("circle", { cx: rubber.to.x, cy: rubber.to.y, r: 3.5, className: tokens.fill })
|
|
62612
63043
|
] });
|
|
62613
63044
|
})()
|
|
62614
63045
|
] }),
|
|
62615
|
-
canDelete && selMid && /* @__PURE__ */
|
|
63046
|
+
canDelete && selMid && /* @__PURE__ */ jsxs189(
|
|
62616
63047
|
"button",
|
|
62617
63048
|
{
|
|
62618
63049
|
type: "button",
|
|
@@ -62630,7 +63061,7 @@ var GanttLinkLayer = forwardRef160(
|
|
|
62630
63061
|
onClick: () => onDeleteLink(selected),
|
|
62631
63062
|
title: t("kit.gantt.removeDependency"),
|
|
62632
63063
|
children: [
|
|
62633
|
-
/* @__PURE__ */
|
|
63064
|
+
/* @__PURE__ */ jsx311("span", { "aria-hidden": true, children: "\u2715" }),
|
|
62634
63065
|
" ",
|
|
62635
63066
|
t("kit.gantt.delete")
|
|
62636
63067
|
]
|
|
@@ -62644,9 +63075,9 @@ var GanttLinkLayer = forwardRef160(
|
|
|
62644
63075
|
GanttLinkLayer.displayName = "GanttLinkLayer";
|
|
62645
63076
|
|
|
62646
63077
|
// src/components/Gantt/GanttBodyRow.tsx
|
|
62647
|
-
import { useMemo as
|
|
62648
|
-
import
|
|
62649
|
-
import { Fragment as Fragment48, jsx as
|
|
63078
|
+
import { useMemo as useMemo57 } from "react";
|
|
63079
|
+
import classNames121 from "classnames";
|
|
63080
|
+
import { Fragment as Fragment48, jsx as jsx312, jsxs as jsxs190 } from "react/jsx-runtime";
|
|
62650
63081
|
var BAR_HEIGHT = 24;
|
|
62651
63082
|
var MILESTONE_SIZE = 14;
|
|
62652
63083
|
var GanttBodyRow = ({
|
|
@@ -62685,11 +63116,11 @@ var GanttBodyRow = ({
|
|
|
62685
63116
|
const t = useKitT();
|
|
62686
63117
|
const isDraggingThis = row.task != null && drag?.taskId === row.task.id;
|
|
62687
63118
|
const reorderDragging = isDraggingThis && drag?.kind === "reorder";
|
|
62688
|
-
return /* @__PURE__ */
|
|
63119
|
+
return /* @__PURE__ */ jsx312(
|
|
62689
63120
|
"div",
|
|
62690
63121
|
{
|
|
62691
63122
|
"data-row-key": row.key,
|
|
62692
|
-
className:
|
|
63123
|
+
className: classNames121(
|
|
62693
63124
|
// No overflow here: an overflow-hidden row root would become the
|
|
62694
63125
|
// sticky halves' (non-scrolling) scrollport and stop them pinning to
|
|
62695
63126
|
// the left edge while the timeline scrolls. The halves pin the
|
|
@@ -62706,7 +63137,7 @@ var GanttBodyRow = ({
|
|
|
62706
63137
|
boxShadow: `inset 2px 0 0 var(--color-${color}-500)`
|
|
62707
63138
|
} : {}
|
|
62708
63139
|
},
|
|
62709
|
-
children: row.task == null ? /* @__PURE__ */
|
|
63140
|
+
children: row.task == null ? /* @__PURE__ */ jsx312(
|
|
62710
63141
|
LaneHeader,
|
|
62711
63142
|
{
|
|
62712
63143
|
row,
|
|
@@ -62717,20 +63148,20 @@ var GanttBodyRow = ({
|
|
|
62717
63148
|
dividerClass,
|
|
62718
63149
|
liveProgress: liveLane
|
|
62719
63150
|
}
|
|
62720
|
-
) : /* @__PURE__ */
|
|
62721
|
-
/* @__PURE__ */
|
|
63151
|
+
) : /* @__PURE__ */ jsxs190(Fragment48, { children: [
|
|
63152
|
+
/* @__PURE__ */ jsxs190(
|
|
62722
63153
|
"div",
|
|
62723
63154
|
{
|
|
62724
|
-
className:
|
|
63155
|
+
className: classNames121(
|
|
62725
63156
|
"sticky left-0 z-20 flex items-stretch overflow-hidden border-r border-b bg-white dark:bg-neutral-900",
|
|
62726
63157
|
dividerClass
|
|
62727
63158
|
),
|
|
62728
63159
|
style: { width: leftWidth },
|
|
62729
63160
|
children: [
|
|
62730
|
-
/* @__PURE__ */
|
|
63161
|
+
/* @__PURE__ */ jsx312("div", { className: "flex w-9 shrink-0 items-center justify-center", children: interactive && !row.task.locked && /* @__PURE__ */ jsx312(
|
|
62731
63162
|
"span",
|
|
62732
63163
|
{
|
|
62733
|
-
className:
|
|
63164
|
+
className: classNames121(
|
|
62734
63165
|
"flex cursor-grab touch-none items-center text-neutral-300 transition-opacity active:cursor-grabbing dark:text-neutral-600",
|
|
62735
63166
|
reorderDragging ? "opacity-100" : "opacity-0 group-hover/row:opacity-100"
|
|
62736
63167
|
),
|
|
@@ -62738,10 +63169,10 @@ var GanttBodyRow = ({
|
|
|
62738
63169
|
onPointerDown: (e) => onGripPointerDown(row.key, row.task, e),
|
|
62739
63170
|
title: t("kit.gantt.dragReorder"),
|
|
62740
63171
|
"aria-hidden": "true",
|
|
62741
|
-
children: /* @__PURE__ */
|
|
63172
|
+
children: /* @__PURE__ */ jsx312(Drag, { className: "h-3.5 w-3.5" })
|
|
62742
63173
|
}
|
|
62743
63174
|
) }),
|
|
62744
|
-
columns.map((col, i) => /* @__PURE__ */
|
|
63175
|
+
columns.map((col, i) => /* @__PURE__ */ jsx312(
|
|
62745
63176
|
Cell,
|
|
62746
63177
|
{
|
|
62747
63178
|
col,
|
|
@@ -62762,12 +63193,12 @@ var GanttBodyRow = ({
|
|
|
62762
63193
|
]
|
|
62763
63194
|
}
|
|
62764
63195
|
),
|
|
62765
|
-
/* @__PURE__ */
|
|
63196
|
+
/* @__PURE__ */ jsx312(
|
|
62766
63197
|
"div",
|
|
62767
63198
|
{
|
|
62768
|
-
className:
|
|
63199
|
+
className: classNames121("relative shrink-0 border-b", dividerClass),
|
|
62769
63200
|
style: { width: timelineWidth },
|
|
62770
|
-
children: /* @__PURE__ */
|
|
63201
|
+
children: /* @__PURE__ */ jsx312(
|
|
62771
63202
|
TaskBar,
|
|
62772
63203
|
{
|
|
62773
63204
|
task: row.task,
|
|
@@ -62808,57 +63239,57 @@ var LaneHeader = ({ row, columns, leftWidth, color, onCaretClick, dividerClass =
|
|
|
62808
63239
|
const laneColor = lane.color ?? color;
|
|
62809
63240
|
const tokens = getGanttLaneTokens(laneColor);
|
|
62810
63241
|
const isOpen = lane.open !== false;
|
|
62811
|
-
return /* @__PURE__ */
|
|
62812
|
-
/* @__PURE__ */
|
|
63242
|
+
return /* @__PURE__ */ jsxs190(Fragment48, { children: [
|
|
63243
|
+
/* @__PURE__ */ jsxs190(
|
|
62813
63244
|
"div",
|
|
62814
63245
|
{
|
|
62815
|
-
className:
|
|
63246
|
+
className: classNames121(
|
|
62816
63247
|
"sticky left-0 z-20 flex items-stretch overflow-hidden border-r border-b bg-white dark:bg-neutral-900",
|
|
62817
63248
|
dividerClass
|
|
62818
63249
|
),
|
|
62819
63250
|
style: { width: leftWidth },
|
|
62820
63251
|
children: [
|
|
62821
|
-
/* @__PURE__ */
|
|
62822
|
-
/* @__PURE__ */
|
|
63252
|
+
/* @__PURE__ */ jsx312("div", { className: classNames121("pointer-events-none absolute inset-0", tokens.band) }),
|
|
63253
|
+
/* @__PURE__ */ jsx312("div", { className: "relative flex w-9 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsx312(
|
|
62823
63254
|
"button",
|
|
62824
63255
|
{
|
|
62825
63256
|
type: "button",
|
|
62826
63257
|
className: "flex h-5 w-5 shrink-0 items-center justify-center rounded text-neutral-500 hover:bg-white/60 focus-visible:ring-2 focus-visible:ring-neutral-400 dark:text-neutral-400 dark:hover:bg-white/10",
|
|
62827
63258
|
onClick: () => onCaretClick(lane.id, isOpen),
|
|
62828
63259
|
"aria-label": t(isOpen ? "kit.gantt.collapse" : "kit.gantt.expand", { name: lane.label }),
|
|
62829
|
-
children: /* @__PURE__ */
|
|
63260
|
+
children: /* @__PURE__ */ jsx312(ChevronRight, { className: classNames121("h-3 w-3 transition-transform", isOpen && "rotate-90") })
|
|
62830
63261
|
}
|
|
62831
63262
|
) }),
|
|
62832
|
-
columns.map((col, i) => /* @__PURE__ */
|
|
63263
|
+
columns.map((col, i) => /* @__PURE__ */ jsx312(
|
|
62833
63264
|
"div",
|
|
62834
63265
|
{
|
|
62835
|
-
className:
|
|
63266
|
+
className: classNames121(
|
|
62836
63267
|
"relative flex shrink-0 items-center gap-2 overflow-hidden border-r px-2 last:border-r-0",
|
|
62837
63268
|
dividerClass
|
|
62838
63269
|
),
|
|
62839
63270
|
style: { width: col.width ?? "160px" },
|
|
62840
|
-
children: i === 0 ? /* @__PURE__ */
|
|
62841
|
-
/* @__PURE__ */
|
|
62842
|
-
lane.description && /* @__PURE__ */
|
|
62843
|
-
row.childCount > 0 && /* @__PURE__ */
|
|
62844
|
-
] }) : col.key === "progress" ? /* @__PURE__ */
|
|
63271
|
+
children: i === 0 ? /* @__PURE__ */ jsxs190(Fragment48, { children: [
|
|
63272
|
+
/* @__PURE__ */ jsx312("span", { className: classNames121("truncate text-[13px] font-semibold", tokens.label), children: lane.label }),
|
|
63273
|
+
lane.description && /* @__PURE__ */ jsx312("span", { className: "hidden truncate text-[11px] text-neutral-500 dark:text-neutral-400 lg:inline", children: lane.description }),
|
|
63274
|
+
row.childCount > 0 && /* @__PURE__ */ jsx312("span", { className: "shrink-0 rounded-full bg-white/70 px-1.5 py-0.5 text-[10px] font-semibold text-neutral-600 dark:bg-white/10 dark:text-neutral-300", children: row.childCount })
|
|
63275
|
+
] }) : col.key === "progress" ? /* @__PURE__ */ jsx312(ProgressCell, { value: liveProgress ?? row.progress ?? 0, barClass: tokens.chip }) : null
|
|
62845
63276
|
},
|
|
62846
63277
|
col.key
|
|
62847
63278
|
))
|
|
62848
63279
|
]
|
|
62849
63280
|
}
|
|
62850
63281
|
),
|
|
62851
|
-
/* @__PURE__ */
|
|
63282
|
+
/* @__PURE__ */ jsx312("div", { className: classNames121("relative min-w-0 flex-1 border-b", dividerClass), children: /* @__PURE__ */ jsx312("div", { className: classNames121("absolute inset-0", tokens.band) }) })
|
|
62852
63283
|
] });
|
|
62853
63284
|
};
|
|
62854
63285
|
var Cell = ({ col, task, depth, isGroup, childCount, first, onCaretClick, renderCell, liveProgress, liveRollup, rowProgress, dividerClass = "border-neutral-100 dark:border-neutral-800" }) => {
|
|
62855
63286
|
const t = useKitT();
|
|
62856
63287
|
const value = col.key === "name" ? task.name : col.key === "owner" ? task.owner : col.key === "progress" ? isGroup ? liveRollup ?? rowProgress ?? 0 : liveProgress ?? task.progress ?? 0 : task.values?.[col.key] ?? null;
|
|
62857
63288
|
const custom = col.key !== "name" && renderCell ? renderCell(value, task, col) : null;
|
|
62858
|
-
return /* @__PURE__ */
|
|
63289
|
+
return /* @__PURE__ */ jsx312(
|
|
62859
63290
|
"div",
|
|
62860
63291
|
{
|
|
62861
|
-
className:
|
|
63292
|
+
className: classNames121(
|
|
62862
63293
|
"flex shrink-0 items-center gap-1.5 overflow-hidden border-r px-2 text-[12.5px] last:border-r-0",
|
|
62863
63294
|
dividerClass
|
|
62864
63295
|
),
|
|
@@ -62866,50 +63297,50 @@ var Cell = ({ col, task, depth, isGroup, childCount, first, onCaretClick, render
|
|
|
62866
63297
|
width: col.width ?? "160px",
|
|
62867
63298
|
justifyContent: col.align === "center" ? "center" : col.align === "right" ? "flex-end" : "flex-start"
|
|
62868
63299
|
},
|
|
62869
|
-
children: first ? /* @__PURE__ */
|
|
62870
|
-
/* @__PURE__ */
|
|
63300
|
+
children: first ? /* @__PURE__ */ jsxs190(Fragment48, { children: [
|
|
63301
|
+
/* @__PURE__ */ jsx312("span", { className: "shrink-0", style: { width: depth * 14 + 18 }, children: isGroup && /* @__PURE__ */ jsx312(
|
|
62871
63302
|
"button",
|
|
62872
63303
|
{
|
|
62873
63304
|
type: "button",
|
|
62874
63305
|
className: "flex h-4 w-4 items-center justify-center rounded text-neutral-400 hover:bg-neutral-100 hover:text-neutral-600 focus-visible:ring-2 focus-visible:ring-neutral-400 dark:hover:bg-white/10 dark:hover:text-neutral-300",
|
|
62875
63306
|
onClick: () => onCaretClick(task.id, task.open !== false),
|
|
62876
63307
|
"aria-label": t(task.open === false ? "kit.gantt.expand" : "kit.gantt.collapse", { name: task.name }),
|
|
62877
|
-
children: /* @__PURE__ */
|
|
63308
|
+
children: /* @__PURE__ */ jsx312(ChevronRight, { className: classNames121("h-3 w-3 transition-transform", task.open !== false && "rotate-90") })
|
|
62878
63309
|
}
|
|
62879
63310
|
) }),
|
|
62880
|
-
isGroup && childCount > 0 ? /* @__PURE__ */
|
|
62881
|
-
/* @__PURE__ */
|
|
62882
|
-
/* @__PURE__ */
|
|
62883
|
-
] }) : /* @__PURE__ */
|
|
62884
|
-
] }) : col.kind === "owner" ? value != null ? /* @__PURE__ */
|
|
62885
|
-
/* @__PURE__ */
|
|
63311
|
+
isGroup && childCount > 0 ? /* @__PURE__ */ jsxs190("span", { className: "flex min-w-0 items-center gap-1 font-semibold text-neutral-800 dark:text-neutral-100", children: [
|
|
63312
|
+
/* @__PURE__ */ jsx312("span", { className: "truncate", children: task.name }),
|
|
63313
|
+
/* @__PURE__ */ jsx312("span", { className: "shrink-0 rounded-full bg-neutral-100 px-1 text-[10px] font-semibold text-neutral-500 dark:bg-white/10 dark:text-neutral-400", children: childCount })
|
|
63314
|
+
] }) : /* @__PURE__ */ jsx312("span", { className: "truncate font-medium text-neutral-700 dark:text-neutral-300", children: task.name })
|
|
63315
|
+
] }) : col.kind === "owner" ? value != null ? /* @__PURE__ */ jsxs190("span", { className: "flex min-w-0 items-center gap-1.5 text-neutral-600 dark:text-neutral-400", children: [
|
|
63316
|
+
/* @__PURE__ */ jsx312(
|
|
62886
63317
|
"span",
|
|
62887
63318
|
{
|
|
62888
|
-
className:
|
|
63319
|
+
className: classNames121(
|
|
62889
63320
|
"flex h-4 w-4 shrink-0 items-center justify-center rounded-full text-[8px] font-bold uppercase text-white",
|
|
62890
63321
|
getGanttBarTokens(task.color ?? "blue").fill
|
|
62891
63322
|
),
|
|
62892
63323
|
children: String(value).slice(0, 1)
|
|
62893
63324
|
}
|
|
62894
63325
|
),
|
|
62895
|
-
/* @__PURE__ */
|
|
62896
|
-
] }) : /* @__PURE__ */
|
|
63326
|
+
/* @__PURE__ */ jsx312("span", { className: "truncate", children: String(value) })
|
|
63327
|
+
] }) : /* @__PURE__ */ jsx312("span", { className: "text-neutral-400 dark:text-neutral-600", children: "\u2014" }) : col.kind === "progress" ? /* @__PURE__ */ jsx312(ProgressCell, { value: typeof value === "number" ? value : 0 }) : col.kind === "badge" ? task.badge != null ? /* @__PURE__ */ jsx312(
|
|
62897
63328
|
"span",
|
|
62898
63329
|
{
|
|
62899
|
-
className:
|
|
63330
|
+
className: classNames121(
|
|
62900
63331
|
"rounded-full px-1.5 py-0.5 text-[10px] font-semibold",
|
|
62901
63332
|
getGanttBarTokens(task.badgeColor ?? "neutral").fill,
|
|
62902
63333
|
"text-white"
|
|
62903
63334
|
),
|
|
62904
63335
|
children: task.badge
|
|
62905
63336
|
}
|
|
62906
|
-
) : /* @__PURE__ */
|
|
63337
|
+
) : /* @__PURE__ */ jsx312("span", { className: "text-neutral-400 dark:text-neutral-600", children: "\u2014" }) : custom != null ? custom : /* @__PURE__ */ jsx312("span", { className: "truncate text-neutral-600 dark:text-neutral-400", children: value == null || value === "" ? "\u2014" : String(value) })
|
|
62907
63338
|
}
|
|
62908
63339
|
);
|
|
62909
63340
|
};
|
|
62910
|
-
var ProgressCell = ({ value, barClass = "bg-emerald-500" }) => /* @__PURE__ */
|
|
62911
|
-
/* @__PURE__ */
|
|
62912
|
-
/* @__PURE__ */
|
|
63341
|
+
var ProgressCell = ({ value, barClass = "bg-emerald-500" }) => /* @__PURE__ */ jsxs190("span", { className: "flex w-full items-center gap-1.5", children: [
|
|
63342
|
+
/* @__PURE__ */ jsx312("span", { className: "h-1.5 min-w-0 flex-1 overflow-hidden rounded-full bg-neutral-200/80 dark:bg-white/10", children: /* @__PURE__ */ jsx312("span", { className: classNames121("block h-full rounded-full", barClass), style: { width: `${Math.round(value * 100)}%` } }) }),
|
|
63343
|
+
/* @__PURE__ */ jsxs190("span", { className: "w-7 shrink-0 text-right text-[10px] font-semibold tabular-nums text-neutral-500 dark:text-neutral-400", children: [
|
|
62913
63344
|
Math.round(value * 100),
|
|
62914
63345
|
"%"
|
|
62915
63346
|
] })
|
|
@@ -62941,7 +63372,7 @@ var TaskBar = ({
|
|
|
62941
63372
|
const t = useKitT();
|
|
62942
63373
|
const milestone = task.type === "milestone";
|
|
62943
63374
|
const barColor = task.color ?? color;
|
|
62944
|
-
const tokens =
|
|
63375
|
+
const tokens = useMemo57(() => getGanttBarTokens(barColor), [barColor]);
|
|
62945
63376
|
const startMs = liveDates ? liveDates.start : toMs(task.start);
|
|
62946
63377
|
const endMs = liveDates ? liveDates.end : toMs(task.end);
|
|
62947
63378
|
const left = dateToX(startMs, rangeStart, zoom);
|
|
@@ -62966,7 +63397,7 @@ var TaskBar = ({
|
|
|
62966
63397
|
pct: progressPct
|
|
62967
63398
|
});
|
|
62968
63399
|
if (milestone) {
|
|
62969
|
-
return /* @__PURE__ */
|
|
63400
|
+
return /* @__PURE__ */ jsxs190(
|
|
62970
63401
|
"div",
|
|
62971
63402
|
{
|
|
62972
63403
|
role: "button",
|
|
@@ -62974,7 +63405,7 @@ var TaskBar = ({
|
|
|
62974
63405
|
"aria-label": ariaLabel,
|
|
62975
63406
|
title: ariaLabel,
|
|
62976
63407
|
"data-gantt-bar": task.id,
|
|
62977
|
-
className:
|
|
63408
|
+
className: classNames121(
|
|
62978
63409
|
"absolute z-10 flex cursor-pointer items-center gap-1.5 outline-none",
|
|
62979
63410
|
selected && selectionTokens.ring,
|
|
62980
63411
|
"rounded"
|
|
@@ -62984,13 +63415,13 @@ var TaskBar = ({
|
|
|
62984
63415
|
onClick: () => onSelect(task.id),
|
|
62985
63416
|
onKeyDown: (e) => onBarKeyDown(e, task),
|
|
62986
63417
|
children: [
|
|
62987
|
-
/* @__PURE__ */
|
|
62988
|
-
/* @__PURE__ */
|
|
63418
|
+
/* @__PURE__ */ jsx312("span", { className: classNames121("h-3.5 w-3.5 shrink-0 rotate-45 rounded-[2px] shadow-sm", tokens.milestone) }),
|
|
63419
|
+
/* @__PURE__ */ jsx312("span", { className: "truncate text-[11px] font-semibold text-neutral-700 dark:text-neutral-300", children: task.name })
|
|
62989
63420
|
]
|
|
62990
63421
|
}
|
|
62991
63422
|
);
|
|
62992
63423
|
}
|
|
62993
|
-
return /* @__PURE__ */
|
|
63424
|
+
return /* @__PURE__ */ jsxs190(
|
|
62994
63425
|
"div",
|
|
62995
63426
|
{
|
|
62996
63427
|
role: "button",
|
|
@@ -62998,7 +63429,7 @@ var TaskBar = ({
|
|
|
62998
63429
|
"aria-label": ariaLabel,
|
|
62999
63430
|
title: `${task.name} \xB7 ${formatDateTime(startMs, locale)} \u2192 ${formatDateTime(endMs, locale)} \xB7 ${progressPct}%`,
|
|
63000
63431
|
"data-gantt-bar": task.id,
|
|
63001
|
-
className:
|
|
63432
|
+
className: classNames121(
|
|
63002
63433
|
"group/bar absolute z-10 cursor-grab touch-none rounded-md shadow-sm outline-none transition-shadow active:cursor-grabbing",
|
|
63003
63434
|
tokens.base,
|
|
63004
63435
|
tokens.rim,
|
|
@@ -63015,17 +63446,17 @@ var TaskBar = ({
|
|
|
63015
63446
|
onClick: () => onSelect(task.id),
|
|
63016
63447
|
onKeyDown: (e) => onBarKeyDown(e, task),
|
|
63017
63448
|
children: [
|
|
63018
|
-
progress > 0 && /* @__PURE__ */
|
|
63449
|
+
progress > 0 && /* @__PURE__ */ jsx312(
|
|
63019
63450
|
"div",
|
|
63020
63451
|
{
|
|
63021
|
-
className:
|
|
63452
|
+
className: classNames121("absolute inset-y-0 left-0 rounded-l-md", tokens.progress),
|
|
63022
63453
|
style: { width: `${progress * 100}%` }
|
|
63023
63454
|
}
|
|
63024
63455
|
),
|
|
63025
|
-
canEdit && !row.isGroup && progress > 0 && progress < 1 && /* @__PURE__ */
|
|
63456
|
+
canEdit && !row.isGroup && progress > 0 && progress < 1 && /* @__PURE__ */ jsx312(
|
|
63026
63457
|
"div",
|
|
63027
63458
|
{
|
|
63028
|
-
className:
|
|
63459
|
+
className: classNames121(
|
|
63029
63460
|
"absolute inset-y-0 z-20 w-2 cursor-ew-resize touch-none opacity-0 transition-opacity group-hover/bar:opacity-100",
|
|
63030
63461
|
liveProgress != null && "opacity-100"
|
|
63031
63462
|
),
|
|
@@ -63033,10 +63464,10 @@ var TaskBar = ({
|
|
|
63033
63464
|
onPointerDown: (e) => onProgressPointerDown(task, e),
|
|
63034
63465
|
title: labels.progress,
|
|
63035
63466
|
"aria-hidden": "true",
|
|
63036
|
-
children: /* @__PURE__ */
|
|
63467
|
+
children: /* @__PURE__ */ jsx312("div", { className: "mx-auto h-full w-0.5 rounded-full bg-white/90" })
|
|
63037
63468
|
}
|
|
63038
63469
|
),
|
|
63039
|
-
liveProgress != null && /* @__PURE__ */
|
|
63470
|
+
liveProgress != null && /* @__PURE__ */ jsxs190(
|
|
63040
63471
|
"div",
|
|
63041
63472
|
{
|
|
63042
63473
|
className: "pointer-events-none absolute -top-5 z-30 -translate-x-1/2 rounded-full bg-neutral-900/90 px-1.5 py-px text-[10px] font-semibold tabular-nums text-white shadow-md",
|
|
@@ -63047,31 +63478,31 @@ var TaskBar = ({
|
|
|
63047
63478
|
]
|
|
63048
63479
|
}
|
|
63049
63480
|
),
|
|
63050
|
-
showName && (renderBar != null ? /* @__PURE__ */
|
|
63051
|
-
canEdit && /* @__PURE__ */
|
|
63052
|
-
/* @__PURE__ */
|
|
63481
|
+
showName && (renderBar != null ? /* @__PURE__ */ jsx312("div", { className: classNames121("pointer-events-none absolute inset-0 flex items-center px-1.5 text-[11px] font-medium", labelText), children: renderBar(task, { taskId: task.id, left, width, top, height: row.height, milestone: false }) }) : /* @__PURE__ */ jsx312("span", { className: classNames121("pointer-events-none absolute inset-0 flex items-center truncate px-1.5 text-[11px] font-medium", labelText), children: task.name })),
|
|
63482
|
+
canEdit && /* @__PURE__ */ jsxs190(Fragment48, { children: [
|
|
63483
|
+
/* @__PURE__ */ jsx312(
|
|
63053
63484
|
"div",
|
|
63054
63485
|
{
|
|
63055
63486
|
className: "absolute inset-y-0 -left-1 z-20 w-2 cursor-ew-resize touch-none",
|
|
63056
63487
|
onPointerDown: (e) => onResizePointerDown(task, "start", e),
|
|
63057
63488
|
title: t("kit.gantt.resizeStart"),
|
|
63058
63489
|
"aria-hidden": "true",
|
|
63059
|
-
children: /* @__PURE__ */
|
|
63490
|
+
children: /* @__PURE__ */ jsx312("div", { className: "mx-auto h-full w-1 rounded-full bg-white/0 opacity-0 transition-opacity group-hover/bar:opacity-100" })
|
|
63060
63491
|
}
|
|
63061
63492
|
),
|
|
63062
|
-
/* @__PURE__ */
|
|
63493
|
+
/* @__PURE__ */ jsx312(
|
|
63063
63494
|
"div",
|
|
63064
63495
|
{
|
|
63065
63496
|
className: "absolute inset-y-0 -right-1 z-20 w-2 cursor-ew-resize touch-none",
|
|
63066
63497
|
onPointerDown: (e) => onResizePointerDown(task, "end", e),
|
|
63067
63498
|
title: t("kit.gantt.resizeEnd"),
|
|
63068
63499
|
"aria-hidden": "true",
|
|
63069
|
-
children: /* @__PURE__ */
|
|
63500
|
+
children: /* @__PURE__ */ jsx312("div", { className: "mx-auto h-full w-1 rounded-full bg-white/0 opacity-0 transition-opacity group-hover/bar:opacity-100" })
|
|
63070
63501
|
}
|
|
63071
63502
|
)
|
|
63072
63503
|
] }),
|
|
63073
|
-
canEdit && /* @__PURE__ */
|
|
63074
|
-
/* @__PURE__ */
|
|
63504
|
+
canEdit && /* @__PURE__ */ jsxs190(Fragment48, { children: [
|
|
63505
|
+
/* @__PURE__ */ jsx312(
|
|
63075
63506
|
"button",
|
|
63076
63507
|
{
|
|
63077
63508
|
type: "button",
|
|
@@ -63082,7 +63513,7 @@ var TaskBar = ({
|
|
|
63082
63513
|
"aria-label": t("kit.gantt.linkFromStart", { task: task.name })
|
|
63083
63514
|
}
|
|
63084
63515
|
),
|
|
63085
|
-
/* @__PURE__ */
|
|
63516
|
+
/* @__PURE__ */ jsx312(
|
|
63086
63517
|
"button",
|
|
63087
63518
|
{
|
|
63088
63519
|
type: "button",
|
|
@@ -63100,9 +63531,9 @@ var TaskBar = ({
|
|
|
63100
63531
|
};
|
|
63101
63532
|
|
|
63102
63533
|
// src/components/Gantt/GanttToolbar.tsx
|
|
63103
|
-
import { useMemo as
|
|
63104
|
-
import
|
|
63105
|
-
import { jsx as
|
|
63534
|
+
import { useMemo as useMemo58 } from "react";
|
|
63535
|
+
import classNames122 from "classnames";
|
|
63536
|
+
import { jsx as jsx313, jsxs as jsxs191 } from "react/jsx-runtime";
|
|
63106
63537
|
function nearestPreset(zoom, presets) {
|
|
63107
63538
|
let best = null;
|
|
63108
63539
|
let bestDist = Infinity;
|
|
@@ -63129,25 +63560,25 @@ var GanttToolbar = ({
|
|
|
63129
63560
|
Month: t("kit.gantt.zoomMonth"),
|
|
63130
63561
|
Quarter: t("kit.gantt.zoomQuarter")
|
|
63131
63562
|
};
|
|
63132
|
-
const active =
|
|
63133
|
-
const chrome =
|
|
63563
|
+
const active = useMemo58(() => nearestPreset(zoom, presets), [zoom, presets]);
|
|
63564
|
+
const chrome = useMemo58(
|
|
63134
63565
|
() => getSurfaceVariantClasses(variant, "neutral"),
|
|
63135
63566
|
[variant]
|
|
63136
63567
|
);
|
|
63137
|
-
return /* @__PURE__ */
|
|
63568
|
+
return /* @__PURE__ */ jsxs191(
|
|
63138
63569
|
"div",
|
|
63139
63570
|
{
|
|
63140
|
-
className:
|
|
63571
|
+
className: classNames122(
|
|
63141
63572
|
"pointer-events-auto flex items-center gap-1 rounded-lg p-1",
|
|
63142
63573
|
chrome
|
|
63143
63574
|
),
|
|
63144
63575
|
children: [
|
|
63145
|
-
/* @__PURE__ */
|
|
63576
|
+
/* @__PURE__ */ jsx313("div", { className: "flex items-center rounded-md bg-neutral-100 p-0.5 dark:bg-neutral-800", children: presets.map((p) => /* @__PURE__ */ jsx313(
|
|
63146
63577
|
"button",
|
|
63147
63578
|
{
|
|
63148
63579
|
type: "button",
|
|
63149
63580
|
onClick: () => onZoomTo(p.value),
|
|
63150
|
-
className:
|
|
63581
|
+
className: classNames122(
|
|
63151
63582
|
"rounded px-1.5 py-0.5 text-[10.5px] font-semibold transition-colors",
|
|
63152
63583
|
active === p.value ? "bg-white text-neutral-900 shadow-sm dark:bg-neutral-600 dark:text-white" : "text-neutral-500 hover:text-neutral-800 dark:text-neutral-400 dark:hover:text-neutral-200"
|
|
63153
63584
|
),
|
|
@@ -63155,9 +63586,9 @@ var GanttToolbar = ({
|
|
|
63155
63586
|
},
|
|
63156
63587
|
p.label
|
|
63157
63588
|
)) }),
|
|
63158
|
-
/* @__PURE__ */
|
|
63159
|
-
/* @__PURE__ */
|
|
63160
|
-
/* @__PURE__ */
|
|
63589
|
+
/* @__PURE__ */ jsx313("div", { className: "mx-0.5 h-4 w-px bg-neutral-200 dark:bg-neutral-700" }),
|
|
63590
|
+
/* @__PURE__ */ jsx313(Button_default, { variant: "ghost", size: "xs", onClick: () => onZoomBy(1 / 1.25), "aria-label": t("kit.gantt.zoomOut"), children: /* @__PURE__ */ jsx313("span", { className: "text-xs font-semibold leading-none", children: "\u2212" }) }),
|
|
63591
|
+
/* @__PURE__ */ jsx313(Button_default, { variant: "ghost", size: "xs", onClick: () => onZoomBy(1.25), "aria-label": t("kit.gantt.zoomIn"), children: /* @__PURE__ */ jsx313("span", { className: "text-xs font-semibold leading-none", children: "+" }) })
|
|
63161
63592
|
]
|
|
63162
63593
|
}
|
|
63163
63594
|
);
|
|
@@ -63165,7 +63596,7 @@ var GanttToolbar = ({
|
|
|
63165
63596
|
GanttToolbar.displayName = "GanttToolbar";
|
|
63166
63597
|
|
|
63167
63598
|
// src/components/Gantt/useGanttDrag.ts
|
|
63168
|
-
import { useCallback as useCallback41, useEffect as useEffect70, useMemo as
|
|
63599
|
+
import { useCallback as useCallback41, useEffect as useEffect70, useMemo as useMemo59, useRef as useRef67, useState as useState78 } from "react";
|
|
63169
63600
|
function useGanttDrag(opts) {
|
|
63170
63601
|
const [drag, setDrag] = useState78(null);
|
|
63171
63602
|
const [linkSelected, setLinkSelected] = useState78(null);
|
|
@@ -63483,7 +63914,7 @@ function useGanttDrag(opts) {
|
|
|
63483
63914
|
},
|
|
63484
63915
|
[beginDrag, timelineX, rowY]
|
|
63485
63916
|
);
|
|
63486
|
-
const rubber =
|
|
63917
|
+
const rubber = useMemo59(() => {
|
|
63487
63918
|
if (!drag || drag.kind !== "link") return null;
|
|
63488
63919
|
const source = barGeom(drag.taskId);
|
|
63489
63920
|
if (!source) return null;
|
|
@@ -63515,7 +63946,7 @@ function useGanttDrag(opts) {
|
|
|
63515
63946
|
}
|
|
63516
63947
|
|
|
63517
63948
|
// src/components/Gantt/Gantt.tsx
|
|
63518
|
-
import { jsx as
|
|
63949
|
+
import { jsx as jsx314, jsxs as jsxs192 } from "react/jsx-runtime";
|
|
63519
63950
|
var HEADER_HEIGHT = 52;
|
|
63520
63951
|
var GRIP_WIDTH = 36;
|
|
63521
63952
|
var DEFAULT_COLUMNS = [
|
|
@@ -63574,7 +64005,7 @@ var Gantt = ({
|
|
|
63574
64005
|
const t = useKitT();
|
|
63575
64006
|
const kitEngine = useKitEngine();
|
|
63576
64007
|
const dateLocale = locale ?? kitEngine.locale;
|
|
63577
|
-
const allLabels =
|
|
64008
|
+
const allLabels = useMemo60(
|
|
63578
64009
|
() => ({
|
|
63579
64010
|
loading: t("kit.gantt.loading"),
|
|
63580
64011
|
empty: t("kit.gantt.empty"),
|
|
@@ -63597,7 +64028,7 @@ var Gantt = ({
|
|
|
63597
64028
|
title: c.key === "name" ? allLabels.task : c.key === "owner" ? t("kit.gantt.colOwner") : t("kit.gantt.colProgress")
|
|
63598
64029
|
}));
|
|
63599
64030
|
const interactive = editable ?? Boolean(onTasksChange || onLinksChange || onReorder);
|
|
63600
|
-
const surfaceText =
|
|
64031
|
+
const surfaceText = useMemo60(() => getSurfaceTextTokens(variant), [variant]);
|
|
63601
64032
|
const [internalZoom, setInternalZoom] = useState79(initialZoom);
|
|
63602
64033
|
const zoom = zoomProp ?? internalZoom;
|
|
63603
64034
|
const setZoom = useCallback42(
|
|
@@ -63660,30 +64091,30 @@ var Gantt = ({
|
|
|
63660
64091
|
return next;
|
|
63661
64092
|
});
|
|
63662
64093
|
}, []);
|
|
63663
|
-
const effectiveTasks =
|
|
64094
|
+
const effectiveTasks = useMemo60(() => {
|
|
63664
64095
|
let out = tasks;
|
|
63665
64096
|
if (collapsed.size > 0) {
|
|
63666
64097
|
out = out.map((t2) => collapsed.has(t2.id) ? { ...t2, open: false } : t2);
|
|
63667
64098
|
}
|
|
63668
64099
|
return out;
|
|
63669
64100
|
}, [tasks, collapsed]);
|
|
63670
|
-
const effectiveLanes =
|
|
64101
|
+
const effectiveLanes = useMemo60(() => {
|
|
63671
64102
|
if (closedLanes.size === 0) return lanes;
|
|
63672
64103
|
return (lanes ?? []).map(
|
|
63673
64104
|
(l) => closedLanes.has(l.id) ? { ...l, open: false } : l
|
|
63674
64105
|
);
|
|
63675
64106
|
}, [lanes, closedLanes]);
|
|
63676
|
-
const committedModel =
|
|
64107
|
+
const committedModel = useMemo60(
|
|
63677
64108
|
() => buildRows(effectiveTasks, effectiveLanes, rowOrder, rowHeight2),
|
|
63678
64109
|
[effectiveTasks, effectiveLanes, rowOrder, rowHeight2]
|
|
63679
64110
|
);
|
|
63680
|
-
const range =
|
|
64111
|
+
const range = useMemo60(() => {
|
|
63681
64112
|
const starts = tasks.map((t2) => toMs(t2.start));
|
|
63682
64113
|
const ends = tasks.map((t2) => toMs(t2.end));
|
|
63683
64114
|
return computeViewRange(starts, ends);
|
|
63684
64115
|
}, [tasks]);
|
|
63685
64116
|
const timelineWidth = rangeWidth(range.start, range.end, zoom);
|
|
63686
|
-
const scaleLevels =
|
|
64117
|
+
const scaleLevels = useMemo60(
|
|
63687
64118
|
() => buildTimeScale(range.start, range.end, zoom, dateLocale),
|
|
63688
64119
|
[range, zoom, dateLocale]
|
|
63689
64120
|
);
|
|
@@ -63700,7 +64131,7 @@ var Gantt = ({
|
|
|
63700
64131
|
const m = /^(\d+(?:\.\d+)?)px$/.exec(col.width ?? "");
|
|
63701
64132
|
return m ? Number(m[1]) : 160;
|
|
63702
64133
|
};
|
|
63703
|
-
const sizedColumns =
|
|
64134
|
+
const sizedColumns = useMemo60(
|
|
63704
64135
|
() => resolvedColumns.map((c) => ({ ...c, width: `${effectiveColWidth(c)}px` })),
|
|
63705
64136
|
[resolvedColumns, colWidths]
|
|
63706
64137
|
);
|
|
@@ -63708,7 +64139,7 @@ var Gantt = ({
|
|
|
63708
64139
|
effectiveWidthsRef.current = Object.fromEntries(
|
|
63709
64140
|
sizedColumns.map((c) => [c.key, effectiveColWidth(c)])
|
|
63710
64141
|
);
|
|
63711
|
-
const leftWidth =
|
|
64142
|
+
const leftWidth = useMemo60(
|
|
63712
64143
|
() => GRIP_WIDTH + resolvedColumns.reduce((sum, c) => sum + effectiveColWidth(c), 0),
|
|
63713
64144
|
[resolvedColumns, colWidths]
|
|
63714
64145
|
);
|
|
@@ -63817,12 +64248,12 @@ var Gantt = ({
|
|
|
63817
64248
|
rowOrder,
|
|
63818
64249
|
setSelected
|
|
63819
64250
|
});
|
|
63820
|
-
const liveReorder =
|
|
64251
|
+
const liveReorder = useMemo60(() => {
|
|
63821
64252
|
const d = dragApi.drag;
|
|
63822
64253
|
if (d?.kind !== "reorder" || d.beforeId === void 0) return null;
|
|
63823
64254
|
return applyRowReorder(effectiveTasks, d.taskId, d.beforeId, rowOrder);
|
|
63824
64255
|
}, [dragApi.drag, effectiveTasks, rowOrder]);
|
|
63825
|
-
const liveModel =
|
|
64256
|
+
const liveModel = useMemo60(
|
|
63826
64257
|
() => liveReorder ? buildRows(
|
|
63827
64258
|
liveReorder.tasks,
|
|
63828
64259
|
effectiveLanes,
|
|
@@ -63832,7 +64263,7 @@ var Gantt = ({
|
|
|
63832
64263
|
[liveReorder, effectiveLanes, rowHeight2, committedModel]
|
|
63833
64264
|
);
|
|
63834
64265
|
liveRowsRef.current = liveModel.rows;
|
|
63835
|
-
const bars =
|
|
64266
|
+
const bars = useMemo60(() => {
|
|
63836
64267
|
const map = /* @__PURE__ */ new Map();
|
|
63837
64268
|
for (const row of liveModel.rows) {
|
|
63838
64269
|
if (!row.task) continue;
|
|
@@ -63988,22 +64419,22 @@ var Gantt = ({
|
|
|
63988
64419
|
const drag = dragApi.drag;
|
|
63989
64420
|
const dragTask = drag?.taskId ? committedModel.tasksById.get(drag.taskId) : void 0;
|
|
63990
64421
|
const reorderLineY = drag?.kind === "reorder" && drag.beforeId !== void 0 ? reorderPreviewTop(liveModel.rows, `task:${drag.taskId}`, drag.beforeId) : null;
|
|
63991
|
-
const dragSubtree =
|
|
64422
|
+
const dragSubtree = useMemo60(() => {
|
|
63992
64423
|
if (dragApi.drag?.kind !== "reorder") return null;
|
|
63993
64424
|
return reorderDragSubtree(
|
|
63994
64425
|
liveModel.rows,
|
|
63995
64426
|
`task:${dragApi.drag.taskId}`
|
|
63996
64427
|
);
|
|
63997
64428
|
}, [dragApi.drag, liveModel.rows]);
|
|
63998
|
-
const dragSubtreeKeys =
|
|
64429
|
+
const dragSubtreeKeys = useMemo60(
|
|
63999
64430
|
() => new Set((dragSubtree ?? []).map((r) => r.key)),
|
|
64000
64431
|
[dragSubtree]
|
|
64001
64432
|
);
|
|
64002
|
-
const dragSubtreeHeight =
|
|
64433
|
+
const dragSubtreeHeight = useMemo60(
|
|
64003
64434
|
() => (dragSubtree ?? []).reduce((sum, r) => sum + r.height, 0),
|
|
64004
64435
|
[dragSubtree]
|
|
64005
64436
|
);
|
|
64006
|
-
const liveDragDates =
|
|
64437
|
+
const liveDragDates = useMemo60(() => {
|
|
64007
64438
|
if (!drag || !dragTask) return null;
|
|
64008
64439
|
if (drag.kind !== "move" && drag.kind !== "resize-start" && drag.kind !== "resize-end") return null;
|
|
64009
64440
|
return applyDragDates(
|
|
@@ -64014,7 +64445,7 @@ var Gantt = ({
|
|
|
64014
64445
|
);
|
|
64015
64446
|
}, [drag, dragTask, zoom, snap2]);
|
|
64016
64447
|
const liveDragProgress = drag?.kind === "progress" && drag.liveProgress != null ? drag.liveProgress : null;
|
|
64017
|
-
const dragOverride =
|
|
64448
|
+
const dragOverride = useMemo60(() => {
|
|
64018
64449
|
if (!drag || !dragTask) return null;
|
|
64019
64450
|
if (drag.kind === "progress" && drag.liveProgress != null) {
|
|
64020
64451
|
return { ...dragTask, progress: drag.liveProgress };
|
|
@@ -64024,11 +64455,11 @@ var Gantt = ({
|
|
|
64024
64455
|
}
|
|
64025
64456
|
return null;
|
|
64026
64457
|
}, [drag, dragTask, liveDragDates]);
|
|
64027
|
-
const liveLaneProgress =
|
|
64458
|
+
const liveLaneProgress = useMemo60(
|
|
64028
64459
|
() => dragOverride && dragTask ? laneRollupProgress(effectiveTasks, dragTask.id, dragOverride) : null,
|
|
64029
64460
|
[dragOverride, dragTask, effectiveTasks]
|
|
64030
64461
|
);
|
|
64031
|
-
const liveGroupProgress =
|
|
64462
|
+
const liveGroupProgress = useMemo60(() => {
|
|
64032
64463
|
if (!dragOverride || !dragTask) return null;
|
|
64033
64464
|
const byId = new Map(effectiveTasks.map((t2) => [t2.id, t2]));
|
|
64034
64465
|
const m = /* @__PURE__ */ new Map();
|
|
@@ -64040,7 +64471,7 @@ var Gantt = ({
|
|
|
64040
64471
|
}
|
|
64041
64472
|
return m.size > 0 ? m : null;
|
|
64042
64473
|
}, [dragOverride, dragTask, effectiveTasks]);
|
|
64043
|
-
const liveLinkBars =
|
|
64474
|
+
const liveLinkBars = useMemo60(() => {
|
|
64044
64475
|
if (!liveDragDates || !dragTask) return bars;
|
|
64045
64476
|
const g = bars.get(dragTask.id);
|
|
64046
64477
|
if (!g) return bars;
|
|
@@ -64049,12 +64480,12 @@ var Gantt = ({
|
|
|
64049
64480
|
if (left === g.left && width === g.width) return bars;
|
|
64050
64481
|
return new Map(bars).set(dragTask.id, { ...g, left, width });
|
|
64051
64482
|
}, [bars, liveDragDates, dragTask, range, zoom]);
|
|
64052
|
-
const linkPaths =
|
|
64483
|
+
const linkPaths = useMemo60(
|
|
64053
64484
|
() => computeLinkPaths(links, liveLinkBars, color),
|
|
64054
64485
|
[links, liveLinkBars, color]
|
|
64055
64486
|
);
|
|
64056
|
-
const linkFan =
|
|
64057
|
-
return /* @__PURE__ */
|
|
64487
|
+
const linkFan = useMemo60(() => computeLinkFanOffsets(links, bars), [links, bars]);
|
|
64488
|
+
return /* @__PURE__ */ jsx314(
|
|
64058
64489
|
Panel_default,
|
|
64059
64490
|
{
|
|
64060
64491
|
ref: rootRef,
|
|
@@ -64072,31 +64503,31 @@ var Gantt = ({
|
|
|
64072
64503
|
"aria-label": t("kit.gantt.root"),
|
|
64073
64504
|
onKeyDown: onRootKeyDown,
|
|
64074
64505
|
onPointerDown: handleRootPointerDown,
|
|
64075
|
-
children: /* @__PURE__ */
|
|
64076
|
-
/* @__PURE__ */
|
|
64506
|
+
children: /* @__PURE__ */ jsxs192("div", { className: "flex h-full min-h-0 flex-col", children: [
|
|
64507
|
+
/* @__PURE__ */ jsxs192(
|
|
64077
64508
|
"div",
|
|
64078
64509
|
{
|
|
64079
|
-
className:
|
|
64510
|
+
className: classNames123(
|
|
64080
64511
|
"flex shrink-0 items-center gap-3 border-b px-4 py-3",
|
|
64081
64512
|
surfaceText.divider
|
|
64082
64513
|
),
|
|
64083
64514
|
children: [
|
|
64084
|
-
hasNode(icon) && /* @__PURE__ */
|
|
64515
|
+
hasNode(icon) && /* @__PURE__ */ jsx314(
|
|
64085
64516
|
"div",
|
|
64086
64517
|
{
|
|
64087
|
-
className:
|
|
64518
|
+
className: classNames123(
|
|
64088
64519
|
"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl",
|
|
64089
64520
|
getSurfaceVariantClasses(variant, "neutral")
|
|
64090
64521
|
),
|
|
64091
64522
|
children: icon
|
|
64092
64523
|
}
|
|
64093
64524
|
),
|
|
64094
|
-
(title != null || subtitle != null) && /* @__PURE__ */
|
|
64095
|
-
subtitle != null && /* @__PURE__ */
|
|
64096
|
-
title != null && /* @__PURE__ */
|
|
64525
|
+
(title != null || subtitle != null) && /* @__PURE__ */ jsxs192("div", { className: "min-w-0 flex-1", children: [
|
|
64526
|
+
subtitle != null && /* @__PURE__ */ jsx314("div", { className: "truncate text-[11px] font-semibold uppercase tracking-wider text-neutral-500 dark:text-neutral-400", children: subtitle }),
|
|
64527
|
+
title != null && /* @__PURE__ */ jsx314("div", { className: "truncate text-lg font-semibold text-neutral-900 dark:text-white", children: title })
|
|
64097
64528
|
] }),
|
|
64098
|
-
hasNode(actions) && /* @__PURE__ */
|
|
64099
|
-
/* @__PURE__ */
|
|
64529
|
+
hasNode(actions) && /* @__PURE__ */ jsx314("div", { className: "flex shrink-0 items-center gap-2", children: actions }),
|
|
64530
|
+
/* @__PURE__ */ jsx314("div", { className: "ml-auto shrink-0", children: /* @__PURE__ */ jsx314(
|
|
64100
64531
|
GanttToolbar,
|
|
64101
64532
|
{
|
|
64102
64533
|
variant,
|
|
@@ -64109,31 +64540,31 @@ var Gantt = ({
|
|
|
64109
64540
|
]
|
|
64110
64541
|
}
|
|
64111
64542
|
),
|
|
64112
|
-
/* @__PURE__ */
|
|
64543
|
+
/* @__PURE__ */ jsxs192(
|
|
64113
64544
|
"div",
|
|
64114
64545
|
{
|
|
64115
|
-
className:
|
|
64546
|
+
className: classNames123(
|
|
64116
64547
|
"relative flex shrink-0 items-stretch border-b",
|
|
64117
64548
|
surfaceText.divider
|
|
64118
64549
|
),
|
|
64119
64550
|
style: { height: HEADER_HEIGHT },
|
|
64120
64551
|
children: [
|
|
64121
|
-
/* @__PURE__ */
|
|
64552
|
+
/* @__PURE__ */ jsxs192(
|
|
64122
64553
|
"div",
|
|
64123
64554
|
{
|
|
64124
|
-
className:
|
|
64555
|
+
className: classNames123(
|
|
64125
64556
|
"flex items-stretch border-r bg-white dark:bg-neutral-900",
|
|
64126
64557
|
surfaceText.divider
|
|
64127
64558
|
),
|
|
64128
64559
|
style: { width: leftWidth },
|
|
64129
64560
|
children: [
|
|
64130
|
-
/* @__PURE__ */
|
|
64561
|
+
/* @__PURE__ */ jsx314("div", { className: "w-9 shrink-0" }),
|
|
64131
64562
|
sizedColumns.map((col) => {
|
|
64132
64563
|
const resizable = resizableColumns && col.resizable !== false;
|
|
64133
|
-
return /* @__PURE__ */
|
|
64564
|
+
return /* @__PURE__ */ jsxs192(
|
|
64134
64565
|
"div",
|
|
64135
64566
|
{
|
|
64136
|
-
className:
|
|
64567
|
+
className: classNames123(
|
|
64137
64568
|
"relative flex shrink-0 items-center border-r px-2 text-[11px] font-semibold uppercase tracking-wide text-neutral-600 last:border-r-0 dark:text-neutral-400",
|
|
64138
64569
|
surfaceText.divider
|
|
64139
64570
|
),
|
|
@@ -64142,7 +64573,7 @@ var Gantt = ({
|
|
|
64142
64573
|
justifyContent: col.align === "center" ? "center" : col.align === "right" ? "flex-end" : "flex-start"
|
|
64143
64574
|
},
|
|
64144
64575
|
children: [
|
|
64145
|
-
/* @__PURE__ */
|
|
64576
|
+
/* @__PURE__ */ jsx314("span", { className: "truncate", children: col.title }),
|
|
64146
64577
|
resizable && /* Resize handle — Table's header-edge pattern: an 8px hit
|
|
64147
64578
|
area whose 1px line sits exactly on the column border.
|
|
64148
64579
|
Absolute insets stop at the padding edge (1px inside
|
|
@@ -64151,7 +64582,7 @@ var Gantt = ({
|
|
|
64151
64582
|
the border's own pixel. The cell carries no
|
|
64152
64583
|
overflow-hidden so the line can paint over the border
|
|
64153
64584
|
(the title span truncates itself). */
|
|
64154
|
-
/* @__PURE__ */
|
|
64585
|
+
/* @__PURE__ */ jsx314(
|
|
64155
64586
|
"div",
|
|
64156
64587
|
{
|
|
64157
64588
|
role: "separator",
|
|
@@ -64160,7 +64591,7 @@ var Gantt = ({
|
|
|
64160
64591
|
className: "group/rh absolute inset-y-0 -right-px z-10 flex w-2 cursor-col-resize select-none items-stretch justify-end",
|
|
64161
64592
|
onPointerDown: (e) => startColumnResize(e, col.key),
|
|
64162
64593
|
title: t("kit.gantt.resizeColumn", { column: col.title }),
|
|
64163
|
-
children: /* @__PURE__ */
|
|
64594
|
+
children: /* @__PURE__ */ jsx314(
|
|
64164
64595
|
"div",
|
|
64165
64596
|
{
|
|
64166
64597
|
className: "h-full w-px bg-neutral-300 transition-colors group-hover/rh:bg-neutral-400 dark:bg-neutral-600 dark:group-hover/rh:bg-neutral-500",
|
|
@@ -64177,30 +64608,30 @@ var Gantt = ({
|
|
|
64177
64608
|
]
|
|
64178
64609
|
}
|
|
64179
64610
|
),
|
|
64180
|
-
/* @__PURE__ */
|
|
64611
|
+
/* @__PURE__ */ jsx314("div", { className: "relative min-w-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxs192(
|
|
64181
64612
|
"div",
|
|
64182
64613
|
{
|
|
64183
64614
|
ref: headerScaleRef,
|
|
64184
64615
|
className: "relative h-full",
|
|
64185
64616
|
style: { width: timelineWidth },
|
|
64186
64617
|
children: [
|
|
64187
|
-
/* @__PURE__ */
|
|
64188
|
-
todayVisible && !loading && !isEmpty2 && /* @__PURE__ */
|
|
64618
|
+
/* @__PURE__ */ jsx314(GanttScale, { levels: scaleLevels, height: HEADER_HEIGHT }),
|
|
64619
|
+
todayVisible && !loading && !isEmpty2 && /* @__PURE__ */ jsx314(
|
|
64189
64620
|
"div",
|
|
64190
64621
|
{
|
|
64191
|
-
className:
|
|
64622
|
+
className: classNames123(
|
|
64192
64623
|
"pointer-events-none absolute inset-y-0 z-[1] border-l-2",
|
|
64193
64624
|
todayTokens.line
|
|
64194
64625
|
),
|
|
64195
64626
|
style: { left: todayX }
|
|
64196
64627
|
}
|
|
64197
64628
|
),
|
|
64198
|
-
todayVisible && !loading && !isEmpty2 && /* @__PURE__ */
|
|
64629
|
+
todayVisible && !loading && !isEmpty2 && /* @__PURE__ */ jsx314(
|
|
64199
64630
|
"div",
|
|
64200
64631
|
{
|
|
64201
64632
|
className: "pointer-events-none absolute top-1 z-10 -translate-x-1/2",
|
|
64202
64633
|
style: { left: todayX },
|
|
64203
|
-
children: /* @__PURE__ */
|
|
64634
|
+
children: /* @__PURE__ */ jsx314("span", { className: classNames123("rounded-full px-2 py-0.5 text-[10px] font-semibold text-white shadow-sm", todayTokens.chip), children: allLabels.today })
|
|
64204
64635
|
}
|
|
64205
64636
|
)
|
|
64206
64637
|
]
|
|
@@ -64209,20 +64640,20 @@ var Gantt = ({
|
|
|
64209
64640
|
]
|
|
64210
64641
|
}
|
|
64211
64642
|
),
|
|
64212
|
-
/* @__PURE__ */
|
|
64643
|
+
/* @__PURE__ */ jsx314(
|
|
64213
64644
|
"div",
|
|
64214
64645
|
{
|
|
64215
64646
|
ref: scrollRef,
|
|
64216
64647
|
className: `gantt-scroller min-h-0 flex-1 overflow-auto overscroll-contain [&::-webkit-scrollbar]:h-1.5 ${THIN_SCROLLBAR}`,
|
|
64217
64648
|
onScroll: syncHeaderScale,
|
|
64218
|
-
children: /* @__PURE__ */
|
|
64219
|
-
/* @__PURE__ */
|
|
64649
|
+
children: /* @__PURE__ */ jsx314("div", { style: { width: leftWidth + timelineWidth + LINK_RIGHT_GUTTER, minWidth: "100%" }, children: loading ? /* @__PURE__ */ jsx314(GanttSkeleton, { rows: 12, rowHeight: rowHeight2, leftWidth }) : isEmpty2 ? /* @__PURE__ */ jsx314("div", { className: "flex items-center justify-center text-sm text-neutral-500", style: { height: bodyHeight || 160, width: leftWidth + timelineWidth }, children: emptyState ?? allLabels.empty }) : /* @__PURE__ */ jsxs192("div", { className: "relative", style: { height: bodyHeight }, children: [
|
|
64650
|
+
/* @__PURE__ */ jsxs192(
|
|
64220
64651
|
"div",
|
|
64221
64652
|
{
|
|
64222
64653
|
className: "pointer-events-none absolute inset-y-0 z-0",
|
|
64223
64654
|
style: { left: leftWidth, width: timelineWidth },
|
|
64224
64655
|
children: [
|
|
64225
|
-
scaleLevels.length > 0 && scaleLevels[scaleLevels.length - 1].columns.map((c) => /* @__PURE__ */
|
|
64656
|
+
scaleLevels.length > 0 && scaleLevels[scaleLevels.length - 1].columns.map((c) => /* @__PURE__ */ jsx314(
|
|
64226
64657
|
"div",
|
|
64227
64658
|
{
|
|
64228
64659
|
className: "absolute inset-y-0 border-r border-neutral-100 dark:border-neutral-800",
|
|
@@ -64230,10 +64661,10 @@ var Gantt = ({
|
|
|
64230
64661
|
},
|
|
64231
64662
|
c.id
|
|
64232
64663
|
)),
|
|
64233
|
-
todayVisible && /* @__PURE__ */
|
|
64664
|
+
todayVisible && /* @__PURE__ */ jsx314(
|
|
64234
64665
|
"div",
|
|
64235
64666
|
{
|
|
64236
|
-
className:
|
|
64667
|
+
className: classNames123("absolute inset-y-0 border-l-2", todayTokens.line),
|
|
64237
64668
|
style: { left: todayX }
|
|
64238
64669
|
}
|
|
64239
64670
|
)
|
|
@@ -64243,7 +64674,7 @@ var Gantt = ({
|
|
|
64243
64674
|
liveModel.rows.map((row) => {
|
|
64244
64675
|
const isDragSource = drag?.kind === "reorder" && row.task != null && row.task.id === drag.taskId;
|
|
64245
64676
|
if (isDragSource) {
|
|
64246
|
-
return /* @__PURE__ */
|
|
64677
|
+
return /* @__PURE__ */ jsx314(
|
|
64247
64678
|
"div",
|
|
64248
64679
|
{
|
|
64249
64680
|
"data-row-key": row.key,
|
|
@@ -64251,7 +64682,7 @@ var Gantt = ({
|
|
|
64251
64682
|
"aria-hidden": "true",
|
|
64252
64683
|
className: "pointer-events-none flex border-b",
|
|
64253
64684
|
style: { height: dragSubtreeHeight || row.height },
|
|
64254
|
-
children: /* @__PURE__ */
|
|
64685
|
+
children: /* @__PURE__ */ jsx314(
|
|
64255
64686
|
"div",
|
|
64256
64687
|
{
|
|
64257
64688
|
className: "m-1 flex-1 rounded-md border-2 border-dashed",
|
|
@@ -64268,7 +64699,7 @@ var Gantt = ({
|
|
|
64268
64699
|
if (drag?.kind === "reorder" && dragSubtreeKeys.has(row.key)) {
|
|
64269
64700
|
return null;
|
|
64270
64701
|
}
|
|
64271
|
-
return /* @__PURE__ */
|
|
64702
|
+
return /* @__PURE__ */ jsx314(
|
|
64272
64703
|
GanttBodyRow,
|
|
64273
64704
|
{
|
|
64274
64705
|
row,
|
|
@@ -64306,7 +64737,7 @@ var Gantt = ({
|
|
|
64306
64737
|
row.key
|
|
64307
64738
|
);
|
|
64308
64739
|
}),
|
|
64309
|
-
/* @__PURE__ */
|
|
64740
|
+
/* @__PURE__ */ jsx314(
|
|
64310
64741
|
GanttLinkLayer,
|
|
64311
64742
|
{
|
|
64312
64743
|
ref: overlayRef,
|
|
@@ -64322,7 +64753,7 @@ var Gantt = ({
|
|
|
64322
64753
|
onDeleteLink: interactive && onLinksChange ? deleteSelectedLink : void 0
|
|
64323
64754
|
}
|
|
64324
64755
|
),
|
|
64325
|
-
drag?.kind === "reorder" && reorderLineY != null && /* @__PURE__ */
|
|
64756
|
+
drag?.kind === "reorder" && reorderLineY != null && /* @__PURE__ */ jsx314(
|
|
64326
64757
|
"div",
|
|
64327
64758
|
{
|
|
64328
64759
|
className: "pointer-events-none absolute z-30 h-0.5 rounded-full",
|
|
@@ -64342,7 +64773,7 @@ var Gantt = ({
|
|
|
64342
64773
|
// there is no filtered/overflowing ancestor and the fixed
|
|
64343
64774
|
// clone always tracks the viewport pointer.
|
|
64344
64775
|
createPortal15(
|
|
64345
|
-
/* @__PURE__ */
|
|
64776
|
+
/* @__PURE__ */ jsx314(
|
|
64346
64777
|
"div",
|
|
64347
64778
|
{
|
|
64348
64779
|
"data-gantt-drag-clone": "true",
|
|
@@ -64353,14 +64784,14 @@ var Gantt = ({
|
|
|
64353
64784
|
top: drag.clientY - (drag.grabOffset?.y ?? 0),
|
|
64354
64785
|
width: leftWidth + timelineWidth + LINK_RIGHT_GUTTER
|
|
64355
64786
|
},
|
|
64356
|
-
children: /* @__PURE__ */
|
|
64787
|
+
children: /* @__PURE__ */ jsx314(
|
|
64357
64788
|
"div",
|
|
64358
64789
|
{
|
|
64359
64790
|
className: "overflow-hidden rounded-lg bg-white/95 shadow-2xl backdrop-blur-sm dark:bg-neutral-900/95",
|
|
64360
64791
|
style: {
|
|
64361
64792
|
boxShadow: `0 8px 32px rgba(0, 0, 0, 0.28), inset 2px 0 0 var(--color-${color}-500)`
|
|
64362
64793
|
},
|
|
64363
|
-
children: dragSubtree.map((row) => /* @__PURE__ */
|
|
64794
|
+
children: dragSubtree.map((row) => /* @__PURE__ */ jsx314(
|
|
64364
64795
|
GanttBodyRow,
|
|
64365
64796
|
{
|
|
64366
64797
|
row,
|
|
@@ -64403,7 +64834,7 @@ var Gantt = ({
|
|
|
64403
64834
|
),
|
|
64404
64835
|
document.body
|
|
64405
64836
|
),
|
|
64406
|
-
drag && drag.kind !== "reorder" && dragTask && liveDragDates && /* @__PURE__ */
|
|
64837
|
+
drag && drag.kind !== "reorder" && dragTask && liveDragDates && /* @__PURE__ */ jsx314(
|
|
64407
64838
|
"div",
|
|
64408
64839
|
{
|
|
64409
64840
|
className: "pointer-events-none absolute z-50 rounded-md bg-neutral-900/90 px-2 py-1 text-[11px] font-medium text-white shadow-lg dark:bg-neutral-700/95",
|
|
@@ -64434,13 +64865,13 @@ var GanttSkeleton = ({
|
|
|
64434
64865
|
rows,
|
|
64435
64866
|
rowHeight: rowHeight2,
|
|
64436
64867
|
leftWidth
|
|
64437
|
-
}) => /* @__PURE__ */
|
|
64438
|
-
/* @__PURE__ */
|
|
64868
|
+
}) => /* @__PURE__ */ jsx314("div", { className: "animate-pulse", "aria-busy": "true", children: Array.from({ length: rows }).map((_, i) => /* @__PURE__ */ jsxs192("div", { className: "flex", style: { height: rowHeight2 }, children: [
|
|
64869
|
+
/* @__PURE__ */ jsx314(
|
|
64439
64870
|
"div",
|
|
64440
64871
|
{
|
|
64441
64872
|
className: "sticky left-0 flex items-center border-b border-neutral-100 bg-white px-3 dark:border-neutral-800 dark:bg-neutral-900",
|
|
64442
64873
|
style: { width: leftWidth },
|
|
64443
|
-
children: /* @__PURE__ */
|
|
64874
|
+
children: /* @__PURE__ */ jsx314(
|
|
64444
64875
|
"div",
|
|
64445
64876
|
{
|
|
64446
64877
|
className: "h-3 rounded-full bg-neutral-200 dark:bg-neutral-700",
|
|
@@ -64449,7 +64880,7 @@ var GanttSkeleton = ({
|
|
|
64449
64880
|
)
|
|
64450
64881
|
}
|
|
64451
64882
|
),
|
|
64452
|
-
/* @__PURE__ */
|
|
64883
|
+
/* @__PURE__ */ jsx314("div", { className: "relative flex-1", children: /* @__PURE__ */ jsx314(
|
|
64453
64884
|
"div",
|
|
64454
64885
|
{
|
|
64455
64886
|
className: "absolute top-1/2 h-4 -translate-y-1/2 rounded-md bg-neutral-200/80 dark:bg-neutral-700/60",
|
|
@@ -64467,13 +64898,13 @@ import {
|
|
|
64467
64898
|
useCallback as useCallback43,
|
|
64468
64899
|
useContext as useContext8,
|
|
64469
64900
|
useEffect as useEffect72,
|
|
64470
|
-
useMemo as
|
|
64901
|
+
useMemo as useMemo61,
|
|
64471
64902
|
useRef as useRef69,
|
|
64472
64903
|
useState as useState80
|
|
64473
64904
|
} from "react";
|
|
64474
64905
|
import { createPortal as createPortal16 } from "react-dom";
|
|
64475
|
-
import
|
|
64476
|
-
import { jsx as
|
|
64906
|
+
import classNames124 from "classnames";
|
|
64907
|
+
import { jsx as jsx315, jsxs as jsxs193 } from "react/jsx-runtime";
|
|
64477
64908
|
var BottomSheetContext = createContext8(null);
|
|
64478
64909
|
var TRANSITION_MS2 = 260;
|
|
64479
64910
|
var renderSlot = (slot, controls) => {
|
|
@@ -64527,13 +64958,13 @@ var BottomSheetProvider = ({
|
|
|
64527
64958
|
},
|
|
64528
64959
|
[]
|
|
64529
64960
|
);
|
|
64530
|
-
const controls =
|
|
64961
|
+
const controls = useMemo61(
|
|
64531
64962
|
() => ({
|
|
64532
64963
|
dismiss: dismissSheet
|
|
64533
64964
|
}),
|
|
64534
64965
|
[dismissSheet]
|
|
64535
64966
|
);
|
|
64536
|
-
const contextValue =
|
|
64967
|
+
const contextValue = useMemo61(
|
|
64537
64968
|
() => ({
|
|
64538
64969
|
presentSheet,
|
|
64539
64970
|
dismissSheet,
|
|
@@ -64543,11 +64974,11 @@ var BottomSheetProvider = ({
|
|
|
64543
64974
|
[presentSheet, dismissSheet, sheet, isVisible]
|
|
64544
64975
|
);
|
|
64545
64976
|
const overlayNode = typeof document !== "undefined" && sheet ? createPortal16(
|
|
64546
|
-
/* @__PURE__ */
|
|
64547
|
-
/* @__PURE__ */
|
|
64977
|
+
/* @__PURE__ */ jsxs193("div", { className: "pointer-events-none fixed inset-0 z-[70] flex items-end justify-center", children: [
|
|
64978
|
+
/* @__PURE__ */ jsx315(
|
|
64548
64979
|
"div",
|
|
64549
64980
|
{
|
|
64550
|
-
className:
|
|
64981
|
+
className: classNames124(
|
|
64551
64982
|
"absolute inset-0 bg-neutral-900/40 transition-opacity duration-300",
|
|
64552
64983
|
isVisible ? "opacity-100 pointer-events-auto" : "opacity-0"
|
|
64553
64984
|
),
|
|
@@ -64557,24 +64988,24 @@ var BottomSheetProvider = ({
|
|
|
64557
64988
|
}
|
|
64558
64989
|
}
|
|
64559
64990
|
),
|
|
64560
|
-
/* @__PURE__ */
|
|
64991
|
+
/* @__PURE__ */ jsx315("div", { className: "relative w-full max-w-4xl px-4 pb-4 sm:px-8", children: /* @__PURE__ */ jsxs193(
|
|
64561
64992
|
"section",
|
|
64562
64993
|
{
|
|
64563
64994
|
role: "dialog",
|
|
64564
64995
|
"aria-modal": "true",
|
|
64565
|
-
className:
|
|
64996
|
+
className: classNames124(
|
|
64566
64997
|
"pointer-events-auto ml-auto flex w-full flex-col rounded-t-3xl border border-slate-200 bg-white shadow-2xl transition-transform duration-300 dark:border-slate-700 dark:bg-slate-900",
|
|
64567
64998
|
sheet.className,
|
|
64568
64999
|
isVisible ? "translate-y-0" : "translate-y-full"
|
|
64569
65000
|
),
|
|
64570
65001
|
style: { minHeight: "25vh", maxHeight: "85vh" },
|
|
64571
65002
|
children: [
|
|
64572
|
-
/* @__PURE__ */
|
|
64573
|
-
/* @__PURE__ */
|
|
64574
|
-
sheet.title && /* @__PURE__ */
|
|
64575
|
-
sheet.description && /* @__PURE__ */
|
|
65003
|
+
/* @__PURE__ */ jsxs193("header", { className: "flex items-start justify-between gap-3 border-b border-slate-200 px-6 py-4 dark:border-slate-800", children: [
|
|
65004
|
+
/* @__PURE__ */ jsxs193("div", { className: "space-y-1", children: [
|
|
65005
|
+
sheet.title && /* @__PURE__ */ jsx315("div", { className: "text-base font-semibold text-slate-900 dark:text-slate-100", children: sheet.title }),
|
|
65006
|
+
sheet.description && /* @__PURE__ */ jsx315("p", { className: "text-sm text-slate-500 dark:text-slate-300", children: sheet.description })
|
|
64576
65007
|
] }),
|
|
64577
|
-
(sheet.showCloseButton ?? true) && /* @__PURE__ */
|
|
65008
|
+
(sheet.showCloseButton ?? true) && /* @__PURE__ */ jsx315(
|
|
64578
65009
|
IconButton_default,
|
|
64579
65010
|
{
|
|
64580
65011
|
icon: "Close",
|
|
@@ -64586,15 +65017,15 @@ var BottomSheetProvider = ({
|
|
|
64586
65017
|
}
|
|
64587
65018
|
)
|
|
64588
65019
|
] }),
|
|
64589
|
-
/* @__PURE__ */
|
|
64590
|
-
sheet.actions && /* @__PURE__ */
|
|
65020
|
+
/* @__PURE__ */ jsx315("div", { className: "flex-1 overflow-y-auto px-6 py-4", children: renderSlot(sheet.content, controls) ?? /* @__PURE__ */ jsx315("p", { className: "text-sm text-slate-500", children: "No content provided." }) }),
|
|
65021
|
+
sheet.actions && /* @__PURE__ */ jsx315("div", { className: "flex flex-wrap items-center justify-end gap-3 border-t border-slate-200 px-6 py-4 dark:border-slate-800", children: renderSlot(sheet.actions, controls) })
|
|
64591
65022
|
]
|
|
64592
65023
|
}
|
|
64593
65024
|
) })
|
|
64594
65025
|
] }),
|
|
64595
65026
|
document.body
|
|
64596
65027
|
) : null;
|
|
64597
|
-
return /* @__PURE__ */
|
|
65028
|
+
return /* @__PURE__ */ jsxs193(BottomSheetContext.Provider, { value: contextValue, children: [
|
|
64598
65029
|
children,
|
|
64599
65030
|
overlayNode
|
|
64600
65031
|
] });
|
|
@@ -65234,8 +65665,8 @@ var SYSTEM_VARIABLES = [
|
|
|
65234
65665
|
];
|
|
65235
65666
|
|
|
65236
65667
|
// src/components/MetricBar.tsx
|
|
65237
|
-
import
|
|
65238
|
-
import { jsx as
|
|
65668
|
+
import classNames125 from "classnames";
|
|
65669
|
+
import { jsx as jsx316 } from "react/jsx-runtime";
|
|
65239
65670
|
var MetricBar = ({
|
|
65240
65671
|
label,
|
|
65241
65672
|
value,
|
|
@@ -65245,7 +65676,7 @@ var MetricBar = ({
|
|
|
65245
65676
|
size = "sm",
|
|
65246
65677
|
className,
|
|
65247
65678
|
...rest
|
|
65248
|
-
}) => /* @__PURE__ */
|
|
65679
|
+
}) => /* @__PURE__ */ jsx316(
|
|
65249
65680
|
Progress_default,
|
|
65250
65681
|
{
|
|
65251
65682
|
...rest,
|
|
@@ -65255,7 +65686,7 @@ var MetricBar = ({
|
|
|
65255
65686
|
formatValue: value !== void 0 ? () => String(value) : void 0,
|
|
65256
65687
|
size,
|
|
65257
65688
|
color: tone ?? color ?? "blue",
|
|
65258
|
-
className:
|
|
65689
|
+
className: classNames125("w-full", className)
|
|
65259
65690
|
}
|
|
65260
65691
|
);
|
|
65261
65692
|
MetricBar.displayName = "MetricBar";
|
|
@@ -65334,6 +65765,7 @@ export {
|
|
|
65334
65765
|
DEFAULT_LAYOUT_OPTIONS,
|
|
65335
65766
|
DEFAULT_SERIES_PALETTE,
|
|
65336
65767
|
DEFAULT_SURFACE_CORNER,
|
|
65768
|
+
DEFAULT_SURFACE_GUTTER,
|
|
65337
65769
|
DEFAULT_SURFACE_PADDING,
|
|
65338
65770
|
DEFAULT_SURFACE_TONE,
|
|
65339
65771
|
DEFAULT_TOAST_GAP_PX,
|
|
@@ -65484,6 +65916,7 @@ export {
|
|
|
65484
65916
|
STAT_PAGER_PLACEMENTS,
|
|
65485
65917
|
SURFACE_CORNERS,
|
|
65486
65918
|
SURFACE_GLASS_RIM,
|
|
65919
|
+
SURFACE_GUTTER_AXES,
|
|
65487
65920
|
SURFACE_PADDINGS,
|
|
65488
65921
|
SURFACE_TO_BUTTON_VARIANT,
|
|
65489
65922
|
SURFACE_VARIANTS,
|
|
@@ -65576,6 +66009,10 @@ export {
|
|
|
65576
66009
|
WorkflowRailSkeleton,
|
|
65577
66010
|
WorkflowStatusNode_default as WorkflowStatusNode,
|
|
65578
66011
|
WorkflowTracker_default as WorkflowTracker,
|
|
66012
|
+
WorkflowTrackerDetails_default as WorkflowTrackerDetails,
|
|
66013
|
+
WorkflowTrackerRail_default as WorkflowTrackerRail,
|
|
66014
|
+
WorkflowTrackerRollups_default as WorkflowTrackerRollups,
|
|
66015
|
+
WorkflowTrackerStepDetails_default as WorkflowTrackerStepDetails,
|
|
65579
66016
|
areaPathFromPoints,
|
|
65580
66017
|
bandAreaPath,
|
|
65581
66018
|
buildColumns,
|
|
@@ -65713,6 +66150,7 @@ export {
|
|
|
65713
66150
|
getStepperTonePalette,
|
|
65714
66151
|
getSurfaceCornerClass,
|
|
65715
66152
|
getSurfaceCornerRem,
|
|
66153
|
+
getSurfaceGutterClass,
|
|
65716
66154
|
getSurfacePaddingClass,
|
|
65717
66155
|
getSurfacePaddingClasses,
|
|
65718
66156
|
getSurfaceTextTokens,
|