@flamingo-stack/openframe-frontend-core 0.0.197 → 0.0.199-snapshot.20260520170030
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-4CWSZPXH.cjs.map +1 -1
- package/dist/{chunk-IMDXOVYD.cjs → chunk-C3M6R6JH.cjs} +528 -286
- package/dist/chunk-C3M6R6JH.cjs.map +1 -0
- package/dist/chunk-OII2IERE.cjs.map +1 -1
- package/dist/chunk-UC43NICZ.cjs.map +1 -1
- package/dist/chunk-V2FNIPZJ.cjs.map +1 -1
- package/dist/chunk-VJTFBYVG.cjs.map +1 -1
- package/dist/chunk-VRHGVLSL.cjs.map +1 -1
- package/dist/chunk-WZW7C7TF.cjs.map +1 -1
- package/dist/chunk-XQFFGR6U.cjs.map +1 -1
- package/dist/{chunk-GIQZAYY5.js → chunk-ZOM75JOY.js} +398 -156
- package/dist/chunk-ZOM75JOY.js.map +1 -0
- package/dist/components/chart.d.ts +14 -7
- package/dist/components/chart.d.ts.map +1 -1
- package/dist/components/chat/chat-input.d.ts.map +1 -1
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-skeleton.d.ts.map +1 -1
- package/dist/components/chat/types/component.types.d.ts +4 -0
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +1 -1
- package/dist/components/icons/index.cjs.map +1 -1
- package/dist/components/icons-v2-generated/index.cjs.map +1 -1
- package/dist/components/index.cjs +2 -2
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/platform/ScriptArguments.d.ts.map +1 -1
- package/dist/components/resizable.d.ts +1 -1
- package/dist/components/shared/product-release/product-release-card-skeleton.d.ts +1 -1
- package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
- package/dist/components/shared/product-release/product-release-card.d.ts +38 -2
- package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/toast/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +1 -1
- package/dist/components/ui/release-changelog-section.d.ts +7 -1
- package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tailwind.config.cjs +10 -7
- package/dist/tailwind.config.cjs.map +1 -1
- package/dist/tailwind.config.js +10 -7
- package/dist/tailwind.config.js.map +1 -1
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/product-release.d.ts +12 -0
- package/dist/types/product-release.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/.chat-input.md +0 -1
- package/src/components/chat/chat-container.tsx +3 -3
- package/src/components/chat/chat-input.tsx +38 -51
- package/src/components/chat/chat-message-enhanced.tsx +21 -22
- package/src/components/chat/chat-message-list.tsx +6 -6
- package/src/components/chat/chat-message-skeleton.tsx +9 -10
- package/src/components/chat/types/component.types.ts +4 -0
- package/src/components/platform/ScriptArguments.tsx +7 -6
- package/src/components/shared/product-release/product-release-card-skeleton.tsx +69 -1
- package/src/components/shared/product-release/product-release-card.tsx +334 -4
- package/src/components/shared/product-release/release-detail-page.tsx +8 -2
- package/src/components/ui/release-changelog-section.tsx +29 -2
- package/src/types/product-release.ts +12 -0
- package/tailwind.config.ts +4 -0
- package/dist/chunk-GIQZAYY5.js.map +0 -1
- package/dist/chunk-IMDXOVYD.cjs.map +0 -1
|
@@ -109,6 +109,7 @@ import {
|
|
|
109
109
|
PenEditIcon,
|
|
110
110
|
PencilIcon,
|
|
111
111
|
PlayIcon,
|
|
112
|
+
PlusCircleIcon,
|
|
112
113
|
PlusIcon,
|
|
113
114
|
PowershellLogoIcon,
|
|
114
115
|
PythonLogoIcon,
|
|
@@ -4102,7 +4103,7 @@ init_button2();
|
|
|
4102
4103
|
|
|
4103
4104
|
// src/components/plus-circle-icon.tsx
|
|
4104
4105
|
import { jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4105
|
-
function
|
|
4106
|
+
function PlusCircleIcon2({ className, whiteOverlay = false, iconSize = 24, ...props }) {
|
|
4106
4107
|
return /* @__PURE__ */ jsxs18(
|
|
4107
4108
|
"svg",
|
|
4108
4109
|
{
|
|
@@ -4265,7 +4266,7 @@ var ChatHeader = React11.forwardRef(
|
|
|
4265
4266
|
{
|
|
4266
4267
|
ref,
|
|
4267
4268
|
className: cn(
|
|
4268
|
-
"relative mx-auto w-full max-w-
|
|
4269
|
+
"relative mx-auto w-full max-w-ods-content-narrow",
|
|
4269
4270
|
className
|
|
4270
4271
|
),
|
|
4271
4272
|
...props,
|
|
@@ -4280,7 +4281,7 @@ var ChatHeader = React11.forwardRef(
|
|
|
4280
4281
|
leftIcon: /* @__PURE__ */ jsx24(Chevron02LeftIcon, { size: 24, className: "text-ods-text-primary" }),
|
|
4281
4282
|
className: cn(
|
|
4282
4283
|
cardClasses,
|
|
4283
|
-
"absolute -
|
|
4284
|
+
"absolute top-0 right-full mr-[var(--spacing-system-s)] hover:bg-ods-bg-hover"
|
|
4284
4285
|
)
|
|
4285
4286
|
}
|
|
4286
4287
|
),
|
|
@@ -4313,7 +4314,7 @@ var ChatHeader = React11.forwardRef(
|
|
|
4313
4314
|
onClick: onNewChat,
|
|
4314
4315
|
variant: "transparent",
|
|
4315
4316
|
size: "small-legacy",
|
|
4316
|
-
leftIcon: /* @__PURE__ */ jsx24(
|
|
4317
|
+
leftIcon: /* @__PURE__ */ jsx24(PlusCircleIcon2, { className: "w-5 h-5", whiteOverlay: true }),
|
|
4317
4318
|
className: "text-ods-text-primary hover:bg-ods-bg-hover",
|
|
4318
4319
|
children: "New Chat"
|
|
4319
4320
|
}
|
|
@@ -4377,7 +4378,7 @@ var ChatFooter = React11.forwardRef(
|
|
|
4377
4378
|
className
|
|
4378
4379
|
),
|
|
4379
4380
|
...props,
|
|
4380
|
-
children: /* @__PURE__ */ jsx24("div", { className: "mx-auto w-full max-w-
|
|
4381
|
+
children: /* @__PURE__ */ jsx24("div", { className: "mx-auto w-full max-w-ods-content-narrow", children })
|
|
4381
4382
|
}
|
|
4382
4383
|
);
|
|
4383
4384
|
}
|
|
@@ -4700,7 +4701,9 @@ var ChatInput = forwardRef18(
|
|
|
4700
4701
|
sending = false,
|
|
4701
4702
|
awaitingResponse = false,
|
|
4702
4703
|
placeholder = "Enter your Request...",
|
|
4703
|
-
|
|
4704
|
+
// Accepted for back-compat; consumed and discarded so the prop never
|
|
4705
|
+
// falls through to the underlying <textarea> as an unknown DOM attr.
|
|
4706
|
+
reserveAvatarOffset: _reserveAvatarOffset,
|
|
4704
4707
|
disabled = false,
|
|
4705
4708
|
autoFocus = false,
|
|
4706
4709
|
...inputProps
|
|
@@ -4896,73 +4899,51 @@ var ChatInput = forwardRef18(
|
|
|
4896
4899
|
setIsStopping(false);
|
|
4897
4900
|
}
|
|
4898
4901
|
}, [onStop, isStopping]);
|
|
4899
|
-
if (awaitingResponse) {
|
|
4900
|
-
return /* @__PURE__ */ jsxs23(
|
|
4901
|
-
"div",
|
|
4902
|
-
{
|
|
4903
|
-
className: cn(
|
|
4904
|
-
"mx-auto w-full max-w-3xl items-end gap-6",
|
|
4905
|
-
reserveAvatarOffset ? "grid grid-cols-[32px_1fr]" : "grid grid-cols-[1fr]",
|
|
4906
|
-
"flex-shrink-0",
|
|
4907
|
-
className
|
|
4908
|
-
),
|
|
4909
|
-
children: [
|
|
4910
|
-
reserveAvatarOffset && /* @__PURE__ */ jsx28("div", { className: "invisible h-8 w-8", "aria-hidden": true }),
|
|
4911
|
-
/* @__PURE__ */ jsxs23("div", { className: "relative flex items-center justify-center gap-2 rounded-md bg-ods-card border border-ods-border px-3 py-3 transition-colors", children: [
|
|
4912
|
-
/* @__PURE__ */ jsx28(ChatTypingIndicator, { size: "sm", dotClassName: "bg-ods-text-primary" }),
|
|
4913
|
-
/* @__PURE__ */ jsx28("p", { className: "text-h4 text-ods-text-secondary", children: "Waiting for Technician Response" })
|
|
4914
|
-
] })
|
|
4915
|
-
]
|
|
4916
|
-
}
|
|
4917
|
-
);
|
|
4918
|
-
}
|
|
4919
4902
|
const isStopMode = sending && !!onStop;
|
|
4920
4903
|
const sendDisabled = sending || disabled || !value.trim();
|
|
4921
|
-
return /* @__PURE__ */
|
|
4904
|
+
return /* @__PURE__ */ jsx28(
|
|
4922
4905
|
"div",
|
|
4923
4906
|
{
|
|
4924
4907
|
className: cn(
|
|
4925
|
-
"mx-auto w-full max-w-
|
|
4926
|
-
reserveAvatarOffset ? "grid grid-cols-[32px_1fr]" : "grid grid-cols-[1fr]",
|
|
4927
|
-
"flex-shrink-0",
|
|
4908
|
+
"mx-auto w-full max-w-ods-content-narrow flex-shrink-0",
|
|
4928
4909
|
className
|
|
4929
4910
|
),
|
|
4930
|
-
children: [
|
|
4931
|
-
|
|
4932
|
-
/* @__PURE__ */
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4940
|
-
|
|
4941
|
-
|
|
4942
|
-
|
|
4943
|
-
|
|
4944
|
-
|
|
4945
|
-
|
|
4946
|
-
|
|
4947
|
-
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
4953
|
-
|
|
4954
|
-
|
|
4955
|
-
|
|
4956
|
-
|
|
4957
|
-
|
|
4958
|
-
|
|
4959
|
-
|
|
4960
|
-
|
|
4961
|
-
|
|
4962
|
-
|
|
4963
|
-
|
|
4964
|
-
|
|
4965
|
-
]
|
|
4911
|
+
children: awaitingResponse ? /* @__PURE__ */ jsxs23("div", { className: "relative flex items-center justify-center gap-[var(--spacing-system-xs)] rounded-md bg-ods-card border border-ods-border px-[var(--spacing-system-s)] py-[var(--spacing-system-s)] transition-colors", children: [
|
|
4912
|
+
/* @__PURE__ */ jsx28(ChatTypingIndicator, { size: "sm", dotClassName: "bg-ods-text-primary" }),
|
|
4913
|
+
/* @__PURE__ */ jsx28("p", { className: "text-h4 text-ods-text-secondary", children: "Waiting for Technician Response" })
|
|
4914
|
+
] }) : /* @__PURE__ */ jsxs23("div", { className: "relative", children: [
|
|
4915
|
+
/* @__PURE__ */ jsx28(
|
|
4916
|
+
SlashCommandSuggestions,
|
|
4917
|
+
{
|
|
4918
|
+
commands: slashPrefix !== null ? slashSuggestions : [],
|
|
4919
|
+
highlightedIdx,
|
|
4920
|
+
onHover: setHighlightedIdx,
|
|
4921
|
+
onSelect: acceptSuggestion,
|
|
4922
|
+
resolveSourceIcon: slashCommands?.resolveSourceIcon,
|
|
4923
|
+
onAction: slashCommands?.onAction
|
|
4924
|
+
}
|
|
4925
|
+
),
|
|
4926
|
+
/* @__PURE__ */ jsx28(
|
|
4927
|
+
Textarea,
|
|
4928
|
+
{
|
|
4929
|
+
ref: textareaRef,
|
|
4930
|
+
value,
|
|
4931
|
+
onChange: handleChange,
|
|
4932
|
+
onKeyDown: handleKeyDown,
|
|
4933
|
+
placeholder: disabled ? "Connection lost. Waiting to reconnect..." : placeholder,
|
|
4934
|
+
disabled: sending || disabled,
|
|
4935
|
+
rows: 1,
|
|
4936
|
+
endIcon: isStopMode ? /* @__PURE__ */ jsx28(StopCircleIcon, { size: 20 }) : /* @__PURE__ */ jsx28(Send01Icon, { size: 20 }),
|
|
4937
|
+
endIconAsButton: true,
|
|
4938
|
+
endIconButtonProps: {
|
|
4939
|
+
onClick: isStopMode ? handleStop : handleSubmit,
|
|
4940
|
+
disabled: isStopMode ? isStopping : sendDisabled,
|
|
4941
|
+
"aria-label": isStopMode ? "Stop generation" : "Send message"
|
|
4942
|
+
},
|
|
4943
|
+
...inputProps
|
|
4944
|
+
}
|
|
4945
|
+
)
|
|
4946
|
+
] })
|
|
4966
4947
|
}
|
|
4967
4948
|
);
|
|
4968
4949
|
}
|
|
@@ -5213,7 +5194,7 @@ var ChatMessageEnhanced = forwardRef20(
|
|
|
5213
5194
|
variant: "round",
|
|
5214
5195
|
className: cn(
|
|
5215
5196
|
"flex-shrink-0",
|
|
5216
|
-
|
|
5197
|
+
isMingo ? "bg-ods-flamingo-cyan" : "bg-ods-flamingo-pink"
|
|
5217
5198
|
)
|
|
5218
5199
|
};
|
|
5219
5200
|
};
|
|
@@ -5224,20 +5205,20 @@ var ChatMessageEnhanced = forwardRef20(
|
|
|
5224
5205
|
{
|
|
5225
5206
|
ref,
|
|
5226
5207
|
className: cn(
|
|
5227
|
-
"
|
|
5208
|
+
"relative py-[var(--spacing-system-s)]",
|
|
5228
5209
|
className
|
|
5229
5210
|
),
|
|
5230
5211
|
...props,
|
|
5231
5212
|
children: [
|
|
5232
|
-
showAvatar &&
|
|
5213
|
+
showAvatar && !isSystem && !isUser && /* @__PURE__ */ jsx30("div", { className: "absolute -left-16 top-[var(--spacing-system-s)]", children: assistantIcon && !avatar ? /* @__PURE__ */ jsx30("div", { className: "flex items-center justify-center w-12 h-12 rounded-full bg-ods-accent", children: assistantIcon }) : /* @__PURE__ */ jsx30(
|
|
5233
5214
|
SquareAvatar,
|
|
5234
5215
|
{
|
|
5235
5216
|
...avatarProps,
|
|
5236
5217
|
className: cn(avatarProps.className, "w-12 h-12")
|
|
5237
5218
|
}
|
|
5238
|
-
)),
|
|
5239
|
-
/* @__PURE__ */ jsxs25("div", { className: "flex flex-
|
|
5240
|
-
/* @__PURE__ */ jsxs25("div", { className: "flex items-center justify-between gap-
|
|
5219
|
+
) }),
|
|
5220
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex flex-col gap-[var(--spacing-system-xxs)] min-w-0", children: [
|
|
5221
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center justify-between gap-[var(--spacing-system-xxs)]", children: [
|
|
5241
5222
|
/* @__PURE__ */ jsxs25("span", { className: cn(
|
|
5242
5223
|
"text-h3 !font-mono !font-medium flex-1",
|
|
5243
5224
|
authorType === "system" ? "text-ods-open-yellow" : authorType === "admin" ? "text-ods-open-yellow" : authorType === "mingo" ? "text-ods-flamingo-cyan" : authorType === "fae" ? "text-ods-flamingo-pink" : "text-ods-text-secondary"
|
|
@@ -5375,16 +5356,16 @@ function ChatMessageSkeleton({
|
|
|
5375
5356
|
"div",
|
|
5376
5357
|
{
|
|
5377
5358
|
className: cn(
|
|
5378
|
-
"
|
|
5359
|
+
"relative",
|
|
5379
5360
|
!isUser && "bg-ods-card/50 rounded-lg px-4 -mx-4",
|
|
5380
5361
|
className
|
|
5381
5362
|
),
|
|
5382
5363
|
children: [
|
|
5383
|
-
showAvatar && /* @__PURE__ */ jsx31("div", { className: cn(
|
|
5384
|
-
"
|
|
5385
|
-
|
|
5364
|
+
showAvatar && !isUser && /* @__PURE__ */ jsx31("div", { className: cn(
|
|
5365
|
+
"absolute -left-16 top-[var(--spacing-system-s)] w-12 h-12 rounded-full animate-pulse",
|
|
5366
|
+
isMingo ? "bg-gradient-to-br from-cyan-400/30 to-cyan-600/30" : "bg-gradient-to-br from-pink-400/30 to-pink-600/30"
|
|
5386
5367
|
) }),
|
|
5387
|
-
/* @__PURE__ */ jsxs26("div", { className: "flex flex-
|
|
5368
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
5388
5369
|
/* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-between pr-2", children: [
|
|
5389
5370
|
/* @__PURE__ */ jsx31("div", { className: "h-5 w-16 bg-ods-border rounded animate-pulse" }),
|
|
5390
5371
|
/* @__PURE__ */ jsx31("div", { className: "h-4 w-12 bg-ods-border rounded animate-pulse" })
|
|
@@ -5420,7 +5401,7 @@ function ChatMessageListSkeleton({
|
|
|
5420
5401
|
"scrollbar-thin scrollbar-track-transparent scrollbar-thumb-ods-border/30 hover:scrollbar-thumb-ods-text-secondary/30",
|
|
5421
5402
|
className
|
|
5422
5403
|
),
|
|
5423
|
-
children: /* @__PURE__ */ jsxs26("div", { className: cn("mx-auto flex w-full max-w-
|
|
5404
|
+
children: /* @__PURE__ */ jsxs26("div", { className: cn("mx-auto flex w-full max-w-ods-content-narrow flex-col pb-[var(--spacing-system-xs)] min-w-0", contentClassName ?? "px-[var(--spacing-system-m)]"), style: { minHeight: "100%" }, children: [
|
|
5424
5405
|
/* @__PURE__ */ jsx31("div", { className: "flex-1" }),
|
|
5425
5406
|
/* @__PURE__ */ jsx31("div", { className: "space-y-6", children: messages.map((message) => /* @__PURE__ */ jsx31(
|
|
5426
5407
|
ChatMessageSkeleton,
|
|
@@ -5770,8 +5751,8 @@ var ChatMessageList = forwardRef21(
|
|
|
5770
5751
|
{
|
|
5771
5752
|
ref: setContentRef,
|
|
5772
5753
|
className: cn(
|
|
5773
|
-
"mx-auto flex w-full max-w-
|
|
5774
|
-
contentClassName
|
|
5754
|
+
"mx-auto flex w-full max-w-ods-content-narrow flex-col pb-[var(--spacing-system-xs)] min-w-0",
|
|
5755
|
+
contentClassName ?? "px-[var(--spacing-system-m)]"
|
|
5775
5756
|
),
|
|
5776
5757
|
style: { minHeight: "100%" },
|
|
5777
5758
|
children: [
|
|
@@ -5806,8 +5787,8 @@ var ChatMessageList = forwardRef21(
|
|
|
5806
5787
|
"div",
|
|
5807
5788
|
{
|
|
5808
5789
|
className: cn(
|
|
5809
|
-
"mx-auto w-full max-w-
|
|
5810
|
-
contentClassName
|
|
5790
|
+
"mx-auto w-full max-w-ods-content-narrow flex items-center gap-[var(--spacing-system-xxs)] py-[var(--spacing-system-xs)]",
|
|
5791
|
+
contentClassName ?? "px-[var(--spacing-system-m)]"
|
|
5811
5792
|
),
|
|
5812
5793
|
style: { color: "var(--color-text-muted)" },
|
|
5813
5794
|
role: "status",
|
|
@@ -5820,8 +5801,8 @@ var ChatMessageList = forwardRef21(
|
|
|
5820
5801
|
),
|
|
5821
5802
|
pendingApprovals && pendingApprovals.length > 0 && /* @__PURE__ */ jsx33("div", { className: cn(
|
|
5822
5803
|
"border-t border-ods-border bg-ods-bg/95 backdrop-blur-sm",
|
|
5823
|
-
"mx-auto w-full max-w-
|
|
5824
|
-
contentClassName
|
|
5804
|
+
"mx-auto w-full max-w-ods-content-narrow",
|
|
5805
|
+
contentClassName ?? "px-[var(--spacing-system-m)]"
|
|
5825
5806
|
), children: /* @__PURE__ */ jsx33(
|
|
5826
5807
|
MemoizedChatMessageEnhanced,
|
|
5827
5808
|
{
|
|
@@ -11632,9 +11613,8 @@ var ScriptInfoSection = ({
|
|
|
11632
11613
|
ScriptInfoSection.displayName = "ScriptInfoSection";
|
|
11633
11614
|
|
|
11634
11615
|
// src/components/platform/ScriptArguments.tsx
|
|
11635
|
-
|
|
11616
|
+
import { Trash2 } from "lucide-react";
|
|
11636
11617
|
init_button2();
|
|
11637
|
-
import { PlusCircle as PlusCircle2, Trash2 } from "lucide-react";
|
|
11638
11618
|
import { jsx as jsx74, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
11639
11619
|
var ScriptArguments = ({
|
|
11640
11620
|
arguments: args,
|
|
@@ -11727,12 +11707,12 @@ var ScriptArguments = ({
|
|
|
11727
11707
|
Button,
|
|
11728
11708
|
{
|
|
11729
11709
|
type: "button",
|
|
11730
|
-
variant: "
|
|
11731
|
-
|
|
11710
|
+
variant: "outline",
|
|
11711
|
+
size: "small",
|
|
11732
11712
|
onClick: handleAdd,
|
|
11733
11713
|
disabled,
|
|
11734
|
-
|
|
11735
|
-
|
|
11714
|
+
className: "self-start",
|
|
11715
|
+
leftIcon: /* @__PURE__ */ jsx74(PlusCircleIcon, { className: "text-ods-text-secondary" }),
|
|
11736
11716
|
children: addButtonLabel
|
|
11737
11717
|
}
|
|
11738
11718
|
) })
|
|
@@ -13884,13 +13864,13 @@ var CommunityIcon = MessageSquare;
|
|
|
13884
13864
|
var CompareIcon = GitCompare;
|
|
13885
13865
|
|
|
13886
13866
|
// src/components/icons-block.tsx
|
|
13887
|
-
import { Sun, Moon, CheckCircle as CheckCircle3, Github as Github2, PlusCircle as
|
|
13867
|
+
import { Sun, Moon, CheckCircle as CheckCircle3, Github as Github2, PlusCircle as PlusCircle2 } from "lucide-react";
|
|
13888
13868
|
import { jsx as jsx99, jsxs as jsxs79 } from "react/jsx-runtime";
|
|
13889
13869
|
var SunIcon = Sun;
|
|
13890
13870
|
var MoonIcon = Moon;
|
|
13891
13871
|
var CheckCircleIcon2 = CheckCircle3;
|
|
13892
13872
|
var GitHubIcon2 = Github2;
|
|
13893
|
-
var
|
|
13873
|
+
var PlusCircleIcon3 = PlusCircle2;
|
|
13894
13874
|
var OpenmspLogo2 = () => /* @__PURE__ */ jsx99("div", { children: "Logo" });
|
|
13895
13875
|
var availableIcons = [
|
|
13896
13876
|
VendorDirectoryIcon,
|
|
@@ -13903,7 +13883,7 @@ var availableIcons = [
|
|
|
13903
13883
|
MoonIcon,
|
|
13904
13884
|
CheckCircleIcon2,
|
|
13905
13885
|
GitHubIcon2,
|
|
13906
|
-
|
|
13886
|
+
PlusCircleIcon3,
|
|
13907
13887
|
OpenmspLogo2
|
|
13908
13888
|
];
|
|
13909
13889
|
function ResponsiveIconsBlock({ loading = false }) {
|
|
@@ -17284,8 +17264,18 @@ function OnboardingWalkthrough({
|
|
|
17284
17264
|
}
|
|
17285
17265
|
|
|
17286
17266
|
// src/components/shared/product-release/product-release-card.tsx
|
|
17267
|
+
import Image8 from "next/image";
|
|
17287
17268
|
init_cn();
|
|
17288
|
-
import {
|
|
17269
|
+
import {
|
|
17270
|
+
AlertTriangle,
|
|
17271
|
+
ChevronRight as ChevronRight6,
|
|
17272
|
+
Eye,
|
|
17273
|
+
Package as Package3,
|
|
17274
|
+
Play,
|
|
17275
|
+
Sparkles as Sparkles2,
|
|
17276
|
+
TrendingUp,
|
|
17277
|
+
Wrench
|
|
17278
|
+
} from "lucide-react";
|
|
17289
17279
|
import { Fragment as Fragment20, jsx as jsx138, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
17290
17280
|
function ProductReleaseCard({
|
|
17291
17281
|
title,
|
|
@@ -17295,8 +17285,181 @@ function ProductReleaseCard({
|
|
|
17295
17285
|
onClick,
|
|
17296
17286
|
anchorProps,
|
|
17297
17287
|
className,
|
|
17298
|
-
size = "default"
|
|
17288
|
+
size = "default",
|
|
17289
|
+
coverImage,
|
|
17290
|
+
hasVideoCover,
|
|
17291
|
+
releaseType,
|
|
17292
|
+
releaseStatus,
|
|
17293
|
+
releaseTypeBadgeColor,
|
|
17294
|
+
viewCount,
|
|
17295
|
+
author,
|
|
17296
|
+
changelogCounts
|
|
17299
17297
|
}) {
|
|
17298
|
+
if (size === "catalog") {
|
|
17299
|
+
const totalChangelog = (changelogCounts?.features ?? 0) + (changelogCounts?.fixes ?? 0) + (changelogCounts?.improvements ?? 0) + (changelogCounts?.breaking ?? 0);
|
|
17300
|
+
const valueCells = [];
|
|
17301
|
+
if (releaseType && releaseTypeBadgeColor) {
|
|
17302
|
+
valueCells.push({
|
|
17303
|
+
value: releaseType.toUpperCase(),
|
|
17304
|
+
label: "Type",
|
|
17305
|
+
uppercase: true,
|
|
17306
|
+
colorScheme: releaseTypeBadgeColor
|
|
17307
|
+
});
|
|
17308
|
+
}
|
|
17309
|
+
if (releaseStatus) {
|
|
17310
|
+
valueCells.push({
|
|
17311
|
+
value: releaseStatus.toUpperCase(),
|
|
17312
|
+
label: "Status",
|
|
17313
|
+
uppercase: true
|
|
17314
|
+
});
|
|
17315
|
+
}
|
|
17316
|
+
if (formattedDate) {
|
|
17317
|
+
valueCells.push({
|
|
17318
|
+
value: formattedDate,
|
|
17319
|
+
label: "Released",
|
|
17320
|
+
uppercase: false
|
|
17321
|
+
});
|
|
17322
|
+
}
|
|
17323
|
+
const hasAuthorCell = !!author?.full_name;
|
|
17324
|
+
const totalCells = valueCells.length + (hasAuthorCell ? 1 : 0);
|
|
17325
|
+
const gridColsClass = totalCells >= 4 ? "md:grid-cols-4" : totalCells === 3 ? "md:grid-cols-3" : totalCells === 2 ? "md:grid-cols-2" : "md:grid-cols-1";
|
|
17326
|
+
const dividerClass = "border-b md:border-b-0 md:border-r border-ods-border";
|
|
17327
|
+
const frameClass = cn(
|
|
17328
|
+
"group bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden",
|
|
17329
|
+
"flex flex-col p-6 gap-4",
|
|
17330
|
+
"transition-all duration-300 ease-out transform hover:translate-y-[-2px]",
|
|
17331
|
+
"hover:border-ods-accent hover:shadow-lg hover:shadow-ods-accent/[0.08]",
|
|
17332
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-2 focus-visible:ring-offset-ods-bg",
|
|
17333
|
+
"no-underline",
|
|
17334
|
+
className
|
|
17335
|
+
);
|
|
17336
|
+
const innerLayout = /* @__PURE__ */ jsxs110(Fragment20, { children: [
|
|
17337
|
+
/* @__PURE__ */ jsxs110("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
17338
|
+
/* @__PURE__ */ jsx138("div", { className: "w-full md:w-[256px] flex-shrink-0", children: /* @__PURE__ */ jsxs110("div", { className: "relative rounded-lg overflow-hidden w-full aspect-[16/9] bg-ods-bg", children: [
|
|
17339
|
+
coverImage ? /* @__PURE__ */ jsx138(
|
|
17340
|
+
Image8,
|
|
17341
|
+
{
|
|
17342
|
+
src: coverImage,
|
|
17343
|
+
alt: title,
|
|
17344
|
+
fill: true,
|
|
17345
|
+
sizes: "(max-width: 768px) 100vw, 256px",
|
|
17346
|
+
className: "object-cover",
|
|
17347
|
+
unoptimized: true
|
|
17348
|
+
}
|
|
17349
|
+
) : /* @__PURE__ */ jsx138("div", { className: "absolute inset-0 flex items-center justify-center text-ods-text-secondary", children: /* @__PURE__ */ jsx138(Package3, { className: "w-8 h-8" }) }),
|
|
17350
|
+
hasVideoCover && coverImage && /* @__PURE__ */ jsx138("span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx138(Play, { className: "w-10 h-10 text-white", fill: "white" }) })
|
|
17351
|
+
] }) }),
|
|
17352
|
+
/* @__PURE__ */ jsxs110("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
17353
|
+
/* @__PURE__ */ jsx138("div", { className: "flex items-center gap-3 mb-3", children: /* @__PURE__ */ jsxs110("span", { className: "font-mono font-semibold text-lg text-ods-text-primary truncate", children: [
|
|
17354
|
+
"v",
|
|
17355
|
+
version
|
|
17356
|
+
] }) }),
|
|
17357
|
+
/* @__PURE__ */ jsx138("h3", { className: "font-['Azeret_Mono'] font-semibold text-xl md:text-2xl text-ods-text-primary leading-tight line-clamp-2 mb-3", children: title }),
|
|
17358
|
+
summary && /* @__PURE__ */ jsx138("p", { className: "font-['DM_Sans'] text-sm md:text-base text-ods-text-secondary leading-relaxed line-clamp-4 flex-1", children: summary })
|
|
17359
|
+
] })
|
|
17360
|
+
] }),
|
|
17361
|
+
totalChangelog > 0 && changelogCounts && /* @__PURE__ */ jsxs110("div", { className: "border-t border-ods-border pt-3 flex flex-wrap items-center gap-x-4 gap-y-1.5 font-['DM_Sans'] text-sm text-ods-text-secondary", children: [
|
|
17362
|
+
changelogCounts.features > 0 && /* @__PURE__ */ jsxs110("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
17363
|
+
/* @__PURE__ */ jsx138(Sparkles2, { className: "w-3.5 h-3.5" }),
|
|
17364
|
+
changelogCounts.features,
|
|
17365
|
+
" ",
|
|
17366
|
+
changelogCounts.features === 1 ? "feature" : "features"
|
|
17367
|
+
] }),
|
|
17368
|
+
changelogCounts.fixes > 0 && /* @__PURE__ */ jsxs110("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
17369
|
+
/* @__PURE__ */ jsx138(Wrench, { className: "w-3.5 h-3.5" }),
|
|
17370
|
+
changelogCounts.fixes,
|
|
17371
|
+
" ",
|
|
17372
|
+
changelogCounts.fixes === 1 ? "fix" : "fixes"
|
|
17373
|
+
] }),
|
|
17374
|
+
changelogCounts.improvements > 0 && /* @__PURE__ */ jsxs110("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
17375
|
+
/* @__PURE__ */ jsx138(TrendingUp, { className: "w-3.5 h-3.5" }),
|
|
17376
|
+
changelogCounts.improvements,
|
|
17377
|
+
" ",
|
|
17378
|
+
changelogCounts.improvements === 1 ? "improvement" : "improvements"
|
|
17379
|
+
] }),
|
|
17380
|
+
changelogCounts.breaking > 0 && /* @__PURE__ */ jsxs110("span", { className: "inline-flex items-center gap-1.5 text-[var(--ods-attention-yellow-warning)]", children: [
|
|
17381
|
+
/* @__PURE__ */ jsx138(AlertTriangle, { className: "w-3.5 h-3.5" }),
|
|
17382
|
+
changelogCounts.breaking,
|
|
17383
|
+
" breaking"
|
|
17384
|
+
] })
|
|
17385
|
+
] }),
|
|
17386
|
+
totalCells > 0 && /* @__PURE__ */ jsxs110(
|
|
17387
|
+
"div",
|
|
17388
|
+
{
|
|
17389
|
+
className: cn(
|
|
17390
|
+
"grid grid-cols-1",
|
|
17391
|
+
gridColsClass,
|
|
17392
|
+
"border border-ods-border rounded-md overflow-hidden w-full"
|
|
17393
|
+
),
|
|
17394
|
+
children: [
|
|
17395
|
+
valueCells.map((cell, i) => /* @__PURE__ */ jsx138(
|
|
17396
|
+
"div",
|
|
17397
|
+
{
|
|
17398
|
+
className: cn(
|
|
17399
|
+
"bg-ods-card p-4 flex flex-col gap-3",
|
|
17400
|
+
// Last value cell skips the trailing divider when no
|
|
17401
|
+
// author cell follows; otherwise every value cell gets it.
|
|
17402
|
+
(i < valueCells.length - 1 || hasAuthorCell) && dividerClass
|
|
17403
|
+
),
|
|
17404
|
+
children: /* @__PURE__ */ jsxs110("div", { className: "flex flex-col gap-0", children: [
|
|
17405
|
+
cell.colorScheme ? /* @__PURE__ */ jsx138(
|
|
17406
|
+
StatusBadge,
|
|
17407
|
+
{
|
|
17408
|
+
text: cell.value,
|
|
17409
|
+
variant: "card",
|
|
17410
|
+
colorScheme: cell.colorScheme,
|
|
17411
|
+
singleLine: true,
|
|
17412
|
+
className: "self-start"
|
|
17413
|
+
}
|
|
17414
|
+
) : /* @__PURE__ */ jsx138("p", { className: "text-h4 text-ods-text-primary", children: cell.uppercase ? cell.value.toLocaleUpperCase() : cell.value }),
|
|
17415
|
+
/* @__PURE__ */ jsx138("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: cell.label })
|
|
17416
|
+
] })
|
|
17417
|
+
},
|
|
17418
|
+
`${cell.label}-${i}`
|
|
17419
|
+
)),
|
|
17420
|
+
hasAuthorCell && author && /* @__PURE__ */ jsxs110("div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
|
|
17421
|
+
/* @__PURE__ */ jsx138(
|
|
17422
|
+
SquareAvatar,
|
|
17423
|
+
{
|
|
17424
|
+
src: author.avatar_url ?? void 0,
|
|
17425
|
+
alt: author.full_name,
|
|
17426
|
+
fallback: author.full_name.charAt(0).toUpperCase(),
|
|
17427
|
+
size: "md",
|
|
17428
|
+
variant: "round"
|
|
17429
|
+
}
|
|
17430
|
+
),
|
|
17431
|
+
/* @__PURE__ */ jsxs110("div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
|
|
17432
|
+
/* @__PURE__ */ jsx138("p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: author.full_name }),
|
|
17433
|
+
/* @__PURE__ */ jsx138("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: author.job_title || "Author" })
|
|
17434
|
+
] })
|
|
17435
|
+
] })
|
|
17436
|
+
]
|
|
17437
|
+
}
|
|
17438
|
+
),
|
|
17439
|
+
typeof viewCount === "number" && viewCount > 0 && /* @__PURE__ */ jsxs110("div", { className: "flex items-center gap-1.5 text-xs text-ods-text-secondary", children: [
|
|
17440
|
+
/* @__PURE__ */ jsx138(Eye, { className: "w-3.5 h-3.5" }),
|
|
17441
|
+
/* @__PURE__ */ jsxs110("span", { children: [
|
|
17442
|
+
viewCount.toLocaleString(),
|
|
17443
|
+
" views"
|
|
17444
|
+
] })
|
|
17445
|
+
] })
|
|
17446
|
+
] });
|
|
17447
|
+
if (anchorProps) {
|
|
17448
|
+
return /* @__PURE__ */ jsx138("a", { ...anchorProps, className: frameClass, "aria-label": `Open ${title}`, children: innerLayout });
|
|
17449
|
+
}
|
|
17450
|
+
if (onClick) {
|
|
17451
|
+
return /* @__PURE__ */ jsx138(InteractiveCard, { clickable: true, onClick, className: frameClass, children: innerLayout });
|
|
17452
|
+
}
|
|
17453
|
+
return /* @__PURE__ */ jsx138(
|
|
17454
|
+
"div",
|
|
17455
|
+
{
|
|
17456
|
+
className: cn(
|
|
17457
|
+
frameClass.replace("hover:border-ods-accent", "").replace("hover:translate-y-[-2px]", "")
|
|
17458
|
+
),
|
|
17459
|
+
children: innerLayout
|
|
17460
|
+
}
|
|
17461
|
+
);
|
|
17462
|
+
}
|
|
17300
17463
|
if (size === "sm") {
|
|
17301
17464
|
const handleKey = (e) => {
|
|
17302
17465
|
if (!onClick) return;
|
|
@@ -17323,7 +17486,20 @@ function ProductReleaseCard({
|
|
|
17323
17486
|
className
|
|
17324
17487
|
);
|
|
17325
17488
|
const innerChildren = /* @__PURE__ */ jsxs110(Fragment20, { children: [
|
|
17326
|
-
/* @__PURE__ */
|
|
17489
|
+
/* @__PURE__ */ jsxs110("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: [
|
|
17490
|
+
coverImage ? /* @__PURE__ */ jsx138(
|
|
17491
|
+
Image8,
|
|
17492
|
+
{
|
|
17493
|
+
src: coverImage,
|
|
17494
|
+
alt: title,
|
|
17495
|
+
fill: true,
|
|
17496
|
+
sizes: "56px",
|
|
17497
|
+
className: "object-contain",
|
|
17498
|
+
unoptimized: true
|
|
17499
|
+
}
|
|
17500
|
+
) : /* @__PURE__ */ jsx138(Package3, { className: "h-5 w-5" }),
|
|
17501
|
+
hasVideoCover && coverImage && /* @__PURE__ */ jsx138("span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx138(Play, { className: "h-4 w-4 text-white", fill: "white" }) })
|
|
17502
|
+
] }),
|
|
17327
17503
|
/* @__PURE__ */ jsxs110("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5 min-h-14", children: [
|
|
17328
17504
|
/* @__PURE__ */ jsxs110("span", { className: "flex items-center gap-2 min-w-0 h-5", children: [
|
|
17329
17505
|
/* @__PURE__ */ jsx138("span", { className: "truncate text-sm font-semibold leading-5 text-ods-text-primary min-w-0", children: title }),
|
|
@@ -17420,6 +17596,52 @@ function ProductReleaseCard({
|
|
|
17420
17596
|
init_cn();
|
|
17421
17597
|
import { jsx as jsx139, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
17422
17598
|
function ProductReleaseCardSkeleton({ className, size = "default" }) {
|
|
17599
|
+
if (size === "catalog") {
|
|
17600
|
+
return /* @__PURE__ */ jsxs111(
|
|
17601
|
+
"div",
|
|
17602
|
+
{
|
|
17603
|
+
className: cn(
|
|
17604
|
+
"bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden",
|
|
17605
|
+
"flex flex-col p-6 gap-4",
|
|
17606
|
+
"animate-pulse",
|
|
17607
|
+
className
|
|
17608
|
+
),
|
|
17609
|
+
children: [
|
|
17610
|
+
/* @__PURE__ */ jsxs111("div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
|
|
17611
|
+
/* @__PURE__ */ jsx139("div", { className: "w-full md:w-[256px] aspect-[16/9] bg-ods-bg rounded-lg flex-shrink-0" }),
|
|
17612
|
+
/* @__PURE__ */ jsxs111("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
17613
|
+
/* @__PURE__ */ jsx139("div", { className: "h-6 w-20 bg-ods-bg rounded mb-3" }),
|
|
17614
|
+
/* @__PURE__ */ jsx139("div", { className: "h-7 w-3/4 bg-ods-bg rounded mb-2" }),
|
|
17615
|
+
/* @__PURE__ */ jsx139("div", { className: "h-7 w-1/2 bg-ods-bg rounded mb-3" }),
|
|
17616
|
+
/* @__PURE__ */ jsx139("div", { className: "h-3 w-full bg-ods-bg/60 rounded mb-1" }),
|
|
17617
|
+
/* @__PURE__ */ jsx139("div", { className: "h-3 w-5/6 bg-ods-bg/60 rounded" })
|
|
17618
|
+
] })
|
|
17619
|
+
] }),
|
|
17620
|
+
/* @__PURE__ */ jsx139("div", { className: "border-t border-ods-border pt-3", children: /* @__PURE__ */ jsx139("div", { className: "h-4 w-2/3 bg-ods-bg/60 rounded" }) }),
|
|
17621
|
+
/* @__PURE__ */ jsxs111("div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
|
|
17622
|
+
[0, 1, 2].map((i) => /* @__PURE__ */ jsx139(
|
|
17623
|
+
"div",
|
|
17624
|
+
{
|
|
17625
|
+
className: "bg-ods-card p-4 flex flex-col gap-3 border-b md:border-b-0 md:border-r border-ods-border",
|
|
17626
|
+
children: /* @__PURE__ */ jsxs111("div", { className: "flex flex-col gap-2", children: [
|
|
17627
|
+
/* @__PURE__ */ jsx139("div", { className: "h-6 w-24 bg-ods-bg rounded" }),
|
|
17628
|
+
/* @__PURE__ */ jsx139("div", { className: "h-3 w-16 bg-ods-bg/60 rounded" })
|
|
17629
|
+
] })
|
|
17630
|
+
},
|
|
17631
|
+
`cell-${i}`
|
|
17632
|
+
)),
|
|
17633
|
+
/* @__PURE__ */ jsxs111("div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
|
|
17634
|
+
/* @__PURE__ */ jsx139("div", { className: "h-10 w-10 rounded-full bg-ods-bg shrink-0" }),
|
|
17635
|
+
/* @__PURE__ */ jsxs111("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
|
|
17636
|
+
/* @__PURE__ */ jsx139("div", { className: "h-4 w-3/4 bg-ods-bg rounded" }),
|
|
17637
|
+
/* @__PURE__ */ jsx139("div", { className: "h-3 w-1/2 bg-ods-bg/60 rounded" })
|
|
17638
|
+
] })
|
|
17639
|
+
] })
|
|
17640
|
+
] })
|
|
17641
|
+
]
|
|
17642
|
+
}
|
|
17643
|
+
);
|
|
17644
|
+
}
|
|
17423
17645
|
if (size === "sm") {
|
|
17424
17646
|
return /* @__PURE__ */ jsxs111(
|
|
17425
17647
|
"span",
|
|
@@ -17537,6 +17759,7 @@ function ReleaseChangelogSection({
|
|
|
17537
17759
|
hideTitle = false,
|
|
17538
17760
|
collapsible = false,
|
|
17539
17761
|
defaultCollapsed = true,
|
|
17762
|
+
icon,
|
|
17540
17763
|
SimpleMarkdownRenderer: SimpleMarkdownRenderer2
|
|
17541
17764
|
}) {
|
|
17542
17765
|
const [collapsed, setCollapsed] = useState33(collapsible ? defaultCollapsed : false);
|
|
@@ -17551,6 +17774,7 @@ function ReleaseChangelogSection({
|
|
|
17551
17774
|
className: "flex items-center justify-between w-full cursor-pointer",
|
|
17552
17775
|
children: [
|
|
17553
17776
|
/* @__PURE__ */ jsxs113("h2", { className: `flex items-center gap-2 text-2xl font-bold ${isBreaking ? "text-red-500" : "text-ods-text-primary"}`, children: [
|
|
17777
|
+
icon,
|
|
17554
17778
|
title,
|
|
17555
17779
|
/* @__PURE__ */ jsx142(Badge, { variant: "secondary", className: "ml-2", children: entries.length })
|
|
17556
17780
|
] }),
|
|
@@ -17563,12 +17787,26 @@ function ReleaseChangelogSection({
|
|
|
17563
17787
|
]
|
|
17564
17788
|
}
|
|
17565
17789
|
) : /* @__PURE__ */ jsxs113("h2", { className: `flex items-center gap-2 text-2xl font-bold ${isBreaking ? "text-red-500" : "text-ods-text-primary"}`, children: [
|
|
17790
|
+
icon,
|
|
17566
17791
|
title,
|
|
17567
17792
|
/* @__PURE__ */ jsx142(Badge, { variant: "secondary", className: "ml-2", children: entries.length })
|
|
17568
17793
|
] })),
|
|
17569
17794
|
showEntries && /* @__PURE__ */ jsx142("ul", { className: "space-y-6", children: entries.map((entry, index) => /* @__PURE__ */ jsxs113("li", { className: "border-l-2 border-ods-border pl-4 ml-0", children: [
|
|
17570
|
-
/* @__PURE__ */ jsx142("p", { className: "
|
|
17571
|
-
entry.description && /*
|
|
17795
|
+
/* @__PURE__ */ jsx142("p", { className: "text-h3 text-ods-text-primary mb-2", children: entry.title }),
|
|
17796
|
+
entry.description && /* Entry description — body text matches the main release
|
|
17797
|
+
summary (release-detail-page.tsx:321) at the SAME 14/18px
|
|
17798
|
+
responsive `text-h4` scale. The `SimpleMarkdownRenderer`
|
|
17799
|
+
forces its own `<p>` typography
|
|
17800
|
+
(`text-[16px] md:text-[18px] lg:text-[20px]`) which
|
|
17801
|
+
overrides the wrapper's `text-h4` on `lg+` viewports and
|
|
17802
|
+
inflates the changelog body to 20px — larger than the
|
|
17803
|
+
main summary AND larger than the entry title.
|
|
17804
|
+
The `[&_p]:!` overrides pin every descendant `<p>` back
|
|
17805
|
+
to the h4 responsive tokens (`var(--font-size-h4-body)`
|
|
17806
|
+
+ `var(--font-line-space-h4-body)`) — same variables
|
|
17807
|
+
`text-h4` itself uses, so the responsive breakpoints
|
|
17808
|
+
stay aligned with the rest of the page. */
|
|
17809
|
+
/* @__PURE__ */ jsx142("div", { className: "text-h4 text-ods-text-primary [&_p]:!text-[length:var(--font-size-h4-body)] [&_p]:!leading-[var(--font-line-space-h4-body)] [&_p]:!font-medium", children: /* @__PURE__ */ jsx142(SimpleMarkdownRenderer2, { content: entry.description }) })
|
|
17572
17810
|
] }, index)) })
|
|
17573
17811
|
] });
|
|
17574
17812
|
}
|
|
@@ -17576,7 +17814,7 @@ function ReleaseChangelogSection({
|
|
|
17576
17814
|
// src/components/ui/image-gallery-modal.tsx
|
|
17577
17815
|
import { useState as useState34, useEffect as useEffect26 } from "react";
|
|
17578
17816
|
import { ChevronLeft as ChevronLeft3, ChevronRight as ChevronRight7 } from "lucide-react";
|
|
17579
|
-
import
|
|
17817
|
+
import Image9 from "next/image";
|
|
17580
17818
|
import { Fragment as Fragment21, jsx as jsx143, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
17581
17819
|
function ImageGalleryModal({
|
|
17582
17820
|
images,
|
|
@@ -17656,7 +17894,7 @@ function ImageGalleryModal({
|
|
|
17656
17894
|
) })
|
|
17657
17895
|
] }),
|
|
17658
17896
|
images[selectedImageIndex] && /* @__PURE__ */ jsx143("div", { className: "relative w-[90vw] h-[90vh] max-w-none flex items-center justify-center", children: /* @__PURE__ */ jsx143(
|
|
17659
|
-
|
|
17897
|
+
Image9,
|
|
17660
17898
|
{
|
|
17661
17899
|
src: images[selectedImageIndex],
|
|
17662
17900
|
alt: `Screenshot ${selectedImageIndex + 1}`,
|
|
@@ -17696,7 +17934,7 @@ function ImageGalleryModal({
|
|
|
17696
17934
|
}
|
|
17697
17935
|
|
|
17698
17936
|
// src/components/shared/product-release/release-detail-page.tsx
|
|
17699
|
-
import { AlertTriangle, ExternalLink, BookMarked } from "lucide-react";
|
|
17937
|
+
import { AlertTriangle as AlertTriangle2, ExternalLink, BookMarked, Sparkles as Sparkles3, TrendingUp as TrendingUp2, Wrench as Wrench2 } from "lucide-react";
|
|
17700
17938
|
|
|
17701
17939
|
// src/components/layout/page-container.tsx
|
|
17702
17940
|
init_cn();
|
|
@@ -18652,7 +18890,7 @@ function ReleaseDetailPage({
|
|
|
18652
18890
|
] }),
|
|
18653
18891
|
releaseContent && /* @__PURE__ */ jsx149("div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ jsx149(MarkdownRenderer, { content: releaseContent }) }),
|
|
18654
18892
|
hasBreakingChanges && /* @__PURE__ */ jsx149(Card, { className: "border-red-500 bg-red-500/10", children: /* @__PURE__ */ jsx149(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxs120("div", { className: "flex items-center gap-3", children: [
|
|
18655
|
-
/* @__PURE__ */ jsx149(
|
|
18893
|
+
/* @__PURE__ */ jsx149(AlertTriangle2, { className: "h-6 w-6 text-red-500" }),
|
|
18656
18894
|
/* @__PURE__ */ jsxs120("div", { children: [
|
|
18657
18895
|
/* @__PURE__ */ jsx149("h3", { className: "font-bold text-red-500 text-lg", children: "Breaking Changes" }),
|
|
18658
18896
|
/* @__PURE__ */ jsx149("p", { className: "text-ods-text-secondary", children: "This release contains breaking changes. Review carefully before upgrading." })
|
|
@@ -18665,6 +18903,7 @@ function ReleaseDetailPage({
|
|
|
18665
18903
|
entries: breakingChanges || [],
|
|
18666
18904
|
isBreaking: true,
|
|
18667
18905
|
hideTitle: true,
|
|
18906
|
+
icon: /* @__PURE__ */ jsx149(AlertTriangle2, { className: "h-6 w-6" }),
|
|
18668
18907
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
18669
18908
|
}
|
|
18670
18909
|
),
|
|
@@ -18673,6 +18912,7 @@ function ReleaseDetailPage({
|
|
|
18673
18912
|
{
|
|
18674
18913
|
title: "Features Added",
|
|
18675
18914
|
entries: featuresAdded || [],
|
|
18915
|
+
icon: /* @__PURE__ */ jsx149(Sparkles3, { className: "h-6 w-6" }),
|
|
18676
18916
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
18677
18917
|
}
|
|
18678
18918
|
),
|
|
@@ -18681,6 +18921,7 @@ function ReleaseDetailPage({
|
|
|
18681
18921
|
{
|
|
18682
18922
|
title: "Bugs Fixed",
|
|
18683
18923
|
entries: bugFixed || [],
|
|
18924
|
+
icon: /* @__PURE__ */ jsx149(Wrench2, { className: "h-6 w-6" }),
|
|
18684
18925
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
18685
18926
|
}
|
|
18686
18927
|
),
|
|
@@ -18689,6 +18930,7 @@ function ReleaseDetailPage({
|
|
|
18689
18930
|
{
|
|
18690
18931
|
title: "Improvements",
|
|
18691
18932
|
entries: improvements || [],
|
|
18933
|
+
icon: /* @__PURE__ */ jsx149(TrendingUp2, { className: "h-6 w-6" }),
|
|
18692
18934
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
18693
18935
|
}
|
|
18694
18936
|
),
|
|
@@ -18946,13 +19188,13 @@ InputTrigger.displayName = "InputTrigger";
|
|
|
18946
19188
|
|
|
18947
19189
|
// src/components/ui/media-type-selector.tsx
|
|
18948
19190
|
import * as React51 from "react";
|
|
18949
|
-
import { Video as Video3, Image as
|
|
19191
|
+
import { Video as Video3, Image as Image10, FileText as FileText3, Archive, CheckSquare, BookOpen, FileType } from "lucide-react";
|
|
18950
19192
|
import { jsx as jsx154, jsxs as jsxs124 } from "react/jsx-runtime";
|
|
18951
19193
|
var mediaTypeOptions = [
|
|
18952
19194
|
{ value: "video", label: "Video", icon: /* @__PURE__ */ jsx154(Video3, { className: "h-4 w-4" }) },
|
|
18953
|
-
{ value: "png", label: "PNG Image", icon: /* @__PURE__ */ jsx154(
|
|
18954
|
-
{ value: "jpg", label: "JPG Image", icon: /* @__PURE__ */ jsx154(
|
|
18955
|
-
{ value: "svg", label: "SVG Image", icon: /* @__PURE__ */ jsx154(
|
|
19195
|
+
{ value: "png", label: "PNG Image", icon: /* @__PURE__ */ jsx154(Image10, { className: "h-4 w-4" }) },
|
|
19196
|
+
{ value: "jpg", label: "JPG Image", icon: /* @__PURE__ */ jsx154(Image10, { className: "h-4 w-4" }) },
|
|
19197
|
+
{ value: "svg", label: "SVG Image", icon: /* @__PURE__ */ jsx154(Image10, { className: "h-4 w-4" }) },
|
|
18956
19198
|
{ value: "pdf", label: "PDF", icon: /* @__PURE__ */ jsx154(FileType, { className: "h-4 w-4" }) },
|
|
18957
19199
|
{ value: "document", label: "Document", icon: /* @__PURE__ */ jsx154(FileText3, { className: "h-4 w-4" }) },
|
|
18958
19200
|
{ value: "zip", label: "ZIP Archive", icon: /* @__PURE__ */ jsx154(Archive, { className: "h-4 w-4" }) },
|
|
@@ -22612,7 +22854,7 @@ import { Monitor } from "lucide-react";
|
|
|
22612
22854
|
|
|
22613
22855
|
// src/components/features/organization-icon.tsx
|
|
22614
22856
|
init_cn();
|
|
22615
|
-
import
|
|
22857
|
+
import Image11 from "next/image";
|
|
22616
22858
|
import { jsx as jsx200, jsxs as jsxs162 } from "react/jsx-runtime";
|
|
22617
22859
|
var sizeClasses3 = {
|
|
22618
22860
|
xs: "w-6 h-6",
|
|
@@ -22659,7 +22901,7 @@ function OrganizationIcon({
|
|
|
22659
22901
|
backgroundStyle === "white" ? "text-ods-text-primary" : "text-ods-text-secondary"
|
|
22660
22902
|
), children: initials }),
|
|
22661
22903
|
imageUrl && /* @__PURE__ */ jsx200(
|
|
22662
|
-
|
|
22904
|
+
Image11,
|
|
22663
22905
|
{
|
|
22664
22906
|
src: imageUrl,
|
|
22665
22907
|
alt: `${initials}`,
|
|
@@ -23211,7 +23453,7 @@ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
|
23211
23453
|
// src/components/ui/error-state.tsx
|
|
23212
23454
|
init_button2();
|
|
23213
23455
|
init_cn();
|
|
23214
|
-
import { AlertTriangle as
|
|
23456
|
+
import { AlertTriangle as AlertTriangle3, RefreshCw, Home } from "lucide-react";
|
|
23215
23457
|
import { jsx as jsx208, jsxs as jsxs168 } from "react/jsx-runtime";
|
|
23216
23458
|
function ErrorState({
|
|
23217
23459
|
title = "Error",
|
|
@@ -23257,7 +23499,7 @@ function ErrorState({
|
|
|
23257
23499
|
styles.border,
|
|
23258
23500
|
className
|
|
23259
23501
|
), children: /* @__PURE__ */ jsxs168("div", { className: "flex items-start gap-3", children: [
|
|
23260
|
-
showIcon && /* @__PURE__ */ jsx208(
|
|
23502
|
+
showIcon && /* @__PURE__ */ jsx208(AlertTriangle3, { className: cn("h-5 w-5 mt-0.5 flex-shrink-0", styles.icon) }),
|
|
23261
23503
|
/* @__PURE__ */ jsxs168("div", { className: "flex-1", children: [
|
|
23262
23504
|
/* @__PURE__ */ jsx208("h3", { className: cn("font-semibold mb-1", styles.text), children: title }),
|
|
23263
23505
|
/* @__PURE__ */ jsx208("p", { className: cn("text-sm", styles.text), children: message }),
|
|
@@ -27799,7 +28041,7 @@ function AuthProvidersList({
|
|
|
27799
28041
|
}
|
|
27800
28042
|
|
|
27801
28043
|
// src/components/features/changelog-manager.tsx
|
|
27802
|
-
import { Trash2 as Trash23, Plus as Plus3, ChevronDown as ChevronDown7, ChevronUp as ChevronUp3, Eye, EyeOff } from "lucide-react";
|
|
28044
|
+
import { Trash2 as Trash23, Plus as Plus3, ChevronDown as ChevronDown7, ChevronUp as ChevronUp3, Eye as Eye2, EyeOff } from "lucide-react";
|
|
27803
28045
|
import { useState as useState59, useEffect as useEffect44 } from "react";
|
|
27804
28046
|
import { jsx as jsx249, jsxs as jsxs205 } from "react/jsx-runtime";
|
|
27805
28047
|
function ChangelogManager({
|
|
@@ -27900,7 +28142,7 @@ function ChangelogManager({
|
|
|
27900
28142
|
onClick: () => toggleVisibility(index),
|
|
27901
28143
|
className: "shrink-0",
|
|
27902
28144
|
title: (entry.visibility ?? "public") === "public" ? "Visible to investors" : "Internal only",
|
|
27903
|
-
children: (entry.visibility ?? "public") === "public" ? /* @__PURE__ */ jsx249(
|
|
28145
|
+
children: (entry.visibility ?? "public") === "public" ? /* @__PURE__ */ jsx249(Eye2, { className: "h-4 w-4 text-ods-accent" }) : /* @__PURE__ */ jsx249(EyeOff, { className: "h-4 w-4 text-ods-text-secondary" })
|
|
27904
28146
|
}
|
|
27905
28147
|
),
|
|
27906
28148
|
/* @__PURE__ */ jsx249(
|
|
@@ -29240,7 +29482,7 @@ import {
|
|
|
29240
29482
|
GripVertical,
|
|
29241
29483
|
Plus as Plus4
|
|
29242
29484
|
} from "lucide-react";
|
|
29243
|
-
import
|
|
29485
|
+
import Image12 from "next/image";
|
|
29244
29486
|
import { jsx as jsx259, jsxs as jsxs212 } from "react/jsx-runtime";
|
|
29245
29487
|
function MediaGalleryManager({
|
|
29246
29488
|
media,
|
|
@@ -29336,7 +29578,7 @@ function MediaGalleryManager({
|
|
|
29336
29578
|
preload: "metadata"
|
|
29337
29579
|
}
|
|
29338
29580
|
) : /* @__PURE__ */ jsx259(
|
|
29339
|
-
|
|
29581
|
+
Image12,
|
|
29340
29582
|
{
|
|
29341
29583
|
src: mediaItem.media_url,
|
|
29342
29584
|
alt: mediaItem.title || "Media",
|
|
@@ -29464,7 +29706,7 @@ function OSTypeBadgeGroup({
|
|
|
29464
29706
|
|
|
29465
29707
|
// src/components/features/parallax-image-showcase.tsx
|
|
29466
29708
|
import { useEffect as useEffect48, useState as useState64, useRef as useRef40 } from "react";
|
|
29467
|
-
import
|
|
29709
|
+
import Image13 from "next/image";
|
|
29468
29710
|
import { motion as motion2, useScroll, useTransform, useMotionValue, useSpring } from "framer-motion";
|
|
29469
29711
|
import { jsx as jsx262, jsxs as jsxs214 } from "react/jsx-runtime";
|
|
29470
29712
|
var ParallaxImageShowcase = ({
|
|
@@ -29564,7 +29806,7 @@ var ParallaxImageShowcase = ({
|
|
|
29564
29806
|
rotate: rotateGrid
|
|
29565
29807
|
},
|
|
29566
29808
|
children: /* @__PURE__ */ jsx262(
|
|
29567
|
-
|
|
29809
|
+
Image13,
|
|
29568
29810
|
{
|
|
29569
29811
|
src: leftImage.src,
|
|
29570
29812
|
alt: leftImage.alt,
|
|
@@ -29586,7 +29828,7 @@ var ParallaxImageShowcase = ({
|
|
|
29586
29828
|
rotate: rotateGrid
|
|
29587
29829
|
},
|
|
29588
29830
|
children: /* @__PURE__ */ jsx262(
|
|
29589
|
-
|
|
29831
|
+
Image13,
|
|
29590
29832
|
{
|
|
29591
29833
|
src: centerImage.src,
|
|
29592
29834
|
alt: centerImage.alt,
|
|
@@ -29608,7 +29850,7 @@ var ParallaxImageShowcase = ({
|
|
|
29608
29850
|
rotate: rotateGrid
|
|
29609
29851
|
},
|
|
29610
29852
|
children: /* @__PURE__ */ jsx262(
|
|
29611
|
-
|
|
29853
|
+
Image13,
|
|
29612
29854
|
{
|
|
29613
29855
|
src: rightImage.src,
|
|
29614
29856
|
alt: rightImage.alt,
|
|
@@ -29641,7 +29883,7 @@ var ParallaxImageShowcase = ({
|
|
|
29641
29883
|
style: { x, y, rotate },
|
|
29642
29884
|
children: [
|
|
29643
29885
|
/* @__PURE__ */ jsx262(
|
|
29644
|
-
|
|
29886
|
+
Image13,
|
|
29645
29887
|
{
|
|
29646
29888
|
src: leftImage.src,
|
|
29647
29889
|
alt: leftImage.alt,
|
|
@@ -29661,7 +29903,7 @@ var ParallaxImageShowcase = ({
|
|
|
29661
29903
|
style: { x, y, rotate },
|
|
29662
29904
|
children: [
|
|
29663
29905
|
/* @__PURE__ */ jsx262(
|
|
29664
|
-
|
|
29906
|
+
Image13,
|
|
29665
29907
|
{
|
|
29666
29908
|
src: centerImage.src,
|
|
29667
29909
|
alt: centerImage.alt,
|
|
@@ -29695,7 +29937,7 @@ var ParallaxImageShowcase = ({
|
|
|
29695
29937
|
rotate
|
|
29696
29938
|
},
|
|
29697
29939
|
children: /* @__PURE__ */ jsx262(
|
|
29698
|
-
|
|
29940
|
+
Image13,
|
|
29699
29941
|
{
|
|
29700
29942
|
src: rightImage.src,
|
|
29701
29943
|
alt: rightImage.alt,
|
|
@@ -29716,7 +29958,7 @@ var ParallaxImageShowcase = ({
|
|
|
29716
29958
|
rotate
|
|
29717
29959
|
},
|
|
29718
29960
|
children: /* @__PURE__ */ jsx262(
|
|
29719
|
-
|
|
29961
|
+
Image13,
|
|
29720
29962
|
{
|
|
29721
29963
|
src: centerImage.src,
|
|
29722
29964
|
alt: centerImage.alt,
|
|
@@ -29737,7 +29979,7 @@ var ParallaxImageShowcase = ({
|
|
|
29737
29979
|
rotate
|
|
29738
29980
|
},
|
|
29739
29981
|
children: /* @__PURE__ */ jsx262(
|
|
29740
|
-
|
|
29982
|
+
Image13,
|
|
29741
29983
|
{
|
|
29742
29984
|
src: leftImage.src,
|
|
29743
29985
|
alt: leftImage.alt,
|
|
@@ -30144,7 +30386,7 @@ function PushButtonSelector({
|
|
|
30144
30386
|
// src/components/features/release-media-manager.tsx
|
|
30145
30387
|
import { useState as useState65, useRef as useRef41 } from "react";
|
|
30146
30388
|
import { Trash2 as Trash25, Plus as Plus5, Image as ImageIcon3, Video as Video5, Upload as Upload4, Loader2 as Loader28, GripVertical as GripVertical2 } from "lucide-react";
|
|
30147
|
-
import
|
|
30389
|
+
import Image14 from "next/image";
|
|
30148
30390
|
import { jsx as jsx267, jsxs as jsxs219 } from "react/jsx-runtime";
|
|
30149
30391
|
function ReleaseMediaManager({
|
|
30150
30392
|
media,
|
|
@@ -30294,7 +30536,7 @@ function ReleaseMediaManager({
|
|
|
30294
30536
|
preload: "metadata"
|
|
30295
30537
|
}
|
|
30296
30538
|
) : /* @__PURE__ */ jsx267(
|
|
30297
|
-
|
|
30539
|
+
Image14,
|
|
30298
30540
|
{
|
|
30299
30541
|
src: item.media_url,
|
|
30300
30542
|
alt: item.title || "Media",
|
|
@@ -30415,8 +30657,8 @@ SelectButton.displayName = "SelectButton";
|
|
|
30415
30657
|
|
|
30416
30658
|
// src/components/features/seo-editor-preview.tsx
|
|
30417
30659
|
import { useState as useState66 } from "react";
|
|
30418
|
-
import { Globe as Globe3, ExternalLink as ExternalLink5, Upload as Upload5, X as X11, Loader2 as Loader29, Sparkles as
|
|
30419
|
-
import
|
|
30660
|
+
import { Globe as Globe3, ExternalLink as ExternalLink5, Upload as Upload5, X as X11, Loader2 as Loader29, Sparkles as Sparkles4 } from "lucide-react";
|
|
30661
|
+
import Image15 from "next/image";
|
|
30420
30662
|
import { Fragment as Fragment42, jsx as jsx269, jsxs as jsxs221 } from "react/jsx-runtime";
|
|
30421
30663
|
function SEOEditorPreview({
|
|
30422
30664
|
seoTitle,
|
|
@@ -30468,7 +30710,7 @@ function SEOEditorPreview({
|
|
|
30468
30710
|
/* @__PURE__ */ jsx269(Label, { className: "font-['DM_Sans'] text-[14px] font-medium text-ods-text-primary", children: "SEO Title" }),
|
|
30469
30711
|
aiConfidenceSeoTitle !== void 0 && /* @__PURE__ */ jsxs221(Fragment42, { children: [
|
|
30470
30712
|
/* @__PURE__ */ jsxs221(Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
|
|
30471
|
-
/* @__PURE__ */ jsx269(
|
|
30713
|
+
/* @__PURE__ */ jsx269(Sparkles4, { className: "h-3 w-3" }),
|
|
30472
30714
|
"AI Generated"
|
|
30473
30715
|
] }),
|
|
30474
30716
|
/* @__PURE__ */ jsx269(
|
|
@@ -30499,7 +30741,7 @@ function SEOEditorPreview({
|
|
|
30499
30741
|
/* @__PURE__ */ jsx269(Label, { className: "font-['DM_Sans'] text-[14px] font-medium text-ods-text-primary", children: "SEO Keywords" }),
|
|
30500
30742
|
aiConfidenceSeoKeywords !== void 0 && /* @__PURE__ */ jsxs221(Fragment42, { children: [
|
|
30501
30743
|
/* @__PURE__ */ jsxs221(Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
|
|
30502
|
-
/* @__PURE__ */ jsx269(
|
|
30744
|
+
/* @__PURE__ */ jsx269(Sparkles4, { className: "h-3 w-3" }),
|
|
30503
30745
|
"AI Generated"
|
|
30504
30746
|
] }),
|
|
30505
30747
|
/* @__PURE__ */ jsx269(
|
|
@@ -30531,7 +30773,7 @@ function SEOEditorPreview({
|
|
|
30531
30773
|
/* @__PURE__ */ jsx269(Label, { className: "font-['DM_Sans'] text-[14px] font-medium text-ods-text-primary", children: "SEO Description" }),
|
|
30532
30774
|
aiConfidenceSeoDescription !== void 0 && /* @__PURE__ */ jsxs221(Fragment42, { children: [
|
|
30533
30775
|
/* @__PURE__ */ jsxs221(Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
|
|
30534
|
-
/* @__PURE__ */ jsx269(
|
|
30776
|
+
/* @__PURE__ */ jsx269(Sparkles4, { className: "h-3 w-3" }),
|
|
30535
30777
|
"AI Generated"
|
|
30536
30778
|
] }),
|
|
30537
30779
|
/* @__PURE__ */ jsx269(
|
|
@@ -30563,7 +30805,7 @@ function SEOEditorPreview({
|
|
|
30563
30805
|
/* @__PURE__ */ jsxs221("div", { className: "flex-1 relative", children: [
|
|
30564
30806
|
displayImage && !imageError ? /* @__PURE__ */ jsxs221("div", { className: "relative group h-full min-h-[280px]", children: [
|
|
30565
30807
|
/* @__PURE__ */ jsx269(
|
|
30566
|
-
|
|
30808
|
+
Image15,
|
|
30567
30809
|
{
|
|
30568
30810
|
src: displayImage,
|
|
30569
30811
|
alt: "OG Image",
|
|
@@ -30631,7 +30873,7 @@ function SEOEditorPreview({
|
|
|
30631
30873
|
] }),
|
|
30632
30874
|
/* @__PURE__ */ jsxs221("div", { className: "bg-ods-bg border border-ods-border rounded-lg overflow-hidden max-w-[500px]", children: [
|
|
30633
30875
|
/* @__PURE__ */ jsx269("div", { className: "relative w-full h-[260px] bg-ods-bg-active", children: displayImage && !imageError ? /* @__PURE__ */ jsx269(
|
|
30634
|
-
|
|
30876
|
+
Image15,
|
|
30635
30877
|
{
|
|
30636
30878
|
src: displayImage,
|
|
30637
30879
|
alt: displayTitle,
|
|
@@ -31067,7 +31309,7 @@ function TagsSelector({
|
|
|
31067
31309
|
// src/components/features/video-source-selector.tsx
|
|
31068
31310
|
init_button2();
|
|
31069
31311
|
import { useState as useState68, useCallback as useCallback31 } from "react";
|
|
31070
|
-
import { Upload as Upload6, Sparkles as
|
|
31312
|
+
import { Upload as Upload6, Sparkles as Sparkles5, X as X13, Video as Video6 } from "lucide-react";
|
|
31071
31313
|
import { jsx as jsx274, jsxs as jsxs225 } from "react/jsx-runtime";
|
|
31072
31314
|
function VideoSourceSelector({
|
|
31073
31315
|
videoSourceType,
|
|
@@ -31177,7 +31419,7 @@ function VideoSourceSelector({
|
|
|
31177
31419
|
/* @__PURE__ */ jsxs225("div", { className: "flex items-center gap-2", children: [
|
|
31178
31420
|
/* @__PURE__ */ jsx274(Label, { children: uploadLabel }),
|
|
31179
31421
|
showAIBadge && isAIGenerated && /* @__PURE__ */ jsxs225(Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
|
|
31180
|
-
/* @__PURE__ */ jsx274(
|
|
31422
|
+
/* @__PURE__ */ jsx274(Sparkles5, { className: "h-3 w-3" }),
|
|
31181
31423
|
"AI Generated"
|
|
31182
31424
|
] })
|
|
31183
31425
|
] }),
|
|
@@ -31254,7 +31496,7 @@ function VideoSourceSelector({
|
|
|
31254
31496
|
}
|
|
31255
31497
|
|
|
31256
31498
|
// src/components/features/transcript-summary-editor.tsx
|
|
31257
|
-
import { Sparkles as
|
|
31499
|
+
import { Sparkles as Sparkles6 } from "lucide-react";
|
|
31258
31500
|
|
|
31259
31501
|
// src/components/features/ai-enrich/ConfidenceBadge.tsx
|
|
31260
31502
|
init_cn();
|
|
@@ -31335,7 +31577,7 @@ function TranscriptSummaryEditor({
|
|
|
31335
31577
|
/* @__PURE__ */ jsxs227("div", { className: "flex items-center gap-2", children: [
|
|
31336
31578
|
/* @__PURE__ */ jsx276(Label, { htmlFor: "video-summary", children: videoSummaryLabel }),
|
|
31337
31579
|
isAIGenerated && /* @__PURE__ */ jsxs227(Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
|
|
31338
|
-
/* @__PURE__ */ jsx276(
|
|
31580
|
+
/* @__PURE__ */ jsx276(Sparkles6, { className: "h-3 w-3" }),
|
|
31339
31581
|
"AI Generated"
|
|
31340
31582
|
] }),
|
|
31341
31583
|
videoSummaryConfidence !== void 0 && videoSummaryConfidence !== null && /* @__PURE__ */ jsx276(
|
|
@@ -31375,7 +31617,7 @@ function TranscriptSummaryEditor({
|
|
|
31375
31617
|
/* @__PURE__ */ jsxs227("div", { className: "flex items-center gap-2", children: [
|
|
31376
31618
|
/* @__PURE__ */ jsx276(Label, { htmlFor: "transcript", children: transcriptLabel }),
|
|
31377
31619
|
isAIGenerated && /* @__PURE__ */ jsxs227(Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
|
|
31378
|
-
/* @__PURE__ */ jsx276(
|
|
31620
|
+
/* @__PURE__ */ jsx276(Sparkles6, { className: "h-3 w-3" }),
|
|
31379
31621
|
"AI Generated"
|
|
31380
31622
|
] }),
|
|
31381
31623
|
transcriptConfidence !== void 0 && transcriptConfidence !== null && /* @__PURE__ */ jsx276(
|
|
@@ -31446,7 +31688,7 @@ function TranscriptSummaryEditor({
|
|
|
31446
31688
|
|
|
31447
31689
|
// src/components/features/highlight-video-section.tsx
|
|
31448
31690
|
import { useState as useState69 } from "react";
|
|
31449
|
-
import { Sparkles as
|
|
31691
|
+
import { Sparkles as Sparkles7, Upload as Upload7 } from "lucide-react";
|
|
31450
31692
|
init_button2();
|
|
31451
31693
|
|
|
31452
31694
|
// src/components/features/ai-enrich/AIEnrichSection.tsx
|
|
@@ -31810,7 +32052,7 @@ function HighlightVideoSection({
|
|
|
31810
32052
|
{
|
|
31811
32053
|
title: "Highlight Video",
|
|
31812
32054
|
description: `Generate a ${Math.floor(targetDurationSeconds / 60)}-minute summary video using Claude AI + Shotstack`,
|
|
31813
|
-
icon: /* @__PURE__ */ jsx280(
|
|
32055
|
+
icon: /* @__PURE__ */ jsx280(Sparkles7, { className: "h-5 w-5" }),
|
|
31814
32056
|
buttonLabel: hasExistingHighlight ? "Regenerate Highlight" : "Generate Highlight",
|
|
31815
32057
|
loadingLabel: "Generating highlight...",
|
|
31816
32058
|
onEnrich: onGenerateHighlight,
|
|
@@ -31830,7 +32072,7 @@ function HighlightVideoSection({
|
|
|
31830
32072
|
/* @__PURE__ */ jsxs230("div", { className: "flex items-center gap-2", children: [
|
|
31831
32073
|
/* @__PURE__ */ jsx280(Label, { children: "Highlight Video" }),
|
|
31832
32074
|
highlightVideoSource === "ai_generated" && /* @__PURE__ */ jsxs230(Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
|
|
31833
|
-
/* @__PURE__ */ jsx280(
|
|
32075
|
+
/* @__PURE__ */ jsx280(Sparkles7, { className: "h-3 w-3" }),
|
|
31834
32076
|
"AI Generated"
|
|
31835
32077
|
] }),
|
|
31836
32078
|
highlightVideoDurationMs && /* @__PURE__ */ jsx280(Badge, { variant: "outline", className: "text-xs", children: formatDuration(highlightVideoDurationMs) })
|
|
@@ -31936,7 +32178,7 @@ function HighlightConfigSection({
|
|
|
31936
32178
|
}
|
|
31937
32179
|
|
|
31938
32180
|
// src/components/features/entity-summary-editor.tsx
|
|
31939
|
-
import { Sparkles as
|
|
32181
|
+
import { Sparkles as Sparkles8 } from "lucide-react";
|
|
31940
32182
|
import { jsx as jsx282, jsxs as jsxs232 } from "react/jsx-runtime";
|
|
31941
32183
|
function EntitySummaryEditor({
|
|
31942
32184
|
summary = "",
|
|
@@ -31955,7 +32197,7 @@ function EntitySummaryEditor({
|
|
|
31955
32197
|
/* @__PURE__ */ jsxs232("div", { className: "flex items-center gap-2", children: [
|
|
31956
32198
|
/* @__PURE__ */ jsx282(Label, { htmlFor: "entity-summary", children: label }),
|
|
31957
32199
|
isAIGenerated && /* @__PURE__ */ jsxs232(Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
|
|
31958
|
-
/* @__PURE__ */ jsx282(
|
|
32200
|
+
/* @__PURE__ */ jsx282(Sparkles8, { className: "h-3 w-3" }),
|
|
31959
32201
|
"AI Generated"
|
|
31960
32202
|
] }),
|
|
31961
32203
|
summaryConfidence !== void 0 && summaryConfidence !== null && /* @__PURE__ */ jsx282(
|
|
@@ -31993,7 +32235,7 @@ function EntitySummaryEditor({
|
|
|
31993
32235
|
}
|
|
31994
32236
|
|
|
31995
32237
|
// src/components/features/transcribe-summarize-section.tsx
|
|
31996
|
-
import { Sparkles as
|
|
32238
|
+
import { Sparkles as Sparkles9 } from "lucide-react";
|
|
31997
32239
|
|
|
31998
32240
|
// src/components/features/ai-enrich/AIStatusIndicator.tsx
|
|
31999
32241
|
init_cn();
|
|
@@ -32125,7 +32367,7 @@ function TranscribeSummarizeSection({
|
|
|
32125
32367
|
{
|
|
32126
32368
|
title,
|
|
32127
32369
|
description,
|
|
32128
|
-
icon: /* @__PURE__ */ jsx285(
|
|
32370
|
+
icon: /* @__PURE__ */ jsx285(Sparkles9, { className: "h-5 w-5" }),
|
|
32129
32371
|
buttonLabel: buttonLabel || defaultButtonLabel,
|
|
32130
32372
|
loadingLabel,
|
|
32131
32373
|
onEnrich: onTranscribe,
|
|
@@ -32143,7 +32385,7 @@ function TranscribeSummarizeSection({
|
|
|
32143
32385
|
}
|
|
32144
32386
|
|
|
32145
32387
|
// src/components/features/video-clips-section.tsx
|
|
32146
|
-
import { Sparkles as
|
|
32388
|
+
import { Sparkles as Sparkles10 } from "lucide-react";
|
|
32147
32389
|
import { jsx as jsx286 } from "react/jsx-runtime";
|
|
32148
32390
|
function VideoClipsSection({
|
|
32149
32391
|
onExtractClips,
|
|
@@ -32168,7 +32410,7 @@ function VideoClipsSection({
|
|
|
32168
32410
|
{
|
|
32169
32411
|
title,
|
|
32170
32412
|
description,
|
|
32171
|
-
icon: /* @__PURE__ */ jsx286(
|
|
32413
|
+
icon: /* @__PURE__ */ jsx286(Sparkles10, { className: "h-5 w-5" }),
|
|
32172
32414
|
buttonLabel: buttonLabel || defaultButtonLabel,
|
|
32173
32415
|
loadingLabel,
|
|
32174
32416
|
onEnrich: onExtractClips,
|
|
@@ -32186,7 +32428,7 @@ function VideoClipsSection({
|
|
|
32186
32428
|
}
|
|
32187
32429
|
|
|
32188
32430
|
// src/components/features/highlight-generation-section.tsx
|
|
32189
|
-
import { Sparkles as
|
|
32431
|
+
import { Sparkles as Sparkles11 } from "lucide-react";
|
|
32190
32432
|
import { jsx as jsx287 } from "react/jsx-runtime";
|
|
32191
32433
|
function HighlightGenerationSection({
|
|
32192
32434
|
onGenerateHighlight,
|
|
@@ -32213,7 +32455,7 @@ function HighlightGenerationSection({
|
|
|
32213
32455
|
{
|
|
32214
32456
|
title,
|
|
32215
32457
|
description: description || defaultDescription,
|
|
32216
|
-
icon: /* @__PURE__ */ jsx287(
|
|
32458
|
+
icon: /* @__PURE__ */ jsx287(Sparkles11, { className: "h-5 w-5" }),
|
|
32217
32459
|
buttonLabel: buttonLabel || defaultButtonLabel,
|
|
32218
32460
|
loadingLabel,
|
|
32219
32461
|
onEnrich: onGenerateHighlight,
|
|
@@ -32231,7 +32473,7 @@ function HighlightGenerationSection({
|
|
|
32231
32473
|
}
|
|
32232
32474
|
|
|
32233
32475
|
// src/components/features/highlight-video-preview.tsx
|
|
32234
|
-
import { Upload as Upload8, Sparkles as
|
|
32476
|
+
import { Upload as Upload8, Sparkles as Sparkles12 } from "lucide-react";
|
|
32235
32477
|
init_button2();
|
|
32236
32478
|
import { jsx as jsx288, jsxs as jsxs235 } from "react/jsx-runtime";
|
|
32237
32479
|
function HighlightVideoPreview({
|
|
@@ -32269,7 +32511,7 @@ function HighlightVideoPreview({
|
|
|
32269
32511
|
/* @__PURE__ */ jsxs235("div", { className: "flex items-center gap-2", children: [
|
|
32270
32512
|
/* @__PURE__ */ jsx288(Label, { children: label }),
|
|
32271
32513
|
highlightVideoSource === "ai_generated" && /* @__PURE__ */ jsxs235(Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
|
|
32272
|
-
/* @__PURE__ */ jsx288(
|
|
32514
|
+
/* @__PURE__ */ jsx288(Sparkles12, { className: "h-3 w-3" }),
|
|
32273
32515
|
"AI Generated"
|
|
32274
32516
|
] }),
|
|
32275
32517
|
highlightVideoDurationMs && /* @__PURE__ */ jsx288(Badge, { variant: "outline", className: "text-xs", children: formatDuration(highlightVideoDurationMs) })
|
|
@@ -32298,7 +32540,7 @@ function HighlightVideoPreview({
|
|
|
32298
32540
|
}
|
|
32299
32541
|
|
|
32300
32542
|
// src/components/features/transcribe-and-summarize-combined-section.tsx
|
|
32301
|
-
import { Sparkles as
|
|
32543
|
+
import { Sparkles as Sparkles13 } from "lucide-react";
|
|
32302
32544
|
import { jsx as jsx289, jsxs as jsxs236 } from "react/jsx-runtime";
|
|
32303
32545
|
function TranscribeAndSummarizeCombinedSection({
|
|
32304
32546
|
// AIEnrichSection props
|
|
@@ -32345,7 +32587,7 @@ function TranscribeAndSummarizeCombinedSection({
|
|
|
32345
32587
|
{
|
|
32346
32588
|
title,
|
|
32347
32589
|
description,
|
|
32348
|
-
icon: /* @__PURE__ */ jsx289(
|
|
32590
|
+
icon: /* @__PURE__ */ jsx289(Sparkles13, { className: "h-5 w-5" }),
|
|
32349
32591
|
buttonLabel: buttonLabel || defaultButtonLabel,
|
|
32350
32592
|
loadingLabel,
|
|
32351
32593
|
onEnrich: onTranscribe,
|
|
@@ -32386,7 +32628,7 @@ function TranscribeAndSummarizeCombinedSection({
|
|
|
32386
32628
|
}
|
|
32387
32629
|
|
|
32388
32630
|
// src/components/features/highlight-video-combined-section.tsx
|
|
32389
|
-
import { Sparkles as
|
|
32631
|
+
import { Sparkles as Sparkles14, Upload as Upload9 } from "lucide-react";
|
|
32390
32632
|
init_button2();
|
|
32391
32633
|
import { jsx as jsx290, jsxs as jsxs237 } from "react/jsx-runtime";
|
|
32392
32634
|
function HighlightVideoCombinedSection({
|
|
@@ -32462,7 +32704,7 @@ function HighlightVideoCombinedSection({
|
|
|
32462
32704
|
{
|
|
32463
32705
|
title,
|
|
32464
32706
|
description: description || defaultDescription,
|
|
32465
|
-
icon: /* @__PURE__ */ jsx290(
|
|
32707
|
+
icon: /* @__PURE__ */ jsx290(Sparkles14, { className: "h-5 w-5" }),
|
|
32466
32708
|
buttonLabel: buttonLabel || defaultButtonLabel,
|
|
32467
32709
|
loadingLabel,
|
|
32468
32710
|
onEnrich: onGenerateHighlight,
|
|
@@ -32482,7 +32724,7 @@ function HighlightVideoCombinedSection({
|
|
|
32482
32724
|
/* @__PURE__ */ jsxs237("div", { className: "flex items-center gap-2", children: [
|
|
32483
32725
|
/* @__PURE__ */ jsx290(Label, { children: previewLabel }),
|
|
32484
32726
|
highlightVideoSource === "ai_generated" && /* @__PURE__ */ jsxs237(Badge, { variant: "secondary", className: "flex items-center gap-1", children: [
|
|
32485
|
-
/* @__PURE__ */ jsx290(
|
|
32727
|
+
/* @__PURE__ */ jsx290(Sparkles14, { className: "h-3 w-3" }),
|
|
32486
32728
|
"AI Generated"
|
|
32487
32729
|
] }),
|
|
32488
32730
|
highlightVideoDurationMs && /* @__PURE__ */ jsx290(Badge, { variant: "outline", className: "text-xs", children: formatDuration(highlightVideoDurationMs) })
|
|
@@ -34485,4 +34727,4 @@ export {
|
|
|
34485
34727
|
TMCG_SOCIAL_PLATFORMS,
|
|
34486
34728
|
assets
|
|
34487
34729
|
};
|
|
34488
|
-
//# sourceMappingURL=chunk-
|
|
34730
|
+
//# sourceMappingURL=chunk-ZOM75JOY.js.map
|