@flamingo-stack/openframe-frontend-core 0.0.478 → 0.0.479-snapshot.20260724200209
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-U6V2QF7M.cjs → chunk-2KQSGCXE.cjs} +9 -9
- package/dist/{chunk-U6V2QF7M.cjs.map → chunk-2KQSGCXE.cjs.map} +1 -1
- package/dist/{chunk-OKM7RLSC.js → chunk-3KUF3WZA.js} +2 -2
- package/dist/{chunk-5KKOLZYY.js → chunk-3RNTIJHB.js} +2 -2
- package/dist/{chunk-AEN4VLVL.cjs → chunk-3U63ZV3X.cjs} +812 -800
- package/dist/chunk-3U63ZV3X.cjs.map +1 -0
- package/dist/{chunk-HSG7UX5A.js → chunk-DERJNBZP.js} +2 -2
- package/dist/{chunk-3F34WHMC.js → chunk-DHKIQLI2.js} +2 -2
- package/dist/{chunk-JLQJEP7G.cjs → chunk-E7VFCW5W.cjs} +11 -11
- package/dist/{chunk-JLQJEP7G.cjs.map → chunk-E7VFCW5W.cjs.map} +1 -1
- package/dist/{chunk-EAX7P7U4.cjs → chunk-JF24RU23.cjs} +7 -7
- package/dist/{chunk-EAX7P7U4.cjs.map → chunk-JF24RU23.cjs.map} +1 -1
- package/dist/{chunk-4G7PVIYP.js → chunk-JFDSGGAK.js} +231 -219
- package/dist/chunk-JFDSGGAK.js.map +1 -0
- package/dist/{chunk-LULDTIT4.cjs → chunk-LLFHPCSN.cjs} +31 -31
- package/dist/{chunk-LULDTIT4.cjs.map → chunk-LLFHPCSN.cjs.map} +1 -1
- package/dist/{chunk-ZOY7DX3V.cjs → chunk-MHRVEZCV.cjs} +59 -59
- package/dist/{chunk-ZOY7DX3V.cjs.map → chunk-MHRVEZCV.cjs.map} +1 -1
- package/dist/{chunk-EDYTAHLO.js → chunk-OW55OP63.js} +4 -4
- package/dist/{chunk-ZNW6T7WT.cjs → chunk-P4TRELZZ.cjs} +26 -26
- package/dist/{chunk-ZNW6T7WT.cjs.map → chunk-P4TRELZZ.cjs.map} +1 -1
- package/dist/{chunk-UH5THVF6.cjs → chunk-Q2M7H2EB.cjs} +62 -62
- package/dist/{chunk-UH5THVF6.cjs.map → chunk-Q2M7H2EB.cjs.map} +1 -1
- package/dist/{chunk-I5U2ES7I.js → chunk-QPLNXVEQ.js} +4 -4
- package/dist/{chunk-6U7ADGNA.js → chunk-R7UD3W7H.js} +2 -2
- package/dist/{chunk-AAMKWW6V.cjs → chunk-S2ESE7RO.cjs} +15 -15
- package/dist/{chunk-AAMKWW6V.cjs.map → chunk-S2ESE7RO.cjs.map} +1 -1
- package/dist/{chunk-2VDF7MHY.js → chunk-U77JKQT4.js} +2 -2
- package/dist/{chunk-AH7BJXKI.cjs → chunk-VYPTIGJO.cjs} +37 -37
- package/dist/{chunk-AH7BJXKI.cjs.map → chunk-VYPTIGJO.cjs.map} +1 -1
- package/dist/{chunk-BJIC5UIR.cjs → chunk-VYX4RQMO.cjs} +26 -26
- package/dist/{chunk-BJIC5UIR.cjs.map → chunk-VYX4RQMO.cjs.map} +1 -1
- package/dist/{chunk-HT5CKZR2.js → chunk-WFRG5KRR.js} +4 -4
- package/dist/{chunk-KTJFEEOH.cjs → chunk-XMP7D4NB.cjs} +5 -5
- package/dist/{chunk-KTJFEEOH.cjs.map → chunk-XMP7D4NB.cjs.map} +1 -1
- package/dist/{chunk-NDLYYEF6.js → chunk-YHUZ4WSI.js} +4 -4
- package/dist/{chunk-XTIANI5N.js → chunk-Z7IFLZ4V.js} +2 -2
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/chat/tool-execution-display.d.ts.map +1 -1
- package/dist/components/chat/types/component.types.d.ts +6 -0
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/chat/types/message.types.d.ts +10 -0
- package/dist/components/chat/types/message.types.d.ts.map +1 -1
- package/dist/components/chat/types/network.types.d.ts +2 -0
- package/dist/components/chat/types/network.types.d.ts.map +1 -1
- package/dist/components/chat/utils/chunk-parser.d.ts.map +1 -1
- package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
- package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/index.cjs +130 -130
- package/dist/components/index.js +9 -9
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/chat-message-enhanced.tsx +1 -0
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +1 -0
- package/src/components/chat/tool-execution-display.tsx +98 -62
- package/src/components/chat/types/component.types.ts +6 -0
- package/src/components/chat/types/message.types.ts +10 -0
- package/src/components/chat/types/network.types.ts +2 -0
- package/src/components/chat/utils/chunk-parser.ts +1 -0
- package/src/components/chat/utils/extract-incomplete-message-state.ts +1 -0
- package/src/components/chat/utils/message-segment-accumulator.ts +3 -0
- package/src/components/chat/utils/process-historical-messages.ts +1 -0
- package/dist/chunk-4G7PVIYP.js.map +0 -1
- package/dist/chunk-AEN4VLVL.cjs.map +0 -1
- /package/dist/{chunk-OKM7RLSC.js.map → chunk-3KUF3WZA.js.map} +0 -0
- /package/dist/{chunk-5KKOLZYY.js.map → chunk-3RNTIJHB.js.map} +0 -0
- /package/dist/{chunk-HSG7UX5A.js.map → chunk-DERJNBZP.js.map} +0 -0
- /package/dist/{chunk-3F34WHMC.js.map → chunk-DHKIQLI2.js.map} +0 -0
- /package/dist/{chunk-EDYTAHLO.js.map → chunk-OW55OP63.js.map} +0 -0
- /package/dist/{chunk-I5U2ES7I.js.map → chunk-QPLNXVEQ.js.map} +0 -0
- /package/dist/{chunk-6U7ADGNA.js.map → chunk-R7UD3W7H.js.map} +0 -0
- /package/dist/{chunk-2VDF7MHY.js.map → chunk-U77JKQT4.js.map} +0 -0
- /package/dist/{chunk-HT5CKZR2.js.map → chunk-WFRG5KRR.js.map} +0 -0
- /package/dist/{chunk-NDLYYEF6.js.map → chunk-YHUZ4WSI.js.map} +0 -0
- /package/dist/{chunk-XTIANI5N.js.map → chunk-Z7IFLZ4V.js.map} +0 -0
|
@@ -4899,30 +4899,30 @@ var formatTime = (input) => format(input, timeFmt);
|
|
|
4899
4899
|
// src/components/chat/tool-execution-display.tsx
|
|
4900
4900
|
init_cn();
|
|
4901
4901
|
import { forwardRef as forwardRef10, useMemo as useMemo5, useState as useState9 } from "react";
|
|
4902
|
-
import { jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4902
|
+
import { Fragment as Fragment4, jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4903
4903
|
var COMMAND_BODY_KEYS2 = new Set(COMMAND_BODY_ARG_KEYS);
|
|
4904
4904
|
var ToolExecutionDisplay = forwardRef10(
|
|
4905
|
-
({ className, message: message2, assistantType, ...props }, ref) => {
|
|
4905
|
+
({ className, message: message2, assistantType, variant = "admin", ...props }, ref) => {
|
|
4906
4906
|
const [expanded, setExpanded] = useState9(false);
|
|
4907
4907
|
const { innerRef, containerStyle } = useCollapsible({ expanded });
|
|
4908
4908
|
const isClient = assistantType === "fae";
|
|
4909
|
+
const isClientView = variant === "client";
|
|
4909
4910
|
const isExecuting = message2.type === "EXECUTING_TOOL";
|
|
4910
4911
|
const isExecuted = message2.type === "EXECUTED_TOOL";
|
|
4911
4912
|
const integratedToolType = message2.integratedToolType || "OPENFRAME";
|
|
4912
|
-
const previewText =
|
|
4913
|
-
() => getToolCallTitle({
|
|
4914
|
-
args: message2.parameters,
|
|
4915
|
-
title: message2.toolTitle,
|
|
4916
|
-
name: message2.toolFunction
|
|
4917
|
-
}),
|
|
4918
|
-
[message2.parameters, message2.toolTitle, message2.toolFunction]
|
|
4919
|
-
);
|
|
4913
|
+
const previewText = variant === "client" ? message2.toolExplanation?.trim() : message2.toolTitle?.trim();
|
|
4920
4914
|
const argEntries = useMemo5(() => {
|
|
4921
4915
|
if (!message2.parameters || typeof message2.parameters !== "object") return [];
|
|
4922
|
-
|
|
4923
|
-
([
|
|
4916
|
+
const entries = Object.entries(message2.parameters).filter(
|
|
4917
|
+
([, v]) => v !== null && v !== void 0 && v !== ""
|
|
4924
4918
|
);
|
|
4925
|
-
|
|
4919
|
+
if (variant === "client") {
|
|
4920
|
+
return entries.filter(([k]) => !COMMAND_BODY_KEYS2.has(k));
|
|
4921
|
+
}
|
|
4922
|
+
const commandEntries = entries.filter(([k]) => COMMAND_BODY_KEYS2.has(k));
|
|
4923
|
+
const otherEntries = entries.filter(([k]) => !COMMAND_BODY_KEYS2.has(k));
|
|
4924
|
+
return [...commandEntries, ...otherEntries];
|
|
4925
|
+
}, [message2.parameters, variant]);
|
|
4926
4926
|
const hasResult = isExecuted && typeof message2.result === "string" && message2.result.length > 0;
|
|
4927
4927
|
const hasBody = argEntries.length > 0 || hasResult || isExecuting;
|
|
4928
4928
|
const renderStatusIcon = () => {
|
|
@@ -4931,7 +4931,22 @@ var ToolExecutionDisplay = forwardRef10(
|
|
|
4931
4931
|
if (isExecuted && message2.success === false) return /* @__PURE__ */ jsx23(XmarkCircleIcon, { className: "w-4 h-4 text-ods-error" });
|
|
4932
4932
|
return null;
|
|
4933
4933
|
};
|
|
4934
|
-
|
|
4934
|
+
const headerContent = /* @__PURE__ */ jsxs19(Fragment4, { children: [
|
|
4935
|
+
!isClient && /* @__PURE__ */ jsx23("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx23(ToolIcon, { toolType: integratedToolType, size: 16 }) }),
|
|
4936
|
+
/* @__PURE__ */ jsx23(
|
|
4937
|
+
"div",
|
|
4938
|
+
{
|
|
4939
|
+
className: cn(
|
|
4940
|
+
"flex-1 min-w-0 text-h6",
|
|
4941
|
+
isClientView ? "text-ods-text-primary whitespace-pre-wrap break-words" : expanded ? "text-ods-text-primary whitespace-pre-wrap break-all" : "text-ods-text-secondary line-clamp-2 max-h-10 break-all"
|
|
4942
|
+
),
|
|
4943
|
+
children: previewText
|
|
4944
|
+
}
|
|
4945
|
+
),
|
|
4946
|
+
/* @__PURE__ */ jsx23("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: renderStatusIcon() }),
|
|
4947
|
+
!isClientView && /* @__PURE__ */ jsx23("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx23(ExpandChevron, { expanded }) })
|
|
4948
|
+
] });
|
|
4949
|
+
return /* @__PURE__ */ jsx23(
|
|
4935
4950
|
"div",
|
|
4936
4951
|
{
|
|
4937
4952
|
ref,
|
|
@@ -4942,28 +4957,18 @@ var ToolExecutionDisplay = forwardRef10(
|
|
|
4942
4957
|
className
|
|
4943
4958
|
),
|
|
4944
4959
|
...props,
|
|
4945
|
-
children:
|
|
4946
|
-
|
|
4960
|
+
children: isClientView ? (
|
|
4961
|
+
// Client (Fae end-user): static, non-expandable row — no chevron, no
|
|
4962
|
+
// body. Just the explanation + status; command/args/result are hidden.
|
|
4963
|
+
/* @__PURE__ */ jsx23("div", { className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] w-full text-left", children: headerContent })
|
|
4964
|
+
) : /* @__PURE__ */ jsxs19(Fragment4, { children: [
|
|
4965
|
+
/* @__PURE__ */ jsx23(
|
|
4947
4966
|
"button",
|
|
4948
4967
|
{
|
|
4949
4968
|
type: "button",
|
|
4950
4969
|
className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
|
|
4951
4970
|
onClick: () => setExpanded((prev) => !prev),
|
|
4952
|
-
children:
|
|
4953
|
-
!isClient && /* @__PURE__ */ jsx23("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx23(ToolIcon, { toolType: integratedToolType, size: 16 }) }),
|
|
4954
|
-
/* @__PURE__ */ jsx23(
|
|
4955
|
-
"div",
|
|
4956
|
-
{
|
|
4957
|
-
className: cn(
|
|
4958
|
-
"flex-1 min-w-0 text-h6",
|
|
4959
|
-
expanded ? "text-ods-text-primary whitespace-pre-wrap break-all" : "text-ods-text-secondary line-clamp-2 max-h-10 break-all"
|
|
4960
|
-
),
|
|
4961
|
-
children: previewText
|
|
4962
|
-
}
|
|
4963
|
-
),
|
|
4964
|
-
/* @__PURE__ */ jsx23("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: renderStatusIcon() }),
|
|
4965
|
-
/* @__PURE__ */ jsx23("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx23(ExpandChevron, { expanded }) })
|
|
4966
|
-
]
|
|
4971
|
+
children: headerContent
|
|
4967
4972
|
}
|
|
4968
4973
|
),
|
|
4969
4974
|
/* @__PURE__ */ jsx23("div", { className: "w-full", style: containerStyle, children: /* @__PURE__ */ jsx23("div", { ref: innerRef, children: hasBody && /* @__PURE__ */ jsxs19("div", { className: "flex flex-col gap-0 items-start w-full text-h6 p-[var(--spacing-system-sf)] bg-ods-card", children: [
|
|
@@ -4989,7 +4994,7 @@ var ToolExecutionDisplay = forwardRef10(
|
|
|
4989
4994
|
}
|
|
4990
4995
|
)
|
|
4991
4996
|
] }) }) })
|
|
4992
|
-
]
|
|
4997
|
+
] })
|
|
4993
4998
|
}
|
|
4994
4999
|
);
|
|
4995
5000
|
}
|
|
@@ -5083,13 +5088,13 @@ function BlockCard(_props) {
|
|
|
5083
5088
|
|
|
5084
5089
|
// src/components/chat/chat-context-picker.tsx
|
|
5085
5090
|
import { QueryErrorResetBoundary } from "@tanstack/react-query";
|
|
5086
|
-
import { Fragment as
|
|
5091
|
+
import { Fragment as Fragment6, Suspense, useCallback as useCallback6, useEffect as useEffect5, useLayoutEffect as useLayoutEffect3, useMemo as useMemo6, useRef as useRef6, useState as useState10 } from "react";
|
|
5087
5092
|
init_cn();
|
|
5088
5093
|
|
|
5089
5094
|
// src/components/chat/context-items-list.tsx
|
|
5090
5095
|
import * as React9 from "react";
|
|
5091
5096
|
init_cn();
|
|
5092
|
-
import { Fragment as
|
|
5097
|
+
import { Fragment as Fragment5, jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5093
5098
|
var itemKey = (i) => `${i.type}:${i.id}`;
|
|
5094
5099
|
var CONTEXT_ROW_CLASS = "flex w-full items-center gap-2 border-b border-ods-border bg-ods-bg py-3 pl-4 pr-2 text-left outline-none transition-colors last:border-b-0 hover:bg-ods-bg-hover focus-visible:bg-ods-bg-hover [&_svg]:size-4 md:[&_svg]:size-6";
|
|
5095
5100
|
var CONTEXT_ICON_CLASS = "flex size-4 shrink-0 items-center justify-center text-ods-text-secondary md:size-6";
|
|
@@ -5125,7 +5130,7 @@ function ContextMenuRow({
|
|
|
5125
5130
|
);
|
|
5126
5131
|
}
|
|
5127
5132
|
function ContextItemsSkeleton({ count }) {
|
|
5128
|
-
return /* @__PURE__ */ jsx24(
|
|
5133
|
+
return /* @__PURE__ */ jsx24(Fragment5, { children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ jsx24(
|
|
5129
5134
|
"div",
|
|
5130
5135
|
{
|
|
5131
5136
|
className: "flex items-center border-b border-ods-border bg-ods-bg py-3 pl-4 pr-2 last:border-b-0",
|
|
@@ -5208,7 +5213,7 @@ var ContextErrorBoundary = class extends React9.Component {
|
|
|
5208
5213
|
};
|
|
5209
5214
|
|
|
5210
5215
|
// src/components/chat/chat-context-picker.tsx
|
|
5211
|
-
import { Fragment as
|
|
5216
|
+
import { Fragment as Fragment7, jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5212
5217
|
var CHAT_CONTEXT_ITEMS_DEFAULT_MAX = 10;
|
|
5213
5218
|
var ITEMS_SKELETON_ROWS = 10;
|
|
5214
5219
|
var SEARCH_DEBOUNCE_MS = 300;
|
|
@@ -5394,7 +5399,7 @@ function ChatContextPicker({
|
|
|
5394
5399
|
] })
|
|
5395
5400
|
) : activeType ? (
|
|
5396
5401
|
/* Level 2 — Back + search + HOST-rendered items (Figma 31:29102). */
|
|
5397
|
-
/* @__PURE__ */ jsxs21(
|
|
5402
|
+
/* @__PURE__ */ jsxs21(Fragment7, { children: [
|
|
5398
5403
|
/* @__PURE__ */ jsxs21("button", { type: "button", onClick: backToTypes, className: cn(CONTEXT_BACK_CLASS, "sticky top-0 z-10"), children: [
|
|
5399
5404
|
/* @__PURE__ */ jsx25(Chevron02LeftIcon, { size: 24, className: "shrink-0" }),
|
|
5400
5405
|
/* @__PURE__ */ jsx25("span", { className: "truncate", children: "Back" })
|
|
@@ -5465,7 +5470,7 @@ function ChatContextChipStrip({
|
|
|
5465
5470
|
// uppercase label, 16px lead icon + xmark-circle remove. Wraps to new rows.
|
|
5466
5471
|
/* @__PURE__ */ jsx25("div", { className: cn("flex flex-wrap content-center items-center gap-2", className), children: items.map((item) => {
|
|
5467
5472
|
const hostNode = renderItem?.(item);
|
|
5468
|
-
if (hostNode != null) return /* @__PURE__ */ jsx25(
|
|
5473
|
+
if (hostNode != null) return /* @__PURE__ */ jsx25(Fragment6, { children: hostNode }, itemKey2(item));
|
|
5469
5474
|
return /* @__PURE__ */ jsxs21(
|
|
5470
5475
|
"div",
|
|
5471
5476
|
{
|
|
@@ -5502,7 +5507,7 @@ function ChatContextChipStrip({
|
|
|
5502
5507
|
}
|
|
5503
5508
|
|
|
5504
5509
|
// src/components/chat/chat-message-enhanced.tsx
|
|
5505
|
-
import { Fragment as
|
|
5510
|
+
import { Fragment as Fragment8, jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
5506
5511
|
var MENTION_MARKER_REGEX = /(^|[^\w@])@[a-z]+:([A-Za-z0-9_.+/=-]*[A-Za-z0-9_+/=])/g;
|
|
5507
5512
|
var CARD_MARKER_REGEX = /\[card:\/\/([a-zA-Z0-9_-]+):([a-zA-Z0-9_-]+)[\])]/g;
|
|
5508
5513
|
function formatMessageTimestamp(timestamp) {
|
|
@@ -5634,7 +5639,7 @@ var ChatMessageEnhanced = forwardRef11(
|
|
|
5634
5639
|
const marker = sepIdx === -1 ? stripped : stripped.slice(0, sepIdx);
|
|
5635
5640
|
const id = sepIdx === -1 ? "" : stripped.slice(sepIdx + 1);
|
|
5636
5641
|
const node = renderMention?.({ marker, id });
|
|
5637
|
-
if (node != null) return /* @__PURE__ */ jsx26(
|
|
5642
|
+
if (node != null) return /* @__PURE__ */ jsx26(Fragment8, { children: node });
|
|
5638
5643
|
return /* @__PURE__ */ jsx26("span", { className: "text-ods-text-secondary opacity-60", children });
|
|
5639
5644
|
}
|
|
5640
5645
|
if (typeof href === "string" && href.startsWith("card://")) {
|
|
@@ -5748,7 +5753,8 @@ var ChatMessageEnhanced = forwardRef11(
|
|
|
5748
5753
|
ToolExecutionDisplay,
|
|
5749
5754
|
{
|
|
5750
5755
|
message: segment.data,
|
|
5751
|
-
assistantType
|
|
5756
|
+
assistantType,
|
|
5757
|
+
variant: approvalVariant
|
|
5752
5758
|
},
|
|
5753
5759
|
index
|
|
5754
5760
|
);
|
|
@@ -6524,7 +6530,7 @@ function EntityIcon({
|
|
|
6524
6530
|
}
|
|
6525
6531
|
|
|
6526
6532
|
// src/components/chat/quick-action-chip.tsx
|
|
6527
|
-
import { Fragment as
|
|
6533
|
+
import { Fragment as Fragment9, jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
6528
6534
|
var AGENT_ACCENTS = { fae: "pink", mingo: "cyan" };
|
|
6529
6535
|
function getAgentAccent(slug) {
|
|
6530
6536
|
return slug === "fae" || slug === "mingo" ? AGENT_ACCENTS[slug] : void 0;
|
|
@@ -6559,7 +6565,7 @@ function renderQuickActionIcon(icon) {
|
|
|
6559
6565
|
}
|
|
6560
6566
|
function composeChipLabel(label, lozenge) {
|
|
6561
6567
|
if (!lozenge) return label;
|
|
6562
|
-
return /* @__PURE__ */ jsxs27(
|
|
6568
|
+
return /* @__PURE__ */ jsxs27(Fragment9, { children: [
|
|
6563
6569
|
/* @__PURE__ */ jsx33(
|
|
6564
6570
|
"span",
|
|
6565
6571
|
{
|
|
@@ -6590,7 +6596,7 @@ function QuickActionChipSkeleton({ labelCh = 16, icon = true, lozenge = false, s
|
|
|
6590
6596
|
size: size2,
|
|
6591
6597
|
className,
|
|
6592
6598
|
icon: icon ? /* @__PURE__ */ jsx33(ChipSkelBar, { className: size2 === "large" ? "block size-5" : "block size-4" }) : void 0,
|
|
6593
|
-
label: /* @__PURE__ */ jsxs27(
|
|
6599
|
+
label: /* @__PURE__ */ jsxs27(Fragment9, { children: [
|
|
6594
6600
|
lozenge && /* @__PURE__ */ jsx33(ChipSkelBar, { className: "mr-2 inline-block h-[16px] w-[26px] translate-y-[2px]" }),
|
|
6595
6601
|
/* @__PURE__ */ jsx33(ChipSkelBar, { className: "inline-block h-[0.9em] translate-y-[0.08em]", style: { width: `${labelCh}ch` } })
|
|
6596
6602
|
] })
|
|
@@ -6674,7 +6680,7 @@ import * as React13 from "react";
|
|
|
6674
6680
|
// src/components/ui/marquee-wall.tsx
|
|
6675
6681
|
init_cn();
|
|
6676
6682
|
import * as React12 from "react";
|
|
6677
|
-
import { Fragment as
|
|
6683
|
+
import { Fragment as Fragment10, jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
6678
6684
|
function normalizeFades(fade) {
|
|
6679
6685
|
return fade ? Array.isArray(fade) ? fade : [fade] : [];
|
|
6680
6686
|
}
|
|
@@ -6718,7 +6724,7 @@ function MarqueeWallFades({
|
|
|
6718
6724
|
fadeColor = "var(--color-bg)",
|
|
6719
6725
|
fadeSize
|
|
6720
6726
|
}) {
|
|
6721
|
-
return /* @__PURE__ */ jsx34(
|
|
6727
|
+
return /* @__PURE__ */ jsx34(Fragment10, { children: normalizeFades(fade).map((edge) => {
|
|
6722
6728
|
const size2 = (typeof fadeSize === "object" && fadeSize !== null ? fadeSize[edge] : fadeSize) ?? DEFAULT_FADE_SIZE[edge];
|
|
6723
6729
|
const px = typeof size2 === "number" ? `${size2}px` : size2;
|
|
6724
6730
|
const isY = edge === "top" || edge === "bottom";
|
|
@@ -7818,7 +7824,7 @@ function MingoChatHistory({
|
|
|
7818
7824
|
|
|
7819
7825
|
// src/components/chat/mingo-welcome.tsx
|
|
7820
7826
|
init_button2();
|
|
7821
|
-
import { Fragment as
|
|
7827
|
+
import { Fragment as Fragment11, jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
7822
7828
|
var DEFAULT_SUBTITLE = "Ready to help with your technical tasks. What can I do for you?";
|
|
7823
7829
|
var DEFAULT_PROMO = {
|
|
7824
7830
|
title: "New to OpenFrame?",
|
|
@@ -7891,7 +7897,7 @@ function MingoWelcome({
|
|
|
7891
7897
|
children: "Try again"
|
|
7892
7898
|
}
|
|
7893
7899
|
)
|
|
7894
|
-
] }) : isLoadingHistory ? /* @__PURE__ */ jsx43(MingoChatHistorySkeleton, {}) : /* @__PURE__ */ jsx43(
|
|
7900
|
+
] }) : isLoadingHistory ? /* @__PURE__ */ jsx43(MingoChatHistorySkeleton, {}) : /* @__PURE__ */ jsx43(Fragment11, { children: /* @__PURE__ */ jsxs35("div", { className: "relative flex flex-1 min-h-0 flex-col", children: [
|
|
7895
7901
|
/* @__PURE__ */ jsx43(
|
|
7896
7902
|
"div",
|
|
7897
7903
|
{
|
|
@@ -8449,7 +8455,7 @@ var ModalFooter = React23.forwardRef(
|
|
|
8449
8455
|
ModalFooter.displayName = "ModalV2Footer";
|
|
8450
8456
|
|
|
8451
8457
|
// src/components/chat/mingo-chat-modals.tsx
|
|
8452
|
-
import { Fragment as
|
|
8458
|
+
import { Fragment as Fragment12, jsx as jsx50, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
8453
8459
|
var footerBtn = "flex-1 min-w-0 rounded-md px-[var(--spacing-system-m)] py-[var(--spacing-system-sf)] text-h3 transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent disabled:opacity-50 disabled:cursor-not-allowed";
|
|
8454
8460
|
var cancelBtn = cn(
|
|
8455
8461
|
footerBtn,
|
|
@@ -8540,7 +8546,7 @@ function ChatDialogModals({
|
|
|
8540
8546
|
setRestoreTarget,
|
|
8541
8547
|
onConfirmRestore
|
|
8542
8548
|
}) {
|
|
8543
|
-
return /* @__PURE__ */ jsxs41(
|
|
8549
|
+
return /* @__PURE__ */ jsxs41(Fragment12, { children: [
|
|
8544
8550
|
/* @__PURE__ */ jsx50(
|
|
8545
8551
|
RenameChatModal,
|
|
8546
8552
|
{
|
|
@@ -8764,7 +8770,7 @@ function ChatPanelHeaderMobile({
|
|
|
8764
8770
|
}
|
|
8765
8771
|
|
|
8766
8772
|
// src/components/chat/chat-panel-header.tsx
|
|
8767
|
-
import { Fragment as
|
|
8773
|
+
import { Fragment as Fragment13, jsx as jsx54, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
8768
8774
|
function ChatPanelHeader({
|
|
8769
8775
|
showBack = false,
|
|
8770
8776
|
title,
|
|
@@ -8789,7 +8795,7 @@ function ChatPanelHeader({
|
|
|
8789
8795
|
onRename && { id: "rename", label: "Rename chat", onClick: onRename },
|
|
8790
8796
|
onArchive && { id: "archive", label: "Archive chat", onClick: onArchive }
|
|
8791
8797
|
].filter(Boolean);
|
|
8792
|
-
return /* @__PURE__ */ jsxs44(
|
|
8798
|
+
return /* @__PURE__ */ jsxs44(Fragment13, { children: [
|
|
8793
8799
|
!compact && /* @__PURE__ */ jsx54(
|
|
8794
8800
|
ChatPanelHeaderMobile,
|
|
8795
8801
|
{
|
|
@@ -8948,7 +8954,7 @@ function stripChatAttachmentMarkdown(text) {
|
|
|
8948
8954
|
}
|
|
8949
8955
|
|
|
8950
8956
|
// src/components/chat/chat-attachment-bar.tsx
|
|
8951
|
-
import { Fragment as
|
|
8957
|
+
import { Fragment as Fragment14, jsx as jsx55, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
8952
8958
|
var CHAT_ATTACHMENT_MIME_TYPES = [
|
|
8953
8959
|
"image/jpeg",
|
|
8954
8960
|
"image/png",
|
|
@@ -8981,7 +8987,7 @@ function ChatAttachmentAddButton({
|
|
|
8981
8987
|
if (!canAddMore) return;
|
|
8982
8988
|
fileInputRef.current?.click();
|
|
8983
8989
|
};
|
|
8984
|
-
return /* @__PURE__ */ jsxs45(
|
|
8990
|
+
return /* @__PURE__ */ jsxs45(Fragment14, { children: [
|
|
8985
8991
|
/* @__PURE__ */ jsx55(
|
|
8986
8992
|
"input",
|
|
8987
8993
|
{
|
|
@@ -9571,7 +9577,7 @@ function ChatComposer({
|
|
|
9571
9577
|
}
|
|
9572
9578
|
|
|
9573
9579
|
// src/components/chat/chat-archive-page.tsx
|
|
9574
|
-
import { Fragment as
|
|
9580
|
+
import { Fragment as Fragment15, jsx as jsx60, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
9575
9581
|
function ChatArchivePage(props) {
|
|
9576
9582
|
const {
|
|
9577
9583
|
dialogs,
|
|
@@ -9581,7 +9587,7 @@ function ChatArchivePage(props) {
|
|
|
9581
9587
|
hasMore = false,
|
|
9582
9588
|
onLoadMore
|
|
9583
9589
|
} = props;
|
|
9584
|
-
return /* @__PURE__ */ jsxs49(
|
|
9590
|
+
return /* @__PURE__ */ jsxs49(Fragment15, { children: [
|
|
9585
9591
|
!props.embedded && /* @__PURE__ */ jsx60(
|
|
9586
9592
|
ChatPanelHeaderMobile,
|
|
9587
9593
|
{
|
|
@@ -9701,7 +9707,7 @@ var ChatSidebarSkeleton = React30.forwardRef(
|
|
|
9701
9707
|
ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
|
|
9702
9708
|
|
|
9703
9709
|
// src/components/chat/chat-sidebar.tsx
|
|
9704
|
-
import { Fragment as
|
|
9710
|
+
import { Fragment as Fragment16, jsx as jsx62, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
9705
9711
|
var DialogListItem = forwardRef20(
|
|
9706
9712
|
({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
|
|
9707
9713
|
const handleClick = (e) => {
|
|
@@ -9830,7 +9836,7 @@ var ChatSidebar = forwardRef20(
|
|
|
9830
9836
|
},
|
|
9831
9837
|
dialog.id
|
|
9832
9838
|
)),
|
|
9833
|
-
hasNextPage && /* @__PURE__ */ jsx62("div", { ref: loadMoreRef, children: isFetchingNextPage && /* @__PURE__ */ jsxs51(
|
|
9839
|
+
hasNextPage && /* @__PURE__ */ jsx62("div", { ref: loadMoreRef, children: isFetchingNextPage && /* @__PURE__ */ jsxs51(Fragment16, { children: [
|
|
9834
9840
|
/* @__PURE__ */ jsx62(DialogListItemSkeleton, {}),
|
|
9835
9841
|
/* @__PURE__ */ jsx62(DialogListItemSkeleton, {}),
|
|
9836
9842
|
/* @__PURE__ */ jsx62(DialogListItemSkeleton, {})
|
|
@@ -10711,7 +10717,7 @@ function PlatformBadge({
|
|
|
10711
10717
|
}
|
|
10712
10718
|
|
|
10713
10719
|
// src/components/chat/entity-cards/admin-content-card.tsx
|
|
10714
|
-
import { Fragment as
|
|
10720
|
+
import { Fragment as Fragment17, jsx as jsx73, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
10715
10721
|
function AdminContentCard({
|
|
10716
10722
|
imageUrl,
|
|
10717
10723
|
placeholderUrl,
|
|
@@ -10745,7 +10751,7 @@ function AdminContentCard({
|
|
|
10745
10751
|
{
|
|
10746
10752
|
className: "relative aspect-[3/2] w-full overflow-hidden shrink-0",
|
|
10747
10753
|
style: { backgroundColor: imageBgColor },
|
|
10748
|
-
children: displayUrl ? /* @__PURE__ */ jsxs57(
|
|
10754
|
+
children: displayUrl ? /* @__PURE__ */ jsxs57(Fragment17, { children: [
|
|
10749
10755
|
!imageLoaded && /* @__PURE__ */ jsx73("div", { className: "absolute inset-0 animate-pulse bg-ods-border/20" }),
|
|
10750
10756
|
/* @__PURE__ */ jsx73(
|
|
10751
10757
|
next_image_default,
|
|
@@ -10805,7 +10811,7 @@ function getProxiedImageUrl2(imageUrl) {
|
|
|
10805
10811
|
}
|
|
10806
10812
|
|
|
10807
10813
|
// src/components/chat/entity-cards/what-i-shipped-card.tsx
|
|
10808
|
-
import { Fragment as
|
|
10814
|
+
import { Fragment as Fragment18, jsx as jsx74, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
10809
10815
|
var STATUS_BADGE_CLASS = {
|
|
10810
10816
|
published: "bg-ods-success-secondary text-ods-success",
|
|
10811
10817
|
draft: "bg-ods-warning-secondary text-ods-warning",
|
|
@@ -10827,7 +10833,7 @@ function WhatIShippedCard({ entry, placeholderUrl, actions, anchorProps, classNa
|
|
|
10827
10833
|
children: entry.status
|
|
10828
10834
|
}
|
|
10829
10835
|
) : null,
|
|
10830
|
-
meta: /* @__PURE__ */ jsxs58(
|
|
10836
|
+
meta: /* @__PURE__ */ jsxs58(Fragment18, { children: [
|
|
10831
10837
|
/* @__PURE__ */ jsxs58("span", { className: "flex items-center gap-2 min-w-0", children: [
|
|
10832
10838
|
entry.author?.avatar_url ? /* @__PURE__ */ jsx74("img", { src: getProxiedImageUrl2(entry.author.avatar_url) ?? entry.author.avatar_url, alt: "", className: "h-5 w-5 rounded-full object-cover shrink-0" }) : null,
|
|
10833
10839
|
/* @__PURE__ */ jsx74("span", { className: "truncate", children: entry.author?.full_name ?? "" })
|
|
@@ -11546,7 +11552,7 @@ init_cn();
|
|
|
11546
11552
|
import { useMemo as useMemo17, useRef as useRef19, useState as useState28, useEffect as useEffect23 } from "react";
|
|
11547
11553
|
|
|
11548
11554
|
// src/components/features/video-ratio-tabs.tsx
|
|
11549
|
-
import { Fragment as
|
|
11555
|
+
import { Fragment as Fragment19, jsx as jsx78, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
11550
11556
|
var TAB_TRIGGER_CLASS = "rounded-none border-b-2 border-transparent data-[state=active]:border-ods-accent data-[state=active]:bg-transparent data-[state=active]:shadow-none px-4 py-2 text-h6 text-ods-text-secondary data-[state=active]:text-ods-text-primary";
|
|
11551
11557
|
var RATIO_GRID_CLASS = {
|
|
11552
11558
|
portrait: "grid grid-cols-2 md:grid-cols-3 gap-4",
|
|
@@ -11571,7 +11577,7 @@ function RatioTabs({
|
|
|
11571
11577
|
const activeTabs = RATIO_TAB_CONFIG.filter((t) => groups[t.key].count > 0);
|
|
11572
11578
|
if (activeTabs.length <= 1) {
|
|
11573
11579
|
const active = activeTabs[0];
|
|
11574
|
-
return active ? /* @__PURE__ */ jsx78(
|
|
11580
|
+
return active ? /* @__PURE__ */ jsx78(Fragment19, { children: groups[active.key].render() }) : null;
|
|
11575
11581
|
}
|
|
11576
11582
|
const firstTab = defaultTab && groups[defaultTab].count > 0 ? defaultTab : activeTabs[0].key;
|
|
11577
11583
|
return /* @__PURE__ */ jsxs60(Tabs, { defaultValue: firstTab, className: `w-full ${className}`, children: [
|
|
@@ -11645,7 +11651,7 @@ import React37, { useCallback as useCallback14, useEffect as useEffect22, useMem
|
|
|
11645
11651
|
init_button2();
|
|
11646
11652
|
|
|
11647
11653
|
// src/components/layout/page-heading.tsx
|
|
11648
|
-
import { Fragment as
|
|
11654
|
+
import { Fragment as Fragment20, jsx as jsx79, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
11649
11655
|
var PAGE_HEADING_CLASS = "text-h1 text-ods-text-primary";
|
|
11650
11656
|
var SECTION_HEADING_CLASS = "text-h2 text-ods-text-primary";
|
|
11651
11657
|
var DESCRIPTION_CLASS = "mt-6 max-w-[640px] font-body text-[16px] md:text-[18px] leading-[24px] md:leading-[28px] text-ods-text-secondary";
|
|
@@ -11659,14 +11665,14 @@ function PageHeading({
|
|
|
11659
11665
|
const headingClass = className ? `${PAGE_HEADING_CLASS} ${className}` : PAGE_HEADING_CLASS;
|
|
11660
11666
|
const descClass = descriptionClassName ? `${DESCRIPTION_CLASS} ${descriptionClassName}` : DESCRIPTION_CLASS;
|
|
11661
11667
|
const hasDescription = description != null && description !== "" && typeof description !== "boolean";
|
|
11662
|
-
return /* @__PURE__ */ jsxs61(
|
|
11668
|
+
return /* @__PURE__ */ jsxs61(Fragment20, { children: [
|
|
11663
11669
|
/* @__PURE__ */ jsx79(Tag2, { className: headingClass, children }),
|
|
11664
11670
|
hasDescription && /* @__PURE__ */ jsx79("p", { className: descClass, children: description })
|
|
11665
11671
|
] });
|
|
11666
11672
|
}
|
|
11667
11673
|
|
|
11668
11674
|
// src/components/features/cards-strip.tsx
|
|
11669
|
-
import { Fragment as
|
|
11675
|
+
import { Fragment as Fragment21, jsx as jsx80, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
11670
11676
|
var TRACK_GAP_PX = 16;
|
|
11671
11677
|
var CHEVRON_SUPPRESS_MS = 4e3;
|
|
11672
11678
|
var USER_SCROLL_SUPPRESS_MS = 3e3;
|
|
@@ -12034,7 +12040,7 @@ function CardsStrip(props) {
|
|
|
12034
12040
|
) })
|
|
12035
12041
|
}
|
|
12036
12042
|
),
|
|
12037
|
-
showChevrons && overflows && /* @__PURE__ */ jsxs62(
|
|
12043
|
+
showChevrons && overflows && /* @__PURE__ */ jsxs62(Fragment21, { children: [
|
|
12038
12044
|
/* @__PURE__ */ jsx80(
|
|
12039
12045
|
Button,
|
|
12040
12046
|
{
|
|
@@ -12094,7 +12100,7 @@ function UserDisplay({ name, avatarUrl, subtitle, size: size2 = 32, shape = "squ
|
|
|
12094
12100
|
}
|
|
12095
12101
|
|
|
12096
12102
|
// src/components/features/video-bites-strip.tsx
|
|
12097
|
-
import { Fragment as
|
|
12103
|
+
import { Fragment as Fragment22, jsx as jsx82, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
12098
12104
|
function VideoBitesStrip({
|
|
12099
12105
|
bites,
|
|
12100
12106
|
title = DEFAULT_VIDEO_BITES_TITLE,
|
|
@@ -12217,7 +12223,7 @@ function VideoBiteCard({
|
|
|
12217
12223
|
if (isTouch && !isActive) activate();
|
|
12218
12224
|
};
|
|
12219
12225
|
const titleClass = "text-h6 text-ods-text-primary";
|
|
12220
|
-
const overlayContent = /* @__PURE__ */ jsxs64(
|
|
12226
|
+
const overlayContent = /* @__PURE__ */ jsxs64(Fragment22, { children: [
|
|
12221
12227
|
titleEditable ? (
|
|
12222
12228
|
// Textarea, not input: the public title wraps to two lines
|
|
12223
12229
|
// (line-clamp-2) and the editor must render identically. rows=1 +
|
|
@@ -12363,7 +12369,7 @@ function VideoBiteCard({
|
|
|
12363
12369
|
}
|
|
12364
12370
|
|
|
12365
12371
|
// src/components/features/entity-video-section.tsx
|
|
12366
|
-
import { Fragment as
|
|
12372
|
+
import { Fragment as Fragment23, jsx as jsx83, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
12367
12373
|
function EntityVideoSection({
|
|
12368
12374
|
mainVideoUrl,
|
|
12369
12375
|
youtubeUrl,
|
|
@@ -12393,7 +12399,7 @@ function EntityVideoSection({
|
|
|
12393
12399
|
}
|
|
12394
12400
|
const fullVideoUrl = youtubeUrl || mainVideoUrl || null;
|
|
12395
12401
|
const fullVideoKind = youtubeUrl ? "youtube" : "auto";
|
|
12396
|
-
return /* @__PURE__ */ jsxs65(
|
|
12402
|
+
return /* @__PURE__ */ jsxs65(Fragment23, { children: [
|
|
12397
12403
|
hasVideo && (hasFullVideo && hasHighlight ? /* @__PURE__ */ jsxs65(Tabs, { defaultValue: "full-video", className: "w-full", children: [
|
|
12398
12404
|
/* @__PURE__ */ jsxs65(TabsList, { className: "inline-flex justify-start rounded-none bg-transparent h-auto p-0 gap-0", children: [
|
|
12399
12405
|
/* @__PURE__ */ jsx83(
|
|
@@ -12591,7 +12597,7 @@ import {
|
|
|
12591
12597
|
TrendingUp as TrendingUp2,
|
|
12592
12598
|
Wrench
|
|
12593
12599
|
} from "lucide-react";
|
|
12594
|
-
import { Fragment as
|
|
12600
|
+
import { Fragment as Fragment24, jsx as jsx86, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
12595
12601
|
function ProductReleaseCard({
|
|
12596
12602
|
title,
|
|
12597
12603
|
summary,
|
|
@@ -12642,7 +12648,7 @@ function ProductReleaseCard({
|
|
|
12642
12648
|
"no-underline",
|
|
12643
12649
|
className
|
|
12644
12650
|
);
|
|
12645
|
-
const innerLayout = /* @__PURE__ */ jsxs66(
|
|
12651
|
+
const innerLayout = /* @__PURE__ */ jsxs66(Fragment24, { children: [
|
|
12646
12652
|
/* @__PURE__ */ jsxs66("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
12647
12653
|
/* @__PURE__ */ jsx86("div", { className: "w-full md:w-[256px] flex-shrink-0", children: /* @__PURE__ */ jsxs66("div", { className: "relative rounded-lg overflow-hidden w-full aspect-[1200/630] bg-ods-bg", children: [
|
|
12648
12654
|
coverImage ? /* @__PURE__ */ jsx86(
|
|
@@ -12667,7 +12673,7 @@ function ProductReleaseCard({
|
|
|
12667
12673
|
/* @__PURE__ */ jsx86("div", { className: "min-h-[68px] md:min-h-[78px]", children: /* @__PURE__ */ jsx86("p", { className: "font-['DM_Sans'] text-sm md:text-base text-ods-text-secondary leading-relaxed line-clamp-3", children: summary ?? "" }) })
|
|
12668
12674
|
] })
|
|
12669
12675
|
] }),
|
|
12670
|
-
/* @__PURE__ */ jsx86("div", { className: "border-t border-ods-border pt-3 flex flex-wrap items-center gap-x-4 gap-y-1.5 text-h6 text-ods-text-secondary", children: totalChangelog > 0 && changelogCounts ? /* @__PURE__ */ jsxs66(
|
|
12676
|
+
/* @__PURE__ */ jsx86("div", { className: "border-t border-ods-border pt-3 flex flex-wrap items-center gap-x-4 gap-y-1.5 text-h6 text-ods-text-secondary", children: totalChangelog > 0 && changelogCounts ? /* @__PURE__ */ jsxs66(Fragment24, { children: [
|
|
12671
12677
|
changelogCounts.features > 0 && /* @__PURE__ */ jsxs66("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
12672
12678
|
/* @__PURE__ */ jsx86(Sparkles, { className: "w-3.5 h-3.5" }),
|
|
12673
12679
|
changelogCounts.features,
|
|
@@ -12800,7 +12806,7 @@ function ProductReleaseCard({
|
|
|
12800
12806
|
isInteractive ? "transition-colors hover:border-ods-text-secondary/40 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-1 focus-visible:ring-offset-ods-card" : "cursor-default",
|
|
12801
12807
|
className
|
|
12802
12808
|
);
|
|
12803
|
-
const innerChildren = /* @__PURE__ */ jsxs66(
|
|
12809
|
+
const innerChildren = /* @__PURE__ */ jsxs66(Fragment24, { children: [
|
|
12804
12810
|
/* @__PURE__ */ jsxs66("span", { className: "relative flex h-14 w-14 aspect-square shrink-0 self-start items-center justify-center overflow-hidden rounded-md bg-ods-bg text-ods-accent", children: [
|
|
12805
12811
|
coverImage ? /* @__PURE__ */ jsx86(
|
|
12806
12812
|
next_image_default,
|
|
@@ -13120,7 +13126,7 @@ function safeHref(url) {
|
|
|
13120
13126
|
}
|
|
13121
13127
|
|
|
13122
13128
|
// src/components/chat/entity-cards/blog-card.tsx
|
|
13123
|
-
import { Fragment as
|
|
13129
|
+
import { Fragment as Fragment25, jsx as jsx88, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
13124
13130
|
function BlogCardSkeleton({ size: size2 = "default" }) {
|
|
13125
13131
|
if (size2 === "sm") {
|
|
13126
13132
|
return /* @__PURE__ */ jsxs68("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
@@ -13311,7 +13317,7 @@ function BlogCard({
|
|
|
13311
13317
|
) : null,
|
|
13312
13318
|
/* @__PURE__ */ jsxs68("span", { className: "truncate", children: [
|
|
13313
13319
|
post.author_name || "Anonymous",
|
|
13314
|
-
dateStr ? /* @__PURE__ */ jsxs68(
|
|
13320
|
+
dateStr ? /* @__PURE__ */ jsxs68(Fragment25, { children: [
|
|
13315
13321
|
" \xB7 ",
|
|
13316
13322
|
dateStr
|
|
13317
13323
|
] }) : null
|
|
@@ -13485,7 +13491,7 @@ function CaseStudyCard({
|
|
|
13485
13491
|
// src/components/chat/entity-cards/customer-interview-card.tsx
|
|
13486
13492
|
init_cn();
|
|
13487
13493
|
import { Video as Video3 } from "lucide-react";
|
|
13488
|
-
import { Fragment as
|
|
13494
|
+
import { Fragment as Fragment26, jsx as jsx90, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
13489
13495
|
function CustomerInterviewCardSkeleton({ size: size2 = "default" }) {
|
|
13490
13496
|
if (size2 === "sm") {
|
|
13491
13497
|
return /* @__PURE__ */ jsxs70("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
@@ -13584,7 +13590,7 @@ function CustomerInterviewCard({
|
|
|
13584
13590
|
);
|
|
13585
13591
|
}
|
|
13586
13592
|
return /* @__PURE__ */ jsx90("a", { href, target, rel, className: cn("block h-full", className), children: /* @__PURE__ */ jsxs70(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: [
|
|
13587
|
-
/* @__PURE__ */ jsx90("div", { className: "w-full aspect-[1200/630] rounded-sm overflow-hidden bg-ods-bg shrink-0 relative", children: thumbnailUrl ? /* @__PURE__ */ jsxs70(
|
|
13593
|
+
/* @__PURE__ */ jsx90("div", { className: "w-full aspect-[1200/630] rounded-sm overflow-hidden bg-ods-bg shrink-0 relative", children: thumbnailUrl ? /* @__PURE__ */ jsxs70(Fragment26, { children: [
|
|
13588
13594
|
/* @__PURE__ */ jsx90(
|
|
13589
13595
|
"img",
|
|
13590
13596
|
{
|
|
@@ -14336,7 +14342,7 @@ var HiddenTagsPopup = forwardRef25(function HiddenTagsPopup2({ items, onRemove,
|
|
|
14336
14342
|
});
|
|
14337
14343
|
|
|
14338
14344
|
// src/components/ui/autocomplete.tsx
|
|
14339
|
-
import { Fragment as
|
|
14345
|
+
import { Fragment as Fragment27, jsx as jsx98, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
14340
14346
|
var innerInputStyles = cn(
|
|
14341
14347
|
"flex-1 min-w-[60px] bg-transparent border-none outline-none",
|
|
14342
14348
|
"text-h4",
|
|
@@ -14796,7 +14802,7 @@ function AutocompleteInner(props, ref) {
|
|
|
14796
14802
|
}
|
|
14797
14803
|
}
|
|
14798
14804
|
),
|
|
14799
|
-
multiple && /* @__PURE__ */ jsxs76(
|
|
14805
|
+
multiple && /* @__PURE__ */ jsxs76(Fragment27, { children: [
|
|
14800
14806
|
/* @__PURE__ */ jsx98(
|
|
14801
14807
|
"span",
|
|
14802
14808
|
{
|
|
@@ -16020,7 +16026,7 @@ function DateFilterMenu({
|
|
|
16020
16026
|
|
|
16021
16027
|
// src/components/ui/duration-input.tsx
|
|
16022
16028
|
init_cn();
|
|
16023
|
-
import { Fragment as
|
|
16029
|
+
import { Fragment as Fragment28, useEffect as useEffect26, useRef as useRef22, useState as useState32 } from "react";
|
|
16024
16030
|
import { jsx as jsx103, jsxs as jsxs81 } from "react/jsx-runtime";
|
|
16025
16031
|
var SEGMENT_META = [
|
|
16026
16032
|
{ label: "Hours", placeholder: "HH", max: 99 },
|
|
@@ -16105,7 +16111,7 @@ function DurationInput({ value, onChange, invalid, className }) {
|
|
|
16105
16111
|
invalid && "border-ods-error focus-within:border-ods-error",
|
|
16106
16112
|
className
|
|
16107
16113
|
),
|
|
16108
|
-
children: SEGMENT_META.map((meta, i) => /* @__PURE__ */ jsxs81(
|
|
16114
|
+
children: SEGMENT_META.map((meta, i) => /* @__PURE__ */ jsxs81(Fragment28, { children: [
|
|
16109
16115
|
i > 0 && /* @__PURE__ */ jsx103("span", { className: "text-ods-text-secondary", children: ":" }),
|
|
16110
16116
|
/* @__PURE__ */ jsx103(
|
|
16111
16117
|
"input",
|
|
@@ -16584,12 +16590,12 @@ function DefaultAssigneeDropdown({
|
|
|
16584
16590
|
}
|
|
16585
16591
|
|
|
16586
16592
|
// src/components/ui/info-section.tsx
|
|
16587
|
-
import { Fragment as
|
|
16593
|
+
import { Fragment as Fragment29, jsx as jsx109, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
16588
16594
|
function TextValue({ value }) {
|
|
16589
16595
|
const { text, imageSrc, imageFallback, imageVariant = "round", icon, onClick, href, openInNewTab } = value;
|
|
16590
16596
|
const hasImage = imageSrc !== void 0 || imageFallback !== void 0;
|
|
16591
16597
|
const interactiveClass = "truncate text-left text-h4 text-ods-text-primary transition-colors hover:text-ods-accent";
|
|
16592
|
-
return /* @__PURE__ */ jsxs85(
|
|
16598
|
+
return /* @__PURE__ */ jsxs85(Fragment29, { children: [
|
|
16593
16599
|
icon && /* @__PURE__ */ jsx109("span", { className: "flex size-4 shrink-0 items-center justify-center text-ods-text-secondary", children: icon }),
|
|
16594
16600
|
href ? /* @__PURE__ */ jsx109(
|
|
16595
16601
|
next_link_default,
|
|
@@ -16626,7 +16632,7 @@ function RowValue({ value }) {
|
|
|
16626
16632
|
return /* @__PURE__ */ jsx109(TicketStatusTag, { ...props });
|
|
16627
16633
|
}
|
|
16628
16634
|
case "custom":
|
|
16629
|
-
return /* @__PURE__ */ jsx109(
|
|
16635
|
+
return /* @__PURE__ */ jsx109(Fragment29, { children: value.content });
|
|
16630
16636
|
default:
|
|
16631
16637
|
return /* @__PURE__ */ jsx109(TextValue, { value });
|
|
16632
16638
|
}
|
|
@@ -19157,7 +19163,7 @@ function TabContent({
|
|
|
19157
19163
|
init_next_navigation();
|
|
19158
19164
|
init_cn();
|
|
19159
19165
|
import { useState as useState41, useEffect as useEffect34, useMemo as useMemo23, useRef as useRef26, useCallback as useCallback19 } from "react";
|
|
19160
|
-
import { Fragment as
|
|
19166
|
+
import { Fragment as Fragment30, jsx as jsx135, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
19161
19167
|
function TabNavigation({
|
|
19162
19168
|
activeTab: controlledActiveTab,
|
|
19163
19169
|
onTabChange: controlledOnTabChange,
|
|
@@ -19273,7 +19279,7 @@ function TabNavigation({
|
|
|
19273
19279
|
}
|
|
19274
19280
|
return { background: c };
|
|
19275
19281
|
})();
|
|
19276
|
-
return /* @__PURE__ */ jsxs107(
|
|
19282
|
+
return /* @__PURE__ */ jsxs107(Fragment30, { children: [
|
|
19277
19283
|
/* @__PURE__ */ jsxs107("div", { className: cn("relative w-full", className), children: [
|
|
19278
19284
|
/* @__PURE__ */ jsx135("div", { ref: scrollRef, className: "flex gap-[var(--spacing-system-xxs)] items-center justify-start h-full overflow-x-auto overflow-y-hidden scrollbar-hide", children: tabs.map((tab) => {
|
|
19279
19285
|
const isActive = activeTab === tab.id;
|
|
@@ -19401,7 +19407,7 @@ function AIGeneratedBadge({ className }) {
|
|
|
19401
19407
|
// src/components/ui/fade-preview.tsx
|
|
19402
19408
|
import { useState as useState42, useRef as useRef27, useEffect as useEffect35 } from "react";
|
|
19403
19409
|
import { ChevronDown as ChevronDown4 } from "lucide-react";
|
|
19404
|
-
import { Fragment as
|
|
19410
|
+
import { Fragment as Fragment31, jsx as jsx138, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
19405
19411
|
function FadePreview({
|
|
19406
19412
|
hiddenCount,
|
|
19407
19413
|
collapsedHeight = 120,
|
|
@@ -19414,7 +19420,7 @@ function FadePreview({
|
|
|
19414
19420
|
setExpanded(false);
|
|
19415
19421
|
}, [resetKey]);
|
|
19416
19422
|
const needsFade = hiddenCount > 0;
|
|
19417
|
-
if (!needsFade) return /* @__PURE__ */ jsx138(
|
|
19423
|
+
if (!needsFade) return /* @__PURE__ */ jsx138(Fragment31, { children });
|
|
19418
19424
|
return /* @__PURE__ */ jsxs109("div", { className: "relative", children: [
|
|
19419
19425
|
/* @__PURE__ */ jsx138(
|
|
19420
19426
|
"div",
|
|
@@ -19771,7 +19777,7 @@ var socialCache = SocialEmbedCache.getInstance();
|
|
|
19771
19777
|
init_cn();
|
|
19772
19778
|
import { useState as useState43, useRef as useRef28, useEffect as useEffect36, memo as memo4, useCallback as useCallback20 } from "react";
|
|
19773
19779
|
init_button2();
|
|
19774
|
-
import { Fragment as
|
|
19780
|
+
import { Fragment as Fragment32, jsx as jsx140, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
19775
19781
|
var ChevronLeftIcon = () => /* @__PURE__ */ jsx140("svg", { width: "24", height: "24", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx140("polyline", { points: "15,18 9,12 15,6" }) });
|
|
19776
19782
|
var ChevronRightIcon = () => /* @__PURE__ */ jsx140("svg", { width: "24", height: "24", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx140("polyline", { points: "9,18 15,12 9,6" }) });
|
|
19777
19783
|
var MediaCarousel = memo4(function MediaCarousel2({
|
|
@@ -19955,7 +19961,7 @@ var MediaCarousel = memo4(function MediaCarousel2({
|
|
|
19955
19961
|
"aria-label": media.length > 1 ? "Media carousel, use arrow keys to navigate" : void 0,
|
|
19956
19962
|
children: [
|
|
19957
19963
|
renderMainMedia(currentItem, currentIndex),
|
|
19958
|
-
showArrows && media.length > 1 && /* @__PURE__ */ jsxs110(
|
|
19964
|
+
showArrows && media.length > 1 && /* @__PURE__ */ jsxs110(Fragment32, { children: [
|
|
19959
19965
|
/* @__PURE__ */ jsx140(
|
|
19960
19966
|
Button,
|
|
19961
19967
|
{
|
|
@@ -21077,7 +21083,7 @@ function toFigmaOriginalUrl(url) {
|
|
|
21077
21083
|
|
|
21078
21084
|
// src/components/embeds/embed-iframe.tsx
|
|
21079
21085
|
import { useState as useState48, useCallback as useCallback21, useRef as useRef31, useEffect as useEffect40 } from "react";
|
|
21080
|
-
import { Fragment as
|
|
21086
|
+
import { Fragment as Fragment33, jsx as jsx147, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
21081
21087
|
function EmbedLoadingSkeleton({ height }) {
|
|
21082
21088
|
return /* @__PURE__ */ jsx147(
|
|
21083
21089
|
"div",
|
|
@@ -21115,7 +21121,7 @@ function EmbedIframe({
|
|
|
21115
21121
|
};
|
|
21116
21122
|
}, [src]);
|
|
21117
21123
|
const resolvedHeight = height || "calc(100vh - 250px)";
|
|
21118
|
-
return /* @__PURE__ */ jsxs115(
|
|
21124
|
+
return /* @__PURE__ */ jsxs115(Fragment33, { children: [
|
|
21119
21125
|
!isLoaded && /* @__PURE__ */ jsx147(EmbedLoadingSkeleton, { height: resolvedHeight }),
|
|
21120
21126
|
/* @__PURE__ */ jsx147(
|
|
21121
21127
|
"div",
|
|
@@ -22200,7 +22206,7 @@ function ChangelogEntryList({
|
|
|
22200
22206
|
|
|
22201
22207
|
// src/components/ui/stacked-rows-panel.tsx
|
|
22202
22208
|
init_cn();
|
|
22203
|
-
import { Fragment as
|
|
22209
|
+
import { Fragment as Fragment34, jsx as jsx152, jsxs as jsxs119 } from "react/jsx-runtime";
|
|
22204
22210
|
var ALIGN_CLASS = {
|
|
22205
22211
|
left: "justify-start items-start",
|
|
22206
22212
|
center: "justify-center items-center",
|
|
@@ -22226,7 +22232,7 @@ function CellValue({ column }) {
|
|
|
22226
22232
|
children: column.value
|
|
22227
22233
|
}
|
|
22228
22234
|
);
|
|
22229
|
-
return /* @__PURE__ */ jsxs119(
|
|
22235
|
+
return /* @__PURE__ */ jsxs119(Fragment34, { children: [
|
|
22230
22236
|
/* @__PURE__ */ jsxs119("div", { className: "flex items-center gap-[var(--spacing-system-xxs)] min-w-0", children: [
|
|
22231
22237
|
column.icon && /* @__PURE__ */ jsx152("span", { className: "shrink-0", children: column.icon }),
|
|
22232
22238
|
column.href ? /* @__PURE__ */ jsx152(
|
|
@@ -22332,7 +22338,7 @@ function StatusIndicator({ status, label, href }) {
|
|
|
22332
22338
|
|
|
22333
22339
|
// src/components/ui/hover-dropdown.tsx
|
|
22334
22340
|
import { useState as useState53, useRef as useRef33, useCallback as useCallback23 } from "react";
|
|
22335
|
-
import { Fragment as
|
|
22341
|
+
import { Fragment as Fragment35, jsx as jsx155, jsxs as jsxs122 } from "react/jsx-runtime";
|
|
22336
22342
|
function DefaultAnchor({
|
|
22337
22343
|
href,
|
|
22338
22344
|
className,
|
|
@@ -22358,7 +22364,7 @@ function HoverDropdown({
|
|
|
22358
22364
|
const hide = useCallback23(() => {
|
|
22359
22365
|
timeoutRef.current = setTimeout(() => setOpen(false), hideDelay);
|
|
22360
22366
|
}, [hideDelay]);
|
|
22361
|
-
if (items.length === 0) return /* @__PURE__ */ jsx155(
|
|
22367
|
+
if (items.length === 0) return /* @__PURE__ */ jsx155(Fragment35, { children });
|
|
22362
22368
|
const toggle = useCallback23((e) => {
|
|
22363
22369
|
e.stopPropagation();
|
|
22364
22370
|
clearTimeout(timeoutRef.current);
|
|
@@ -22405,7 +22411,7 @@ function HoverDropdown({
|
|
|
22405
22411
|
}
|
|
22406
22412
|
},
|
|
22407
22413
|
children: items.map((item, i) => {
|
|
22408
|
-
const content = /* @__PURE__ */ jsxs122(
|
|
22414
|
+
const content = /* @__PURE__ */ jsxs122(Fragment35, { children: [
|
|
22409
22415
|
item.icon && /* @__PURE__ */ jsx155("span", { className: "flex-shrink-0 [&_svg]:size-3.5", children: item.icon }),
|
|
22410
22416
|
/* @__PURE__ */ jsx155("span", { className: "truncate flex-1 min-w-0", children: item.label })
|
|
22411
22417
|
] });
|
|
@@ -22636,7 +22642,7 @@ function TagKeyValueFilter({
|
|
|
22636
22642
|
}
|
|
22637
22643
|
|
|
22638
22644
|
// src/components/ui/filter-modal.tsx
|
|
22639
|
-
import { Fragment as
|
|
22645
|
+
import { Fragment as Fragment36, jsx as jsx159, jsxs as jsxs126 } from "react/jsx-runtime";
|
|
22640
22646
|
function FilterModal({
|
|
22641
22647
|
isOpen,
|
|
22642
22648
|
onClose,
|
|
@@ -22728,7 +22734,7 @@ function FilterModal({
|
|
|
22728
22734
|
ref: scrollRef,
|
|
22729
22735
|
onScroll: updateFade,
|
|
22730
22736
|
className: "flex-1 min-h-0 overflow-y-auto flex flex-col gap-4 md:py-3",
|
|
22731
|
-
children: isLoading ? /* @__PURE__ */ jsx159(
|
|
22737
|
+
children: isLoading ? /* @__PURE__ */ jsx159(Fragment36, { children: [0, 1].map((group) => /* @__PURE__ */ jsxs126("div", { className: "flex flex-col gap-1", children: [
|
|
22732
22738
|
/* @__PURE__ */ jsx159(Skeleton, { className: "h-5 w-24" }),
|
|
22733
22739
|
/* @__PURE__ */ jsx159("div", { className: "rounded-md border border-ods-border overflow-hidden", children: [0, 1, 2].map((row) => /* @__PURE__ */ jsxs126(
|
|
22734
22740
|
"div",
|
|
@@ -22748,7 +22754,7 @@ function FilterModal({
|
|
|
22748
22754
|
/* @__PURE__ */ jsx159("p", { className: "text-h4", children: emptyStateTitle }),
|
|
22749
22755
|
/* @__PURE__ */ jsx159("p", { className: "text-h6", children: emptyStateDescription })
|
|
22750
22756
|
] })
|
|
22751
|
-
] }) : /* @__PURE__ */ jsxs126(
|
|
22757
|
+
] }) : /* @__PURE__ */ jsxs126(Fragment36, { children: [
|
|
22752
22758
|
sortConfig && sortConfig.columns.length > 0 && /* @__PURE__ */ jsxs126("div", { className: "flex flex-col gap-1", children: [
|
|
22753
22759
|
/* @__PURE__ */ jsx159("span", { className: "text-h5 text-ods-text-secondary", children: sortConfig.title || "Sort By" }),
|
|
22754
22760
|
/* @__PURE__ */ jsx159("div", { className: "rounded-md border border-ods-border overflow-hidden", children: sortConfig.columns.map((column) => /* @__PURE__ */ jsx159(
|
|
@@ -22827,7 +22833,7 @@ init_cn();
|
|
|
22827
22833
|
init_cn();
|
|
22828
22834
|
import React79 from "react";
|
|
22829
22835
|
init_button2();
|
|
22830
|
-
import { Fragment as
|
|
22836
|
+
import { Fragment as Fragment37, jsx as jsx160, jsxs as jsxs127 } from "react/jsx-runtime";
|
|
22831
22837
|
function actionKey(action, idx) {
|
|
22832
22838
|
return `${action.label ?? action.ariaLabel ?? "action"}-${idx}`;
|
|
22833
22839
|
}
|
|
@@ -22971,7 +22977,7 @@ function IconButtonsVariant({
|
|
|
22971
22977
|
...menuActions ?? []
|
|
22972
22978
|
];
|
|
22973
22979
|
const hasMobileMenuItems = mobileMenuGroups.some((g) => g.items.length > 0);
|
|
22974
|
-
return /* @__PURE__ */ jsxs127(
|
|
22980
|
+
return /* @__PURE__ */ jsxs127(Fragment37, { children: [
|
|
22975
22981
|
/* @__PURE__ */ jsxs127("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: [
|
|
22976
22982
|
selector,
|
|
22977
22983
|
desktopActions.map((action, idx) => /* @__PURE__ */ jsx160(React79.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
|
|
@@ -22990,7 +22996,7 @@ function PrimaryButtonsVariant({
|
|
|
22990
22996
|
return 0;
|
|
22991
22997
|
});
|
|
22992
22998
|
const desktopActions = sortedActions.filter((a) => !a.showOnlyMobile);
|
|
22993
|
-
return /* @__PURE__ */ jsxs127(
|
|
22999
|
+
return /* @__PURE__ */ jsxs127(Fragment37, { children: [
|
|
22994
23000
|
/* @__PURE__ */ jsx160("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: desktopActions.map((action, idx) => /* @__PURE__ */ jsx160(React79.Fragment, { children: renderActionButton(action) }, `desktop-${actionKey(action, idx)}`)) }),
|
|
22995
23001
|
/* @__PURE__ */ jsx160(MobileBottomActions, { actions: sortedActions })
|
|
22996
23002
|
] });
|
|
@@ -23008,7 +23014,7 @@ function MenuPrimaryVariant({
|
|
|
23008
23014
|
...menuActions
|
|
23009
23015
|
];
|
|
23010
23016
|
const hasMobileMenuItems = mobileMenuGroups.some((g) => g.items.length > 0);
|
|
23011
|
-
return /* @__PURE__ */ jsxs127(
|
|
23017
|
+
return /* @__PURE__ */ jsxs127(Fragment37, { children: [
|
|
23012
23018
|
/* @__PURE__ */ jsxs127("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: [
|
|
23013
23019
|
selector,
|
|
23014
23020
|
hasMenuActions && /* @__PURE__ */ jsx160(ActionsMenuDropdown, { groups: menuActions }),
|
|
@@ -25574,7 +25580,7 @@ import {
|
|
|
25574
25580
|
safePolygon,
|
|
25575
25581
|
arrow
|
|
25576
25582
|
} from "@floating-ui/react";
|
|
25577
|
-
import { Fragment as
|
|
25583
|
+
import { Fragment as Fragment38, jsx as jsx177, jsxs as jsxs139 } from "react/jsx-runtime";
|
|
25578
25584
|
function parseColoredText(text) {
|
|
25579
25585
|
if (typeof text !== "string") return text;
|
|
25580
25586
|
const parts = [];
|
|
@@ -25599,7 +25605,7 @@ function parseColoredText(text) {
|
|
|
25599
25605
|
const remainingText = text.slice(lastIndex);
|
|
25600
25606
|
parts.push(/* @__PURE__ */ jsx177("span", { children: remainingText }, `text-${keyIndex++}`));
|
|
25601
25607
|
}
|
|
25602
|
-
return parts.length > 0 ? /* @__PURE__ */ jsx177(
|
|
25608
|
+
return parts.length > 0 ? /* @__PURE__ */ jsx177(Fragment38, { children: parts }) : text;
|
|
25603
25609
|
}
|
|
25604
25610
|
function FloatingTooltip({
|
|
25605
25611
|
content,
|
|
@@ -25663,7 +25669,7 @@ function FloatingTooltip({
|
|
|
25663
25669
|
bottom: "top",
|
|
25664
25670
|
left: "right"
|
|
25665
25671
|
}[placement.split("-")[0]];
|
|
25666
|
-
return /* @__PURE__ */ jsxs139(
|
|
25672
|
+
return /* @__PURE__ */ jsxs139(Fragment38, { children: [
|
|
25667
25673
|
/* @__PURE__ */ jsx177("div", { ref: refs.setReference, ...getReferenceProps(), children }),
|
|
25668
25674
|
/* @__PURE__ */ jsx177(FloatingPortal, { children: isOpen && /* @__PURE__ */ jsxs139(
|
|
25669
25675
|
"div",
|
|
@@ -25713,7 +25719,7 @@ function FloatingTooltip({
|
|
|
25713
25719
|
}
|
|
25714
25720
|
|
|
25715
25721
|
// src/components/ui/dashboard-info-card.tsx
|
|
25716
|
-
import { Fragment as
|
|
25722
|
+
import { Fragment as Fragment39, jsx as jsx178, jsxs as jsxs140 } from "react/jsx-runtime";
|
|
25717
25723
|
function DashboardInfoCard({
|
|
25718
25724
|
title,
|
|
25719
25725
|
titleSlot,
|
|
@@ -25766,7 +25772,7 @@ function DashboardInfoCard({
|
|
|
25766
25772
|
if (lg !== void 0) {
|
|
25767
25773
|
rings.push({ key: "lg", size: lg, className: "hidden lg:block" });
|
|
25768
25774
|
}
|
|
25769
|
-
return /* @__PURE__ */ jsx178(
|
|
25775
|
+
return /* @__PURE__ */ jsx178(Fragment39, { children: rings.map((ring) => /* @__PURE__ */ jsx178(
|
|
25770
25776
|
CircularProgress,
|
|
25771
25777
|
{
|
|
25772
25778
|
...common,
|
|
@@ -25777,7 +25783,7 @@ function DashboardInfoCard({
|
|
|
25777
25783
|
ring.key
|
|
25778
25784
|
)) });
|
|
25779
25785
|
};
|
|
25780
|
-
const cardContent = /* @__PURE__ */ jsxs140(
|
|
25786
|
+
const cardContent = /* @__PURE__ */ jsxs140(Fragment39, { children: [
|
|
25781
25787
|
icon && /* @__PURE__ */ jsx178("div", { className: "shrink-0 size-8 md:size-14 p-[var(--spacing-system-xxs)] bg-ods-bg border border-ods-border rounded-sm flex items-center justify-center text-ods-text-primary", children: /* @__PURE__ */ jsx178("span", { className: "size-4 md:size-6 flex items-center justify-center [&>*]:size-full", children: icon }) }),
|
|
25782
25788
|
/* @__PURE__ */ jsxs140("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
25783
25789
|
/* @__PURE__ */ jsxs140("div", { className: "flex items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
@@ -26029,7 +26035,7 @@ function DeviceCard({
|
|
|
26029
26035
|
|
|
26030
26036
|
// src/components/ui/device-card-compact.tsx
|
|
26031
26037
|
init_cn();
|
|
26032
|
-
import { Fragment as
|
|
26038
|
+
import { Fragment as Fragment40, jsx as jsx182, jsxs as jsxs144 } from "react/jsx-runtime";
|
|
26033
26039
|
function DeviceCardCompact({
|
|
26034
26040
|
deviceName,
|
|
26035
26041
|
organization,
|
|
@@ -26039,7 +26045,7 @@ function DeviceCardCompact({
|
|
|
26039
26045
|
const hasName = deviceName && deviceName !== "-" && deviceName !== "null";
|
|
26040
26046
|
const hasOrg = organization && organization !== "-" && organization !== "null";
|
|
26041
26047
|
if (!hasName && !hasOrg) {
|
|
26042
|
-
return /* @__PURE__ */ jsx182(
|
|
26048
|
+
return /* @__PURE__ */ jsx182(Fragment40, {});
|
|
26043
26049
|
}
|
|
26044
26050
|
return /* @__PURE__ */ jsxs144(
|
|
26045
26051
|
"div",
|
|
@@ -26453,7 +26459,7 @@ function DropdownButton({
|
|
|
26453
26459
|
init_next_link();
|
|
26454
26460
|
init_cn();
|
|
26455
26461
|
init_button2();
|
|
26456
|
-
import { Fragment as
|
|
26462
|
+
import { Fragment as Fragment41, jsx as jsx189, jsxs as jsxs149 } from "react/jsx-runtime";
|
|
26457
26463
|
function MoreActionsMenu({
|
|
26458
26464
|
items,
|
|
26459
26465
|
align = "end",
|
|
@@ -26491,7 +26497,7 @@ function MoreActionsMenu({
|
|
|
26491
26497
|
),
|
|
26492
26498
|
children: items.map((item, idx) => {
|
|
26493
26499
|
const itemClassName = "flex items-center gap-2 px-4 py-3 bg-ods-bg hover:bg-ods-bg-hover focus:bg-ods-bg-hover border-b border-ods-border last:border-b-0 rounded-none cursor-pointer data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed";
|
|
26494
|
-
const content = /* @__PURE__ */ jsxs149(
|
|
26500
|
+
const content = /* @__PURE__ */ jsxs149(Fragment41, { children: [
|
|
26495
26501
|
item.icon && /* @__PURE__ */ jsx189("div", { className: cn(item.danger ? "text-ods-error" : "text-ods-text-secondary", "[&_svg]:size-6 [&_svg]:shrink-0"), children: item.icon }),
|
|
26496
26502
|
/* @__PURE__ */ jsx189("span", { className: "text-h4 text-ods-text-primary", children: item.label })
|
|
26497
26503
|
] });
|
|
@@ -27074,7 +27080,7 @@ function SsoProviderButtons({
|
|
|
27074
27080
|
}
|
|
27075
27081
|
|
|
27076
27082
|
// src/components/features/auth/complete-account-form.tsx
|
|
27077
|
-
import { Fragment as
|
|
27083
|
+
import { Fragment as Fragment42, jsx as jsx200, jsxs as jsxs155 } from "react/jsx-runtime";
|
|
27078
27084
|
function CompleteAccountForm({
|
|
27079
27085
|
firstName,
|
|
27080
27086
|
lastName,
|
|
@@ -27123,7 +27129,7 @@ function CompleteAccountForm({
|
|
|
27123
27129
|
/* @__PURE__ */ jsx200("h1", { className: "text-h2 text-ods-text-primary tracking-[-0.64px]", children: title }),
|
|
27124
27130
|
/* @__PURE__ */ jsx200("p", { className: "text-h4 text-ods-text-secondary", children: subtitle })
|
|
27125
27131
|
] }),
|
|
27126
|
-
ssoProviders && ssoProviders.length > 0 && /* @__PURE__ */ jsxs155(
|
|
27132
|
+
ssoProviders && ssoProviders.length > 0 && /* @__PURE__ */ jsxs155(Fragment42, { children: [
|
|
27127
27133
|
/* @__PURE__ */ jsx200(
|
|
27128
27134
|
SsoProviderButtons,
|
|
27129
27135
|
{
|
|
@@ -27264,7 +27270,7 @@ function TermsAgreementLabel({ termsUrl = "#", privacyPolicyUrl = "#" }) {
|
|
|
27264
27270
|
}
|
|
27265
27271
|
|
|
27266
27272
|
// src/components/features/auth/create-organization-form.tsx
|
|
27267
|
-
import { Fragment as
|
|
27273
|
+
import { Fragment as Fragment43, jsx as jsx202, jsxs as jsxs157 } from "react/jsx-runtime";
|
|
27268
27274
|
function CreateOrganizationForm({
|
|
27269
27275
|
email,
|
|
27270
27276
|
organizationName,
|
|
@@ -27386,7 +27392,7 @@ function CreateOrganizationForm({
|
|
|
27386
27392
|
children: submitLabel
|
|
27387
27393
|
}
|
|
27388
27394
|
),
|
|
27389
|
-
hasSso && /* @__PURE__ */ jsxs157(
|
|
27395
|
+
hasSso && /* @__PURE__ */ jsxs157(Fragment43, { children: [
|
|
27390
27396
|
/* @__PURE__ */ jsxs157("div", { className: "flex items-center gap-[var(--spacing-system-s)]", children: [
|
|
27391
27397
|
/* @__PURE__ */ jsx202("div", { className: "h-px flex-1 bg-ods-border" }),
|
|
27392
27398
|
/* @__PURE__ */ jsx202("span", { className: "text-h6 text-ods-text-secondary", children: dividerLabel }),
|
|
@@ -30506,7 +30512,7 @@ SelectButton.displayName = "SelectButton";
|
|
|
30506
30512
|
// src/components/features/seo-editor-preview.tsx
|
|
30507
30513
|
import { useState as useState70 } from "react";
|
|
30508
30514
|
import { Globe as Globe3, ExternalLink as ExternalLink6, Upload as Upload3, X as X6, Loader2 as Loader25 } from "lucide-react";
|
|
30509
|
-
import { Fragment as
|
|
30515
|
+
import { Fragment as Fragment44, jsx as jsx231, jsxs as jsxs181 } from "react/jsx-runtime";
|
|
30510
30516
|
function SEOEditorPreview({
|
|
30511
30517
|
seoTitle,
|
|
30512
30518
|
seoDescription,
|
|
@@ -30559,7 +30565,7 @@ function SEOEditorPreview({
|
|
|
30559
30565
|
/* @__PURE__ */ jsxs181("div", { className: "space-y-2", children: [
|
|
30560
30566
|
/* @__PURE__ */ jsxs181("div", { className: "flex items-center gap-2", children: [
|
|
30561
30567
|
/* @__PURE__ */ jsx231(Label, { className: "text-h6 text-ods-text-primary", children: "SEO Title" }),
|
|
30562
|
-
aiConfidenceSeoTitle !== void 0 && /* @__PURE__ */ jsxs181(
|
|
30568
|
+
aiConfidenceSeoTitle !== void 0 && /* @__PURE__ */ jsxs181(Fragment44, { children: [
|
|
30563
30569
|
/* @__PURE__ */ jsx231(AIGeneratedBadge, {}),
|
|
30564
30570
|
/* @__PURE__ */ jsx231(
|
|
30565
30571
|
ConfidenceBadge,
|
|
@@ -30606,7 +30612,7 @@ function SEOEditorPreview({
|
|
|
30606
30612
|
/* @__PURE__ */ jsxs181("div", { className: "space-y-2", children: [
|
|
30607
30613
|
/* @__PURE__ */ jsxs181("div", { className: "flex items-center gap-2", children: [
|
|
30608
30614
|
/* @__PURE__ */ jsx231(Label, { className: "text-h6 text-ods-text-primary", children: "SEO Keywords" }),
|
|
30609
|
-
aiConfidenceSeoKeywords !== void 0 && /* @__PURE__ */ jsxs181(
|
|
30615
|
+
aiConfidenceSeoKeywords !== void 0 && /* @__PURE__ */ jsxs181(Fragment44, { children: [
|
|
30610
30616
|
/* @__PURE__ */ jsx231(AIGeneratedBadge, {}),
|
|
30611
30617
|
/* @__PURE__ */ jsx231(
|
|
30612
30618
|
ConfidenceBadge,
|
|
@@ -30635,7 +30641,7 @@ function SEOEditorPreview({
|
|
|
30635
30641
|
/* @__PURE__ */ jsxs181("div", { className: "space-y-2 flex flex-col h-full", children: [
|
|
30636
30642
|
/* @__PURE__ */ jsxs181("div", { className: "flex items-center gap-2", children: [
|
|
30637
30643
|
/* @__PURE__ */ jsx231(Label, { className: "text-h6 text-ods-text-primary", children: "SEO Description" }),
|
|
30638
|
-
aiConfidenceSeoDescription !== void 0 && /* @__PURE__ */ jsxs181(
|
|
30644
|
+
aiConfidenceSeoDescription !== void 0 && /* @__PURE__ */ jsxs181(Fragment44, { children: [
|
|
30639
30645
|
/* @__PURE__ */ jsx231(AIGeneratedBadge, {}),
|
|
30640
30646
|
/* @__PURE__ */ jsx231(
|
|
30641
30647
|
ConfidenceBadge,
|
|
@@ -30725,7 +30731,7 @@ function SEOEditorPreview({
|
|
|
30725
30731
|
{
|
|
30726
30732
|
className: "h-full min-h-[280px] border-2 border-dashed border-ods-border rounded-lg flex flex-col items-center justify-center cursor-pointer hover:border-ods-accent transition-colors bg-ods-bg-hover",
|
|
30727
30733
|
onClick: () => onOgImageUpload && fileInputRef?.click(),
|
|
30728
|
-
children: isUploading ? /* @__PURE__ */ jsx231(Loader25, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs181(
|
|
30734
|
+
children: isUploading ? /* @__PURE__ */ jsx231(Loader25, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs181(Fragment44, { children: [
|
|
30729
30735
|
/* @__PURE__ */ jsx231(Upload3, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
|
|
30730
30736
|
/* @__PURE__ */ jsx231("span", { className: "text-h6 text-ods-text-secondary", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
|
|
30731
30737
|
] })
|
|
@@ -32757,7 +32763,7 @@ init_cn();
|
|
|
32757
32763
|
import { useEffect as useEffect54, useState as useState74 } from "react";
|
|
32758
32764
|
import { ChevronDown as ChevronDown8, Shield as Shield2 } from "lucide-react";
|
|
32759
32765
|
init_button2();
|
|
32760
|
-
import { Fragment as
|
|
32766
|
+
import { Fragment as Fragment45, jsx as jsx256, jsxs as jsxs200 } from "react/jsx-runtime";
|
|
32761
32767
|
var approvalLevelLabels = {
|
|
32762
32768
|
ALLOW: "Allow",
|
|
32763
32769
|
ASK_USER: "Ask User",
|
|
@@ -32838,7 +32844,7 @@ var CategorySection = ({
|
|
|
32838
32844
|
}) => {
|
|
32839
32845
|
const { innerRef, containerStyle } = useCollapsible({ expanded: isExpanded, durationMs: 300 });
|
|
32840
32846
|
const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
|
|
32841
|
-
return /* @__PURE__ */ jsxs200(
|
|
32847
|
+
return /* @__PURE__ */ jsxs200(Fragment45, { children: [
|
|
32842
32848
|
/* @__PURE__ */ jsxs200(
|
|
32843
32849
|
"div",
|
|
32844
32850
|
{
|
|
@@ -33074,7 +33080,7 @@ function CountryOption({ country }) {
|
|
|
33074
33080
|
init_cn();
|
|
33075
33081
|
import { getCountries as getCountries2 } from "libphonenumber-js";
|
|
33076
33082
|
import { useEffect as useEffect56, useState as useState76 } from "react";
|
|
33077
|
-
import { Fragment as
|
|
33083
|
+
import { Fragment as Fragment46, jsx as jsx258, jsxs as jsxs202 } from "react/jsx-runtime";
|
|
33078
33084
|
function WaitlistForm({
|
|
33079
33085
|
id = "waitlist-form",
|
|
33080
33086
|
className,
|
|
@@ -33219,7 +33225,7 @@ function WaitlistForm({
|
|
|
33219
33225
|
error: showConsentError ? "Please agree to SMS notifications to continue." : void 0,
|
|
33220
33226
|
disabled: isSubmitting,
|
|
33221
33227
|
label: smsCheckboxLabel,
|
|
33222
|
-
description: /* @__PURE__ */ jsxs202(
|
|
33228
|
+
description: /* @__PURE__ */ jsxs202(Fragment46, { children: [
|
|
33223
33229
|
consentText,
|
|
33224
33230
|
" View our ",
|
|
33225
33231
|
/* @__PURE__ */ jsx258(
|
|
@@ -34145,7 +34151,7 @@ function NotificationTile({
|
|
|
34145
34151
|
}
|
|
34146
34152
|
|
|
34147
34153
|
// src/components/features/notifications/notification-drawer.tsx
|
|
34148
|
-
import { Fragment as
|
|
34154
|
+
import { Fragment as Fragment47, jsx as jsx262, jsxs as jsxs205 } from "react/jsx-runtime";
|
|
34149
34155
|
function NotificationDrawer({
|
|
34150
34156
|
className,
|
|
34151
34157
|
liveDurationMs,
|
|
@@ -34178,7 +34184,7 @@ function NotificationDrawer({
|
|
|
34178
34184
|
} = ctx;
|
|
34179
34185
|
const renderTile = renderTileProp ?? ctxRenderTile;
|
|
34180
34186
|
const unreadNotifications = notifications.filter((n) => !n.read);
|
|
34181
|
-
const content = /* @__PURE__ */ jsxs205(
|
|
34187
|
+
const content = /* @__PURE__ */ jsxs205(Fragment47, { children: [
|
|
34182
34188
|
/* @__PURE__ */ jsx262("div", { className: "px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]", children: /* @__PURE__ */ jsx262(
|
|
34183
34189
|
DrawerTitle,
|
|
34184
34190
|
{
|
|
@@ -34288,7 +34294,7 @@ function DrawerScrollList({
|
|
|
34288
34294
|
{
|
|
34289
34295
|
ref: scrollRef,
|
|
34290
34296
|
className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
|
|
34291
|
-
children: isEmpty && !isLoadingMore ? /* @__PURE__ */ jsx262(EmptyState, {}) : /* @__PURE__ */ jsxs205(
|
|
34297
|
+
children: isEmpty && !isLoadingMore ? /* @__PURE__ */ jsx262(EmptyState, {}) : /* @__PURE__ */ jsxs205(Fragment47, { children: [
|
|
34292
34298
|
unreadNotifications.map((n) => {
|
|
34293
34299
|
const custom = renderTile?.(n, { onComplete, onSettle, liveDurationMs });
|
|
34294
34300
|
if (custom) return /* @__PURE__ */ jsx262("div", { children: custom }, n.id);
|
|
@@ -34310,7 +34316,7 @@ function DrawerScrollList({
|
|
|
34310
34316
|
);
|
|
34311
34317
|
}
|
|
34312
34318
|
function DrawerLoadingTiles() {
|
|
34313
|
-
return /* @__PURE__ */ jsxs205(
|
|
34319
|
+
return /* @__PURE__ */ jsxs205(Fragment47, { children: [
|
|
34314
34320
|
/* @__PURE__ */ jsx262(
|
|
34315
34321
|
"div",
|
|
34316
34322
|
{
|
|
@@ -34693,7 +34699,7 @@ function approvalMetaToBatchData(approval) {
|
|
|
34693
34699
|
}
|
|
34694
34700
|
|
|
34695
34701
|
// src/components/features/notifications/approval-request-notification-tile.tsx
|
|
34696
|
-
import { Fragment as
|
|
34702
|
+
import { Fragment as Fragment48, jsx as jsx264, jsxs as jsxs206 } from "react/jsx-runtime";
|
|
34697
34703
|
function ApprovalRequestNotificationTile({
|
|
34698
34704
|
notification,
|
|
34699
34705
|
onApprove,
|
|
@@ -34743,7 +34749,7 @@ function ApprovalRequestNotificationTile({
|
|
|
34743
34749
|
className,
|
|
34744
34750
|
paused: pinned || processing,
|
|
34745
34751
|
actions: /* @__PURE__ */ jsxs206("div", { className: "flex w-full items-center gap-[var(--spacing-system-xs)]", children: [
|
|
34746
|
-
status === "pending" ? /* @__PURE__ */ jsxs206(
|
|
34752
|
+
status === "pending" ? /* @__PURE__ */ jsxs206(Fragment48, { children: [
|
|
34747
34753
|
/* @__PURE__ */ jsx264(Button, { variant: "accent", size: "small", onClick: () => resolve("approved", onApprove), disabled: processing, children: "Approve" }),
|
|
34748
34754
|
/* @__PURE__ */ jsx264(Button, { variant: "outline", size: "small", onClick: () => resolve("rejected", onReject), disabled: processing, children: "Reject" })
|
|
34749
34755
|
] }) : /* @__PURE__ */ jsxs206("span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
@@ -35163,7 +35169,7 @@ function HeaderButton({
|
|
|
35163
35169
|
}
|
|
35164
35170
|
|
|
35165
35171
|
// src/components/features/time-tracker/time-tracker-header-button.tsx
|
|
35166
|
-
import { Fragment as
|
|
35172
|
+
import { Fragment as Fragment49, jsx as jsx268, jsxs as jsxs208 } from "react/jsx-runtime";
|
|
35167
35173
|
function TimeTrackerHeaderButton({ className, disabled }) {
|
|
35168
35174
|
const ctx = useOptionalTimeTracker();
|
|
35169
35175
|
const elapsedLabel = useTrackerClock({
|
|
@@ -35209,7 +35215,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
35209
35215
|
isActive && "w-auto gap-[var(--spacing-system-xsf)] px-[var(--spacing-system-sf)] md:w-auto",
|
|
35210
35216
|
className
|
|
35211
35217
|
),
|
|
35212
|
-
icon: /* @__PURE__ */ jsxs208(
|
|
35218
|
+
icon: /* @__PURE__ */ jsxs208(Fragment49, { children: [
|
|
35213
35219
|
/* @__PURE__ */ jsx268(
|
|
35214
35220
|
ClockHistoryIcon,
|
|
35215
35221
|
{
|
|
@@ -35451,7 +35457,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
|
35451
35457
|
}
|
|
35452
35458
|
|
|
35453
35459
|
// src/components/features/board/ticket-card.tsx
|
|
35454
|
-
import { Fragment as
|
|
35460
|
+
import { Fragment as Fragment50, jsx as jsx271, jsxs as jsxs211 } from "react/jsx-runtime";
|
|
35455
35461
|
var PRIORITY_COLOR_CLASS = {
|
|
35456
35462
|
low: "text-ods-text-secondary",
|
|
35457
35463
|
medium: "text-ods-info",
|
|
@@ -35495,7 +35501,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
35495
35501
|
] }) : null;
|
|
35496
35502
|
const timestampLabel = ticket.createdAt ? formatTicketRelativeTime(ticket.createdAt) : null;
|
|
35497
35503
|
const tooltipLabel = ticket.createdAt ? formatTicketFullTimestamp(ticket.createdAt) : null;
|
|
35498
|
-
return /* @__PURE__ */ jsxs211(
|
|
35504
|
+
return /* @__PURE__ */ jsxs211(Fragment50, { children: [
|
|
35499
35505
|
/* @__PURE__ */ jsxs211("div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
|
|
35500
35506
|
/* @__PURE__ */ jsxs211("div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-zero)]", title: ticket.title, children: [
|
|
35501
35507
|
/* @__PURE__ */ jsx271("p", { className: "text-h3 truncate text-ods-text-primary", children: ticket.title }),
|
|
@@ -35661,7 +35667,7 @@ var TicketCardSkeleton = React105.forwardRef(
|
|
|
35661
35667
|
TicketCardSkeleton.displayName = "TicketCardSkeleton";
|
|
35662
35668
|
|
|
35663
35669
|
// src/components/features/board/board-column.tsx
|
|
35664
|
-
import { Fragment as
|
|
35670
|
+
import { Fragment as Fragment51, jsx as jsx273, jsxs as jsxs213 } from "react/jsx-runtime";
|
|
35665
35671
|
function BoardColumn({
|
|
35666
35672
|
column,
|
|
35667
35673
|
collapsed = false,
|
|
@@ -35700,7 +35706,7 @@ function BoardColumn({
|
|
|
35700
35706
|
onArchive: !collapsed && column.archivable && onArchive ? () => onArchive(column.id) : void 0
|
|
35701
35707
|
}
|
|
35702
35708
|
),
|
|
35703
|
-
!collapsed && /* @__PURE__ */ jsxs213(
|
|
35709
|
+
!collapsed && /* @__PURE__ */ jsxs213(Fragment51, { children: [
|
|
35704
35710
|
/* @__PURE__ */ jsx273("div", { "aria-hidden": true, className: "-mx-[var(--spacing-system-sf)] h-px shrink-0 bg-ods-border" }),
|
|
35705
35711
|
/* @__PURE__ */ jsx273(
|
|
35706
35712
|
ColumnBody,
|
|
@@ -35793,7 +35799,7 @@ function SkeletonStack({ count = 4 }) {
|
|
|
35793
35799
|
() => Array.from({ length: count }, () => Math.random().toString(36).slice(2)),
|
|
35794
35800
|
[count]
|
|
35795
35801
|
);
|
|
35796
|
-
return /* @__PURE__ */ jsx273(
|
|
35802
|
+
return /* @__PURE__ */ jsx273(Fragment51, { children: keys.map((k) => /* @__PURE__ */ jsx273(TicketCardSkeleton, {}, k)) });
|
|
35797
35803
|
}
|
|
35798
35804
|
function EmptyState2() {
|
|
35799
35805
|
return /* @__PURE__ */ jsxs213("div", { className: "flex flex-1 flex-col items-center justify-center gap-[var(--spacing-system-lf)] p-[var(--spacing-system-lf)] text-center text-ods-text-secondary", children: [
|
|
@@ -36215,7 +36221,7 @@ import { useRef as useRef48 } from "react";
|
|
|
36215
36221
|
import { usePreventScroll as usePreventScroll3 } from "@react-aria/overlays";
|
|
36216
36222
|
init_button2();
|
|
36217
36223
|
import { X as X10 } from "lucide-react";
|
|
36218
|
-
import { Fragment as
|
|
36224
|
+
import { Fragment as Fragment53, jsx as jsx276, jsxs as jsxs215 } from "react/jsx-runtime";
|
|
36219
36225
|
var MOBILE_NAV_PANEL_ID = "mobile-nav-panel";
|
|
36220
36226
|
function MobileNavPanel({ isOpen, config }) {
|
|
36221
36227
|
const panelRef = useRef48(null);
|
|
@@ -36271,7 +36277,7 @@ function MobileNavPanel({ isOpen, config }) {
|
|
|
36271
36277
|
item.id
|
|
36272
36278
|
);
|
|
36273
36279
|
};
|
|
36274
|
-
return /* @__PURE__ */ jsxs215(
|
|
36280
|
+
return /* @__PURE__ */ jsxs215(Fragment53, { children: [
|
|
36275
36281
|
/* @__PURE__ */ jsx276(
|
|
36276
36282
|
"div",
|
|
36277
36283
|
{
|
|
@@ -36374,7 +36380,7 @@ function MingoAiButton({ source, icon, label = "Mingo AI", className, onClick, .
|
|
|
36374
36380
|
}
|
|
36375
36381
|
|
|
36376
36382
|
// src/components/navigation/header.tsx
|
|
36377
|
-
import { Fragment as
|
|
36383
|
+
import { Fragment as Fragment54, jsx as jsx278, jsxs as jsxs217 } from "react/jsx-runtime";
|
|
36378
36384
|
function Header2({ config, platform }) {
|
|
36379
36385
|
const [show, setShow] = useState87(true);
|
|
36380
36386
|
const [lastScrollY, setLastScrollY] = useState87(0);
|
|
@@ -36519,7 +36525,7 @@ function Header2({ config, platform }) {
|
|
|
36519
36525
|
},
|
|
36520
36526
|
child.id
|
|
36521
36527
|
)) }),
|
|
36522
|
-
item.dropdownContent && /* @__PURE__ */ jsxs217(
|
|
36528
|
+
item.dropdownContent && /* @__PURE__ */ jsxs217(Fragment54, { children: [
|
|
36523
36529
|
item.showDropdownDivider !== false && /* @__PURE__ */ jsx278("div", { className: "h-px my-2 mx-2 bg-ods-border" }),
|
|
36524
36530
|
/* @__PURE__ */ jsx278("div", { className: "px-2 pb-2", children: item.dropdownContent })
|
|
36525
36531
|
] })
|
|
@@ -36721,7 +36727,7 @@ import { useState as useState89, useEffect as useEffect68, useRef as useRef50 }
|
|
|
36721
36727
|
import { motion as motion2, AnimatePresence, useReducedMotion } from "framer-motion";
|
|
36722
36728
|
import { usePreventScroll as usePreventScroll4 } from "@react-aria/overlays";
|
|
36723
36729
|
init_button2();
|
|
36724
|
-
import { Fragment as
|
|
36730
|
+
import { Fragment as Fragment55, jsx as jsx281, jsxs as jsxs219 } from "react/jsx-runtime";
|
|
36725
36731
|
function SlidingSidebar({ config }) {
|
|
36726
36732
|
const [expandedItems, setExpandedItems] = useState89(/* @__PURE__ */ new Set());
|
|
36727
36733
|
const [mounted, setMounted] = useState89(false);
|
|
@@ -36847,7 +36853,7 @@ function SlidingSidebar({ config }) {
|
|
|
36847
36853
|
if (!mounted) {
|
|
36848
36854
|
return null;
|
|
36849
36855
|
}
|
|
36850
|
-
return /* @__PURE__ */ jsxs219(
|
|
36856
|
+
return /* @__PURE__ */ jsxs219(Fragment55, { children: [
|
|
36851
36857
|
/* @__PURE__ */ jsx281(AnimatePresence, { children: config.isOpen && /* @__PURE__ */ jsx281(
|
|
36852
36858
|
motion2.div,
|
|
36853
36859
|
{
|
|
@@ -37148,7 +37154,7 @@ function NavigationSidebarToggle({
|
|
|
37148
37154
|
}
|
|
37149
37155
|
|
|
37150
37156
|
// src/components/navigation/navigation-sidebar.tsx
|
|
37151
|
-
import { Fragment as
|
|
37157
|
+
import { Fragment as Fragment56, jsx as jsx286, jsxs as jsxs224 } from "react/jsx-runtime";
|
|
37152
37158
|
var MINIMIZED_WIDTH = 56;
|
|
37153
37159
|
var EXPANDED_WIDTH = 224;
|
|
37154
37160
|
var STORAGE_KEY = "of.navigationSidebar.minimized";
|
|
@@ -37213,7 +37219,7 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
37213
37219
|
return () => cancelAnimationFrame(id);
|
|
37214
37220
|
}
|
|
37215
37221
|
}, [isHydrated, transitionsEnabled]);
|
|
37216
|
-
return /* @__PURE__ */ jsxs224(
|
|
37222
|
+
return /* @__PURE__ */ jsxs224(Fragment56, { children: [
|
|
37217
37223
|
/* @__PURE__ */ jsx286(
|
|
37218
37224
|
"div",
|
|
37219
37225
|
{
|
|
@@ -37252,7 +37258,7 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
37252
37258
|
),
|
|
37253
37259
|
style: { width: sidebarWidth },
|
|
37254
37260
|
"aria-label": "Main navigation sidebar",
|
|
37255
|
-
children: isHydrated && /* @__PURE__ */ jsxs224(
|
|
37261
|
+
children: isHydrated && /* @__PURE__ */ jsxs224(Fragment56, { children: [
|
|
37256
37262
|
/* @__PURE__ */ jsx286(NavigationSidebarHeader, { minimized }),
|
|
37257
37263
|
/* @__PURE__ */ jsxs224("div", { className: "flex-1 flex flex-col justify-between py-4 overflow-y-auto", children: [
|
|
37258
37264
|
/* @__PURE__ */ jsx286("nav", { className: "flex flex-col", "aria-label": "Primary navigation", children: primaryItems.map((item) => /* @__PURE__ */ jsx286(
|
|
@@ -37665,7 +37671,7 @@ import { Suspense as Suspense2, useCallback as useCallback38, useMemo as useMemo
|
|
|
37665
37671
|
// src/components/navigation/mobile-burger-menu.tsx
|
|
37666
37672
|
import React115, { useCallback as useCallback37, useRef as useRef52 } from "react";
|
|
37667
37673
|
import { usePreventScroll as usePreventScroll5 } from "@react-aria/overlays";
|
|
37668
|
-
import { Fragment as
|
|
37674
|
+
import { Fragment as Fragment57, jsx as jsx291, jsxs as jsxs229 } from "react/jsx-runtime";
|
|
37669
37675
|
var HEADER_HEIGHT = 48;
|
|
37670
37676
|
var MobileBurgerMenu = React115.memo(function MobileBurgerMenu2({
|
|
37671
37677
|
isOpen,
|
|
@@ -37725,7 +37731,7 @@ var MobileBurgerMenu = React115.memo(function MobileBurgerMenu2({
|
|
|
37725
37731
|
);
|
|
37726
37732
|
};
|
|
37727
37733
|
const renderNavigationGrid = (items) => /* @__PURE__ */ jsx291("div", { className: "grid grid-cols-2 gap-3", children: items.map((item) => /* @__PURE__ */ jsx291(React115.Fragment, { children: renderNavigationItem(item, true) }, item.id)) });
|
|
37728
|
-
return /* @__PURE__ */ jsxs229(
|
|
37734
|
+
return /* @__PURE__ */ jsxs229(Fragment57, { children: [
|
|
37729
37735
|
/* @__PURE__ */ jsx291(
|
|
37730
37736
|
"div",
|
|
37731
37737
|
{
|
|
@@ -38489,7 +38495,7 @@ import React117, { useRef as useRef54, useCallback as useCallback39 } from "reac
|
|
|
38489
38495
|
import React116 from "react";
|
|
38490
38496
|
init_button2();
|
|
38491
38497
|
init_cn();
|
|
38492
|
-
import { Fragment as
|
|
38498
|
+
import { Fragment as Fragment58, jsx as jsx301, jsxs as jsxs239 } from "react/jsx-runtime";
|
|
38493
38499
|
function OnboardingStepCard({
|
|
38494
38500
|
step,
|
|
38495
38501
|
isCompleted,
|
|
@@ -38531,10 +38537,10 @@ function OnboardingStepCard({
|
|
|
38531
38537
|
/* @__PURE__ */ jsx301("h3", { className: "text-h4 text-ods-text-primary truncate", title: step.title, children: step.title }),
|
|
38532
38538
|
/* @__PURE__ */ jsx301("p", { className: "text-h6 text-ods-text-secondary truncate h-[20px]", title: step.description, children: step.description })
|
|
38533
38539
|
] }),
|
|
38534
|
-
/* @__PURE__ */ jsx301("div", { className: "flex items-center gap-2 w-full md:w-auto justify-start md:justify-end shrink-0", onClick: (e) => e.stopPropagation(), children: isCheckingCompletion ? /* @__PURE__ */ jsxs239(
|
|
38540
|
+
/* @__PURE__ */ jsx301("div", { className: "flex items-center gap-2 w-full md:w-auto justify-start md:justify-end shrink-0", onClick: (e) => e.stopPropagation(), children: isCheckingCompletion ? /* @__PURE__ */ jsxs239(Fragment58, { children: [
|
|
38535
38541
|
/* @__PURE__ */ jsx301("div", { className: "h-[32px] w-[100px] bg-ods-border rounded-[6px] animate-pulse" }),
|
|
38536
38542
|
/* @__PURE__ */ jsx301("div", { className: "h-[32px] w-[120px] bg-ods-border rounded-[6px] animate-pulse" })
|
|
38537
|
-
] }) : isCompleted ? /* @__PURE__ */ jsxs239(
|
|
38543
|
+
] }) : isCompleted ? /* @__PURE__ */ jsxs239(Fragment58, { children: [
|
|
38538
38544
|
/* @__PURE__ */ jsx301(
|
|
38539
38545
|
StatusBadge,
|
|
38540
38546
|
{
|
|
@@ -38553,14 +38559,14 @@ function OnboardingStepCard({
|
|
|
38553
38559
|
children: step.completedText
|
|
38554
38560
|
}
|
|
38555
38561
|
)
|
|
38556
|
-
] }) : isSkipped ? /* @__PURE__ */ jsx301(
|
|
38562
|
+
] }) : isSkipped ? /* @__PURE__ */ jsx301(Fragment58, { children: /* @__PURE__ */ jsx301(
|
|
38557
38563
|
StatusBadge,
|
|
38558
38564
|
{
|
|
38559
38565
|
text: "SKIPPED",
|
|
38560
38566
|
variant: "card",
|
|
38561
38567
|
colorScheme: "default"
|
|
38562
38568
|
}
|
|
38563
|
-
) }) : /* @__PURE__ */ jsxs239(
|
|
38569
|
+
) }) : /* @__PURE__ */ jsxs239(Fragment58, { children: [
|
|
38564
38570
|
/* @__PURE__ */ jsx301(
|
|
38565
38571
|
Button,
|
|
38566
38572
|
{
|
|
@@ -39520,7 +39526,7 @@ function getHideClasses(hideAt) {
|
|
|
39520
39526
|
}
|
|
39521
39527
|
|
|
39522
39528
|
// src/components/ui/table/table-header.tsx
|
|
39523
|
-
import { Fragment as
|
|
39529
|
+
import { Fragment as Fragment59, jsx as jsx314, jsxs as jsxs249 } from "react/jsx-runtime";
|
|
39524
39530
|
function TableHeader({
|
|
39525
39531
|
columns,
|
|
39526
39532
|
className,
|
|
@@ -39631,10 +39637,10 @@ function TableHeader({
|
|
|
39631
39637
|
column.sortable && "cursor-pointer hover:text-ods-text-primary transition-colors"
|
|
39632
39638
|
),
|
|
39633
39639
|
onClick: () => handleSort(column),
|
|
39634
|
-
children: column.renderHeader ? /* @__PURE__ */ jsxs249(
|
|
39640
|
+
children: column.renderHeader ? /* @__PURE__ */ jsxs249(Fragment59, { children: [
|
|
39635
39641
|
column.renderHeader(),
|
|
39636
39642
|
getSortIcon(column)
|
|
39637
|
-
] }) : /* @__PURE__ */ jsxs249(
|
|
39643
|
+
] }) : /* @__PURE__ */ jsxs249(Fragment59, { children: [
|
|
39638
39644
|
/* @__PURE__ */ jsx314("span", { className: "text-h5 text-ods-text-secondary uppercase whitespace-nowrap", children: column.label }),
|
|
39639
39645
|
getSortIcon(column)
|
|
39640
39646
|
] })
|
|
@@ -39689,7 +39695,7 @@ function TableCell({
|
|
|
39689
39695
|
|
|
39690
39696
|
// src/components/ui/table/table-skeleton.tsx
|
|
39691
39697
|
init_cn();
|
|
39692
|
-
import { Fragment as
|
|
39698
|
+
import { Fragment as Fragment60, jsx as jsx316, jsxs as jsxs250 } from "react/jsx-runtime";
|
|
39693
39699
|
var ROW_HEIGHT_DESKTOP = "h-[68px] md:h-[80px]";
|
|
39694
39700
|
var ROW_HEIGHT_MOBILE = "h-[68px]";
|
|
39695
39701
|
function TableCardSkeleton({
|
|
@@ -39701,7 +39707,7 @@ function TableCardSkeleton({
|
|
|
39701
39707
|
rowClassName
|
|
39702
39708
|
}) {
|
|
39703
39709
|
const primaryKey = (columns.find((c) => /flex-(1|\[)/.test(c.width || "")) ?? columns[0])?.key;
|
|
39704
|
-
return /* @__PURE__ */ jsx316(
|
|
39710
|
+
return /* @__PURE__ */ jsx316(Fragment60, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs250(
|
|
39705
39711
|
"div",
|
|
39706
39712
|
{
|
|
39707
39713
|
className: cn(
|
|
@@ -39880,7 +39886,7 @@ function useTableMotion(enabled) {
|
|
|
39880
39886
|
}
|
|
39881
39887
|
|
|
39882
39888
|
// src/components/ui/table/table.tsx
|
|
39883
|
-
import { Fragment as
|
|
39889
|
+
import { Fragment as Fragment61, jsx as jsx318, jsxs as jsxs252 } from "react/jsx-runtime";
|
|
39884
39890
|
function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
|
|
39885
39891
|
const hasActions = Boolean(rowActions?.length) || Boolean(renderRowActions);
|
|
39886
39892
|
const result = [...columns];
|
|
@@ -40082,7 +40088,7 @@ function Table({
|
|
|
40082
40088
|
hasActions: Boolean(rowActions) && rowActions.length > 0,
|
|
40083
40089
|
hasChevron: Boolean(rowHref)
|
|
40084
40090
|
}
|
|
40085
|
-
) : data.length === 0 ? /* @__PURE__ */ jsx318(TableEmptyState, { message: emptyMessage }) : /* @__PURE__ */ jsxs252(
|
|
40091
|
+
) : data.length === 0 ? /* @__PURE__ */ jsx318(TableEmptyState, { message: emptyMessage }) : /* @__PURE__ */ jsxs252(Fragment61, { children: [
|
|
40086
40092
|
(() => {
|
|
40087
40093
|
const rows = data.map((item, index) => /* @__PURE__ */ jsx318(
|
|
40088
40094
|
TableRow,
|
|
@@ -40709,7 +40715,7 @@ function DataTableColumnFilter({
|
|
|
40709
40715
|
}
|
|
40710
40716
|
|
|
40711
40717
|
// src/components/ui/data-table/data-table-header.tsx
|
|
40712
|
-
import { Fragment as
|
|
40718
|
+
import { Fragment as Fragment62, jsx as jsx327, jsxs as jsxs259 } from "react/jsx-runtime";
|
|
40713
40719
|
function DataTableHeader({
|
|
40714
40720
|
className,
|
|
40715
40721
|
stickyHeader,
|
|
@@ -40805,7 +40811,7 @@ function HeaderLabel({ header }) {
|
|
|
40805
40811
|
if (typeof headerDef === "string") {
|
|
40806
40812
|
return /* @__PURE__ */ jsx327("span", { className: "text-h5 text-ods-text-secondary uppercase whitespace-nowrap transition-colors duration-200 group-hover:text-ods-text-primary", children: headerDef });
|
|
40807
40813
|
}
|
|
40808
|
-
return /* @__PURE__ */ jsx327(
|
|
40814
|
+
return /* @__PURE__ */ jsx327(Fragment62, { children: flexRender(headerDef, header.getContext()) });
|
|
40809
40815
|
}
|
|
40810
40816
|
function SortIcon({ sorted }) {
|
|
40811
40817
|
if (sorted === "asc") return /* @__PURE__ */ jsx327(Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" });
|
|
@@ -40844,7 +40850,7 @@ import { flexRender as flexRender2 } from "@tanstack/react-table";
|
|
|
40844
40850
|
|
|
40845
40851
|
// src/components/ui/data-table/data-table-skeleton.tsx
|
|
40846
40852
|
init_cn();
|
|
40847
|
-
import { Fragment as
|
|
40853
|
+
import { Fragment as Fragment63, jsx as jsx329, jsxs as jsxs260 } from "react/jsx-runtime";
|
|
40848
40854
|
var ROW_HEIGHT_DESKTOP2 = "h-[68px] md:h-[80px]";
|
|
40849
40855
|
var ROW_HEIGHT_MOBILE2 = "h-[68px]";
|
|
40850
40856
|
function DataTableSkeleton({
|
|
@@ -40855,7 +40861,7 @@ function DataTableSkeleton({
|
|
|
40855
40861
|
const table = useDataTableContext();
|
|
40856
40862
|
const columns = table.getVisibleFlatColumns();
|
|
40857
40863
|
const firstColumnId = columns[0]?.id;
|
|
40858
|
-
return /* @__PURE__ */ jsx329(
|
|
40864
|
+
return /* @__PURE__ */ jsx329(Fragment63, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs260(
|
|
40859
40865
|
"div",
|
|
40860
40866
|
{
|
|
40861
40867
|
className: cn(
|
|
@@ -40911,7 +40917,7 @@ function DataTableSkeleton({
|
|
|
40911
40917
|
}
|
|
40912
40918
|
|
|
40913
40919
|
// src/components/ui/data-table/data-table-row.tsx
|
|
40914
|
-
import { Fragment as
|
|
40920
|
+
import { Fragment as Fragment64, jsx as jsx330, jsxs as jsxs261 } from "react/jsx-runtime";
|
|
40915
40921
|
function DataTableRowImpl({
|
|
40916
40922
|
row,
|
|
40917
40923
|
onClick,
|
|
@@ -41013,7 +41019,7 @@ function CellContent({ children }) {
|
|
|
41013
41019
|
if (typeof children === "string" || typeof children === "number") {
|
|
41014
41020
|
return /* @__PURE__ */ jsx330("span", { className: "text-h4 text-ods-text-primary truncate", title: String(children), children });
|
|
41015
41021
|
}
|
|
41016
|
-
return /* @__PURE__ */ jsx330(
|
|
41022
|
+
return /* @__PURE__ */ jsx330(Fragment64, { children });
|
|
41017
41023
|
}
|
|
41018
41024
|
|
|
41019
41025
|
// src/components/ui/data-table/data-table-body.tsx
|
|
@@ -41093,7 +41099,7 @@ function DataTableBody({
|
|
|
41093
41099
|
|
|
41094
41100
|
// src/components/ui/data-table/data-table-infinite-footer.tsx
|
|
41095
41101
|
import { useEffect as useEffect73, useRef as useRef60 } from "react";
|
|
41096
|
-
import { Fragment as
|
|
41102
|
+
import { Fragment as Fragment65, jsx as jsx332, jsxs as jsxs263 } from "react/jsx-runtime";
|
|
41097
41103
|
function DataTableInfiniteFooter({
|
|
41098
41104
|
hasNextPage,
|
|
41099
41105
|
isFetchingNextPage,
|
|
@@ -41117,7 +41123,7 @@ function DataTableInfiniteFooter({
|
|
|
41117
41123
|
observer.observe(sentinel);
|
|
41118
41124
|
return () => observer.disconnect();
|
|
41119
41125
|
}, [hasNextPage, isFetchingNextPage, rootMargin]);
|
|
41120
|
-
return /* @__PURE__ */ jsxs263(
|
|
41126
|
+
return /* @__PURE__ */ jsxs263(Fragment65, { children: [
|
|
41121
41127
|
isFetchingNextPage && /* @__PURE__ */ jsx332(DataTableSkeleton, { rows: skeletonRows }),
|
|
41122
41128
|
hasNextPage && /* @__PURE__ */ jsx332("div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" })
|
|
41123
41129
|
] });
|
|
@@ -42527,7 +42533,7 @@ function FileUpload({
|
|
|
42527
42533
|
import * as React128 from "react";
|
|
42528
42534
|
import { Loader2 as Loader210 } from "lucide-react";
|
|
42529
42535
|
init_cn();
|
|
42530
|
-
import { Fragment as
|
|
42536
|
+
import { Fragment as Fragment67, jsx as jsx339, jsxs as jsxs270 } from "react/jsx-runtime";
|
|
42531
42537
|
var DEFAULT_MAX_SIZE = 25 * 1024 * 1024;
|
|
42532
42538
|
function formatSize(bytes) {
|
|
42533
42539
|
const mb = bytes / (1024 * 1024);
|
|
@@ -42656,7 +42662,7 @@ function ImageUploader({
|
|
|
42656
42662
|
!hasImage && !interactive && "cursor-not-allowed",
|
|
42657
42663
|
dropzoneClassName
|
|
42658
42664
|
),
|
|
42659
|
-
children: hasImage ? /* @__PURE__ */ jsxs270(
|
|
42665
|
+
children: hasImage ? /* @__PURE__ */ jsxs270(Fragment67, { children: [
|
|
42660
42666
|
/* @__PURE__ */ jsx339("div", { className: "relative min-h-0 w-full flex-1 overflow-hidden rounded-md", children: resolvedValue && /* @__PURE__ */ jsx339(
|
|
42661
42667
|
"img",
|
|
42662
42668
|
{
|
|
@@ -42693,7 +42699,7 @@ function ImageUploader({
|
|
|
42693
42699
|
)
|
|
42694
42700
|
] }),
|
|
42695
42701
|
loading && /* @__PURE__ */ jsx339("div", { className: "absolute inset-0 flex items-center justify-center rounded-md bg-ods-overlay", children: /* @__PURE__ */ jsx339(Loader210, { className: "size-8 animate-spin text-ods-text-on-dark" }) })
|
|
42696
|
-
] }) : loading ? /* @__PURE__ */ jsx339(Loader210, { className: "size-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs270(
|
|
42702
|
+
] }) : loading ? /* @__PURE__ */ jsx339(Loader210, { className: "size-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs270(Fragment67, { children: [
|
|
42697
42703
|
/* @__PURE__ */ jsx339("div", { className: "flex shrink-0 items-center justify-center rounded-full border border-ods-border bg-ods-card p-[var(--spacing-system-s)]", children: /* @__PURE__ */ jsx339(ImagePlusIcon, { className: "size-6 text-ods-text-primary" }) }),
|
|
42698
42704
|
/* @__PURE__ */ jsxs270("div", { className: "flex w-full flex-col items-center text-center", children: [
|
|
42699
42705
|
/* @__PURE__ */ jsx339("p", { className: "text-h4 text-ods-text-primary", children: label }),
|
|
@@ -42763,7 +42769,7 @@ PopoverContent.displayName = PopoverPrimitive7.Content.displayName;
|
|
|
42763
42769
|
|
|
42764
42770
|
// src/components/ui/color-preset-select.tsx
|
|
42765
42771
|
init_cn();
|
|
42766
|
-
import { Fragment as
|
|
42772
|
+
import { Fragment as Fragment68, jsx as jsx341, jsxs as jsxs271 } from "react/jsx-runtime";
|
|
42767
42773
|
var TICKET_STATUS_COLOR_PRESETS = [
|
|
42768
42774
|
{ key: "green", label: "Green", color: "#5ea62e" },
|
|
42769
42775
|
{ key: "lime", label: "Lime", color: "#8bc34a" },
|
|
@@ -42914,7 +42920,7 @@ function RgbInputs({ value, onChange }) {
|
|
|
42914
42920
|
const b = next.b ?? rgb.b;
|
|
42915
42921
|
onChange(rgbToHex(r, g, b));
|
|
42916
42922
|
};
|
|
42917
|
-
return /* @__PURE__ */ jsxs271(
|
|
42923
|
+
return /* @__PURE__ */ jsxs271(Fragment68, { children: [
|
|
42918
42924
|
/* @__PURE__ */ jsx341(ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
|
|
42919
42925
|
/* @__PURE__ */ jsx341(ChannelInput, { value: rgb.g, min: 0, max: 255, ariaLabel: "Green", onCommit: (g) => update({ g }) }),
|
|
42920
42926
|
/* @__PURE__ */ jsx341(ChannelInput, { value: rgb.b, min: 0, max: 255, ariaLabel: "Blue", onCommit: (b) => update({ b }) })
|
|
@@ -42930,7 +42936,7 @@ function HslInputs({ value, onChange }) {
|
|
|
42930
42936
|
const out = hslToRgb(h, s, l);
|
|
42931
42937
|
onChange(rgbToHex(out.r, out.g, out.b));
|
|
42932
42938
|
};
|
|
42933
|
-
return /* @__PURE__ */ jsxs271(
|
|
42939
|
+
return /* @__PURE__ */ jsxs271(Fragment68, { children: [
|
|
42934
42940
|
/* @__PURE__ */ jsx341(ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
|
|
42935
42941
|
/* @__PURE__ */ jsx341(ChannelInput, { value: hsl.s, min: 0, max: 100, ariaLabel: "Saturation", onCommit: (s) => update({ s }) }),
|
|
42936
42942
|
/* @__PURE__ */ jsx341(ChannelInput, { value: hsl.l, min: 0, max: 100, ariaLabel: "Lightness", onCommit: (l) => update({ l }) })
|
|
@@ -43227,7 +43233,7 @@ init_cn();
|
|
|
43227
43233
|
// src/components/ui/ticket-note-card.tsx
|
|
43228
43234
|
import * as React132 from "react";
|
|
43229
43235
|
init_cn();
|
|
43230
|
-
import { Fragment as
|
|
43236
|
+
import { Fragment as Fragment69, jsx as jsx345, jsxs as jsxs275 } from "react/jsx-runtime";
|
|
43231
43237
|
function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
43232
43238
|
const [isEditing, setIsEditing] = React132.useState(false);
|
|
43233
43239
|
const [editText, setEditText] = React132.useState(note.text);
|
|
@@ -43301,7 +43307,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
|
43301
43307
|
children: /* @__PURE__ */ jsx345(XmarkIcon, { className: "size-5" })
|
|
43302
43308
|
}
|
|
43303
43309
|
)
|
|
43304
|
-
] }) : /* @__PURE__ */ jsxs275(
|
|
43310
|
+
] }) : /* @__PURE__ */ jsxs275(Fragment69, { children: [
|
|
43305
43311
|
/* @__PURE__ */ jsx345("p", { className: "text-h4 text-ods-text-primary", children: note.text }),
|
|
43306
43312
|
/* @__PURE__ */ jsxs275(
|
|
43307
43313
|
"p",
|
|
@@ -43408,7 +43414,7 @@ function TicketNotesSection({
|
|
|
43408
43414
|
}
|
|
43409
43415
|
|
|
43410
43416
|
// src/components/ui/ticket-info-section.tsx
|
|
43411
|
-
import { Fragment as
|
|
43417
|
+
import { Fragment as Fragment70, jsx as jsx347, jsxs as jsxs277 } from "react/jsx-runtime";
|
|
43412
43418
|
function InfoCell2({ value, label, icon, onClick }) {
|
|
43413
43419
|
return /* @__PURE__ */ jsx347("div", { className: "flex-1 min-w-0 overflow-hidden", children: /* @__PURE__ */ jsxs277("div", { className: "flex flex-col justify-center", children: [
|
|
43414
43420
|
/* @__PURE__ */ jsxs277("div", { className: "flex items-center gap-1 w-full min-w-0", children: [
|
|
@@ -43533,7 +43539,7 @@ function TicketInfoSection({
|
|
|
43533
43539
|
)
|
|
43534
43540
|
] })
|
|
43535
43541
|
] }),
|
|
43536
|
-
expanded && /* @__PURE__ */ jsxs277(
|
|
43542
|
+
expanded && /* @__PURE__ */ jsxs277(Fragment70, { children: [
|
|
43537
43543
|
createdAt && /* @__PURE__ */ jsx347("div", { className: "grid grid-cols-2 gap-4 px-4 py-3 bg-ods-bg border-b border-ods-border items-center", children: /* @__PURE__ */ jsx347(InfoCell2, { value: createdAt, label: "Created" }) }),
|
|
43538
43544
|
/* @__PURE__ */ jsxs277("div", { className: "flex flex-col gap-4 p-4 bg-ods-bg border-b border-ods-border", children: [
|
|
43539
43545
|
description && /* @__PURE__ */ jsx347(SimpleMarkdownRenderer, { content: description }),
|
|
@@ -43591,7 +43597,7 @@ function FilterPillRow({
|
|
|
43591
43597
|
|
|
43592
43598
|
// src/components/ui/image-gallery-modal.tsx
|
|
43593
43599
|
import { ChevronLeft as ChevronLeft4, ChevronRight as ChevronRight8 } from "lucide-react";
|
|
43594
|
-
import { Fragment as
|
|
43600
|
+
import { Fragment as Fragment71, jsx as jsx349, jsxs as jsxs279 } from "react/jsx-runtime";
|
|
43595
43601
|
function ImageGalleryModal({
|
|
43596
43602
|
images,
|
|
43597
43603
|
isOpen,
|
|
@@ -43647,7 +43653,7 @@ function ImageGalleryModal({
|
|
|
43647
43653
|
onClose,
|
|
43648
43654
|
className: "max-w-[95vw]",
|
|
43649
43655
|
children: /* @__PURE__ */ jsxs279("div", { className: "relative flex items-center justify-center bg-black rounded-lg", children: [
|
|
43650
|
-
images.length > 1 && /* @__PURE__ */ jsxs279(
|
|
43656
|
+
images.length > 1 && /* @__PURE__ */ jsxs279(Fragment71, { children: [
|
|
43651
43657
|
selectedImageIndex > 0 && /* @__PURE__ */ jsx349("div", { className: "absolute left-4 top-1/2 -translate-y-1/2 z-[10000]", children: /* @__PURE__ */ jsx349(
|
|
43652
43658
|
Button,
|
|
43653
43659
|
{
|
|
@@ -43765,7 +43771,7 @@ function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
|
|
|
43765
43771
|
}
|
|
43766
43772
|
|
|
43767
43773
|
// src/components/chat/entity-cards/roadmap-card.tsx
|
|
43768
|
-
import { Fragment as
|
|
43774
|
+
import { Fragment as Fragment72, jsx as jsx351, jsxs as jsxs280 } from "react/jsx-runtime";
|
|
43769
43775
|
function RoadmapCardSkeleton({ size: size2 = "default" }) {
|
|
43770
43776
|
if (size2 === "sm") {
|
|
43771
43777
|
return /* @__PURE__ */ jsxs280("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
@@ -43827,7 +43833,7 @@ function RoadmapCard({
|
|
|
43827
43833
|
const hasScreenshots = (item.screenshots?.length ?? 0) > 0;
|
|
43828
43834
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
43829
43835
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
43830
|
-
const body = /* @__PURE__ */ jsxs280(
|
|
43836
|
+
const body = /* @__PURE__ */ jsxs280(Fragment72, { children: [
|
|
43831
43837
|
/* @__PURE__ */ jsx351(
|
|
43832
43838
|
"span",
|
|
43833
43839
|
{
|
|
@@ -44019,7 +44025,7 @@ function RoadmapCard({
|
|
|
44019
44025
|
// src/components/chat/entity-cards/github-activity-card.tsx
|
|
44020
44026
|
import React135 from "react";
|
|
44021
44027
|
import { GitPullRequest, Eye as Eye4, ExternalLink as ExternalLink8 } from "lucide-react";
|
|
44022
|
-
import { Fragment as
|
|
44028
|
+
import { Fragment as Fragment73, jsx as jsx352, jsxs as jsxs281 } from "react/jsx-runtime";
|
|
44023
44029
|
function parseRepoFromUrl(url) {
|
|
44024
44030
|
if (!url) return null;
|
|
44025
44031
|
try {
|
|
@@ -44151,7 +44157,7 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
44151
44157
|
if (repo) metaParts.push(/* @__PURE__ */ jsx352("span", { className: "font-mono truncate", children: repo }, "repo"));
|
|
44152
44158
|
if (dateText) metaParts.push(/* @__PURE__ */ jsx352("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
44153
44159
|
const href = safeHref(item.url);
|
|
44154
|
-
const body = /* @__PURE__ */ jsxs281(
|
|
44160
|
+
const body = /* @__PURE__ */ jsxs281(Fragment73, { children: [
|
|
44155
44161
|
/* @__PURE__ */ jsx352("span", { className: COMPACT_CARD_ICON_SLOT, children: kindIcon(kind, "h-5 w-5") }),
|
|
44156
44162
|
/* @__PURE__ */ jsxs281("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
44157
44163
|
/* @__PURE__ */ jsxs281("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-1.5`, children: [
|
|
@@ -44206,7 +44212,7 @@ function GitHubActivityCardSkeleton({ variant = "compact", className }) {
|
|
|
44206
44212
|
// src/components/chat/entity-cards/slack-message-card.tsx
|
|
44207
44213
|
import React136 from "react";
|
|
44208
44214
|
import { ExternalLink as ExternalLink9, Hash } from "lucide-react";
|
|
44209
|
-
import { Fragment as
|
|
44215
|
+
import { Fragment as Fragment74, jsx as jsx353, jsxs as jsxs282 } from "react/jsx-runtime";
|
|
44210
44216
|
function parseChannelFromUrl(url) {
|
|
44211
44217
|
if (!url) return null;
|
|
44212
44218
|
try {
|
|
@@ -44245,7 +44251,7 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
|
|
|
44245
44251
|
}
|
|
44246
44252
|
if (dateText) metaParts.push(/* @__PURE__ */ jsx353("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
44247
44253
|
const href = safeHref(item.url);
|
|
44248
|
-
const body = /* @__PURE__ */ jsxs282(
|
|
44254
|
+
const body = /* @__PURE__ */ jsxs282(Fragment74, { children: [
|
|
44249
44255
|
/* @__PURE__ */ jsx353("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx353(SlackIcon, { className: "h-5 w-5" }) }),
|
|
44250
44256
|
/* @__PURE__ */ jsxs282("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
44251
44257
|
/* @__PURE__ */ jsx353("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx353("span", { className: COMPACT_CARD_TITLE, children: item.title }) }),
|
|
@@ -44295,7 +44301,7 @@ function SlackMessageCardSkeleton({ variant = "compact", className }) {
|
|
|
44295
44301
|
// src/components/chat/entity-cards/hubspot-ticket-card.tsx
|
|
44296
44302
|
import React137 from "react";
|
|
44297
44303
|
import { ExternalLink as ExternalLink10 } from "lucide-react";
|
|
44298
|
-
import { Fragment as
|
|
44304
|
+
import { Fragment as Fragment75, jsx as jsx354, jsxs as jsxs283 } from "react/jsx-runtime";
|
|
44299
44305
|
function formatToken(token) {
|
|
44300
44306
|
if (!token) return null;
|
|
44301
44307
|
const lower = token.toLowerCase().replace(/_/g, " ");
|
|
@@ -44334,7 +44340,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
44334
44340
|
}
|
|
44335
44341
|
if (dateText) metaParts.push(/* @__PURE__ */ jsx354("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
44336
44342
|
const href = safeHref(item.url);
|
|
44337
|
-
const body = /* @__PURE__ */ jsxs283(
|
|
44343
|
+
const body = /* @__PURE__ */ jsxs283(Fragment75, { children: [
|
|
44338
44344
|
/* @__PURE__ */ jsxs283("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
44339
44345
|
/* @__PURE__ */ jsxs283("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
44340
44346
|
/* @__PURE__ */ jsx354("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
@@ -44414,9 +44420,9 @@ function HubspotTicketCardSkeleton({ variant = "compact", className }) {
|
|
|
44414
44420
|
|
|
44415
44421
|
// src/components/chat/entity-cards/data-room-doc-card.tsx
|
|
44416
44422
|
import { ExternalLink as ExternalLink11 } from "lucide-react";
|
|
44417
|
-
import { Fragment as
|
|
44423
|
+
import { Fragment as Fragment76, jsx as jsx355, jsxs as jsxs284 } from "react/jsx-runtime";
|
|
44418
44424
|
function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
44419
|
-
const body = /* @__PURE__ */ jsxs284(
|
|
44425
|
+
const body = /* @__PURE__ */ jsxs284(Fragment76, { children: [
|
|
44420
44426
|
/* @__PURE__ */ jsxs284("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
44421
44427
|
/* @__PURE__ */ jsxs284("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
44422
44428
|
/* @__PURE__ */ jsx355("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
@@ -46026,7 +46032,7 @@ function cleanEscapedString(input) {
|
|
|
46026
46032
|
init_button();
|
|
46027
46033
|
import { ExternalLink as ExternalLink12, Clock as Clock2, Play as Play4, Video as Video5 } from "lucide-react";
|
|
46028
46034
|
init_cn();
|
|
46029
|
-
import { Fragment as
|
|
46035
|
+
import { Fragment as Fragment77, jsx as jsx356, jsxs as jsxs285 } from "react/jsx-runtime";
|
|
46030
46036
|
function formatUtc(date, fmt) {
|
|
46031
46037
|
return format2(new Date(date.getTime() + date.getTimezoneOffset() * 6e4), fmt);
|
|
46032
46038
|
}
|
|
@@ -46101,7 +46107,7 @@ function MediaGallery({ images, title }) {
|
|
|
46101
46107
|
setIsModalOpen(false);
|
|
46102
46108
|
setSelectedImageIndex(null);
|
|
46103
46109
|
};
|
|
46104
|
-
return /* @__PURE__ */ jsxs285(
|
|
46110
|
+
return /* @__PURE__ */ jsxs285(Fragment77, { children: [
|
|
46105
46111
|
/* @__PURE__ */ jsx356("div", { className: "p-6 pt-4", children: /* @__PURE__ */ jsx356("div", { className: "overflow-x-auto mb-4", children: /* @__PURE__ */ jsx356("div", { className: "flex gap-3 pb-2", style: { width: "max-content" }, children: images.map((mediaItem, index) => /* @__PURE__ */ jsxs285(
|
|
46106
46112
|
"div",
|
|
46107
46113
|
{
|
|
@@ -46243,7 +46249,7 @@ function ProgramCard({
|
|
|
46243
46249
|
const dateFormat = formatUtc(itemDate, "EEEE d MMMM");
|
|
46244
46250
|
const defaultRenderMeta = () => {
|
|
46245
46251
|
if (config.type === "podcast" && "duration_seconds" in item && !isScheduled) {
|
|
46246
|
-
return /* @__PURE__ */ jsxs285(
|
|
46252
|
+
return /* @__PURE__ */ jsxs285(Fragment77, { children: [
|
|
46247
46253
|
/* @__PURE__ */ jsx356(Clock2, { className: "w-4 h-4 text-ods-text-secondary" }),
|
|
46248
46254
|
/* @__PURE__ */ jsx356("span", { className: "font-body text-ods-text-secondary", children: formatDurationCompact(item.duration_seconds) })
|
|
46249
46255
|
] });
|
|
@@ -46254,7 +46260,7 @@ function ProgramCard({
|
|
|
46254
46260
|
if (config.type === "webinar" && "start_at" in item) {
|
|
46255
46261
|
const webinarItem = item;
|
|
46256
46262
|
const duration = formatDurationFromRange(webinarItem.start_at, webinarItem.end_at);
|
|
46257
|
-
return /* @__PURE__ */ jsxs285(
|
|
46263
|
+
return /* @__PURE__ */ jsxs285(Fragment77, { children: [
|
|
46258
46264
|
/* @__PURE__ */ jsx356(Video5, { className: "w-4 h-4 text-ods-text-secondary" }),
|
|
46259
46265
|
/* @__PURE__ */ jsxs285("span", { className: "font-body text-ods-text-secondary", children: [
|
|
46260
46266
|
formatTimeWithTimezone(webinarItem.start_at, webinarItem.timezone ?? null),
|
|
@@ -46288,10 +46294,10 @@ function ProgramCard({
|
|
|
46288
46294
|
/* @__PURE__ */ jsx356("h3", { className: "text-h2 text-ods-text-primary mb-3 min-h-[3rem] md:min-h-[3.5rem] line-clamp-2 flex items-center", children: item.title }),
|
|
46289
46295
|
/* @__PURE__ */ jsxs285("div", { className: "flex flex-col md:flex-row md:items-center gap-2 md:gap-4 mb-4", children: [
|
|
46290
46296
|
/* @__PURE__ */ jsx356("span", { className: "text-h6", style: { color: accentColor }, children: dateFormat }),
|
|
46291
|
-
renderMeta ? /* @__PURE__ */ jsxs285(
|
|
46297
|
+
renderMeta ? /* @__PURE__ */ jsxs285(Fragment77, { children: [
|
|
46292
46298
|
/* @__PURE__ */ jsx356("span", { className: "hidden md:inline text-ods-text-secondary", children: "\u2022" }),
|
|
46293
46299
|
renderMeta(item)
|
|
46294
|
-
] }) : defaultRenderMeta() && /* @__PURE__ */ jsxs285(
|
|
46300
|
+
] }) : defaultRenderMeta() && /* @__PURE__ */ jsxs285(Fragment77, { children: [
|
|
46295
46301
|
/* @__PURE__ */ jsx356("span", { className: "hidden md:inline text-ods-text-secondary", children: "\u2022" }),
|
|
46296
46302
|
/* @__PURE__ */ jsx356("div", { className: "flex items-center gap-2", children: defaultRenderMeta() })
|
|
46297
46303
|
] })
|
|
@@ -46368,10 +46374,10 @@ function ProgramCard({
|
|
|
46368
46374
|
|
|
46369
46375
|
// src/components/chat/entity-cards/campaign-card-admin.tsx
|
|
46370
46376
|
import { Megaphone as Megaphone3 } from "lucide-react";
|
|
46371
|
-
import { Fragment as
|
|
46377
|
+
import { Fragment as Fragment78, jsx as jsx357, jsxs as jsxs286 } from "react/jsx-runtime";
|
|
46372
46378
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
46373
46379
|
const goalsCount = campaign.goals?.length || 0;
|
|
46374
|
-
const innerChildren = /* @__PURE__ */ jsxs286(
|
|
46380
|
+
const innerChildren = /* @__PURE__ */ jsxs286(Fragment78, { children: [
|
|
46375
46381
|
/* @__PURE__ */ jsx357("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx357(Megaphone3, { className: "h-5 w-5" }) }),
|
|
46376
46382
|
/* @__PURE__ */ jsxs286("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
46377
46383
|
/* @__PURE__ */ jsx357("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx357("span", { className: COMPACT_CARD_TITLE, children: campaign.name }) }),
|
|
@@ -46401,11 +46407,11 @@ function CampaignCardAdminSkeleton({ className }) {
|
|
|
46401
46407
|
|
|
46402
46408
|
// src/components/chat/entity-cards/generic-entity-card.tsx
|
|
46403
46409
|
import { ExternalLink as ExternalLink13 } from "lucide-react";
|
|
46404
|
-
import { Fragment as
|
|
46410
|
+
import { Fragment as Fragment79, jsx as jsx358, jsxs as jsxs287 } from "react/jsx-runtime";
|
|
46405
46411
|
function GenericEntityCard({ item, className, anchorProps }) {
|
|
46406
46412
|
const href = safeHref(item.url);
|
|
46407
46413
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
46408
|
-
const body = /* @__PURE__ */ jsxs287(
|
|
46414
|
+
const body = /* @__PURE__ */ jsxs287(Fragment79, { children: [
|
|
46409
46415
|
/* @__PURE__ */ jsxs287("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
46410
46416
|
/* @__PURE__ */ jsxs287("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
46411
46417
|
/* @__PURE__ */ jsx358("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
@@ -46590,7 +46596,7 @@ function resolveSourceIcon(input, ctx = {}) {
|
|
|
46590
46596
|
|
|
46591
46597
|
// src/components/chat/mingo-info-card.tsx
|
|
46592
46598
|
init_cn();
|
|
46593
|
-
import { Fragment as
|
|
46599
|
+
import { Fragment as Fragment80, jsx as jsx359, jsxs as jsxs288 } from "react/jsx-runtime";
|
|
46594
46600
|
function CardMedia({
|
|
46595
46601
|
imageSrc,
|
|
46596
46602
|
imageAlt,
|
|
@@ -46634,7 +46640,7 @@ function MingoInfoCard({
|
|
|
46634
46640
|
const hasMenu = !!menuGroups && menuGroups.length > 0;
|
|
46635
46641
|
const isAnchor = !!anchorProps;
|
|
46636
46642
|
const isInteractive = isAnchor || !!onClick;
|
|
46637
|
-
const content = /* @__PURE__ */ jsxs288(
|
|
46643
|
+
const content = /* @__PURE__ */ jsxs288(Fragment80, { children: [
|
|
46638
46644
|
hasMedia && /* @__PURE__ */ jsx359(CardMedia, { imageSrc, imageAlt, icon }),
|
|
46639
46645
|
/* @__PURE__ */ jsxs288("span", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
46640
46646
|
/* @__PURE__ */ jsx359("span", { className: "truncate text-h4 text-ods-text-primary", children: title }),
|
|
@@ -46683,7 +46689,7 @@ function MingoInfoCard({
|
|
|
46683
46689
|
}
|
|
46684
46690
|
|
|
46685
46691
|
// src/components/chat/entity-cards/dispatch.tsx
|
|
46686
|
-
import { Fragment as
|
|
46692
|
+
import { Fragment as Fragment81, jsx as jsx360, jsxs as jsxs289 } from "react/jsx-runtime";
|
|
46687
46693
|
function githubKindIcon(kind) {
|
|
46688
46694
|
switch (kind) {
|
|
46689
46695
|
case "pull_request":
|
|
@@ -47651,10 +47657,10 @@ function ChatCardLoader({
|
|
|
47651
47657
|
}
|
|
47652
47658
|
);
|
|
47653
47659
|
}
|
|
47654
|
-
if (isLoading) return /* @__PURE__ */ jsx360(
|
|
47660
|
+
if (isLoading) return /* @__PURE__ */ jsx360(Fragment81, { children: entry.skeleton() });
|
|
47655
47661
|
if (!item) return null;
|
|
47656
47662
|
if (entry.bareInline) {
|
|
47657
|
-
return /* @__PURE__ */ jsx360(
|
|
47663
|
+
return /* @__PURE__ */ jsx360(Fragment81, { children: navWrap(entry.render(item, finalChatRef, renderOpts)) });
|
|
47658
47664
|
}
|
|
47659
47665
|
return /* @__PURE__ */ jsx360(
|
|
47660
47666
|
ChatCardWithDiscuss,
|
|
@@ -48577,6 +48583,7 @@ function parseChunkToAction(chunk) {
|
|
|
48577
48583
|
integratedToolType: data.integratedToolType || "",
|
|
48578
48584
|
toolFunction: data.toolFunction || "",
|
|
48579
48585
|
toolTitle: typeof data.title === "string" ? data.title : void 0,
|
|
48586
|
+
toolExplanation: typeof data.toolExplanation === "string" ? data.toolExplanation : void 0,
|
|
48580
48587
|
parameters: data.parameters,
|
|
48581
48588
|
toolExecutionRequestId: typeof data.toolExecutionRequestId === "string" ? data.toolExecutionRequestId : void 0
|
|
48582
48589
|
}
|
|
@@ -48827,6 +48834,7 @@ var MessageSegmentAccumulator = class {
|
|
|
48827
48834
|
integratedToolType: toolData.integratedToolType,
|
|
48828
48835
|
toolFunction: toolData.toolFunction,
|
|
48829
48836
|
toolTitle: toolData.toolTitle,
|
|
48837
|
+
toolExplanation: toolData.toolExplanation,
|
|
48830
48838
|
parameters: toolData.parameters
|
|
48831
48839
|
});
|
|
48832
48840
|
this.segments.push(segment);
|
|
@@ -48841,6 +48849,7 @@ var MessageSegmentAccumulator = class {
|
|
|
48841
48849
|
data: {
|
|
48842
48850
|
...toolData,
|
|
48843
48851
|
toolTitle: toolData.toolTitle ?? existingExecuting?.data.toolTitle ?? executingTool?.toolTitle,
|
|
48852
|
+
toolExplanation: toolData.toolExplanation ?? existingExecuting?.data.toolExplanation ?? executingTool?.toolExplanation,
|
|
48844
48853
|
parameters: toolData.parameters || executingTool?.parameters
|
|
48845
48854
|
}
|
|
48846
48855
|
};
|
|
@@ -51125,6 +51134,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
51125
51134
|
integratedToolType: data.integratedToolType || "",
|
|
51126
51135
|
toolFunction: data.toolFunction || "",
|
|
51127
51136
|
toolTitle: typeof data.title === "string" ? data.title : void 0,
|
|
51137
|
+
toolExplanation: typeof data.toolExplanation === "string" ? data.toolExplanation : void 0,
|
|
51128
51138
|
parameters: data.parameters,
|
|
51129
51139
|
toolExecutionRequestId: data.toolExecutionRequestId
|
|
51130
51140
|
}
|
|
@@ -51423,6 +51433,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
51423
51433
|
integratedToolType: segment.data.integratedToolType,
|
|
51424
51434
|
toolFunction: segment.data.toolFunction,
|
|
51425
51435
|
toolTitle: segment.data.toolTitle,
|
|
51436
|
+
toolExplanation: segment.data.toolExplanation,
|
|
51426
51437
|
parameters: segment.data.parameters
|
|
51427
51438
|
});
|
|
51428
51439
|
hasIncompleteState = true;
|
|
@@ -51579,6 +51590,7 @@ function applyToolExecutionToMessages(prev, segment) {
|
|
|
51579
51590
|
data: {
|
|
51580
51591
|
...toolData,
|
|
51581
51592
|
toolTitle: toolData.toolTitle ?? seg.data.toolTitle,
|
|
51593
|
+
toolExplanation: toolData.toolExplanation ?? seg.data.toolExplanation,
|
|
51582
51594
|
parameters: toolData.parameters || seg.data.parameters
|
|
51583
51595
|
}
|
|
51584
51596
|
};
|
|
@@ -53007,7 +53019,7 @@ function useChatDialogManager({
|
|
|
53007
53019
|
|
|
53008
53020
|
// src/components/chat/embeddable-chat.tsx
|
|
53009
53021
|
init_next_navigation();
|
|
53010
|
-
import { Fragment as
|
|
53022
|
+
import { Fragment as Fragment82, jsx as jsx364, jsxs as jsxs290 } from "react/jsx-runtime";
|
|
53011
53023
|
var DRAWER_DEFAULT_WIDTH_RATIO = 0.5;
|
|
53012
53024
|
var DRAWER_WIDTH_KEY = "mingo-chat-width-v3";
|
|
53013
53025
|
var DRAWER_DEFAULT_WIDTH_PX = 750;
|
|
@@ -53179,7 +53191,7 @@ function SourceChip({
|
|
|
53179
53191
|
);
|
|
53180
53192
|
}
|
|
53181
53193
|
const displayName = src.name || formatRelativePath(src.path);
|
|
53182
|
-
const chipBody = (label) => /* @__PURE__ */ jsxs290(
|
|
53194
|
+
const chipBody = (label) => /* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
53183
53195
|
icon,
|
|
53184
53196
|
/* @__PURE__ */ jsxs290("span", { className: "truncate max-w-[160px]", children: [
|
|
53185
53197
|
"[",
|
|
@@ -53986,7 +53998,7 @@ function EmbeddableChatInner({
|
|
|
53986
53998
|
// renders in the rail below); the chat block is untouched.
|
|
53987
53999
|
// Back is a full-height leading cell, matching the other
|
|
53988
54000
|
// header cells (not a small inline chevron).
|
|
53989
|
-
/* @__PURE__ */ jsxs290(
|
|
54001
|
+
/* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
53990
54002
|
/* @__PURE__ */ jsx364(
|
|
53991
54003
|
ChatHeaderIconButton,
|
|
53992
54004
|
{
|
|
@@ -54003,7 +54015,7 @@ function EmbeddableChatInner({
|
|
|
54003
54015
|
// search + archive controls. When search is open the
|
|
54004
54016
|
// inline field takes over the title area in place
|
|
54005
54017
|
// (Figma 116:51217) and the magnifier toggle is hidden.
|
|
54006
|
-
/* @__PURE__ */ jsxs290(
|
|
54018
|
+
/* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
54007
54019
|
railSearchOpen && mingoCaps.onSearchChange ? /* @__PURE__ */ jsx364(
|
|
54008
54020
|
ChatHeaderSearchField,
|
|
54009
54021
|
{
|
|
@@ -54011,7 +54023,7 @@ function EmbeddableChatInner({
|
|
|
54011
54023
|
onSearchChange: mingoCaps.onSearchChange,
|
|
54012
54024
|
onCollapse: () => setRailSearchOpen(false)
|
|
54013
54025
|
}
|
|
54014
|
-
) : /* @__PURE__ */ jsxs290(
|
|
54026
|
+
) : /* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
54015
54027
|
/* @__PURE__ */ jsx364("div", { className: "flex min-w-0 flex-1 items-center px-[var(--spacing-system-mf)]", children: /* @__PURE__ */ jsx364("span", { className: "min-w-0 flex-1 truncate text-h3 text-ods-text-primary", children: "Current Chats" }) }),
|
|
54016
54028
|
mingoCaps.onSearchChange && /* @__PURE__ */ jsx364(
|
|
54017
54029
|
ChatHeaderIconButton,
|
|
@@ -54157,7 +54169,7 @@ function EmbeddableChatInner({
|
|
|
54157
54169
|
onRetry: reloadDialogs
|
|
54158
54170
|
}
|
|
54159
54171
|
)
|
|
54160
|
-
) : /* @__PURE__ */ jsxs290(
|
|
54172
|
+
) : /* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
54161
54173
|
/* @__PURE__ */ jsx364(
|
|
54162
54174
|
"div",
|
|
54163
54175
|
{
|
|
@@ -54403,7 +54415,7 @@ function EmbeddableChatInner({
|
|
|
54403
54415
|
]
|
|
54404
54416
|
}
|
|
54405
54417
|
) }) });
|
|
54406
|
-
return /* @__PURE__ */ jsxs290(
|
|
54418
|
+
return /* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
54407
54419
|
showInternalTrigger && !shellLess && /* @__PURE__ */ jsx364(
|
|
54408
54420
|
"div",
|
|
54409
54421
|
{
|
|
@@ -55423,4 +55435,4 @@ export {
|
|
|
55423
55435
|
LogsList,
|
|
55424
55436
|
assets
|
|
55425
55437
|
};
|
|
55426
|
-
//# sourceMappingURL=chunk-
|
|
55438
|
+
//# sourceMappingURL=chunk-JFDSGGAK.js.map
|