@flamingo-stack/openframe-frontend-core 0.0.207 → 0.0.208-snapshot.20260526233118
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/{chunk-Z3GQGR5E.js → chunk-4TD7MDHA.js} +3178 -2088
- package/dist/chunk-4TD7MDHA.js.map +1 -0
- package/dist/chunk-4XLJWX2N.js +12 -0
- package/dist/chunk-4XLJWX2N.js.map +1 -0
- package/dist/chunk-VFKQMAUF.cjs +12 -0
- package/dist/chunk-VFKQMAUF.cjs.map +1 -0
- package/dist/{chunk-APM6KBPU.cjs → chunk-ZRSOPDAV.cjs} +1664 -574
- package/dist/chunk-ZRSOPDAV.cjs.map +1 -0
- package/dist/components/chat/embeddable-chat.d.ts +35 -2
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/case-study-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/customer-interview-card.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/dispatch.d.ts +9 -0
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/hooks/index.d.ts +3 -0
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-embedded-chat.d.ts +10 -169
- package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +85 -0
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +124 -0
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-unified-chat.d.ts +33 -0
- package/dist/components/chat/hooks/use-unified-chat.d.ts.map +1 -0
- package/dist/components/chat/index.cjs +8 -2
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +11 -5
- package/dist/components/chat/types/index.d.ts +1 -0
- package/dist/components/chat/types/index.d.ts.map +1 -1
- package/dist/components/chat/types/unified-chat-state.types.d.ts +185 -0
- package/dist/components/chat/types/unified-chat-state.types.d.ts.map +1 -0
- package/dist/components/features/index.cjs +3 -2
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +2 -1
- package/dist/components/index.cjs +26 -2
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +27 -3
- package/dist/components/loading/unified-skeleton.d.ts +2 -1
- package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +3 -2
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +2 -1
- package/dist/components/shared/delivery/delivery-lists.d.ts +16 -0
- package/dist/components/shared/delivery/delivery-lists.d.ts.map +1 -0
- package/dist/components/shared/delivery/delivery-table.d.ts +12 -0
- package/dist/components/shared/delivery/delivery-table.d.ts.map +1 -0
- package/dist/components/shared/delivery/index.d.ts +3 -0
- package/dist/components/shared/delivery/index.d.ts.map +1 -0
- package/dist/components/shared/dev-section/dev-section-page.d.ts +31 -0
- package/dist/components/shared/dev-section/dev-section-page.d.ts.map +1 -0
- package/dist/components/shared/dev-section/dev-section-view.d.ts +34 -0
- package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -0
- package/dist/components/shared/dev-section/index.d.ts +3 -0
- package/dist/components/shared/dev-section/index.d.ts.map +1 -0
- package/dist/components/shared/legal-document/index.d.ts +10 -0
- package/dist/components/shared/legal-document/index.d.ts.map +1 -0
- package/dist/components/shared/legal-document/legal-document-page.d.ts +66 -0
- package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -0
- package/dist/components/shared/legal-document/use-legal-docs.d.ts +40 -0
- package/dist/components/shared/legal-document/use-legal-docs.d.ts.map +1 -0
- package/dist/components/shared/product-release/index.d.ts +2 -1
- package/dist/components/shared/product-release/index.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts +11 -7
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/shared/roadmap/index.d.ts +18 -0
- package/dist/components/shared/roadmap/index.d.ts.map +1 -0
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +24 -0
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -0
- package/dist/components/shared/roadmap/roadmap-grid.d.ts +18 -0
- package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -0
- package/dist/components/shared/roadmap/use-roadmap-voting.d.ts +25 -0
- package/dist/components/shared/roadmap/use-roadmap-voting.d.ts.map +1 -0
- package/dist/components/ui/index.cjs +8 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +11 -5
- package/dist/components/ui/release-changelog-section.d.ts +13 -2
- package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
- package/dist/embed-shims/index.cjs +1 -6
- package/dist/embed-shims/index.cjs.map +1 -1
- package/dist/embed-shims/index.js +1 -6
- package/dist/embed-shims/index.js.map +1 -1
- package/dist/index.cjs +18 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +19 -3
- package/dist/types/delivery.d.ts +49 -0
- package/dist/types/delivery.d.ts.map +1 -0
- package/dist/types/index.cjs +13 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +12 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/dev-sections/index.d.ts +11 -0
- package/dist/utils/dev-sections/index.d.ts.map +1 -0
- package/dist/utils/dev-sections/openframe-dev-sections.d.ts +209 -0
- package/dist/utils/dev-sections/openframe-dev-sections.d.ts.map +1 -0
- package/dist/utils/index.cjs +82 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +81 -2
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/embeddable-chat.tsx +123 -8
- package/src/components/chat/entity-cards/blog-card.tsx +2 -2
- package/src/components/chat/entity-cards/case-study-card.tsx +9 -2
- package/src/components/chat/entity-cards/customer-interview-card.tsx +6 -2
- package/src/components/chat/entity-cards/dispatch.tsx +14 -0
- package/src/components/chat/entity-cards/investor-update-card.tsx +1 -1
- package/src/components/chat/entity-cards/onboarding-guide-card.tsx +2 -2
- package/src/components/chat/hooks/index.ts +9 -2
- package/src/components/chat/hooks/use-embedded-chat.ts +18 -1016
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +372 -0
- package/src/components/chat/hooks/use-sse-chat-adapter.ts +1058 -0
- package/src/components/chat/hooks/use-unified-chat.ts +171 -0
- package/src/components/chat/types/index.ts +1 -0
- package/src/components/chat/types/unified-chat-state.types.ts +215 -0
- package/src/components/index.ts +8 -0
- package/src/components/loading/card-skeleton.tsx +2 -2
- package/src/components/loading/unified-skeleton.tsx +6 -5
- package/src/components/shared/delivery/delivery-lists.tsx +199 -0
- package/src/components/shared/delivery/delivery-table.tsx +174 -0
- package/src/components/shared/delivery/index.ts +9 -0
- package/src/components/shared/dev-section/dev-section-page.tsx +72 -0
- package/src/components/shared/dev-section/dev-section-view.tsx +129 -0
- package/src/components/shared/dev-section/index.ts +2 -0
- package/src/components/shared/legal-document/index.ts +19 -0
- package/src/components/shared/legal-document/legal-document-page.tsx +178 -0
- package/src/components/shared/legal-document/use-legal-docs.ts +123 -0
- package/src/components/shared/product-release/index.ts +14 -3
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +1 -1
- package/src/components/shared/product-release/product-release-card.tsx +1 -1
- package/src/components/shared/product-release/release-detail-page.tsx +45 -7
- package/src/components/shared/roadmap/index.ts +23 -0
- package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +74 -0
- package/src/components/shared/roadmap/roadmap-grid.tsx +106 -0
- package/src/components/shared/roadmap/use-roadmap-voting.ts +163 -0
- package/src/components/ui/release-changelog-section.tsx +113 -32
- package/src/stories/EmbeddableChat.stories.tsx +186 -0
- package/src/types/delivery.ts +54 -0
- package/src/types/index.ts +1 -0
- package/src/utils/dev-sections/index.ts +17 -0
- package/src/utils/dev-sections/openframe-dev-sections.ts +148 -0
- package/src/utils/index.ts +6 -1
- package/dist/chunk-APM6KBPU.cjs.map +0 -1
- package/dist/chunk-Z3GQGR5E.js.map +0 -1
|
@@ -6213,7 +6213,7 @@ function ProductReleaseCard({
|
|
|
6213
6213
|
);
|
|
6214
6214
|
const innerLayout = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
6215
6215
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
6216
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative rounded-lg overflow-hidden w-full aspect-[
|
|
6216
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative rounded-lg overflow-hidden w-full aspect-[1200/630] bg-ods-bg", children: [
|
|
6217
6217
|
coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6218
6218
|
_chunkXL4V2PYGcjs.next_image_default,
|
|
6219
6219
|
{
|
|
@@ -6427,7 +6427,7 @@ function ProductReleaseCardSkeleton({ className, size = "lg" }) {
|
|
|
6427
6427
|
),
|
|
6428
6428
|
children: [
|
|
6429
6429
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
6430
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] aspect-[
|
|
6430
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] aspect-[1200/630] bg-ods-border rounded-lg flex-shrink-0" }),
|
|
6431
6431
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
6432
6432
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-3 mb-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-7 w-20 bg-ods-border rounded" }) }),
|
|
6433
6433
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-[60px] md:min-h-[72px] flex flex-col gap-1.5 justify-start mb-3", children: [
|
|
@@ -6544,7 +6544,7 @@ function BlogCardSkeleton({ size = "default" }) {
|
|
|
6544
6544
|
] });
|
|
6545
6545
|
}
|
|
6546
6546
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: "group bg-ods-card border border-ods-border rounded-lg overflow-hidden h-full flex flex-col animate-pulse", children: [
|
|
6547
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-[
|
|
6547
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-[1200/630] bg-ods-bg" }),
|
|
6548
6548
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-4 flex flex-col flex-grow space-y-3", children: [
|
|
6549
6549
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-3/4 bg-ods-bg rounded" }),
|
|
6550
6550
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-1/2 bg-ods-bg rounded" }),
|
|
@@ -6632,7 +6632,7 @@ function BlogCard({
|
|
|
6632
6632
|
className: "flex flex-col h-full focus:outline-none",
|
|
6633
6633
|
"aria-label": `Read article: ${post.title}`,
|
|
6634
6634
|
children: [
|
|
6635
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative w-full aspect-[
|
|
6635
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative w-full aspect-[1200/630] overflow-hidden bg-ods-bg", children: displayImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6636
6636
|
_chunkXL4V2PYGcjs.next_image_default,
|
|
6637
6637
|
{
|
|
6638
6638
|
src: displayImage,
|
|
@@ -6723,7 +6723,7 @@ function CaseStudyCardSkeleton({ size = "default" }) {
|
|
|
6723
6723
|
] });
|
|
6724
6724
|
}
|
|
6725
6725
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-lg overflow-hidden p-6 flex flex-col gap-6 animate-pulse", children: [
|
|
6726
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "
|
|
6726
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full aspect-[1200/630] rounded-sm bg-ods-bg" }),
|
|
6727
6727
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "h-[72px] flex flex-col gap-2", children: [
|
|
6728
6728
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-3/4 bg-ods-bg rounded" }),
|
|
6729
6729
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-1/2 bg-ods-bg rounded" })
|
|
@@ -6758,7 +6758,7 @@ function CaseStudyCard({ study, href, target, rel, placeholderUrl, size = "defau
|
|
|
6758
6758
|
] });
|
|
6759
6759
|
}
|
|
6760
6760
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target, rel, className: _chunk664KA5FIcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: "bg-ods-card border border-ods-border hover:border-ods-accent transition-colors p-6 flex flex-col gap-6 overflow-hidden", children: [
|
|
6761
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative
|
|
6761
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative w-full aspect-[1200/630] rounded-sm overflow-hidden bg-ods-bg shrink-0", children: coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6762
6762
|
_chunkXL4V2PYGcjs.next_image_default,
|
|
6763
6763
|
{
|
|
6764
6764
|
src: coverImage,
|
|
@@ -6830,7 +6830,7 @@ function CustomerInterviewCardSkeleton({ size = "default" }) {
|
|
|
6830
6830
|
] });
|
|
6831
6831
|
}
|
|
6832
6832
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-lg overflow-hidden p-6 flex flex-col gap-6 animate-pulse", children: [
|
|
6833
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "
|
|
6833
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full aspect-[1200/630] rounded-sm bg-ods-bg" }),
|
|
6834
6834
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
6835
6835
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-3/4 bg-ods-bg rounded" }),
|
|
6836
6836
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-1/2 bg-ods-bg rounded" })
|
|
@@ -6873,7 +6873,7 @@ function CustomerInterviewCard({ interview, href, target, rel, placeholderUrl, s
|
|
|
6873
6873
|
] });
|
|
6874
6874
|
}
|
|
6875
6875
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target, rel, className: _chunk664KA5FIcjs.cn.call(void 0, "block h-full", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: "bg-ods-card border border-ods-border hover:border-ods-accent transition-colors p-6 flex flex-col gap-6 overflow-hidden", children: [
|
|
6876
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "
|
|
6876
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full aspect-[1200/630] rounded-sm overflow-hidden bg-ods-bg shrink-0 relative", children: thumbnailUrl ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
6877
6877
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6878
6878
|
"img",
|
|
6879
6879
|
{
|
|
@@ -6952,7 +6952,7 @@ function InvestorUpdateCardSkeleton({ size = "default" }) {
|
|
|
6952
6952
|
] });
|
|
6953
6953
|
}
|
|
6954
6954
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-lg overflow-hidden h-full animate-pulse", children: [
|
|
6955
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-[
|
|
6955
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-[1200/630] bg-ods-bg" }),
|
|
6956
6956
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-4 space-y-3", children: [
|
|
6957
6957
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-3/4 bg-ods-bg rounded" }),
|
|
6958
6958
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-full bg-ods-bg/60 rounded" }),
|
|
@@ -7026,7 +7026,7 @@ function OnboardingGuideCardSkeleton({ size = "default" }) {
|
|
|
7026
7026
|
if (size === "catalog") {
|
|
7027
7027
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden flex flex-col p-6 gap-4 animate-pulse", children: [
|
|
7028
7028
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
7029
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] aspect-[
|
|
7029
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] aspect-[1200/630] bg-ods-border rounded-lg flex-shrink-0" }),
|
|
7030
7030
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
7031
7031
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-[60px] md:min-h-[72px] flex flex-col gap-1.5 justify-start mb-3", children: [
|
|
7032
7032
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[25px] md:h-[30px] w-3/4 bg-ods-border rounded" }),
|
|
@@ -7110,7 +7110,7 @@ function OnboardingGuideCard({ guide, href, target, rel, placeholderUrl, size =
|
|
|
7110
7110
|
"aria-label": `Open ${guide.title}`,
|
|
7111
7111
|
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col p-6 gap-4", children: [
|
|
7112
7112
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
7113
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative rounded-lg overflow-hidden w-full aspect-[
|
|
7113
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative rounded-lg overflow-hidden w-full aspect-[1200/630] bg-ods-bg", children: [
|
|
7114
7114
|
coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7115
7115
|
_chunkXL4V2PYGcjs.next_image_default,
|
|
7116
7116
|
{
|
|
@@ -10263,6 +10263,159 @@ function clickupTaskUrl(externalId) {
|
|
|
10263
10263
|
return `${CLICKUP_APP_BASE}/t/${externalId}`;
|
|
10264
10264
|
}
|
|
10265
10265
|
|
|
10266
|
+
// src/utils/dev-sections/openframe-dev-sections.ts
|
|
10267
|
+
|
|
10268
|
+
|
|
10269
|
+
// src/types/announcement.ts
|
|
10270
|
+
var AVAILABLE_SVG_ICONS = [
|
|
10271
|
+
// OpenFrame Logo Options
|
|
10272
|
+
{ name: "openframe-logo", label: "OpenFrame Logo", component: null },
|
|
10273
|
+
// Platform Logos
|
|
10274
|
+
{ name: "openmsp-logo", label: "OpenMSP Logo", component: null },
|
|
10275
|
+
{ name: "flamingo-logo", label: "Flamingo Logo", component: null },
|
|
10276
|
+
// Lucide Icons
|
|
10277
|
+
{ name: "megaphone", label: "Megaphone", component: null },
|
|
10278
|
+
{ name: "bell", label: "Bell", component: null },
|
|
10279
|
+
{ name: "info", label: "Information", component: null },
|
|
10280
|
+
{ name: "star", label: "Star", component: null },
|
|
10281
|
+
{ name: "rocket", label: "Rocket", component: null },
|
|
10282
|
+
{ name: "package", label: "Package", component: null }
|
|
10283
|
+
];
|
|
10284
|
+
|
|
10285
|
+
// src/types/product-release.ts
|
|
10286
|
+
var releaseTypeOptions = [
|
|
10287
|
+
{ value: "major", label: "Major Release", description: "Breaking changes, new architecture", color: "red" },
|
|
10288
|
+
{ value: "minor", label: "Minor Release", description: "New features, backward compatible", color: "blue" },
|
|
10289
|
+
{ value: "patch", label: "Patch Release", description: "Bug fixes only", color: "green" },
|
|
10290
|
+
{ value: "beta", label: "Beta Release", description: "Pre-release testing version", color: "yellow" },
|
|
10291
|
+
{ value: "alpha", label: "Alpha Release", description: "Early testing version", color: "orange" }
|
|
10292
|
+
];
|
|
10293
|
+
var releaseStatusOptions = [
|
|
10294
|
+
{ value: "alpha", label: "Alpha", description: "Early development, unstable", color: "orange" },
|
|
10295
|
+
{ value: "beta", label: "Beta", description: "Feature complete, testing", color: "yellow" },
|
|
10296
|
+
{ value: "stable", label: "Stable", description: "Production ready", color: "green" },
|
|
10297
|
+
{ value: "deprecated", label: "Deprecated", description: "No longer supported", color: "gray" }
|
|
10298
|
+
];
|
|
10299
|
+
var changelogLabels = {
|
|
10300
|
+
features_added: "Features Added",
|
|
10301
|
+
bugs_fixed: "Bugs Fixed",
|
|
10302
|
+
improvements: "Improvements",
|
|
10303
|
+
breaking_changes: "Breaking Changes"
|
|
10304
|
+
};
|
|
10305
|
+
var SEMVER_REGEX = /^\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/;
|
|
10306
|
+
|
|
10307
|
+
// src/types/delivery.ts
|
|
10308
|
+
var TASK_TYPE_LABELS = {
|
|
10309
|
+
Request: "ENHANCEMENT",
|
|
10310
|
+
Bug: "BUG-FIX"
|
|
10311
|
+
};
|
|
10312
|
+
var TASK_TYPE_TEXT_COLORS = {
|
|
10313
|
+
Request: "",
|
|
10314
|
+
// Default white/grey
|
|
10315
|
+
Bug: "text-[var(--ods-attention-red-error)]"
|
|
10316
|
+
};
|
|
10317
|
+
|
|
10318
|
+
// src/types/tmcg.ts
|
|
10319
|
+
var TMCG_ROLES = {
|
|
10320
|
+
FOUNDER: "founder",
|
|
10321
|
+
ORGANIZER: "organizer",
|
|
10322
|
+
MEMBER: "member",
|
|
10323
|
+
CONTRIBUTOR: "contributor",
|
|
10324
|
+
SPEAKER: "speaker",
|
|
10325
|
+
MENTOR: "mentor"
|
|
10326
|
+
};
|
|
10327
|
+
var TMCG_ROLE_DISPLAY_NAMES = {
|
|
10328
|
+
[TMCG_ROLES.FOUNDER]: "Founder",
|
|
10329
|
+
[TMCG_ROLES.ORGANIZER]: "Organizer",
|
|
10330
|
+
[TMCG_ROLES.MEMBER]: "Member",
|
|
10331
|
+
[TMCG_ROLES.CONTRIBUTOR]: "Contributor",
|
|
10332
|
+
[TMCG_ROLES.SPEAKER]: "Speaker",
|
|
10333
|
+
[TMCG_ROLES.MENTOR]: "Mentor"
|
|
10334
|
+
};
|
|
10335
|
+
var TMCG_SOCIAL_PLATFORMS = {
|
|
10336
|
+
linkedin: "LinkedIn",
|
|
10337
|
+
twitter: "Twitter",
|
|
10338
|
+
github: "GitHub",
|
|
10339
|
+
website: "Website",
|
|
10340
|
+
youtube: "YouTube",
|
|
10341
|
+
instagram: "Instagram",
|
|
10342
|
+
facebook: "Facebook",
|
|
10343
|
+
discord: "Discord",
|
|
10344
|
+
telegram: "Telegram",
|
|
10345
|
+
slack: "Slack"
|
|
10346
|
+
};
|
|
10347
|
+
|
|
10348
|
+
// src/utils/dev-sections/openframe-dev-sections.ts
|
|
10349
|
+
var ROADMAP_STATUS_OPTIONS = [
|
|
10350
|
+
{ value: "all", label: "All" },
|
|
10351
|
+
{ value: "completed", label: "Completed" },
|
|
10352
|
+
{ value: "in_progress", label: "In Progress" }
|
|
10353
|
+
];
|
|
10354
|
+
var DELIVERY_TASK_TYPE_OPTIONS = [
|
|
10355
|
+
{ value: "all", label: "All" },
|
|
10356
|
+
{ value: "Bug", label: "Bug-fix" },
|
|
10357
|
+
{ value: "Request", label: "Enhancement" }
|
|
10358
|
+
];
|
|
10359
|
+
var OPENFRAME_DEV_SECTIONS = {
|
|
10360
|
+
roadmap: {
|
|
10361
|
+
href: "/roadmap",
|
|
10362
|
+
icon: _lucidereact.Map,
|
|
10363
|
+
navigator: {
|
|
10364
|
+
title: "Development Roadmap",
|
|
10365
|
+
description: "What we're building next \u2014 vote on upcoming features."
|
|
10366
|
+
},
|
|
10367
|
+
hero: {
|
|
10368
|
+
title: "Development Roadmap",
|
|
10369
|
+
description: "See what's in flight, what's planned, and what's up for community vote. The entire OpenFrame roadmap is public."
|
|
10370
|
+
},
|
|
10371
|
+
search: { placeholder: "Search roadmap items...", paramKey: "search" },
|
|
10372
|
+
filter: { label: "Status", paramKey: "status", defaultValue: "all", options: ROADMAP_STATUS_OPTIONS }
|
|
10373
|
+
},
|
|
10374
|
+
delivery: {
|
|
10375
|
+
href: "/bug-fixes-and-enhancements",
|
|
10376
|
+
icon: _lucidereact.Wrench,
|
|
10377
|
+
navigator: {
|
|
10378
|
+
title: "Bug-fixes & Enhancements",
|
|
10379
|
+
description: "Recently shipped fixes and improvements."
|
|
10380
|
+
},
|
|
10381
|
+
hero: {
|
|
10382
|
+
title: "Bug-fixes & Enhancements",
|
|
10383
|
+
description: "A running log of fixes and improvements shipping into OpenFrame \u2014 recently completed and actively in progress."
|
|
10384
|
+
},
|
|
10385
|
+
search: { placeholder: "Search tasks...", paramKey: "search" },
|
|
10386
|
+
filter: { label: "Type", paramKey: "task_type", defaultValue: "all", options: DELIVERY_TASK_TYPE_OPTIONS }
|
|
10387
|
+
},
|
|
10388
|
+
releases: {
|
|
10389
|
+
href: "/releases",
|
|
10390
|
+
icon: _lucidereact.Rocket,
|
|
10391
|
+
navigator: {
|
|
10392
|
+
title: "Product Releases",
|
|
10393
|
+
description: "Version history and release notes."
|
|
10394
|
+
},
|
|
10395
|
+
hero: {
|
|
10396
|
+
title: "Product Releases",
|
|
10397
|
+
description: "Version notes, change summaries, and stability tier (alpha / beta / stable) for every OpenFrame release."
|
|
10398
|
+
},
|
|
10399
|
+
search: { placeholder: "Search releases...", paramKey: "search" },
|
|
10400
|
+
filter: { label: "Status", paramKey: "release_status", defaultValue: "all", options: releaseStatusOptions }
|
|
10401
|
+
},
|
|
10402
|
+
onboarding: {
|
|
10403
|
+
href: "/onboarding-guides",
|
|
10404
|
+
icon: _lucidereact.GraduationCap,
|
|
10405
|
+
navigator: {
|
|
10406
|
+
title: "Onboarding Guides",
|
|
10407
|
+
description: "Step-by-step product walkthroughs."
|
|
10408
|
+
},
|
|
10409
|
+
// `hero` / `search` / `filter` are intentionally inert here —
|
|
10410
|
+
// /onboarding-guides is owned by OnboardingGuidesCatalogView, not
|
|
10411
|
+
// DevSectionView. This entry exists ONLY to drive the homepage
|
|
10412
|
+
// navigator card so all 4 cards stay in one registry.
|
|
10413
|
+
hero: { title: "", description: "" },
|
|
10414
|
+
search: null,
|
|
10415
|
+
filter: null
|
|
10416
|
+
}
|
|
10417
|
+
};
|
|
10418
|
+
|
|
10266
10419
|
// src/components/providers/dynamic-theme-provider.tsx
|
|
10267
10420
|
|
|
10268
10421
|
|
|
@@ -22684,13 +22837,14 @@ var MediaSkeleton = {
|
|
|
22684
22837
|
);
|
|
22685
22838
|
},
|
|
22686
22839
|
/**
|
|
22687
|
-
* Card image skeleton (
|
|
22840
|
+
* Card image skeleton (1200×630 OG aspect — matches entity-cards default
|
|
22841
|
+
* so loading state never causes a height shift when card data arrives)
|
|
22688
22842
|
*/
|
|
22689
22843
|
CardImage: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22690
22844
|
UnifiedSkeleton,
|
|
22691
22845
|
{
|
|
22692
22846
|
variant: "default",
|
|
22693
|
-
className: _chunk664KA5FIcjs.cn.call(void 0, "aspect-[
|
|
22847
|
+
className: _chunk664KA5FIcjs.cn.call(void 0, "aspect-[1200/630] w-full", className),
|
|
22694
22848
|
"aria-label": "Loading image",
|
|
22695
22849
|
...props
|
|
22696
22850
|
}
|
|
@@ -22784,7 +22938,7 @@ function VendorCardContent({ showActions, showMetadata }) {
|
|
|
22784
22938
|
}
|
|
22785
22939
|
function BlogCardContent({ showActions, showMetadata }) {
|
|
22786
22940
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
22787
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "blog-card-image-container relative w-full aspect-[
|
|
22941
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "blog-card-image-container relative w-full aspect-[1200/630] overflow-hidden bg-[#161616]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.CardImage, {}) }),
|
|
22788
22942
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-4 flex flex-col flex-grow", children: [
|
|
22789
22943
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex items-center min-h-[50.4px] md:min-h-[56px] lg:min-h-[61.6px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
|
|
22790
22944
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-full" }),
|
|
@@ -24530,6 +24684,7 @@ function OnboardingWalkthrough({
|
|
|
24530
24684
|
|
|
24531
24685
|
// src/components/shared/product-release/release-detail-page.tsx
|
|
24532
24686
|
_chunkWBR7H6E3cjs.init_next_link.call(void 0, );
|
|
24687
|
+
_chunkG7UE6RKVcjs.init_next_navigation.call(void 0, );
|
|
24533
24688
|
|
|
24534
24689
|
|
|
24535
24690
|
// src/components/layout/article-detail-layout.tsx
|
|
@@ -24547,10 +24702,36 @@ function ArticleDetailLayout({ children, schemas }) {
|
|
|
24547
24702
|
] });
|
|
24548
24703
|
}
|
|
24549
24704
|
|
|
24705
|
+
// src/components/layout/back-button.tsx
|
|
24706
|
+
_chunk664KA5FIcjs.init_cn.call(void 0, );
|
|
24707
|
+
|
|
24708
|
+
function BackButton({ label = "Back", className, type = "button", ...props }) {
|
|
24709
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24710
|
+
"button",
|
|
24711
|
+
{
|
|
24712
|
+
type,
|
|
24713
|
+
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
24714
|
+
"group inline-flex items-center justify-center self-start rounded-md",
|
|
24715
|
+
"gap-[var(--spacing-system-xsf)] py-[var(--spacing-system-sf)]",
|
|
24716
|
+
"text-ods-text-secondary hover:text-ods-text-primary",
|
|
24717
|
+
"transition-colors duration-200",
|
|
24718
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
|
|
24719
|
+
className
|
|
24720
|
+
),
|
|
24721
|
+
...props,
|
|
24722
|
+
children: [
|
|
24723
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02LeftIcon, { className: "size-6 shrink-0" }),
|
|
24724
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4", children: label })
|
|
24725
|
+
]
|
|
24726
|
+
}
|
|
24727
|
+
);
|
|
24728
|
+
}
|
|
24729
|
+
|
|
24550
24730
|
// src/components/ui/release-changelog-section.tsx
|
|
24551
24731
|
|
|
24552
24732
|
|
|
24553
24733
|
|
|
24734
|
+
var PREVIEW_COLLAPSED_HEIGHT = 120;
|
|
24554
24735
|
function ReleaseChangelogSection({
|
|
24555
24736
|
title,
|
|
24556
24737
|
entries,
|
|
@@ -24558,11 +24739,19 @@ function ReleaseChangelogSection({
|
|
|
24558
24739
|
hideTitle = false,
|
|
24559
24740
|
collapsible = false,
|
|
24560
24741
|
defaultCollapsed = true,
|
|
24742
|
+
previewFirst = false,
|
|
24561
24743
|
icon,
|
|
24562
24744
|
SimpleMarkdownRenderer: SimpleMarkdownRenderer2
|
|
24563
24745
|
}) {
|
|
24564
24746
|
const [collapsed, setCollapsed] = _react.useState.call(void 0, collapsible ? defaultCollapsed : false);
|
|
24747
|
+
const [previewExpanded, setPreviewExpanded] = _react.useState.call(void 0, false);
|
|
24748
|
+
const previewContentRef = _react.useRef.call(void 0, null);
|
|
24749
|
+
_react.useEffect.call(void 0, () => {
|
|
24750
|
+
setPreviewExpanded(false);
|
|
24751
|
+
}, [entries.length]);
|
|
24565
24752
|
if (!entries || entries.length === 0) return null;
|
|
24753
|
+
const inPreviewMode = previewFirst && !collapsible;
|
|
24754
|
+
const previewNeedsFade = inPreviewMode && entries.length > 1;
|
|
24566
24755
|
const showEntries = !collapsible || !collapsed;
|
|
24567
24756
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
24568
24757
|
!hideTitle && (collapsible ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -24590,25 +24779,67 @@ function ReleaseChangelogSection({
|
|
|
24590
24779
|
title,
|
|
24591
24780
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Badge, { variant: "secondary", className: "ml-2", children: entries.length })
|
|
24592
24781
|
] })),
|
|
24593
|
-
showEntries &&
|
|
24594
|
-
/*
|
|
24595
|
-
|
|
24596
|
-
|
|
24597
|
-
|
|
24598
|
-
|
|
24599
|
-
(
|
|
24600
|
-
|
|
24601
|
-
|
|
24602
|
-
|
|
24603
|
-
|
|
24604
|
-
|
|
24605
|
-
|
|
24606
|
-
|
|
24607
|
-
|
|
24608
|
-
|
|
24609
|
-
|
|
24782
|
+
showEntries && (inPreviewMode ? (
|
|
24783
|
+
/* Preview-first mode: render the list in a height-clamped +
|
|
24784
|
+
mask-faded wrapper. The CSS mask creates the soft fade-out
|
|
24785
|
+
at the bottom of the collapsed region; the inline maxHeight
|
|
24786
|
+
+ transition animate the open/close. When `previewExpanded`
|
|
24787
|
+
flips, the wrapper falls back to its natural scrollHeight
|
|
24788
|
+
(or 2000px on first render before the ref measures). */
|
|
24789
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative", children: [
|
|
24790
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24791
|
+
"div",
|
|
24792
|
+
{
|
|
24793
|
+
ref: previewContentRef,
|
|
24794
|
+
className: "overflow-hidden transition-[max-height] duration-500",
|
|
24795
|
+
style: {
|
|
24796
|
+
transitionTimingFunction: "cubic-bezier(0.33, 1, 0.68, 1)",
|
|
24797
|
+
maxHeight: previewExpanded || !previewNeedsFade ? _nullishCoalesce(_optionalChain([previewContentRef, 'access', _490 => _490.current, 'optionalAccess', _491 => _491.scrollHeight]), () => ( 2e3)) : PREVIEW_COLLAPSED_HEIGHT,
|
|
24798
|
+
...previewNeedsFade && !previewExpanded ? {
|
|
24799
|
+
maskImage: "linear-gradient(to bottom, black 30%, transparent 100%)",
|
|
24800
|
+
WebkitMaskImage: "linear-gradient(to bottom, black 30%, transparent 100%)"
|
|
24801
|
+
} : {}
|
|
24802
|
+
},
|
|
24803
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChangelogEntryList, { entries, SimpleMarkdownRenderer: SimpleMarkdownRenderer2 })
|
|
24804
|
+
}
|
|
24805
|
+
),
|
|
24806
|
+
previewNeedsFade && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24807
|
+
"button",
|
|
24808
|
+
{
|
|
24809
|
+
type: "button",
|
|
24810
|
+
onClick: () => setPreviewExpanded(!previewExpanded),
|
|
24811
|
+
className: "mt-4 flex items-center gap-1.5 text-sm text-ods-text-secondary hover:text-ods-accent transition-colors duration-200",
|
|
24812
|
+
children: [
|
|
24813
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: previewExpanded ? "Show less" : `Show ${entries.length - 1} more` }),
|
|
24814
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24815
|
+
_lucidereact.ChevronDown,
|
|
24816
|
+
{
|
|
24817
|
+
className: `w-3.5 h-3.5 transition-transform duration-300 ${previewExpanded ? "rotate-180" : ""}`
|
|
24818
|
+
}
|
|
24819
|
+
)
|
|
24820
|
+
]
|
|
24821
|
+
}
|
|
24822
|
+
)
|
|
24823
|
+
] })
|
|
24824
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChangelogEntryList, { entries, SimpleMarkdownRenderer: SimpleMarkdownRenderer2 }))
|
|
24610
24825
|
] });
|
|
24611
24826
|
}
|
|
24827
|
+
function ChangelogEntryList({
|
|
24828
|
+
entries,
|
|
24829
|
+
SimpleMarkdownRenderer: SimpleMarkdownRenderer2
|
|
24830
|
+
}) {
|
|
24831
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "space-y-6", children: entries.map((entry, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { className: "border-l-2 border-ods-border pl-4 ml-0", children: [
|
|
24832
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 text-ods-text-primary mb-2", children: entry.title }),
|
|
24833
|
+
entry.description && /* Entry description — body text matches the main release
|
|
24834
|
+
summary at the SAME 14/18px responsive `text-h4` scale.
|
|
24835
|
+
The `SimpleMarkdownRenderer` forces its own `<p>` typography
|
|
24836
|
+
which would override `text-h4` on `lg+` viewports and
|
|
24837
|
+
inflate the changelog body to 20px. The `[&_p]:!` overrides
|
|
24838
|
+
pin every descendant `<p>` back to the h4 responsive tokens
|
|
24839
|
+
so the breakpoints stay aligned with the rest of the page. */
|
|
24840
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-h4 text-ods-text-primary [&_p]:!text-[length:var(--font-size-h4-body)] [&_p]:!leading-[var(--font-line-space-h4-body)] [&_p]:!font-medium", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SimpleMarkdownRenderer2, { content: entry.description }) })
|
|
24841
|
+
] }, index)) });
|
|
24842
|
+
}
|
|
24612
24843
|
|
|
24613
24844
|
// src/components/shared/product-release/release-detail-page.tsx
|
|
24614
24845
|
|
|
@@ -24639,7 +24870,7 @@ var SecondaryAction = ({ action }) => {
|
|
|
24639
24870
|
e.preventDefault();
|
|
24640
24871
|
return;
|
|
24641
24872
|
}
|
|
24642
|
-
_optionalChain([action, 'access',
|
|
24873
|
+
_optionalChain([action, 'access', _492 => _492.onClick, 'optionalCall', _493 => _493()]);
|
|
24643
24874
|
},
|
|
24644
24875
|
[action]
|
|
24645
24876
|
);
|
|
@@ -24680,13 +24911,13 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
24680
24911
|
const activate = _react.useCallback.call(void 0, () => {
|
|
24681
24912
|
if (item.disabled) return;
|
|
24682
24913
|
if (item.type === "checkbox") {
|
|
24683
|
-
_optionalChain([item, 'access',
|
|
24684
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
24914
|
+
_optionalChain([item, 'access', _494 => _494.onClick, 'optionalCall', _495 => _495()]);
|
|
24915
|
+
_optionalChain([onItemClick, 'optionalCall', _496 => _496(item)]);
|
|
24685
24916
|
return;
|
|
24686
24917
|
}
|
|
24687
24918
|
if (item.type === "submenu") return;
|
|
24688
|
-
_optionalChain([item, 'access',
|
|
24689
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
24919
|
+
_optionalChain([item, 'access', _497 => _497.onClick, 'optionalCall', _498 => _498()]);
|
|
24920
|
+
_optionalChain([onItemClick, 'optionalCall', _499 => _499(item)]);
|
|
24690
24921
|
}, [item, onItemClick]);
|
|
24691
24922
|
const handleClick = _react.useCallback.call(void 0,
|
|
24692
24923
|
(e) => {
|
|
@@ -24712,8 +24943,8 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
24712
24943
|
e.stopPropagation();
|
|
24713
24944
|
return;
|
|
24714
24945
|
}
|
|
24715
|
-
_optionalChain([item, 'access',
|
|
24716
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
24946
|
+
_optionalChain([item, 'access', _500 => _500.onClick, 'optionalCall', _501 => _501()]);
|
|
24947
|
+
_optionalChain([onItemClick, 'optionalCall', _502 => _502(item)]);
|
|
24717
24948
|
},
|
|
24718
24949
|
[item, onItemClick]
|
|
24719
24950
|
);
|
|
@@ -24868,7 +25099,7 @@ var ActionsMenuDropdown = ({
|
|
|
24868
25099
|
const [open, setOpen] = _react.useState.call(void 0, false);
|
|
24869
25100
|
const handleItemClick = _react.useCallback.call(void 0,
|
|
24870
25101
|
(item) => {
|
|
24871
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
25102
|
+
_optionalChain([onItemClick, 'optionalCall', _503 => _503(item)]);
|
|
24872
25103
|
if (item.type !== "checkbox" && item.type !== "submenu") {
|
|
24873
25104
|
setOpen(false);
|
|
24874
25105
|
}
|
|
@@ -25039,7 +25270,7 @@ function IconButtonsVariant({
|
|
|
25039
25270
|
}) {
|
|
25040
25271
|
const desktopActions = actions.filter((a) => !a.showOnlyMobile);
|
|
25041
25272
|
const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
|
|
25042
|
-
const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access',
|
|
25273
|
+
const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _504 => _504[0], 'access', _505 => _505.submenu, 'optionalAccess', _506 => _506.length]);
|
|
25043
25274
|
const singleAction = isSingleAction ? actions[0] : null;
|
|
25044
25275
|
const useSingleActionMobile = isSingleAction && !hasMenuActions;
|
|
25045
25276
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -25111,31 +25342,6 @@ function usePageActionsBottomPadding(variant) {
|
|
|
25111
25342
|
return variant === "primary-buttons" || variant === "menu-primary" ? "pb-40 md:pb-0" : "";
|
|
25112
25343
|
}
|
|
25113
25344
|
|
|
25114
|
-
// src/components/layout/back-button.tsx
|
|
25115
|
-
_chunk664KA5FIcjs.init_cn.call(void 0, );
|
|
25116
|
-
|
|
25117
|
-
function BackButton({ label = "Back", className, type = "button", ...props }) {
|
|
25118
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
25119
|
-
"button",
|
|
25120
|
-
{
|
|
25121
|
-
type,
|
|
25122
|
-
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
25123
|
-
"group inline-flex items-center justify-center self-start rounded-md",
|
|
25124
|
-
"gap-[var(--spacing-system-xsf)] py-[var(--spacing-system-sf)]",
|
|
25125
|
-
"text-ods-text-secondary hover:text-ods-text-primary",
|
|
25126
|
-
"transition-colors duration-200",
|
|
25127
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
|
|
25128
|
-
className
|
|
25129
|
-
),
|
|
25130
|
-
...props,
|
|
25131
|
-
children: [
|
|
25132
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02LeftIcon, { className: "size-6 shrink-0" }),
|
|
25133
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4", children: label })
|
|
25134
|
-
]
|
|
25135
|
-
}
|
|
25136
|
-
);
|
|
25137
|
-
}
|
|
25138
|
-
|
|
25139
25345
|
// src/components/layout/page-container.tsx
|
|
25140
25346
|
|
|
25141
25347
|
function isAdvancedProps(props) {
|
|
@@ -25384,12 +25590,17 @@ function ReleaseDetailPage({
|
|
|
25384
25590
|
VideoSection,
|
|
25385
25591
|
VideoDisplaySection,
|
|
25386
25592
|
roadmapApiEndpoint = "/api/roadmap",
|
|
25387
|
-
deliveryApiEndpoint = "/api/delivery"
|
|
25593
|
+
deliveryApiEndpoint = "/api/delivery",
|
|
25594
|
+
backButton
|
|
25388
25595
|
}) {
|
|
25596
|
+
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
25389
25597
|
const { data: fetchedRelease, error, isLoading } = useRelease(initialData ? void 0 : slug);
|
|
25390
25598
|
const release = initialData || fetchedRelease;
|
|
25391
25599
|
const [galleryOpen, setGalleryOpen] = _react.useState.call(void 0, false);
|
|
25392
25600
|
const [galleryIndex, setGalleryIndex] = _react.useState.call(void 0, 0);
|
|
25601
|
+
const showBackButton = backButton !== false;
|
|
25602
|
+
const backLabel = _nullishCoalesce((backButton ? backButton.label : void 0), () => ( "Back to home"));
|
|
25603
|
+
const backHref = _nullishCoalesce((backButton ? backButton.href : void 0), () => ( "/"));
|
|
25393
25604
|
const [roadmapTasks, setRoadmapTasks] = _react.useState.call(void 0, []);
|
|
25394
25605
|
const [deliveryData, setDeliveryData] = _react.useState.call(void 0, null);
|
|
25395
25606
|
const [roadmapLoading, setRoadmapLoading] = _react.useState.call(void 0, false);
|
|
@@ -25458,6 +25669,14 @@ function ReleaseDetailPage({
|
|
|
25458
25669
|
const bugFixed = release.bugs_fixed;
|
|
25459
25670
|
const improvements = release.improvements;
|
|
25460
25671
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ArticleDetailLayout, { children: [
|
|
25672
|
+
showBackButton && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25673
|
+
BackButton,
|
|
25674
|
+
{
|
|
25675
|
+
label: backLabel,
|
|
25676
|
+
onClick: () => router.push(backHref),
|
|
25677
|
+
className: "hidden md:inline-flex mb-4"
|
|
25678
|
+
}
|
|
25679
|
+
),
|
|
25461
25680
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6 md:space-y-8", children: [
|
|
25462
25681
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col md:flex-row md:items-end gap-4 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col gap-2", children: [
|
|
25463
25682
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary", children: releaseTitle }),
|
|
@@ -25466,14 +25685,14 @@ function ReleaseDetailPage({
|
|
|
25466
25685
|
releaseVersion
|
|
25467
25686
|
] })
|
|
25468
25687
|
] }) }),
|
|
25469
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess',
|
|
25688
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _507 => _507.map, 'call', _508 => _508((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25470
25689
|
StatusBadge,
|
|
25471
25690
|
{
|
|
25472
|
-
text: (tag.name || _optionalChain([tag, 'access',
|
|
25691
|
+
text: (tag.name || _optionalChain([tag, 'access', _509 => _509.blog_tags, 'optionalAccess', _510 => _510.name]) || "").toUpperCase(),
|
|
25473
25692
|
variant: "card",
|
|
25474
25693
|
className: "bg-ods-card border border-ods-border"
|
|
25475
25694
|
},
|
|
25476
|
-
tag.id || _optionalChain([tag, 'access',
|
|
25695
|
+
tag.id || _optionalChain([tag, 'access', _511 => _511.blog_tags, 'optionalAccess', _512 => _512.id])
|
|
25477
25696
|
))]) }),
|
|
25478
25697
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
|
|
25479
25698
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
|
|
@@ -25492,15 +25711,15 @@ function ReleaseDetailPage({
|
|
|
25492
25711
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25493
25712
|
SquareAvatar,
|
|
25494
25713
|
{
|
|
25495
|
-
src: _optionalChain([author, 'optionalAccess',
|
|
25496
|
-
alt: _optionalChain([author, 'optionalAccess',
|
|
25497
|
-
fallback: nameInitials(_optionalChain([author, 'optionalAccess',
|
|
25714
|
+
src: _optionalChain([author, 'optionalAccess', _513 => _513.avatar_url]) || "",
|
|
25715
|
+
alt: _optionalChain([author, 'optionalAccess', _514 => _514.full_name]) || "Author",
|
|
25716
|
+
fallback: nameInitials(_optionalChain([author, 'optionalAccess', _515 => _515.full_name]) || "Unknown", ""),
|
|
25498
25717
|
size: "md",
|
|
25499
25718
|
variant: "round"
|
|
25500
25719
|
}
|
|
25501
25720
|
),
|
|
25502
25721
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
|
|
25503
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", title: _optionalChain([author, 'optionalAccess',
|
|
25722
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", title: _optionalChain([author, 'optionalAccess', _516 => _516.full_name]) || "Unknown Author", children: _optionalChain([author, 'optionalAccess', _517 => _517.full_name]) || "Unknown Author" }),
|
|
25504
25723
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
|
|
25505
25724
|
] })
|
|
25506
25725
|
] })
|
|
@@ -25531,8 +25750,8 @@ function ReleaseDetailPage({
|
|
|
25531
25750
|
videoBites,
|
|
25532
25751
|
bitesTitle: "Video Clips",
|
|
25533
25752
|
filterPublishedBites: true,
|
|
25534
|
-
srtContent: _optionalChain([release, 'optionalAccess',
|
|
25535
|
-
captionsUrl: _optionalChain([release, 'optionalAccess',
|
|
25753
|
+
srtContent: _optionalChain([release, 'optionalAccess', _518 => _518.srt_content]),
|
|
25754
|
+
captionsUrl: _optionalChain([release, 'optionalAccess', _519 => _519.captionsUrl])
|
|
25536
25755
|
}
|
|
25537
25756
|
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
25538
25757
|
youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -25548,8 +25767,8 @@ function ReleaseDetailPage({
|
|
|
25548
25767
|
Video,
|
|
25549
25768
|
{
|
|
25550
25769
|
url: mainVideoUrl,
|
|
25551
|
-
srtContent: _optionalChain([release, 'optionalAccess',
|
|
25552
|
-
captionsUrl: _optionalChain([release, 'optionalAccess',
|
|
25770
|
+
srtContent: _optionalChain([release, 'optionalAccess', _520 => _520.srt_content]),
|
|
25771
|
+
captionsUrl: _optionalChain([release, 'optionalAccess', _521 => _521.captionsUrl]),
|
|
25553
25772
|
layout: "centered"
|
|
25554
25773
|
}
|
|
25555
25774
|
),
|
|
@@ -25587,6 +25806,7 @@ function ReleaseDetailPage({
|
|
|
25587
25806
|
title: "Features Added",
|
|
25588
25807
|
entries: featuresAdded || [],
|
|
25589
25808
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "h-6 w-6" }),
|
|
25809
|
+
previewFirst: true,
|
|
25590
25810
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
25591
25811
|
}
|
|
25592
25812
|
),
|
|
@@ -25596,6 +25816,7 @@ function ReleaseDetailPage({
|
|
|
25596
25816
|
title: "Bugs Fixed",
|
|
25597
25817
|
entries: bugFixed || [],
|
|
25598
25818
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wrench, { className: "h-6 w-6" }),
|
|
25819
|
+
previewFirst: true,
|
|
25599
25820
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
25600
25821
|
}
|
|
25601
25822
|
),
|
|
@@ -25605,6 +25826,7 @@ function ReleaseDetailPage({
|
|
|
25605
25826
|
title: "Improvements",
|
|
25606
25827
|
entries: improvements || [],
|
|
25607
25828
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TrendingUp, { className: "h-6 w-6" }),
|
|
25829
|
+
previewFirst: true,
|
|
25608
25830
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
25609
25831
|
}
|
|
25610
25832
|
),
|
|
@@ -25643,7 +25865,7 @@ function ReleaseDetailPage({
|
|
|
25643
25865
|
}
|
|
25644
25866
|
)
|
|
25645
25867
|
] }),
|
|
25646
|
-
(_optionalChain([githubReleases, 'optionalAccess',
|
|
25868
|
+
(_optionalChain([githubReleases, 'optionalAccess', _522 => _522.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _523 => _523.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
|
|
25647
25869
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
|
|
25648
25870
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
25649
25871
|
githubReleases && githubReleases.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
|
|
@@ -25672,7 +25894,7 @@ function ReleaseDetailPage({
|
|
|
25672
25894
|
{
|
|
25673
25895
|
href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
|
|
25674
25896
|
className: "text-h4 text-[#ffc008] hover:underline",
|
|
25675
|
-
children: _optionalChain([path, 'access',
|
|
25897
|
+
children: _optionalChain([path, 'access', _524 => _524.replace, 'call', _525 => _525(/^\//, ""), 'access', _526 => _526.split, 'call', _527 => _527("/"), 'access', _528 => _528.pop, 'call', _529 => _529(), 'optionalAccess', _530 => _530.replace, 'call', _531 => _531(/-/g, " ")]) || "View Article"
|
|
25676
25898
|
}
|
|
25677
25899
|
),
|
|
25678
25900
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
@@ -25727,6 +25949,753 @@ function ReleaseDetailSkeleton() {
|
|
|
25727
25949
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
|
|
25728
25950
|
}
|
|
25729
25951
|
|
|
25952
|
+
// src/components/shared/dev-section/dev-section-view.tsx
|
|
25953
|
+
|
|
25954
|
+
|
|
25955
|
+
function DevSectionView({ sectionKey, hero, children }) {
|
|
25956
|
+
const section = OPENFRAME_DEV_SECTIONS[sectionKey];
|
|
25957
|
+
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
25958
|
+
const pathname = _chunkG7UE6RKVcjs.usePathname.call(void 0, );
|
|
25959
|
+
const searchParams = _chunkG7UE6RKVcjs.useSearchParams.call(void 0, );
|
|
25960
|
+
const search = section.search;
|
|
25961
|
+
const filter = section.filter;
|
|
25962
|
+
const currentSearch = search ? searchParams.get(search.paramKey) || "" : "";
|
|
25963
|
+
const currentFilterValue = filter ? searchParams.get(filter.paramKey) || filter.defaultValue : "";
|
|
25964
|
+
const [searchValue, setSearchValue] = _react.useState.call(void 0, () => currentSearch);
|
|
25965
|
+
_react.useEffect.call(void 0, () => {
|
|
25966
|
+
setSearchValue(currentSearch);
|
|
25967
|
+
}, [currentSearch]);
|
|
25968
|
+
const handleSearchSubmit = (value) => {
|
|
25969
|
+
if (!search) return;
|
|
25970
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
25971
|
+
if (value.trim()) params.set(search.paramKey, value.trim());
|
|
25972
|
+
else params.delete(search.paramKey);
|
|
25973
|
+
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
25974
|
+
};
|
|
25975
|
+
const handleFilterChange = (value) => {
|
|
25976
|
+
if (!filter) return;
|
|
25977
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
25978
|
+
if (value === filter.defaultValue) params.delete(filter.paramKey);
|
|
25979
|
+
else params.set(filter.paramKey, value);
|
|
25980
|
+
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
25981
|
+
};
|
|
25982
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full flex flex-col gap-10", children: [
|
|
25983
|
+
hero ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
25984
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h1", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary flex items-center gap-3", children: [
|
|
25985
|
+
hero.icon,
|
|
25986
|
+
section.hero.title
|
|
25987
|
+
] }),
|
|
25988
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[18px] leading-[28px] text-ods-text-secondary max-w-3xl", children: hero.description })
|
|
25989
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-between w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "font-['Azeret_Mono'] font-semibold text-[32px] md:text-[40px] lg:text-[48px] leading-[40px] md:leading-[48px] lg:leading-[56px] text-ods-text-primary tracking-[-0.64px] md:tracking-[-0.8px] lg:tracking-[-0.96px]", children: [
|
|
25990
|
+
section.hero.title,
|
|
25991
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ":" })
|
|
25992
|
+
] }) }),
|
|
25993
|
+
(search || filter) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
25994
|
+
search && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25995
|
+
SearchInput,
|
|
25996
|
+
{
|
|
25997
|
+
showDropdown: false,
|
|
25998
|
+
placeholder: search.placeholder,
|
|
25999
|
+
value: searchValue,
|
|
26000
|
+
onChange: setSearchValue,
|
|
26001
|
+
onSubmit: handleSearchSubmit
|
|
26002
|
+
}
|
|
26003
|
+
),
|
|
26004
|
+
filter && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26005
|
+
StatusFilterComponent,
|
|
26006
|
+
{
|
|
26007
|
+
selectedStatus: currentFilterValue,
|
|
26008
|
+
onStatusChange: handleFilterChange,
|
|
26009
|
+
statusOptions: [...filter.options]
|
|
26010
|
+
}
|
|
26011
|
+
)
|
|
26012
|
+
] }),
|
|
26013
|
+
children
|
|
26014
|
+
] });
|
|
26015
|
+
}
|
|
26016
|
+
|
|
26017
|
+
// src/components/shared/dev-section/dev-section-page.tsx
|
|
26018
|
+
_chunkG7UE6RKVcjs.init_next_navigation.call(void 0, );
|
|
26019
|
+
|
|
26020
|
+
var SECTION_HERO_ICON_CLASS = "h-10 w-10 text-ods-accent";
|
|
26021
|
+
function DevSectionPage({ sectionKey, children, backButton }) {
|
|
26022
|
+
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
26023
|
+
const section = OPENFRAME_DEV_SECTIONS[sectionKey];
|
|
26024
|
+
const Icon2 = section.icon;
|
|
26025
|
+
const backCfg = backButton === false ? void 0 : {
|
|
26026
|
+
label: _nullishCoalesce((backButton ? backButton.label : void 0), () => ( "Back to home")),
|
|
26027
|
+
onClick: () => router.push(_nullishCoalesce((backButton ? backButton.href : void 0), () => ( "/")))
|
|
26028
|
+
};
|
|
26029
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageShell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageLayout, { backButton: backCfg, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26030
|
+
DevSectionView,
|
|
26031
|
+
{
|
|
26032
|
+
sectionKey,
|
|
26033
|
+
hero: {
|
|
26034
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon2, { className: SECTION_HERO_ICON_CLASS }),
|
|
26035
|
+
description: section.hero.description
|
|
26036
|
+
},
|
|
26037
|
+
children
|
|
26038
|
+
}
|
|
26039
|
+
) }) });
|
|
26040
|
+
}
|
|
26041
|
+
|
|
26042
|
+
// src/components/shared/roadmap/roadmap-grid.tsx
|
|
26043
|
+
|
|
26044
|
+
|
|
26045
|
+
// src/components/shared/roadmap/use-roadmap-voting.ts
|
|
26046
|
+
|
|
26047
|
+
var DEFAULT_VOTE_ENDPOINT = "/api/roadmap/vote";
|
|
26048
|
+
var DEFAULT_STORAGE_KEY = "roadmap_votes_v1";
|
|
26049
|
+
function useRoadmapVoting(options = {}) {
|
|
26050
|
+
const voteApiEndpoint = _nullishCoalesce(options.voteApiEndpoint, () => ( DEFAULT_VOTE_ENDPOINT));
|
|
26051
|
+
const storageKey = _nullishCoalesce(options.storageKey, () => ( DEFAULT_STORAGE_KEY));
|
|
26052
|
+
const [votes, setVotes] = _react.useState.call(void 0, {});
|
|
26053
|
+
const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
|
|
26054
|
+
_react.useEffect.call(void 0, () => {
|
|
26055
|
+
setIsLoading(true);
|
|
26056
|
+
setVotes({});
|
|
26057
|
+
try {
|
|
26058
|
+
const stored = localStorage.getItem(storageKey);
|
|
26059
|
+
if (stored) {
|
|
26060
|
+
setVotes(JSON.parse(stored));
|
|
26061
|
+
}
|
|
26062
|
+
} catch (error) {
|
|
26063
|
+
console.error("[Voting] Error loading votes from localStorage:", error);
|
|
26064
|
+
} finally {
|
|
26065
|
+
setIsLoading(false);
|
|
26066
|
+
}
|
|
26067
|
+
}, [storageKey]);
|
|
26068
|
+
_react.useEffect.call(void 0, () => {
|
|
26069
|
+
if (!isLoading) {
|
|
26070
|
+
try {
|
|
26071
|
+
localStorage.setItem(storageKey, JSON.stringify(votes));
|
|
26072
|
+
} catch (error) {
|
|
26073
|
+
console.error("[Voting] Error saving votes to localStorage:", error);
|
|
26074
|
+
}
|
|
26075
|
+
}
|
|
26076
|
+
}, [votes, isLoading, storageKey]);
|
|
26077
|
+
const getVote = _react.useCallback.call(void 0,
|
|
26078
|
+
(taskId) => {
|
|
26079
|
+
return votes[taskId] || null;
|
|
26080
|
+
},
|
|
26081
|
+
[votes]
|
|
26082
|
+
);
|
|
26083
|
+
const toggleVote = _react.useCallback.call(void 0,
|
|
26084
|
+
async (taskId, voteType) => {
|
|
26085
|
+
const currentVote = votes[taskId];
|
|
26086
|
+
let newVote = null;
|
|
26087
|
+
let action = "add";
|
|
26088
|
+
if (currentVote === voteType) {
|
|
26089
|
+
newVote = null;
|
|
26090
|
+
action = "remove";
|
|
26091
|
+
} else {
|
|
26092
|
+
if (currentVote) {
|
|
26093
|
+
await fetch(voteApiEndpoint, {
|
|
26094
|
+
method: "POST",
|
|
26095
|
+
headers: { "Content-Type": "application/json" },
|
|
26096
|
+
body: JSON.stringify({
|
|
26097
|
+
taskId,
|
|
26098
|
+
voteType: currentVote,
|
|
26099
|
+
action: "remove"
|
|
26100
|
+
})
|
|
26101
|
+
}).catch((err) => console.error("[Voting] Error removing opposite vote:", err));
|
|
26102
|
+
}
|
|
26103
|
+
newVote = voteType;
|
|
26104
|
+
action = "add";
|
|
26105
|
+
}
|
|
26106
|
+
setVotes((prev) => ({
|
|
26107
|
+
...prev,
|
|
26108
|
+
[taskId]: newVote
|
|
26109
|
+
}));
|
|
26110
|
+
try {
|
|
26111
|
+
const response = await fetch(voteApiEndpoint, {
|
|
26112
|
+
method: "POST",
|
|
26113
|
+
headers: { "Content-Type": "application/json" },
|
|
26114
|
+
body: JSON.stringify({ taskId, voteType, action })
|
|
26115
|
+
});
|
|
26116
|
+
if (!response.ok) {
|
|
26117
|
+
throw new Error("Vote API request failed");
|
|
26118
|
+
}
|
|
26119
|
+
return { success: true, newVote, action };
|
|
26120
|
+
} catch (error) {
|
|
26121
|
+
console.error("[Voting] API error:", error);
|
|
26122
|
+
setVotes((prev) => ({
|
|
26123
|
+
...prev,
|
|
26124
|
+
[taskId]: currentVote
|
|
26125
|
+
}));
|
|
26126
|
+
return { success: false, newVote: currentVote, action };
|
|
26127
|
+
}
|
|
26128
|
+
},
|
|
26129
|
+
[votes, voteApiEndpoint]
|
|
26130
|
+
);
|
|
26131
|
+
const clearVotes = _react.useCallback.call(void 0, () => {
|
|
26132
|
+
setVotes({});
|
|
26133
|
+
localStorage.removeItem(storageKey);
|
|
26134
|
+
}, [storageKey]);
|
|
26135
|
+
return {
|
|
26136
|
+
votes,
|
|
26137
|
+
isLoading,
|
|
26138
|
+
getVote,
|
|
26139
|
+
toggleVote,
|
|
26140
|
+
clearVotes
|
|
26141
|
+
};
|
|
26142
|
+
}
|
|
26143
|
+
|
|
26144
|
+
// src/components/shared/roadmap/roadmap-grid.tsx
|
|
26145
|
+
|
|
26146
|
+
var DEFAULT_BUILD_REFRESH_URL = (taskId) => `/api/roadmap/${taskId}`;
|
|
26147
|
+
function RoadmapGrid({
|
|
26148
|
+
items,
|
|
26149
|
+
onItemUpdate,
|
|
26150
|
+
showLeftMargin = true,
|
|
26151
|
+
buildRefreshUrl = DEFAULT_BUILD_REFRESH_URL,
|
|
26152
|
+
votingOptions
|
|
26153
|
+
}) {
|
|
26154
|
+
const { getVote, toggleVote } = useRoadmapVoting(votingOptions);
|
|
26155
|
+
const [votingTasks, setVotingTasks] = _react.useState.call(void 0, /* @__PURE__ */ new Set());
|
|
26156
|
+
const handleVote = async (taskId, voteType) => {
|
|
26157
|
+
if (votingTasks.has(taskId)) return;
|
|
26158
|
+
setVotingTasks((prev) => new Set(prev).add(taskId));
|
|
26159
|
+
try {
|
|
26160
|
+
const result = await toggleVote(taskId, voteType);
|
|
26161
|
+
if (result.success) {
|
|
26162
|
+
const response = await fetch(buildRefreshUrl(taskId));
|
|
26163
|
+
if (response.ok) {
|
|
26164
|
+
const data = await response.json();
|
|
26165
|
+
if (data.item && onItemUpdate) {
|
|
26166
|
+
onItemUpdate(data.item);
|
|
26167
|
+
}
|
|
26168
|
+
}
|
|
26169
|
+
}
|
|
26170
|
+
} finally {
|
|
26171
|
+
setVotingTasks((prev) => {
|
|
26172
|
+
const next = new Set(prev);
|
|
26173
|
+
next.delete(taskId);
|
|
26174
|
+
return next;
|
|
26175
|
+
});
|
|
26176
|
+
}
|
|
26177
|
+
};
|
|
26178
|
+
if (items.length === 0) {
|
|
26179
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26180
|
+
EmptyState3,
|
|
26181
|
+
{
|
|
26182
|
+
type: "generic",
|
|
26183
|
+
title: "No roadmap items",
|
|
26184
|
+
description: "Check back soon for upcoming features and improvements!"
|
|
26185
|
+
}
|
|
26186
|
+
);
|
|
26187
|
+
}
|
|
26188
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26189
|
+
RoadmapCard,
|
|
26190
|
+
{
|
|
26191
|
+
item,
|
|
26192
|
+
userVote: getVote(item.id),
|
|
26193
|
+
onVote: (voteType) => handleVote(item.id, voteType),
|
|
26194
|
+
isVoting: votingTasks.has(item.id)
|
|
26195
|
+
},
|
|
26196
|
+
item.id
|
|
26197
|
+
)) });
|
|
26198
|
+
}
|
|
26199
|
+
|
|
26200
|
+
// src/components/shared/roadmap/roadmap-grid-skeleton.tsx
|
|
26201
|
+
|
|
26202
|
+
function RoadmapCardSkeleton() {
|
|
26203
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[24px] flex flex-col gap-[16px] min-h-[340px] relative", children: [
|
|
26204
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute top-[24px] right-[24px]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] w-[80px] bg-ods-border rounded animate-pulse" }) }),
|
|
26205
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[16px] pr-[120px]", children: [
|
|
26206
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-[80px] h-[80px] bg-ods-border rounded-lg flex-shrink-0 animate-pulse" }),
|
|
26207
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col gap-1", children: [
|
|
26208
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[24px] w-full bg-ods-border rounded animate-pulse" }) }),
|
|
26209
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[14px] w-1/2 bg-ods-border rounded animate-pulse" }) })
|
|
26210
|
+
] })
|
|
26211
|
+
] }),
|
|
26212
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-2", children: [
|
|
26213
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
|
|
26214
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
|
|
26215
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[24px] w-4/5 bg-ods-border rounded animate-pulse" })
|
|
26216
|
+
] }) }),
|
|
26217
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
|
|
26218
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
|
|
26219
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[48px] w-[120px] bg-ods-border rounded animate-pulse" }),
|
|
26220
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" })
|
|
26221
|
+
] })
|
|
26222
|
+
] });
|
|
26223
|
+
}
|
|
26224
|
+
function RoadmapGridSkeleton({ count = 4, showLeftMargin = true }) {
|
|
26225
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapCardSkeleton, {}, i)) });
|
|
26226
|
+
}
|
|
26227
|
+
|
|
26228
|
+
// src/components/shared/delivery/delivery-lists.tsx
|
|
26229
|
+
|
|
26230
|
+
|
|
26231
|
+
// src/components/shared/delivery/delivery-table.tsx
|
|
26232
|
+
|
|
26233
|
+
function getRelativeTime(timestamp) {
|
|
26234
|
+
const now = Date.now();
|
|
26235
|
+
const diff = now - timestamp;
|
|
26236
|
+
const days = Math.floor(diff / (1e3 * 60 * 60 * 24));
|
|
26237
|
+
const weeks = Math.floor(days / 7);
|
|
26238
|
+
const months = Math.floor(days / 30);
|
|
26239
|
+
if (months > 0) {
|
|
26240
|
+
return months === 1 ? "last month" : `${months} months ago`;
|
|
26241
|
+
}
|
|
26242
|
+
if (weeks > 0) {
|
|
26243
|
+
return weeks === 1 ? "last week" : `${weeks} weeks ago`;
|
|
26244
|
+
}
|
|
26245
|
+
if (days > 0) {
|
|
26246
|
+
return days === 1 ? "yesterday" : `${days} days ago`;
|
|
26247
|
+
}
|
|
26248
|
+
return "today";
|
|
26249
|
+
}
|
|
26250
|
+
function SkeletonRow() {
|
|
26251
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border last:border-b-0 p-[12px] md:p-[16px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full", children: [
|
|
26252
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]", children: [
|
|
26253
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[24px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }) }),
|
|
26254
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-1/2" }) }),
|
|
26255
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-1", children: [
|
|
26256
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
|
|
26257
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
|
|
26258
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-2/3" })
|
|
26259
|
+
] }) })
|
|
26260
|
+
] }),
|
|
26261
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-shrink-0 self-start flex flex-col gap-2", children: [
|
|
26262
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" }),
|
|
26263
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[32px] w-[120px] bg-ods-border rounded animate-pulse" })
|
|
26264
|
+
] })
|
|
26265
|
+
] }) });
|
|
26266
|
+
}
|
|
26267
|
+
function DeliveryTable({ items, isLoading = false }) {
|
|
26268
|
+
if (isLoading) {
|
|
26269
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonRow, {}, i)) }) });
|
|
26270
|
+
}
|
|
26271
|
+
if (items.length === 0) {
|
|
26272
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[40px] text-center w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-[14px] font-['DM_Sans'] font-medium", children: "No tasks available" }) });
|
|
26273
|
+
}
|
|
26274
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: items.map((item, index) => {
|
|
26275
|
+
const taskType = item.taskType;
|
|
26276
|
+
const typeBadgeLabel = TASK_TYPE_LABELS[taskType] || "TASK";
|
|
26277
|
+
const typeBadgeTextColor = TASK_TYPE_TEXT_COLORS[taskType] || "";
|
|
26278
|
+
const statusBadgeScheme = getStatusColorScheme(item.status);
|
|
26279
|
+
const relativeTime = getRelativeTime(item.dateUpdated);
|
|
26280
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26281
|
+
"div",
|
|
26282
|
+
{
|
|
26283
|
+
className: `border-b border-ods-border last:border-b-0 p-[12px] md:p-[16px] ${index === 0 ? "" : ""}`,
|
|
26284
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full", children: [
|
|
26285
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]", children: [
|
|
26286
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[24px] md:min-h-[24px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-text-primary tracking-[-0.36px] flex-1 line-clamp-2 md:truncate break-words", children: item.title }) }),
|
|
26287
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h5 text-ods-text-secondary uppercase tracking-[-0.28px] truncate", children: [
|
|
26288
|
+
"ACTIVE ",
|
|
26289
|
+
relativeTime,
|
|
26290
|
+
item.listNames.length > 0 ? `, ${item.listNames.join(", ")}` : "",
|
|
26291
|
+
", ",
|
|
26292
|
+
item.id
|
|
26293
|
+
] }) }),
|
|
26294
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-secondary line-clamp-3 break-words", children: item.description || "No description provided" }) })
|
|
26295
|
+
] }),
|
|
26296
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-shrink-0 self-start flex flex-col gap-2", children: [
|
|
26297
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26298
|
+
StatusBadge,
|
|
26299
|
+
{
|
|
26300
|
+
text: item.status.toUpperCase(),
|
|
26301
|
+
colorScheme: statusBadgeScheme,
|
|
26302
|
+
variant: "card",
|
|
26303
|
+
className: "border border-ods-border"
|
|
26304
|
+
}
|
|
26305
|
+
),
|
|
26306
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26307
|
+
StatusBadge,
|
|
26308
|
+
{
|
|
26309
|
+
text: typeBadgeLabel,
|
|
26310
|
+
variant: "card",
|
|
26311
|
+
className: `border border-ods-border ${typeBadgeTextColor}`
|
|
26312
|
+
}
|
|
26313
|
+
)
|
|
26314
|
+
] })
|
|
26315
|
+
] })
|
|
26316
|
+
},
|
|
26317
|
+
item.id
|
|
26318
|
+
);
|
|
26319
|
+
}) }) });
|
|
26320
|
+
}
|
|
26321
|
+
|
|
26322
|
+
// src/components/ui/error-state.tsx
|
|
26323
|
+
_chunkKUZGEA7Ucjs.init_button2.call(void 0, );
|
|
26324
|
+
_chunk664KA5FIcjs.init_cn.call(void 0, );
|
|
26325
|
+
|
|
26326
|
+
|
|
26327
|
+
function ErrorState({
|
|
26328
|
+
title = "Error",
|
|
26329
|
+
message: message2,
|
|
26330
|
+
variant = "error",
|
|
26331
|
+
showIcon = true,
|
|
26332
|
+
showRetry = false,
|
|
26333
|
+
showHome = false,
|
|
26334
|
+
onRetry,
|
|
26335
|
+
onHome,
|
|
26336
|
+
className,
|
|
26337
|
+
containerClassName
|
|
26338
|
+
}) {
|
|
26339
|
+
const getVariantStyles = () => {
|
|
26340
|
+
switch (variant) {
|
|
26341
|
+
case "error":
|
|
26342
|
+
return {
|
|
26343
|
+
bg: "bg-ods-attention-red-error/20",
|
|
26344
|
+
border: "border-ods-attention-red-error",
|
|
26345
|
+
text: "text-ods-attention-red-error",
|
|
26346
|
+
icon: "text-ods-attention-red-error"
|
|
26347
|
+
};
|
|
26348
|
+
case "warning":
|
|
26349
|
+
return {
|
|
26350
|
+
bg: "bg-ods-attention-yellow-warning/20",
|
|
26351
|
+
border: "border-ods-attention-yellow-warning",
|
|
26352
|
+
text: "text-ods-attention-yellow-warning",
|
|
26353
|
+
icon: "text-ods-attention-yellow-warning"
|
|
26354
|
+
};
|
|
26355
|
+
case "info":
|
|
26356
|
+
return {
|
|
26357
|
+
bg: "bg-ods-bg-surface",
|
|
26358
|
+
border: "border-ods-border",
|
|
26359
|
+
text: "text-ods-text-secondary",
|
|
26360
|
+
icon: "text-ods-text-secondary"
|
|
26361
|
+
};
|
|
26362
|
+
}
|
|
26363
|
+
};
|
|
26364
|
+
const styles = getVariantStyles();
|
|
26365
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "p-6", containerClassName), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
26366
|
+
"rounded-lg p-4 border",
|
|
26367
|
+
styles.bg,
|
|
26368
|
+
styles.border,
|
|
26369
|
+
className
|
|
26370
|
+
), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-3", children: [
|
|
26371
|
+
showIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: _chunk664KA5FIcjs.cn.call(void 0, "h-5 w-5 mt-0.5 flex-shrink-0", styles.icon) }),
|
|
26372
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
|
|
26373
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunk664KA5FIcjs.cn.call(void 0, "font-semibold mb-1", styles.text), children: title }),
|
|
26374
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk664KA5FIcjs.cn.call(void 0, "text-sm", styles.text), children: message2 }),
|
|
26375
|
+
(showRetry || showHome) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 mt-3", children: [
|
|
26376
|
+
showRetry && onRetry && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26377
|
+
_chunkKUZGEA7Ucjs.Button,
|
|
26378
|
+
{
|
|
26379
|
+
onClick: onRetry,
|
|
26380
|
+
variant: "outline",
|
|
26381
|
+
size: "small-legacy",
|
|
26382
|
+
className: "h-8",
|
|
26383
|
+
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.RefreshCw, { className: "h-4 w-4" }),
|
|
26384
|
+
children: "Try Again"
|
|
26385
|
+
}
|
|
26386
|
+
),
|
|
26387
|
+
showHome && onHome && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26388
|
+
_chunkKUZGEA7Ucjs.Button,
|
|
26389
|
+
{
|
|
26390
|
+
onClick: onHome,
|
|
26391
|
+
variant: "outline",
|
|
26392
|
+
size: "small-legacy",
|
|
26393
|
+
className: "h-8",
|
|
26394
|
+
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Home, { className: "h-4 w-4" }),
|
|
26395
|
+
children: "Go Home"
|
|
26396
|
+
}
|
|
26397
|
+
)
|
|
26398
|
+
] })
|
|
26399
|
+
] })
|
|
26400
|
+
] }) }) });
|
|
26401
|
+
}
|
|
26402
|
+
function PageError({ message: message2, onRetry, onHome }) {
|
|
26403
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26404
|
+
ErrorState,
|
|
26405
|
+
{
|
|
26406
|
+
title: "Page Error",
|
|
26407
|
+
message: message2,
|
|
26408
|
+
variant: "error",
|
|
26409
|
+
showRetry: !!onRetry,
|
|
26410
|
+
showHome: !!onHome,
|
|
26411
|
+
onRetry,
|
|
26412
|
+
onHome
|
|
26413
|
+
}
|
|
26414
|
+
);
|
|
26415
|
+
}
|
|
26416
|
+
function LoadError({ message: message2, onRetry }) {
|
|
26417
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26418
|
+
ErrorState,
|
|
26419
|
+
{
|
|
26420
|
+
title: "Loading Error",
|
|
26421
|
+
message: message2,
|
|
26422
|
+
variant: "error",
|
|
26423
|
+
showRetry: !!onRetry,
|
|
26424
|
+
onRetry
|
|
26425
|
+
}
|
|
26426
|
+
);
|
|
26427
|
+
}
|
|
26428
|
+
function NotFoundError({ message: message2 = "The requested item was not found", onHome }) {
|
|
26429
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26430
|
+
ErrorState,
|
|
26431
|
+
{
|
|
26432
|
+
title: "Not Found",
|
|
26433
|
+
message: message2,
|
|
26434
|
+
variant: "warning",
|
|
26435
|
+
showHome: !!onHome,
|
|
26436
|
+
onHome
|
|
26437
|
+
}
|
|
26438
|
+
);
|
|
26439
|
+
}
|
|
26440
|
+
|
|
26441
|
+
// src/components/shared/delivery/delivery-lists.tsx
|
|
26442
|
+
|
|
26443
|
+
var DEFAULT_COMPLETED_ENDPOINT = "/api/delivery/completed";
|
|
26444
|
+
var DEFAULT_IN_PROGRESS_ENDPOINT = "/api/delivery/in-progress";
|
|
26445
|
+
var DEFAULT_SEARCH_PARAM_KEY = "search";
|
|
26446
|
+
var DEFAULT_TASK_TYPE_PARAM_KEY = "task_type";
|
|
26447
|
+
function DeliveryLists({
|
|
26448
|
+
completedApiEndpoint = DEFAULT_COMPLETED_ENDPOINT,
|
|
26449
|
+
inProgressApiEndpoint = DEFAULT_IN_PROGRESS_ENDPOINT,
|
|
26450
|
+
searchParamKey = DEFAULT_SEARCH_PARAM_KEY,
|
|
26451
|
+
taskTypeParamKey = DEFAULT_TASK_TYPE_PARAM_KEY
|
|
26452
|
+
} = {}) {
|
|
26453
|
+
const searchParams = _chunkG7UE6RKVcjs.useSearchParams.call(void 0, );
|
|
26454
|
+
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
26455
|
+
const pathname = _chunkG7UE6RKVcjs.usePathname.call(void 0, );
|
|
26456
|
+
const [data, setData] = _react.useState.call(void 0, null);
|
|
26457
|
+
const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
|
|
26458
|
+
const [error, setError] = _react.useState.call(void 0, null);
|
|
26459
|
+
const searchQuery = searchParams.get(searchParamKey) || "";
|
|
26460
|
+
const taskTypeFilter = searchParams.get(taskTypeParamKey) || "all";
|
|
26461
|
+
_react.useEffect.call(void 0, () => {
|
|
26462
|
+
async function fetchDeliveryData() {
|
|
26463
|
+
try {
|
|
26464
|
+
setIsLoading(true);
|
|
26465
|
+
setError(null);
|
|
26466
|
+
const params = new URLSearchParams();
|
|
26467
|
+
if (searchQuery) {
|
|
26468
|
+
params.set(searchParamKey, searchQuery);
|
|
26469
|
+
}
|
|
26470
|
+
if (taskTypeFilter && taskTypeFilter !== "all") {
|
|
26471
|
+
params.set(taskTypeParamKey, taskTypeFilter);
|
|
26472
|
+
}
|
|
26473
|
+
const queryString = params.toString();
|
|
26474
|
+
const queryParam = queryString ? `?${queryString}` : "";
|
|
26475
|
+
const [completedResponse, inProgressResponse] = await Promise.all([
|
|
26476
|
+
fetch(`${completedApiEndpoint}${queryParam}`),
|
|
26477
|
+
fetch(`${inProgressApiEndpoint}${queryParam}`)
|
|
26478
|
+
]);
|
|
26479
|
+
if (!completedResponse.ok || !inProgressResponse.ok) {
|
|
26480
|
+
throw new Error("Failed to fetch delivery items");
|
|
26481
|
+
}
|
|
26482
|
+
const [completedResult, inProgressResult] = await Promise.all([
|
|
26483
|
+
completedResponse.json(),
|
|
26484
|
+
inProgressResponse.json()
|
|
26485
|
+
]);
|
|
26486
|
+
setData({
|
|
26487
|
+
completed: completedResult.items || [],
|
|
26488
|
+
inProgress: inProgressResult.items || []
|
|
26489
|
+
});
|
|
26490
|
+
} catch (err) {
|
|
26491
|
+
console.error("Error fetching delivery items:", err);
|
|
26492
|
+
setError("Failed to load delivery items. Please try again later.");
|
|
26493
|
+
} finally {
|
|
26494
|
+
setIsLoading(false);
|
|
26495
|
+
}
|
|
26496
|
+
}
|
|
26497
|
+
fetchDeliveryData();
|
|
26498
|
+
}, [searchQuery, taskTypeFilter, completedApiEndpoint, inProgressApiEndpoint, searchParamKey, taskTypeParamKey]);
|
|
26499
|
+
const filteredCompleted = _optionalChain([data, 'optionalAccess', _532 => _532.completed]) || [];
|
|
26500
|
+
const filteredInProgress = _optionalChain([data, 'optionalAccess', _533 => _533.inProgress]) || [];
|
|
26501
|
+
const showCompleted = true;
|
|
26502
|
+
const showInProgress = true;
|
|
26503
|
+
const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
|
|
26504
|
+
const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
|
|
26505
|
+
if (error) {
|
|
26506
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadError, { message: error, onRetry: () => window.location.reload() }) });
|
|
26507
|
+
}
|
|
26508
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full flex flex-col gap-[40px]", children: [
|
|
26509
|
+
!isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26510
|
+
EmptyState3,
|
|
26511
|
+
{
|
|
26512
|
+
type: "search",
|
|
26513
|
+
title: "No tasks found",
|
|
26514
|
+
description: "No tasks match your current filters. Try adjusting your search or status filter.",
|
|
26515
|
+
showCTA: true,
|
|
26516
|
+
ctaText: "Reset Filters",
|
|
26517
|
+
onCtaClick: () => {
|
|
26518
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
26519
|
+
params.delete(searchParamKey);
|
|
26520
|
+
params.delete(taskTypeParamKey);
|
|
26521
|
+
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
26522
|
+
}
|
|
26523
|
+
}
|
|
26524
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26525
|
+
EmptyState3,
|
|
26526
|
+
{
|
|
26527
|
+
type: "generic",
|
|
26528
|
+
title: "No tasks available",
|
|
26529
|
+
description: "Check back soon for upcoming tasks!",
|
|
26530
|
+
showCTA: false
|
|
26531
|
+
}
|
|
26532
|
+
)),
|
|
26533
|
+
showCompleted && (hasResults || isLoading) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full", children: [
|
|
26534
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
|
|
26535
|
+
"Recently Completed",
|
|
26536
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ":" })
|
|
26537
|
+
] }),
|
|
26538
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26539
|
+
DeliveryTable,
|
|
26540
|
+
{
|
|
26541
|
+
items: filteredCompleted,
|
|
26542
|
+
isLoading
|
|
26543
|
+
}
|
|
26544
|
+
)
|
|
26545
|
+
] }),
|
|
26546
|
+
showInProgress && (hasResults || isLoading) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full", children: [
|
|
26547
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
|
|
26548
|
+
"Active Tasks",
|
|
26549
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ":" })
|
|
26550
|
+
] }),
|
|
26551
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26552
|
+
DeliveryTable,
|
|
26553
|
+
{
|
|
26554
|
+
items: filteredInProgress,
|
|
26555
|
+
isLoading
|
|
26556
|
+
}
|
|
26557
|
+
)
|
|
26558
|
+
] })
|
|
26559
|
+
] });
|
|
26560
|
+
}
|
|
26561
|
+
|
|
26562
|
+
// src/components/shared/legal-document/legal-document-page.tsx
|
|
26563
|
+
_chunkG7UE6RKVcjs.init_next_navigation.call(void 0, );
|
|
26564
|
+
|
|
26565
|
+
// src/components/shared/legal-document/use-legal-docs.ts
|
|
26566
|
+
|
|
26567
|
+
function useLegalDocs(docType, options = {}) {
|
|
26568
|
+
const { initialData = null, apiEndpoint } = options;
|
|
26569
|
+
const effectiveEndpoint = _nullishCoalesce(apiEndpoint, () => ( `/api/legal/${docType}`));
|
|
26570
|
+
const [data, setData] = _react.useState.call(void 0, _nullishCoalesce(initialData, () => ( null)));
|
|
26571
|
+
const [isLoading, setIsLoading] = _react.useState.call(void 0, !initialData);
|
|
26572
|
+
const [error, setError] = _react.useState.call(void 0, null);
|
|
26573
|
+
const fetchDocument = _react.useCallback.call(void 0, async () => {
|
|
26574
|
+
try {
|
|
26575
|
+
setIsLoading(true);
|
|
26576
|
+
setError(null);
|
|
26577
|
+
const response = await fetch(effectiveEndpoint);
|
|
26578
|
+
if (!response.ok) {
|
|
26579
|
+
throw new Error(
|
|
26580
|
+
`Failed to fetch ${docType} document: ${response.status} ${response.statusText}`
|
|
26581
|
+
);
|
|
26582
|
+
}
|
|
26583
|
+
const result = await response.json();
|
|
26584
|
+
if (!result.content) {
|
|
26585
|
+
throw new Error(`${docType} document content is empty`);
|
|
26586
|
+
}
|
|
26587
|
+
setData(result);
|
|
26588
|
+
} catch (err) {
|
|
26589
|
+
const errorMessage = err instanceof Error ? err.message : "Unknown error occurred";
|
|
26590
|
+
console.error(`Error fetching ${docType} document:`, err);
|
|
26591
|
+
setError(errorMessage);
|
|
26592
|
+
} finally {
|
|
26593
|
+
setIsLoading(false);
|
|
26594
|
+
}
|
|
26595
|
+
}, [docType, effectiveEndpoint]);
|
|
26596
|
+
_react.useEffect.call(void 0, () => {
|
|
26597
|
+
setData(_nullishCoalesce(initialData, () => ( null)));
|
|
26598
|
+
setError(null);
|
|
26599
|
+
setIsLoading(!initialData);
|
|
26600
|
+
}, [docType, initialData]);
|
|
26601
|
+
_react.useEffect.call(void 0, () => {
|
|
26602
|
+
if (initialData) return;
|
|
26603
|
+
fetchDocument();
|
|
26604
|
+
}, [fetchDocument, initialData]);
|
|
26605
|
+
const refetch = () => {
|
|
26606
|
+
fetchDocument();
|
|
26607
|
+
};
|
|
26608
|
+
return {
|
|
26609
|
+
data,
|
|
26610
|
+
isLoading,
|
|
26611
|
+
error,
|
|
26612
|
+
refetch
|
|
26613
|
+
};
|
|
26614
|
+
}
|
|
26615
|
+
|
|
26616
|
+
// src/components/shared/legal-document/legal-document-page.tsx
|
|
26617
|
+
|
|
26618
|
+
function LegalDocumentPage({
|
|
26619
|
+
docType,
|
|
26620
|
+
title,
|
|
26621
|
+
fallbackDescription,
|
|
26622
|
+
contactEmail,
|
|
26623
|
+
errorContactPrompt,
|
|
26624
|
+
errorTitle,
|
|
26625
|
+
emptyStateMessage,
|
|
26626
|
+
initialData = null,
|
|
26627
|
+
initialLastUpdatedLabel = null,
|
|
26628
|
+
apiEndpoint,
|
|
26629
|
+
MarkdownRenderer = SimpleMarkdownRenderer,
|
|
26630
|
+
backButton
|
|
26631
|
+
}) {
|
|
26632
|
+
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
26633
|
+
const { data, isLoading, error } = useLegalDocs(docType, { initialData, apiEndpoint });
|
|
26634
|
+
const backCfg = backButton === false ? void 0 : {
|
|
26635
|
+
label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _534 => _534.label]), () => ( "Back to home")),
|
|
26636
|
+
onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _535 => _535.href]), () => ( "/")))
|
|
26637
|
+
};
|
|
26638
|
+
const fallbackLastUpdatedLabel = _optionalChain([data, 'optionalAccess', _536 => _536.lastSynced]) != null ? formatLegalDate(data.lastSynced) : null;
|
|
26639
|
+
const effectiveLastUpdatedLabel = _nullishCoalesce(initialLastUpdatedLabel, () => ( fallbackLastUpdatedLabel));
|
|
26640
|
+
const customTitle = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4", children: [
|
|
26641
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h1", { className: "font-['Azeret_Mono'] text-[32px] md:text-[40px] lg:text-[48px] font-semibold leading-[1em] tracking-[-0.02em] text-ods-text-primary", children: [
|
|
26642
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: title }),
|
|
26643
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: "." })
|
|
26644
|
+
] }),
|
|
26645
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "font-['DM_Sans'] text-base md:text-lg text-ods-text-secondary max-w-2xl", children: [
|
|
26646
|
+
effectiveLastUpdatedLabel ? `Last Updated: ${effectiveLastUpdatedLabel}` : fallbackDescription,
|
|
26647
|
+
_optionalChain([data, 'optionalAccess', _537 => _537.sourceFile]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "block text-sm mt-1 opacity-75", children: [
|
|
26648
|
+
"Source: ",
|
|
26649
|
+
data.sourceFile
|
|
26650
|
+
] })
|
|
26651
|
+
] })
|
|
26652
|
+
] });
|
|
26653
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageShell, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PageLayout, { backButton: backCfg, children: [
|
|
26654
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-4", children: customTitle }),
|
|
26655
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col lg:flex-row gap-6 lg:gap-10 items-start flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className: "space-y-2", children: isLoading ? (
|
|
26656
|
+
// Loading skeleton matching Knowledge Hub pattern
|
|
26657
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6", children: [
|
|
26658
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 bg-ods-skeleton rounded-lg w-3/4 animate-pulse" }),
|
|
26659
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
26660
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
26661
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
26662
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 bg-ods-skeleton rounded w-5/6 animate-pulse" })
|
|
26663
|
+
] }),
|
|
26664
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-32 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
26665
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
26666
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
26667
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 bg-ods-skeleton rounded w-4/5 animate-pulse" })
|
|
26668
|
+
] })
|
|
26669
|
+
] })
|
|
26670
|
+
) : error ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center space-y-4", children: [
|
|
26671
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-red-900/20 border border-red-700 rounded-lg p-6", children: [
|
|
26672
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-red-400 mb-2", children: errorTitle }),
|
|
26673
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-red-300 text-sm", children: error })
|
|
26674
|
+
] }),
|
|
26675
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-ods-text-secondary", children: [
|
|
26676
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { children: errorContactPrompt }),
|
|
26677
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail })
|
|
26678
|
+
] })
|
|
26679
|
+
] }) : data ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26680
|
+
MarkdownRenderer,
|
|
26681
|
+
{
|
|
26682
|
+
content: data.content,
|
|
26683
|
+
sectionIds: data.sections || [],
|
|
26684
|
+
demoteMarkdownH1ToH2: true
|
|
26685
|
+
}
|
|
26686
|
+
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center text-ods-text-secondary py-16", children: [
|
|
26687
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xl", children: emptyStateMessage }),
|
|
26688
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "mt-2", children: [
|
|
26689
|
+
"Please contact",
|
|
26690
|
+
" ",
|
|
26691
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail }),
|
|
26692
|
+
" ",
|
|
26693
|
+
"for more information."
|
|
26694
|
+
] })
|
|
26695
|
+
] }) }) }) }) })
|
|
26696
|
+
] }) });
|
|
26697
|
+
}
|
|
26698
|
+
|
|
25730
26699
|
// src/components/ui/info-card.tsx
|
|
25731
26700
|
|
|
25732
26701
|
function InfoCard({ data, className = "" }) {
|
|
@@ -26320,7 +27289,7 @@ function TagsManager({
|
|
|
26320
27289
|
const name = search.trim();
|
|
26321
27290
|
if (!name) return;
|
|
26322
27291
|
const result = await onCreateTag(name);
|
|
26323
|
-
if (_optionalChain([result, 'optionalAccess',
|
|
27292
|
+
if (_optionalChain([result, 'optionalAccess', _538 => _538.id])) {
|
|
26324
27293
|
onChange([...selectedIds, result.id]);
|
|
26325
27294
|
setSearch("");
|
|
26326
27295
|
}
|
|
@@ -26328,7 +27297,7 @@ function TagsManager({
|
|
|
26328
27297
|
const startEdit = React71.useCallback((id, name) => {
|
|
26329
27298
|
setEditingId(id);
|
|
26330
27299
|
setEditingName(name);
|
|
26331
|
-
setTimeout(() => _optionalChain([editInputRef, 'access',
|
|
27300
|
+
setTimeout(() => _optionalChain([editInputRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.focus, 'call', _541 => _541()]), 0);
|
|
26332
27301
|
}, []);
|
|
26333
27302
|
const confirmEdit = React71.useCallback(async () => {
|
|
26334
27303
|
if (!onUpdateTag || !editingId || !editingName.trim()) return;
|
|
@@ -26355,7 +27324,7 @@ function TagsManager({
|
|
|
26355
27324
|
e.stopPropagation();
|
|
26356
27325
|
onChange([]);
|
|
26357
27326
|
setSearch("");
|
|
26358
|
-
_optionalChain([inputRef, 'access',
|
|
27327
|
+
_optionalChain([inputRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.focus, 'call', _544 => _544()]);
|
|
26359
27328
|
},
|
|
26360
27329
|
[onChange]
|
|
26361
27330
|
);
|
|
@@ -26454,10 +27423,10 @@ function TagsManager({
|
|
|
26454
27423
|
align: "start",
|
|
26455
27424
|
onOpenAutoFocus: (e) => {
|
|
26456
27425
|
e.preventDefault();
|
|
26457
|
-
_optionalChain([inputRef, 'access',
|
|
27426
|
+
_optionalChain([inputRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.focus, 'call', _547 => _547()]);
|
|
26458
27427
|
},
|
|
26459
27428
|
onInteractOutside: (e) => {
|
|
26460
|
-
if (_optionalChain([containerRef, 'access',
|
|
27429
|
+
if (_optionalChain([containerRef, 'access', _548 => _548.current, 'optionalAccess', _549 => _549.contains, 'call', _550 => _550(e.target)])) {
|
|
26461
27430
|
e.preventDefault();
|
|
26462
27431
|
}
|
|
26463
27432
|
},
|
|
@@ -27561,19 +28530,19 @@ function TabNavigation({
|
|
|
27561
28530
|
const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
|
|
27562
28531
|
const getInitialTab = () => {
|
|
27563
28532
|
if (isUrlSyncEnabled) {
|
|
27564
|
-
const fromUrl = _optionalChain([searchParams, 'optionalAccess',
|
|
28533
|
+
const fromUrl = _optionalChain([searchParams, 'optionalAccess', _551 => _551.get, 'call', _552 => _552(paramName)]) || "";
|
|
27565
28534
|
if (validTabIds.has(fromUrl)) {
|
|
27566
28535
|
return fromUrl;
|
|
27567
28536
|
}
|
|
27568
28537
|
}
|
|
27569
|
-
return defaultTab || _optionalChain([tabs, 'access',
|
|
28538
|
+
return defaultTab || _optionalChain([tabs, 'access', _553 => _553[0], 'optionalAccess', _554 => _554.id]) || "";
|
|
27570
28539
|
};
|
|
27571
28540
|
const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
|
|
27572
28541
|
const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
|
|
27573
28542
|
_react.useEffect.call(void 0, () => {
|
|
27574
28543
|
if (!isUrlSyncEnabled) return;
|
|
27575
|
-
const fromUrl = _optionalChain([searchParams, 'optionalAccess',
|
|
27576
|
-
const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access',
|
|
28544
|
+
const fromUrl = _optionalChain([searchParams, 'optionalAccess', _555 => _555.get, 'call', _556 => _556(paramName)]) || "";
|
|
28545
|
+
const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _557 => _557[0], 'optionalAccess', _558 => _558.id]) || "";
|
|
27577
28546
|
if (nextTab !== internalActiveTab) {
|
|
27578
28547
|
setInternalActiveTab(nextTab);
|
|
27579
28548
|
}
|
|
@@ -27581,13 +28550,13 @@ function TabNavigation({
|
|
|
27581
28550
|
const handleTabChange = (tabId) => {
|
|
27582
28551
|
if (isUrlSyncEnabled) {
|
|
27583
28552
|
setInternalActiveTab(tabId);
|
|
27584
|
-
const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess',
|
|
28553
|
+
const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _559 => _559.toString, 'call', _560 => _560()]));
|
|
27585
28554
|
params.set(paramName, tabId);
|
|
27586
28555
|
const method = replaceState ? "replace" : "push";
|
|
27587
28556
|
router[method](`${pathname}?${params.toString()}`);
|
|
27588
|
-
_optionalChain([controlledOnTabChange, 'optionalCall',
|
|
28557
|
+
_optionalChain([controlledOnTabChange, 'optionalCall', _561 => _561(tabId)]);
|
|
27589
28558
|
} else {
|
|
27590
|
-
_optionalChain([controlledOnTabChange, 'optionalCall',
|
|
28559
|
+
_optionalChain([controlledOnTabChange, 'optionalCall', _562 => _562(tabId)]);
|
|
27591
28560
|
}
|
|
27592
28561
|
};
|
|
27593
28562
|
const scrollRef = _react.useRef.call(void 0, null);
|
|
@@ -27675,7 +28644,7 @@ function TabNavigation({
|
|
|
27675
28644
|
var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
|
|
27676
28645
|
var getTabComponent = (tabs, tabId) => {
|
|
27677
28646
|
const tab = getTabById(tabs, tabId);
|
|
27678
|
-
return _optionalChain([tab, 'optionalAccess',
|
|
28647
|
+
return _optionalChain([tab, 'optionalAccess', _563 => _563.component]) || null;
|
|
27679
28648
|
};
|
|
27680
28649
|
|
|
27681
28650
|
// src/components/ui/alert.tsx
|
|
@@ -28116,16 +29085,16 @@ function FilterModal({
|
|
|
28116
29085
|
};
|
|
28117
29086
|
const handleReset = () => {
|
|
28118
29087
|
onFilterChange({});
|
|
28119
|
-
_optionalChain([onTagsChange, 'optionalCall',
|
|
29088
|
+
_optionalChain([onTagsChange, 'optionalCall', _564 => _564([])]);
|
|
28120
29089
|
onClose();
|
|
28121
29090
|
};
|
|
28122
29091
|
const handleApply = () => {
|
|
28123
29092
|
onFilterChange(selectedFilters);
|
|
28124
|
-
_optionalChain([onTagsChange, 'optionalCall',
|
|
29093
|
+
_optionalChain([onTagsChange, 'optionalCall', _565 => _565(pendingTags)]);
|
|
28125
29094
|
onClose();
|
|
28126
29095
|
};
|
|
28127
29096
|
const getColumnDirection = (columnKey) => {
|
|
28128
|
-
return _optionalChain([sortConfig, 'optionalAccess',
|
|
29097
|
+
return _optionalChain([sortConfig, 'optionalAccess', _566 => _566.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
|
|
28129
29098
|
};
|
|
28130
29099
|
const hasSort = !!sortConfig && sortConfig.columns.length > 0;
|
|
28131
29100
|
const hasFilterGroups = filterGroups.length > 0;
|
|
@@ -28174,7 +29143,7 @@ function FilterModal({
|
|
|
28174
29143
|
{
|
|
28175
29144
|
column,
|
|
28176
29145
|
currentDirection: getColumnDirection(column.key),
|
|
28177
|
-
onSort: (direction) => _optionalChain([onSort, 'optionalCall',
|
|
29146
|
+
onSort: (direction) => _optionalChain([onSort, 'optionalCall', _567 => _567(column.key, direction)]),
|
|
28178
29147
|
onClear: onSortClear ? () => onSortClear(column.key) : void 0
|
|
28179
29148
|
},
|
|
28180
29149
|
column.key
|
|
@@ -29093,26 +30062,26 @@ function DeviceCard({
|
|
|
29093
30062
|
] }),
|
|
29094
30063
|
device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", title: device.organization, children: device.organization })
|
|
29095
30064
|
] }),
|
|
29096
|
-
_optionalChain([actions, 'access',
|
|
30065
|
+
_optionalChain([actions, 'access', _568 => _568.moreButton, 'optionalAccess', _569 => _569.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29097
30066
|
"div",
|
|
29098
30067
|
{
|
|
29099
30068
|
className: "flex items-center justify-center p-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
|
|
29100
30069
|
onClick: (e) => {
|
|
29101
30070
|
e.stopPropagation();
|
|
29102
|
-
_optionalChain([actions, 'access',
|
|
30071
|
+
_optionalChain([actions, 'access', _570 => _570.moreButton, 'optionalAccess', _571 => _571.onClick, 'optionalCall', _572 => _572()]);
|
|
29103
30072
|
},
|
|
29104
30073
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
|
|
29105
30074
|
}
|
|
29106
30075
|
),
|
|
29107
|
-
_optionalChain([actions, 'access',
|
|
29108
|
-
_optionalChain([actions, 'access',
|
|
30076
|
+
_optionalChain([actions, 'access', _573 => _573.detailsButton, 'optionalAccess', _574 => _574.visible]) !== false && _optionalChain([actions, 'access', _575 => _575.detailsButton, 'optionalAccess', _576 => _576.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
|
|
30077
|
+
_optionalChain([actions, 'access', _577 => _577.customActions, 'optionalAccess', _578 => _578.map, 'call', _579 => _579(
|
|
29109
30078
|
(action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29110
30079
|
"div",
|
|
29111
30080
|
{
|
|
29112
30081
|
className: "flex items-center justify-center px-4 py-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
|
|
29113
30082
|
onClick: (e) => {
|
|
29114
30083
|
e.stopPropagation();
|
|
29115
|
-
_optionalChain([action, 'access',
|
|
30084
|
+
_optionalChain([action, 'access', _580 => _580.onClick, 'optionalCall', _581 => _581()]);
|
|
29116
30085
|
},
|
|
29117
30086
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
|
|
29118
30087
|
},
|
|
@@ -29545,7 +30514,7 @@ function MoreActionsMenu({
|
|
|
29545
30514
|
] });
|
|
29546
30515
|
const handleActivate = (e) => {
|
|
29547
30516
|
e.stopPropagation();
|
|
29548
|
-
if (!item.disabled) _optionalChain([item, 'access',
|
|
30517
|
+
if (!item.disabled) _optionalChain([item, 'access', _582 => _582.onClick, 'optionalCall', _583 => _583()]);
|
|
29549
30518
|
};
|
|
29550
30519
|
if (item.href) {
|
|
29551
30520
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -29675,7 +30644,7 @@ function OrganizationCard({
|
|
|
29675
30644
|
const handleActionClick = (e) => {
|
|
29676
30645
|
e.preventDefault();
|
|
29677
30646
|
e.stopPropagation();
|
|
29678
|
-
_optionalChain([actionButton, 'optionalAccess',
|
|
30647
|
+
_optionalChain([actionButton, 'optionalAccess', _584 => _584.onClick, 'call', _585 => _585(organization, e)]);
|
|
29679
30648
|
};
|
|
29680
30649
|
const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
29681
30650
|
"div",
|
|
@@ -29828,7 +30797,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
|
|
|
29828
30797
|
onKeyDown: (e) => {
|
|
29829
30798
|
if (e.key === "Enter" || e.key === " ") {
|
|
29830
30799
|
e.preventDefault();
|
|
29831
|
-
_optionalChain([onClick, 'optionalCall',
|
|
30800
|
+
_optionalChain([onClick, 'optionalCall', _586 => _586()]);
|
|
29832
30801
|
}
|
|
29833
30802
|
},
|
|
29834
30803
|
children: [
|
|
@@ -29929,7 +30898,7 @@ var LogsList = React96.forwardRef(({
|
|
|
29929
30898
|
log,
|
|
29930
30899
|
isLast: index === logs.length - 1,
|
|
29931
30900
|
showConnector,
|
|
29932
|
-
onClick: () => _optionalChain([onLogClick, 'optionalCall',
|
|
30901
|
+
onClick: () => _optionalChain([onLogClick, 'optionalCall', _587 => _587(log)])
|
|
29933
30902
|
},
|
|
29934
30903
|
log.id
|
|
29935
30904
|
))
|
|
@@ -29940,74 +30909,6 @@ var LogsList = React96.forwardRef(({
|
|
|
29940
30909
|
});
|
|
29941
30910
|
LogsList.displayName = "LogsList";
|
|
29942
30911
|
|
|
29943
|
-
// src/types/announcement.ts
|
|
29944
|
-
var AVAILABLE_SVG_ICONS = [
|
|
29945
|
-
// OpenFrame Logo Options
|
|
29946
|
-
{ name: "openframe-logo", label: "OpenFrame Logo", component: null },
|
|
29947
|
-
// Platform Logos
|
|
29948
|
-
{ name: "openmsp-logo", label: "OpenMSP Logo", component: null },
|
|
29949
|
-
{ name: "flamingo-logo", label: "Flamingo Logo", component: null },
|
|
29950
|
-
// Lucide Icons
|
|
29951
|
-
{ name: "megaphone", label: "Megaphone", component: null },
|
|
29952
|
-
{ name: "bell", label: "Bell", component: null },
|
|
29953
|
-
{ name: "info", label: "Information", component: null },
|
|
29954
|
-
{ name: "star", label: "Star", component: null },
|
|
29955
|
-
{ name: "rocket", label: "Rocket", component: null },
|
|
29956
|
-
{ name: "package", label: "Package", component: null }
|
|
29957
|
-
];
|
|
29958
|
-
|
|
29959
|
-
// src/types/product-release.ts
|
|
29960
|
-
var releaseTypeOptions = [
|
|
29961
|
-
{ value: "major", label: "Major Release", description: "Breaking changes, new architecture", color: "red" },
|
|
29962
|
-
{ value: "minor", label: "Minor Release", description: "New features, backward compatible", color: "blue" },
|
|
29963
|
-
{ value: "patch", label: "Patch Release", description: "Bug fixes only", color: "green" },
|
|
29964
|
-
{ value: "beta", label: "Beta Release", description: "Pre-release testing version", color: "yellow" },
|
|
29965
|
-
{ value: "alpha", label: "Alpha Release", description: "Early testing version", color: "orange" }
|
|
29966
|
-
];
|
|
29967
|
-
var releaseStatusOptions = [
|
|
29968
|
-
{ value: "alpha", label: "Alpha", description: "Early development, unstable", color: "orange" },
|
|
29969
|
-
{ value: "beta", label: "Beta", description: "Feature complete, testing", color: "yellow" },
|
|
29970
|
-
{ value: "stable", label: "Stable", description: "Production ready", color: "green" },
|
|
29971
|
-
{ value: "deprecated", label: "Deprecated", description: "No longer supported", color: "gray" }
|
|
29972
|
-
];
|
|
29973
|
-
var changelogLabels = {
|
|
29974
|
-
features_added: "Features Added",
|
|
29975
|
-
bugs_fixed: "Bugs Fixed",
|
|
29976
|
-
improvements: "Improvements",
|
|
29977
|
-
breaking_changes: "Breaking Changes"
|
|
29978
|
-
};
|
|
29979
|
-
var SEMVER_REGEX = /^\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/;
|
|
29980
|
-
|
|
29981
|
-
// src/types/tmcg.ts
|
|
29982
|
-
var TMCG_ROLES = {
|
|
29983
|
-
FOUNDER: "founder",
|
|
29984
|
-
ORGANIZER: "organizer",
|
|
29985
|
-
MEMBER: "member",
|
|
29986
|
-
CONTRIBUTOR: "contributor",
|
|
29987
|
-
SPEAKER: "speaker",
|
|
29988
|
-
MENTOR: "mentor"
|
|
29989
|
-
};
|
|
29990
|
-
var TMCG_ROLE_DISPLAY_NAMES = {
|
|
29991
|
-
[TMCG_ROLES.FOUNDER]: "Founder",
|
|
29992
|
-
[TMCG_ROLES.ORGANIZER]: "Organizer",
|
|
29993
|
-
[TMCG_ROLES.MEMBER]: "Member",
|
|
29994
|
-
[TMCG_ROLES.CONTRIBUTOR]: "Contributor",
|
|
29995
|
-
[TMCG_ROLES.SPEAKER]: "Speaker",
|
|
29996
|
-
[TMCG_ROLES.MENTOR]: "Mentor"
|
|
29997
|
-
};
|
|
29998
|
-
var TMCG_SOCIAL_PLATFORMS = {
|
|
29999
|
-
linkedin: "LinkedIn",
|
|
30000
|
-
twitter: "Twitter",
|
|
30001
|
-
github: "GitHub",
|
|
30002
|
-
website: "Website",
|
|
30003
|
-
youtube: "YouTube",
|
|
30004
|
-
instagram: "Instagram",
|
|
30005
|
-
facebook: "Facebook",
|
|
30006
|
-
discord: "Discord",
|
|
30007
|
-
telegram: "Telegram",
|
|
30008
|
-
slack: "Slack"
|
|
30009
|
-
};
|
|
30010
|
-
|
|
30011
30912
|
// src/assets/index.ts
|
|
30012
30913
|
var assets = {};
|
|
30013
30914
|
|
|
@@ -30184,125 +31085,6 @@ var TooltipContent = React98.forwardRef(({ className, sideOffset = 4, ...props }
|
|
|
30184
31085
|
) }));
|
|
30185
31086
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
30186
31087
|
|
|
30187
|
-
// src/components/ui/error-state.tsx
|
|
30188
|
-
_chunkKUZGEA7Ucjs.init_button2.call(void 0, );
|
|
30189
|
-
_chunk664KA5FIcjs.init_cn.call(void 0, );
|
|
30190
|
-
|
|
30191
|
-
|
|
30192
|
-
function ErrorState({
|
|
30193
|
-
title = "Error",
|
|
30194
|
-
message: message2,
|
|
30195
|
-
variant = "error",
|
|
30196
|
-
showIcon = true,
|
|
30197
|
-
showRetry = false,
|
|
30198
|
-
showHome = false,
|
|
30199
|
-
onRetry,
|
|
30200
|
-
onHome,
|
|
30201
|
-
className,
|
|
30202
|
-
containerClassName
|
|
30203
|
-
}) {
|
|
30204
|
-
const getVariantStyles = () => {
|
|
30205
|
-
switch (variant) {
|
|
30206
|
-
case "error":
|
|
30207
|
-
return {
|
|
30208
|
-
bg: "bg-ods-attention-red-error/20",
|
|
30209
|
-
border: "border-ods-attention-red-error",
|
|
30210
|
-
text: "text-ods-attention-red-error",
|
|
30211
|
-
icon: "text-ods-attention-red-error"
|
|
30212
|
-
};
|
|
30213
|
-
case "warning":
|
|
30214
|
-
return {
|
|
30215
|
-
bg: "bg-ods-attention-yellow-warning/20",
|
|
30216
|
-
border: "border-ods-attention-yellow-warning",
|
|
30217
|
-
text: "text-ods-attention-yellow-warning",
|
|
30218
|
-
icon: "text-ods-attention-yellow-warning"
|
|
30219
|
-
};
|
|
30220
|
-
case "info":
|
|
30221
|
-
return {
|
|
30222
|
-
bg: "bg-ods-bg-surface",
|
|
30223
|
-
border: "border-ods-border",
|
|
30224
|
-
text: "text-ods-text-secondary",
|
|
30225
|
-
icon: "text-ods-text-secondary"
|
|
30226
|
-
};
|
|
30227
|
-
}
|
|
30228
|
-
};
|
|
30229
|
-
const styles = getVariantStyles();
|
|
30230
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "p-6", containerClassName), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
30231
|
-
"rounded-lg p-4 border",
|
|
30232
|
-
styles.bg,
|
|
30233
|
-
styles.border,
|
|
30234
|
-
className
|
|
30235
|
-
), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-3", children: [
|
|
30236
|
-
showIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: _chunk664KA5FIcjs.cn.call(void 0, "h-5 w-5 mt-0.5 flex-shrink-0", styles.icon) }),
|
|
30237
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
|
|
30238
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunk664KA5FIcjs.cn.call(void 0, "font-semibold mb-1", styles.text), children: title }),
|
|
30239
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk664KA5FIcjs.cn.call(void 0, "text-sm", styles.text), children: message2 }),
|
|
30240
|
-
(showRetry || showHome) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 mt-3", children: [
|
|
30241
|
-
showRetry && onRetry && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30242
|
-
_chunkKUZGEA7Ucjs.Button,
|
|
30243
|
-
{
|
|
30244
|
-
onClick: onRetry,
|
|
30245
|
-
variant: "outline",
|
|
30246
|
-
size: "small-legacy",
|
|
30247
|
-
className: "h-8",
|
|
30248
|
-
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.RefreshCw, { className: "h-4 w-4" }),
|
|
30249
|
-
children: "Try Again"
|
|
30250
|
-
}
|
|
30251
|
-
),
|
|
30252
|
-
showHome && onHome && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30253
|
-
_chunkKUZGEA7Ucjs.Button,
|
|
30254
|
-
{
|
|
30255
|
-
onClick: onHome,
|
|
30256
|
-
variant: "outline",
|
|
30257
|
-
size: "small-legacy",
|
|
30258
|
-
className: "h-8",
|
|
30259
|
-
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Home, { className: "h-4 w-4" }),
|
|
30260
|
-
children: "Go Home"
|
|
30261
|
-
}
|
|
30262
|
-
)
|
|
30263
|
-
] })
|
|
30264
|
-
] })
|
|
30265
|
-
] }) }) });
|
|
30266
|
-
}
|
|
30267
|
-
function PageError({ message: message2, onRetry, onHome }) {
|
|
30268
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30269
|
-
ErrorState,
|
|
30270
|
-
{
|
|
30271
|
-
title: "Page Error",
|
|
30272
|
-
message: message2,
|
|
30273
|
-
variant: "error",
|
|
30274
|
-
showRetry: !!onRetry,
|
|
30275
|
-
showHome: !!onHome,
|
|
30276
|
-
onRetry,
|
|
30277
|
-
onHome
|
|
30278
|
-
}
|
|
30279
|
-
);
|
|
30280
|
-
}
|
|
30281
|
-
function LoadError({ message: message2, onRetry }) {
|
|
30282
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30283
|
-
ErrorState,
|
|
30284
|
-
{
|
|
30285
|
-
title: "Loading Error",
|
|
30286
|
-
message: message2,
|
|
30287
|
-
variant: "error",
|
|
30288
|
-
showRetry: !!onRetry,
|
|
30289
|
-
onRetry
|
|
30290
|
-
}
|
|
30291
|
-
);
|
|
30292
|
-
}
|
|
30293
|
-
function NotFoundError({ message: message2 = "The requested item was not found", onHome }) {
|
|
30294
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30295
|
-
ErrorState,
|
|
30296
|
-
{
|
|
30297
|
-
title: "Not Found",
|
|
30298
|
-
message: message2,
|
|
30299
|
-
variant: "warning",
|
|
30300
|
-
showHome: !!onHome,
|
|
30301
|
-
onHome
|
|
30302
|
-
}
|
|
30303
|
-
);
|
|
30304
|
-
}
|
|
30305
|
-
|
|
30306
31088
|
// src/components/ui/content-loader.tsx
|
|
30307
31089
|
_chunk664KA5FIcjs.init_cn.call(void 0, );
|
|
30308
31090
|
|
|
@@ -30518,7 +31300,7 @@ function CursorPaginationSimple({
|
|
|
30518
31300
|
{
|
|
30519
31301
|
variant: "transparent",
|
|
30520
31302
|
size: "icon",
|
|
30521
|
-
onClick: () => _optionalChain([onPrevious, 'optionalCall',
|
|
31303
|
+
onClick: () => _optionalChain([onPrevious, 'optionalCall', _588 => _588("")]),
|
|
30522
31304
|
disabled: !hasPreviousPage || loading,
|
|
30523
31305
|
className: "h-8 w-8",
|
|
30524
31306
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
|
|
@@ -30530,7 +31312,7 @@ function CursorPaginationSimple({
|
|
|
30530
31312
|
{
|
|
30531
31313
|
variant: "transparent",
|
|
30532
31314
|
size: "icon",
|
|
30533
|
-
onClick: () => _optionalChain([onNext, 'optionalCall',
|
|
31315
|
+
onClick: () => _optionalChain([onNext, 'optionalCall', _589 => _589("")]),
|
|
30534
31316
|
disabled: !hasNextPage || loading,
|
|
30535
31317
|
className: "h-8 w-8",
|
|
30536
31318
|
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
|
|
@@ -30590,7 +31372,7 @@ function TableColumnFilterDropdown({
|
|
|
30590
31372
|
placement = "bottom-start",
|
|
30591
31373
|
dropdownClassName = "min-w-[240px]"
|
|
30592
31374
|
}) {
|
|
30593
|
-
const activeCount = _optionalChain([filters, 'optionalAccess',
|
|
31375
|
+
const activeCount = _optionalChain([filters, 'optionalAccess', _590 => _590[columnKey], 'optionalAccess', _591 => _591.length]) || 0;
|
|
30594
31376
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30595
31377
|
FiltersDropdown,
|
|
30596
31378
|
{
|
|
@@ -30633,7 +31415,7 @@ function TableColumnFilterDropdown({
|
|
|
30633
31415
|
delete newFilters[columnKey];
|
|
30634
31416
|
onFilterChange(newFilters);
|
|
30635
31417
|
},
|
|
30636
|
-
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess',
|
|
31418
|
+
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _592 => _592[columnKey]]) || [] },
|
|
30637
31419
|
placement,
|
|
30638
31420
|
dropdownClassName
|
|
30639
31421
|
}
|
|
@@ -30930,7 +31712,7 @@ function TableRow({
|
|
|
30930
31712
|
const keys = column.key.split(".");
|
|
30931
31713
|
let value = item;
|
|
30932
31714
|
for (const key of keys) {
|
|
30933
|
-
value = _optionalChain([value, 'optionalAccess',
|
|
31715
|
+
value = _optionalChain([value, 'optionalAccess', _593 => _593[key]]);
|
|
30934
31716
|
}
|
|
30935
31717
|
if (value === null || value === void 0) {
|
|
30936
31718
|
return "-";
|
|
@@ -31000,7 +31782,7 @@ function TableRow({
|
|
|
31000
31782
|
// src/components/ui/table/table.tsx
|
|
31001
31783
|
|
|
31002
31784
|
function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
|
|
31003
|
-
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess',
|
|
31785
|
+
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _594 => _594.length])) || Boolean(renderRowActions);
|
|
31004
31786
|
const result = [...columns];
|
|
31005
31787
|
if (hasActions) {
|
|
31006
31788
|
const actionsColumn = {
|
|
@@ -31094,7 +31876,7 @@ function Table({
|
|
|
31094
31876
|
return rowKey(item);
|
|
31095
31877
|
}
|
|
31096
31878
|
const key = item[rowKey];
|
|
31097
|
-
return _optionalChain([key, 'optionalAccess',
|
|
31879
|
+
return _optionalChain([key, 'optionalAccess', _595 => _595.toString, 'call', _596 => _596()]) || index.toString();
|
|
31098
31880
|
};
|
|
31099
31881
|
const getRowClassName = (item, index) => {
|
|
31100
31882
|
if (typeof rowClassName === "function") {
|
|
@@ -31128,23 +31910,23 @@ function Table({
|
|
|
31128
31910
|
const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
|
|
31129
31911
|
const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
|
|
31130
31912
|
const sentinelRef = _react.useRef.call(void 0, null);
|
|
31131
|
-
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess',
|
|
31132
|
-
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess',
|
|
31913
|
+
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _597 => _597.onLoadMore]));
|
|
31914
|
+
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _598 => _598.onLoadMore]);
|
|
31133
31915
|
_react.useEffect.call(void 0, () => {
|
|
31134
|
-
if (!_optionalChain([infiniteScroll, 'optionalAccess',
|
|
31916
|
+
if (!_optionalChain([infiniteScroll, 'optionalAccess', _599 => _599.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
|
|
31135
31917
|
const sentinel = sentinelRef.current;
|
|
31136
31918
|
if (!sentinel) return;
|
|
31137
31919
|
const observer = new IntersectionObserver(
|
|
31138
31920
|
(entries) => {
|
|
31139
|
-
if (_optionalChain([entries, 'access',
|
|
31140
|
-
_optionalChain([onLoadMoreRef, 'access',
|
|
31921
|
+
if (_optionalChain([entries, 'access', _600 => _600[0], 'optionalAccess', _601 => _601.isIntersecting])) {
|
|
31922
|
+
_optionalChain([onLoadMoreRef, 'access', _602 => _602.current, 'optionalCall', _603 => _603()]);
|
|
31141
31923
|
}
|
|
31142
31924
|
},
|
|
31143
31925
|
{ rootMargin: "200px" }
|
|
31144
31926
|
);
|
|
31145
31927
|
observer.observe(sentinel);
|
|
31146
31928
|
return () => observer.disconnect();
|
|
31147
|
-
}, [_optionalChain([infiniteScroll, 'optionalAccess',
|
|
31929
|
+
}, [_optionalChain([infiniteScroll, 'optionalAccess', _604 => _604.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _605 => _605.isFetchingNextPage])]);
|
|
31148
31930
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
|
|
31149
31931
|
showToolbar && bulkActions && selectedRows.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between bg-ods-card border border-ods-border rounded-[6px] p-3 mb-2", children: [
|
|
31150
31932
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
|
|
@@ -31215,7 +31997,7 @@ function Table({
|
|
|
31215
31997
|
},
|
|
31216
31998
|
getRowKey(item, index)
|
|
31217
31999
|
)),
|
|
31218
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
32000
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _606 => _606.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31219
32001
|
TableCardSkeleton,
|
|
31220
32002
|
{
|
|
31221
32003
|
columns,
|
|
@@ -31224,7 +32006,7 @@ function Table({
|
|
|
31224
32006
|
hasChevron: Boolean(rowHref)
|
|
31225
32007
|
}
|
|
31226
32008
|
),
|
|
31227
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
32009
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _607 => _607.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
|
|
31228
32010
|
!infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
31229
32011
|
"div",
|
|
31230
32012
|
{
|
|
@@ -31582,7 +32364,7 @@ function QueryReportTable({
|
|
|
31582
32364
|
);
|
|
31583
32365
|
const handleExport = () => {
|
|
31584
32366
|
exportToCSV(data, columns, exportFilename);
|
|
31585
|
-
_optionalChain([onExport, 'optionalCall',
|
|
32367
|
+
_optionalChain([onExport, 'optionalCall', _608 => _608()]);
|
|
31586
32368
|
};
|
|
31587
32369
|
const tableMinWidth = columns.length * (columnWidth + 16);
|
|
31588
32370
|
const {
|
|
@@ -31755,7 +32537,7 @@ function DataTableColumnFilter({
|
|
|
31755
32537
|
align = "left"
|
|
31756
32538
|
}) {
|
|
31757
32539
|
const currentValue = column.getFilterValue();
|
|
31758
|
-
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess',
|
|
32540
|
+
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _609 => _609.length]), () => ( 0));
|
|
31759
32541
|
const sections = _react.useMemo.call(void 0,
|
|
31760
32542
|
() => [
|
|
31761
32543
|
{
|
|
@@ -31835,7 +32617,7 @@ function DataTableHeader({
|
|
|
31835
32617
|
const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
|
|
31836
32618
|
if (header.isPlaceholder) return false;
|
|
31837
32619
|
if (isLgUp) return true;
|
|
31838
|
-
return Boolean(_optionalChain([header, 'access',
|
|
32620
|
+
return Boolean(_optionalChain([header, 'access', _610 => _610.column, 'access', _611 => _611.columnDef, 'access', _612 => _612.meta, 'optionalAccess', _613 => _613.filter]));
|
|
31839
32621
|
});
|
|
31840
32622
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31841
32623
|
"div",
|
|
@@ -31865,20 +32647,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
|
|
|
31865
32647
|
if (header.isPlaceholder) return null;
|
|
31866
32648
|
const column = header.column;
|
|
31867
32649
|
const meta = column.columnDef.meta;
|
|
31868
|
-
const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess',
|
|
31869
|
-
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
31870
|
-
const canSort = _optionalChain([meta, 'optionalAccess',
|
|
31871
|
-
const sortDir = _optionalChain([sort, 'optionalAccess',
|
|
32650
|
+
const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _614 => _614.filter]));
|
|
32651
|
+
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _615 => _615.align]), () => ( "left"));
|
|
32652
|
+
const canSort = _optionalChain([meta, 'optionalAccess', _616 => _616.sortable]) === true;
|
|
32653
|
+
const sortDir = _optionalChain([sort, 'optionalAccess', _617 => _617.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
|
|
31872
32654
|
if (!isLgUp && !hasFilter) return null;
|
|
31873
32655
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31874
32656
|
"div",
|
|
31875
32657
|
{
|
|
31876
32658
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
31877
32659
|
"flex items-stretch",
|
|
31878
|
-
isLgUp && (_optionalChain([meta, 'optionalAccess',
|
|
31879
|
-
_optionalChain([meta, 'optionalAccess',
|
|
32660
|
+
isLgUp && (_optionalChain([meta, 'optionalAccess', _618 => _618.width]) || "flex-1 min-w-0"),
|
|
32661
|
+
_optionalChain([meta, 'optionalAccess', _619 => _619.headerClassName]),
|
|
31880
32662
|
// Don't apply hide classes if column is filterable on tablet (keep filter accessible)
|
|
31881
|
-
!(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess',
|
|
32663
|
+
!(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _620 => _620.hideAt]))
|
|
31882
32664
|
),
|
|
31883
32665
|
children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31884
32666
|
DataTableColumnFilter,
|
|
@@ -31897,7 +32679,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
|
|
|
31897
32679
|
isLgUp && alignJustify(align),
|
|
31898
32680
|
canSort && "group cursor-pointer"
|
|
31899
32681
|
),
|
|
31900
|
-
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall',
|
|
32682
|
+
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _621 => _621(column.id)]) : void 0,
|
|
31901
32683
|
children: [
|
|
31902
32684
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
|
|
31903
32685
|
canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
|
|
@@ -31981,7 +32763,7 @@ function DataTableSkeleton({
|
|
|
31981
32763
|
}) {
|
|
31982
32764
|
const table = useDataTableContext();
|
|
31983
32765
|
const columns = table.getVisibleFlatColumns();
|
|
31984
|
-
const firstColumnId = _optionalChain([columns, 'access',
|
|
32766
|
+
const firstColumnId = _optionalChain([columns, 'access', _622 => _622[0], 'optionalAccess', _623 => _623.id]);
|
|
31985
32767
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
31986
32768
|
"div",
|
|
31987
32769
|
{
|
|
@@ -32005,7 +32787,7 @@ function DataTableSkeleton({
|
|
|
32005
32787
|
{
|
|
32006
32788
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
32007
32789
|
"flex flex-col justify-center shrink-0",
|
|
32008
|
-
_optionalChain([meta, 'optionalAccess',
|
|
32790
|
+
_optionalChain([meta, 'optionalAccess', _624 => _624.width]) || "flex-1"
|
|
32009
32791
|
),
|
|
32010
32792
|
children: [
|
|
32011
32793
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
|
|
@@ -32051,7 +32833,7 @@ function DataTableRowImpl({
|
|
|
32051
32833
|
const handleClick = _react.useCallback.call(void 0,
|
|
32052
32834
|
(e) => {
|
|
32053
32835
|
const target = e.target;
|
|
32054
|
-
if (!_optionalChain([containerRef, 'access',
|
|
32836
|
+
if (!_optionalChain([containerRef, 'access', _625 => _625.current, 'optionalAccess', _626 => _626.contains, 'call', _627 => _627(target)])) {
|
|
32055
32837
|
if (isLinkMode) e.preventDefault();
|
|
32056
32838
|
return;
|
|
32057
32839
|
}
|
|
@@ -32059,7 +32841,7 @@ function DataTableRowImpl({
|
|
|
32059
32841
|
if (isLinkMode) e.preventDefault();
|
|
32060
32842
|
return;
|
|
32061
32843
|
}
|
|
32062
|
-
_optionalChain([onClick, 'optionalCall',
|
|
32844
|
+
_optionalChain([onClick, 'optionalCall', _628 => _628(row.original)]);
|
|
32063
32845
|
},
|
|
32064
32846
|
[onClick, row.original, isLinkMode]
|
|
32065
32847
|
);
|
|
@@ -32082,10 +32864,10 @@ function DataTableRowImpl({
|
|
|
32082
32864
|
{
|
|
32083
32865
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
32084
32866
|
"flex flex-col overflow-hidden",
|
|
32085
|
-
alignJustify(_optionalChain([meta, 'optionalAccess',
|
|
32086
|
-
_optionalChain([meta, 'optionalAccess',
|
|
32087
|
-
_optionalChain([meta, 'optionalAccess',
|
|
32088
|
-
getHideClasses2(_optionalChain([meta, 'optionalAccess',
|
|
32867
|
+
alignJustify(_optionalChain([meta, 'optionalAccess', _629 => _629.align])),
|
|
32868
|
+
_optionalChain([meta, 'optionalAccess', _630 => _630.width]) || "flex-1 min-w-0",
|
|
32869
|
+
_optionalChain([meta, 'optionalAccess', _631 => _631.cellClassName]),
|
|
32870
|
+
getHideClasses2(_optionalChain([meta, 'optionalAccess', _632 => _632.hideAt]))
|
|
32089
32871
|
),
|
|
32090
32872
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
|
|
32091
32873
|
},
|
|
@@ -32150,7 +32932,7 @@ function DataTableBody({
|
|
|
32150
32932
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
|
|
32151
32933
|
rows.map((row, index) => {
|
|
32152
32934
|
const item = row.original;
|
|
32153
|
-
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall',
|
|
32935
|
+
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _633 => _633(item)]), () => ( void 0));
|
|
32154
32936
|
const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
|
|
32155
32937
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
32156
32938
|
DataTableRow,
|
|
@@ -32214,7 +32996,7 @@ function DataTableInfiniteFooter({
|
|
|
32214
32996
|
if (!sentinel) return;
|
|
32215
32997
|
const observer = new IntersectionObserver(
|
|
32216
32998
|
(entries) => {
|
|
32217
|
-
if (_optionalChain([entries, 'access',
|
|
32999
|
+
if (_optionalChain([entries, 'access', _634 => _634[0], 'optionalAccess', _635 => _635.isIntersecting])) onLoadMoreRef.current();
|
|
32218
33000
|
},
|
|
32219
33001
|
{ rootMargin }
|
|
32220
33002
|
);
|
|
@@ -32262,7 +33044,7 @@ function DataTableRowCount({
|
|
|
32262
33044
|
const table = useDataTableContext();
|
|
32263
33045
|
const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
|
|
32264
33046
|
if (hideWhenEmpty && count === 0) return null;
|
|
32265
|
-
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall',
|
|
33047
|
+
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _636 => _636(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
|
|
32266
33048
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
32267
33049
|
"span",
|
|
32268
33050
|
{
|
|
@@ -32418,7 +33200,7 @@ function SearchInput({
|
|
|
32418
33200
|
if (!showHiddenTags) return;
|
|
32419
33201
|
const handleClick = (e) => {
|
|
32420
33202
|
const target = e.target;
|
|
32421
|
-
if (!_optionalChain([hiddenTagsRef, 'access',
|
|
33203
|
+
if (!_optionalChain([hiddenTagsRef, 'access', _637 => _637.current, 'optionalAccess', _638 => _638.contains, 'call', _639 => _639(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _640 => _640.current, 'optionalAccess', _641 => _641.contains, 'call', _642 => _642(target)])) {
|
|
32422
33204
|
setShowHiddenTags(false);
|
|
32423
33205
|
}
|
|
32424
33206
|
};
|
|
@@ -32466,10 +33248,10 @@ function SearchInput({
|
|
|
32466
33248
|
} else {
|
|
32467
33249
|
setInternalValue("");
|
|
32468
33250
|
}
|
|
32469
|
-
_optionalChain([inputRef, 'access',
|
|
33251
|
+
_optionalChain([inputRef, 'access', _643 => _643.current, 'optionalAccess', _644 => _644.focus, 'call', _645 => _645()]);
|
|
32470
33252
|
};
|
|
32471
33253
|
const handleResultClick = (result, e) => {
|
|
32472
|
-
_optionalChain([onResultSelect, 'optionalCall',
|
|
33254
|
+
_optionalChain([onResultSelect, 'optionalCall', _646 => _646(
|
|
32473
33255
|
result,
|
|
32474
33256
|
e ? {
|
|
32475
33257
|
metaKey: e.metaKey,
|
|
@@ -32501,7 +33283,7 @@ function SearchInput({
|
|
|
32501
33283
|
if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
|
|
32502
33284
|
handleResultClick(flatResults[highlightedIndex]);
|
|
32503
33285
|
} else {
|
|
32504
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
33286
|
+
_optionalChain([onSubmit, 'optionalCall', _647 => _647(currentValue)]);
|
|
32505
33287
|
}
|
|
32506
33288
|
break;
|
|
32507
33289
|
case "Escape":
|
|
@@ -32579,7 +33361,7 @@ function SearchInput({
|
|
|
32579
33361
|
dropdownVisible && "!border-ods-accent"
|
|
32580
33362
|
),
|
|
32581
33363
|
onClick: () => {
|
|
32582
|
-
_optionalChain([inputRef, 'access',
|
|
33364
|
+
_optionalChain([inputRef, 'access', _648 => _648.current, 'optionalAccess', _649 => _649.focus, 'call', _650 => _650()]);
|
|
32583
33365
|
setIsOpen(true);
|
|
32584
33366
|
},
|
|
32585
33367
|
children: [
|
|
@@ -32663,10 +33445,10 @@ function SearchInput({
|
|
|
32663
33445
|
align: "start",
|
|
32664
33446
|
onOpenAutoFocus: (e) => {
|
|
32665
33447
|
e.preventDefault();
|
|
32666
|
-
_optionalChain([inputRef, 'access',
|
|
33448
|
+
_optionalChain([inputRef, 'access', _651 => _651.current, 'optionalAccess', _652 => _652.focus, 'call', _653 => _653()]);
|
|
32667
33449
|
},
|
|
32668
33450
|
onInteractOutside: (e) => {
|
|
32669
|
-
if (_optionalChain([containerRef, 'access',
|
|
33451
|
+
if (_optionalChain([containerRef, 'access', _654 => _654.current, 'optionalAccess', _655 => _655.contains, 'call', _656 => _656(e.target)])) {
|
|
32670
33452
|
e.preventDefault();
|
|
32671
33453
|
}
|
|
32672
33454
|
},
|
|
@@ -32683,10 +33465,10 @@ function SearchInput({
|
|
|
32683
33465
|
ref: hiddenTagsPopupRef,
|
|
32684
33466
|
items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
|
|
32685
33467
|
style: {
|
|
32686
|
-
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access',
|
|
33468
|
+
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _657 => _657.current, 'optionalAccess', _658 => _658.getBoundingClientRect, 'call', _659 => _659(), 'access', _660 => _660.left]), () => ( 0))) : 0
|
|
32687
33469
|
},
|
|
32688
33470
|
onRemove: (value2) => {
|
|
32689
|
-
_optionalChain([onFilterRemove, 'optionalCall',
|
|
33471
|
+
_optionalChain([onFilterRemove, 'optionalCall', _661 => _661(value2)]);
|
|
32690
33472
|
if (hiddenCount <= 1) setShowHiddenTags(false);
|
|
32691
33473
|
}
|
|
32692
33474
|
}
|
|
@@ -32737,7 +33519,7 @@ function FilterListItem({
|
|
|
32737
33519
|
}) {
|
|
32738
33520
|
const handleToggle = () => {
|
|
32739
33521
|
if (disabled) return;
|
|
32740
|
-
_optionalChain([onToggle, 'optionalCall',
|
|
33522
|
+
_optionalChain([onToggle, 'optionalCall', _662 => _662(!selected)]);
|
|
32741
33523
|
};
|
|
32742
33524
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
32743
33525
|
"div",
|
|
@@ -32784,7 +33566,7 @@ function FilterListItem({
|
|
|
32784
33566
|
CheckboxPrimitive4.Root,
|
|
32785
33567
|
{
|
|
32786
33568
|
checked: selected,
|
|
32787
|
-
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall',
|
|
33569
|
+
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _663 => _663(c === true)]),
|
|
32788
33570
|
onClick: (e) => e.stopPropagation(),
|
|
32789
33571
|
disabled,
|
|
32790
33572
|
"aria-label": title,
|
|
@@ -32883,7 +33665,7 @@ function TagSearchInput({
|
|
|
32883
33665
|
if (!showHiddenTags) return;
|
|
32884
33666
|
const handleClick = (e) => {
|
|
32885
33667
|
const target = e.target;
|
|
32886
|
-
if (!_optionalChain([hiddenTagsRef, 'access',
|
|
33668
|
+
if (!_optionalChain([hiddenTagsRef, 'access', _664 => _664.current, 'optionalAccess', _665 => _665.contains, 'call', _666 => _666(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _667 => _667.current, 'optionalAccess', _668 => _668.contains, 'call', _669 => _669(target)])) {
|
|
32887
33669
|
setShowHiddenTags(false);
|
|
32888
33670
|
}
|
|
32889
33671
|
};
|
|
@@ -32899,13 +33681,13 @@ function TagSearchInput({
|
|
|
32899
33681
|
e.preventDefault();
|
|
32900
33682
|
onSubmit(searchValue);
|
|
32901
33683
|
}
|
|
32902
|
-
_optionalChain([onKeyDown, 'optionalCall',
|
|
33684
|
+
_optionalChain([onKeyDown, 'optionalCall', _670 => _670(e)]);
|
|
32903
33685
|
};
|
|
32904
33686
|
const handleClearAll = (e) => {
|
|
32905
33687
|
e.stopPropagation();
|
|
32906
33688
|
e.preventDefault();
|
|
32907
|
-
_optionalChain([onClearAll, 'optionalCall',
|
|
32908
|
-
_optionalChain([inputRef, 'access',
|
|
33689
|
+
_optionalChain([onClearAll, 'optionalCall', _671 => _671()]);
|
|
33690
|
+
_optionalChain([inputRef, 'access', _672 => _672.current, 'optionalAccess', _673 => _673.focus, 'call', _674 => _674()]);
|
|
32909
33691
|
};
|
|
32910
33692
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
|
|
32911
33693
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -32922,7 +33704,7 @@ function TagSearchInput({
|
|
|
32922
33704
|
className
|
|
32923
33705
|
),
|
|
32924
33706
|
onClick: () => {
|
|
32925
|
-
if (!disabled) _optionalChain([inputRef, 'access',
|
|
33707
|
+
if (!disabled) _optionalChain([inputRef, 'access', _675 => _675.current, 'optionalAccess', _676 => _676.focus, 'call', _677 => _677()]);
|
|
32926
33708
|
},
|
|
32927
33709
|
children: [
|
|
32928
33710
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 flex items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "text-ods-text-secondary size-4 md:size-6" }) }),
|
|
@@ -32994,7 +33776,7 @@ function TagSearchInput({
|
|
|
32994
33776
|
items: hiddenTags,
|
|
32995
33777
|
disabled,
|
|
32996
33778
|
style: {
|
|
32997
|
-
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access',
|
|
33779
|
+
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _678 => _678.current, 'optionalAccess', _679 => _679.getBoundingClientRect, 'call', _680 => _680(), 'access', _681 => _681.left]), () => ( 0))) : 0
|
|
32998
33780
|
},
|
|
32999
33781
|
onRemove: (value) => {
|
|
33000
33782
|
onTagRemove(value);
|
|
@@ -33095,7 +33877,7 @@ function MarkdownEditor({
|
|
|
33095
33877
|
const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
|
|
33096
33878
|
_react.useEffect.call(void 0, () => {
|
|
33097
33879
|
Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
|
|
33098
|
-
if (_optionalChain([mod, 'access',
|
|
33880
|
+
if (_optionalChain([mod, 'access', _682 => _682.commands, 'optionalAccess', _683 => _683.getExtraCommands])) {
|
|
33099
33881
|
setDefaultExtraCommands(mod.commands.getExtraCommands());
|
|
33100
33882
|
}
|
|
33101
33883
|
});
|
|
@@ -33129,7 +33911,7 @@ function MarkdownEditor({
|
|
|
33129
33911
|
const isImage = file.type.startsWith("image/");
|
|
33130
33912
|
const markdown = isImage ? `` : `[${file.name}](${url})`;
|
|
33131
33913
|
insertTextAtCursor(markdown);
|
|
33132
|
-
_optionalChain([onFileUploaded, 'optionalCall',
|
|
33914
|
+
_optionalChain([onFileUploaded, 'optionalCall', _684 => _684(url, file.name)]);
|
|
33133
33915
|
} catch (error) {
|
|
33134
33916
|
console.error("File upload failed:", error);
|
|
33135
33917
|
setUploadProgress("Upload failed. Please try again.");
|
|
@@ -33142,7 +33924,7 @@ function MarkdownEditor({
|
|
|
33142
33924
|
);
|
|
33143
33925
|
const handleFileInputChange = _react.useCallback.call(void 0,
|
|
33144
33926
|
(e) => {
|
|
33145
|
-
const file = _optionalChain([e, 'access',
|
|
33927
|
+
const file = _optionalChain([e, 'access', _685 => _685.target, 'access', _686 => _686.files, 'optionalAccess', _687 => _687[0]]);
|
|
33146
33928
|
if (file) {
|
|
33147
33929
|
handleFileUpload(file);
|
|
33148
33930
|
e.target.value = "";
|
|
@@ -33153,7 +33935,7 @@ function MarkdownEditor({
|
|
|
33153
33935
|
const handlePaste = _react.useCallback.call(void 0,
|
|
33154
33936
|
(e) => {
|
|
33155
33937
|
if (!onUploadFile) return;
|
|
33156
|
-
const items = _optionalChain([e, 'access',
|
|
33938
|
+
const items = _optionalChain([e, 'access', _688 => _688.clipboardData, 'optionalAccess', _689 => _689.items]);
|
|
33157
33939
|
if (!items) return;
|
|
33158
33940
|
for (const item of items) {
|
|
33159
33941
|
if (item.type.startsWith("image/")) {
|
|
@@ -33178,7 +33960,7 @@ function MarkdownEditor({
|
|
|
33178
33960
|
buttonProps: { "aria-label": "Upload file", title: "Upload file" },
|
|
33179
33961
|
icon: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "w-3 h-3" }),
|
|
33180
33962
|
execute: () => {
|
|
33181
|
-
_optionalChain([fileInputRef, 'access',
|
|
33963
|
+
_optionalChain([fileInputRef, 'access', _690 => _690.current, 'optionalAccess', _691 => _691.click, 'call', _692 => _692()]);
|
|
33182
33964
|
}
|
|
33183
33965
|
} : null;
|
|
33184
33966
|
const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
|
|
@@ -33190,7 +33972,7 @@ function MarkdownEditor({
|
|
|
33190
33972
|
const EDGE_ZONE = 60;
|
|
33191
33973
|
const MAX_SCROLL_SPEED = 15;
|
|
33192
33974
|
const findScrollParent = _react.useCallback.call(void 0, (el) => {
|
|
33193
|
-
let node = _optionalChain([el, 'optionalAccess',
|
|
33975
|
+
let node = _optionalChain([el, 'optionalAccess', _693 => _693.parentElement]);
|
|
33194
33976
|
while (node && node !== document.documentElement) {
|
|
33195
33977
|
const { overflowY } = window.getComputedStyle(node);
|
|
33196
33978
|
if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
|
|
@@ -33333,7 +34115,7 @@ function matchesAccept(file, accept) {
|
|
|
33333
34115
|
});
|
|
33334
34116
|
}
|
|
33335
34117
|
function dragHasFiles(e) {
|
|
33336
|
-
const types = _optionalChain([e, 'access',
|
|
34118
|
+
const types = _optionalChain([e, 'access', _694 => _694.dataTransfer, 'optionalAccess', _695 => _695.types]);
|
|
33337
34119
|
if (!types) return false;
|
|
33338
34120
|
for (let i = 0; i < types.length; i++) {
|
|
33339
34121
|
if (types[i] === "Files") return true;
|
|
@@ -33428,7 +34210,7 @@ function FileUpload({
|
|
|
33428
34210
|
e.stopPropagation();
|
|
33429
34211
|
setDragActive(false);
|
|
33430
34212
|
if (disabled) return;
|
|
33431
|
-
if (_optionalChain([e, 'access',
|
|
34213
|
+
if (_optionalChain([e, 'access', _696 => _696.dataTransfer, 'access', _697 => _697.files, 'optionalAccess', _698 => _698.length])) {
|
|
33432
34214
|
handleFiles(e.dataTransfer.files);
|
|
33433
34215
|
}
|
|
33434
34216
|
};
|
|
@@ -33456,7 +34238,7 @@ function FileUpload({
|
|
|
33456
34238
|
e.preventDefault();
|
|
33457
34239
|
dragCounter = 0;
|
|
33458
34240
|
setDragActive(false);
|
|
33459
|
-
if (_optionalChain([e, 'access',
|
|
34241
|
+
if (_optionalChain([e, 'access', _699 => _699.dataTransfer, 'optionalAccess', _700 => _700.files, 'optionalAccess', _701 => _701.length])) {
|
|
33460
34242
|
handleFilesRef.current(e.dataTransfer.files);
|
|
33461
34243
|
}
|
|
33462
34244
|
};
|
|
@@ -33478,7 +34260,7 @@ function FileUpload({
|
|
|
33478
34260
|
};
|
|
33479
34261
|
}, [acceptWindowDrops, disabled]);
|
|
33480
34262
|
const handleFileSelect = (e) => {
|
|
33481
|
-
if (_optionalChain([e, 'access',
|
|
34263
|
+
if (_optionalChain([e, 'access', _702 => _702.target, 'access', _703 => _703.files, 'optionalAccess', _704 => _704.length])) {
|
|
33482
34264
|
handleFiles(e.target.files);
|
|
33483
34265
|
}
|
|
33484
34266
|
};
|
|
@@ -33495,7 +34277,7 @@ function FileUpload({
|
|
|
33495
34277
|
};
|
|
33496
34278
|
const openDialog = async () => {
|
|
33497
34279
|
if (disabled) return;
|
|
33498
|
-
_optionalChain([fileInputRef, 'access',
|
|
34280
|
+
_optionalChain([fileInputRef, 'access', _705 => _705.current, 'optionalAccess', _706 => _706.click, 'call', _707 => _707()]);
|
|
33499
34281
|
};
|
|
33500
34282
|
const displayError = error || validationError || void 0;
|
|
33501
34283
|
const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
|
|
@@ -33573,7 +34355,7 @@ function FileUpload({
|
|
|
33573
34355
|
"button",
|
|
33574
34356
|
{
|
|
33575
34357
|
type: "button",
|
|
33576
|
-
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall',
|
|
34358
|
+
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _708 => _708(entry.id)]),
|
|
33577
34359
|
className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
|
|
33578
34360
|
"aria-label": `Remove ${entry.fileName}`,
|
|
33579
34361
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
|
|
@@ -33696,7 +34478,7 @@ function ImageUploader({
|
|
|
33696
34478
|
onChange(file);
|
|
33697
34479
|
};
|
|
33698
34480
|
const handleFileSelect = (e) => {
|
|
33699
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
34481
|
+
validateAndEmit(_optionalChain([e, 'access', _709 => _709.target, 'access', _710 => _710.files, 'optionalAccess', _711 => _711[0]]));
|
|
33700
34482
|
if (inputRef.current) inputRef.current.value = "";
|
|
33701
34483
|
};
|
|
33702
34484
|
const handleDrag = (e) => {
|
|
@@ -33711,11 +34493,11 @@ function ImageUploader({
|
|
|
33711
34493
|
e.stopPropagation();
|
|
33712
34494
|
setDragActive(false);
|
|
33713
34495
|
if (!interactive) return;
|
|
33714
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
34496
|
+
validateAndEmit(_optionalChain([e, 'access', _712 => _712.dataTransfer, 'access', _713 => _713.files, 'optionalAccess', _714 => _714[0]]));
|
|
33715
34497
|
};
|
|
33716
34498
|
const openDialog = () => {
|
|
33717
34499
|
if (!interactive) return;
|
|
33718
|
-
_optionalChain([inputRef, 'access',
|
|
34500
|
+
_optionalChain([inputRef, 'access', _715 => _715.current, 'optionalAccess', _716 => _716.click, 'call', _717 => _717()]);
|
|
33719
34501
|
};
|
|
33720
34502
|
const handleRootKeyDown = (e) => {
|
|
33721
34503
|
if (hasImage || !interactive) return;
|
|
@@ -33872,7 +34654,7 @@ function CompactAssigneeDropdown({
|
|
|
33872
34654
|
return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
|
|
33873
34655
|
}, [filtered, currentAssignee]);
|
|
33874
34656
|
const handleSelect = (userId) => {
|
|
33875
|
-
const next = _optionalChain([currentAssignee, 'optionalAccess',
|
|
34657
|
+
const next = _optionalChain([currentAssignee, 'optionalAccess', _718 => _718.id]) === userId ? null : userId;
|
|
33876
34658
|
onAssign(next);
|
|
33877
34659
|
setIsOpen(false);
|
|
33878
34660
|
};
|
|
@@ -33937,7 +34719,7 @@ function CompactAssigneeDropdown({
|
|
|
33937
34719
|
}
|
|
33938
34720
|
) }),
|
|
33939
34721
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-h-80 overflow-y-auto py-[var(--spacing-system-xs)]", role: "listbox", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "Loading\u2026" }) : orderedOptions.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "No users found" }) : orderedOptions.map((opt) => {
|
|
33940
|
-
const isCurrent = _optionalChain([currentAssignee, 'optionalAccess',
|
|
34722
|
+
const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _719 => _719.id]) === opt.value;
|
|
33941
34723
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
33942
34724
|
"button",
|
|
33943
34725
|
{
|
|
@@ -34006,7 +34788,7 @@ function DefaultAssigneeDropdown({
|
|
|
34006
34788
|
Autocomplete,
|
|
34007
34789
|
{
|
|
34008
34790
|
options,
|
|
34009
|
-
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess',
|
|
34791
|
+
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _720 => _720.id]), () => ( null)),
|
|
34010
34792
|
onChange: (val) => {
|
|
34011
34793
|
onAssign(val);
|
|
34012
34794
|
setIsEditing(false);
|
|
@@ -34372,14 +35154,14 @@ function TicketInfoSection({
|
|
|
34372
35154
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
34373
35155
|
SquareAvatar,
|
|
34374
35156
|
{
|
|
34375
|
-
src: _optionalChain([organization, 'optionalAccess',
|
|
34376
|
-
alt: _optionalChain([organization, 'optionalAccess',
|
|
34377
|
-
fallback: _optionalChain([organization, 'optionalAccess',
|
|
35157
|
+
src: _optionalChain([organization, 'optionalAccess', _721 => _721.imageSrc]),
|
|
35158
|
+
alt: _optionalChain([organization, 'optionalAccess', _722 => _722.name]),
|
|
35159
|
+
fallback: _optionalChain([organization, 'optionalAccess', _723 => _723.name]) || "Org",
|
|
34378
35160
|
size: "md",
|
|
34379
35161
|
className: "shrink-0"
|
|
34380
35162
|
}
|
|
34381
35163
|
),
|
|
34382
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess',
|
|
35164
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _724 => _724.name]) || "Unassigned", label: "Organization" })
|
|
34383
35165
|
] }),
|
|
34384
35166
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
34385
35167
|
AssigneeDropdown,
|
|
@@ -34400,10 +35182,10 @@ function TicketInfoSection({
|
|
|
34400
35182
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
34401
35183
|
InfoCell2,
|
|
34402
35184
|
{
|
|
34403
|
-
value: _optionalChain([device, 'optionalAccess',
|
|
35185
|
+
value: _optionalChain([device, 'optionalAccess', _725 => _725.name]) || "Unassigned",
|
|
34404
35186
|
label: "Device",
|
|
34405
|
-
icon: _optionalChain([device, 'optionalAccess',
|
|
34406
|
-
onClick: _optionalChain([device, 'optionalAccess',
|
|
35187
|
+
icon: _optionalChain([device, 'optionalAccess', _726 => _726.icon]),
|
|
35188
|
+
onClick: _optionalChain([device, 'optionalAccess', _727 => _727.onClick])
|
|
34407
35189
|
}
|
|
34408
35190
|
),
|
|
34409
35191
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
|
|
@@ -34632,7 +35414,7 @@ function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
|
|
|
34632
35414
|
|
|
34633
35415
|
// src/components/chat/entity-cards/roadmap-card.tsx
|
|
34634
35416
|
|
|
34635
|
-
function
|
|
35417
|
+
function RoadmapCardSkeleton2({ size = "default" }) {
|
|
34636
35418
|
if (size === "sm") {
|
|
34637
35419
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
34638
35420
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "block h-12 w-12 aspect-square shrink-0 self-start rounded-md bg-ods-bg border border-ods-border p-1.5" }),
|
|
@@ -34689,7 +35471,7 @@ function RoadmapCard({
|
|
|
34689
35471
|
const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
|
|
34690
35472
|
const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
|
|
34691
35473
|
const hasFigma = !!item.figmaUrl;
|
|
34692
|
-
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access',
|
|
35474
|
+
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _728 => _728.screenshots, 'optionalAccess', _729 => _729.length]), () => ( 0))) > 0;
|
|
34693
35475
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
34694
35476
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
34695
35477
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -34708,7 +35490,7 @@ function RoadmapCard({
|
|
|
34708
35490
|
unoptimized: true,
|
|
34709
35491
|
className: "h-8 w-8 object-contain"
|
|
34710
35492
|
}
|
|
34711
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
35493
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _730 => _730.title, 'optionalAccess', _731 => _731.substring, 'call', _732 => _732(0, 2)]) || "??" })
|
|
34712
35494
|
}
|
|
34713
35495
|
),
|
|
34714
35496
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -34783,7 +35565,7 @@ function RoadmapCard({
|
|
|
34783
35565
|
unoptimized: true,
|
|
34784
35566
|
className: "object-contain p-1"
|
|
34785
35567
|
}
|
|
34786
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
35568
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _733 => _733.title, 'optionalAccess', _734 => _734.substring, 'call', _735 => _735(0, 2)]) || "??" }) }),
|
|
34787
35569
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
34788
35570
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-text-primary tracking-[-0.36px] flex-1 line-clamp-2", children: item.title }) }),
|
|
34789
35571
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h5 text-ods-text-secondary uppercase tracking-[-0.28px] truncate", children: [
|
|
@@ -35290,7 +36072,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
|
35290
36072
|
] }) : null,
|
|
35291
36073
|
item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-[13px] leading-5 text-ods-text-secondary", children: item.preview }) }) : null
|
|
35292
36074
|
] }),
|
|
35293
|
-
_optionalChain([anchorProps, 'optionalAccess',
|
|
36075
|
+
_optionalChain([anchorProps, 'optionalAccess', _736 => _736.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-3.5 h-3.5" }) }) : null
|
|
35294
36076
|
] });
|
|
35295
36077
|
if (!anchorProps) {
|
|
35296
36078
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
@@ -35360,7 +36142,7 @@ function getDefaultOptions() {
|
|
|
35360
36142
|
// node_modules/date-fns/startOfWeek.mjs
|
|
35361
36143
|
function startOfWeek(date, options) {
|
|
35362
36144
|
const defaultOptions2 = getDefaultOptions();
|
|
35363
|
-
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36145
|
+
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _737 => _737.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _738 => _738.locale, 'optionalAccess', _739 => _739.options, 'optionalAccess', _740 => _740.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _741 => _741.locale, 'optionalAccess', _742 => _742.options, 'optionalAccess', _743 => _743.weekStartsOn]))), () => ( 0));
|
|
35364
36146
|
const _date = toDate(date);
|
|
35365
36147
|
const day = _date.getDay();
|
|
35366
36148
|
const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
|
@@ -35535,7 +36317,7 @@ var formatDistance = (token, count, options) => {
|
|
|
35535
36317
|
} else {
|
|
35536
36318
|
result = tokenValue.other.replace("{{count}}", count.toString());
|
|
35537
36319
|
}
|
|
35538
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
36320
|
+
if (_optionalChain([options, 'optionalAccess', _744 => _744.addSuffix])) {
|
|
35539
36321
|
if (options.comparison && options.comparison > 0) {
|
|
35540
36322
|
return "in " + result;
|
|
35541
36323
|
} else {
|
|
@@ -35602,15 +36384,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
|
|
|
35602
36384
|
// node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
|
|
35603
36385
|
function buildLocalizeFn(args) {
|
|
35604
36386
|
return (value, options) => {
|
|
35605
|
-
const context = _optionalChain([options, 'optionalAccess',
|
|
36387
|
+
const context = _optionalChain([options, 'optionalAccess', _745 => _745.context]) ? String(options.context) : "standalone";
|
|
35606
36388
|
let valuesArray;
|
|
35607
36389
|
if (context === "formatting" && args.formattingValues) {
|
|
35608
36390
|
const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
|
|
35609
|
-
const width = _optionalChain([options, 'optionalAccess',
|
|
36391
|
+
const width = _optionalChain([options, 'optionalAccess', _746 => _746.width]) ? String(options.width) : defaultWidth;
|
|
35610
36392
|
valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
|
|
35611
36393
|
} else {
|
|
35612
36394
|
const defaultWidth = args.defaultWidth;
|
|
35613
|
-
const width = _optionalChain([options, 'optionalAccess',
|
|
36395
|
+
const width = _optionalChain([options, 'optionalAccess', _747 => _747.width]) ? String(options.width) : args.defaultWidth;
|
|
35614
36396
|
valuesArray = args.values[width] || args.values[defaultWidth];
|
|
35615
36397
|
}
|
|
35616
36398
|
const index = args.argumentCallback ? args.argumentCallback(value) : value;
|
|
@@ -35990,7 +36772,7 @@ function getWeekYear(date, options) {
|
|
|
35990
36772
|
const _date = toDate(date);
|
|
35991
36773
|
const year = _date.getFullYear();
|
|
35992
36774
|
const defaultOptions2 = getDefaultOptions();
|
|
35993
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36775
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _748 => _748.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _749 => _749.locale, 'optionalAccess', _750 => _750.options, 'optionalAccess', _751 => _751.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _752 => _752.locale, 'optionalAccess', _753 => _753.options, 'optionalAccess', _754 => _754.firstWeekContainsDate]))), () => ( 1));
|
|
35994
36776
|
const firstWeekOfNextYear = constructFrom(date, 0);
|
|
35995
36777
|
firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
|
|
35996
36778
|
firstWeekOfNextYear.setHours(0, 0, 0, 0);
|
|
@@ -36011,7 +36793,7 @@ function getWeekYear(date, options) {
|
|
|
36011
36793
|
// node_modules/date-fns/startOfWeekYear.mjs
|
|
36012
36794
|
function startOfWeekYear(date, options) {
|
|
36013
36795
|
const defaultOptions2 = getDefaultOptions();
|
|
36014
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36796
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _755 => _755.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _756 => _756.locale, 'optionalAccess', _757 => _757.options, 'optionalAccess', _758 => _758.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _759 => _759.locale, 'optionalAccess', _760 => _760.options, 'optionalAccess', _761 => _761.firstWeekContainsDate]))), () => ( 1));
|
|
36015
36797
|
const year = getWeekYear(date, options);
|
|
36016
36798
|
const firstWeek = constructFrom(date, 0);
|
|
36017
36799
|
firstWeek.setFullYear(year, 0, firstWeekContainsDate);
|
|
@@ -36826,9 +37608,9 @@ var doubleQuoteRegExp = /''/g;
|
|
|
36826
37608
|
var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
|
|
36827
37609
|
function format(date, formatStr, options) {
|
|
36828
37610
|
const defaultOptions2 = getDefaultOptions();
|
|
36829
|
-
const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36830
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36831
|
-
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
37611
|
+
const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _762 => _762.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
|
|
37612
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _763 => _763.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _764 => _764.locale, 'optionalAccess', _765 => _765.options, 'optionalAccess', _766 => _766.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _767 => _767.locale, 'optionalAccess', _768 => _768.options, 'optionalAccess', _769 => _769.firstWeekContainsDate]))), () => ( 1));
|
|
37613
|
+
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _770 => _770.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _771 => _771.locale, 'optionalAccess', _772 => _772.options, 'optionalAccess', _773 => _773.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _774 => _774.locale, 'optionalAccess', _775 => _775.options, 'optionalAccess', _776 => _776.weekStartsOn]))), () => ( 0));
|
|
36832
37614
|
const originalDate = toDate(date);
|
|
36833
37615
|
if (!isValid(originalDate)) {
|
|
36834
37616
|
throw new RangeError("Invalid time value");
|
|
@@ -36869,7 +37651,7 @@ function format(date, formatStr, options) {
|
|
|
36869
37651
|
return parts.map((part) => {
|
|
36870
37652
|
if (!part.isToken) return part.value;
|
|
36871
37653
|
const token = part.value;
|
|
36872
|
-
if (!_optionalChain([options, 'optionalAccess',
|
|
37654
|
+
if (!_optionalChain([options, 'optionalAccess', _777 => _777.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _778 => _778.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
|
|
36873
37655
|
warnOrThrowProtectedError(token, formatStr, String(date));
|
|
36874
37656
|
}
|
|
36875
37657
|
const formatter = formatters[token[0]];
|
|
@@ -37035,7 +37817,7 @@ function ProgramCard({
|
|
|
37035
37817
|
const dur = formatDurationFromRange(w.start_at, w.end_at);
|
|
37036
37818
|
typeMeta = dur ? `${time} \xB7 ${dur}` : time;
|
|
37037
37819
|
}
|
|
37038
|
-
const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access',
|
|
37820
|
+
const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _779 => _779.labels, 'optionalAccess', _780 => _780.singular])].filter(
|
|
37039
37821
|
(s) => typeof s === "string" && s.length > 0
|
|
37040
37822
|
);
|
|
37041
37823
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunk664KA5FIcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
|
|
@@ -37192,7 +37974,7 @@ function ProgramCard({
|
|
|
37192
37974
|
|
|
37193
37975
|
|
|
37194
37976
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
37195
|
-
const goalsCount = _optionalChain([campaign, 'access',
|
|
37977
|
+
const goalsCount = _optionalChain([campaign, 'access', _781 => _781.goals, 'optionalAccess', _782 => _782.length]) || 0;
|
|
37196
37978
|
const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
37197
37979
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
|
|
37198
37980
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -37487,11 +38269,11 @@ function HubspotTicketChatCard({
|
|
|
37487
38269
|
chatRef,
|
|
37488
38270
|
isNewTab
|
|
37489
38271
|
}) {
|
|
37490
|
-
const status = typeof _optionalChain([chatRef, 'access',
|
|
37491
|
-
const statusLabel = typeof _optionalChain([chatRef, 'access',
|
|
37492
|
-
const priority = typeof _optionalChain([chatRef, 'access',
|
|
37493
|
-
const customerCompany = typeof _optionalChain([chatRef, 'access',
|
|
37494
|
-
const customerEmail = typeof _optionalChain([chatRef, 'access',
|
|
38272
|
+
const status = typeof _optionalChain([chatRef, 'access', _783 => _783.metadata, 'optionalAccess', _784 => _784.status]) === "string" ? chatRef.metadata.status : void 0;
|
|
38273
|
+
const statusLabel = typeof _optionalChain([chatRef, 'access', _785 => _785.metadata, 'optionalAccess', _786 => _786.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
|
|
38274
|
+
const priority = typeof _optionalChain([chatRef, 'access', _787 => _787.metadata, 'optionalAccess', _788 => _788.priority]) === "string" ? chatRef.metadata.priority : void 0;
|
|
38275
|
+
const customerCompany = typeof _optionalChain([chatRef, 'access', _789 => _789.metadata, 'optionalAccess', _790 => _790.customerCompany]) === "string" ? chatRef.metadata.customerCompany : void 0;
|
|
38276
|
+
const customerEmail = typeof _optionalChain([chatRef, 'access', _791 => _791.metadata, 'optionalAccess', _792 => _792.customerEmail]) === "string" ? chatRef.metadata.customerEmail : void 0;
|
|
37495
38277
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37496
38278
|
HubspotTicketCard,
|
|
37497
38279
|
{
|
|
@@ -37513,7 +38295,7 @@ function HubspotTicketChatCard({
|
|
|
37513
38295
|
);
|
|
37514
38296
|
}
|
|
37515
38297
|
function SlackChatCard({ chatRef, isNewTab }) {
|
|
37516
|
-
const channelName = typeof _optionalChain([chatRef, 'access',
|
|
38298
|
+
const channelName = typeof _optionalChain([chatRef, 'access', _793 => _793.metadata, 'optionalAccess', _794 => _794.channelName]) === "string" ? chatRef.metadata.channelName : void 0;
|
|
37517
38299
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37518
38300
|
SlackMessageCard,
|
|
37519
38301
|
{
|
|
@@ -37536,7 +38318,7 @@ function DataRoomDocChatCard({
|
|
|
37536
38318
|
chipBasePlatform,
|
|
37537
38319
|
isNewTab
|
|
37538
38320
|
}) {
|
|
37539
|
-
const path = typeof _optionalChain([chatRef, 'access',
|
|
38321
|
+
const path = typeof _optionalChain([chatRef, 'access', _795 => _795.metadata, 'optionalAccess', _796 => _796.path]) === "string" ? chatRef.metadata.path : void 0;
|
|
37540
38322
|
const badgeText = chatRef.sourceRepo ? getSourceLabel(chatRef.sourceRepo) : "Document";
|
|
37541
38323
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37542
38324
|
DataRoomDocCard,
|
|
@@ -37562,8 +38344,8 @@ function GenericFinancialChatCard({
|
|
|
37562
38344
|
scheme,
|
|
37563
38345
|
isNewTab
|
|
37564
38346
|
}) {
|
|
37565
|
-
const facts = Array.isArray(_optionalChain([chatRef, 'access',
|
|
37566
|
-
const subtitle = typeof _optionalChain([chatRef, 'access',
|
|
38347
|
+
const facts = Array.isArray(_optionalChain([chatRef, 'access', _797 => _797.metadata, 'optionalAccess', _798 => _798.facts])) ? chatRef.metadata.facts : null;
|
|
38348
|
+
const subtitle = typeof _optionalChain([chatRef, 'access', _799 => _799.metadata, 'optionalAccess', _800 => _800.subtitle]) === "string" ? chatRef.metadata.subtitle : null;
|
|
37567
38349
|
const anchorProps = buildAnchorProps(
|
|
37568
38350
|
chatRef.url,
|
|
37569
38351
|
isNewTab
|
|
@@ -37725,7 +38507,7 @@ function programRegistryEntries() {
|
|
|
37725
38507
|
contentRefType: cfg.contentRefType,
|
|
37726
38508
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProgramCardSkeleton, { size: "sm" }),
|
|
37727
38509
|
render: (item, chatRef, opts) => {
|
|
37728
|
-
const config = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
38510
|
+
const config = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _801 => _801.extras, 'optionalAccess', _802 => _802.programConfigs, 'optionalAccess', _803 => _803[cfg.configKey]]), () => ( DEFAULT_PROGRAM_CONFIGS[cfg.configKey]));
|
|
37729
38511
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37730
38512
|
ProgramCard,
|
|
37731
38513
|
{
|
|
@@ -37762,7 +38544,7 @@ function roadmapRegistryEntries() {
|
|
|
37762
38544
|
mode: "fetch",
|
|
37763
38545
|
label: cfg.label,
|
|
37764
38546
|
contentRefType: cfg.contentRefType,
|
|
37765
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
38547
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapCardSkeleton2, { size: "sm" }),
|
|
37766
38548
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37767
38549
|
RoadmapCard,
|
|
37768
38550
|
{
|
|
@@ -37811,8 +38593,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37811
38593
|
DataRoomDocChatCard,
|
|
37812
38594
|
{
|
|
37813
38595
|
chatRef,
|
|
37814
|
-
baseRoute: _optionalChain([opts, 'optionalAccess',
|
|
37815
|
-
chipBasePlatform: _optionalChain([opts, 'optionalAccess',
|
|
38596
|
+
baseRoute: _optionalChain([opts, 'optionalAccess', _804 => _804.baseRoute]),
|
|
38597
|
+
chipBasePlatform: _optionalChain([opts, 'optionalAccess', _805 => _805.chipBasePlatform]),
|
|
37816
38598
|
isNewTab: opts.isNewTab
|
|
37817
38599
|
}
|
|
37818
38600
|
)
|
|
@@ -37824,8 +38606,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37824
38606
|
DataRoomDocChatCard,
|
|
37825
38607
|
{
|
|
37826
38608
|
chatRef,
|
|
37827
|
-
baseRoute: _optionalChain([opts, 'optionalAccess',
|
|
37828
|
-
chipBasePlatform: _optionalChain([opts, 'optionalAccess',
|
|
38609
|
+
baseRoute: _optionalChain([opts, 'optionalAccess', _806 => _806.baseRoute]),
|
|
38610
|
+
chipBasePlatform: _optionalChain([opts, 'optionalAccess', _807 => _807.chipBasePlatform]),
|
|
37829
38611
|
isNewTab: opts.isNewTab
|
|
37830
38612
|
}
|
|
37831
38613
|
)
|
|
@@ -37850,8 +38632,9 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37850
38632
|
size: "sm",
|
|
37851
38633
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
37852
38634
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
38635
|
+
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _808 => _808.extras, 'optionalAccess', _809 => _809.buildOgPlaceholderUrl, 'optionalCall', _810 => _810(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _811 => _811.title]), () => ( "")))]), () => ( null)),
|
|
37853
38636
|
...newTabAnchorAttrs(opts.isNewTab),
|
|
37854
|
-
hasEmbeddedVideo: _optionalChain([chatRef, 'access',
|
|
38637
|
+
hasEmbeddedVideo: _optionalChain([chatRef, 'access', _812 => _812.metadata, 'optionalAccess', _813 => _813.hasEmbeddedVideo]) === true
|
|
37855
38638
|
}
|
|
37856
38639
|
)
|
|
37857
38640
|
},
|
|
@@ -37867,6 +38650,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37867
38650
|
size: "sm",
|
|
37868
38651
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
37869
38652
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
38653
|
+
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _814 => _814.extras, 'optionalAccess', _815 => _815.buildOgPlaceholderUrl, 'optionalCall', _816 => _816(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _817 => _817.title]), () => ( "")))]), () => ( null)),
|
|
37870
38654
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
37871
38655
|
}
|
|
37872
38656
|
)
|
|
@@ -37883,6 +38667,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37883
38667
|
size: "sm",
|
|
37884
38668
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
37885
38669
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
38670
|
+
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _818 => _818.extras, 'optionalAccess', _819 => _819.buildOgPlaceholderUrl, 'optionalCall', _820 => _820(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _821 => _821.title]), () => ( "")))]), () => ( null)),
|
|
37886
38671
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
37887
38672
|
}
|
|
37888
38673
|
)
|
|
@@ -37893,7 +38678,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37893
38678
|
contentRefType: "product_release",
|
|
37894
38679
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
|
|
37895
38680
|
render: (item, chatRef, opts) => {
|
|
37896
|
-
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
38681
|
+
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _822 => _822.extras, 'optionalAccess', _823 => _823.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
|
|
37897
38682
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37898
38683
|
ProductReleaseChatCard,
|
|
37899
38684
|
{
|
|
@@ -37918,6 +38703,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37918
38703
|
size: "sm",
|
|
37919
38704
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
37920
38705
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
38706
|
+
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _824 => _824.extras, 'optionalAccess', _825 => _825.buildOgPlaceholderUrl, 'optionalCall', _826 => _826(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _827 => _827.title]), () => ( "")))]), () => ( null)),
|
|
37921
38707
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
37922
38708
|
}
|
|
37923
38709
|
)
|
|
@@ -37935,6 +38721,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37935
38721
|
size: "sm",
|
|
37936
38722
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
37937
38723
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
38724
|
+
placeholderUrl: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _828 => _828.extras, 'optionalAccess', _829 => _829.buildOgPlaceholderUrl, 'optionalCall', _830 => _830(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _831 => _831.title]), () => ( "")))]), () => ( null)),
|
|
37938
38725
|
...newTabAnchorAttrs(opts.isNewTab)
|
|
37939
38726
|
}
|
|
37940
38727
|
)
|
|
@@ -37946,7 +38733,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37946
38733
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
|
|
37947
38734
|
// No public viewer — synthesize the hub-internal admin URL post-fetch
|
|
37948
38735
|
// so the wrapper + isNewTab computation see the actual destination.
|
|
37949
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
38736
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _832 => _832.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
|
|
37950
38737
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37951
38738
|
CampaignChatCard,
|
|
37952
38739
|
{
|
|
@@ -37970,12 +38757,12 @@ function ChatCardNavWrap({
|
|
|
37970
38757
|
const onClickCapture = (e) => {
|
|
37971
38758
|
if (!href) return;
|
|
37972
38759
|
const targetEl = e.target;
|
|
37973
|
-
if (_optionalChain([targetEl, 'optionalAccess',
|
|
37974
|
-
if (!_optionalChain([targetEl, 'optionalAccess',
|
|
38760
|
+
if (_optionalChain([targetEl, 'optionalAccess', _833 => _833.closest, 'optionalCall', _834 => _834("button")])) return;
|
|
38761
|
+
if (!_optionalChain([targetEl, 'optionalAccess', _835 => _835.closest, 'optionalCall', _836 => _836("a")])) return;
|
|
37975
38762
|
const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform });
|
|
37976
38763
|
if (!handled) return;
|
|
37977
38764
|
e.stopPropagation();
|
|
37978
|
-
if (!isNewTab && _optionalChain([panel, 'optionalAccess',
|
|
38765
|
+
if (!isNewTab && _optionalChain([panel, 'optionalAccess', _837 => _837.closeChat])) panel.closeChat();
|
|
37979
38766
|
};
|
|
37980
38767
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
|
|
37981
38768
|
}
|
|
@@ -37997,7 +38784,7 @@ function ChatCardLoader({
|
|
|
37997
38784
|
title: chatRef.title,
|
|
37998
38785
|
externalUrl: chatRef.url,
|
|
37999
38786
|
targetPlatform: chatRef.targetPlatform,
|
|
38000
|
-
path: typeof _optionalChain([chatRef, 'access',
|
|
38787
|
+
path: typeof _optionalChain([chatRef, 'access', _838 => _838.metadata, 'optionalAccess', _839 => _839.path]) === "string" ? chatRef.metadata.path : null
|
|
38001
38788
|
},
|
|
38002
38789
|
{
|
|
38003
38790
|
baseRoute,
|
|
@@ -38015,7 +38802,7 @@ function ChatCardLoader({
|
|
|
38015
38802
|
const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
|
|
38016
38803
|
const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
|
|
38017
38804
|
const { item, isLoading } = useChatCardItem(
|
|
38018
|
-
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess',
|
|
38805
|
+
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _840 => _840.contentRefType]), () => ( "")),
|
|
38019
38806
|
fetchEntry ? resolvedChatRef.id : ""
|
|
38020
38807
|
);
|
|
38021
38808
|
if (!entry) return null;
|
|
@@ -38025,7 +38812,7 @@ function ChatCardLoader({
|
|
|
38025
38812
|
} : resolvedChatRef;
|
|
38026
38813
|
const isNewTab = computeIsNewTab(runtime, finalChatRef.url, _nullishCoalesce(finalChatRef.targetPlatform, () => ( null)));
|
|
38027
38814
|
const renderOpts = { baseRoute, chipBasePlatform, extras, isNewTab };
|
|
38028
|
-
const path = typeof _optionalChain([finalChatRef, 'access',
|
|
38815
|
+
const path = typeof _optionalChain([finalChatRef, 'access', _841 => _841.metadata, 'optionalAccess', _842 => _842.path]) === "string" ? finalChatRef.metadata.path : null;
|
|
38029
38816
|
const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
38030
38817
|
ChatCardNavWrap,
|
|
38031
38818
|
{
|
|
@@ -38507,7 +39294,7 @@ function useJetStreamDialogSubscription({
|
|
|
38507
39294
|
const hadConnectionBeforeRef = _react.useRef.call(void 0, false);
|
|
38508
39295
|
const acquireClient = _react.useCallback.call(void 0,
|
|
38509
39296
|
(url) => {
|
|
38510
|
-
if (_optionalChain([shared, 'optionalAccess',
|
|
39297
|
+
if (_optionalChain([shared, 'optionalAccess', _843 => _843.wsUrl]) !== url) {
|
|
38511
39298
|
if (shared) {
|
|
38512
39299
|
if (shared.closeTimer) clearTimeout(shared.closeTimer);
|
|
38513
39300
|
const old = shared;
|
|
@@ -38609,7 +39396,7 @@ function useJetStreamDialogSubscription({
|
|
|
38609
39396
|
if (closed) return;
|
|
38610
39397
|
if (shared !== sharedConn) return;
|
|
38611
39398
|
try {
|
|
38612
|
-
await _optionalChain([onBeforeReconnectRef, 'access',
|
|
39399
|
+
await _optionalChain([onBeforeReconnectRef, 'access', _844 => _844.current, 'optionalCall', _845 => _845()]);
|
|
38613
39400
|
} catch (e21) {
|
|
38614
39401
|
}
|
|
38615
39402
|
if (closed) return;
|
|
@@ -38642,7 +39429,7 @@ function useJetStreamDialogSubscription({
|
|
|
38642
39429
|
}
|
|
38643
39430
|
hadConnectionBeforeRef.current = true;
|
|
38644
39431
|
retryAttempt = 0;
|
|
38645
|
-
_optionalChain([onConnectRef, 'access',
|
|
39432
|
+
_optionalChain([onConnectRef, 'access', _846 => _846.current, 'optionalCall', _847 => _847()]);
|
|
38646
39433
|
}
|
|
38647
39434
|
if (event.status === "error") {
|
|
38648
39435
|
console.warn("[JetStream] NATS protocol error:", event.data);
|
|
@@ -38658,7 +39445,7 @@ function useJetStreamDialogSubscription({
|
|
|
38658
39445
|
}
|
|
38659
39446
|
subscriptionRef.current = null;
|
|
38660
39447
|
}
|
|
38661
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
39448
|
+
_optionalChain([onDisconnectRef, 'access', _848 => _848.current, 'optionalCall', _849 => _849()]);
|
|
38662
39449
|
scheduleRetry();
|
|
38663
39450
|
}
|
|
38664
39451
|
});
|
|
@@ -38674,7 +39461,7 @@ function useJetStreamDialogSubscription({
|
|
|
38674
39461
|
sharedConn.connectPromise = null;
|
|
38675
39462
|
if (!closed) {
|
|
38676
39463
|
setIsConnected(false);
|
|
38677
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
39464
|
+
_optionalChain([onDisconnectRef, 'access', _850 => _850.current, 'optionalCall', _851 => _851()]);
|
|
38678
39465
|
scheduleRetry();
|
|
38679
39466
|
}
|
|
38680
39467
|
}
|
|
@@ -38765,7 +39552,7 @@ function useJetStreamDialogSubscription({
|
|
|
38765
39552
|
}
|
|
38766
39553
|
subscriptionRef.current = handle;
|
|
38767
39554
|
setIsSubscribed(true);
|
|
38768
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
39555
|
+
_optionalChain([onSubscribedRef, 'access', _852 => _852.current, 'optionalCall', _853 => _853()]);
|
|
38769
39556
|
} catch (e29) {
|
|
38770
39557
|
if (!cancelled) {
|
|
38771
39558
|
setIsSubscribed(false);
|
|
@@ -38843,7 +39630,7 @@ function useNatsDialogSubscription({
|
|
|
38843
39630
|
reconnectionBackoffRef.current = reconnectionBackoff;
|
|
38844
39631
|
}, [reconnectionBackoff]);
|
|
38845
39632
|
const acquireClient = _react.useCallback.call(void 0, (url) => {
|
|
38846
|
-
if (_optionalChain([shared2, 'optionalAccess',
|
|
39633
|
+
if (_optionalChain([shared2, 'optionalAccess', _854 => _854.wsUrl]) !== url) {
|
|
38847
39634
|
if (shared2) {
|
|
38848
39635
|
shared2.closeTimer && clearTimeout(shared2.closeTimer);
|
|
38849
39636
|
const old = shared2;
|
|
@@ -38934,7 +39721,7 @@ function useNatsDialogSubscription({
|
|
|
38934
39721
|
if (closed) return;
|
|
38935
39722
|
if (shared2 !== sharedConn) return;
|
|
38936
39723
|
try {
|
|
38937
|
-
await _optionalChain([onBeforeReconnectRef, 'access',
|
|
39724
|
+
await _optionalChain([onBeforeReconnectRef, 'access', _855 => _855.current, 'optionalCall', _856 => _856()]);
|
|
38938
39725
|
} catch (e31) {
|
|
38939
39726
|
}
|
|
38940
39727
|
if (closed) return;
|
|
@@ -38967,22 +39754,22 @@ function useNatsDialogSubscription({
|
|
|
38967
39754
|
}
|
|
38968
39755
|
hadConnectionBeforeRef.current = true;
|
|
38969
39756
|
retryAttempt = 0;
|
|
38970
|
-
_optionalChain([onConnectRef, 'access',
|
|
39757
|
+
_optionalChain([onConnectRef, 'access', _857 => _857.current, 'optionalCall', _858 => _858()]);
|
|
38971
39758
|
}
|
|
38972
39759
|
if (disconnected) {
|
|
38973
39760
|
setIsConnected(false);
|
|
38974
39761
|
setIsSubscribed(false);
|
|
38975
39762
|
subscriptionRefs.current.forEach((sub) => {
|
|
38976
39763
|
try {
|
|
38977
|
-
_optionalChain([sub, 'optionalAccess',
|
|
39764
|
+
_optionalChain([sub, 'optionalAccess', _859 => _859.unsubscribe, 'call', _860 => _860()]);
|
|
38978
39765
|
} catch (e33) {
|
|
38979
39766
|
}
|
|
38980
39767
|
});
|
|
38981
39768
|
subscriptionRefs.current.clear();
|
|
38982
39769
|
lastSubscribedDialogIdRef.current = null;
|
|
38983
|
-
_optionalChain([abortControllerRef, 'access',
|
|
39770
|
+
_optionalChain([abortControllerRef, 'access', _861 => _861.current, 'optionalAccess', _862 => _862.abort, 'call', _863 => _863()]);
|
|
38984
39771
|
abortControllerRef.current = null;
|
|
38985
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
39772
|
+
_optionalChain([onDisconnectRef, 'access', _864 => _864.current, 'optionalCall', _865 => _865()]);
|
|
38986
39773
|
scheduleRetry();
|
|
38987
39774
|
}
|
|
38988
39775
|
});
|
|
@@ -38998,7 +39785,7 @@ function useNatsDialogSubscription({
|
|
|
38998
39785
|
sharedConn.connectPromise = null;
|
|
38999
39786
|
if (!closed) {
|
|
39000
39787
|
setIsConnected(false);
|
|
39001
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
39788
|
+
_optionalChain([onDisconnectRef, 'access', _866 => _866.current, 'optionalCall', _867 => _867()]);
|
|
39002
39789
|
scheduleRetry();
|
|
39003
39790
|
}
|
|
39004
39791
|
}
|
|
@@ -39014,7 +39801,7 @@ function useNatsDialogSubscription({
|
|
|
39014
39801
|
}
|
|
39015
39802
|
subscriptionRefs.current.forEach((sub) => {
|
|
39016
39803
|
try {
|
|
39017
|
-
_optionalChain([sub, 'optionalAccess',
|
|
39804
|
+
_optionalChain([sub, 'optionalAccess', _868 => _868.unsubscribe, 'call', _869 => _869()]);
|
|
39018
39805
|
} catch (e35) {
|
|
39019
39806
|
}
|
|
39020
39807
|
});
|
|
@@ -39042,13 +39829,13 @@ function useNatsDialogSubscription({
|
|
|
39042
39829
|
setIsSubscribed(false);
|
|
39043
39830
|
subscriptionRefs.current.forEach((sub) => {
|
|
39044
39831
|
try {
|
|
39045
|
-
_optionalChain([sub, 'optionalAccess',
|
|
39832
|
+
_optionalChain([sub, 'optionalAccess', _870 => _870.unsubscribe, 'call', _871 => _871()]);
|
|
39046
39833
|
} catch (e36) {
|
|
39047
39834
|
}
|
|
39048
39835
|
});
|
|
39049
39836
|
subscriptionRefs.current.clear();
|
|
39050
39837
|
lastSubscribedDialogIdRef.current = null;
|
|
39051
|
-
_optionalChain([abortControllerRef, 'access',
|
|
39838
|
+
_optionalChain([abortControllerRef, 'access', _872 => _872.current, 'optionalAccess', _873 => _873.abort, 'call', _874 => _874()]);
|
|
39052
39839
|
abortControllerRef.current = null;
|
|
39053
39840
|
}
|
|
39054
39841
|
return;
|
|
@@ -39060,12 +39847,12 @@ function useNatsDialogSubscription({
|
|
|
39060
39847
|
if (subscriptionRefs.current.size > 0) {
|
|
39061
39848
|
subscriptionRefs.current.forEach((sub) => {
|
|
39062
39849
|
try {
|
|
39063
|
-
_optionalChain([sub, 'optionalAccess',
|
|
39850
|
+
_optionalChain([sub, 'optionalAccess', _875 => _875.unsubscribe, 'call', _876 => _876()]);
|
|
39064
39851
|
} catch (e37) {
|
|
39065
39852
|
}
|
|
39066
39853
|
});
|
|
39067
39854
|
subscriptionRefs.current.clear();
|
|
39068
|
-
_optionalChain([abortControllerRef, 'access',
|
|
39855
|
+
_optionalChain([abortControllerRef, 'access', _877 => _877.current, 'optionalAccess', _878 => _878.abort, 'call', _879 => _879()]);
|
|
39069
39856
|
}
|
|
39070
39857
|
abortControllerRef.current = new AbortController();
|
|
39071
39858
|
const abort = abortControllerRef.current;
|
|
@@ -39097,7 +39884,7 @@ function useNatsDialogSubscription({
|
|
|
39097
39884
|
});
|
|
39098
39885
|
lastSubscribedDialogIdRef.current = dialogId;
|
|
39099
39886
|
setIsSubscribed(true);
|
|
39100
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
39887
|
+
_optionalChain([onSubscribedRef, 'access', _880 => _880.current, 'optionalCall', _881 => _881()]);
|
|
39101
39888
|
};
|
|
39102
39889
|
if (isConnectedRef.current) {
|
|
39103
39890
|
createSubscriptions();
|
|
@@ -39107,7 +39894,7 @@ function useNatsDialogSubscription({
|
|
|
39107
39894
|
abort.abort();
|
|
39108
39895
|
subscriptionRefs.current.forEach((sub) => {
|
|
39109
39896
|
try {
|
|
39110
|
-
_optionalChain([sub, 'optionalAccess',
|
|
39897
|
+
_optionalChain([sub, 'optionalAccess', _882 => _882.unsubscribe, 'call', _883 => _883()]);
|
|
39111
39898
|
} catch (e39) {
|
|
39112
39899
|
}
|
|
39113
39900
|
});
|
|
@@ -39148,7 +39935,7 @@ function useNatsDialogSubscription({
|
|
|
39148
39935
|
});
|
|
39149
39936
|
lastSubscribedDialogIdRef.current = dialogId2;
|
|
39150
39937
|
setIsSubscribed(true);
|
|
39151
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
39938
|
+
_optionalChain([onSubscribedRef, 'access', _884 => _884.current, 'optionalCall', _885 => _885()]);
|
|
39152
39939
|
} else if (subscriptionRefs.current.size > 0) {
|
|
39153
39940
|
setIsSubscribed(true);
|
|
39154
39941
|
}
|
|
@@ -39156,10 +39943,10 @@ function useNatsDialogSubscription({
|
|
|
39156
39943
|
return { isConnected, isSubscribed, reconnectionCount };
|
|
39157
39944
|
}
|
|
39158
39945
|
function buildNatsWsUrl(apiBaseUrl, options) {
|
|
39159
|
-
const path = _optionalChain([options, 'optionalAccess',
|
|
39946
|
+
const path = _optionalChain([options, 'optionalAccess', _886 => _886.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
|
|
39160
39947
|
const u = new URL(path, apiBaseUrl);
|
|
39161
39948
|
u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
|
|
39162
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
39949
|
+
if (_optionalChain([options, 'optionalAccess', _887 => _887.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _888 => _888.token])) {
|
|
39163
39950
|
u.searchParams.set("authorization", options.token);
|
|
39164
39951
|
}
|
|
39165
39952
|
return u.toString();
|
|
@@ -39475,8 +40262,8 @@ var MessageSegmentAccumulator = class {
|
|
|
39475
40262
|
type: "tool_execution",
|
|
39476
40263
|
data: {
|
|
39477
40264
|
...toolData,
|
|
39478
|
-
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
39479
|
-
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess',
|
|
40265
|
+
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _889 => _889.data, 'access', _890 => _890.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _891 => _891.toolTitle]))),
|
|
40266
|
+
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _892 => _892.parameters])
|
|
39480
40267
|
}
|
|
39481
40268
|
};
|
|
39482
40269
|
if (existingIndex !== -1) {
|
|
@@ -39500,8 +40287,8 @@ var MessageSegmentAccumulator = class {
|
|
|
39500
40287
|
if (seg.type !== "approval_batch") return seg;
|
|
39501
40288
|
const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
|
|
39502
40289
|
if (!hasCall) return seg;
|
|
39503
|
-
const prev = _optionalChain([seg, 'access',
|
|
39504
|
-
const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess',
|
|
40290
|
+
const prev = _optionalChain([seg, 'access', _893 => _893.data, 'access', _894 => _894.executions, 'optionalAccess', _895 => _895[execId]]);
|
|
40291
|
+
const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _896 => _896.result]), success: _optionalChain([prev, 'optionalAccess', _897 => _897.success]) };
|
|
39505
40292
|
matched = true;
|
|
39506
40293
|
return {
|
|
39507
40294
|
...seg,
|
|
@@ -39621,10 +40408,10 @@ var MessageSegmentAccumulator = class {
|
|
|
39621
40408
|
const segment = {
|
|
39622
40409
|
type: "approval_request",
|
|
39623
40410
|
data: {
|
|
39624
|
-
command: _optionalChain([pendingApproval, 'optionalAccess',
|
|
39625
|
-
explanation: _optionalChain([pendingApproval, 'optionalAccess',
|
|
40411
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _898 => _898.command]) || "",
|
|
40412
|
+
explanation: _optionalChain([pendingApproval, 'optionalAccess', _899 => _899.explanation]),
|
|
39626
40413
|
requestId,
|
|
39627
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
40414
|
+
approvalType: _optionalChain([pendingApproval, 'optionalAccess', _900 => _900.approvalType]) || approvalType
|
|
39628
40415
|
},
|
|
39629
40416
|
status,
|
|
39630
40417
|
onApprove: this.callbacks.onApprove,
|
|
@@ -39812,7 +40599,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39812
40599
|
if (initialState.escalatedApprovals) {
|
|
39813
40600
|
pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
|
|
39814
40601
|
initialState.escalatedApprovals.forEach((data, requestId) => {
|
|
39815
|
-
_optionalChain([callbacks, 'access',
|
|
40602
|
+
_optionalChain([callbacks, 'access', _901 => _901.onEscalatedApproval, 'optionalCall', _902 => _902(requestId, data)]);
|
|
39816
40603
|
});
|
|
39817
40604
|
}
|
|
39818
40605
|
hasEverStreamedRef.current = true;
|
|
@@ -39834,32 +40621,32 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39834
40621
|
case "message_start":
|
|
39835
40622
|
isInStreamRef.current = true;
|
|
39836
40623
|
hasEverStreamedRef.current = true;
|
|
39837
|
-
_optionalChain([callbacks, 'access',
|
|
40624
|
+
_optionalChain([callbacks, 'access', _903 => _903.onStreamStart, 'optionalCall', _904 => _904()]);
|
|
39838
40625
|
accumulator.resetSegments();
|
|
39839
40626
|
break;
|
|
39840
40627
|
case "message_end":
|
|
39841
40628
|
isInStreamRef.current = false;
|
|
39842
|
-
_optionalChain([callbacks, 'access',
|
|
40629
|
+
_optionalChain([callbacks, 'access', _905 => _905.onStreamEnd, 'optionalCall', _906 => _906()]);
|
|
39843
40630
|
accumulator.resetSegments();
|
|
39844
40631
|
break;
|
|
39845
40632
|
case "metadata":
|
|
39846
|
-
_optionalChain([callbacks, 'access',
|
|
40633
|
+
_optionalChain([callbacks, 'access', _907 => _907.onMetadata, 'optionalCall', _908 => _908(action)]);
|
|
39847
40634
|
break;
|
|
39848
40635
|
case "text": {
|
|
39849
40636
|
const segments = accumulator.appendText(action.text);
|
|
39850
40637
|
if (isInStreamRef.current || !hasEverStreamedRef.current) {
|
|
39851
|
-
_optionalChain([callbacks, 'access',
|
|
40638
|
+
_optionalChain([callbacks, 'access', _909 => _909.onSegmentsUpdate, 'optionalCall', _910 => _910(segments)]);
|
|
39852
40639
|
} else {
|
|
39853
|
-
_optionalChain([callbacks, 'access',
|
|
40640
|
+
_optionalChain([callbacks, 'access', _911 => _911.onSegmentsUpdate, 'optionalCall', _912 => _912([{ type: "text", text: action.text }], { append: true })]);
|
|
39854
40641
|
}
|
|
39855
40642
|
break;
|
|
39856
40643
|
}
|
|
39857
40644
|
case "thinking": {
|
|
39858
40645
|
const segments = accumulator.appendThinking(action.text);
|
|
39859
40646
|
if (isInStreamRef.current || !hasEverStreamedRef.current) {
|
|
39860
|
-
_optionalChain([callbacks, 'access',
|
|
40647
|
+
_optionalChain([callbacks, 'access', _913 => _913.onSegmentsUpdate, 'optionalCall', _914 => _914(segments)]);
|
|
39861
40648
|
} else {
|
|
39862
|
-
_optionalChain([callbacks, 'access',
|
|
40649
|
+
_optionalChain([callbacks, 'access', _915 => _915.onSegmentsUpdate, 'optionalCall', _916 => _916([{ type: "thinking", text: action.text }], { append: true })]);
|
|
39863
40650
|
}
|
|
39864
40651
|
break;
|
|
39865
40652
|
}
|
|
@@ -39869,7 +40656,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39869
40656
|
break;
|
|
39870
40657
|
}
|
|
39871
40658
|
const segments = accumulator.addToolExecution(action.segment);
|
|
39872
|
-
_optionalChain([callbacks, 'access',
|
|
40659
|
+
_optionalChain([callbacks, 'access', _917 => _917.onSegmentsUpdate, 'optionalCall', _918 => _918(segments)]);
|
|
39873
40660
|
break;
|
|
39874
40661
|
}
|
|
39875
40662
|
case "approval_request": {
|
|
@@ -39883,10 +40670,10 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39883
40670
|
approvalType,
|
|
39884
40671
|
status
|
|
39885
40672
|
);
|
|
39886
|
-
_optionalChain([callbacks, 'access',
|
|
40673
|
+
_optionalChain([callbacks, 'access', _919 => _919.onSegmentsUpdate, 'optionalCall', _920 => _920(segments)]);
|
|
39887
40674
|
} else {
|
|
39888
40675
|
pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
|
|
39889
|
-
_optionalChain([callbacks, 'access',
|
|
40676
|
+
_optionalChain([callbacks, 'access', _921 => _921.onEscalatedApproval, 'optionalCall', _922 => _922(requestId, { command, explanation, approvalType })]);
|
|
39890
40677
|
}
|
|
39891
40678
|
break;
|
|
39892
40679
|
}
|
|
@@ -39898,20 +40685,20 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39898
40685
|
const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
|
|
39899
40686
|
pendingEscalatedRef.current.set(requestId, {
|
|
39900
40687
|
command: summary,
|
|
39901
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
40688
|
+
explanation: _optionalChain([required, 'optionalAccess', _923 => _923.toolExplanation]),
|
|
39902
40689
|
approvalType,
|
|
39903
40690
|
toolCalls
|
|
39904
40691
|
});
|
|
39905
|
-
_optionalChain([callbacks, 'access',
|
|
40692
|
+
_optionalChain([callbacks, 'access', _924 => _924.onEscalatedApproval, 'optionalCall', _925 => _925(requestId, {
|
|
39906
40693
|
command: summary,
|
|
39907
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
40694
|
+
explanation: _optionalChain([required, 'optionalAccess', _926 => _926.toolExplanation]),
|
|
39908
40695
|
approvalType
|
|
39909
40696
|
})]);
|
|
39910
40697
|
break;
|
|
39911
40698
|
}
|
|
39912
40699
|
if (batchApprovalsEnabled) {
|
|
39913
40700
|
const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
|
|
39914
|
-
_optionalChain([callbacks, 'access',
|
|
40701
|
+
_optionalChain([callbacks, 'access', _927 => _927.onSegmentsUpdate, 'optionalCall', _928 => _928(segments2)]);
|
|
39915
40702
|
break;
|
|
39916
40703
|
}
|
|
39917
40704
|
let segments = accumulator.getSegments();
|
|
@@ -39925,7 +40712,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39925
40712
|
status
|
|
39926
40713
|
);
|
|
39927
40714
|
}
|
|
39928
|
-
_optionalChain([callbacks, 'access',
|
|
40715
|
+
_optionalChain([callbacks, 'access', _929 => _929.onSegmentsUpdate, 'optionalCall', _930 => _930(segments)]);
|
|
39929
40716
|
break;
|
|
39930
40717
|
}
|
|
39931
40718
|
case "approval_result": {
|
|
@@ -39934,7 +40721,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39934
40721
|
const status = approved ? "approved" : "rejected";
|
|
39935
40722
|
if (escalatedData) {
|
|
39936
40723
|
pendingEscalatedRef.current.delete(requestId);
|
|
39937
|
-
_optionalChain([callbacks, 'access',
|
|
40724
|
+
_optionalChain([callbacks, 'access', _931 => _931.onEscalatedApprovalResult, 'optionalCall', _932 => _932(requestId, approved, {
|
|
39938
40725
|
command: escalatedData.command,
|
|
39939
40726
|
explanation: escalatedData.explanation,
|
|
39940
40727
|
approvalType: escalatedData.approvalType
|
|
@@ -39947,7 +40734,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39947
40734
|
escalatedData.toolCalls,
|
|
39948
40735
|
status
|
|
39949
40736
|
);
|
|
39950
|
-
_optionalChain([callbacks, 'access',
|
|
40737
|
+
_optionalChain([callbacks, 'access', _933 => _933.onSegmentsUpdate, 'optionalCall', _934 => _934(segments)]);
|
|
39951
40738
|
} else {
|
|
39952
40739
|
let segments = accumulator.getSegments();
|
|
39953
40740
|
for (const call of escalatedData.toolCalls) {
|
|
@@ -39960,7 +40747,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39960
40747
|
status
|
|
39961
40748
|
);
|
|
39962
40749
|
}
|
|
39963
|
-
_optionalChain([callbacks, 'access',
|
|
40750
|
+
_optionalChain([callbacks, 'access', _935 => _935.onSegmentsUpdate, 'optionalCall', _936 => _936(segments)]);
|
|
39964
40751
|
}
|
|
39965
40752
|
} else {
|
|
39966
40753
|
const segments = accumulator.addApprovalRequest(
|
|
@@ -39970,65 +40757,65 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39970
40757
|
escalatedData.approvalType,
|
|
39971
40758
|
status
|
|
39972
40759
|
);
|
|
39973
|
-
_optionalChain([callbacks, 'access',
|
|
40760
|
+
_optionalChain([callbacks, 'access', _937 => _937.onSegmentsUpdate, 'optionalCall', _938 => _938(segments)]);
|
|
39974
40761
|
}
|
|
39975
40762
|
} else {
|
|
39976
40763
|
accumulator.updateApprovalStatus(requestId, status);
|
|
39977
40764
|
if (!callbacks.onApprovalResolved) {
|
|
39978
|
-
_optionalChain([callbacks, 'access',
|
|
40765
|
+
_optionalChain([callbacks, 'access', _939 => _939.onSegmentsUpdate, 'optionalCall', _940 => _940(accumulator.getSegments())]);
|
|
39979
40766
|
}
|
|
39980
40767
|
}
|
|
39981
|
-
_optionalChain([callbacks, 'access',
|
|
40768
|
+
_optionalChain([callbacks, 'access', _941 => _941.onApprovalResolved, 'optionalCall', _942 => _942(requestId, status, approvalType)]);
|
|
39982
40769
|
break;
|
|
39983
40770
|
}
|
|
39984
40771
|
case "error": {
|
|
39985
40772
|
let message2;
|
|
39986
|
-
if ("details" in action && _optionalChain([action, 'optionalAccess',
|
|
40773
|
+
if ("details" in action && _optionalChain([action, 'optionalAccess', _943 => _943.details])) {
|
|
39987
40774
|
try {
|
|
39988
|
-
message2 = _optionalChain([JSON, 'access',
|
|
40775
|
+
message2 = _optionalChain([JSON, 'access', _944 => _944.parse, 'call', _945 => _945(action.details), 'optionalAccess', _946 => _946.error, 'optionalAccess', _947 => _947.message]);
|
|
39989
40776
|
} catch (e41) {
|
|
39990
40777
|
message2 = action.details;
|
|
39991
40778
|
}
|
|
39992
40779
|
}
|
|
39993
40780
|
const segments = accumulator.addError(action.error, message2);
|
|
39994
|
-
_optionalChain([callbacks, 'access',
|
|
39995
|
-
_optionalChain([callbacks, 'access',
|
|
40781
|
+
_optionalChain([callbacks, 'access', _948 => _948.onSegmentsUpdate, 'optionalCall', _949 => _949(segments)]);
|
|
40782
|
+
_optionalChain([callbacks, 'access', _950 => _950.onError, 'optionalCall', _951 => _951(action.error, message2)]);
|
|
39996
40783
|
break;
|
|
39997
40784
|
}
|
|
39998
40785
|
case "system": {
|
|
39999
|
-
_optionalChain([callbacks, 'access',
|
|
40786
|
+
_optionalChain([callbacks, 'access', _952 => _952.onSystemMessage, 'optionalCall', _953 => _953(action.text)]);
|
|
40000
40787
|
break;
|
|
40001
40788
|
}
|
|
40002
40789
|
case "direct_message": {
|
|
40003
|
-
_optionalChain([callbacks, 'access',
|
|
40790
|
+
_optionalChain([callbacks, 'access', _954 => _954.onDirectMessage, 'optionalCall', _955 => _955(action.text, {
|
|
40004
40791
|
ownerType: action.ownerType,
|
|
40005
40792
|
displayName: action.displayName
|
|
40006
40793
|
})]);
|
|
40007
40794
|
break;
|
|
40008
40795
|
}
|
|
40009
40796
|
case "message_request":
|
|
40010
|
-
_optionalChain([callbacks, 'access',
|
|
40797
|
+
_optionalChain([callbacks, 'access', _956 => _956.onUserMessage, 'optionalCall', _957 => _957(action.text, {
|
|
40011
40798
|
ownerType: action.ownerType,
|
|
40012
40799
|
displayName: action.displayName
|
|
40013
40800
|
})]);
|
|
40014
40801
|
break;
|
|
40015
40802
|
case "token_usage":
|
|
40016
|
-
_optionalChain([callbacks, 'access',
|
|
40803
|
+
_optionalChain([callbacks, 'access', _958 => _958.onTokenUsage, 'optionalCall', _959 => _959(action.data)]);
|
|
40017
40804
|
break;
|
|
40018
40805
|
case "context_compaction_start": {
|
|
40019
40806
|
const standalone = !isInStreamRef.current;
|
|
40020
40807
|
const segments = accumulator.addContextCompaction();
|
|
40021
|
-
_optionalChain([callbacks, 'access',
|
|
40808
|
+
_optionalChain([callbacks, 'access', _960 => _960.onSegmentsUpdate, 'optionalCall', _961 => _961(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
|
|
40022
40809
|
break;
|
|
40023
40810
|
}
|
|
40024
40811
|
case "context_compaction_end": {
|
|
40025
40812
|
const standalone = !isInStreamRef.current;
|
|
40026
40813
|
const segments = accumulator.completeContextCompaction(action.summary);
|
|
40027
|
-
_optionalChain([callbacks, 'access',
|
|
40814
|
+
_optionalChain([callbacks, 'access', _962 => _962.onSegmentsUpdate, 'optionalCall', _963 => _963(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
|
|
40028
40815
|
break;
|
|
40029
40816
|
}
|
|
40030
40817
|
case "dialog_closed":
|
|
40031
|
-
_optionalChain([callbacks, 'access',
|
|
40818
|
+
_optionalChain([callbacks, 'access', _964 => _964.onDialogClosed, 'optionalCall', _965 => _965()]);
|
|
40032
40819
|
break;
|
|
40033
40820
|
default:
|
|
40034
40821
|
break;
|
|
@@ -40088,7 +40875,7 @@ function useSlashCommands(prefix, commandsUrl) {
|
|
|
40088
40875
|
const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
|
|
40089
40876
|
if (!cancelled) setCommands(next);
|
|
40090
40877
|
} catch (err) {
|
|
40091
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
40878
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _966 => _966.name]) !== "AbortError") {
|
|
40092
40879
|
console.warn("[use-slash-commands] fetch failed:", err);
|
|
40093
40880
|
}
|
|
40094
40881
|
} finally {
|
|
@@ -40121,7 +40908,7 @@ function createLocalStorageAdapter(options) {
|
|
|
40121
40908
|
const tag = _nullishCoalesce(options.logTag, () => ( "[local-storage]"));
|
|
40122
40909
|
const backend = _nullishCoalesce(options.backend, () => ( "local"));
|
|
40123
40910
|
const resolveKey = () => {
|
|
40124
|
-
const ns = _optionalChain([options, 'access',
|
|
40911
|
+
const ns = _optionalChain([options, 'access', _967 => _967.namespace, 'optionalCall', _968 => _968()]);
|
|
40125
40912
|
return ns ? `${ns}.${options.key}` : options.key;
|
|
40126
40913
|
};
|
|
40127
40914
|
return {
|
|
@@ -40202,7 +40989,7 @@ function getChatProxyAuth() {
|
|
|
40202
40989
|
}
|
|
40203
40990
|
function getPersistedProxyEmail() {
|
|
40204
40991
|
const persisted = adapter.load();
|
|
40205
|
-
return _nullishCoalesce(_optionalChain([persisted, 'optionalAccess',
|
|
40992
|
+
return _nullishCoalesce(_optionalChain([persisted, 'optionalAccess', _969 => _969.email, 'access', _970 => _970.trim, 'call', _971 => _971(), 'access', _972 => _972.toLowerCase, 'call', _973 => _973()]), () => ( null));
|
|
40206
40993
|
}
|
|
40207
40994
|
function setChatProxyAuth(value) {
|
|
40208
40995
|
adapter.save({
|
|
@@ -40219,15 +41006,15 @@ function clearChatProxyAuth() {
|
|
|
40219
41006
|
function applyProxyAuth(url, baseHeaders = { "Content-Type": "application/json" }) {
|
|
40220
41007
|
const auth = getChatProxyAuth();
|
|
40221
41008
|
const headers = { ...baseHeaders };
|
|
40222
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
41009
|
+
if (_optionalChain([auth, 'optionalAccess', _974 => _974.secret])) {
|
|
40223
41010
|
headers.Authorization = `Bearer ${auth.secret}`;
|
|
40224
41011
|
}
|
|
40225
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
41012
|
+
if (_optionalChain([auth, 'optionalAccess', _975 => _975.email])) {
|
|
40226
41013
|
headers["X-Chat-Act-As"] = auth.email;
|
|
40227
41014
|
}
|
|
40228
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
40229
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
40230
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
41015
|
+
if (_optionalChain([auth, 'optionalAccess', _976 => _976.firstName])) headers["X-Chat-First-Name"] = auth.firstName;
|
|
41016
|
+
if (_optionalChain([auth, 'optionalAccess', _977 => _977.lastName])) headers["X-Chat-Last-Name"] = auth.lastName;
|
|
41017
|
+
if (_optionalChain([auth, 'optionalAccess', _978 => _978.avatarUrl])) headers["X-Chat-Avatar-Url"] = auth.avatarUrl;
|
|
40231
41018
|
return { url, headers };
|
|
40232
41019
|
}
|
|
40233
41020
|
|
|
@@ -40265,7 +41052,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
|
|
|
40265
41052
|
var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
|
|
40266
41053
|
function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
40267
41054
|
return new Promise((resolve, reject) => {
|
|
40268
|
-
if (_optionalChain([signal, 'optionalAccess',
|
|
41055
|
+
if (_optionalChain([signal, 'optionalAccess', _979 => _979.aborted])) {
|
|
40269
41056
|
reject(new Error("Upload cancelled"));
|
|
40270
41057
|
return;
|
|
40271
41058
|
}
|
|
@@ -40279,7 +41066,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
40279
41066
|
xhr.removeEventListener("error", handleError);
|
|
40280
41067
|
xhr.removeEventListener("abort", handleAbort);
|
|
40281
41068
|
xhr.removeEventListener("timeout", handleTimeout);
|
|
40282
|
-
_optionalChain([signal, 'optionalAccess',
|
|
41069
|
+
_optionalChain([signal, 'optionalAccess', _980 => _980.removeEventListener, 'call', _981 => _981("abort", handleSignalAbort)]);
|
|
40283
41070
|
if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
|
|
40284
41071
|
};
|
|
40285
41072
|
const handleProgress = (event) => {
|
|
@@ -40315,7 +41102,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
40315
41102
|
const handleSignalAbort = () => {
|
|
40316
41103
|
xhr.abort();
|
|
40317
41104
|
};
|
|
40318
|
-
_optionalChain([signal, 'optionalAccess',
|
|
41105
|
+
_optionalChain([signal, 'optionalAccess', _982 => _982.addEventListener, 'call', _983 => _983("abort", handleSignalAbort, { once: true })]);
|
|
40319
41106
|
xhr.upload.addEventListener("progress", handleProgress);
|
|
40320
41107
|
xhr.addEventListener("load", handleLoad);
|
|
40321
41108
|
xhr.addEventListener("error", handleError);
|
|
@@ -40359,12 +41146,12 @@ function useChatAttachments() {
|
|
|
40359
41146
|
try {
|
|
40360
41147
|
sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
|
|
40361
41148
|
} catch (err) {
|
|
40362
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
41149
|
+
if (_optionalChain([ctrl, 'optionalAccess', _984 => _984.signal, 'access', _985 => _985.aborted])) return;
|
|
40363
41150
|
throw new Error(
|
|
40364
41151
|
`Could not read file content: ${err instanceof Error ? err.message : String(err)}`
|
|
40365
41152
|
);
|
|
40366
41153
|
}
|
|
40367
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
41154
|
+
if (_optionalChain([ctrl, 'optionalAccess', _986 => _986.signal, 'access', _987 => _987.aborted])) return;
|
|
40368
41155
|
if (!sniffed) {
|
|
40369
41156
|
throw new Error("Unrecognized file format");
|
|
40370
41157
|
}
|
|
@@ -40378,7 +41165,7 @@ function useChatAttachments() {
|
|
|
40378
41165
|
const urlResp = await chatAuthedFetch(uploadUrlEndpoint, {
|
|
40379
41166
|
method: "POST",
|
|
40380
41167
|
headers: { "Content-Type": "application/json" },
|
|
40381
|
-
signal: _optionalChain([ctrl, 'optionalAccess',
|
|
41168
|
+
signal: _optionalChain([ctrl, 'optionalAccess', _988 => _988.signal]),
|
|
40382
41169
|
body: JSON.stringify({
|
|
40383
41170
|
fileName: att.file.name,
|
|
40384
41171
|
// Pass the SNIFFED MIME (not `file.type`, which can be a
|
|
@@ -40404,9 +41191,9 @@ function useChatAttachments() {
|
|
|
40404
41191
|
(pct) => {
|
|
40405
41192
|
updateOne(att.id, { progress: pct });
|
|
40406
41193
|
},
|
|
40407
|
-
_optionalChain([ctrl, 'optionalAccess',
|
|
41194
|
+
_optionalChain([ctrl, 'optionalAccess', _989 => _989.signal])
|
|
40408
41195
|
);
|
|
40409
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
41196
|
+
if (_optionalChain([ctrl, 'optionalAccess', _990 => _990.signal, 'access', _991 => _991.aborted])) return;
|
|
40410
41197
|
updateOne(att.id, {
|
|
40411
41198
|
status: "ready",
|
|
40412
41199
|
progress: 100,
|
|
@@ -40414,7 +41201,7 @@ function useChatAttachments() {
|
|
|
40414
41201
|
viewToken: mintData.viewToken
|
|
40415
41202
|
});
|
|
40416
41203
|
} catch (err) {
|
|
40417
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
41204
|
+
if (_optionalChain([ctrl, 'optionalAccess', _992 => _992.signal, 'access', _993 => _993.aborted])) return;
|
|
40418
41205
|
const message2 = err instanceof Error ? err.message : String(err);
|
|
40419
41206
|
updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
|
|
40420
41207
|
} finally {
|
|
@@ -40565,7 +41352,7 @@ var ANON_DEFAULTS = {
|
|
|
40565
41352
|
function useChatIdentity() {
|
|
40566
41353
|
const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
|
|
40567
41354
|
const url = runtime.endpoints.chatIdentityUrl;
|
|
40568
|
-
const proxyEmail = _nullishCoalesce(_optionalChain([getChatProxyAuth, 'call',
|
|
41355
|
+
const proxyEmail = _nullishCoalesce(_optionalChain([getChatProxyAuth, 'call', _994 => _994(), 'optionalAccess', _995 => _995.email]), () => ( null));
|
|
40569
41356
|
const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
|
|
40570
41357
|
const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
|
|
40571
41358
|
_react.useEffect.call(void 0, () => {
|
|
@@ -40642,7 +41429,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
|
40642
41429
|
yield chunk;
|
|
40643
41430
|
}
|
|
40644
41431
|
} catch (err) {
|
|
40645
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
41432
|
+
if (_optionalChain([err, 'optionalAccess', _996 => _996.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
40646
41433
|
return;
|
|
40647
41434
|
}
|
|
40648
41435
|
const errorMessage = err instanceof Error ? err.message : "An error occurred";
|
|
@@ -40693,7 +41480,7 @@ function useChat({
|
|
|
40693
41480
|
const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
|
|
40694
41481
|
onMessagesChangeRef.current = onMessagesChange;
|
|
40695
41482
|
_react.useEffect.call(void 0, () => {
|
|
40696
|
-
_optionalChain([onMessagesChangeRef, 'access',
|
|
41483
|
+
_optionalChain([onMessagesChangeRef, 'access', _997 => _997.current, 'optionalCall', _998 => _998(messages)]);
|
|
40697
41484
|
}, [messages]);
|
|
40698
41485
|
const {
|
|
40699
41486
|
streamMessage,
|
|
@@ -40730,7 +41517,7 @@ function useChat({
|
|
|
40730
41517
|
name: "You",
|
|
40731
41518
|
content: text,
|
|
40732
41519
|
timestamp: /* @__PURE__ */ new Date(),
|
|
40733
|
-
..._optionalChain([options, 'optionalAccess',
|
|
41520
|
+
..._optionalChain([options, 'optionalAccess', _999 => _999.hidden]) ? { hidden: true } : {}
|
|
40734
41521
|
};
|
|
40735
41522
|
addMessage(userMessage);
|
|
40736
41523
|
setIsTyping(true);
|
|
@@ -40792,7 +41579,7 @@ function useChat({
|
|
|
40792
41579
|
currentTextSegment = "";
|
|
40793
41580
|
}
|
|
40794
41581
|
const seg = segment;
|
|
40795
|
-
const proposalId = _optionalChain([seg, 'access',
|
|
41582
|
+
const proposalId = _optionalChain([seg, 'access', _1000 => _1000.data, 'optionalAccess', _1001 => _1001.requestId]);
|
|
40796
41583
|
const updateApprovalMessage = (transform) => {
|
|
40797
41584
|
setMessages((prev) => {
|
|
40798
41585
|
for (let i = prev.length - 1; i >= 0; i--) {
|
|
@@ -40801,7 +41588,7 @@ function useChat({
|
|
|
40801
41588
|
if (!Array.isArray(m.content)) continue;
|
|
40802
41589
|
const segments = m.content;
|
|
40803
41590
|
const hasMatch = segments.some(
|
|
40804
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
41591
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1002 => _1002.data, 'optionalAccess', _1003 => _1003.requestId]) === proposalId
|
|
40805
41592
|
);
|
|
40806
41593
|
if (!hasMatch) continue;
|
|
40807
41594
|
const next = [...prev];
|
|
@@ -40843,11 +41630,11 @@ function useChat({
|
|
|
40843
41630
|
if (!Array.isArray(m.content)) continue;
|
|
40844
41631
|
const segments = m.content;
|
|
40845
41632
|
const hasMatch = segments.some(
|
|
40846
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
41633
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1004 => _1004.data, 'optionalAccess', _1005 => _1005.requestId]) === decision.proposalId
|
|
40847
41634
|
);
|
|
40848
41635
|
if (!hasMatch) continue;
|
|
40849
41636
|
const flipped = segments.map(
|
|
40850
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
41637
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1006 => _1006.data, 'optionalAccess', _1007 => _1007.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
|
|
40851
41638
|
);
|
|
40852
41639
|
const next = [...prev];
|
|
40853
41640
|
next[i] = { ...m, content: flipped };
|
|
@@ -40980,7 +41767,7 @@ function useChat({
|
|
|
40980
41767
|
};
|
|
40981
41768
|
}
|
|
40982
41769
|
|
|
40983
|
-
// src/components/chat/hooks/use-
|
|
41770
|
+
// src/components/chat/hooks/use-sse-chat-adapter.ts
|
|
40984
41771
|
|
|
40985
41772
|
function createEmptyTurnMeta() {
|
|
40986
41773
|
return {
|
|
@@ -41009,8 +41796,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
41009
41796
|
})),
|
|
41010
41797
|
{ role: "user", content: message2 }
|
|
41011
41798
|
];
|
|
41012
|
-
const targetPath = _optionalChain([extra, 'optionalAccess',
|
|
41013
|
-
const requestBody = _optionalChain([extra, 'optionalAccess',
|
|
41799
|
+
const targetPath = _optionalChain([extra, 'optionalAccess', _1008 => _1008.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
|
|
41800
|
+
const requestBody = _optionalChain([extra, 'optionalAccess', _1009 => _1009.approvalAction]) ? {
|
|
41014
41801
|
proposal_id: extra.approvalAction.proposalId,
|
|
41015
41802
|
action: extra.approvalAction.action,
|
|
41016
41803
|
messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
|
|
@@ -41019,8 +41806,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
41019
41806
|
}))
|
|
41020
41807
|
} : {
|
|
41021
41808
|
messages: apiMessages,
|
|
41022
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
41023
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
41809
|
+
..._optionalChain([extra, 'optionalAccess', _1010 => _1010.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
|
|
41810
|
+
..._optionalChain([extra, 'optionalAccess', _1011 => _1011.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
|
|
41024
41811
|
};
|
|
41025
41812
|
const response = await chatAuthedFetch(targetPath, {
|
|
41026
41813
|
method: "POST",
|
|
@@ -41030,7 +41817,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
41030
41817
|
if (!response.ok) {
|
|
41031
41818
|
throw new Error(`Chat request failed: ${response.status}`);
|
|
41032
41819
|
}
|
|
41033
|
-
const reader = _optionalChain([response, 'access',
|
|
41820
|
+
const reader = _optionalChain([response, 'access', _1012 => _1012.body, 'optionalAccess', _1013 => _1013.getReader, 'call', _1014 => _1014()]);
|
|
41034
41821
|
if (!reader) throw new Error("No response body");
|
|
41035
41822
|
const decoder = new TextDecoder();
|
|
41036
41823
|
let buffer = "";
|
|
@@ -41113,7 +41900,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
41113
41900
|
const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
|
|
41114
41901
|
const result = _nullishCoalesce(meta.result, () => ( null));
|
|
41115
41902
|
const card = _nullishCoalesce(meta.card, () => ( null));
|
|
41116
|
-
if (_optionalChain([card, 'optionalAccess',
|
|
41903
|
+
if (_optionalChain([card, 'optionalAccess', _1015 => _1015.ref, 'optionalAccess', _1016 => _1016.id]) && _optionalChain([card, 'optionalAccess', _1017 => _1017.type])) {
|
|
41117
41904
|
const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
|
|
41118
41905
|
const key = buildChatRefKey(card.type, card.ref.id);
|
|
41119
41906
|
refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
|
|
@@ -41126,8 +41913,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
41126
41913
|
willAutoContinue: meta.willAutoContinue === true,
|
|
41127
41914
|
...toolName ? { toolName } : {},
|
|
41128
41915
|
...result ? { result } : {},
|
|
41129
|
-
..._optionalChain([card, 'optionalAccess',
|
|
41130
|
-
..._optionalChain([card, 'optionalAccess',
|
|
41916
|
+
..._optionalChain([card, 'optionalAccess', _1018 => _1018.marker]) ? { marker: card.marker } : {},
|
|
41917
|
+
..._optionalChain([card, 'optionalAccess', _1019 => _1019.ref]) ? { cardRef: card.ref } : {},
|
|
41131
41918
|
...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
|
|
41132
41919
|
proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
|
|
41133
41920
|
};
|
|
@@ -41245,7 +42032,7 @@ var CHAT_STORAGE_VERSION = 1;
|
|
|
41245
42032
|
var chatStorageKey = (source) => {
|
|
41246
42033
|
const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
|
|
41247
42034
|
const auth = getChatProxyAuth();
|
|
41248
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
42035
|
+
if (_optionalChain([auth, 'optionalAccess', _1020 => _1020.email])) {
|
|
41249
42036
|
return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
|
|
41250
42037
|
}
|
|
41251
42038
|
return base;
|
|
@@ -41296,15 +42083,15 @@ function savePersistedChat(source, state) {
|
|
|
41296
42083
|
} catch (e47) {
|
|
41297
42084
|
}
|
|
41298
42085
|
}
|
|
41299
|
-
function
|
|
42086
|
+
function useSseChatAdapter(options) {
|
|
41300
42087
|
const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
|
|
41301
42088
|
const source = runtime.source;
|
|
41302
42089
|
if (!source) {
|
|
41303
42090
|
throw new Error(
|
|
41304
|
-
"[
|
|
42091
|
+
"[useSseChatAdapter] runtime.source is required \u2014 got empty string. Wire `source` on your <ChatRuntimeContext.Provider value={...}>. Hub default: <HubRuntimeProvider source={currentPlatform()}>; embedded apps: pass your own platform/tenant identifier."
|
|
41305
42092
|
);
|
|
41306
42093
|
}
|
|
41307
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
42094
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1021 => _1021.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
41308
42095
|
const persistedRef = _react.useRef.call(void 0, null);
|
|
41309
42096
|
if (persistedRef.current === null) {
|
|
41310
42097
|
pruneStaleChatStorage(source);
|
|
@@ -41372,9 +42159,9 @@ function useEmbeddedChat(options) {
|
|
|
41372
42159
|
}
|
|
41373
42160
|
setCmdIdByTableId(map);
|
|
41374
42161
|
}).catch((err) => {
|
|
41375
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
42162
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _1022 => _1022.name]) !== "AbortError") {
|
|
41376
42163
|
console.warn(
|
|
41377
|
-
"[
|
|
42164
|
+
"[useSseChatAdapter] failed to fetch slash commands for displayRef:",
|
|
41378
42165
|
err
|
|
41379
42166
|
);
|
|
41380
42167
|
}
|
|
@@ -41425,7 +42212,7 @@ function useEmbeddedChat(options) {
|
|
|
41425
42212
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
41426
42213
|
sources = sourcesMapRef.current.get(lookupIdx);
|
|
41427
42214
|
chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
|
|
41428
|
-
scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access',
|
|
42215
|
+
scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1023 => _1023.current, 'access', _1024 => _1024.get, 'call', _1025 => _1025(lookupIdx), 'optionalAccess', _1026 => _1026.scrollAnchor]), () => ( void 0));
|
|
41429
42216
|
}
|
|
41430
42217
|
return {
|
|
41431
42218
|
id: m.id,
|
|
@@ -41439,10 +42226,21 @@ function useEmbeddedChat(options) {
|
|
|
41439
42226
|
};
|
|
41440
42227
|
});
|
|
41441
42228
|
const sendMessage = _react.useCallback.call(void 0,
|
|
41442
|
-
(text, options2
|
|
42229
|
+
async (text, options2) => {
|
|
42230
|
+
const {
|
|
42231
|
+
hidden,
|
|
42232
|
+
attachments,
|
|
42233
|
+
commandOverride,
|
|
42234
|
+
approvalAction
|
|
42235
|
+
} = _nullishCoalesce(options2, () => ( {}));
|
|
42236
|
+
const sseExtras = {
|
|
42237
|
+
...commandOverride ? { commandOverride } : {},
|
|
42238
|
+
...approvalAction ? { approvalAction } : {},
|
|
42239
|
+
...attachments && attachments.length > 0 ? { pendingAttachments: attachments } : {}
|
|
42240
|
+
};
|
|
41443
42241
|
sendCountRef.current++;
|
|
41444
42242
|
setStreamingPhase("thinking");
|
|
41445
|
-
chatSendMessage(text,
|
|
42243
|
+
await chatSendMessage(text, sseExtras, hidden ? { hidden } : void 0);
|
|
41446
42244
|
},
|
|
41447
42245
|
[chatSendMessage]
|
|
41448
42246
|
);
|
|
@@ -41451,18 +42249,18 @@ function useEmbeddedChat(options) {
|
|
|
41451
42249
|
const tableId = tableIdForDocumentType(reference.type);
|
|
41452
42250
|
if (!tableId) {
|
|
41453
42251
|
console.warn(
|
|
41454
|
-
`[
|
|
42252
|
+
`[useSseChatAdapter] displayRef: no tableId for documentType="${reference.type}"; ignoring click`
|
|
41455
42253
|
);
|
|
41456
42254
|
return;
|
|
41457
42255
|
}
|
|
41458
42256
|
const cmdId = cmdIdByTableId.get(tableId);
|
|
41459
42257
|
if (!cmdId) {
|
|
41460
42258
|
console.warn(
|
|
41461
|
-
`[
|
|
42259
|
+
`[useSseChatAdapter] displayRef: no slash command for tableId="${tableId}" source="${source}"; ignoring click`
|
|
41462
42260
|
);
|
|
41463
42261
|
return;
|
|
41464
42262
|
}
|
|
41465
|
-
const refSlug = typeof _optionalChain([reference, 'access',
|
|
42263
|
+
const refSlug = typeof _optionalChain([reference, 'access', _1027 => _1027.metadata, 'optionalAccess', _1028 => _1028.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
|
|
41466
42264
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
41467
42265
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
41468
42266
|
const text = `/${cmdId} display "${escaped}"`;
|
|
@@ -41475,14 +42273,14 @@ function useEmbeddedChat(options) {
|
|
|
41475
42273
|
const tableId = tableIdForDocumentType(reference.type);
|
|
41476
42274
|
if (!tableId) {
|
|
41477
42275
|
console.warn(
|
|
41478
|
-
`[
|
|
42276
|
+
`[useSseChatAdapter] discussRef: no tableId for documentType="${reference.type}"; ignoring click`
|
|
41479
42277
|
);
|
|
41480
42278
|
return;
|
|
41481
42279
|
}
|
|
41482
42280
|
const refId = (_nullishCoalesce(reference.id, () => ( ""))).trim();
|
|
41483
42281
|
if (!refId) {
|
|
41484
42282
|
console.warn(
|
|
41485
|
-
`[
|
|
42283
|
+
`[useSseChatAdapter] discussRef: empty reference.id for type="${reference.type}"; ignoring click`
|
|
41486
42284
|
);
|
|
41487
42285
|
return;
|
|
41488
42286
|
}
|
|
@@ -41534,21 +42332,249 @@ function useEmbeddedChat(options) {
|
|
|
41534
42332
|
clearMessages,
|
|
41535
42333
|
streamingPhase,
|
|
41536
42334
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
41537
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
41538
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
41539
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
42335
|
+
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1029 => _1029.provider]), () => ( null)),
|
|
42336
|
+
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1030 => _1030.modelLabel]), () => ( null)),
|
|
42337
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1031 => _1031.contextWindowMaxTokens]), () => ( null)),
|
|
41540
42338
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
41541
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
42339
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1032 => _1032.inputTokens]), () => ( null)),
|
|
41542
42340
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
41543
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
42341
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1033 => _1033.outputTokens]), () => ( null)),
|
|
41544
42342
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
41545
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
42343
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1034 => _1034.cacheHitRatePct]), () => ( null)),
|
|
41546
42344
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
41547
42345
|
* token counts). null until the trailing usage frame lands. */
|
|
41548
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
42346
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1035 => _1035.breakdown]), () => ( null))
|
|
41549
42347
|
};
|
|
41550
42348
|
}
|
|
41551
42349
|
|
|
42350
|
+
// src/components/chat/hooks/use-nats-chat-adapter.ts
|
|
42351
|
+
|
|
42352
|
+
|
|
42353
|
+
|
|
42354
|
+
|
|
42355
|
+
|
|
42356
|
+
|
|
42357
|
+
|
|
42358
|
+
function nextId(role) {
|
|
42359
|
+
return `${role}-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;
|
|
42360
|
+
}
|
|
42361
|
+
function updateTrailingAssistant(prev, segments) {
|
|
42362
|
+
const last = prev[prev.length - 1];
|
|
42363
|
+
if (!last || last.role !== "assistant") {
|
|
42364
|
+
return [
|
|
42365
|
+
...prev,
|
|
42366
|
+
{
|
|
42367
|
+
id: nextId("assistant"),
|
|
42368
|
+
role: "assistant",
|
|
42369
|
+
content: "",
|
|
42370
|
+
segments
|
|
42371
|
+
}
|
|
42372
|
+
];
|
|
42373
|
+
}
|
|
42374
|
+
return [
|
|
42375
|
+
...prev.slice(0, -1),
|
|
42376
|
+
{ ...last, segments }
|
|
42377
|
+
];
|
|
42378
|
+
}
|
|
42379
|
+
function useNatsChatAdapter(config, options = {}) {
|
|
42380
|
+
const { active = true } = options;
|
|
42381
|
+
const {
|
|
42382
|
+
dialogId,
|
|
42383
|
+
getNatsWsUrl,
|
|
42384
|
+
clientConfig,
|
|
42385
|
+
publishUserMessage,
|
|
42386
|
+
fetchChunks,
|
|
42387
|
+
enableThinking,
|
|
42388
|
+
batchApprovalsEnabled
|
|
42389
|
+
} = config;
|
|
42390
|
+
const [messages, setMessages] = _react.useState.call(void 0, []);
|
|
42391
|
+
const [streamingPhase, setStreamingPhase] = _react.useState.call(void 0, "idle");
|
|
42392
|
+
const callbacksRef = _react.useRef.call(void 0, {
|
|
42393
|
+
onSegmentsUpdate: (segments) => {
|
|
42394
|
+
setMessages((prev) => updateTrailingAssistant(prev, segments));
|
|
42395
|
+
},
|
|
42396
|
+
onStreamStart: () => setStreamingPhase("streaming"),
|
|
42397
|
+
onStreamEnd: () => setStreamingPhase("idle")
|
|
42398
|
+
});
|
|
42399
|
+
const { processChunk, reset: resetAccumulator } = useRealtimeChunkProcessor({
|
|
42400
|
+
callbacks: {
|
|
42401
|
+
onSegmentsUpdate: (segments) => callbacksRef.current.onSegmentsUpdate(segments),
|
|
42402
|
+
onStreamStart: () => callbacksRef.current.onStreamStart(),
|
|
42403
|
+
onStreamEnd: () => callbacksRef.current.onStreamEnd()
|
|
42404
|
+
},
|
|
42405
|
+
enableThinking,
|
|
42406
|
+
batchApprovalsEnabled
|
|
42407
|
+
});
|
|
42408
|
+
const {
|
|
42409
|
+
processChunk: catchupProcessChunk,
|
|
42410
|
+
catchUpChunks,
|
|
42411
|
+
startInitialBuffering,
|
|
42412
|
+
resetChunkTracking
|
|
42413
|
+
} = useChunkCatchup({
|
|
42414
|
+
dialogId: active ? dialogId : null,
|
|
42415
|
+
onChunkReceived: (chunk) => processChunk(chunk),
|
|
42416
|
+
fetchChunks
|
|
42417
|
+
});
|
|
42418
|
+
_react.useEffect.call(void 0, () => {
|
|
42419
|
+
if (!active || !dialogId) return;
|
|
42420
|
+
resetChunkTracking();
|
|
42421
|
+
startInitialBuffering();
|
|
42422
|
+
catchUpChunks().catch((err) => {
|
|
42423
|
+
console.error("[useNatsChatAdapter] initial catchup failed:", err);
|
|
42424
|
+
});
|
|
42425
|
+
}, [active, dialogId, resetChunkTracking, startInitialBuffering, catchUpChunks]);
|
|
42426
|
+
useNatsDialogSubscription({
|
|
42427
|
+
enabled: active && dialogId != null,
|
|
42428
|
+
dialogId,
|
|
42429
|
+
getNatsWsUrl,
|
|
42430
|
+
clientConfig,
|
|
42431
|
+
onEvent: (payload, messageType) => {
|
|
42432
|
+
catchupProcessChunk(payload, messageType);
|
|
42433
|
+
}
|
|
42434
|
+
});
|
|
42435
|
+
const sendMessage = _react.useCallback.call(void 0,
|
|
42436
|
+
async (text, sendOptions) => {
|
|
42437
|
+
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1036 => _1036.hidden]), () => ( false));
|
|
42438
|
+
setMessages((prev) => [
|
|
42439
|
+
...prev,
|
|
42440
|
+
{
|
|
42441
|
+
id: nextId("user"),
|
|
42442
|
+
role: "user",
|
|
42443
|
+
content: text,
|
|
42444
|
+
...hidden ? { hidden: true } : {}
|
|
42445
|
+
},
|
|
42446
|
+
{
|
|
42447
|
+
id: nextId("assistant"),
|
|
42448
|
+
role: "assistant",
|
|
42449
|
+
content: "",
|
|
42450
|
+
segments: []
|
|
42451
|
+
}
|
|
42452
|
+
]);
|
|
42453
|
+
setStreamingPhase("thinking");
|
|
42454
|
+
await publishUserMessage(text, { hidden, dialogId });
|
|
42455
|
+
},
|
|
42456
|
+
[publishUserMessage, dialogId]
|
|
42457
|
+
);
|
|
42458
|
+
const stopMessage = _react.useCallback.call(void 0, () => {
|
|
42459
|
+
setStreamingPhase("idle");
|
|
42460
|
+
}, []);
|
|
42461
|
+
const clearMessages = _react.useCallback.call(void 0, () => {
|
|
42462
|
+
setMessages([]);
|
|
42463
|
+
resetAccumulator();
|
|
42464
|
+
setStreamingPhase("idle");
|
|
42465
|
+
}, [resetAccumulator]);
|
|
42466
|
+
const discussRef = _react.useCallback.call(void 0, (_ref) => {
|
|
42467
|
+
}, []);
|
|
42468
|
+
const displayRef = _react.useCallback.call(void 0, (_ref) => {
|
|
42469
|
+
}, []);
|
|
42470
|
+
const isLoading = streamingPhase !== "idle";
|
|
42471
|
+
return _react.useMemo.call(void 0,
|
|
42472
|
+
() => ({
|
|
42473
|
+
messages,
|
|
42474
|
+
isLoading,
|
|
42475
|
+
streamingPhase,
|
|
42476
|
+
sendMessage,
|
|
42477
|
+
stopMessage,
|
|
42478
|
+
clearMessages,
|
|
42479
|
+
discussRef,
|
|
42480
|
+
displayRef,
|
|
42481
|
+
// SSE-only telemetry — null in NATS mode.
|
|
42482
|
+
currentProvider: null,
|
|
42483
|
+
currentModelLabel: null,
|
|
42484
|
+
currentContextWindowMaxTokens: null,
|
|
42485
|
+
currentInputTokens: null,
|
|
42486
|
+
currentOutputTokens: null,
|
|
42487
|
+
currentCacheHitRatePct: null,
|
|
42488
|
+
currentUsageBreakdown: null
|
|
42489
|
+
}),
|
|
42490
|
+
[
|
|
42491
|
+
messages,
|
|
42492
|
+
isLoading,
|
|
42493
|
+
streamingPhase,
|
|
42494
|
+
sendMessage,
|
|
42495
|
+
stopMessage,
|
|
42496
|
+
clearMessages,
|
|
42497
|
+
discussRef,
|
|
42498
|
+
displayRef
|
|
42499
|
+
]
|
|
42500
|
+
);
|
|
42501
|
+
}
|
|
42502
|
+
|
|
42503
|
+
// src/components/chat/hooks/use-unified-chat.ts
|
|
42504
|
+
|
|
42505
|
+
var EMPTY_SSE_OPTIONS = {};
|
|
42506
|
+
function createDisabledNatsConfig() {
|
|
42507
|
+
return {
|
|
42508
|
+
dialogId: null,
|
|
42509
|
+
getNatsWsUrl: () => null,
|
|
42510
|
+
publishUserMessage: () => {
|
|
42511
|
+
throw new Error(
|
|
42512
|
+
"[useUnifiedChat] publishUserMessage invoked but mingo mode is not configured. Pass `modes.mingo` to enable Mingo agent transport."
|
|
42513
|
+
);
|
|
42514
|
+
}
|
|
42515
|
+
};
|
|
42516
|
+
}
|
|
42517
|
+
function useUnifiedChat(options) {
|
|
42518
|
+
const { modes, activeMode } = options;
|
|
42519
|
+
const disabledNatsRef = _react.useRef.call(void 0, null);
|
|
42520
|
+
if (disabledNatsRef.current === null) {
|
|
42521
|
+
disabledNatsRef.current = createDisabledNatsConfig();
|
|
42522
|
+
}
|
|
42523
|
+
const sseActive = activeMode === "guide" && modes.guide !== void 0;
|
|
42524
|
+
const natsActive = activeMode === "mingo" && modes.mingo !== void 0;
|
|
42525
|
+
const sseState = useSseChatAdapter(_nullishCoalesce(modes.guide, () => ( EMPTY_SSE_OPTIONS)));
|
|
42526
|
+
const natsState = useNatsChatAdapter(
|
|
42527
|
+
_nullishCoalesce(modes.mingo, () => ( disabledNatsRef.current)),
|
|
42528
|
+
{ active: natsActive }
|
|
42529
|
+
);
|
|
42530
|
+
void sseActive;
|
|
42531
|
+
const activeState = activeMode === "guide" ? sseState : natsState;
|
|
42532
|
+
const stopMessage = _react.useCallback.call(void 0, () => activeState.stopMessage(), [activeState]);
|
|
42533
|
+
const clearMessages = _react.useCallback.call(void 0,
|
|
42534
|
+
() => activeState.clearMessages(),
|
|
42535
|
+
[activeState]
|
|
42536
|
+
);
|
|
42537
|
+
const sendMessage = _react.useCallback.call(void 0,
|
|
42538
|
+
(text, opts) => activeState.sendMessage(text, opts),
|
|
42539
|
+
[activeState]
|
|
42540
|
+
);
|
|
42541
|
+
const discussRef = _react.useCallback.call(void 0,
|
|
42542
|
+
(ref) => activeState.discussRef(ref),
|
|
42543
|
+
[activeState]
|
|
42544
|
+
);
|
|
42545
|
+
const displayRef = _react.useCallback.call(void 0,
|
|
42546
|
+
(ref) => activeState.displayRef(ref),
|
|
42547
|
+
[activeState]
|
|
42548
|
+
);
|
|
42549
|
+
return _react.useMemo.call(void 0,
|
|
42550
|
+
() => ({
|
|
42551
|
+
messages: activeState.messages,
|
|
42552
|
+
isLoading: activeState.isLoading,
|
|
42553
|
+
streamingPhase: activeState.streamingPhase,
|
|
42554
|
+
sendMessage,
|
|
42555
|
+
stopMessage,
|
|
42556
|
+
clearMessages,
|
|
42557
|
+
discussRef,
|
|
42558
|
+
displayRef,
|
|
42559
|
+
currentProvider: activeState.currentProvider,
|
|
42560
|
+
currentModelLabel: activeState.currentModelLabel,
|
|
42561
|
+
currentContextWindowMaxTokens: activeState.currentContextWindowMaxTokens,
|
|
42562
|
+
currentInputTokens: activeState.currentInputTokens,
|
|
42563
|
+
currentOutputTokens: activeState.currentOutputTokens,
|
|
42564
|
+
currentCacheHitRatePct: activeState.currentCacheHitRatePct,
|
|
42565
|
+
currentUsageBreakdown: activeState.currentUsageBreakdown
|
|
42566
|
+
}),
|
|
42567
|
+
[
|
|
42568
|
+
activeState,
|
|
42569
|
+
sendMessage,
|
|
42570
|
+
stopMessage,
|
|
42571
|
+
clearMessages,
|
|
42572
|
+
discussRef,
|
|
42573
|
+
displayRef
|
|
42574
|
+
]
|
|
42575
|
+
);
|
|
42576
|
+
}
|
|
42577
|
+
|
|
41552
42578
|
// src/components/chat/hooks/use-proxied-image-url.ts
|
|
41553
42579
|
function useProxiedImageUrl(url) {
|
|
41554
42580
|
const r = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
|
|
@@ -41561,12 +42587,12 @@ function useProxiedImageUrl(url) {
|
|
|
41561
42587
|
|
|
41562
42588
|
// src/components/chat/utils/process-historical-messages.ts
|
|
41563
42589
|
function getOwnerDisplayName(owner) {
|
|
41564
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
42590
|
+
if (_optionalChain([owner, 'optionalAccess', _1037 => _1037.type]) === OWNER_TYPE.ADMIN && owner.user) {
|
|
41565
42591
|
const { firstName, lastName } = owner.user;
|
|
41566
42592
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
41567
42593
|
if (name) return name;
|
|
41568
42594
|
}
|
|
41569
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
42595
|
+
return _optionalChain([owner, 'optionalAccess', _1038 => _1038.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
41570
42596
|
}
|
|
41571
42597
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
41572
42598
|
messageDataArray.forEach((data) => {
|
|
@@ -41629,10 +42655,10 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
41629
42655
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
41630
42656
|
return;
|
|
41631
42657
|
}
|
|
41632
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
42658
|
+
const isUserMessage = _optionalChain([msg, 'access', _1039 => _1039.owner, 'optionalAccess', _1040 => _1040.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1041 => _1041.owner, 'optionalAccess', _1042 => _1042.type]) === OWNER_TYPE.ADMIN;
|
|
41633
42659
|
if (isUserMessage) {
|
|
41634
42660
|
flushAssistantMessage();
|
|
41635
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
42661
|
+
const userAuthorType = _optionalChain([msg, 'access', _1043 => _1043.owner, 'optionalAccess', _1044 => _1044.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
41636
42662
|
messageDataArray.forEach((data) => {
|
|
41637
42663
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
41638
42664
|
processedMessages.push({
|
|
@@ -41656,7 +42682,7 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
41656
42682
|
});
|
|
41657
42683
|
const nextMsg = messages[index + 1];
|
|
41658
42684
|
const isLastMessage = index === messages.length - 1;
|
|
41659
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
42685
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1045 => _1045.owner, 'optionalAccess', _1046 => _1046.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1047 => _1047.owner, 'optionalAccess', _1048 => _1048.type]) === OWNER_TYPE.ADMIN);
|
|
41660
42686
|
if (isLastMessage || nextIsFromUser) {
|
|
41661
42687
|
flushAssistantMessage();
|
|
41662
42688
|
}
|
|
@@ -41766,7 +42792,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
41766
42792
|
}
|
|
41767
42793
|
}
|
|
41768
42794
|
} else {
|
|
41769
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
42795
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1049 => _1049.set, 'call', _1050 => _1050(data.approvalRequestId, {
|
|
41770
42796
|
command: data.command || "",
|
|
41771
42797
|
explanation: data.explanation,
|
|
41772
42798
|
approvalType,
|
|
@@ -41779,8 +42805,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
41779
42805
|
if ("approvalRequestId" in data && data.approvalRequestId) {
|
|
41780
42806
|
const existingStatus = approvalStatuses[data.approvalRequestId];
|
|
41781
42807
|
const status = existingStatus || (data.approved ? "approved" : "rejected");
|
|
41782
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
41783
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
42808
|
+
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1051 => _1051.get, 'call', _1052 => _1052(data.approvalRequestId)]);
|
|
42809
|
+
if (_optionalChain([escalatedData, 'optionalAccess', _1053 => _1053.toolCalls]) && escalatedData.toolCalls.length > 0) {
|
|
41784
42810
|
if (batchApprovalsEnabled) {
|
|
41785
42811
|
accumulator.addApprovalBatch(
|
|
41786
42812
|
data.approvalRequestId,
|
|
@@ -41800,7 +42826,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
41800
42826
|
);
|
|
41801
42827
|
}
|
|
41802
42828
|
}
|
|
41803
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
42829
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1054 => _1054.delete, 'call', _1055 => _1055(data.approvalRequestId)]);
|
|
41804
42830
|
break;
|
|
41805
42831
|
}
|
|
41806
42832
|
if (escalatedData) {
|
|
@@ -41809,7 +42835,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
41809
42835
|
explanation: escalatedData.explanation,
|
|
41810
42836
|
approvalType: escalatedData.approvalType
|
|
41811
42837
|
});
|
|
41812
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
42838
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1056 => _1056.delete, 'call', _1057 => _1057(data.approvalRequestId)]);
|
|
41813
42839
|
}
|
|
41814
42840
|
const before = accumulator.getSegments();
|
|
41815
42841
|
const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
|
|
@@ -41825,9 +42851,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
41825
42851
|
case MESSAGE_TYPE.ERROR:
|
|
41826
42852
|
if ("error" in data) {
|
|
41827
42853
|
let message2;
|
|
41828
|
-
if ("details" in data && _optionalChain([data, 'optionalAccess',
|
|
42854
|
+
if ("details" in data && _optionalChain([data, 'optionalAccess', _1058 => _1058.details])) {
|
|
41829
42855
|
try {
|
|
41830
|
-
message2 = _optionalChain([JSON, 'access',
|
|
42856
|
+
message2 = _optionalChain([JSON, 'access', _1059 => _1059.parse, 'call', _1060 => _1060(data.details), 'optionalAccess', _1061 => _1061.error, 'optionalAccess', _1062 => _1062.message]);
|
|
41831
42857
|
} catch (e49) {
|
|
41832
42858
|
message2 = data.details;
|
|
41833
42859
|
}
|
|
@@ -41910,10 +42936,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
41910
42936
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
41911
42937
|
return;
|
|
41912
42938
|
}
|
|
41913
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
42939
|
+
const isUserMessage = _optionalChain([msg, 'access', _1063 => _1063.owner, 'optionalAccess', _1064 => _1064.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1065 => _1065.owner, 'optionalAccess', _1066 => _1066.type]) === OWNER_TYPE.ADMIN;
|
|
41914
42940
|
if (isUserMessage) {
|
|
41915
42941
|
flushAssistantMessage();
|
|
41916
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
42942
|
+
const userAuthorType = _optionalChain([msg, 'access', _1067 => _1067.owner, 'optionalAccess', _1068 => _1068.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
41917
42943
|
messageDataArray.forEach((data) => {
|
|
41918
42944
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
41919
42945
|
processedMessages.push({
|
|
@@ -41937,7 +42963,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
41937
42963
|
});
|
|
41938
42964
|
const nextMsg = messages[index + 1];
|
|
41939
42965
|
const isLastMessage = index === messages.length - 1;
|
|
41940
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
42966
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1069 => _1069.owner, 'optionalAccess', _1070 => _1070.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1071 => _1071.owner, 'optionalAccess', _1072 => _1072.type]) === OWNER_TYPE.ADMIN);
|
|
41941
42967
|
if (isLastMessage || nextIsFromUser) {
|
|
41942
42968
|
flushAssistantMessage();
|
|
41943
42969
|
}
|
|
@@ -41997,7 +43023,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
41997
43023
|
break;
|
|
41998
43024
|
case "approval_batch": {
|
|
41999
43025
|
const allDone = !!segment.data.executions && segment.data.toolCalls.every(
|
|
42000
|
-
(c) => _optionalChain([segment, 'access',
|
|
43026
|
+
(c) => _optionalChain([segment, 'access', _1073 => _1073.data, 'access', _1074 => _1074.executions, 'optionalAccess', _1075 => _1075[c.toolExecutionRequestId], 'optionalAccess', _1076 => _1076.status]) === "done"
|
|
42001
43027
|
);
|
|
42002
43028
|
if (segment.status !== "rejected" && !allDone) {
|
|
42003
43029
|
hasIncompleteState = true;
|
|
@@ -42041,7 +43067,7 @@ function chatChipClass({ tone, density = "chip", extra }) {
|
|
|
42041
43067
|
|
|
42042
43068
|
// node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
|
|
42043
43069
|
|
|
42044
|
-
var useLayoutEffect22 = _optionalChain([globalThis, 'optionalAccess',
|
|
43070
|
+
var useLayoutEffect22 = _optionalChain([globalThis, 'optionalAccess', _1077 => _1077.document]) ? React114.useLayoutEffect : () => {
|
|
42045
43071
|
};
|
|
42046
43072
|
|
|
42047
43073
|
// node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
|
|
@@ -42079,7 +43105,7 @@ function useControllableState({
|
|
|
42079
43105
|
if (isControlled) {
|
|
42080
43106
|
const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
|
|
42081
43107
|
if (value2 !== prop) {
|
|
42082
|
-
_optionalChain([onChangeRef, 'access',
|
|
43108
|
+
_optionalChain([onChangeRef, 'access', _1078 => _1078.current, 'optionalCall', _1079 => _1079(value2)]);
|
|
42083
43109
|
}
|
|
42084
43110
|
} else {
|
|
42085
43111
|
setUncontrolledProp(nextValue);
|
|
@@ -42101,7 +43127,7 @@ function useUncontrolledState({
|
|
|
42101
43127
|
}, [onChange]);
|
|
42102
43128
|
React115.useEffect(() => {
|
|
42103
43129
|
if (prevValueRef.current !== value) {
|
|
42104
|
-
_optionalChain([onChangeRef, 'access',
|
|
43130
|
+
_optionalChain([onChangeRef, 'access', _1080 => _1080.current, 'optionalCall', _1081 => _1081(value)]);
|
|
42105
43131
|
prevValueRef.current = value;
|
|
42106
43132
|
}
|
|
42107
43133
|
}, [value, prevValueRef]);
|
|
@@ -42443,7 +43469,11 @@ function EmbeddableChatInner({
|
|
|
42443
43469
|
defaultOpen,
|
|
42444
43470
|
showInternalTrigger = true,
|
|
42445
43471
|
extras,
|
|
42446
|
-
tableIdForDocumentType
|
|
43472
|
+
tableIdForDocumentType,
|
|
43473
|
+
modes,
|
|
43474
|
+
activeMode: controlledActiveMode,
|
|
43475
|
+
onActiveModeChange,
|
|
43476
|
+
defaultActiveMode
|
|
42447
43477
|
}) {
|
|
42448
43478
|
const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
|
|
42449
43479
|
const source = runtime.source;
|
|
@@ -42514,7 +43544,7 @@ function EmbeddableChatInner({
|
|
|
42514
43544
|
setCommandsById(map);
|
|
42515
43545
|
setCommandsLoaded(true);
|
|
42516
43546
|
}).catch((err) => {
|
|
42517
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
43547
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _1082 => _1082.name]) !== "AbortError") {
|
|
42518
43548
|
console.warn("[embeddable-chat] failed to fetch slash commands:", err);
|
|
42519
43549
|
setCommandsLoaded(true);
|
|
42520
43550
|
}
|
|
@@ -42542,7 +43572,25 @@ function EmbeddableChatInner({
|
|
|
42542
43572
|
_react.useEffect.call(void 0, () => {
|
|
42543
43573
|
if (!isOpen) setAnimationRest(false);
|
|
42544
43574
|
}, [isOpen]);
|
|
42545
|
-
const userName = _optionalChain([identityUser, 'optionalAccess',
|
|
43575
|
+
const userName = _optionalChain([identityUser, 'optionalAccess', _1083 => _1083.firstName, 'optionalAccess', _1084 => _1084.trim, 'call', _1085 => _1085()]) || _optionalChain([identityUser, 'optionalAccess', _1086 => _1086.name, 'optionalAccess', _1087 => _1087.split, 'call', _1088 => _1088(" "), 'access', _1089 => _1089[0], 'optionalAccess', _1090 => _1090.trim, 'call', _1091 => _1091()]) || void 0;
|
|
43576
|
+
const effectiveModes = _react.useMemo.call(void 0, () => {
|
|
43577
|
+
if (modes) return modes;
|
|
43578
|
+
const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
|
|
43579
|
+
return { guide: guideOptions };
|
|
43580
|
+
}, [modes, tableIdForDocumentType]);
|
|
43581
|
+
const initialActiveMode = _nullishCoalesce(_nullishCoalesce(controlledActiveMode, () => ( defaultActiveMode)), () => ( (effectiveModes.guide ? "guide" : "mingo")));
|
|
43582
|
+
const [uncontrolledActiveMode, setUncontrolledActiveMode] = _react.useState.call(void 0, initialActiveMode);
|
|
43583
|
+
const activeMode = _nullishCoalesce(controlledActiveMode, () => ( uncontrolledActiveMode));
|
|
43584
|
+
const handleActiveModeChange = _react.useCallback.call(void 0,
|
|
43585
|
+
(next) => {
|
|
43586
|
+
if (controlledActiveMode === void 0) {
|
|
43587
|
+
setUncontrolledActiveMode(next);
|
|
43588
|
+
}
|
|
43589
|
+
_optionalChain([onActiveModeChange, 'optionalCall', _1092 => _1092(next)]);
|
|
43590
|
+
},
|
|
43591
|
+
[controlledActiveMode, onActiveModeChange]
|
|
43592
|
+
);
|
|
43593
|
+
const showModeToggle = effectiveModes.guide !== void 0 && effectiveModes.mingo !== void 0;
|
|
42546
43594
|
const {
|
|
42547
43595
|
messages: rawMessages,
|
|
42548
43596
|
isLoading: chatLoading,
|
|
@@ -42558,7 +43606,7 @@ function EmbeddableChatInner({
|
|
|
42558
43606
|
currentCacheHitRatePct,
|
|
42559
43607
|
currentUsageBreakdown,
|
|
42560
43608
|
displayRef
|
|
42561
|
-
} =
|
|
43609
|
+
} = useUnifiedChat({ modes: effectiveModes, activeMode });
|
|
42562
43610
|
const {
|
|
42563
43611
|
attachments: stagedAttachments,
|
|
42564
43612
|
readyAttachments,
|
|
@@ -42609,7 +43657,7 @@ function EmbeddableChatInner({
|
|
|
42609
43657
|
augmentedText = `${text}${markdown}`;
|
|
42610
43658
|
}
|
|
42611
43659
|
sendMessage(augmentedText, {
|
|
42612
|
-
...readyAttachments.length > 0 ? {
|
|
43660
|
+
...readyAttachments.length > 0 ? { attachments: readyAttachments } : {}
|
|
42613
43661
|
});
|
|
42614
43662
|
if (readyAttachments.length > 0) {
|
|
42615
43663
|
clearAttachments();
|
|
@@ -42658,9 +43706,9 @@ function EmbeddableChatInner({
|
|
|
42658
43706
|
const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
|
|
42659
43707
|
const lastSources = _react.useMemo.call(void 0, () => {
|
|
42660
43708
|
if (chatLoading) return void 0;
|
|
42661
|
-
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
43709
|
+
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1093 => _1093.sources]);
|
|
42662
43710
|
if (!sources || sources.length === 0) return void 0;
|
|
42663
|
-
const content = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
43711
|
+
const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1094 => _1094.content]) || "";
|
|
42664
43712
|
const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
|
|
42665
43713
|
(m) => parseInt(m[1], 10)
|
|
42666
43714
|
);
|
|
@@ -42707,20 +43755,46 @@ function EmbeddableChatInner({
|
|
|
42707
43755
|
" AI Assistant"
|
|
42708
43756
|
] }) }),
|
|
42709
43757
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col overflow-hidden", children: [
|
|
42710
|
-
/* @__PURE__ */ _jsxruntime.
|
|
42711
|
-
|
|
42712
|
-
|
|
42713
|
-
|
|
42714
|
-
|
|
42715
|
-
|
|
42716
|
-
|
|
42717
|
-
|
|
42718
|
-
|
|
42719
|
-
|
|
42720
|
-
|
|
42721
|
-
|
|
42722
|
-
|
|
42723
|
-
|
|
43758
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-shrink-0 px-5 pt-4", children: [
|
|
43759
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
43760
|
+
ChatHeader,
|
|
43761
|
+
{
|
|
43762
|
+
userName: "Mingo AI",
|
|
43763
|
+
userTitle: `${sourceLabel} Assistant`,
|
|
43764
|
+
userIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk24KCAECRcjs.MingoIcon, { className: "h-6 w-6", color: "white" }),
|
|
43765
|
+
onNewChat: handleNewChat,
|
|
43766
|
+
onClose: handleClose,
|
|
43767
|
+
showNewChat: hasMessages,
|
|
43768
|
+
connectionStatus: "connected",
|
|
43769
|
+
fullWidth: true,
|
|
43770
|
+
className: "!rounded-xl"
|
|
43771
|
+
}
|
|
43772
|
+
),
|
|
43773
|
+
showModeToggle ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
43774
|
+
"div",
|
|
43775
|
+
{
|
|
43776
|
+
role: "radiogroup",
|
|
43777
|
+
"aria-label": "Chat mode",
|
|
43778
|
+
className: "mt-3 inline-flex rounded-lg border border-ods-border bg-ods-bg-secondary p-0.5",
|
|
43779
|
+
children: ["mingo", "guide"].map((m) => {
|
|
43780
|
+
const isActive = activeMode === m;
|
|
43781
|
+
const label = m === "mingo" ? "Mingo" : "Guide";
|
|
43782
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
43783
|
+
"button",
|
|
43784
|
+
{
|
|
43785
|
+
type: "button",
|
|
43786
|
+
role: "radio",
|
|
43787
|
+
"aria-checked": isActive,
|
|
43788
|
+
onClick: () => handleActiveModeChange(m),
|
|
43789
|
+
className: "px-3 py-1 text-sm rounded-md transition-colors " + (isActive ? "bg-ods-accent text-ods-text-on-accent" : "text-ods-text-secondary hover:text-ods-text-primary"),
|
|
43790
|
+
children: label
|
|
43791
|
+
},
|
|
43792
|
+
m
|
|
43793
|
+
);
|
|
43794
|
+
})
|
|
43795
|
+
}
|
|
43796
|
+
) : null
|
|
43797
|
+
] }),
|
|
42724
43798
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
42725
43799
|
"div",
|
|
42726
43800
|
{
|
|
@@ -42878,7 +43952,7 @@ function EmbeddableChatInner({
|
|
|
42878
43952
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
42879
43953
|
ChatAttachmentAddButton,
|
|
42880
43954
|
{
|
|
42881
|
-
attachmentsEnabled,
|
|
43955
|
+
attachmentsEnabled: attachmentsEnabled && activeMode === "guide",
|
|
42882
43956
|
attachmentsCount: stagedAttachments.length,
|
|
42883
43957
|
onAddFiles: addAttachmentFiles,
|
|
42884
43958
|
disabled: chatLoading
|
|
@@ -43706,5 +44780,21 @@ function EmbeddableChatInner({
|
|
|
43706
44780
|
|
|
43707
44781
|
|
|
43708
44782
|
|
|
43709
|
-
exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.getStatusColorScheme = getStatusColorScheme; exports.clickupTaskUrl = clickupTaskUrl; exports.isCrossOriginUrl = isCrossOriginUrl; exports.fetchPriorityProp = fetchPriorityProp; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.SquareAvatar = SquareAvatar; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.InteractiveCard = InteractiveCard; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.ImageGalleryModal = ImageGalleryModal; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.useChatCardItem = useChatCardItem; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.getChatProxyAuth = getChatProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setChatProxyAuth = setChatProxyAuth; exports.clearChatProxyAuth = clearChatProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.chatAuthedFetch = chatAuthedFetch; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.useEmbeddedChat = useEmbeddedChat; exports.useProxiedImageUrl = useProxiedImageUrl; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.HoverDropdown = HoverDropdown; exports.EmbeddableChat = EmbeddableChat; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState3; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup2; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.Modal = Modal2; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal3; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader3; exports.ModalTitle2 = ModalTitle3; exports.ModalFooter2 = ModalFooter2; exports.Separator = Separator3; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.assets = assets;
|
|
43710
|
-
|
|
44783
|
+
|
|
44784
|
+
|
|
44785
|
+
|
|
44786
|
+
|
|
44787
|
+
|
|
44788
|
+
|
|
44789
|
+
|
|
44790
|
+
|
|
44791
|
+
|
|
44792
|
+
|
|
44793
|
+
|
|
44794
|
+
|
|
44795
|
+
|
|
44796
|
+
|
|
44797
|
+
|
|
44798
|
+
|
|
44799
|
+
exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.getStatusColorScheme = getStatusColorScheme; exports.clickupTaskUrl = clickupTaskUrl; exports.isCrossOriginUrl = isCrossOriginUrl; exports.fetchPriorityProp = fetchPriorityProp; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.SquareAvatar = SquareAvatar; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.InteractiveCard = InteractiveCard; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.ImageGalleryModal = ImageGalleryModal; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton2; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.useChatCardItem = useChatCardItem; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.getChatProxyAuth = getChatProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setChatProxyAuth = setChatProxyAuth; exports.clearChatProxyAuth = clearChatProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.chatAuthedFetch = chatAuthedFetch; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.useSseChatAdapter = useSseChatAdapter; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.useProxiedImageUrl = useProxiedImageUrl; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.HoverDropdown = HoverDropdown; exports.EmbeddableChat = EmbeddableChat; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState3; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.DevSectionView = DevSectionView; exports.DevSectionPage = DevSectionPage; exports.useRoadmapVoting = useRoadmapVoting; exports.RoadmapGrid = RoadmapGrid; exports.RoadmapGridSkeleton = RoadmapGridSkeleton; exports.DeliveryTable = DeliveryTable; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.DeliveryLists = DeliveryLists; exports.useLegalDocs = useLegalDocs; exports.LegalDocumentPage = LegalDocumentPage; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup2; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.Modal = Modal2; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal3; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader3; exports.ModalTitle2 = ModalTitle3; exports.ModalFooter2 = ModalFooter2; exports.Separator = Separator3; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
|
|
44800
|
+
//# sourceMappingURL=chunk-ZRSOPDAV.cjs.map
|