@flamingo-stack/openframe-frontend-core 0.0.479 → 0.0.480
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-LJWIWLD3.cjs → chunk-2KQSGCXE.cjs} +9 -9
- package/dist/{chunk-LJWIWLD3.cjs.map → chunk-2KQSGCXE.cjs.map} +1 -1
- package/dist/{chunk-WTH5WXOH.js → chunk-3KUF3WZA.js} +2 -2
- package/dist/{chunk-UTCQZ4IP.js → chunk-3RNTIJHB.js} +2 -2
- package/dist/{chunk-I7S4ZLHX.cjs → chunk-3U63ZV3X.cjs} +812 -793
- package/dist/chunk-3U63ZV3X.cjs.map +1 -0
- package/dist/{chunk-VWHYXVRX.js → chunk-DERJNBZP.js} +2 -2
- package/dist/{chunk-AQG6DSFV.js → chunk-DHKIQLI2.js} +2 -2
- package/dist/{chunk-FMSKP2SZ.cjs → chunk-E7VFCW5W.cjs} +11 -11
- package/dist/{chunk-FMSKP2SZ.cjs.map → chunk-E7VFCW5W.cjs.map} +1 -1
- package/dist/{chunk-LZ64BSR5.cjs → chunk-JF24RU23.cjs} +7 -7
- package/dist/{chunk-LZ64BSR5.cjs.map → chunk-JF24RU23.cjs.map} +1 -1
- package/dist/{chunk-THGA7UZZ.js → chunk-JFDSGGAK.js} +231 -212
- package/dist/chunk-JFDSGGAK.js.map +1 -0
- package/dist/{chunk-KXUP44QJ.cjs → chunk-LLFHPCSN.cjs} +31 -31
- package/dist/{chunk-KXUP44QJ.cjs.map → chunk-LLFHPCSN.cjs.map} +1 -1
- package/dist/{chunk-PZYIEVIV.cjs → chunk-MHRVEZCV.cjs} +59 -59
- package/dist/{chunk-PZYIEVIV.cjs.map → chunk-MHRVEZCV.cjs.map} +1 -1
- package/dist/{chunk-MKLZ6SRA.js → chunk-OW55OP63.js} +4 -4
- package/dist/{chunk-XU7AXADL.cjs → chunk-P4TRELZZ.cjs} +26 -26
- package/dist/{chunk-XU7AXADL.cjs.map → chunk-P4TRELZZ.cjs.map} +1 -1
- package/dist/{chunk-M6NVQVZQ.cjs → chunk-Q2M7H2EB.cjs} +62 -62
- package/dist/{chunk-M6NVQVZQ.cjs.map → chunk-Q2M7H2EB.cjs.map} +1 -1
- package/dist/{chunk-RYVF3SQE.js → chunk-QPLNXVEQ.js} +4 -4
- package/dist/{chunk-7URE6XMT.js → chunk-R7UD3W7H.js} +2 -2
- package/dist/{chunk-46C2MVQG.cjs → chunk-S2ESE7RO.cjs} +15 -15
- package/dist/{chunk-46C2MVQG.cjs.map → chunk-S2ESE7RO.cjs.map} +1 -1
- package/dist/{chunk-ECF7DKWA.js → chunk-U77JKQT4.js} +2 -2
- package/dist/{chunk-MXXGD6HW.cjs → chunk-VYPTIGJO.cjs} +37 -37
- package/dist/{chunk-MXXGD6HW.cjs.map → chunk-VYPTIGJO.cjs.map} +1 -1
- package/dist/{chunk-6MQIGRAR.cjs → chunk-VYX4RQMO.cjs} +26 -26
- package/dist/{chunk-6MQIGRAR.cjs.map → chunk-VYX4RQMO.cjs.map} +1 -1
- package/dist/{chunk-5VGG3W43.js → chunk-WFRG5KRR.js} +4 -4
- package/dist/{chunk-JLRAUI7V.cjs → chunk-XMP7D4NB.cjs} +5 -5
- package/dist/{chunk-JLRAUI7V.cjs.map → chunk-XMP7D4NB.cjs.map} +1 -1
- package/dist/{chunk-A56QSYYE.js → chunk-YHUZ4WSI.js} +4 -4
- package/dist/{chunk-4PIISCMH.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 +97 -54
- 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-I7S4ZLHX.cjs.map +0 -1
- package/dist/chunk-THGA7UZZ.js.map +0 -1
- /package/dist/{chunk-WTH5WXOH.js.map → chunk-3KUF3WZA.js.map} +0 -0
- /package/dist/{chunk-UTCQZ4IP.js.map → chunk-3RNTIJHB.js.map} +0 -0
- /package/dist/{chunk-VWHYXVRX.js.map → chunk-DERJNBZP.js.map} +0 -0
- /package/dist/{chunk-AQG6DSFV.js.map → chunk-DHKIQLI2.js.map} +0 -0
- /package/dist/{chunk-MKLZ6SRA.js.map → chunk-OW55OP63.js.map} +0 -0
- /package/dist/{chunk-RYVF3SQE.js.map → chunk-QPLNXVEQ.js.map} +0 -0
- /package/dist/{chunk-7URE6XMT.js.map → chunk-R7UD3W7H.js.map} +0 -0
- /package/dist/{chunk-ECF7DKWA.js.map → chunk-U77JKQT4.js.map} +0 -0
- /package/dist/{chunk-5VGG3W43.js.map → chunk-WFRG5KRR.js.map} +0 -0
- /package/dist/{chunk-A56QSYYE.js.map → chunk-YHUZ4WSI.js.map} +0 -0
- /package/dist/{chunk-4PIISCMH.js.map → chunk-Z7IFLZ4V.js.map} +0 -0
|
@@ -4899,23 +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 = message2.toolTitle;
|
|
4913
|
+
const previewText = variant === "client" ? message2.toolExplanation?.trim() : message2.toolTitle?.trim();
|
|
4913
4914
|
const argEntries = useMemo5(() => {
|
|
4914
4915
|
if (!message2.parameters || typeof message2.parameters !== "object") return [];
|
|
4915
|
-
|
|
4916
|
-
([
|
|
4916
|
+
const entries = Object.entries(message2.parameters).filter(
|
|
4917
|
+
([, v]) => v !== null && v !== void 0 && v !== ""
|
|
4917
4918
|
);
|
|
4918
|
-
|
|
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]);
|
|
4919
4926
|
const hasResult = isExecuted && typeof message2.result === "string" && message2.result.length > 0;
|
|
4920
4927
|
const hasBody = argEntries.length > 0 || hasResult || isExecuting;
|
|
4921
4928
|
const renderStatusIcon = () => {
|
|
@@ -4924,7 +4931,22 @@ var ToolExecutionDisplay = forwardRef10(
|
|
|
4924
4931
|
if (isExecuted && message2.success === false) return /* @__PURE__ */ jsx23(XmarkCircleIcon, { className: "w-4 h-4 text-ods-error" });
|
|
4925
4932
|
return null;
|
|
4926
4933
|
};
|
|
4927
|
-
|
|
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(
|
|
4928
4950
|
"div",
|
|
4929
4951
|
{
|
|
4930
4952
|
ref,
|
|
@@ -4935,28 +4957,18 @@ var ToolExecutionDisplay = forwardRef10(
|
|
|
4935
4957
|
className
|
|
4936
4958
|
),
|
|
4937
4959
|
...props,
|
|
4938
|
-
children:
|
|
4939
|
-
|
|
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(
|
|
4940
4966
|
"button",
|
|
4941
4967
|
{
|
|
4942
4968
|
type: "button",
|
|
4943
4969
|
className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
|
|
4944
4970
|
onClick: () => setExpanded((prev) => !prev),
|
|
4945
|
-
children:
|
|
4946
|
-
!isClient && /* @__PURE__ */ jsx23("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx23(ToolIcon, { toolType: integratedToolType, size: 16 }) }),
|
|
4947
|
-
/* @__PURE__ */ jsx23(
|
|
4948
|
-
"div",
|
|
4949
|
-
{
|
|
4950
|
-
className: cn(
|
|
4951
|
-
"flex-1 min-w-0 text-h6",
|
|
4952
|
-
expanded ? "text-ods-text-primary whitespace-pre-wrap break-all" : "text-ods-text-secondary line-clamp-2 max-h-10 break-all"
|
|
4953
|
-
),
|
|
4954
|
-
children: previewText
|
|
4955
|
-
}
|
|
4956
|
-
),
|
|
4957
|
-
/* @__PURE__ */ jsx23("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: renderStatusIcon() }),
|
|
4958
|
-
/* @__PURE__ */ jsx23("div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ jsx23(ExpandChevron, { expanded }) })
|
|
4959
|
-
]
|
|
4971
|
+
children: headerContent
|
|
4960
4972
|
}
|
|
4961
4973
|
),
|
|
4962
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: [
|
|
@@ -4982,7 +4994,7 @@ var ToolExecutionDisplay = forwardRef10(
|
|
|
4982
4994
|
}
|
|
4983
4995
|
)
|
|
4984
4996
|
] }) }) })
|
|
4985
|
-
]
|
|
4997
|
+
] })
|
|
4986
4998
|
}
|
|
4987
4999
|
);
|
|
4988
5000
|
}
|
|
@@ -5076,13 +5088,13 @@ function BlockCard(_props) {
|
|
|
5076
5088
|
|
|
5077
5089
|
// src/components/chat/chat-context-picker.tsx
|
|
5078
5090
|
import { QueryErrorResetBoundary } from "@tanstack/react-query";
|
|
5079
|
-
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";
|
|
5080
5092
|
init_cn();
|
|
5081
5093
|
|
|
5082
5094
|
// src/components/chat/context-items-list.tsx
|
|
5083
5095
|
import * as React9 from "react";
|
|
5084
5096
|
init_cn();
|
|
5085
|
-
import { Fragment as
|
|
5097
|
+
import { Fragment as Fragment5, jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
5086
5098
|
var itemKey = (i) => `${i.type}:${i.id}`;
|
|
5087
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";
|
|
5088
5100
|
var CONTEXT_ICON_CLASS = "flex size-4 shrink-0 items-center justify-center text-ods-text-secondary md:size-6";
|
|
@@ -5118,7 +5130,7 @@ function ContextMenuRow({
|
|
|
5118
5130
|
);
|
|
5119
5131
|
}
|
|
5120
5132
|
function ContextItemsSkeleton({ count }) {
|
|
5121
|
-
return /* @__PURE__ */ jsx24(
|
|
5133
|
+
return /* @__PURE__ */ jsx24(Fragment5, { children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ jsx24(
|
|
5122
5134
|
"div",
|
|
5123
5135
|
{
|
|
5124
5136
|
className: "flex items-center border-b border-ods-border bg-ods-bg py-3 pl-4 pr-2 last:border-b-0",
|
|
@@ -5201,7 +5213,7 @@ var ContextErrorBoundary = class extends React9.Component {
|
|
|
5201
5213
|
};
|
|
5202
5214
|
|
|
5203
5215
|
// src/components/chat/chat-context-picker.tsx
|
|
5204
|
-
import { Fragment as
|
|
5216
|
+
import { Fragment as Fragment7, jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5205
5217
|
var CHAT_CONTEXT_ITEMS_DEFAULT_MAX = 10;
|
|
5206
5218
|
var ITEMS_SKELETON_ROWS = 10;
|
|
5207
5219
|
var SEARCH_DEBOUNCE_MS = 300;
|
|
@@ -5387,7 +5399,7 @@ function ChatContextPicker({
|
|
|
5387
5399
|
] })
|
|
5388
5400
|
) : activeType ? (
|
|
5389
5401
|
/* Level 2 — Back + search + HOST-rendered items (Figma 31:29102). */
|
|
5390
|
-
/* @__PURE__ */ jsxs21(
|
|
5402
|
+
/* @__PURE__ */ jsxs21(Fragment7, { children: [
|
|
5391
5403
|
/* @__PURE__ */ jsxs21("button", { type: "button", onClick: backToTypes, className: cn(CONTEXT_BACK_CLASS, "sticky top-0 z-10"), children: [
|
|
5392
5404
|
/* @__PURE__ */ jsx25(Chevron02LeftIcon, { size: 24, className: "shrink-0" }),
|
|
5393
5405
|
/* @__PURE__ */ jsx25("span", { className: "truncate", children: "Back" })
|
|
@@ -5458,7 +5470,7 @@ function ChatContextChipStrip({
|
|
|
5458
5470
|
// uppercase label, 16px lead icon + xmark-circle remove. Wraps to new rows.
|
|
5459
5471
|
/* @__PURE__ */ jsx25("div", { className: cn("flex flex-wrap content-center items-center gap-2", className), children: items.map((item) => {
|
|
5460
5472
|
const hostNode = renderItem?.(item);
|
|
5461
|
-
if (hostNode != null) return /* @__PURE__ */ jsx25(
|
|
5473
|
+
if (hostNode != null) return /* @__PURE__ */ jsx25(Fragment6, { children: hostNode }, itemKey2(item));
|
|
5462
5474
|
return /* @__PURE__ */ jsxs21(
|
|
5463
5475
|
"div",
|
|
5464
5476
|
{
|
|
@@ -5495,7 +5507,7 @@ function ChatContextChipStrip({
|
|
|
5495
5507
|
}
|
|
5496
5508
|
|
|
5497
5509
|
// src/components/chat/chat-message-enhanced.tsx
|
|
5498
|
-
import { Fragment as
|
|
5510
|
+
import { Fragment as Fragment8, jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
5499
5511
|
var MENTION_MARKER_REGEX = /(^|[^\w@])@[a-z]+:([A-Za-z0-9_.+/=-]*[A-Za-z0-9_+/=])/g;
|
|
5500
5512
|
var CARD_MARKER_REGEX = /\[card:\/\/([a-zA-Z0-9_-]+):([a-zA-Z0-9_-]+)[\])]/g;
|
|
5501
5513
|
function formatMessageTimestamp(timestamp) {
|
|
@@ -5627,7 +5639,7 @@ var ChatMessageEnhanced = forwardRef11(
|
|
|
5627
5639
|
const marker = sepIdx === -1 ? stripped : stripped.slice(0, sepIdx);
|
|
5628
5640
|
const id = sepIdx === -1 ? "" : stripped.slice(sepIdx + 1);
|
|
5629
5641
|
const node = renderMention?.({ marker, id });
|
|
5630
|
-
if (node != null) return /* @__PURE__ */ jsx26(
|
|
5642
|
+
if (node != null) return /* @__PURE__ */ jsx26(Fragment8, { children: node });
|
|
5631
5643
|
return /* @__PURE__ */ jsx26("span", { className: "text-ods-text-secondary opacity-60", children });
|
|
5632
5644
|
}
|
|
5633
5645
|
if (typeof href === "string" && href.startsWith("card://")) {
|
|
@@ -5741,7 +5753,8 @@ var ChatMessageEnhanced = forwardRef11(
|
|
|
5741
5753
|
ToolExecutionDisplay,
|
|
5742
5754
|
{
|
|
5743
5755
|
message: segment.data,
|
|
5744
|
-
assistantType
|
|
5756
|
+
assistantType,
|
|
5757
|
+
variant: approvalVariant
|
|
5745
5758
|
},
|
|
5746
5759
|
index
|
|
5747
5760
|
);
|
|
@@ -6517,7 +6530,7 @@ function EntityIcon({
|
|
|
6517
6530
|
}
|
|
6518
6531
|
|
|
6519
6532
|
// src/components/chat/quick-action-chip.tsx
|
|
6520
|
-
import { Fragment as
|
|
6533
|
+
import { Fragment as Fragment9, jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
6521
6534
|
var AGENT_ACCENTS = { fae: "pink", mingo: "cyan" };
|
|
6522
6535
|
function getAgentAccent(slug) {
|
|
6523
6536
|
return slug === "fae" || slug === "mingo" ? AGENT_ACCENTS[slug] : void 0;
|
|
@@ -6552,7 +6565,7 @@ function renderQuickActionIcon(icon) {
|
|
|
6552
6565
|
}
|
|
6553
6566
|
function composeChipLabel(label, lozenge) {
|
|
6554
6567
|
if (!lozenge) return label;
|
|
6555
|
-
return /* @__PURE__ */ jsxs27(
|
|
6568
|
+
return /* @__PURE__ */ jsxs27(Fragment9, { children: [
|
|
6556
6569
|
/* @__PURE__ */ jsx33(
|
|
6557
6570
|
"span",
|
|
6558
6571
|
{
|
|
@@ -6583,7 +6596,7 @@ function QuickActionChipSkeleton({ labelCh = 16, icon = true, lozenge = false, s
|
|
|
6583
6596
|
size: size2,
|
|
6584
6597
|
className,
|
|
6585
6598
|
icon: icon ? /* @__PURE__ */ jsx33(ChipSkelBar, { className: size2 === "large" ? "block size-5" : "block size-4" }) : void 0,
|
|
6586
|
-
label: /* @__PURE__ */ jsxs27(
|
|
6599
|
+
label: /* @__PURE__ */ jsxs27(Fragment9, { children: [
|
|
6587
6600
|
lozenge && /* @__PURE__ */ jsx33(ChipSkelBar, { className: "mr-2 inline-block h-[16px] w-[26px] translate-y-[2px]" }),
|
|
6588
6601
|
/* @__PURE__ */ jsx33(ChipSkelBar, { className: "inline-block h-[0.9em] translate-y-[0.08em]", style: { width: `${labelCh}ch` } })
|
|
6589
6602
|
] })
|
|
@@ -6667,7 +6680,7 @@ import * as React13 from "react";
|
|
|
6667
6680
|
// src/components/ui/marquee-wall.tsx
|
|
6668
6681
|
init_cn();
|
|
6669
6682
|
import * as React12 from "react";
|
|
6670
|
-
import { Fragment as
|
|
6683
|
+
import { Fragment as Fragment10, jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
6671
6684
|
function normalizeFades(fade) {
|
|
6672
6685
|
return fade ? Array.isArray(fade) ? fade : [fade] : [];
|
|
6673
6686
|
}
|
|
@@ -6711,7 +6724,7 @@ function MarqueeWallFades({
|
|
|
6711
6724
|
fadeColor = "var(--color-bg)",
|
|
6712
6725
|
fadeSize
|
|
6713
6726
|
}) {
|
|
6714
|
-
return /* @__PURE__ */ jsx34(
|
|
6727
|
+
return /* @__PURE__ */ jsx34(Fragment10, { children: normalizeFades(fade).map((edge) => {
|
|
6715
6728
|
const size2 = (typeof fadeSize === "object" && fadeSize !== null ? fadeSize[edge] : fadeSize) ?? DEFAULT_FADE_SIZE[edge];
|
|
6716
6729
|
const px = typeof size2 === "number" ? `${size2}px` : size2;
|
|
6717
6730
|
const isY = edge === "top" || edge === "bottom";
|
|
@@ -7811,7 +7824,7 @@ function MingoChatHistory({
|
|
|
7811
7824
|
|
|
7812
7825
|
// src/components/chat/mingo-welcome.tsx
|
|
7813
7826
|
init_button2();
|
|
7814
|
-
import { Fragment as
|
|
7827
|
+
import { Fragment as Fragment11, jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
7815
7828
|
var DEFAULT_SUBTITLE = "Ready to help with your technical tasks. What can I do for you?";
|
|
7816
7829
|
var DEFAULT_PROMO = {
|
|
7817
7830
|
title: "New to OpenFrame?",
|
|
@@ -7884,7 +7897,7 @@ function MingoWelcome({
|
|
|
7884
7897
|
children: "Try again"
|
|
7885
7898
|
}
|
|
7886
7899
|
)
|
|
7887
|
-
] }) : 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: [
|
|
7888
7901
|
/* @__PURE__ */ jsx43(
|
|
7889
7902
|
"div",
|
|
7890
7903
|
{
|
|
@@ -8442,7 +8455,7 @@ var ModalFooter = React23.forwardRef(
|
|
|
8442
8455
|
ModalFooter.displayName = "ModalV2Footer";
|
|
8443
8456
|
|
|
8444
8457
|
// src/components/chat/mingo-chat-modals.tsx
|
|
8445
|
-
import { Fragment as
|
|
8458
|
+
import { Fragment as Fragment12, jsx as jsx50, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
8446
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";
|
|
8447
8460
|
var cancelBtn = cn(
|
|
8448
8461
|
footerBtn,
|
|
@@ -8533,7 +8546,7 @@ function ChatDialogModals({
|
|
|
8533
8546
|
setRestoreTarget,
|
|
8534
8547
|
onConfirmRestore
|
|
8535
8548
|
}) {
|
|
8536
|
-
return /* @__PURE__ */ jsxs41(
|
|
8549
|
+
return /* @__PURE__ */ jsxs41(Fragment12, { children: [
|
|
8537
8550
|
/* @__PURE__ */ jsx50(
|
|
8538
8551
|
RenameChatModal,
|
|
8539
8552
|
{
|
|
@@ -8757,7 +8770,7 @@ function ChatPanelHeaderMobile({
|
|
|
8757
8770
|
}
|
|
8758
8771
|
|
|
8759
8772
|
// src/components/chat/chat-panel-header.tsx
|
|
8760
|
-
import { Fragment as
|
|
8773
|
+
import { Fragment as Fragment13, jsx as jsx54, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
8761
8774
|
function ChatPanelHeader({
|
|
8762
8775
|
showBack = false,
|
|
8763
8776
|
title,
|
|
@@ -8782,7 +8795,7 @@ function ChatPanelHeader({
|
|
|
8782
8795
|
onRename && { id: "rename", label: "Rename chat", onClick: onRename },
|
|
8783
8796
|
onArchive && { id: "archive", label: "Archive chat", onClick: onArchive }
|
|
8784
8797
|
].filter(Boolean);
|
|
8785
|
-
return /* @__PURE__ */ jsxs44(
|
|
8798
|
+
return /* @__PURE__ */ jsxs44(Fragment13, { children: [
|
|
8786
8799
|
!compact && /* @__PURE__ */ jsx54(
|
|
8787
8800
|
ChatPanelHeaderMobile,
|
|
8788
8801
|
{
|
|
@@ -8941,7 +8954,7 @@ function stripChatAttachmentMarkdown(text) {
|
|
|
8941
8954
|
}
|
|
8942
8955
|
|
|
8943
8956
|
// src/components/chat/chat-attachment-bar.tsx
|
|
8944
|
-
import { Fragment as
|
|
8957
|
+
import { Fragment as Fragment14, jsx as jsx55, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
8945
8958
|
var CHAT_ATTACHMENT_MIME_TYPES = [
|
|
8946
8959
|
"image/jpeg",
|
|
8947
8960
|
"image/png",
|
|
@@ -8974,7 +8987,7 @@ function ChatAttachmentAddButton({
|
|
|
8974
8987
|
if (!canAddMore) return;
|
|
8975
8988
|
fileInputRef.current?.click();
|
|
8976
8989
|
};
|
|
8977
|
-
return /* @__PURE__ */ jsxs45(
|
|
8990
|
+
return /* @__PURE__ */ jsxs45(Fragment14, { children: [
|
|
8978
8991
|
/* @__PURE__ */ jsx55(
|
|
8979
8992
|
"input",
|
|
8980
8993
|
{
|
|
@@ -9564,7 +9577,7 @@ function ChatComposer({
|
|
|
9564
9577
|
}
|
|
9565
9578
|
|
|
9566
9579
|
// src/components/chat/chat-archive-page.tsx
|
|
9567
|
-
import { Fragment as
|
|
9580
|
+
import { Fragment as Fragment15, jsx as jsx60, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
9568
9581
|
function ChatArchivePage(props) {
|
|
9569
9582
|
const {
|
|
9570
9583
|
dialogs,
|
|
@@ -9574,7 +9587,7 @@ function ChatArchivePage(props) {
|
|
|
9574
9587
|
hasMore = false,
|
|
9575
9588
|
onLoadMore
|
|
9576
9589
|
} = props;
|
|
9577
|
-
return /* @__PURE__ */ jsxs49(
|
|
9590
|
+
return /* @__PURE__ */ jsxs49(Fragment15, { children: [
|
|
9578
9591
|
!props.embedded && /* @__PURE__ */ jsx60(
|
|
9579
9592
|
ChatPanelHeaderMobile,
|
|
9580
9593
|
{
|
|
@@ -9694,7 +9707,7 @@ var ChatSidebarSkeleton = React30.forwardRef(
|
|
|
9694
9707
|
ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
|
|
9695
9708
|
|
|
9696
9709
|
// src/components/chat/chat-sidebar.tsx
|
|
9697
|
-
import { Fragment as
|
|
9710
|
+
import { Fragment as Fragment16, jsx as jsx62, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
9698
9711
|
var DialogListItem = forwardRef20(
|
|
9699
9712
|
({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
|
|
9700
9713
|
const handleClick = (e) => {
|
|
@@ -9823,7 +9836,7 @@ var ChatSidebar = forwardRef20(
|
|
|
9823
9836
|
},
|
|
9824
9837
|
dialog.id
|
|
9825
9838
|
)),
|
|
9826
|
-
hasNextPage && /* @__PURE__ */ jsx62("div", { ref: loadMoreRef, children: isFetchingNextPage && /* @__PURE__ */ jsxs51(
|
|
9839
|
+
hasNextPage && /* @__PURE__ */ jsx62("div", { ref: loadMoreRef, children: isFetchingNextPage && /* @__PURE__ */ jsxs51(Fragment16, { children: [
|
|
9827
9840
|
/* @__PURE__ */ jsx62(DialogListItemSkeleton, {}),
|
|
9828
9841
|
/* @__PURE__ */ jsx62(DialogListItemSkeleton, {}),
|
|
9829
9842
|
/* @__PURE__ */ jsx62(DialogListItemSkeleton, {})
|
|
@@ -10704,7 +10717,7 @@ function PlatformBadge({
|
|
|
10704
10717
|
}
|
|
10705
10718
|
|
|
10706
10719
|
// src/components/chat/entity-cards/admin-content-card.tsx
|
|
10707
|
-
import { Fragment as
|
|
10720
|
+
import { Fragment as Fragment17, jsx as jsx73, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
10708
10721
|
function AdminContentCard({
|
|
10709
10722
|
imageUrl,
|
|
10710
10723
|
placeholderUrl,
|
|
@@ -10738,7 +10751,7 @@ function AdminContentCard({
|
|
|
10738
10751
|
{
|
|
10739
10752
|
className: "relative aspect-[3/2] w-full overflow-hidden shrink-0",
|
|
10740
10753
|
style: { backgroundColor: imageBgColor },
|
|
10741
|
-
children: displayUrl ? /* @__PURE__ */ jsxs57(
|
|
10754
|
+
children: displayUrl ? /* @__PURE__ */ jsxs57(Fragment17, { children: [
|
|
10742
10755
|
!imageLoaded && /* @__PURE__ */ jsx73("div", { className: "absolute inset-0 animate-pulse bg-ods-border/20" }),
|
|
10743
10756
|
/* @__PURE__ */ jsx73(
|
|
10744
10757
|
next_image_default,
|
|
@@ -10798,7 +10811,7 @@ function getProxiedImageUrl2(imageUrl) {
|
|
|
10798
10811
|
}
|
|
10799
10812
|
|
|
10800
10813
|
// src/components/chat/entity-cards/what-i-shipped-card.tsx
|
|
10801
|
-
import { Fragment as
|
|
10814
|
+
import { Fragment as Fragment18, jsx as jsx74, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
10802
10815
|
var STATUS_BADGE_CLASS = {
|
|
10803
10816
|
published: "bg-ods-success-secondary text-ods-success",
|
|
10804
10817
|
draft: "bg-ods-warning-secondary text-ods-warning",
|
|
@@ -10820,7 +10833,7 @@ function WhatIShippedCard({ entry, placeholderUrl, actions, anchorProps, classNa
|
|
|
10820
10833
|
children: entry.status
|
|
10821
10834
|
}
|
|
10822
10835
|
) : null,
|
|
10823
|
-
meta: /* @__PURE__ */ jsxs58(
|
|
10836
|
+
meta: /* @__PURE__ */ jsxs58(Fragment18, { children: [
|
|
10824
10837
|
/* @__PURE__ */ jsxs58("span", { className: "flex items-center gap-2 min-w-0", children: [
|
|
10825
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,
|
|
10826
10839
|
/* @__PURE__ */ jsx74("span", { className: "truncate", children: entry.author?.full_name ?? "" })
|
|
@@ -11539,7 +11552,7 @@ init_cn();
|
|
|
11539
11552
|
import { useMemo as useMemo17, useRef as useRef19, useState as useState28, useEffect as useEffect23 } from "react";
|
|
11540
11553
|
|
|
11541
11554
|
// src/components/features/video-ratio-tabs.tsx
|
|
11542
|
-
import { Fragment as
|
|
11555
|
+
import { Fragment as Fragment19, jsx as jsx78, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
11543
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";
|
|
11544
11557
|
var RATIO_GRID_CLASS = {
|
|
11545
11558
|
portrait: "grid grid-cols-2 md:grid-cols-3 gap-4",
|
|
@@ -11564,7 +11577,7 @@ function RatioTabs({
|
|
|
11564
11577
|
const activeTabs = RATIO_TAB_CONFIG.filter((t) => groups[t.key].count > 0);
|
|
11565
11578
|
if (activeTabs.length <= 1) {
|
|
11566
11579
|
const active = activeTabs[0];
|
|
11567
|
-
return active ? /* @__PURE__ */ jsx78(
|
|
11580
|
+
return active ? /* @__PURE__ */ jsx78(Fragment19, { children: groups[active.key].render() }) : null;
|
|
11568
11581
|
}
|
|
11569
11582
|
const firstTab = defaultTab && groups[defaultTab].count > 0 ? defaultTab : activeTabs[0].key;
|
|
11570
11583
|
return /* @__PURE__ */ jsxs60(Tabs, { defaultValue: firstTab, className: `w-full ${className}`, children: [
|
|
@@ -11638,7 +11651,7 @@ import React37, { useCallback as useCallback14, useEffect as useEffect22, useMem
|
|
|
11638
11651
|
init_button2();
|
|
11639
11652
|
|
|
11640
11653
|
// src/components/layout/page-heading.tsx
|
|
11641
|
-
import { Fragment as
|
|
11654
|
+
import { Fragment as Fragment20, jsx as jsx79, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
11642
11655
|
var PAGE_HEADING_CLASS = "text-h1 text-ods-text-primary";
|
|
11643
11656
|
var SECTION_HEADING_CLASS = "text-h2 text-ods-text-primary";
|
|
11644
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";
|
|
@@ -11652,14 +11665,14 @@ function PageHeading({
|
|
|
11652
11665
|
const headingClass = className ? `${PAGE_HEADING_CLASS} ${className}` : PAGE_HEADING_CLASS;
|
|
11653
11666
|
const descClass = descriptionClassName ? `${DESCRIPTION_CLASS} ${descriptionClassName}` : DESCRIPTION_CLASS;
|
|
11654
11667
|
const hasDescription = description != null && description !== "" && typeof description !== "boolean";
|
|
11655
|
-
return /* @__PURE__ */ jsxs61(
|
|
11668
|
+
return /* @__PURE__ */ jsxs61(Fragment20, { children: [
|
|
11656
11669
|
/* @__PURE__ */ jsx79(Tag2, { className: headingClass, children }),
|
|
11657
11670
|
hasDescription && /* @__PURE__ */ jsx79("p", { className: descClass, children: description })
|
|
11658
11671
|
] });
|
|
11659
11672
|
}
|
|
11660
11673
|
|
|
11661
11674
|
// src/components/features/cards-strip.tsx
|
|
11662
|
-
import { Fragment as
|
|
11675
|
+
import { Fragment as Fragment21, jsx as jsx80, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
11663
11676
|
var TRACK_GAP_PX = 16;
|
|
11664
11677
|
var CHEVRON_SUPPRESS_MS = 4e3;
|
|
11665
11678
|
var USER_SCROLL_SUPPRESS_MS = 3e3;
|
|
@@ -12027,7 +12040,7 @@ function CardsStrip(props) {
|
|
|
12027
12040
|
) })
|
|
12028
12041
|
}
|
|
12029
12042
|
),
|
|
12030
|
-
showChevrons && overflows && /* @__PURE__ */ jsxs62(
|
|
12043
|
+
showChevrons && overflows && /* @__PURE__ */ jsxs62(Fragment21, { children: [
|
|
12031
12044
|
/* @__PURE__ */ jsx80(
|
|
12032
12045
|
Button,
|
|
12033
12046
|
{
|
|
@@ -12087,7 +12100,7 @@ function UserDisplay({ name, avatarUrl, subtitle, size: size2 = 32, shape = "squ
|
|
|
12087
12100
|
}
|
|
12088
12101
|
|
|
12089
12102
|
// src/components/features/video-bites-strip.tsx
|
|
12090
|
-
import { Fragment as
|
|
12103
|
+
import { Fragment as Fragment22, jsx as jsx82, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
12091
12104
|
function VideoBitesStrip({
|
|
12092
12105
|
bites,
|
|
12093
12106
|
title = DEFAULT_VIDEO_BITES_TITLE,
|
|
@@ -12210,7 +12223,7 @@ function VideoBiteCard({
|
|
|
12210
12223
|
if (isTouch && !isActive) activate();
|
|
12211
12224
|
};
|
|
12212
12225
|
const titleClass = "text-h6 text-ods-text-primary";
|
|
12213
|
-
const overlayContent = /* @__PURE__ */ jsxs64(
|
|
12226
|
+
const overlayContent = /* @__PURE__ */ jsxs64(Fragment22, { children: [
|
|
12214
12227
|
titleEditable ? (
|
|
12215
12228
|
// Textarea, not input: the public title wraps to two lines
|
|
12216
12229
|
// (line-clamp-2) and the editor must render identically. rows=1 +
|
|
@@ -12356,7 +12369,7 @@ function VideoBiteCard({
|
|
|
12356
12369
|
}
|
|
12357
12370
|
|
|
12358
12371
|
// src/components/features/entity-video-section.tsx
|
|
12359
|
-
import { Fragment as
|
|
12372
|
+
import { Fragment as Fragment23, jsx as jsx83, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
12360
12373
|
function EntityVideoSection({
|
|
12361
12374
|
mainVideoUrl,
|
|
12362
12375
|
youtubeUrl,
|
|
@@ -12386,7 +12399,7 @@ function EntityVideoSection({
|
|
|
12386
12399
|
}
|
|
12387
12400
|
const fullVideoUrl = youtubeUrl || mainVideoUrl || null;
|
|
12388
12401
|
const fullVideoKind = youtubeUrl ? "youtube" : "auto";
|
|
12389
|
-
return /* @__PURE__ */ jsxs65(
|
|
12402
|
+
return /* @__PURE__ */ jsxs65(Fragment23, { children: [
|
|
12390
12403
|
hasVideo && (hasFullVideo && hasHighlight ? /* @__PURE__ */ jsxs65(Tabs, { defaultValue: "full-video", className: "w-full", children: [
|
|
12391
12404
|
/* @__PURE__ */ jsxs65(TabsList, { className: "inline-flex justify-start rounded-none bg-transparent h-auto p-0 gap-0", children: [
|
|
12392
12405
|
/* @__PURE__ */ jsx83(
|
|
@@ -12584,7 +12597,7 @@ import {
|
|
|
12584
12597
|
TrendingUp as TrendingUp2,
|
|
12585
12598
|
Wrench
|
|
12586
12599
|
} from "lucide-react";
|
|
12587
|
-
import { Fragment as
|
|
12600
|
+
import { Fragment as Fragment24, jsx as jsx86, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
12588
12601
|
function ProductReleaseCard({
|
|
12589
12602
|
title,
|
|
12590
12603
|
summary,
|
|
@@ -12635,7 +12648,7 @@ function ProductReleaseCard({
|
|
|
12635
12648
|
"no-underline",
|
|
12636
12649
|
className
|
|
12637
12650
|
);
|
|
12638
|
-
const innerLayout = /* @__PURE__ */ jsxs66(
|
|
12651
|
+
const innerLayout = /* @__PURE__ */ jsxs66(Fragment24, { children: [
|
|
12639
12652
|
/* @__PURE__ */ jsxs66("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
12640
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: [
|
|
12641
12654
|
coverImage ? /* @__PURE__ */ jsx86(
|
|
@@ -12660,7 +12673,7 @@ function ProductReleaseCard({
|
|
|
12660
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 ?? "" }) })
|
|
12661
12674
|
] })
|
|
12662
12675
|
] }),
|
|
12663
|
-
/* @__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: [
|
|
12664
12677
|
changelogCounts.features > 0 && /* @__PURE__ */ jsxs66("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
12665
12678
|
/* @__PURE__ */ jsx86(Sparkles, { className: "w-3.5 h-3.5" }),
|
|
12666
12679
|
changelogCounts.features,
|
|
@@ -12793,7 +12806,7 @@ function ProductReleaseCard({
|
|
|
12793
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",
|
|
12794
12807
|
className
|
|
12795
12808
|
);
|
|
12796
|
-
const innerChildren = /* @__PURE__ */ jsxs66(
|
|
12809
|
+
const innerChildren = /* @__PURE__ */ jsxs66(Fragment24, { children: [
|
|
12797
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: [
|
|
12798
12811
|
coverImage ? /* @__PURE__ */ jsx86(
|
|
12799
12812
|
next_image_default,
|
|
@@ -13113,7 +13126,7 @@ function safeHref(url) {
|
|
|
13113
13126
|
}
|
|
13114
13127
|
|
|
13115
13128
|
// src/components/chat/entity-cards/blog-card.tsx
|
|
13116
|
-
import { Fragment as
|
|
13129
|
+
import { Fragment as Fragment25, jsx as jsx88, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
13117
13130
|
function BlogCardSkeleton({ size: size2 = "default" }) {
|
|
13118
13131
|
if (size2 === "sm") {
|
|
13119
13132
|
return /* @__PURE__ */ jsxs68("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
@@ -13304,7 +13317,7 @@ function BlogCard({
|
|
|
13304
13317
|
) : null,
|
|
13305
13318
|
/* @__PURE__ */ jsxs68("span", { className: "truncate", children: [
|
|
13306
13319
|
post.author_name || "Anonymous",
|
|
13307
|
-
dateStr ? /* @__PURE__ */ jsxs68(
|
|
13320
|
+
dateStr ? /* @__PURE__ */ jsxs68(Fragment25, { children: [
|
|
13308
13321
|
" \xB7 ",
|
|
13309
13322
|
dateStr
|
|
13310
13323
|
] }) : null
|
|
@@ -13478,7 +13491,7 @@ function CaseStudyCard({
|
|
|
13478
13491
|
// src/components/chat/entity-cards/customer-interview-card.tsx
|
|
13479
13492
|
init_cn();
|
|
13480
13493
|
import { Video as Video3 } from "lucide-react";
|
|
13481
|
-
import { Fragment as
|
|
13494
|
+
import { Fragment as Fragment26, jsx as jsx90, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
13482
13495
|
function CustomerInterviewCardSkeleton({ size: size2 = "default" }) {
|
|
13483
13496
|
if (size2 === "sm") {
|
|
13484
13497
|
return /* @__PURE__ */ jsxs70("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
@@ -13577,7 +13590,7 @@ function CustomerInterviewCard({
|
|
|
13577
13590
|
);
|
|
13578
13591
|
}
|
|
13579
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: [
|
|
13580
|
-
/* @__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: [
|
|
13581
13594
|
/* @__PURE__ */ jsx90(
|
|
13582
13595
|
"img",
|
|
13583
13596
|
{
|
|
@@ -14329,7 +14342,7 @@ var HiddenTagsPopup = forwardRef25(function HiddenTagsPopup2({ items, onRemove,
|
|
|
14329
14342
|
});
|
|
14330
14343
|
|
|
14331
14344
|
// src/components/ui/autocomplete.tsx
|
|
14332
|
-
import { Fragment as
|
|
14345
|
+
import { Fragment as Fragment27, jsx as jsx98, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
14333
14346
|
var innerInputStyles = cn(
|
|
14334
14347
|
"flex-1 min-w-[60px] bg-transparent border-none outline-none",
|
|
14335
14348
|
"text-h4",
|
|
@@ -14789,7 +14802,7 @@ function AutocompleteInner(props, ref) {
|
|
|
14789
14802
|
}
|
|
14790
14803
|
}
|
|
14791
14804
|
),
|
|
14792
|
-
multiple && /* @__PURE__ */ jsxs76(
|
|
14805
|
+
multiple && /* @__PURE__ */ jsxs76(Fragment27, { children: [
|
|
14793
14806
|
/* @__PURE__ */ jsx98(
|
|
14794
14807
|
"span",
|
|
14795
14808
|
{
|
|
@@ -16013,7 +16026,7 @@ function DateFilterMenu({
|
|
|
16013
16026
|
|
|
16014
16027
|
// src/components/ui/duration-input.tsx
|
|
16015
16028
|
init_cn();
|
|
16016
|
-
import { Fragment as
|
|
16029
|
+
import { Fragment as Fragment28, useEffect as useEffect26, useRef as useRef22, useState as useState32 } from "react";
|
|
16017
16030
|
import { jsx as jsx103, jsxs as jsxs81 } from "react/jsx-runtime";
|
|
16018
16031
|
var SEGMENT_META = [
|
|
16019
16032
|
{ label: "Hours", placeholder: "HH", max: 99 },
|
|
@@ -16098,7 +16111,7 @@ function DurationInput({ value, onChange, invalid, className }) {
|
|
|
16098
16111
|
invalid && "border-ods-error focus-within:border-ods-error",
|
|
16099
16112
|
className
|
|
16100
16113
|
),
|
|
16101
|
-
children: SEGMENT_META.map((meta, i) => /* @__PURE__ */ jsxs81(
|
|
16114
|
+
children: SEGMENT_META.map((meta, i) => /* @__PURE__ */ jsxs81(Fragment28, { children: [
|
|
16102
16115
|
i > 0 && /* @__PURE__ */ jsx103("span", { className: "text-ods-text-secondary", children: ":" }),
|
|
16103
16116
|
/* @__PURE__ */ jsx103(
|
|
16104
16117
|
"input",
|
|
@@ -16577,12 +16590,12 @@ function DefaultAssigneeDropdown({
|
|
|
16577
16590
|
}
|
|
16578
16591
|
|
|
16579
16592
|
// src/components/ui/info-section.tsx
|
|
16580
|
-
import { Fragment as
|
|
16593
|
+
import { Fragment as Fragment29, jsx as jsx109, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
16581
16594
|
function TextValue({ value }) {
|
|
16582
16595
|
const { text, imageSrc, imageFallback, imageVariant = "round", icon, onClick, href, openInNewTab } = value;
|
|
16583
16596
|
const hasImage = imageSrc !== void 0 || imageFallback !== void 0;
|
|
16584
16597
|
const interactiveClass = "truncate text-left text-h4 text-ods-text-primary transition-colors hover:text-ods-accent";
|
|
16585
|
-
return /* @__PURE__ */ jsxs85(
|
|
16598
|
+
return /* @__PURE__ */ jsxs85(Fragment29, { children: [
|
|
16586
16599
|
icon && /* @__PURE__ */ jsx109("span", { className: "flex size-4 shrink-0 items-center justify-center text-ods-text-secondary", children: icon }),
|
|
16587
16600
|
href ? /* @__PURE__ */ jsx109(
|
|
16588
16601
|
next_link_default,
|
|
@@ -16619,7 +16632,7 @@ function RowValue({ value }) {
|
|
|
16619
16632
|
return /* @__PURE__ */ jsx109(TicketStatusTag, { ...props });
|
|
16620
16633
|
}
|
|
16621
16634
|
case "custom":
|
|
16622
|
-
return /* @__PURE__ */ jsx109(
|
|
16635
|
+
return /* @__PURE__ */ jsx109(Fragment29, { children: value.content });
|
|
16623
16636
|
default:
|
|
16624
16637
|
return /* @__PURE__ */ jsx109(TextValue, { value });
|
|
16625
16638
|
}
|
|
@@ -19150,7 +19163,7 @@ function TabContent({
|
|
|
19150
19163
|
init_next_navigation();
|
|
19151
19164
|
init_cn();
|
|
19152
19165
|
import { useState as useState41, useEffect as useEffect34, useMemo as useMemo23, useRef as useRef26, useCallback as useCallback19 } from "react";
|
|
19153
|
-
import { Fragment as
|
|
19166
|
+
import { Fragment as Fragment30, jsx as jsx135, jsxs as jsxs107 } from "react/jsx-runtime";
|
|
19154
19167
|
function TabNavigation({
|
|
19155
19168
|
activeTab: controlledActiveTab,
|
|
19156
19169
|
onTabChange: controlledOnTabChange,
|
|
@@ -19266,7 +19279,7 @@ function TabNavigation({
|
|
|
19266
19279
|
}
|
|
19267
19280
|
return { background: c };
|
|
19268
19281
|
})();
|
|
19269
|
-
return /* @__PURE__ */ jsxs107(
|
|
19282
|
+
return /* @__PURE__ */ jsxs107(Fragment30, { children: [
|
|
19270
19283
|
/* @__PURE__ */ jsxs107("div", { className: cn("relative w-full", className), children: [
|
|
19271
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) => {
|
|
19272
19285
|
const isActive = activeTab === tab.id;
|
|
@@ -19394,7 +19407,7 @@ function AIGeneratedBadge({ className }) {
|
|
|
19394
19407
|
// src/components/ui/fade-preview.tsx
|
|
19395
19408
|
import { useState as useState42, useRef as useRef27, useEffect as useEffect35 } from "react";
|
|
19396
19409
|
import { ChevronDown as ChevronDown4 } from "lucide-react";
|
|
19397
|
-
import { Fragment as
|
|
19410
|
+
import { Fragment as Fragment31, jsx as jsx138, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
19398
19411
|
function FadePreview({
|
|
19399
19412
|
hiddenCount,
|
|
19400
19413
|
collapsedHeight = 120,
|
|
@@ -19407,7 +19420,7 @@ function FadePreview({
|
|
|
19407
19420
|
setExpanded(false);
|
|
19408
19421
|
}, [resetKey]);
|
|
19409
19422
|
const needsFade = hiddenCount > 0;
|
|
19410
|
-
if (!needsFade) return /* @__PURE__ */ jsx138(
|
|
19423
|
+
if (!needsFade) return /* @__PURE__ */ jsx138(Fragment31, { children });
|
|
19411
19424
|
return /* @__PURE__ */ jsxs109("div", { className: "relative", children: [
|
|
19412
19425
|
/* @__PURE__ */ jsx138(
|
|
19413
19426
|
"div",
|
|
@@ -19764,7 +19777,7 @@ var socialCache = SocialEmbedCache.getInstance();
|
|
|
19764
19777
|
init_cn();
|
|
19765
19778
|
import { useState as useState43, useRef as useRef28, useEffect as useEffect36, memo as memo4, useCallback as useCallback20 } from "react";
|
|
19766
19779
|
init_button2();
|
|
19767
|
-
import { Fragment as
|
|
19780
|
+
import { Fragment as Fragment32, jsx as jsx140, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
19768
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" }) });
|
|
19769
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" }) });
|
|
19770
19783
|
var MediaCarousel = memo4(function MediaCarousel2({
|
|
@@ -19948,7 +19961,7 @@ var MediaCarousel = memo4(function MediaCarousel2({
|
|
|
19948
19961
|
"aria-label": media.length > 1 ? "Media carousel, use arrow keys to navigate" : void 0,
|
|
19949
19962
|
children: [
|
|
19950
19963
|
renderMainMedia(currentItem, currentIndex),
|
|
19951
|
-
showArrows && media.length > 1 && /* @__PURE__ */ jsxs110(
|
|
19964
|
+
showArrows && media.length > 1 && /* @__PURE__ */ jsxs110(Fragment32, { children: [
|
|
19952
19965
|
/* @__PURE__ */ jsx140(
|
|
19953
19966
|
Button,
|
|
19954
19967
|
{
|
|
@@ -21070,7 +21083,7 @@ function toFigmaOriginalUrl(url) {
|
|
|
21070
21083
|
|
|
21071
21084
|
// src/components/embeds/embed-iframe.tsx
|
|
21072
21085
|
import { useState as useState48, useCallback as useCallback21, useRef as useRef31, useEffect as useEffect40 } from "react";
|
|
21073
|
-
import { Fragment as
|
|
21086
|
+
import { Fragment as Fragment33, jsx as jsx147, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
21074
21087
|
function EmbedLoadingSkeleton({ height }) {
|
|
21075
21088
|
return /* @__PURE__ */ jsx147(
|
|
21076
21089
|
"div",
|
|
@@ -21108,7 +21121,7 @@ function EmbedIframe({
|
|
|
21108
21121
|
};
|
|
21109
21122
|
}, [src]);
|
|
21110
21123
|
const resolvedHeight = height || "calc(100vh - 250px)";
|
|
21111
|
-
return /* @__PURE__ */ jsxs115(
|
|
21124
|
+
return /* @__PURE__ */ jsxs115(Fragment33, { children: [
|
|
21112
21125
|
!isLoaded && /* @__PURE__ */ jsx147(EmbedLoadingSkeleton, { height: resolvedHeight }),
|
|
21113
21126
|
/* @__PURE__ */ jsx147(
|
|
21114
21127
|
"div",
|
|
@@ -22193,7 +22206,7 @@ function ChangelogEntryList({
|
|
|
22193
22206
|
|
|
22194
22207
|
// src/components/ui/stacked-rows-panel.tsx
|
|
22195
22208
|
init_cn();
|
|
22196
|
-
import { Fragment as
|
|
22209
|
+
import { Fragment as Fragment34, jsx as jsx152, jsxs as jsxs119 } from "react/jsx-runtime";
|
|
22197
22210
|
var ALIGN_CLASS = {
|
|
22198
22211
|
left: "justify-start items-start",
|
|
22199
22212
|
center: "justify-center items-center",
|
|
@@ -22219,7 +22232,7 @@ function CellValue({ column }) {
|
|
|
22219
22232
|
children: column.value
|
|
22220
22233
|
}
|
|
22221
22234
|
);
|
|
22222
|
-
return /* @__PURE__ */ jsxs119(
|
|
22235
|
+
return /* @__PURE__ */ jsxs119(Fragment34, { children: [
|
|
22223
22236
|
/* @__PURE__ */ jsxs119("div", { className: "flex items-center gap-[var(--spacing-system-xxs)] min-w-0", children: [
|
|
22224
22237
|
column.icon && /* @__PURE__ */ jsx152("span", { className: "shrink-0", children: column.icon }),
|
|
22225
22238
|
column.href ? /* @__PURE__ */ jsx152(
|
|
@@ -22325,7 +22338,7 @@ function StatusIndicator({ status, label, href }) {
|
|
|
22325
22338
|
|
|
22326
22339
|
// src/components/ui/hover-dropdown.tsx
|
|
22327
22340
|
import { useState as useState53, useRef as useRef33, useCallback as useCallback23 } from "react";
|
|
22328
|
-
import { Fragment as
|
|
22341
|
+
import { Fragment as Fragment35, jsx as jsx155, jsxs as jsxs122 } from "react/jsx-runtime";
|
|
22329
22342
|
function DefaultAnchor({
|
|
22330
22343
|
href,
|
|
22331
22344
|
className,
|
|
@@ -22351,7 +22364,7 @@ function HoverDropdown({
|
|
|
22351
22364
|
const hide = useCallback23(() => {
|
|
22352
22365
|
timeoutRef.current = setTimeout(() => setOpen(false), hideDelay);
|
|
22353
22366
|
}, [hideDelay]);
|
|
22354
|
-
if (items.length === 0) return /* @__PURE__ */ jsx155(
|
|
22367
|
+
if (items.length === 0) return /* @__PURE__ */ jsx155(Fragment35, { children });
|
|
22355
22368
|
const toggle = useCallback23((e) => {
|
|
22356
22369
|
e.stopPropagation();
|
|
22357
22370
|
clearTimeout(timeoutRef.current);
|
|
@@ -22398,7 +22411,7 @@ function HoverDropdown({
|
|
|
22398
22411
|
}
|
|
22399
22412
|
},
|
|
22400
22413
|
children: items.map((item, i) => {
|
|
22401
|
-
const content = /* @__PURE__ */ jsxs122(
|
|
22414
|
+
const content = /* @__PURE__ */ jsxs122(Fragment35, { children: [
|
|
22402
22415
|
item.icon && /* @__PURE__ */ jsx155("span", { className: "flex-shrink-0 [&_svg]:size-3.5", children: item.icon }),
|
|
22403
22416
|
/* @__PURE__ */ jsx155("span", { className: "truncate flex-1 min-w-0", children: item.label })
|
|
22404
22417
|
] });
|
|
@@ -22629,7 +22642,7 @@ function TagKeyValueFilter({
|
|
|
22629
22642
|
}
|
|
22630
22643
|
|
|
22631
22644
|
// src/components/ui/filter-modal.tsx
|
|
22632
|
-
import { Fragment as
|
|
22645
|
+
import { Fragment as Fragment36, jsx as jsx159, jsxs as jsxs126 } from "react/jsx-runtime";
|
|
22633
22646
|
function FilterModal({
|
|
22634
22647
|
isOpen,
|
|
22635
22648
|
onClose,
|
|
@@ -22721,7 +22734,7 @@ function FilterModal({
|
|
|
22721
22734
|
ref: scrollRef,
|
|
22722
22735
|
onScroll: updateFade,
|
|
22723
22736
|
className: "flex-1 min-h-0 overflow-y-auto flex flex-col gap-4 md:py-3",
|
|
22724
|
-
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: [
|
|
22725
22738
|
/* @__PURE__ */ jsx159(Skeleton, { className: "h-5 w-24" }),
|
|
22726
22739
|
/* @__PURE__ */ jsx159("div", { className: "rounded-md border border-ods-border overflow-hidden", children: [0, 1, 2].map((row) => /* @__PURE__ */ jsxs126(
|
|
22727
22740
|
"div",
|
|
@@ -22741,7 +22754,7 @@ function FilterModal({
|
|
|
22741
22754
|
/* @__PURE__ */ jsx159("p", { className: "text-h4", children: emptyStateTitle }),
|
|
22742
22755
|
/* @__PURE__ */ jsx159("p", { className: "text-h6", children: emptyStateDescription })
|
|
22743
22756
|
] })
|
|
22744
|
-
] }) : /* @__PURE__ */ jsxs126(
|
|
22757
|
+
] }) : /* @__PURE__ */ jsxs126(Fragment36, { children: [
|
|
22745
22758
|
sortConfig && sortConfig.columns.length > 0 && /* @__PURE__ */ jsxs126("div", { className: "flex flex-col gap-1", children: [
|
|
22746
22759
|
/* @__PURE__ */ jsx159("span", { className: "text-h5 text-ods-text-secondary", children: sortConfig.title || "Sort By" }),
|
|
22747
22760
|
/* @__PURE__ */ jsx159("div", { className: "rounded-md border border-ods-border overflow-hidden", children: sortConfig.columns.map((column) => /* @__PURE__ */ jsx159(
|
|
@@ -22820,7 +22833,7 @@ init_cn();
|
|
|
22820
22833
|
init_cn();
|
|
22821
22834
|
import React79 from "react";
|
|
22822
22835
|
init_button2();
|
|
22823
|
-
import { Fragment as
|
|
22836
|
+
import { Fragment as Fragment37, jsx as jsx160, jsxs as jsxs127 } from "react/jsx-runtime";
|
|
22824
22837
|
function actionKey(action, idx) {
|
|
22825
22838
|
return `${action.label ?? action.ariaLabel ?? "action"}-${idx}`;
|
|
22826
22839
|
}
|
|
@@ -22964,7 +22977,7 @@ function IconButtonsVariant({
|
|
|
22964
22977
|
...menuActions ?? []
|
|
22965
22978
|
];
|
|
22966
22979
|
const hasMobileMenuItems = mobileMenuGroups.some((g) => g.items.length > 0);
|
|
22967
|
-
return /* @__PURE__ */ jsxs127(
|
|
22980
|
+
return /* @__PURE__ */ jsxs127(Fragment37, { children: [
|
|
22968
22981
|
/* @__PURE__ */ jsxs127("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: [
|
|
22969
22982
|
selector,
|
|
22970
22983
|
desktopActions.map((action, idx) => /* @__PURE__ */ jsx160(React79.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
|
|
@@ -22983,7 +22996,7 @@ function PrimaryButtonsVariant({
|
|
|
22983
22996
|
return 0;
|
|
22984
22997
|
});
|
|
22985
22998
|
const desktopActions = sortedActions.filter((a) => !a.showOnlyMobile);
|
|
22986
|
-
return /* @__PURE__ */ jsxs127(
|
|
22999
|
+
return /* @__PURE__ */ jsxs127(Fragment37, { children: [
|
|
22987
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)}`)) }),
|
|
22988
23001
|
/* @__PURE__ */ jsx160(MobileBottomActions, { actions: sortedActions })
|
|
22989
23002
|
] });
|
|
@@ -23001,7 +23014,7 @@ function MenuPrimaryVariant({
|
|
|
23001
23014
|
...menuActions
|
|
23002
23015
|
];
|
|
23003
23016
|
const hasMobileMenuItems = mobileMenuGroups.some((g) => g.items.length > 0);
|
|
23004
|
-
return /* @__PURE__ */ jsxs127(
|
|
23017
|
+
return /* @__PURE__ */ jsxs127(Fragment37, { children: [
|
|
23005
23018
|
/* @__PURE__ */ jsxs127("div", { className: cn("hidden md:flex items-center", ACTIONS_GAP, className), children: [
|
|
23006
23019
|
selector,
|
|
23007
23020
|
hasMenuActions && /* @__PURE__ */ jsx160(ActionsMenuDropdown, { groups: menuActions }),
|
|
@@ -25567,7 +25580,7 @@ import {
|
|
|
25567
25580
|
safePolygon,
|
|
25568
25581
|
arrow
|
|
25569
25582
|
} from "@floating-ui/react";
|
|
25570
|
-
import { Fragment as
|
|
25583
|
+
import { Fragment as Fragment38, jsx as jsx177, jsxs as jsxs139 } from "react/jsx-runtime";
|
|
25571
25584
|
function parseColoredText(text) {
|
|
25572
25585
|
if (typeof text !== "string") return text;
|
|
25573
25586
|
const parts = [];
|
|
@@ -25592,7 +25605,7 @@ function parseColoredText(text) {
|
|
|
25592
25605
|
const remainingText = text.slice(lastIndex);
|
|
25593
25606
|
parts.push(/* @__PURE__ */ jsx177("span", { children: remainingText }, `text-${keyIndex++}`));
|
|
25594
25607
|
}
|
|
25595
|
-
return parts.length > 0 ? /* @__PURE__ */ jsx177(
|
|
25608
|
+
return parts.length > 0 ? /* @__PURE__ */ jsx177(Fragment38, { children: parts }) : text;
|
|
25596
25609
|
}
|
|
25597
25610
|
function FloatingTooltip({
|
|
25598
25611
|
content,
|
|
@@ -25656,7 +25669,7 @@ function FloatingTooltip({
|
|
|
25656
25669
|
bottom: "top",
|
|
25657
25670
|
left: "right"
|
|
25658
25671
|
}[placement.split("-")[0]];
|
|
25659
|
-
return /* @__PURE__ */ jsxs139(
|
|
25672
|
+
return /* @__PURE__ */ jsxs139(Fragment38, { children: [
|
|
25660
25673
|
/* @__PURE__ */ jsx177("div", { ref: refs.setReference, ...getReferenceProps(), children }),
|
|
25661
25674
|
/* @__PURE__ */ jsx177(FloatingPortal, { children: isOpen && /* @__PURE__ */ jsxs139(
|
|
25662
25675
|
"div",
|
|
@@ -25706,7 +25719,7 @@ function FloatingTooltip({
|
|
|
25706
25719
|
}
|
|
25707
25720
|
|
|
25708
25721
|
// src/components/ui/dashboard-info-card.tsx
|
|
25709
|
-
import { Fragment as
|
|
25722
|
+
import { Fragment as Fragment39, jsx as jsx178, jsxs as jsxs140 } from "react/jsx-runtime";
|
|
25710
25723
|
function DashboardInfoCard({
|
|
25711
25724
|
title,
|
|
25712
25725
|
titleSlot,
|
|
@@ -25759,7 +25772,7 @@ function DashboardInfoCard({
|
|
|
25759
25772
|
if (lg !== void 0) {
|
|
25760
25773
|
rings.push({ key: "lg", size: lg, className: "hidden lg:block" });
|
|
25761
25774
|
}
|
|
25762
|
-
return /* @__PURE__ */ jsx178(
|
|
25775
|
+
return /* @__PURE__ */ jsx178(Fragment39, { children: rings.map((ring) => /* @__PURE__ */ jsx178(
|
|
25763
25776
|
CircularProgress,
|
|
25764
25777
|
{
|
|
25765
25778
|
...common,
|
|
@@ -25770,7 +25783,7 @@ function DashboardInfoCard({
|
|
|
25770
25783
|
ring.key
|
|
25771
25784
|
)) });
|
|
25772
25785
|
};
|
|
25773
|
-
const cardContent = /* @__PURE__ */ jsxs140(
|
|
25786
|
+
const cardContent = /* @__PURE__ */ jsxs140(Fragment39, { children: [
|
|
25774
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 }) }),
|
|
25775
25788
|
/* @__PURE__ */ jsxs140("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
25776
25789
|
/* @__PURE__ */ jsxs140("div", { className: "flex items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
@@ -26022,7 +26035,7 @@ function DeviceCard({
|
|
|
26022
26035
|
|
|
26023
26036
|
// src/components/ui/device-card-compact.tsx
|
|
26024
26037
|
init_cn();
|
|
26025
|
-
import { Fragment as
|
|
26038
|
+
import { Fragment as Fragment40, jsx as jsx182, jsxs as jsxs144 } from "react/jsx-runtime";
|
|
26026
26039
|
function DeviceCardCompact({
|
|
26027
26040
|
deviceName,
|
|
26028
26041
|
organization,
|
|
@@ -26032,7 +26045,7 @@ function DeviceCardCompact({
|
|
|
26032
26045
|
const hasName = deviceName && deviceName !== "-" && deviceName !== "null";
|
|
26033
26046
|
const hasOrg = organization && organization !== "-" && organization !== "null";
|
|
26034
26047
|
if (!hasName && !hasOrg) {
|
|
26035
|
-
return /* @__PURE__ */ jsx182(
|
|
26048
|
+
return /* @__PURE__ */ jsx182(Fragment40, {});
|
|
26036
26049
|
}
|
|
26037
26050
|
return /* @__PURE__ */ jsxs144(
|
|
26038
26051
|
"div",
|
|
@@ -26446,7 +26459,7 @@ function DropdownButton({
|
|
|
26446
26459
|
init_next_link();
|
|
26447
26460
|
init_cn();
|
|
26448
26461
|
init_button2();
|
|
26449
|
-
import { Fragment as
|
|
26462
|
+
import { Fragment as Fragment41, jsx as jsx189, jsxs as jsxs149 } from "react/jsx-runtime";
|
|
26450
26463
|
function MoreActionsMenu({
|
|
26451
26464
|
items,
|
|
26452
26465
|
align = "end",
|
|
@@ -26484,7 +26497,7 @@ function MoreActionsMenu({
|
|
|
26484
26497
|
),
|
|
26485
26498
|
children: items.map((item, idx) => {
|
|
26486
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";
|
|
26487
|
-
const content = /* @__PURE__ */ jsxs149(
|
|
26500
|
+
const content = /* @__PURE__ */ jsxs149(Fragment41, { children: [
|
|
26488
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 }),
|
|
26489
26502
|
/* @__PURE__ */ jsx189("span", { className: "text-h4 text-ods-text-primary", children: item.label })
|
|
26490
26503
|
] });
|
|
@@ -27067,7 +27080,7 @@ function SsoProviderButtons({
|
|
|
27067
27080
|
}
|
|
27068
27081
|
|
|
27069
27082
|
// src/components/features/auth/complete-account-form.tsx
|
|
27070
|
-
import { Fragment as
|
|
27083
|
+
import { Fragment as Fragment42, jsx as jsx200, jsxs as jsxs155 } from "react/jsx-runtime";
|
|
27071
27084
|
function CompleteAccountForm({
|
|
27072
27085
|
firstName,
|
|
27073
27086
|
lastName,
|
|
@@ -27116,7 +27129,7 @@ function CompleteAccountForm({
|
|
|
27116
27129
|
/* @__PURE__ */ jsx200("h1", { className: "text-h2 text-ods-text-primary tracking-[-0.64px]", children: title }),
|
|
27117
27130
|
/* @__PURE__ */ jsx200("p", { className: "text-h4 text-ods-text-secondary", children: subtitle })
|
|
27118
27131
|
] }),
|
|
27119
|
-
ssoProviders && ssoProviders.length > 0 && /* @__PURE__ */ jsxs155(
|
|
27132
|
+
ssoProviders && ssoProviders.length > 0 && /* @__PURE__ */ jsxs155(Fragment42, { children: [
|
|
27120
27133
|
/* @__PURE__ */ jsx200(
|
|
27121
27134
|
SsoProviderButtons,
|
|
27122
27135
|
{
|
|
@@ -27257,7 +27270,7 @@ function TermsAgreementLabel({ termsUrl = "#", privacyPolicyUrl = "#" }) {
|
|
|
27257
27270
|
}
|
|
27258
27271
|
|
|
27259
27272
|
// src/components/features/auth/create-organization-form.tsx
|
|
27260
|
-
import { Fragment as
|
|
27273
|
+
import { Fragment as Fragment43, jsx as jsx202, jsxs as jsxs157 } from "react/jsx-runtime";
|
|
27261
27274
|
function CreateOrganizationForm({
|
|
27262
27275
|
email,
|
|
27263
27276
|
organizationName,
|
|
@@ -27379,7 +27392,7 @@ function CreateOrganizationForm({
|
|
|
27379
27392
|
children: submitLabel
|
|
27380
27393
|
}
|
|
27381
27394
|
),
|
|
27382
|
-
hasSso && /* @__PURE__ */ jsxs157(
|
|
27395
|
+
hasSso && /* @__PURE__ */ jsxs157(Fragment43, { children: [
|
|
27383
27396
|
/* @__PURE__ */ jsxs157("div", { className: "flex items-center gap-[var(--spacing-system-s)]", children: [
|
|
27384
27397
|
/* @__PURE__ */ jsx202("div", { className: "h-px flex-1 bg-ods-border" }),
|
|
27385
27398
|
/* @__PURE__ */ jsx202("span", { className: "text-h6 text-ods-text-secondary", children: dividerLabel }),
|
|
@@ -30499,7 +30512,7 @@ SelectButton.displayName = "SelectButton";
|
|
|
30499
30512
|
// src/components/features/seo-editor-preview.tsx
|
|
30500
30513
|
import { useState as useState70 } from "react";
|
|
30501
30514
|
import { Globe as Globe3, ExternalLink as ExternalLink6, Upload as Upload3, X as X6, Loader2 as Loader25 } from "lucide-react";
|
|
30502
|
-
import { Fragment as
|
|
30515
|
+
import { Fragment as Fragment44, jsx as jsx231, jsxs as jsxs181 } from "react/jsx-runtime";
|
|
30503
30516
|
function SEOEditorPreview({
|
|
30504
30517
|
seoTitle,
|
|
30505
30518
|
seoDescription,
|
|
@@ -30552,7 +30565,7 @@ function SEOEditorPreview({
|
|
|
30552
30565
|
/* @__PURE__ */ jsxs181("div", { className: "space-y-2", children: [
|
|
30553
30566
|
/* @__PURE__ */ jsxs181("div", { className: "flex items-center gap-2", children: [
|
|
30554
30567
|
/* @__PURE__ */ jsx231(Label, { className: "text-h6 text-ods-text-primary", children: "SEO Title" }),
|
|
30555
|
-
aiConfidenceSeoTitle !== void 0 && /* @__PURE__ */ jsxs181(
|
|
30568
|
+
aiConfidenceSeoTitle !== void 0 && /* @__PURE__ */ jsxs181(Fragment44, { children: [
|
|
30556
30569
|
/* @__PURE__ */ jsx231(AIGeneratedBadge, {}),
|
|
30557
30570
|
/* @__PURE__ */ jsx231(
|
|
30558
30571
|
ConfidenceBadge,
|
|
@@ -30599,7 +30612,7 @@ function SEOEditorPreview({
|
|
|
30599
30612
|
/* @__PURE__ */ jsxs181("div", { className: "space-y-2", children: [
|
|
30600
30613
|
/* @__PURE__ */ jsxs181("div", { className: "flex items-center gap-2", children: [
|
|
30601
30614
|
/* @__PURE__ */ jsx231(Label, { className: "text-h6 text-ods-text-primary", children: "SEO Keywords" }),
|
|
30602
|
-
aiConfidenceSeoKeywords !== void 0 && /* @__PURE__ */ jsxs181(
|
|
30615
|
+
aiConfidenceSeoKeywords !== void 0 && /* @__PURE__ */ jsxs181(Fragment44, { children: [
|
|
30603
30616
|
/* @__PURE__ */ jsx231(AIGeneratedBadge, {}),
|
|
30604
30617
|
/* @__PURE__ */ jsx231(
|
|
30605
30618
|
ConfidenceBadge,
|
|
@@ -30628,7 +30641,7 @@ function SEOEditorPreview({
|
|
|
30628
30641
|
/* @__PURE__ */ jsxs181("div", { className: "space-y-2 flex flex-col h-full", children: [
|
|
30629
30642
|
/* @__PURE__ */ jsxs181("div", { className: "flex items-center gap-2", children: [
|
|
30630
30643
|
/* @__PURE__ */ jsx231(Label, { className: "text-h6 text-ods-text-primary", children: "SEO Description" }),
|
|
30631
|
-
aiConfidenceSeoDescription !== void 0 && /* @__PURE__ */ jsxs181(
|
|
30644
|
+
aiConfidenceSeoDescription !== void 0 && /* @__PURE__ */ jsxs181(Fragment44, { children: [
|
|
30632
30645
|
/* @__PURE__ */ jsx231(AIGeneratedBadge, {}),
|
|
30633
30646
|
/* @__PURE__ */ jsx231(
|
|
30634
30647
|
ConfidenceBadge,
|
|
@@ -30718,7 +30731,7 @@ function SEOEditorPreview({
|
|
|
30718
30731
|
{
|
|
30719
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",
|
|
30720
30733
|
onClick: () => onOgImageUpload && fileInputRef?.click(),
|
|
30721
|
-
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: [
|
|
30722
30735
|
/* @__PURE__ */ jsx231(Upload3, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
|
|
30723
30736
|
/* @__PURE__ */ jsx231("span", { className: "text-h6 text-ods-text-secondary", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
|
|
30724
30737
|
] })
|
|
@@ -32750,7 +32763,7 @@ init_cn();
|
|
|
32750
32763
|
import { useEffect as useEffect54, useState as useState74 } from "react";
|
|
32751
32764
|
import { ChevronDown as ChevronDown8, Shield as Shield2 } from "lucide-react";
|
|
32752
32765
|
init_button2();
|
|
32753
|
-
import { Fragment as
|
|
32766
|
+
import { Fragment as Fragment45, jsx as jsx256, jsxs as jsxs200 } from "react/jsx-runtime";
|
|
32754
32767
|
var approvalLevelLabels = {
|
|
32755
32768
|
ALLOW: "Allow",
|
|
32756
32769
|
ASK_USER: "Ask User",
|
|
@@ -32831,7 +32844,7 @@ var CategorySection = ({
|
|
|
32831
32844
|
}) => {
|
|
32832
32845
|
const { innerRef, containerStyle } = useCollapsible({ expanded: isExpanded, durationMs: 300 });
|
|
32833
32846
|
const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
|
|
32834
|
-
return /* @__PURE__ */ jsxs200(
|
|
32847
|
+
return /* @__PURE__ */ jsxs200(Fragment45, { children: [
|
|
32835
32848
|
/* @__PURE__ */ jsxs200(
|
|
32836
32849
|
"div",
|
|
32837
32850
|
{
|
|
@@ -33067,7 +33080,7 @@ function CountryOption({ country }) {
|
|
|
33067
33080
|
init_cn();
|
|
33068
33081
|
import { getCountries as getCountries2 } from "libphonenumber-js";
|
|
33069
33082
|
import { useEffect as useEffect56, useState as useState76 } from "react";
|
|
33070
|
-
import { Fragment as
|
|
33083
|
+
import { Fragment as Fragment46, jsx as jsx258, jsxs as jsxs202 } from "react/jsx-runtime";
|
|
33071
33084
|
function WaitlistForm({
|
|
33072
33085
|
id = "waitlist-form",
|
|
33073
33086
|
className,
|
|
@@ -33212,7 +33225,7 @@ function WaitlistForm({
|
|
|
33212
33225
|
error: showConsentError ? "Please agree to SMS notifications to continue." : void 0,
|
|
33213
33226
|
disabled: isSubmitting,
|
|
33214
33227
|
label: smsCheckboxLabel,
|
|
33215
|
-
description: /* @__PURE__ */ jsxs202(
|
|
33228
|
+
description: /* @__PURE__ */ jsxs202(Fragment46, { children: [
|
|
33216
33229
|
consentText,
|
|
33217
33230
|
" View our ",
|
|
33218
33231
|
/* @__PURE__ */ jsx258(
|
|
@@ -34138,7 +34151,7 @@ function NotificationTile({
|
|
|
34138
34151
|
}
|
|
34139
34152
|
|
|
34140
34153
|
// src/components/features/notifications/notification-drawer.tsx
|
|
34141
|
-
import { Fragment as
|
|
34154
|
+
import { Fragment as Fragment47, jsx as jsx262, jsxs as jsxs205 } from "react/jsx-runtime";
|
|
34142
34155
|
function NotificationDrawer({
|
|
34143
34156
|
className,
|
|
34144
34157
|
liveDurationMs,
|
|
@@ -34171,7 +34184,7 @@ function NotificationDrawer({
|
|
|
34171
34184
|
} = ctx;
|
|
34172
34185
|
const renderTile = renderTileProp ?? ctxRenderTile;
|
|
34173
34186
|
const unreadNotifications = notifications.filter((n) => !n.read);
|
|
34174
|
-
const content = /* @__PURE__ */ jsxs205(
|
|
34187
|
+
const content = /* @__PURE__ */ jsxs205(Fragment47, { children: [
|
|
34175
34188
|
/* @__PURE__ */ jsx262("div", { className: "px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]", children: /* @__PURE__ */ jsx262(
|
|
34176
34189
|
DrawerTitle,
|
|
34177
34190
|
{
|
|
@@ -34281,7 +34294,7 @@ function DrawerScrollList({
|
|
|
34281
34294
|
{
|
|
34282
34295
|
ref: scrollRef,
|
|
34283
34296
|
className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
|
|
34284
|
-
children: isEmpty && !isLoadingMore ? /* @__PURE__ */ jsx262(EmptyState, {}) : /* @__PURE__ */ jsxs205(
|
|
34297
|
+
children: isEmpty && !isLoadingMore ? /* @__PURE__ */ jsx262(EmptyState, {}) : /* @__PURE__ */ jsxs205(Fragment47, { children: [
|
|
34285
34298
|
unreadNotifications.map((n) => {
|
|
34286
34299
|
const custom = renderTile?.(n, { onComplete, onSettle, liveDurationMs });
|
|
34287
34300
|
if (custom) return /* @__PURE__ */ jsx262("div", { children: custom }, n.id);
|
|
@@ -34303,7 +34316,7 @@ function DrawerScrollList({
|
|
|
34303
34316
|
);
|
|
34304
34317
|
}
|
|
34305
34318
|
function DrawerLoadingTiles() {
|
|
34306
|
-
return /* @__PURE__ */ jsxs205(
|
|
34319
|
+
return /* @__PURE__ */ jsxs205(Fragment47, { children: [
|
|
34307
34320
|
/* @__PURE__ */ jsx262(
|
|
34308
34321
|
"div",
|
|
34309
34322
|
{
|
|
@@ -34686,7 +34699,7 @@ function approvalMetaToBatchData(approval) {
|
|
|
34686
34699
|
}
|
|
34687
34700
|
|
|
34688
34701
|
// src/components/features/notifications/approval-request-notification-tile.tsx
|
|
34689
|
-
import { Fragment as
|
|
34702
|
+
import { Fragment as Fragment48, jsx as jsx264, jsxs as jsxs206 } from "react/jsx-runtime";
|
|
34690
34703
|
function ApprovalRequestNotificationTile({
|
|
34691
34704
|
notification,
|
|
34692
34705
|
onApprove,
|
|
@@ -34736,7 +34749,7 @@ function ApprovalRequestNotificationTile({
|
|
|
34736
34749
|
className,
|
|
34737
34750
|
paused: pinned || processing,
|
|
34738
34751
|
actions: /* @__PURE__ */ jsxs206("div", { className: "flex w-full items-center gap-[var(--spacing-system-xs)]", children: [
|
|
34739
|
-
status === "pending" ? /* @__PURE__ */ jsxs206(
|
|
34752
|
+
status === "pending" ? /* @__PURE__ */ jsxs206(Fragment48, { children: [
|
|
34740
34753
|
/* @__PURE__ */ jsx264(Button, { variant: "accent", size: "small", onClick: () => resolve("approved", onApprove), disabled: processing, children: "Approve" }),
|
|
34741
34754
|
/* @__PURE__ */ jsx264(Button, { variant: "outline", size: "small", onClick: () => resolve("rejected", onReject), disabled: processing, children: "Reject" })
|
|
34742
34755
|
] }) : /* @__PURE__ */ jsxs206("span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
@@ -35156,7 +35169,7 @@ function HeaderButton({
|
|
|
35156
35169
|
}
|
|
35157
35170
|
|
|
35158
35171
|
// src/components/features/time-tracker/time-tracker-header-button.tsx
|
|
35159
|
-
import { Fragment as
|
|
35172
|
+
import { Fragment as Fragment49, jsx as jsx268, jsxs as jsxs208 } from "react/jsx-runtime";
|
|
35160
35173
|
function TimeTrackerHeaderButton({ className, disabled }) {
|
|
35161
35174
|
const ctx = useOptionalTimeTracker();
|
|
35162
35175
|
const elapsedLabel = useTrackerClock({
|
|
@@ -35202,7 +35215,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
35202
35215
|
isActive && "w-auto gap-[var(--spacing-system-xsf)] px-[var(--spacing-system-sf)] md:w-auto",
|
|
35203
35216
|
className
|
|
35204
35217
|
),
|
|
35205
|
-
icon: /* @__PURE__ */ jsxs208(
|
|
35218
|
+
icon: /* @__PURE__ */ jsxs208(Fragment49, { children: [
|
|
35206
35219
|
/* @__PURE__ */ jsx268(
|
|
35207
35220
|
ClockHistoryIcon,
|
|
35208
35221
|
{
|
|
@@ -35444,7 +35457,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
|
35444
35457
|
}
|
|
35445
35458
|
|
|
35446
35459
|
// src/components/features/board/ticket-card.tsx
|
|
35447
|
-
import { Fragment as
|
|
35460
|
+
import { Fragment as Fragment50, jsx as jsx271, jsxs as jsxs211 } from "react/jsx-runtime";
|
|
35448
35461
|
var PRIORITY_COLOR_CLASS = {
|
|
35449
35462
|
low: "text-ods-text-secondary",
|
|
35450
35463
|
medium: "text-ods-info",
|
|
@@ -35488,7 +35501,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
35488
35501
|
] }) : null;
|
|
35489
35502
|
const timestampLabel = ticket.createdAt ? formatTicketRelativeTime(ticket.createdAt) : null;
|
|
35490
35503
|
const tooltipLabel = ticket.createdAt ? formatTicketFullTimestamp(ticket.createdAt) : null;
|
|
35491
|
-
return /* @__PURE__ */ jsxs211(
|
|
35504
|
+
return /* @__PURE__ */ jsxs211(Fragment50, { children: [
|
|
35492
35505
|
/* @__PURE__ */ jsxs211("div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
|
|
35493
35506
|
/* @__PURE__ */ jsxs211("div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-zero)]", title: ticket.title, children: [
|
|
35494
35507
|
/* @__PURE__ */ jsx271("p", { className: "text-h3 truncate text-ods-text-primary", children: ticket.title }),
|
|
@@ -35654,7 +35667,7 @@ var TicketCardSkeleton = React105.forwardRef(
|
|
|
35654
35667
|
TicketCardSkeleton.displayName = "TicketCardSkeleton";
|
|
35655
35668
|
|
|
35656
35669
|
// src/components/features/board/board-column.tsx
|
|
35657
|
-
import { Fragment as
|
|
35670
|
+
import { Fragment as Fragment51, jsx as jsx273, jsxs as jsxs213 } from "react/jsx-runtime";
|
|
35658
35671
|
function BoardColumn({
|
|
35659
35672
|
column,
|
|
35660
35673
|
collapsed = false,
|
|
@@ -35693,7 +35706,7 @@ function BoardColumn({
|
|
|
35693
35706
|
onArchive: !collapsed && column.archivable && onArchive ? () => onArchive(column.id) : void 0
|
|
35694
35707
|
}
|
|
35695
35708
|
),
|
|
35696
|
-
!collapsed && /* @__PURE__ */ jsxs213(
|
|
35709
|
+
!collapsed && /* @__PURE__ */ jsxs213(Fragment51, { children: [
|
|
35697
35710
|
/* @__PURE__ */ jsx273("div", { "aria-hidden": true, className: "-mx-[var(--spacing-system-sf)] h-px shrink-0 bg-ods-border" }),
|
|
35698
35711
|
/* @__PURE__ */ jsx273(
|
|
35699
35712
|
ColumnBody,
|
|
@@ -35786,7 +35799,7 @@ function SkeletonStack({ count = 4 }) {
|
|
|
35786
35799
|
() => Array.from({ length: count }, () => Math.random().toString(36).slice(2)),
|
|
35787
35800
|
[count]
|
|
35788
35801
|
);
|
|
35789
|
-
return /* @__PURE__ */ jsx273(
|
|
35802
|
+
return /* @__PURE__ */ jsx273(Fragment51, { children: keys.map((k) => /* @__PURE__ */ jsx273(TicketCardSkeleton, {}, k)) });
|
|
35790
35803
|
}
|
|
35791
35804
|
function EmptyState2() {
|
|
35792
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: [
|
|
@@ -36208,7 +36221,7 @@ import { useRef as useRef48 } from "react";
|
|
|
36208
36221
|
import { usePreventScroll as usePreventScroll3 } from "@react-aria/overlays";
|
|
36209
36222
|
init_button2();
|
|
36210
36223
|
import { X as X10 } from "lucide-react";
|
|
36211
|
-
import { Fragment as
|
|
36224
|
+
import { Fragment as Fragment53, jsx as jsx276, jsxs as jsxs215 } from "react/jsx-runtime";
|
|
36212
36225
|
var MOBILE_NAV_PANEL_ID = "mobile-nav-panel";
|
|
36213
36226
|
function MobileNavPanel({ isOpen, config }) {
|
|
36214
36227
|
const panelRef = useRef48(null);
|
|
@@ -36264,7 +36277,7 @@ function MobileNavPanel({ isOpen, config }) {
|
|
|
36264
36277
|
item.id
|
|
36265
36278
|
);
|
|
36266
36279
|
};
|
|
36267
|
-
return /* @__PURE__ */ jsxs215(
|
|
36280
|
+
return /* @__PURE__ */ jsxs215(Fragment53, { children: [
|
|
36268
36281
|
/* @__PURE__ */ jsx276(
|
|
36269
36282
|
"div",
|
|
36270
36283
|
{
|
|
@@ -36367,7 +36380,7 @@ function MingoAiButton({ source, icon, label = "Mingo AI", className, onClick, .
|
|
|
36367
36380
|
}
|
|
36368
36381
|
|
|
36369
36382
|
// src/components/navigation/header.tsx
|
|
36370
|
-
import { Fragment as
|
|
36383
|
+
import { Fragment as Fragment54, jsx as jsx278, jsxs as jsxs217 } from "react/jsx-runtime";
|
|
36371
36384
|
function Header2({ config, platform }) {
|
|
36372
36385
|
const [show, setShow] = useState87(true);
|
|
36373
36386
|
const [lastScrollY, setLastScrollY] = useState87(0);
|
|
@@ -36512,7 +36525,7 @@ function Header2({ config, platform }) {
|
|
|
36512
36525
|
},
|
|
36513
36526
|
child.id
|
|
36514
36527
|
)) }),
|
|
36515
|
-
item.dropdownContent && /* @__PURE__ */ jsxs217(
|
|
36528
|
+
item.dropdownContent && /* @__PURE__ */ jsxs217(Fragment54, { children: [
|
|
36516
36529
|
item.showDropdownDivider !== false && /* @__PURE__ */ jsx278("div", { className: "h-px my-2 mx-2 bg-ods-border" }),
|
|
36517
36530
|
/* @__PURE__ */ jsx278("div", { className: "px-2 pb-2", children: item.dropdownContent })
|
|
36518
36531
|
] })
|
|
@@ -36714,7 +36727,7 @@ import { useState as useState89, useEffect as useEffect68, useRef as useRef50 }
|
|
|
36714
36727
|
import { motion as motion2, AnimatePresence, useReducedMotion } from "framer-motion";
|
|
36715
36728
|
import { usePreventScroll as usePreventScroll4 } from "@react-aria/overlays";
|
|
36716
36729
|
init_button2();
|
|
36717
|
-
import { Fragment as
|
|
36730
|
+
import { Fragment as Fragment55, jsx as jsx281, jsxs as jsxs219 } from "react/jsx-runtime";
|
|
36718
36731
|
function SlidingSidebar({ config }) {
|
|
36719
36732
|
const [expandedItems, setExpandedItems] = useState89(/* @__PURE__ */ new Set());
|
|
36720
36733
|
const [mounted, setMounted] = useState89(false);
|
|
@@ -36840,7 +36853,7 @@ function SlidingSidebar({ config }) {
|
|
|
36840
36853
|
if (!mounted) {
|
|
36841
36854
|
return null;
|
|
36842
36855
|
}
|
|
36843
|
-
return /* @__PURE__ */ jsxs219(
|
|
36856
|
+
return /* @__PURE__ */ jsxs219(Fragment55, { children: [
|
|
36844
36857
|
/* @__PURE__ */ jsx281(AnimatePresence, { children: config.isOpen && /* @__PURE__ */ jsx281(
|
|
36845
36858
|
motion2.div,
|
|
36846
36859
|
{
|
|
@@ -37141,7 +37154,7 @@ function NavigationSidebarToggle({
|
|
|
37141
37154
|
}
|
|
37142
37155
|
|
|
37143
37156
|
// src/components/navigation/navigation-sidebar.tsx
|
|
37144
|
-
import { Fragment as
|
|
37157
|
+
import { Fragment as Fragment56, jsx as jsx286, jsxs as jsxs224 } from "react/jsx-runtime";
|
|
37145
37158
|
var MINIMIZED_WIDTH = 56;
|
|
37146
37159
|
var EXPANDED_WIDTH = 224;
|
|
37147
37160
|
var STORAGE_KEY = "of.navigationSidebar.minimized";
|
|
@@ -37206,7 +37219,7 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
37206
37219
|
return () => cancelAnimationFrame(id);
|
|
37207
37220
|
}
|
|
37208
37221
|
}, [isHydrated, transitionsEnabled]);
|
|
37209
|
-
return /* @__PURE__ */ jsxs224(
|
|
37222
|
+
return /* @__PURE__ */ jsxs224(Fragment56, { children: [
|
|
37210
37223
|
/* @__PURE__ */ jsx286(
|
|
37211
37224
|
"div",
|
|
37212
37225
|
{
|
|
@@ -37245,7 +37258,7 @@ function NavigationSidebar({ config, disabled = false }) {
|
|
|
37245
37258
|
),
|
|
37246
37259
|
style: { width: sidebarWidth },
|
|
37247
37260
|
"aria-label": "Main navigation sidebar",
|
|
37248
|
-
children: isHydrated && /* @__PURE__ */ jsxs224(
|
|
37261
|
+
children: isHydrated && /* @__PURE__ */ jsxs224(Fragment56, { children: [
|
|
37249
37262
|
/* @__PURE__ */ jsx286(NavigationSidebarHeader, { minimized }),
|
|
37250
37263
|
/* @__PURE__ */ jsxs224("div", { className: "flex-1 flex flex-col justify-between py-4 overflow-y-auto", children: [
|
|
37251
37264
|
/* @__PURE__ */ jsx286("nav", { className: "flex flex-col", "aria-label": "Primary navigation", children: primaryItems.map((item) => /* @__PURE__ */ jsx286(
|
|
@@ -37658,7 +37671,7 @@ import { Suspense as Suspense2, useCallback as useCallback38, useMemo as useMemo
|
|
|
37658
37671
|
// src/components/navigation/mobile-burger-menu.tsx
|
|
37659
37672
|
import React115, { useCallback as useCallback37, useRef as useRef52 } from "react";
|
|
37660
37673
|
import { usePreventScroll as usePreventScroll5 } from "@react-aria/overlays";
|
|
37661
|
-
import { Fragment as
|
|
37674
|
+
import { Fragment as Fragment57, jsx as jsx291, jsxs as jsxs229 } from "react/jsx-runtime";
|
|
37662
37675
|
var HEADER_HEIGHT = 48;
|
|
37663
37676
|
var MobileBurgerMenu = React115.memo(function MobileBurgerMenu2({
|
|
37664
37677
|
isOpen,
|
|
@@ -37718,7 +37731,7 @@ var MobileBurgerMenu = React115.memo(function MobileBurgerMenu2({
|
|
|
37718
37731
|
);
|
|
37719
37732
|
};
|
|
37720
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)) });
|
|
37721
|
-
return /* @__PURE__ */ jsxs229(
|
|
37734
|
+
return /* @__PURE__ */ jsxs229(Fragment57, { children: [
|
|
37722
37735
|
/* @__PURE__ */ jsx291(
|
|
37723
37736
|
"div",
|
|
37724
37737
|
{
|
|
@@ -38482,7 +38495,7 @@ import React117, { useRef as useRef54, useCallback as useCallback39 } from "reac
|
|
|
38482
38495
|
import React116 from "react";
|
|
38483
38496
|
init_button2();
|
|
38484
38497
|
init_cn();
|
|
38485
|
-
import { Fragment as
|
|
38498
|
+
import { Fragment as Fragment58, jsx as jsx301, jsxs as jsxs239 } from "react/jsx-runtime";
|
|
38486
38499
|
function OnboardingStepCard({
|
|
38487
38500
|
step,
|
|
38488
38501
|
isCompleted,
|
|
@@ -38524,10 +38537,10 @@ function OnboardingStepCard({
|
|
|
38524
38537
|
/* @__PURE__ */ jsx301("h3", { className: "text-h4 text-ods-text-primary truncate", title: step.title, children: step.title }),
|
|
38525
38538
|
/* @__PURE__ */ jsx301("p", { className: "text-h6 text-ods-text-secondary truncate h-[20px]", title: step.description, children: step.description })
|
|
38526
38539
|
] }),
|
|
38527
|
-
/* @__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: [
|
|
38528
38541
|
/* @__PURE__ */ jsx301("div", { className: "h-[32px] w-[100px] bg-ods-border rounded-[6px] animate-pulse" }),
|
|
38529
38542
|
/* @__PURE__ */ jsx301("div", { className: "h-[32px] w-[120px] bg-ods-border rounded-[6px] animate-pulse" })
|
|
38530
|
-
] }) : isCompleted ? /* @__PURE__ */ jsxs239(
|
|
38543
|
+
] }) : isCompleted ? /* @__PURE__ */ jsxs239(Fragment58, { children: [
|
|
38531
38544
|
/* @__PURE__ */ jsx301(
|
|
38532
38545
|
StatusBadge,
|
|
38533
38546
|
{
|
|
@@ -38546,14 +38559,14 @@ function OnboardingStepCard({
|
|
|
38546
38559
|
children: step.completedText
|
|
38547
38560
|
}
|
|
38548
38561
|
)
|
|
38549
|
-
] }) : isSkipped ? /* @__PURE__ */ jsx301(
|
|
38562
|
+
] }) : isSkipped ? /* @__PURE__ */ jsx301(Fragment58, { children: /* @__PURE__ */ jsx301(
|
|
38550
38563
|
StatusBadge,
|
|
38551
38564
|
{
|
|
38552
38565
|
text: "SKIPPED",
|
|
38553
38566
|
variant: "card",
|
|
38554
38567
|
colorScheme: "default"
|
|
38555
38568
|
}
|
|
38556
|
-
) }) : /* @__PURE__ */ jsxs239(
|
|
38569
|
+
) }) : /* @__PURE__ */ jsxs239(Fragment58, { children: [
|
|
38557
38570
|
/* @__PURE__ */ jsx301(
|
|
38558
38571
|
Button,
|
|
38559
38572
|
{
|
|
@@ -39513,7 +39526,7 @@ function getHideClasses(hideAt) {
|
|
|
39513
39526
|
}
|
|
39514
39527
|
|
|
39515
39528
|
// src/components/ui/table/table-header.tsx
|
|
39516
|
-
import { Fragment as
|
|
39529
|
+
import { Fragment as Fragment59, jsx as jsx314, jsxs as jsxs249 } from "react/jsx-runtime";
|
|
39517
39530
|
function TableHeader({
|
|
39518
39531
|
columns,
|
|
39519
39532
|
className,
|
|
@@ -39624,10 +39637,10 @@ function TableHeader({
|
|
|
39624
39637
|
column.sortable && "cursor-pointer hover:text-ods-text-primary transition-colors"
|
|
39625
39638
|
),
|
|
39626
39639
|
onClick: () => handleSort(column),
|
|
39627
|
-
children: column.renderHeader ? /* @__PURE__ */ jsxs249(
|
|
39640
|
+
children: column.renderHeader ? /* @__PURE__ */ jsxs249(Fragment59, { children: [
|
|
39628
39641
|
column.renderHeader(),
|
|
39629
39642
|
getSortIcon(column)
|
|
39630
|
-
] }) : /* @__PURE__ */ jsxs249(
|
|
39643
|
+
] }) : /* @__PURE__ */ jsxs249(Fragment59, { children: [
|
|
39631
39644
|
/* @__PURE__ */ jsx314("span", { className: "text-h5 text-ods-text-secondary uppercase whitespace-nowrap", children: column.label }),
|
|
39632
39645
|
getSortIcon(column)
|
|
39633
39646
|
] })
|
|
@@ -39682,7 +39695,7 @@ function TableCell({
|
|
|
39682
39695
|
|
|
39683
39696
|
// src/components/ui/table/table-skeleton.tsx
|
|
39684
39697
|
init_cn();
|
|
39685
|
-
import { Fragment as
|
|
39698
|
+
import { Fragment as Fragment60, jsx as jsx316, jsxs as jsxs250 } from "react/jsx-runtime";
|
|
39686
39699
|
var ROW_HEIGHT_DESKTOP = "h-[68px] md:h-[80px]";
|
|
39687
39700
|
var ROW_HEIGHT_MOBILE = "h-[68px]";
|
|
39688
39701
|
function TableCardSkeleton({
|
|
@@ -39694,7 +39707,7 @@ function TableCardSkeleton({
|
|
|
39694
39707
|
rowClassName
|
|
39695
39708
|
}) {
|
|
39696
39709
|
const primaryKey = (columns.find((c) => /flex-(1|\[)/.test(c.width || "")) ?? columns[0])?.key;
|
|
39697
|
-
return /* @__PURE__ */ jsx316(
|
|
39710
|
+
return /* @__PURE__ */ jsx316(Fragment60, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs250(
|
|
39698
39711
|
"div",
|
|
39699
39712
|
{
|
|
39700
39713
|
className: cn(
|
|
@@ -39873,7 +39886,7 @@ function useTableMotion(enabled) {
|
|
|
39873
39886
|
}
|
|
39874
39887
|
|
|
39875
39888
|
// src/components/ui/table/table.tsx
|
|
39876
|
-
import { Fragment as
|
|
39889
|
+
import { Fragment as Fragment61, jsx as jsx318, jsxs as jsxs252 } from "react/jsx-runtime";
|
|
39877
39890
|
function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
|
|
39878
39891
|
const hasActions = Boolean(rowActions?.length) || Boolean(renderRowActions);
|
|
39879
39892
|
const result = [...columns];
|
|
@@ -40075,7 +40088,7 @@ function Table({
|
|
|
40075
40088
|
hasActions: Boolean(rowActions) && rowActions.length > 0,
|
|
40076
40089
|
hasChevron: Boolean(rowHref)
|
|
40077
40090
|
}
|
|
40078
|
-
) : data.length === 0 ? /* @__PURE__ */ jsx318(TableEmptyState, { message: emptyMessage }) : /* @__PURE__ */ jsxs252(
|
|
40091
|
+
) : data.length === 0 ? /* @__PURE__ */ jsx318(TableEmptyState, { message: emptyMessage }) : /* @__PURE__ */ jsxs252(Fragment61, { children: [
|
|
40079
40092
|
(() => {
|
|
40080
40093
|
const rows = data.map((item, index) => /* @__PURE__ */ jsx318(
|
|
40081
40094
|
TableRow,
|
|
@@ -40702,7 +40715,7 @@ function DataTableColumnFilter({
|
|
|
40702
40715
|
}
|
|
40703
40716
|
|
|
40704
40717
|
// src/components/ui/data-table/data-table-header.tsx
|
|
40705
|
-
import { Fragment as
|
|
40718
|
+
import { Fragment as Fragment62, jsx as jsx327, jsxs as jsxs259 } from "react/jsx-runtime";
|
|
40706
40719
|
function DataTableHeader({
|
|
40707
40720
|
className,
|
|
40708
40721
|
stickyHeader,
|
|
@@ -40798,7 +40811,7 @@ function HeaderLabel({ header }) {
|
|
|
40798
40811
|
if (typeof headerDef === "string") {
|
|
40799
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 });
|
|
40800
40813
|
}
|
|
40801
|
-
return /* @__PURE__ */ jsx327(
|
|
40814
|
+
return /* @__PURE__ */ jsx327(Fragment62, { children: flexRender(headerDef, header.getContext()) });
|
|
40802
40815
|
}
|
|
40803
40816
|
function SortIcon({ sorted }) {
|
|
40804
40817
|
if (sorted === "asc") return /* @__PURE__ */ jsx327(Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" });
|
|
@@ -40837,7 +40850,7 @@ import { flexRender as flexRender2 } from "@tanstack/react-table";
|
|
|
40837
40850
|
|
|
40838
40851
|
// src/components/ui/data-table/data-table-skeleton.tsx
|
|
40839
40852
|
init_cn();
|
|
40840
|
-
import { Fragment as
|
|
40853
|
+
import { Fragment as Fragment63, jsx as jsx329, jsxs as jsxs260 } from "react/jsx-runtime";
|
|
40841
40854
|
var ROW_HEIGHT_DESKTOP2 = "h-[68px] md:h-[80px]";
|
|
40842
40855
|
var ROW_HEIGHT_MOBILE2 = "h-[68px]";
|
|
40843
40856
|
function DataTableSkeleton({
|
|
@@ -40848,7 +40861,7 @@ function DataTableSkeleton({
|
|
|
40848
40861
|
const table = useDataTableContext();
|
|
40849
40862
|
const columns = table.getVisibleFlatColumns();
|
|
40850
40863
|
const firstColumnId = columns[0]?.id;
|
|
40851
|
-
return /* @__PURE__ */ jsx329(
|
|
40864
|
+
return /* @__PURE__ */ jsx329(Fragment63, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ jsxs260(
|
|
40852
40865
|
"div",
|
|
40853
40866
|
{
|
|
40854
40867
|
className: cn(
|
|
@@ -40904,7 +40917,7 @@ function DataTableSkeleton({
|
|
|
40904
40917
|
}
|
|
40905
40918
|
|
|
40906
40919
|
// src/components/ui/data-table/data-table-row.tsx
|
|
40907
|
-
import { Fragment as
|
|
40920
|
+
import { Fragment as Fragment64, jsx as jsx330, jsxs as jsxs261 } from "react/jsx-runtime";
|
|
40908
40921
|
function DataTableRowImpl({
|
|
40909
40922
|
row,
|
|
40910
40923
|
onClick,
|
|
@@ -41006,7 +41019,7 @@ function CellContent({ children }) {
|
|
|
41006
41019
|
if (typeof children === "string" || typeof children === "number") {
|
|
41007
41020
|
return /* @__PURE__ */ jsx330("span", { className: "text-h4 text-ods-text-primary truncate", title: String(children), children });
|
|
41008
41021
|
}
|
|
41009
|
-
return /* @__PURE__ */ jsx330(
|
|
41022
|
+
return /* @__PURE__ */ jsx330(Fragment64, { children });
|
|
41010
41023
|
}
|
|
41011
41024
|
|
|
41012
41025
|
// src/components/ui/data-table/data-table-body.tsx
|
|
@@ -41086,7 +41099,7 @@ function DataTableBody({
|
|
|
41086
41099
|
|
|
41087
41100
|
// src/components/ui/data-table/data-table-infinite-footer.tsx
|
|
41088
41101
|
import { useEffect as useEffect73, useRef as useRef60 } from "react";
|
|
41089
|
-
import { Fragment as
|
|
41102
|
+
import { Fragment as Fragment65, jsx as jsx332, jsxs as jsxs263 } from "react/jsx-runtime";
|
|
41090
41103
|
function DataTableInfiniteFooter({
|
|
41091
41104
|
hasNextPage,
|
|
41092
41105
|
isFetchingNextPage,
|
|
@@ -41110,7 +41123,7 @@ function DataTableInfiniteFooter({
|
|
|
41110
41123
|
observer.observe(sentinel);
|
|
41111
41124
|
return () => observer.disconnect();
|
|
41112
41125
|
}, [hasNextPage, isFetchingNextPage, rootMargin]);
|
|
41113
|
-
return /* @__PURE__ */ jsxs263(
|
|
41126
|
+
return /* @__PURE__ */ jsxs263(Fragment65, { children: [
|
|
41114
41127
|
isFetchingNextPage && /* @__PURE__ */ jsx332(DataTableSkeleton, { rows: skeletonRows }),
|
|
41115
41128
|
hasNextPage && /* @__PURE__ */ jsx332("div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" })
|
|
41116
41129
|
] });
|
|
@@ -42520,7 +42533,7 @@ function FileUpload({
|
|
|
42520
42533
|
import * as React128 from "react";
|
|
42521
42534
|
import { Loader2 as Loader210 } from "lucide-react";
|
|
42522
42535
|
init_cn();
|
|
42523
|
-
import { Fragment as
|
|
42536
|
+
import { Fragment as Fragment67, jsx as jsx339, jsxs as jsxs270 } from "react/jsx-runtime";
|
|
42524
42537
|
var DEFAULT_MAX_SIZE = 25 * 1024 * 1024;
|
|
42525
42538
|
function formatSize(bytes) {
|
|
42526
42539
|
const mb = bytes / (1024 * 1024);
|
|
@@ -42649,7 +42662,7 @@ function ImageUploader({
|
|
|
42649
42662
|
!hasImage && !interactive && "cursor-not-allowed",
|
|
42650
42663
|
dropzoneClassName
|
|
42651
42664
|
),
|
|
42652
|
-
children: hasImage ? /* @__PURE__ */ jsxs270(
|
|
42665
|
+
children: hasImage ? /* @__PURE__ */ jsxs270(Fragment67, { children: [
|
|
42653
42666
|
/* @__PURE__ */ jsx339("div", { className: "relative min-h-0 w-full flex-1 overflow-hidden rounded-md", children: resolvedValue && /* @__PURE__ */ jsx339(
|
|
42654
42667
|
"img",
|
|
42655
42668
|
{
|
|
@@ -42686,7 +42699,7 @@ function ImageUploader({
|
|
|
42686
42699
|
)
|
|
42687
42700
|
] }),
|
|
42688
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" }) })
|
|
42689
|
-
] }) : 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: [
|
|
42690
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" }) }),
|
|
42691
42704
|
/* @__PURE__ */ jsxs270("div", { className: "flex w-full flex-col items-center text-center", children: [
|
|
42692
42705
|
/* @__PURE__ */ jsx339("p", { className: "text-h4 text-ods-text-primary", children: label }),
|
|
@@ -42756,7 +42769,7 @@ PopoverContent.displayName = PopoverPrimitive7.Content.displayName;
|
|
|
42756
42769
|
|
|
42757
42770
|
// src/components/ui/color-preset-select.tsx
|
|
42758
42771
|
init_cn();
|
|
42759
|
-
import { Fragment as
|
|
42772
|
+
import { Fragment as Fragment68, jsx as jsx341, jsxs as jsxs271 } from "react/jsx-runtime";
|
|
42760
42773
|
var TICKET_STATUS_COLOR_PRESETS = [
|
|
42761
42774
|
{ key: "green", label: "Green", color: "#5ea62e" },
|
|
42762
42775
|
{ key: "lime", label: "Lime", color: "#8bc34a" },
|
|
@@ -42907,7 +42920,7 @@ function RgbInputs({ value, onChange }) {
|
|
|
42907
42920
|
const b = next.b ?? rgb.b;
|
|
42908
42921
|
onChange(rgbToHex(r, g, b));
|
|
42909
42922
|
};
|
|
42910
|
-
return /* @__PURE__ */ jsxs271(
|
|
42923
|
+
return /* @__PURE__ */ jsxs271(Fragment68, { children: [
|
|
42911
42924
|
/* @__PURE__ */ jsx341(ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
|
|
42912
42925
|
/* @__PURE__ */ jsx341(ChannelInput, { value: rgb.g, min: 0, max: 255, ariaLabel: "Green", onCommit: (g) => update({ g }) }),
|
|
42913
42926
|
/* @__PURE__ */ jsx341(ChannelInput, { value: rgb.b, min: 0, max: 255, ariaLabel: "Blue", onCommit: (b) => update({ b }) })
|
|
@@ -42923,7 +42936,7 @@ function HslInputs({ value, onChange }) {
|
|
|
42923
42936
|
const out = hslToRgb(h, s, l);
|
|
42924
42937
|
onChange(rgbToHex(out.r, out.g, out.b));
|
|
42925
42938
|
};
|
|
42926
|
-
return /* @__PURE__ */ jsxs271(
|
|
42939
|
+
return /* @__PURE__ */ jsxs271(Fragment68, { children: [
|
|
42927
42940
|
/* @__PURE__ */ jsx341(ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
|
|
42928
42941
|
/* @__PURE__ */ jsx341(ChannelInput, { value: hsl.s, min: 0, max: 100, ariaLabel: "Saturation", onCommit: (s) => update({ s }) }),
|
|
42929
42942
|
/* @__PURE__ */ jsx341(ChannelInput, { value: hsl.l, min: 0, max: 100, ariaLabel: "Lightness", onCommit: (l) => update({ l }) })
|
|
@@ -43220,7 +43233,7 @@ init_cn();
|
|
|
43220
43233
|
// src/components/ui/ticket-note-card.tsx
|
|
43221
43234
|
import * as React132 from "react";
|
|
43222
43235
|
init_cn();
|
|
43223
|
-
import { Fragment as
|
|
43236
|
+
import { Fragment as Fragment69, jsx as jsx345, jsxs as jsxs275 } from "react/jsx-runtime";
|
|
43224
43237
|
function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
43225
43238
|
const [isEditing, setIsEditing] = React132.useState(false);
|
|
43226
43239
|
const [editText, setEditText] = React132.useState(note.text);
|
|
@@ -43294,7 +43307,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
|
43294
43307
|
children: /* @__PURE__ */ jsx345(XmarkIcon, { className: "size-5" })
|
|
43295
43308
|
}
|
|
43296
43309
|
)
|
|
43297
|
-
] }) : /* @__PURE__ */ jsxs275(
|
|
43310
|
+
] }) : /* @__PURE__ */ jsxs275(Fragment69, { children: [
|
|
43298
43311
|
/* @__PURE__ */ jsx345("p", { className: "text-h4 text-ods-text-primary", children: note.text }),
|
|
43299
43312
|
/* @__PURE__ */ jsxs275(
|
|
43300
43313
|
"p",
|
|
@@ -43401,7 +43414,7 @@ function TicketNotesSection({
|
|
|
43401
43414
|
}
|
|
43402
43415
|
|
|
43403
43416
|
// src/components/ui/ticket-info-section.tsx
|
|
43404
|
-
import { Fragment as
|
|
43417
|
+
import { Fragment as Fragment70, jsx as jsx347, jsxs as jsxs277 } from "react/jsx-runtime";
|
|
43405
43418
|
function InfoCell2({ value, label, icon, onClick }) {
|
|
43406
43419
|
return /* @__PURE__ */ jsx347("div", { className: "flex-1 min-w-0 overflow-hidden", children: /* @__PURE__ */ jsxs277("div", { className: "flex flex-col justify-center", children: [
|
|
43407
43420
|
/* @__PURE__ */ jsxs277("div", { className: "flex items-center gap-1 w-full min-w-0", children: [
|
|
@@ -43526,7 +43539,7 @@ function TicketInfoSection({
|
|
|
43526
43539
|
)
|
|
43527
43540
|
] })
|
|
43528
43541
|
] }),
|
|
43529
|
-
expanded && /* @__PURE__ */ jsxs277(
|
|
43542
|
+
expanded && /* @__PURE__ */ jsxs277(Fragment70, { children: [
|
|
43530
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" }) }),
|
|
43531
43544
|
/* @__PURE__ */ jsxs277("div", { className: "flex flex-col gap-4 p-4 bg-ods-bg border-b border-ods-border", children: [
|
|
43532
43545
|
description && /* @__PURE__ */ jsx347(SimpleMarkdownRenderer, { content: description }),
|
|
@@ -43584,7 +43597,7 @@ function FilterPillRow({
|
|
|
43584
43597
|
|
|
43585
43598
|
// src/components/ui/image-gallery-modal.tsx
|
|
43586
43599
|
import { ChevronLeft as ChevronLeft4, ChevronRight as ChevronRight8 } from "lucide-react";
|
|
43587
|
-
import { Fragment as
|
|
43600
|
+
import { Fragment as Fragment71, jsx as jsx349, jsxs as jsxs279 } from "react/jsx-runtime";
|
|
43588
43601
|
function ImageGalleryModal({
|
|
43589
43602
|
images,
|
|
43590
43603
|
isOpen,
|
|
@@ -43640,7 +43653,7 @@ function ImageGalleryModal({
|
|
|
43640
43653
|
onClose,
|
|
43641
43654
|
className: "max-w-[95vw]",
|
|
43642
43655
|
children: /* @__PURE__ */ jsxs279("div", { className: "relative flex items-center justify-center bg-black rounded-lg", children: [
|
|
43643
|
-
images.length > 1 && /* @__PURE__ */ jsxs279(
|
|
43656
|
+
images.length > 1 && /* @__PURE__ */ jsxs279(Fragment71, { children: [
|
|
43644
43657
|
selectedImageIndex > 0 && /* @__PURE__ */ jsx349("div", { className: "absolute left-4 top-1/2 -translate-y-1/2 z-[10000]", children: /* @__PURE__ */ jsx349(
|
|
43645
43658
|
Button,
|
|
43646
43659
|
{
|
|
@@ -43758,7 +43771,7 @@ function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
|
|
|
43758
43771
|
}
|
|
43759
43772
|
|
|
43760
43773
|
// src/components/chat/entity-cards/roadmap-card.tsx
|
|
43761
|
-
import { Fragment as
|
|
43774
|
+
import { Fragment as Fragment72, jsx as jsx351, jsxs as jsxs280 } from "react/jsx-runtime";
|
|
43762
43775
|
function RoadmapCardSkeleton({ size: size2 = "default" }) {
|
|
43763
43776
|
if (size2 === "sm") {
|
|
43764
43777
|
return /* @__PURE__ */ jsxs280("span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
@@ -43820,7 +43833,7 @@ function RoadmapCard({
|
|
|
43820
43833
|
const hasScreenshots = (item.screenshots?.length ?? 0) > 0;
|
|
43821
43834
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
43822
43835
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
43823
|
-
const body = /* @__PURE__ */ jsxs280(
|
|
43836
|
+
const body = /* @__PURE__ */ jsxs280(Fragment72, { children: [
|
|
43824
43837
|
/* @__PURE__ */ jsx351(
|
|
43825
43838
|
"span",
|
|
43826
43839
|
{
|
|
@@ -44012,7 +44025,7 @@ function RoadmapCard({
|
|
|
44012
44025
|
// src/components/chat/entity-cards/github-activity-card.tsx
|
|
44013
44026
|
import React135 from "react";
|
|
44014
44027
|
import { GitPullRequest, Eye as Eye4, ExternalLink as ExternalLink8 } from "lucide-react";
|
|
44015
|
-
import { Fragment as
|
|
44028
|
+
import { Fragment as Fragment73, jsx as jsx352, jsxs as jsxs281 } from "react/jsx-runtime";
|
|
44016
44029
|
function parseRepoFromUrl(url) {
|
|
44017
44030
|
if (!url) return null;
|
|
44018
44031
|
try {
|
|
@@ -44144,7 +44157,7 @@ function GitHubActivityCard({ item, variant = "compact", className, anchorProps
|
|
|
44144
44157
|
if (repo) metaParts.push(/* @__PURE__ */ jsx352("span", { className: "font-mono truncate", children: repo }, "repo"));
|
|
44145
44158
|
if (dateText) metaParts.push(/* @__PURE__ */ jsx352("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
44146
44159
|
const href = safeHref(item.url);
|
|
44147
|
-
const body = /* @__PURE__ */ jsxs281(
|
|
44160
|
+
const body = /* @__PURE__ */ jsxs281(Fragment73, { children: [
|
|
44148
44161
|
/* @__PURE__ */ jsx352("span", { className: COMPACT_CARD_ICON_SLOT, children: kindIcon(kind, "h-5 w-5") }),
|
|
44149
44162
|
/* @__PURE__ */ jsxs281("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
44150
44163
|
/* @__PURE__ */ jsxs281("span", { className: `${COMPACT_CARD_TITLE_ROW} flex-nowrap gap-1.5`, children: [
|
|
@@ -44199,7 +44212,7 @@ function GitHubActivityCardSkeleton({ variant = "compact", className }) {
|
|
|
44199
44212
|
// src/components/chat/entity-cards/slack-message-card.tsx
|
|
44200
44213
|
import React136 from "react";
|
|
44201
44214
|
import { ExternalLink as ExternalLink9, Hash } from "lucide-react";
|
|
44202
|
-
import { Fragment as
|
|
44215
|
+
import { Fragment as Fragment74, jsx as jsx353, jsxs as jsxs282 } from "react/jsx-runtime";
|
|
44203
44216
|
function parseChannelFromUrl(url) {
|
|
44204
44217
|
if (!url) return null;
|
|
44205
44218
|
try {
|
|
@@ -44238,7 +44251,7 @@ function SlackMessageCard({ item, variant = "compact", className, anchorProps })
|
|
|
44238
44251
|
}
|
|
44239
44252
|
if (dateText) metaParts.push(/* @__PURE__ */ jsx353("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
44240
44253
|
const href = safeHref(item.url);
|
|
44241
|
-
const body = /* @__PURE__ */ jsxs282(
|
|
44254
|
+
const body = /* @__PURE__ */ jsxs282(Fragment74, { children: [
|
|
44242
44255
|
/* @__PURE__ */ jsx353("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx353(SlackIcon, { className: "h-5 w-5" }) }),
|
|
44243
44256
|
/* @__PURE__ */ jsxs282("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
44244
44257
|
/* @__PURE__ */ jsx353("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx353("span", { className: COMPACT_CARD_TITLE, children: item.title }) }),
|
|
@@ -44288,7 +44301,7 @@ function SlackMessageCardSkeleton({ variant = "compact", className }) {
|
|
|
44288
44301
|
// src/components/chat/entity-cards/hubspot-ticket-card.tsx
|
|
44289
44302
|
import React137 from "react";
|
|
44290
44303
|
import { ExternalLink as ExternalLink10 } from "lucide-react";
|
|
44291
|
-
import { Fragment as
|
|
44304
|
+
import { Fragment as Fragment75, jsx as jsx354, jsxs as jsxs283 } from "react/jsx-runtime";
|
|
44292
44305
|
function formatToken(token) {
|
|
44293
44306
|
if (!token) return null;
|
|
44294
44307
|
const lower = token.toLowerCase().replace(/_/g, " ");
|
|
@@ -44327,7 +44340,7 @@ function HubspotTicketCard({ item, variant = "compact", className, anchorProps }
|
|
|
44327
44340
|
}
|
|
44328
44341
|
if (dateText) metaParts.push(/* @__PURE__ */ jsx354("span", { className: "whitespace-nowrap", children: dateText }, "date"));
|
|
44329
44342
|
const href = safeHref(item.url);
|
|
44330
|
-
const body = /* @__PURE__ */ jsxs283(
|
|
44343
|
+
const body = /* @__PURE__ */ jsxs283(Fragment75, { children: [
|
|
44331
44344
|
/* @__PURE__ */ jsxs283("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
44332
44345
|
/* @__PURE__ */ jsxs283("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
44333
44346
|
/* @__PURE__ */ jsx354("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
@@ -44407,9 +44420,9 @@ function HubspotTicketCardSkeleton({ variant = "compact", className }) {
|
|
|
44407
44420
|
|
|
44408
44421
|
// src/components/chat/entity-cards/data-room-doc-card.tsx
|
|
44409
44422
|
import { ExternalLink as ExternalLink11 } from "lucide-react";
|
|
44410
|
-
import { Fragment as
|
|
44423
|
+
import { Fragment as Fragment76, jsx as jsx355, jsxs as jsxs284 } from "react/jsx-runtime";
|
|
44411
44424
|
function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
44412
|
-
const body = /* @__PURE__ */ jsxs284(
|
|
44425
|
+
const body = /* @__PURE__ */ jsxs284(Fragment76, { children: [
|
|
44413
44426
|
/* @__PURE__ */ jsxs284("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
44414
44427
|
/* @__PURE__ */ jsxs284("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
44415
44428
|
/* @__PURE__ */ jsx355("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
@@ -46019,7 +46032,7 @@ function cleanEscapedString(input) {
|
|
|
46019
46032
|
init_button();
|
|
46020
46033
|
import { ExternalLink as ExternalLink12, Clock as Clock2, Play as Play4, Video as Video5 } from "lucide-react";
|
|
46021
46034
|
init_cn();
|
|
46022
|
-
import { Fragment as
|
|
46035
|
+
import { Fragment as Fragment77, jsx as jsx356, jsxs as jsxs285 } from "react/jsx-runtime";
|
|
46023
46036
|
function formatUtc(date, fmt) {
|
|
46024
46037
|
return format2(new Date(date.getTime() + date.getTimezoneOffset() * 6e4), fmt);
|
|
46025
46038
|
}
|
|
@@ -46094,7 +46107,7 @@ function MediaGallery({ images, title }) {
|
|
|
46094
46107
|
setIsModalOpen(false);
|
|
46095
46108
|
setSelectedImageIndex(null);
|
|
46096
46109
|
};
|
|
46097
|
-
return /* @__PURE__ */ jsxs285(
|
|
46110
|
+
return /* @__PURE__ */ jsxs285(Fragment77, { children: [
|
|
46098
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(
|
|
46099
46112
|
"div",
|
|
46100
46113
|
{
|
|
@@ -46236,7 +46249,7 @@ function ProgramCard({
|
|
|
46236
46249
|
const dateFormat = formatUtc(itemDate, "EEEE d MMMM");
|
|
46237
46250
|
const defaultRenderMeta = () => {
|
|
46238
46251
|
if (config.type === "podcast" && "duration_seconds" in item && !isScheduled) {
|
|
46239
|
-
return /* @__PURE__ */ jsxs285(
|
|
46252
|
+
return /* @__PURE__ */ jsxs285(Fragment77, { children: [
|
|
46240
46253
|
/* @__PURE__ */ jsx356(Clock2, { className: "w-4 h-4 text-ods-text-secondary" }),
|
|
46241
46254
|
/* @__PURE__ */ jsx356("span", { className: "font-body text-ods-text-secondary", children: formatDurationCompact(item.duration_seconds) })
|
|
46242
46255
|
] });
|
|
@@ -46247,7 +46260,7 @@ function ProgramCard({
|
|
|
46247
46260
|
if (config.type === "webinar" && "start_at" in item) {
|
|
46248
46261
|
const webinarItem = item;
|
|
46249
46262
|
const duration = formatDurationFromRange(webinarItem.start_at, webinarItem.end_at);
|
|
46250
|
-
return /* @__PURE__ */ jsxs285(
|
|
46263
|
+
return /* @__PURE__ */ jsxs285(Fragment77, { children: [
|
|
46251
46264
|
/* @__PURE__ */ jsx356(Video5, { className: "w-4 h-4 text-ods-text-secondary" }),
|
|
46252
46265
|
/* @__PURE__ */ jsxs285("span", { className: "font-body text-ods-text-secondary", children: [
|
|
46253
46266
|
formatTimeWithTimezone(webinarItem.start_at, webinarItem.timezone ?? null),
|
|
@@ -46281,10 +46294,10 @@ function ProgramCard({
|
|
|
46281
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 }),
|
|
46282
46295
|
/* @__PURE__ */ jsxs285("div", { className: "flex flex-col md:flex-row md:items-center gap-2 md:gap-4 mb-4", children: [
|
|
46283
46296
|
/* @__PURE__ */ jsx356("span", { className: "text-h6", style: { color: accentColor }, children: dateFormat }),
|
|
46284
|
-
renderMeta ? /* @__PURE__ */ jsxs285(
|
|
46297
|
+
renderMeta ? /* @__PURE__ */ jsxs285(Fragment77, { children: [
|
|
46285
46298
|
/* @__PURE__ */ jsx356("span", { className: "hidden md:inline text-ods-text-secondary", children: "\u2022" }),
|
|
46286
46299
|
renderMeta(item)
|
|
46287
|
-
] }) : defaultRenderMeta() && /* @__PURE__ */ jsxs285(
|
|
46300
|
+
] }) : defaultRenderMeta() && /* @__PURE__ */ jsxs285(Fragment77, { children: [
|
|
46288
46301
|
/* @__PURE__ */ jsx356("span", { className: "hidden md:inline text-ods-text-secondary", children: "\u2022" }),
|
|
46289
46302
|
/* @__PURE__ */ jsx356("div", { className: "flex items-center gap-2", children: defaultRenderMeta() })
|
|
46290
46303
|
] })
|
|
@@ -46361,10 +46374,10 @@ function ProgramCard({
|
|
|
46361
46374
|
|
|
46362
46375
|
// src/components/chat/entity-cards/campaign-card-admin.tsx
|
|
46363
46376
|
import { Megaphone as Megaphone3 } from "lucide-react";
|
|
46364
|
-
import { Fragment as
|
|
46377
|
+
import { Fragment as Fragment78, jsx as jsx357, jsxs as jsxs286 } from "react/jsx-runtime";
|
|
46365
46378
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
46366
46379
|
const goalsCount = campaign.goals?.length || 0;
|
|
46367
|
-
const innerChildren = /* @__PURE__ */ jsxs286(
|
|
46380
|
+
const innerChildren = /* @__PURE__ */ jsxs286(Fragment78, { children: [
|
|
46368
46381
|
/* @__PURE__ */ jsx357("span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ jsx357(Megaphone3, { className: "h-5 w-5" }) }),
|
|
46369
46382
|
/* @__PURE__ */ jsxs286("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
46370
46383
|
/* @__PURE__ */ jsx357("span", { className: COMPACT_CARD_TITLE_ROW, children: /* @__PURE__ */ jsx357("span", { className: COMPACT_CARD_TITLE, children: campaign.name }) }),
|
|
@@ -46394,11 +46407,11 @@ function CampaignCardAdminSkeleton({ className }) {
|
|
|
46394
46407
|
|
|
46395
46408
|
// src/components/chat/entity-cards/generic-entity-card.tsx
|
|
46396
46409
|
import { ExternalLink as ExternalLink13 } from "lucide-react";
|
|
46397
|
-
import { Fragment as
|
|
46410
|
+
import { Fragment as Fragment79, jsx as jsx358, jsxs as jsxs287 } from "react/jsx-runtime";
|
|
46398
46411
|
function GenericEntityCard({ item, className, anchorProps }) {
|
|
46399
46412
|
const href = safeHref(item.url);
|
|
46400
46413
|
const dateText = formatDateUTC(item.dateUpdated, { fallback: "", timezone: "local" });
|
|
46401
|
-
const body = /* @__PURE__ */ jsxs287(
|
|
46414
|
+
const body = /* @__PURE__ */ jsxs287(Fragment79, { children: [
|
|
46402
46415
|
/* @__PURE__ */ jsxs287("span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
46403
46416
|
/* @__PURE__ */ jsxs287("span", { className: "flex flex-wrap items-center gap-1.5 min-w-0", children: [
|
|
46404
46417
|
/* @__PURE__ */ jsx358("span", { className: `${COMPACT_CARD_TITLE} shrink min-w-0`, children: item.title }),
|
|
@@ -46583,7 +46596,7 @@ function resolveSourceIcon(input, ctx = {}) {
|
|
|
46583
46596
|
|
|
46584
46597
|
// src/components/chat/mingo-info-card.tsx
|
|
46585
46598
|
init_cn();
|
|
46586
|
-
import { Fragment as
|
|
46599
|
+
import { Fragment as Fragment80, jsx as jsx359, jsxs as jsxs288 } from "react/jsx-runtime";
|
|
46587
46600
|
function CardMedia({
|
|
46588
46601
|
imageSrc,
|
|
46589
46602
|
imageAlt,
|
|
@@ -46627,7 +46640,7 @@ function MingoInfoCard({
|
|
|
46627
46640
|
const hasMenu = !!menuGroups && menuGroups.length > 0;
|
|
46628
46641
|
const isAnchor = !!anchorProps;
|
|
46629
46642
|
const isInteractive = isAnchor || !!onClick;
|
|
46630
|
-
const content = /* @__PURE__ */ jsxs288(
|
|
46643
|
+
const content = /* @__PURE__ */ jsxs288(Fragment80, { children: [
|
|
46631
46644
|
hasMedia && /* @__PURE__ */ jsx359(CardMedia, { imageSrc, imageAlt, icon }),
|
|
46632
46645
|
/* @__PURE__ */ jsxs288("span", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
46633
46646
|
/* @__PURE__ */ jsx359("span", { className: "truncate text-h4 text-ods-text-primary", children: title }),
|
|
@@ -46676,7 +46689,7 @@ function MingoInfoCard({
|
|
|
46676
46689
|
}
|
|
46677
46690
|
|
|
46678
46691
|
// src/components/chat/entity-cards/dispatch.tsx
|
|
46679
|
-
import { Fragment as
|
|
46692
|
+
import { Fragment as Fragment81, jsx as jsx360, jsxs as jsxs289 } from "react/jsx-runtime";
|
|
46680
46693
|
function githubKindIcon(kind) {
|
|
46681
46694
|
switch (kind) {
|
|
46682
46695
|
case "pull_request":
|
|
@@ -47644,10 +47657,10 @@ function ChatCardLoader({
|
|
|
47644
47657
|
}
|
|
47645
47658
|
);
|
|
47646
47659
|
}
|
|
47647
|
-
if (isLoading) return /* @__PURE__ */ jsx360(
|
|
47660
|
+
if (isLoading) return /* @__PURE__ */ jsx360(Fragment81, { children: entry.skeleton() });
|
|
47648
47661
|
if (!item) return null;
|
|
47649
47662
|
if (entry.bareInline) {
|
|
47650
|
-
return /* @__PURE__ */ jsx360(
|
|
47663
|
+
return /* @__PURE__ */ jsx360(Fragment81, { children: navWrap(entry.render(item, finalChatRef, renderOpts)) });
|
|
47651
47664
|
}
|
|
47652
47665
|
return /* @__PURE__ */ jsx360(
|
|
47653
47666
|
ChatCardWithDiscuss,
|
|
@@ -48570,6 +48583,7 @@ function parseChunkToAction(chunk) {
|
|
|
48570
48583
|
integratedToolType: data.integratedToolType || "",
|
|
48571
48584
|
toolFunction: data.toolFunction || "",
|
|
48572
48585
|
toolTitle: typeof data.title === "string" ? data.title : void 0,
|
|
48586
|
+
toolExplanation: typeof data.toolExplanation === "string" ? data.toolExplanation : void 0,
|
|
48573
48587
|
parameters: data.parameters,
|
|
48574
48588
|
toolExecutionRequestId: typeof data.toolExecutionRequestId === "string" ? data.toolExecutionRequestId : void 0
|
|
48575
48589
|
}
|
|
@@ -48820,6 +48834,7 @@ var MessageSegmentAccumulator = class {
|
|
|
48820
48834
|
integratedToolType: toolData.integratedToolType,
|
|
48821
48835
|
toolFunction: toolData.toolFunction,
|
|
48822
48836
|
toolTitle: toolData.toolTitle,
|
|
48837
|
+
toolExplanation: toolData.toolExplanation,
|
|
48823
48838
|
parameters: toolData.parameters
|
|
48824
48839
|
});
|
|
48825
48840
|
this.segments.push(segment);
|
|
@@ -48834,6 +48849,7 @@ var MessageSegmentAccumulator = class {
|
|
|
48834
48849
|
data: {
|
|
48835
48850
|
...toolData,
|
|
48836
48851
|
toolTitle: toolData.toolTitle ?? existingExecuting?.data.toolTitle ?? executingTool?.toolTitle,
|
|
48852
|
+
toolExplanation: toolData.toolExplanation ?? existingExecuting?.data.toolExplanation ?? executingTool?.toolExplanation,
|
|
48837
48853
|
parameters: toolData.parameters || executingTool?.parameters
|
|
48838
48854
|
}
|
|
48839
48855
|
};
|
|
@@ -51118,6 +51134,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
51118
51134
|
integratedToolType: data.integratedToolType || "",
|
|
51119
51135
|
toolFunction: data.toolFunction || "",
|
|
51120
51136
|
toolTitle: typeof data.title === "string" ? data.title : void 0,
|
|
51137
|
+
toolExplanation: typeof data.toolExplanation === "string" ? data.toolExplanation : void 0,
|
|
51121
51138
|
parameters: data.parameters,
|
|
51122
51139
|
toolExecutionRequestId: data.toolExecutionRequestId
|
|
51123
51140
|
}
|
|
@@ -51416,6 +51433,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
51416
51433
|
integratedToolType: segment.data.integratedToolType,
|
|
51417
51434
|
toolFunction: segment.data.toolFunction,
|
|
51418
51435
|
toolTitle: segment.data.toolTitle,
|
|
51436
|
+
toolExplanation: segment.data.toolExplanation,
|
|
51419
51437
|
parameters: segment.data.parameters
|
|
51420
51438
|
});
|
|
51421
51439
|
hasIncompleteState = true;
|
|
@@ -51572,6 +51590,7 @@ function applyToolExecutionToMessages(prev, segment) {
|
|
|
51572
51590
|
data: {
|
|
51573
51591
|
...toolData,
|
|
51574
51592
|
toolTitle: toolData.toolTitle ?? seg.data.toolTitle,
|
|
51593
|
+
toolExplanation: toolData.toolExplanation ?? seg.data.toolExplanation,
|
|
51575
51594
|
parameters: toolData.parameters || seg.data.parameters
|
|
51576
51595
|
}
|
|
51577
51596
|
};
|
|
@@ -53000,7 +53019,7 @@ function useChatDialogManager({
|
|
|
53000
53019
|
|
|
53001
53020
|
// src/components/chat/embeddable-chat.tsx
|
|
53002
53021
|
init_next_navigation();
|
|
53003
|
-
import { Fragment as
|
|
53022
|
+
import { Fragment as Fragment82, jsx as jsx364, jsxs as jsxs290 } from "react/jsx-runtime";
|
|
53004
53023
|
var DRAWER_DEFAULT_WIDTH_RATIO = 0.5;
|
|
53005
53024
|
var DRAWER_WIDTH_KEY = "mingo-chat-width-v3";
|
|
53006
53025
|
var DRAWER_DEFAULT_WIDTH_PX = 750;
|
|
@@ -53172,7 +53191,7 @@ function SourceChip({
|
|
|
53172
53191
|
);
|
|
53173
53192
|
}
|
|
53174
53193
|
const displayName = src.name || formatRelativePath(src.path);
|
|
53175
|
-
const chipBody = (label) => /* @__PURE__ */ jsxs290(
|
|
53194
|
+
const chipBody = (label) => /* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
53176
53195
|
icon,
|
|
53177
53196
|
/* @__PURE__ */ jsxs290("span", { className: "truncate max-w-[160px]", children: [
|
|
53178
53197
|
"[",
|
|
@@ -53979,7 +53998,7 @@ function EmbeddableChatInner({
|
|
|
53979
53998
|
// renders in the rail below); the chat block is untouched.
|
|
53980
53999
|
// Back is a full-height leading cell, matching the other
|
|
53981
54000
|
// header cells (not a small inline chevron).
|
|
53982
|
-
/* @__PURE__ */ jsxs290(
|
|
54001
|
+
/* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
53983
54002
|
/* @__PURE__ */ jsx364(
|
|
53984
54003
|
ChatHeaderIconButton,
|
|
53985
54004
|
{
|
|
@@ -53996,7 +54015,7 @@ function EmbeddableChatInner({
|
|
|
53996
54015
|
// search + archive controls. When search is open the
|
|
53997
54016
|
// inline field takes over the title area in place
|
|
53998
54017
|
// (Figma 116:51217) and the magnifier toggle is hidden.
|
|
53999
|
-
/* @__PURE__ */ jsxs290(
|
|
54018
|
+
/* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
54000
54019
|
railSearchOpen && mingoCaps.onSearchChange ? /* @__PURE__ */ jsx364(
|
|
54001
54020
|
ChatHeaderSearchField,
|
|
54002
54021
|
{
|
|
@@ -54004,7 +54023,7 @@ function EmbeddableChatInner({
|
|
|
54004
54023
|
onSearchChange: mingoCaps.onSearchChange,
|
|
54005
54024
|
onCollapse: () => setRailSearchOpen(false)
|
|
54006
54025
|
}
|
|
54007
|
-
) : /* @__PURE__ */ jsxs290(
|
|
54026
|
+
) : /* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
54008
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" }) }),
|
|
54009
54028
|
mingoCaps.onSearchChange && /* @__PURE__ */ jsx364(
|
|
54010
54029
|
ChatHeaderIconButton,
|
|
@@ -54150,7 +54169,7 @@ function EmbeddableChatInner({
|
|
|
54150
54169
|
onRetry: reloadDialogs
|
|
54151
54170
|
}
|
|
54152
54171
|
)
|
|
54153
|
-
) : /* @__PURE__ */ jsxs290(
|
|
54172
|
+
) : /* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
54154
54173
|
/* @__PURE__ */ jsx364(
|
|
54155
54174
|
"div",
|
|
54156
54175
|
{
|
|
@@ -54396,7 +54415,7 @@ function EmbeddableChatInner({
|
|
|
54396
54415
|
]
|
|
54397
54416
|
}
|
|
54398
54417
|
) }) });
|
|
54399
|
-
return /* @__PURE__ */ jsxs290(
|
|
54418
|
+
return /* @__PURE__ */ jsxs290(Fragment82, { children: [
|
|
54400
54419
|
showInternalTrigger && !shellLess && /* @__PURE__ */ jsx364(
|
|
54401
54420
|
"div",
|
|
54402
54421
|
{
|
|
@@ -55416,4 +55435,4 @@ export {
|
|
|
55416
55435
|
LogsList,
|
|
55417
55436
|
assets
|
|
55418
55437
|
};
|
|
55419
|
-
//# sourceMappingURL=chunk-
|
|
55438
|
+
//# sourceMappingURL=chunk-JFDSGGAK.js.map
|