@flamingo-stack/openframe-frontend-core 0.0.237 → 0.0.238
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-LPJPTBRI.cjs → chunk-27VVOBDB.cjs} +4 -4
- package/dist/{chunk-LPJPTBRI.cjs.map → chunk-27VVOBDB.cjs.map} +1 -1
- package/dist/{chunk-LIRVOF26.cjs → chunk-5VU66BD2.cjs} +204 -239
- package/dist/chunk-5VU66BD2.cjs.map +1 -0
- package/dist/{chunk-GXSTRY72.js → chunk-7LLS3TWN.js} +6 -66
- package/dist/chunk-7LLS3TWN.js.map +1 -0
- package/dist/chunk-DOM4KWZ7.cjs +207 -0
- package/dist/chunk-DOM4KWZ7.cjs.map +1 -0
- package/dist/{chunk-RZSXPIEF.cjs → chunk-ELMYRGWG.cjs} +9 -9
- package/dist/{chunk-RZSXPIEF.cjs.map → chunk-ELMYRGWG.cjs.map} +1 -1
- package/dist/chunk-FSS2MIEA.cjs +44 -0
- package/dist/chunk-FSS2MIEA.cjs.map +1 -0
- package/dist/{chunk-THUANWCX.js → chunk-G6YZ7O27.js} +3 -3
- package/dist/{chunk-NZRHLJE2.cjs → chunk-IJOJWBME.cjs} +28 -28
- package/dist/{chunk-NZRHLJE2.cjs.map → chunk-IJOJWBME.cjs.map} +1 -1
- package/dist/chunk-L4LAAA5Q.js +65 -0
- package/dist/chunk-L4LAAA5Q.js.map +1 -0
- package/dist/chunk-LJGBFD52.js +44 -0
- package/dist/chunk-LJGBFD52.js.map +1 -0
- package/dist/chunk-M3I6ZPOM.js +207 -0
- package/dist/chunk-M3I6ZPOM.js.map +1 -0
- package/dist/{chunk-366P5YXP.cjs → chunk-MTROCWO4.cjs} +7 -7
- package/dist/{chunk-366P5YXP.cjs.map → chunk-MTROCWO4.cjs.map} +1 -1
- package/dist/{chunk-QP6NU6OL.js → chunk-PN64LWNT.js} +2 -2
- package/dist/{chunk-THCYW34H.cjs → chunk-SZ3BBI6H.cjs} +15 -75
- package/dist/chunk-SZ3BBI6H.cjs.map +1 -0
- package/dist/chunk-T7AJBKZP.cjs +65 -0
- package/dist/chunk-T7AJBKZP.cjs.map +1 -0
- package/dist/{chunk-Q3GY66ST.js → chunk-UECRKCKH.js} +4 -4
- package/dist/{chunk-L3UM4VMU.js → chunk-Y6463TD6.js} +2 -2
- package/dist/{chunk-H3TM4YY7.js → chunk-Y7DCQUNL.js} +2016 -2051
- package/dist/{chunk-H3TM4YY7.js.map → chunk-Y7DCQUNL.js.map} +1 -1
- package/dist/components/chat/index.cjs +6 -5
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +5 -4
- package/dist/components/contact/index.cjs +7 -6
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +6 -5
- package/dist/components/faq/faq-json-ld.d.ts +39 -0
- package/dist/components/faq/faq-json-ld.d.ts.map +1 -0
- package/dist/components/faq/faq-section.d.ts +40 -0
- package/dist/components/faq/faq-section.d.ts.map +1 -0
- package/dist/components/faq/index.cjs +16 -0
- package/dist/components/faq/index.cjs.map +1 -0
- package/dist/components/faq/index.d.ts +3 -0
- package/dist/components/faq/index.d.ts.map +1 -0
- package/dist/components/faq/index.js +16 -0
- package/dist/components/faq/index.js.map +1 -0
- package/dist/components/features/index.cjs +6 -5
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +5 -4
- package/dist/components/index.cjs +97 -167
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1066 -1136
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +6 -5
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +5 -4
- package/dist/components/onboarding-guides/index.cjs +34 -31
- package/dist/components/onboarding-guides/index.cjs.map +1 -1
- package/dist/components/onboarding-guides/index.js +12 -9
- package/dist/components/onboarding-guides/index.js.map +1 -1
- package/dist/components/tickets/index.cjs +70 -69
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +8 -7
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/ui/index.cjs +8 -6
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +7 -5
- package/dist/hooks/index.cjs +3 -3
- package/dist/hooks/index.js +2 -2
- package/dist/index.cjs +8 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +7 -5
- package/package.json +7 -1
- package/src/components/faq/faq-json-ld.ts +45 -0
- package/src/components/faq/faq-section.tsx +165 -0
- package/src/components/faq/index.ts +2 -0
- package/src/components/faq-accordion.tsx +1 -1
- package/src/components/index.ts +4 -0
- package/dist/chunk-GXSTRY72.js.map +0 -1
- package/dist/chunk-LIRVOF26.cjs.map +0 -1
- package/dist/chunk-THCYW34H.cjs.map +0 -1
- /package/dist/{chunk-THUANWCX.js.map → chunk-G6YZ7O27.js.map} +0 -0
- /package/dist/{chunk-QP6NU6OL.js.map → chunk-PN64LWNT.js.map} +0 -0
- /package/dist/{chunk-Q3GY66ST.js.map → chunk-UECRKCKH.js.map} +0 -0
- /package/dist/{chunk-L3UM4VMU.js.map → chunk-Y6463TD6.js.map} +0 -0
package/dist/components/index.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
|
+
import {
|
|
4
|
+
FaqAccordion,
|
|
5
|
+
FaqSection,
|
|
6
|
+
baseFaqSchema,
|
|
7
|
+
buildFaqJsonLdFromFaqs
|
|
8
|
+
} from "../chunk-M3I6ZPOM.js";
|
|
3
9
|
import {
|
|
4
10
|
DeliveryRow,
|
|
5
11
|
EmptyState,
|
|
6
12
|
UnifiedPagination,
|
|
7
13
|
init_unified_pagination,
|
|
8
14
|
unified_pagination_exports
|
|
9
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-PN64LWNT.js";
|
|
10
16
|
import {
|
|
11
17
|
DetailPageSkeleton,
|
|
12
18
|
DocSearchBar,
|
|
@@ -14,16 +20,18 @@ import {
|
|
|
14
20
|
formatRelativePath,
|
|
15
21
|
mapDocSearchResults,
|
|
16
22
|
resolveSearchResultAction,
|
|
17
|
-
useDocSearch
|
|
23
|
+
useDocSearch
|
|
24
|
+
} from "../chunk-7LLS3TWN.js";
|
|
25
|
+
import {
|
|
18
26
|
useSelfFetch
|
|
19
|
-
} from "../chunk-
|
|
27
|
+
} from "../chunk-L4LAAA5Q.js";
|
|
20
28
|
import {
|
|
21
29
|
DevCardRowContent,
|
|
22
30
|
DevCardRowSkeleton,
|
|
23
31
|
DevCardRowSkeletonList,
|
|
24
32
|
DevSectionPage,
|
|
25
33
|
DevSectionView
|
|
26
|
-
} from "../chunk-
|
|
34
|
+
} from "../chunk-Y6463TD6.js";
|
|
27
35
|
import "../chunk-ORJREQ2W.js";
|
|
28
36
|
import {
|
|
29
37
|
ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE,
|
|
@@ -171,7 +179,6 @@ import {
|
|
|
171
179
|
CheckIcon,
|
|
172
180
|
CheckboxBlock,
|
|
173
181
|
CheckboxWithDescription,
|
|
174
|
-
ChevronButton,
|
|
175
182
|
CircularProgress,
|
|
176
183
|
ClickUpTasksManager,
|
|
177
184
|
ClientOnlyHeader,
|
|
@@ -693,11 +700,17 @@ import {
|
|
|
693
700
|
useVideoOriginPreconnect,
|
|
694
701
|
useVideoWarmup,
|
|
695
702
|
usesCanonicalStatusStyle
|
|
696
|
-
} from "../chunk-
|
|
703
|
+
} from "../chunk-Y7DCQUNL.js";
|
|
704
|
+
import {
|
|
705
|
+
useChatRuntime
|
|
706
|
+
} from "../chunk-4YKGXZ7W.js";
|
|
697
707
|
import {
|
|
698
708
|
next_image_default
|
|
699
709
|
} from "../chunk-LXC6P2EO.js";
|
|
700
710
|
import "../chunk-EL5YVPD5.js";
|
|
711
|
+
import {
|
|
712
|
+
ChevronButton
|
|
713
|
+
} from "../chunk-LJGBFD52.js";
|
|
701
714
|
import {
|
|
702
715
|
Button,
|
|
703
716
|
Checkbox,
|
|
@@ -744,7 +757,10 @@ import {
|
|
|
744
757
|
showToast,
|
|
745
758
|
useOnboardingState,
|
|
746
759
|
useToast
|
|
747
|
-
} from "../chunk-
|
|
760
|
+
} from "../chunk-UECRKCKH.js";
|
|
761
|
+
import {
|
|
762
|
+
useEndpointsRuntime
|
|
763
|
+
} from "../chunk-MJNXIEV2.js";
|
|
748
764
|
import {
|
|
749
765
|
init_next_navigation,
|
|
750
766
|
usePathname,
|
|
@@ -913,12 +929,6 @@ import {
|
|
|
913
929
|
} from "../chunk-4WZOFD46.js";
|
|
914
930
|
import "../chunk-6U3IUD57.js";
|
|
915
931
|
import "../chunk-W72U7OU7.js";
|
|
916
|
-
import {
|
|
917
|
-
useChatRuntime
|
|
918
|
-
} from "../chunk-4YKGXZ7W.js";
|
|
919
|
-
import {
|
|
920
|
-
useEndpointsRuntime
|
|
921
|
-
} from "../chunk-MJNXIEV2.js";
|
|
922
932
|
import "../chunk-CZR7ARBA.js";
|
|
923
933
|
import {
|
|
924
934
|
__toCommonJS
|
|
@@ -2026,93 +2036,10 @@ function ProgressiveSkeleton({
|
|
|
2026
2036
|
);
|
|
2027
2037
|
}
|
|
2028
2038
|
|
|
2029
|
-
// src/components/faq-accordion.tsx
|
|
2030
|
-
import { useRef, useState as useState2, useEffect as useEffect2, useCallback } from "react";
|
|
2031
|
-
init_cn();
|
|
2032
|
-
import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2033
|
-
var useMeasuredHeight = (isOpen) => {
|
|
2034
|
-
const ref = useRef(null);
|
|
2035
|
-
const [maxHeight, setMaxHeight] = useState2("0px");
|
|
2036
|
-
const measure = useCallback(() => {
|
|
2037
|
-
if (ref.current) {
|
|
2038
|
-
const height = ref.current.scrollHeight;
|
|
2039
|
-
setMaxHeight(`${height}px`);
|
|
2040
|
-
}
|
|
2041
|
-
}, []);
|
|
2042
|
-
useEffect2(() => {
|
|
2043
|
-
if (isOpen) {
|
|
2044
|
-
measure();
|
|
2045
|
-
} else {
|
|
2046
|
-
setMaxHeight("0px");
|
|
2047
|
-
}
|
|
2048
|
-
}, [isOpen, measure]);
|
|
2049
|
-
return { ref, maxHeight };
|
|
2050
|
-
};
|
|
2051
|
-
function FaqAccordion({ items, defaultOpenIds = [] }) {
|
|
2052
|
-
const [openSet, setOpenSet] = useState2(new Set(defaultOpenIds));
|
|
2053
|
-
const toggle = (id) => {
|
|
2054
|
-
setOpenSet((prev) => {
|
|
2055
|
-
const next = new Set(prev);
|
|
2056
|
-
if (next.has(id)) next.delete(id);
|
|
2057
|
-
else next.add(id);
|
|
2058
|
-
return next;
|
|
2059
|
-
});
|
|
2060
|
-
};
|
|
2061
|
-
return /* @__PURE__ */ jsx13("div", { className: "rounded-3xl border border-ods-border divide-y divide-ods-border bg-ods-card overflow-hidden", children: items.map((item) => {
|
|
2062
|
-
const isOpen = openSet.has(item.id);
|
|
2063
|
-
const { ref, maxHeight } = useMeasuredHeight(isOpen);
|
|
2064
|
-
return /* @__PURE__ */ jsxs10(
|
|
2065
|
-
"div",
|
|
2066
|
-
{
|
|
2067
|
-
className: cn("group transition-colors hover:bg-[#1E1E1E]", isOpen ? "bg-ods-bg" : "bg-transparent"),
|
|
2068
|
-
children: [
|
|
2069
|
-
/* @__PURE__ */ jsxs10(
|
|
2070
|
-
"div",
|
|
2071
|
-
{
|
|
2072
|
-
role: "button",
|
|
2073
|
-
tabIndex: 0,
|
|
2074
|
-
onClick: () => toggle(item.id),
|
|
2075
|
-
onKeyDown: (e) => {
|
|
2076
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
2077
|
-
e.preventDefault();
|
|
2078
|
-
toggle(item.id);
|
|
2079
|
-
}
|
|
2080
|
-
},
|
|
2081
|
-
"aria-expanded": isOpen,
|
|
2082
|
-
className: "flex w-full items-center justify-between px-6 md:px-8 py-6 text-left focus:outline-none transition-colors cursor-pointer",
|
|
2083
|
-
children: [
|
|
2084
|
-
/* @__PURE__ */ jsx13("h3", { children: item.question }),
|
|
2085
|
-
/* @__PURE__ */ jsx13("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx13(
|
|
2086
|
-
ChevronButton,
|
|
2087
|
-
{
|
|
2088
|
-
size: "md",
|
|
2089
|
-
isExpanded: isOpen,
|
|
2090
|
-
backgroundColor: "transparent",
|
|
2091
|
-
borderColor: "#3A3A3A"
|
|
2092
|
-
}
|
|
2093
|
-
) })
|
|
2094
|
-
]
|
|
2095
|
-
}
|
|
2096
|
-
),
|
|
2097
|
-
/* @__PURE__ */ jsx13(
|
|
2098
|
-
"div",
|
|
2099
|
-
{
|
|
2100
|
-
style: { maxHeight, transition: "max-height 0.35s ease-in-out, opacity 0.35s ease-in-out", opacity: isOpen ? 1 : 0 },
|
|
2101
|
-
className: "overflow-hidden group-hover:bg-[#1E1E1E]/30",
|
|
2102
|
-
children: /* @__PURE__ */ jsx13("div", { ref, className: "px-6 md:px-8 pb-6 text-ods-text-primary text-h4", children: item.answer })
|
|
2103
|
-
}
|
|
2104
|
-
)
|
|
2105
|
-
]
|
|
2106
|
-
},
|
|
2107
|
-
item.id
|
|
2108
|
-
);
|
|
2109
|
-
}) });
|
|
2110
|
-
}
|
|
2111
|
-
|
|
2112
2039
|
// src/components/filter-chip.tsx
|
|
2113
2040
|
init_cn();
|
|
2114
2041
|
import { X as X2 } from "lucide-react";
|
|
2115
|
-
import { jsx as
|
|
2042
|
+
import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2116
2043
|
function FilterChip({
|
|
2117
2044
|
id,
|
|
2118
2045
|
label,
|
|
@@ -2145,7 +2072,7 @@ function FilterChip({
|
|
|
2145
2072
|
subcategory: "bg-[#2A2A2A] text-[#E8E8E8] border border-[#FFC008]/60 hover:bg-ods-border hover:border-[#FFC008]/80 hover:text-ods-text-primary focus:ring-[#FFC008]/60 focus:ring-offset-[#161616]",
|
|
2146
2073
|
tag: "bg-[#2A2A2A] text-ods-text-primary border border-[#FFC008]/20 hover:bg-ods-border hover:border-[#FFC008]/30 hover:text-ods-text-primary focus:ring-[#FFC008]/20 focus:ring-offset-[#161616]"
|
|
2147
2074
|
};
|
|
2148
|
-
return /* @__PURE__ */
|
|
2075
|
+
return /* @__PURE__ */ jsxs10(
|
|
2149
2076
|
"div",
|
|
2150
2077
|
{
|
|
2151
2078
|
className: cn(baseClasses, variantClasses[variant], className),
|
|
@@ -2159,11 +2086,11 @@ function FilterChip({
|
|
|
2159
2086
|
"aria-pressed": onClick && variant === "selected" ? true : void 0,
|
|
2160
2087
|
"aria-disabled": disabled,
|
|
2161
2088
|
children: [
|
|
2162
|
-
/* @__PURE__ */
|
|
2089
|
+
/* @__PURE__ */ jsx13("span", { className: cn(
|
|
2163
2090
|
"truncate font-['DM_Sans'] font-medium leading-none text-center",
|
|
2164
2091
|
size === "sm" ? "max-w-[100px] md:max-w-[120px]" : "max-w-[120px] md:max-w-[140px]"
|
|
2165
2092
|
), title: label, children: label }),
|
|
2166
|
-
removable && onRemove && /* @__PURE__ */
|
|
2093
|
+
removable && onRemove && /* @__PURE__ */ jsx13(
|
|
2167
2094
|
"button",
|
|
2168
2095
|
{
|
|
2169
2096
|
type: "button",
|
|
@@ -2182,7 +2109,7 @@ function FilterChip({
|
|
|
2182
2109
|
),
|
|
2183
2110
|
"aria-label": `Remove ${label} filter`,
|
|
2184
2111
|
tabIndex: disabled ? -1 : 0,
|
|
2185
|
-
children: /* @__PURE__ */
|
|
2112
|
+
children: /* @__PURE__ */ jsx13(X2, { className: "h-2 w-2 md:h-2 md:w-2" })
|
|
2186
2113
|
}
|
|
2187
2114
|
)
|
|
2188
2115
|
]
|
|
@@ -2195,7 +2122,7 @@ import { Suspense } from "react";
|
|
|
2195
2122
|
|
|
2196
2123
|
// src/components/social-icon-row.tsx
|
|
2197
2124
|
init_button();
|
|
2198
|
-
import { jsx as
|
|
2125
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
2199
2126
|
var defaultLinks = [
|
|
2200
2127
|
{ platform: "github", href: "https://github.com/flamingo-stack", label: "GitHub" },
|
|
2201
2128
|
{ platform: "linkedin", href: "https://linkedin.com/company/flamingo.run", label: "LinkedIn" },
|
|
@@ -2205,50 +2132,50 @@ function renderSocialIcon(platform) {
|
|
|
2205
2132
|
const normalizedPlatform = platform.toLowerCase().trim();
|
|
2206
2133
|
switch (normalizedPlatform) {
|
|
2207
2134
|
case "github":
|
|
2208
|
-
return /* @__PURE__ */
|
|
2135
|
+
return /* @__PURE__ */ jsx14(GitHubIcon, { className: "w-5 h-5" });
|
|
2209
2136
|
case "twitter":
|
|
2210
2137
|
case "x":
|
|
2211
|
-
return /* @__PURE__ */
|
|
2138
|
+
return /* @__PURE__ */ jsx14(XLogo, { className: "w-5 h-5" });
|
|
2212
2139
|
case "reddit":
|
|
2213
|
-
return /* @__PURE__ */
|
|
2140
|
+
return /* @__PURE__ */ jsx14(RedditIcon, { className: "w-5 h-5", variant: "white" });
|
|
2214
2141
|
case "linkedin":
|
|
2215
|
-
return /* @__PURE__ */
|
|
2142
|
+
return /* @__PURE__ */ jsx14(LinkedInIcon, { className: "w-5 h-5" });
|
|
2216
2143
|
case "luma":
|
|
2217
|
-
return /* @__PURE__ */
|
|
2144
|
+
return /* @__PURE__ */ jsx14(LumaIcon, { className: "w-5 h-5" });
|
|
2218
2145
|
case "whatsapp":
|
|
2219
|
-
return /* @__PURE__ */
|
|
2146
|
+
return /* @__PURE__ */ jsx14(WhatsAppIcon, { className: "w-5 h-5" });
|
|
2220
2147
|
case "website":
|
|
2221
2148
|
case "web":
|
|
2222
2149
|
case "url":
|
|
2223
|
-
return /* @__PURE__ */
|
|
2150
|
+
return /* @__PURE__ */ jsx14(GlobeIcon, { className: "w-5 h-5" });
|
|
2224
2151
|
case "slack":
|
|
2225
|
-
return /* @__PURE__ */
|
|
2152
|
+
return /* @__PURE__ */ jsx14(SlackIcon, { className: "w-5 h-5", injectedColor: "white" });
|
|
2226
2153
|
case "discord":
|
|
2227
|
-
return /* @__PURE__ */
|
|
2154
|
+
return /* @__PURE__ */ jsx14(MessageCircleIcon, { className: "w-5 h-5" });
|
|
2228
2155
|
case "telegram":
|
|
2229
|
-
return /* @__PURE__ */
|
|
2156
|
+
return /* @__PURE__ */ jsx14(TelegramIcon, { className: "w-5 h-5" });
|
|
2230
2157
|
case "youtube":
|
|
2231
2158
|
case "yt":
|
|
2232
|
-
return /* @__PURE__ */
|
|
2159
|
+
return /* @__PURE__ */ jsx14(YouTubeIcon, { className: "w-5 h-5" });
|
|
2233
2160
|
case "instagram":
|
|
2234
2161
|
case "ig":
|
|
2235
|
-
return /* @__PURE__ */
|
|
2162
|
+
return /* @__PURE__ */ jsx14(InstagramIcon, { className: "w-5 h-5" });
|
|
2236
2163
|
case "facebook":
|
|
2237
2164
|
case "fb":
|
|
2238
|
-
return /* @__PURE__ */
|
|
2165
|
+
return /* @__PURE__ */ jsx14(FacebookIcon, { className: "w-5 h-5" });
|
|
2239
2166
|
default:
|
|
2240
|
-
return /* @__PURE__ */
|
|
2167
|
+
return /* @__PURE__ */ jsx14(GlobeIcon, { className: "w-5 h-5" });
|
|
2241
2168
|
}
|
|
2242
2169
|
}
|
|
2243
2170
|
function SocialIconRow({ className = "", links = defaultLinks, variant = "outline" }) {
|
|
2244
|
-
return /* @__PURE__ */
|
|
2171
|
+
return /* @__PURE__ */ jsx14("div", { className: `flex flex-row gap-3 w-full ${className}`, children: links.map((link, index) => /* @__PURE__ */ jsx14(
|
|
2245
2172
|
Button,
|
|
2246
2173
|
{
|
|
2247
2174
|
asChild: true,
|
|
2248
2175
|
variant,
|
|
2249
2176
|
size: "icon",
|
|
2250
2177
|
className: "flex-1",
|
|
2251
|
-
children: /* @__PURE__ */
|
|
2178
|
+
children: /* @__PURE__ */ jsx14(
|
|
2252
2179
|
"a",
|
|
2253
2180
|
{
|
|
2254
2181
|
href: link.href,
|
|
@@ -2264,31 +2191,31 @@ function SocialIconRow({ className = "", links = defaultLinks, variant = "outlin
|
|
|
2264
2191
|
}
|
|
2265
2192
|
|
|
2266
2193
|
// src/components/footer.tsx
|
|
2267
|
-
import { Fragment as Fragment3, jsx as
|
|
2194
|
+
import { Fragment as Fragment3, jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2268
2195
|
function NavLinkSkeleton() {
|
|
2269
|
-
return /* @__PURE__ */
|
|
2196
|
+
return /* @__PURE__ */ jsx15(Skeleton, { className: "h-5 md:h-6 w-20 md:w-24" });
|
|
2270
2197
|
}
|
|
2271
2198
|
function Footer({ config, renderLink }) {
|
|
2272
2199
|
if (!config) {
|
|
2273
2200
|
console.warn("Footer: No config provided");
|
|
2274
2201
|
return null;
|
|
2275
2202
|
}
|
|
2276
|
-
return /* @__PURE__ */
|
|
2203
|
+
return /* @__PURE__ */ jsx15(UniversalFooter, { config, renderLink });
|
|
2277
2204
|
}
|
|
2278
2205
|
function UniversalFooter({ config, renderLink }) {
|
|
2279
|
-
const defaultRenderLink = (link) => /* @__PURE__ */
|
|
2206
|
+
const defaultRenderLink = (link) => /* @__PURE__ */ jsx15("a", { href: link.href, className: "font-body font-medium text-md md:text-md leading-[1.33] text-ods-text-primary hover:text-ods-accent-primary transition-colors", children: link.label });
|
|
2280
2207
|
const linkRenderer = renderLink || defaultRenderLink;
|
|
2281
|
-
return /* @__PURE__ */
|
|
2282
|
-
/* @__PURE__ */
|
|
2283
|
-
/* @__PURE__ */
|
|
2284
|
-
/* @__PURE__ */
|
|
2285
|
-
config.logo && /* @__PURE__ */
|
|
2286
|
-
config.nameElement || /* @__PURE__ */
|
|
2208
|
+
return /* @__PURE__ */ jsxs11("footer", { className: `w-full flex flex-col justify-center items-center ${config.backgroundColor || "bg-ods-bg-card"} px-6 py-10 relative gap-6 md:gap-6 min-h-[auto] md:min-h-[248px] z-50 border-t border-ods-border`, children: [
|
|
2209
|
+
/* @__PURE__ */ jsxs11("div", { className: "w-full grid grid-cols-2 lg:grid-cols-4 gap-6 md:gap-8 items-start", children: [
|
|
2210
|
+
/* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-4 md:gap-6 items-start text-left col-span-2 md:col-span-1 lg:col-span-1", children: [
|
|
2211
|
+
/* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2", children: [
|
|
2212
|
+
config.logo && /* @__PURE__ */ jsx15(Suspense, { fallback: /* @__PURE__ */ jsx15(Skeleton, { className: "w-8 h-8" }), children: config.logo }),
|
|
2213
|
+
config.nameElement || /* @__PURE__ */ jsx15("span", { className: "font-heading text-heading-5 font-bold text-ods-text-primary whitespace-nowrap", children: config.name })
|
|
2287
2214
|
] }),
|
|
2288
|
-
!config.moveDescriptionToRight && /* @__PURE__ */
|
|
2289
|
-
/* @__PURE__ */
|
|
2290
|
-
config.belowDescriptionContent && /* @__PURE__ */
|
|
2291
|
-
!config.hideSocialRow && /* @__PURE__ */
|
|
2215
|
+
!config.moveDescriptionToRight && /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
2216
|
+
/* @__PURE__ */ jsx15("p", { className: "font-body font-medium text-sm md:text-sm leading-[1.43] text-ods-text-primary", children: config.description }),
|
|
2217
|
+
config.belowDescriptionContent && /* @__PURE__ */ jsx15(Suspense, { fallback: /* @__PURE__ */ jsx15(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent }),
|
|
2218
|
+
!config.hideSocialRow && /* @__PURE__ */ jsx15(
|
|
2292
2219
|
SocialIconRow,
|
|
2293
2220
|
{
|
|
2294
2221
|
className: "pt-2",
|
|
@@ -2296,22 +2223,22 @@ function UniversalFooter({ config, renderLink }) {
|
|
|
2296
2223
|
}
|
|
2297
2224
|
)
|
|
2298
2225
|
] }),
|
|
2299
|
-
config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */
|
|
2226
|
+
config.moveDescriptionToRight && config.keepBelowDescriptionLeft && config.belowDescriptionContent && /* @__PURE__ */ jsx15(Suspense, { fallback: /* @__PURE__ */ jsx15(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
|
|
2300
2227
|
] }),
|
|
2301
|
-
config.sections.map((section, index) => /* @__PURE__ */
|
|
2302
|
-
/* @__PURE__ */
|
|
2303
|
-
/* @__PURE__ */
|
|
2228
|
+
config.sections.map((section, index) => /* @__PURE__ */ jsxs11("div", { className: "flex flex-col gap-3 items-start text-left col-span-1", children: [
|
|
2229
|
+
/* @__PURE__ */ jsx15("h3", { className: "text-h5 tracking-[-0.02em] text-ods-text-muted", children: section.title }),
|
|
2230
|
+
/* @__PURE__ */ jsx15("div", { className: "flex flex-col gap-3", children: section.links.map((link, linkIndex) => /* @__PURE__ */ jsx15(Suspense, { fallback: /* @__PURE__ */ jsx15(NavLinkSkeleton, {}), children: linkRenderer(link) }, linkIndex)) })
|
|
2304
2231
|
] }, index)),
|
|
2305
|
-
config.customComponent && /* @__PURE__ */
|
|
2306
|
-
(config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */
|
|
2307
|
-
config.moveDescriptionToRight && /* @__PURE__ */
|
|
2308
|
-
/* @__PURE__ */
|
|
2309
|
-
config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */
|
|
2232
|
+
config.customComponent && /* @__PURE__ */ jsx15("div", { className: "flex flex-col col-span-2 md:col-span-1 lg:col-span-1 justify-center", children: /* @__PURE__ */ jsx15(Suspense, { fallback: /* @__PURE__ */ jsx15(Skeleton, { className: "h-32 w-full" }), children: config.customComponent }) }),
|
|
2233
|
+
(config.rightColumnContent || config.moveDescriptionToRight) && /* @__PURE__ */ jsxs11("div", { className: "flex flex-col col-span-2 md:col-span-1 lg:col-span-1 justify-start gap-4 md:gap-6", children: [
|
|
2234
|
+
config.moveDescriptionToRight && /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
2235
|
+
/* @__PURE__ */ jsx15("p", { className: "font-body font-medium text-sm md:text-sm leading-[1.43] text-ods-text-primary", children: config.description }),
|
|
2236
|
+
config.belowDescriptionContent && !config.keepBelowDescriptionLeft && /* @__PURE__ */ jsx15(Suspense, { fallback: /* @__PURE__ */ jsx15(Skeleton, { className: "h-8 w-full" }), children: config.belowDescriptionContent })
|
|
2310
2237
|
] }),
|
|
2311
|
-
config.rightColumnContent && /* @__PURE__ */
|
|
2238
|
+
config.rightColumnContent && /* @__PURE__ */ jsx15(Suspense, { fallback: /* @__PURE__ */ jsx15(Skeleton, { className: "h-32 w-full" }), children: config.rightColumnContent })
|
|
2312
2239
|
] })
|
|
2313
2240
|
] }),
|
|
2314
|
-
/* @__PURE__ */
|
|
2241
|
+
/* @__PURE__ */ jsxs11("p", { className: "font-body font-medium text-md md:text-md leading-[1.33] text-center w-full text-ods-text-muted pt-4 md:pt-0", children: [
|
|
2315
2242
|
"\xA9 ",
|
|
2316
2243
|
(/* @__PURE__ */ new Date()).getFullYear(),
|
|
2317
2244
|
" ",
|
|
@@ -2619,21 +2546,21 @@ init_unified_pagination();
|
|
|
2619
2546
|
|
|
2620
2547
|
// src/components/footer-waitlist-button.tsx
|
|
2621
2548
|
init_next_navigation();
|
|
2622
|
-
import { useCallback
|
|
2549
|
+
import { useCallback } from "react";
|
|
2623
2550
|
init_button();
|
|
2624
|
-
import { jsx as
|
|
2551
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
2625
2552
|
function FooterWaitlistButton({ className }) {
|
|
2626
2553
|
const router = useRouter();
|
|
2627
2554
|
const runtime = useChatRuntime();
|
|
2628
|
-
const handleClick =
|
|
2555
|
+
const handleClick = useCallback(() => {
|
|
2629
2556
|
executeNavigationImperative({ runtime, href: "/waitlist#top", fallbackNavigate: router.push });
|
|
2630
2557
|
}, [router, runtime]);
|
|
2631
|
-
return /* @__PURE__ */
|
|
2558
|
+
return /* @__PURE__ */ jsx16(
|
|
2632
2559
|
Button,
|
|
2633
2560
|
{
|
|
2634
2561
|
onClick: handleClick,
|
|
2635
2562
|
className,
|
|
2636
|
-
leftIcon: /* @__PURE__ */
|
|
2563
|
+
leftIcon: /* @__PURE__ */ jsx16(OpenFrameLogo, {}),
|
|
2637
2564
|
children: "Join Waitlist"
|
|
2638
2565
|
}
|
|
2639
2566
|
);
|
|
@@ -2641,13 +2568,13 @@ function FooterWaitlistButton({ className }) {
|
|
|
2641
2568
|
|
|
2642
2569
|
// src/components/hero-image-uploader.tsx
|
|
2643
2570
|
init_button();
|
|
2644
|
-
import { useRef
|
|
2571
|
+
import { useRef, useState as useState2 } from "react";
|
|
2645
2572
|
import { Loader2, Image as ImageIcon2, Upload, X as X3 } from "lucide-react";
|
|
2646
|
-
import { Fragment as Fragment4, jsx as
|
|
2573
|
+
import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2647
2574
|
function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, objectFit = "cover", showReplaceButton = true, deferUpload = false, onUpload, onDelete }) {
|
|
2648
|
-
const inputRef =
|
|
2575
|
+
const inputRef = useRef(null);
|
|
2649
2576
|
const { toast } = useToast();
|
|
2650
|
-
const [uploading, setUploading] =
|
|
2577
|
+
const [uploading, setUploading] = useState2(false);
|
|
2651
2578
|
const ALLOWED_TYPES = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/gif"];
|
|
2652
2579
|
const MAX_SIZE = 5 * 1024 * 1024;
|
|
2653
2580
|
const openDialog = () => inputRef.current?.click();
|
|
@@ -2719,51 +2646,51 @@ function HeroImageUploader({ imageUrl, onChange, uploadEndpoint, height = 300, o
|
|
|
2719
2646
|
onChange(void 0);
|
|
2720
2647
|
};
|
|
2721
2648
|
const heightStyle = typeof height === "number" ? `${height}px` : height;
|
|
2722
|
-
return /* @__PURE__ */
|
|
2723
|
-
imageUrl ? /* @__PURE__ */
|
|
2724
|
-
/* @__PURE__ */
|
|
2725
|
-
/* @__PURE__ */
|
|
2726
|
-
showReplaceButton && /* @__PURE__ */
|
|
2649
|
+
return /* @__PURE__ */ jsxs12("div", { className: "w-full h-full max-h-full space-y-2 min-h-[300px]", children: [
|
|
2650
|
+
imageUrl ? /* @__PURE__ */ jsxs12("div", { className: "relative group w-full aspect-square md:aspect-auto h-auto md:h-full flex items-center justify-center overflow-hidden", style: { height: heightStyle }, children: [
|
|
2651
|
+
/* @__PURE__ */ jsx17("img", { src: imageUrl, className: `absolute inset-0 w-full h-full object-${objectFit}`, alt: "Cover" }),
|
|
2652
|
+
/* @__PURE__ */ jsxs12("div", { className: "absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 flex items-center justify-center gap-4 transition-opacity rounded-lg", children: [
|
|
2653
|
+
showReplaceButton && /* @__PURE__ */ jsx17(
|
|
2727
2654
|
Button,
|
|
2728
2655
|
{
|
|
2729
2656
|
variant: "outline",
|
|
2730
2657
|
size: "icon",
|
|
2731
2658
|
onClick: openDialog,
|
|
2732
2659
|
className: "bg-white text-black hover:bg-gray-100 rounded-full w-12 h-12",
|
|
2733
|
-
children: /* @__PURE__ */
|
|
2660
|
+
children: /* @__PURE__ */ jsx17(Upload, { className: "h-5 w-5" })
|
|
2734
2661
|
}
|
|
2735
2662
|
),
|
|
2736
|
-
/* @__PURE__ */
|
|
2663
|
+
/* @__PURE__ */ jsx17(
|
|
2737
2664
|
Button,
|
|
2738
2665
|
{
|
|
2739
2666
|
variant: "outline",
|
|
2740
2667
|
size: "icon",
|
|
2741
2668
|
onClick: () => handleRemove(),
|
|
2742
2669
|
className: "bg-white text-black hover:bg-gray-100 rounded-full w-12 h-12",
|
|
2743
|
-
children: /* @__PURE__ */
|
|
2670
|
+
children: /* @__PURE__ */ jsx17(X3, { className: "h-5 w-5" })
|
|
2744
2671
|
}
|
|
2745
2672
|
)
|
|
2746
2673
|
] })
|
|
2747
|
-
] }) : /* @__PURE__ */
|
|
2674
|
+
] }) : /* @__PURE__ */ jsx17(
|
|
2748
2675
|
"div",
|
|
2749
2676
|
{
|
|
2750
2677
|
className: `w-full h-full border-2 border-dashed ${uploading ? "border-[#FFC008]" : "border-ods-border hover:border-[#FFC008]"} rounded-lg flex flex-col items-center justify-center cursor-pointer bg-[#1A1A1A]`,
|
|
2751
2678
|
style: { height: heightStyle },
|
|
2752
2679
|
onClick: openDialog,
|
|
2753
|
-
children: uploading ? /* @__PURE__ */
|
|
2754
|
-
/* @__PURE__ */
|
|
2755
|
-
/* @__PURE__ */
|
|
2756
|
-
/* @__PURE__ */
|
|
2757
|
-
/* @__PURE__ */
|
|
2680
|
+
children: uploading ? /* @__PURE__ */ jsx17(Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ jsxs12(Fragment4, { children: [
|
|
2681
|
+
/* @__PURE__ */ jsx17(ImageIcon2, { className: "h-12 w-12 text-ods-text-secondary" }),
|
|
2682
|
+
/* @__PURE__ */ jsx17("span", { className: "text-ods-text-primary font-['DM_Sans'] text-[16px] font-medium mt-2", children: "Upload cover image" }),
|
|
2683
|
+
/* @__PURE__ */ jsx17("span", { className: "text-ods-text-secondary font-['DM_Sans'] text-[14px] mt-1", children: "Click to upload or drag and drop" }),
|
|
2684
|
+
/* @__PURE__ */ jsx17("span", { className: "text-[#666666] font-['DM_Sans'] text-[12px]", children: "PNG, JPEG, WebP, GIF up to 5MB" })
|
|
2758
2685
|
] })
|
|
2759
2686
|
}
|
|
2760
2687
|
),
|
|
2761
|
-
/* @__PURE__ */
|
|
2688
|
+
/* @__PURE__ */ jsx17("input", { ref: inputRef, type: "file", accept: "image/*", onChange: handleSelect, className: "hidden" })
|
|
2762
2689
|
] });
|
|
2763
2690
|
}
|
|
2764
2691
|
|
|
2765
2692
|
// src/components/icons-block.tsx
|
|
2766
|
-
import { useState as
|
|
2693
|
+
import { useState as useState3, useEffect as useEffect2, useRef as useRef2 } from "react";
|
|
2767
2694
|
|
|
2768
2695
|
// src/components/icons-stub.tsx
|
|
2769
2696
|
import { DollarSign, Code, Users, Building, GitCompare, MessageSquare } from "lucide-react";
|
|
@@ -2777,13 +2704,13 @@ var CompareIcon2 = GitCompare;
|
|
|
2777
2704
|
|
|
2778
2705
|
// src/components/icons-block.tsx
|
|
2779
2706
|
import { Sun, Moon, CheckCircle, Github, PlusCircle } from "lucide-react";
|
|
2780
|
-
import { jsx as
|
|
2707
|
+
import { jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2781
2708
|
var SunIcon2 = Sun;
|
|
2782
2709
|
var MoonIcon2 = Moon;
|
|
2783
2710
|
var CheckCircleIcon3 = CheckCircle;
|
|
2784
2711
|
var GitHubIcon2 = Github;
|
|
2785
2712
|
var PlusCircleIcon2 = PlusCircle;
|
|
2786
|
-
var OpenmspLogo3 = () => /* @__PURE__ */
|
|
2713
|
+
var OpenmspLogo3 = () => /* @__PURE__ */ jsx18("div", { children: "Logo" });
|
|
2787
2714
|
var availableIcons = [
|
|
2788
2715
|
VendorDirectoryIcon2,
|
|
2789
2716
|
OpenSourceIcon2,
|
|
@@ -2799,11 +2726,11 @@ var availableIcons = [
|
|
|
2799
2726
|
OpenmspLogo3
|
|
2800
2727
|
];
|
|
2801
2728
|
function ResponsiveIconsBlock({ loading = false }) {
|
|
2802
|
-
const [columns, setColumns] =
|
|
2803
|
-
const [iconGrid, setIconGrid] =
|
|
2804
|
-
const [iconsLoaded, setIconsLoaded] =
|
|
2805
|
-
const randomSeedRef =
|
|
2806
|
-
|
|
2729
|
+
const [columns, setColumns] = useState3(24);
|
|
2730
|
+
const [iconGrid, setIconGrid] = useState3([]);
|
|
2731
|
+
const [iconsLoaded, setIconsLoaded] = useState3(false);
|
|
2732
|
+
const randomSeedRef = useRef2(0);
|
|
2733
|
+
useEffect2(() => {
|
|
2807
2734
|
function calculateColumns() {
|
|
2808
2735
|
const cols = Math.ceil(window.innerWidth / 56) + 4;
|
|
2809
2736
|
setColumns(cols);
|
|
@@ -2813,7 +2740,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
2813
2740
|
setIconsLoaded(true);
|
|
2814
2741
|
return () => window.removeEventListener("resize", calculateColumns);
|
|
2815
2742
|
}, []);
|
|
2816
|
-
|
|
2743
|
+
useEffect2(() => {
|
|
2817
2744
|
if (randomSeedRef.current === 0) {
|
|
2818
2745
|
randomSeedRef.current = Date.now();
|
|
2819
2746
|
}
|
|
@@ -2846,17 +2773,17 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
2846
2773
|
return iconGrid[row]?.[col] || availableIcons[0];
|
|
2847
2774
|
};
|
|
2848
2775
|
if (loading || iconGrid.length === 0) {
|
|
2849
|
-
return /* @__PURE__ */
|
|
2776
|
+
return /* @__PURE__ */ jsx18(
|
|
2850
2777
|
"div",
|
|
2851
2778
|
{
|
|
2852
2779
|
className: "w-full h-[80px] md:h-[112px] bg-[#1A1A1A] relative overflow-hidden",
|
|
2853
2780
|
role: "presentation",
|
|
2854
2781
|
"aria-hidden": "true",
|
|
2855
|
-
children: /* @__PURE__ */
|
|
2782
|
+
children: /* @__PURE__ */ jsx18("div", { className: "absolute inset-0 animate-pulse bg-[#2A2A2A]/60" })
|
|
2856
2783
|
}
|
|
2857
2784
|
);
|
|
2858
2785
|
}
|
|
2859
|
-
return /* @__PURE__ */
|
|
2786
|
+
return /* @__PURE__ */ jsxs13(
|
|
2860
2787
|
"div",
|
|
2861
2788
|
{
|
|
2862
2789
|
className: "w-full h-[80px] md:h-[112px] overflow-hidden bg-[#1A1A1A] relative z-10",
|
|
@@ -2864,14 +2791,14 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
2864
2791
|
role: "presentation",
|
|
2865
2792
|
"aria-hidden": "true",
|
|
2866
2793
|
children: [
|
|
2867
|
-
/* @__PURE__ */
|
|
2794
|
+
/* @__PURE__ */ jsx18("style", { children: `
|
|
2868
2795
|
.icons-block svg,
|
|
2869
2796
|
.icons-block svg * {
|
|
2870
2797
|
filter: grayscale(100%) brightness(0) invert(1) brightness(0.4) !important;
|
|
2871
2798
|
fill: currentColor !important;
|
|
2872
2799
|
}
|
|
2873
2800
|
` }),
|
|
2874
|
-
/* @__PURE__ */
|
|
2801
|
+
/* @__PURE__ */ jsx18(
|
|
2875
2802
|
"div",
|
|
2876
2803
|
{
|
|
2877
2804
|
className: "grid h-full icons-block w-full",
|
|
@@ -2883,7 +2810,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
2883
2810
|
const col = idx % displayColumns;
|
|
2884
2811
|
const row = Math.floor(idx / displayColumns);
|
|
2885
2812
|
const IconComponent = getIconForIndex(idx);
|
|
2886
|
-
return /* @__PURE__ */
|
|
2813
|
+
return /* @__PURE__ */ jsx18(
|
|
2887
2814
|
"div",
|
|
2888
2815
|
{
|
|
2889
2816
|
className: "flex items-center justify-center w-full h-full",
|
|
@@ -2896,7 +2823,7 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
2896
2823
|
boxSizing: "border-box"
|
|
2897
2824
|
},
|
|
2898
2825
|
role: "presentation",
|
|
2899
|
-
children: /* @__PURE__ */
|
|
2826
|
+
children: /* @__PURE__ */ jsx18(
|
|
2900
2827
|
IconComponent,
|
|
2901
2828
|
{
|
|
2902
2829
|
width: 16,
|
|
@@ -2918,11 +2845,11 @@ function ResponsiveIconsBlock({ loading = false }) {
|
|
|
2918
2845
|
|
|
2919
2846
|
// src/components/image-cropper.tsx
|
|
2920
2847
|
init_button();
|
|
2921
|
-
import { useCallback as
|
|
2848
|
+
import { useCallback as useCallback2, useState as useState4 } from "react";
|
|
2922
2849
|
import Cropper from "react-easy-crop";
|
|
2923
2850
|
init_cn();
|
|
2924
2851
|
import { Check, RotateCcw } from "lucide-react";
|
|
2925
|
-
import { jsx as
|
|
2852
|
+
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2926
2853
|
function loadImage(src) {
|
|
2927
2854
|
return new Promise((resolve, reject) => {
|
|
2928
2855
|
const img = new Image();
|
|
@@ -2941,15 +2868,15 @@ var ImageCropper = ({
|
|
|
2941
2868
|
maxSizePx = 512,
|
|
2942
2869
|
className
|
|
2943
2870
|
}) => {
|
|
2944
|
-
const [crop, setCrop] =
|
|
2945
|
-
const [zoom, setZoom] =
|
|
2946
|
-
const [rotation, setRotation] =
|
|
2947
|
-
const [croppedAreaPixels, setCroppedAreaPixels] =
|
|
2948
|
-
const onCropComplete =
|
|
2871
|
+
const [crop, setCrop] = useState4({ x: 0, y: 0 });
|
|
2872
|
+
const [zoom, setZoom] = useState4(1);
|
|
2873
|
+
const [rotation, setRotation] = useState4(0);
|
|
2874
|
+
const [croppedAreaPixels, setCroppedAreaPixels] = useState4(null);
|
|
2875
|
+
const onCropComplete = useCallback2((_, area) => {
|
|
2949
2876
|
setCroppedAreaPixels(area);
|
|
2950
2877
|
}, []);
|
|
2951
2878
|
const checkerBg = "bg-[length:16px_16px] bg-[linear-gradient(45deg,transparent_25%,#2a2a2a_25%,#2a2a2a_75%,transparent_75%,transparent),linear-gradient(45deg,#2a2a2a_25%,transparent_25%,transparent_75%,#2a2a2a_75%,#2a2a2a)]";
|
|
2952
|
-
const exportCrop =
|
|
2879
|
+
const exportCrop = useCallback2(async () => {
|
|
2953
2880
|
if (!croppedAreaPixels) return void 0;
|
|
2954
2881
|
const img = await loadImage(src);
|
|
2955
2882
|
const canvas = document.createElement("canvas");
|
|
@@ -3010,7 +2937,7 @@ var ImageCropper = ({
|
|
|
3010
2937
|
onCancel?.();
|
|
3011
2938
|
}
|
|
3012
2939
|
};
|
|
3013
|
-
return /* @__PURE__ */
|
|
2940
|
+
return /* @__PURE__ */ jsxs14(
|
|
3014
2941
|
"div",
|
|
3015
2942
|
{
|
|
3016
2943
|
className: cn(
|
|
@@ -3021,14 +2948,14 @@ var ImageCropper = ({
|
|
|
3021
2948
|
tabIndex: 0,
|
|
3022
2949
|
"aria-label": "Image cropper",
|
|
3023
2950
|
children: [
|
|
3024
|
-
/* @__PURE__ */
|
|
2951
|
+
/* @__PURE__ */ jsx19(
|
|
3025
2952
|
"div",
|
|
3026
2953
|
{
|
|
3027
2954
|
className: cn(
|
|
3028
2955
|
"relative w-full aspect-square md:aspect-video rounded-md overflow-hidden",
|
|
3029
2956
|
checkerBg
|
|
3030
2957
|
),
|
|
3031
|
-
children: /* @__PURE__ */
|
|
2958
|
+
children: /* @__PURE__ */ jsx19(
|
|
3032
2959
|
Cropper,
|
|
3033
2960
|
{
|
|
3034
2961
|
image: src,
|
|
@@ -3047,10 +2974,10 @@ var ImageCropper = ({
|
|
|
3047
2974
|
)
|
|
3048
2975
|
}
|
|
3049
2976
|
),
|
|
3050
|
-
/* @__PURE__ */
|
|
3051
|
-
/* @__PURE__ */
|
|
3052
|
-
/* @__PURE__ */
|
|
3053
|
-
/* @__PURE__ */
|
|
2977
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex flex-col gap-4", children: [
|
|
2978
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3", children: [
|
|
2979
|
+
/* @__PURE__ */ jsx19("span", { className: "min-w-[60px] text-sm", children: "Zoom" }),
|
|
2980
|
+
/* @__PURE__ */ jsx19(
|
|
3054
2981
|
Slider,
|
|
3055
2982
|
{
|
|
3056
2983
|
min: 1,
|
|
@@ -3063,9 +2990,9 @@ var ImageCropper = ({
|
|
|
3063
2990
|
}
|
|
3064
2991
|
)
|
|
3065
2992
|
] }),
|
|
3066
|
-
/* @__PURE__ */
|
|
3067
|
-
/* @__PURE__ */
|
|
3068
|
-
/* @__PURE__ */
|
|
2993
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex items-center gap-3", children: [
|
|
2994
|
+
/* @__PURE__ */ jsx19("span", { className: "min-w-[60px] text-sm", children: "Rotate" }),
|
|
2995
|
+
/* @__PURE__ */ jsx19(
|
|
3069
2996
|
Slider,
|
|
3070
2997
|
{
|
|
3071
2998
|
min: 0,
|
|
@@ -3077,21 +3004,21 @@ var ImageCropper = ({
|
|
|
3077
3004
|
className: "flex-1"
|
|
3078
3005
|
}
|
|
3079
3006
|
),
|
|
3080
|
-
/* @__PURE__ */
|
|
3007
|
+
/* @__PURE__ */ jsx19(
|
|
3081
3008
|
Button,
|
|
3082
3009
|
{
|
|
3083
3010
|
variant: "outline",
|
|
3084
3011
|
size: "icon",
|
|
3085
3012
|
onClick: () => setRotation(0),
|
|
3086
3013
|
"aria-label": "Reset rotation",
|
|
3087
|
-
children: /* @__PURE__ */
|
|
3014
|
+
children: /* @__PURE__ */ jsx19(RotateCcw, { className: "h-4 w-4" })
|
|
3088
3015
|
}
|
|
3089
3016
|
)
|
|
3090
3017
|
] })
|
|
3091
3018
|
] }),
|
|
3092
|
-
/* @__PURE__ */
|
|
3093
|
-
onCancel && /* @__PURE__ */
|
|
3094
|
-
/* @__PURE__ */
|
|
3019
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex justify-end gap-2 mt-2", children: [
|
|
3020
|
+
onCancel && /* @__PURE__ */ jsx19(Button, { variant: "outline", onClick: onCancel, "aria-label": "Cancel crop", children: "Cancel" }),
|
|
3021
|
+
/* @__PURE__ */ jsx19(
|
|
3095
3022
|
Button,
|
|
3096
3023
|
{
|
|
3097
3024
|
variant: "accent",
|
|
@@ -3099,7 +3026,7 @@ var ImageCropper = ({
|
|
|
3099
3026
|
const result = await exportCrop();
|
|
3100
3027
|
if (result) onComplete(result);
|
|
3101
3028
|
},
|
|
3102
|
-
leftIcon: /* @__PURE__ */
|
|
3029
|
+
leftIcon: /* @__PURE__ */ jsx19(Check, { className: "h-4 w-4" }),
|
|
3103
3030
|
"aria-label": "Apply crop",
|
|
3104
3031
|
children: "Apply"
|
|
3105
3032
|
}
|
|
@@ -3112,10 +3039,10 @@ var ImageCropper = ({
|
|
|
3112
3039
|
|
|
3113
3040
|
// src/components/media-carousel.tsx
|
|
3114
3041
|
init_cn();
|
|
3115
|
-
import { useState as
|
|
3116
|
-
import { Fragment as Fragment5, jsx as
|
|
3117
|
-
var ChevronLeftIcon = () => /* @__PURE__ */
|
|
3118
|
-
var ChevronRightIcon = () => /* @__PURE__ */
|
|
3042
|
+
import { useState as useState5, useRef as useRef4, useEffect as useEffect4, memo, useCallback as useCallback3 } from "react";
|
|
3043
|
+
import { Fragment as Fragment5, jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3044
|
+
var ChevronLeftIcon = () => /* @__PURE__ */ jsx20("svg", { width: "24", height: "24", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx20("polyline", { points: "15,18 9,12 15,6" }) });
|
|
3045
|
+
var ChevronRightIcon = () => /* @__PURE__ */ jsx20("svg", { width: "24", height: "24", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx20("polyline", { points: "9,18 15,12 9,6" }) });
|
|
3119
3046
|
var MediaCarousel = memo(function MediaCarousel2({
|
|
3120
3047
|
media,
|
|
3121
3048
|
className,
|
|
@@ -3124,12 +3051,12 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3124
3051
|
autoPlay = false,
|
|
3125
3052
|
objectFit = "contain"
|
|
3126
3053
|
}) {
|
|
3127
|
-
const [currentIndex, setCurrentIndex] =
|
|
3128
|
-
const [touchStart, setTouchStart] =
|
|
3129
|
-
const [touchEnd, setTouchEnd] =
|
|
3130
|
-
const carouselRef =
|
|
3131
|
-
const thumbnailsRef =
|
|
3132
|
-
|
|
3054
|
+
const [currentIndex, setCurrentIndex] = useState5(0);
|
|
3055
|
+
const [touchStart, setTouchStart] = useState5(null);
|
|
3056
|
+
const [touchEnd, setTouchEnd] = useState5(null);
|
|
3057
|
+
const carouselRef = useRef4(null);
|
|
3058
|
+
const thumbnailsRef = useRef4(null);
|
|
3059
|
+
useEffect4(() => {
|
|
3133
3060
|
if (currentIndex >= media.length && media.length > 0) {
|
|
3134
3061
|
setCurrentIndex(media.length - 1);
|
|
3135
3062
|
}
|
|
@@ -3141,17 +3068,17 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3141
3068
|
if (!currentItem) {
|
|
3142
3069
|
return null;
|
|
3143
3070
|
}
|
|
3144
|
-
const nextSlide =
|
|
3071
|
+
const nextSlide = useCallback3(() => {
|
|
3145
3072
|
setCurrentIndex((prev) => (prev + 1) % media.length);
|
|
3146
3073
|
}, [media.length]);
|
|
3147
|
-
const prevSlide =
|
|
3074
|
+
const prevSlide = useCallback3(() => {
|
|
3148
3075
|
setCurrentIndex((prev) => (prev - 1 + media.length) % media.length);
|
|
3149
3076
|
}, [media.length]);
|
|
3150
|
-
const selectSlide =
|
|
3077
|
+
const selectSlide = useCallback3((index) => {
|
|
3151
3078
|
if (index === currentIndex) return;
|
|
3152
3079
|
setCurrentIndex(index);
|
|
3153
3080
|
}, [currentIndex]);
|
|
3154
|
-
const handleKeyDown =
|
|
3081
|
+
const handleKeyDown = useCallback3((e) => {
|
|
3155
3082
|
if (media.length <= 1) return;
|
|
3156
3083
|
if (e.key === "ArrowLeft") {
|
|
3157
3084
|
e.preventDefault();
|
|
@@ -3181,7 +3108,7 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3181
3108
|
prevSlide();
|
|
3182
3109
|
}
|
|
3183
3110
|
};
|
|
3184
|
-
const renderYouTubeEmbed = (item, index) => /* @__PURE__ */
|
|
3111
|
+
const renderYouTubeEmbed = (item, index) => /* @__PURE__ */ jsx20(
|
|
3185
3112
|
Video,
|
|
3186
3113
|
{
|
|
3187
3114
|
kind: "youtube",
|
|
@@ -3191,7 +3118,7 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3191
3118
|
priority: index === currentIndex
|
|
3192
3119
|
}
|
|
3193
3120
|
);
|
|
3194
|
-
const renderVideo = (item, index) => /* @__PURE__ */
|
|
3121
|
+
const renderVideo = (item, index) => /* @__PURE__ */ jsx20(
|
|
3195
3122
|
Video,
|
|
3196
3123
|
{
|
|
3197
3124
|
url: item.src,
|
|
@@ -3201,7 +3128,7 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3201
3128
|
priority: index === currentIndex
|
|
3202
3129
|
}
|
|
3203
3130
|
);
|
|
3204
|
-
const renderImage = (item, index) => /* @__PURE__ */
|
|
3131
|
+
const renderImage = (item, index) => /* @__PURE__ */ jsx20("div", { className: "absolute inset-0 bg-black", children: /* @__PURE__ */ jsx20(
|
|
3205
3132
|
"img",
|
|
3206
3133
|
{
|
|
3207
3134
|
src: item.src,
|
|
@@ -3234,7 +3161,7 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3234
3161
|
} else if (item.type === "video" && item.poster) {
|
|
3235
3162
|
thumbnailSrc = item.poster;
|
|
3236
3163
|
}
|
|
3237
|
-
return /* @__PURE__ */
|
|
3164
|
+
return /* @__PURE__ */ jsxs15(
|
|
3238
3165
|
"button",
|
|
3239
3166
|
{
|
|
3240
3167
|
onClick: () => selectSlide(index),
|
|
@@ -3244,7 +3171,7 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3244
3171
|
isActive ? "border-[#FFC008] ring-2 ring-[#FFC008]/20" : "border-ods-border hover:border-[#888888]"
|
|
3245
3172
|
),
|
|
3246
3173
|
children: [
|
|
3247
|
-
/* @__PURE__ */
|
|
3174
|
+
/* @__PURE__ */ jsx20(
|
|
3248
3175
|
"img",
|
|
3249
3176
|
{
|
|
3250
3177
|
src: thumbnailSrc,
|
|
@@ -3253,8 +3180,8 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3253
3180
|
loading: "lazy"
|
|
3254
3181
|
}
|
|
3255
3182
|
),
|
|
3256
|
-
(item.type === "video" || item.type === "youtube") && /* @__PURE__ */
|
|
3257
|
-
isActive && /* @__PURE__ */
|
|
3183
|
+
(item.type === "video" || item.type === "youtube") && /* @__PURE__ */ jsx20("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ jsx20("div", { className: "bg-black/70 rounded-full p-1", children: /* @__PURE__ */ jsx20(PlayIcon, { size: 12, color: "white" }) }) }),
|
|
3184
|
+
isActive && /* @__PURE__ */ jsx20("div", { className: "absolute bottom-1 right-1 w-2 h-2 bg-[#FFC008] rounded-full" })
|
|
3258
3185
|
]
|
|
3259
3186
|
},
|
|
3260
3187
|
index
|
|
@@ -3273,8 +3200,8 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3273
3200
|
return "aspect-video";
|
|
3274
3201
|
}
|
|
3275
3202
|
};
|
|
3276
|
-
return /* @__PURE__ */
|
|
3277
|
-
/* @__PURE__ */
|
|
3203
|
+
return /* @__PURE__ */ jsxs15("div", { className: cn("space-y-4", className), children: [
|
|
3204
|
+
/* @__PURE__ */ jsxs15(
|
|
3278
3205
|
"div",
|
|
3279
3206
|
{
|
|
3280
3207
|
ref: carouselRef,
|
|
@@ -3291,26 +3218,26 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3291
3218
|
"aria-label": media.length > 1 ? "Media carousel, use arrow keys to navigate" : void 0,
|
|
3292
3219
|
children: [
|
|
3293
3220
|
renderMainMedia(currentItem, currentIndex),
|
|
3294
|
-
media.length > 1 && /* @__PURE__ */
|
|
3295
|
-
/* @__PURE__ */
|
|
3221
|
+
media.length > 1 && /* @__PURE__ */ jsxs15(Fragment5, { children: [
|
|
3222
|
+
/* @__PURE__ */ jsx20(
|
|
3296
3223
|
"button",
|
|
3297
3224
|
{
|
|
3298
3225
|
onClick: prevSlide,
|
|
3299
3226
|
className: "absolute left-3 top-1/2 transform -translate-y-1/2 bg-black/50 text-white rounded-full p-2 opacity-0 group-hover:opacity-100 transition-opacity duration-200 hover:bg-black/70 z-10",
|
|
3300
3227
|
"aria-label": "Previous media",
|
|
3301
|
-
children: /* @__PURE__ */
|
|
3228
|
+
children: /* @__PURE__ */ jsx20(ChevronLeftIcon, {})
|
|
3302
3229
|
}
|
|
3303
3230
|
),
|
|
3304
|
-
/* @__PURE__ */
|
|
3231
|
+
/* @__PURE__ */ jsx20(
|
|
3305
3232
|
"button",
|
|
3306
3233
|
{
|
|
3307
3234
|
onClick: nextSlide,
|
|
3308
3235
|
className: "absolute right-3 top-1/2 transform -translate-y-1/2 bg-black/50 text-white rounded-full p-2 opacity-0 group-hover:opacity-100 transition-opacity duration-200 hover:bg-black/70 z-10",
|
|
3309
3236
|
"aria-label": "Next media",
|
|
3310
|
-
children: /* @__PURE__ */
|
|
3237
|
+
children: /* @__PURE__ */ jsx20(ChevronRightIcon, {})
|
|
3311
3238
|
}
|
|
3312
3239
|
),
|
|
3313
|
-
/* @__PURE__ */
|
|
3240
|
+
/* @__PURE__ */ jsxs15("div", { className: "absolute top-3 right-3 bg-black/70 text-white px-3 py-1 rounded-lg text-sm font-medium", children: [
|
|
3314
3241
|
currentIndex + 1,
|
|
3315
3242
|
" / ",
|
|
3316
3243
|
media.length
|
|
@@ -3319,7 +3246,7 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3319
3246
|
]
|
|
3320
3247
|
}
|
|
3321
3248
|
),
|
|
3322
|
-
media.length > 1 && showThumbnails && /* @__PURE__ */
|
|
3249
|
+
media.length > 1 && showThumbnails && /* @__PURE__ */ jsx20("div", { className: "w-full", children: /* @__PURE__ */ jsx20(
|
|
3323
3250
|
"div",
|
|
3324
3251
|
{
|
|
3325
3252
|
ref: thumbnailsRef,
|
|
@@ -3333,11 +3260,11 @@ var MediaCarousel = memo(function MediaCarousel2({
|
|
|
3333
3260
|
|
|
3334
3261
|
// src/components/metric-value.tsx
|
|
3335
3262
|
init_cn();
|
|
3336
|
-
import { jsx as
|
|
3263
|
+
import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3337
3264
|
function MetricValue({ value, label, className }) {
|
|
3338
|
-
return /* @__PURE__ */
|
|
3265
|
+
return /* @__PURE__ */ jsxs16("div", { className: cn('flex items-end gap-2 whitespace-nowrap font-["DM_Sans"] text-lg leading-[24px] text-ods-text-primary', className), children: [
|
|
3339
3266
|
value,
|
|
3340
|
-
/* @__PURE__ */
|
|
3267
|
+
/* @__PURE__ */ jsx21("span", { className: "text-sm text-ods-text-secondary", children: label })
|
|
3341
3268
|
] });
|
|
3342
3269
|
}
|
|
3343
3270
|
|
|
@@ -3346,15 +3273,15 @@ init_cn();
|
|
|
3346
3273
|
|
|
3347
3274
|
// src/components/square-avatar.tsx
|
|
3348
3275
|
init_cn();
|
|
3349
|
-
import
|
|
3350
|
-
import { jsx as
|
|
3276
|
+
import React4 from "react";
|
|
3277
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
3351
3278
|
function SquareAvatar2({ src, fallbackName = "", size = 56, fullWidth = false, className }) {
|
|
3352
|
-
const initials =
|
|
3279
|
+
const initials = React4.useMemo(() => {
|
|
3353
3280
|
if (!fallbackName) return "";
|
|
3354
3281
|
return fallbackName.split(" ").map((n) => n.charAt(0)).join("").slice(0, 2).toUpperCase();
|
|
3355
3282
|
}, [fallbackName]);
|
|
3356
3283
|
const style = fullWidth ? {} : { width: size, height: size };
|
|
3357
|
-
return /* @__PURE__ */
|
|
3284
|
+
return /* @__PURE__ */ jsx22(
|
|
3358
3285
|
"div",
|
|
3359
3286
|
{
|
|
3360
3287
|
className: cn(
|
|
@@ -3365,8 +3292,8 @@ function SquareAvatar2({ src, fallbackName = "", size = 56, fullWidth = false, c
|
|
|
3365
3292
|
style,
|
|
3366
3293
|
children: src ? (
|
|
3367
3294
|
// eslint-disable-next-line @next/next/no-img-element
|
|
3368
|
-
/* @__PURE__ */
|
|
3369
|
-
) : /* @__PURE__ */
|
|
3295
|
+
/* @__PURE__ */ jsx22("img", { src: getProxiedImageUrl(src) || src, alt: "Avatar", className: "object-cover w-full h-full" })
|
|
3296
|
+
) : /* @__PURE__ */ jsx22("span", { className: cn(
|
|
3370
3297
|
"font-['DM_Sans'] text-ods-text-primary font-bold",
|
|
3371
3298
|
fullWidth ? "text-4xl" : "text-lg"
|
|
3372
3299
|
), children: initials })
|
|
@@ -3375,24 +3302,24 @@ function SquareAvatar2({ src, fallbackName = "", size = 56, fullWidth = false, c
|
|
|
3375
3302
|
}
|
|
3376
3303
|
|
|
3377
3304
|
// src/components/msp-display.tsx
|
|
3378
|
-
import { jsx as
|
|
3305
|
+
import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3379
3306
|
function MSPDisplay({ name, logoUrl, size = 40, className }) {
|
|
3380
|
-
return /* @__PURE__ */
|
|
3381
|
-
/* @__PURE__ */
|
|
3382
|
-
/* @__PURE__ */
|
|
3307
|
+
return /* @__PURE__ */ jsxs17("div", { className: cn("flex items-center gap-2 min-w-0", className), children: [
|
|
3308
|
+
/* @__PURE__ */ jsx23(SquareAvatar2, { src: logoUrl ?? void 0, fallbackName: name, size }),
|
|
3309
|
+
/* @__PURE__ */ jsx23("h2", { className: "truncate pl-2", children: name })
|
|
3383
3310
|
] });
|
|
3384
3311
|
}
|
|
3385
3312
|
|
|
3386
3313
|
// src/components/open-source-features.tsx
|
|
3387
3314
|
import { Terminal, DollarSign as DollarSign2, Network, Users as Users2 } from "lucide-react";
|
|
3388
|
-
import { jsx as
|
|
3315
|
+
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3389
3316
|
|
|
3390
3317
|
// src/components/index.ts
|
|
3391
3318
|
init_pagination();
|
|
3392
3319
|
|
|
3393
3320
|
// src/components/persistent-filter-controls.tsx
|
|
3394
3321
|
init_cn();
|
|
3395
|
-
import { jsx as
|
|
3322
|
+
import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3396
3323
|
function PersistentFilterControls({
|
|
3397
3324
|
isLoading,
|
|
3398
3325
|
children,
|
|
@@ -3401,7 +3328,7 @@ function PersistentFilterControls({
|
|
|
3401
3328
|
transitionDuration = 300,
|
|
3402
3329
|
preventInteraction = true
|
|
3403
3330
|
}) {
|
|
3404
|
-
return /* @__PURE__ */
|
|
3331
|
+
return /* @__PURE__ */ jsxs19(
|
|
3405
3332
|
"div",
|
|
3406
3333
|
{
|
|
3407
3334
|
className: cn(
|
|
@@ -3418,7 +3345,7 @@ function PersistentFilterControls({
|
|
|
3418
3345
|
"aria-busy": isLoading,
|
|
3419
3346
|
"data-loading": isLoading,
|
|
3420
3347
|
children: [
|
|
3421
|
-
isLoading && /* @__PURE__ */
|
|
3348
|
+
isLoading && /* @__PURE__ */ jsx25(
|
|
3422
3349
|
"div",
|
|
3423
3350
|
{
|
|
3424
3351
|
className: "sr-only",
|
|
@@ -3427,7 +3354,7 @@ function PersistentFilterControls({
|
|
|
3427
3354
|
children: "Filters temporarily disabled while loading content"
|
|
3428
3355
|
}
|
|
3429
3356
|
),
|
|
3430
|
-
/* @__PURE__ */
|
|
3357
|
+
/* @__PURE__ */ jsx25(
|
|
3431
3358
|
"div",
|
|
3432
3359
|
{
|
|
3433
3360
|
className: cn(
|
|
@@ -3440,13 +3367,13 @@ function PersistentFilterControls({
|
|
|
3440
3367
|
children
|
|
3441
3368
|
}
|
|
3442
3369
|
),
|
|
3443
|
-
isLoading && /* @__PURE__ */
|
|
3370
|
+
isLoading && /* @__PURE__ */ jsx25(
|
|
3444
3371
|
"div",
|
|
3445
3372
|
{
|
|
3446
3373
|
className: "absolute top-2 right-2 z-10",
|
|
3447
3374
|
role: "status",
|
|
3448
3375
|
"aria-label": "Loading filters",
|
|
3449
|
-
children: /* @__PURE__ */
|
|
3376
|
+
children: /* @__PURE__ */ jsx25("div", { className: "w-4 h-4 border-2 border-ods-border border-t-[#FFC008] rounded-full animate-spin" })
|
|
3450
3377
|
}
|
|
3451
3378
|
)
|
|
3452
3379
|
]
|
|
@@ -3458,7 +3385,7 @@ function PersistentSearchContainer({
|
|
|
3458
3385
|
children,
|
|
3459
3386
|
className
|
|
3460
3387
|
}) {
|
|
3461
|
-
return /* @__PURE__ */
|
|
3388
|
+
return /* @__PURE__ */ jsx25(
|
|
3462
3389
|
PersistentFilterControls,
|
|
3463
3390
|
{
|
|
3464
3391
|
isLoading,
|
|
@@ -3473,7 +3400,7 @@ function PersistentSidebar({
|
|
|
3473
3400
|
children,
|
|
3474
3401
|
className
|
|
3475
3402
|
}) {
|
|
3476
|
-
return /* @__PURE__ */
|
|
3403
|
+
return /* @__PURE__ */ jsx25(
|
|
3477
3404
|
PersistentFilterControls,
|
|
3478
3405
|
{
|
|
3479
3406
|
isLoading,
|
|
@@ -3488,7 +3415,7 @@ function PersistentMobileDropdown({
|
|
|
3488
3415
|
children,
|
|
3489
3416
|
className
|
|
3490
3417
|
}) {
|
|
3491
|
-
return /* @__PURE__ */
|
|
3418
|
+
return /* @__PURE__ */ jsx25(
|
|
3492
3419
|
PersistentFilterControls,
|
|
3493
3420
|
{
|
|
3494
3421
|
isLoading,
|
|
@@ -3501,7 +3428,7 @@ function PersistentMobileDropdown({
|
|
|
3501
3428
|
|
|
3502
3429
|
// src/components/persistent-pagination.tsx
|
|
3503
3430
|
init_cn();
|
|
3504
|
-
import { jsx as
|
|
3431
|
+
import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
3505
3432
|
function PersistentPagination({
|
|
3506
3433
|
isLoading,
|
|
3507
3434
|
children,
|
|
@@ -3512,7 +3439,7 @@ function PersistentPagination({
|
|
|
3512
3439
|
transitionDuration = 300,
|
|
3513
3440
|
showLoadingState = true
|
|
3514
3441
|
}) {
|
|
3515
|
-
return /* @__PURE__ */
|
|
3442
|
+
return /* @__PURE__ */ jsxs20(
|
|
3516
3443
|
"div",
|
|
3517
3444
|
{
|
|
3518
3445
|
className: cn(
|
|
@@ -3530,7 +3457,7 @@ function PersistentPagination({
|
|
|
3530
3457
|
"aria-busy": isLoading,
|
|
3531
3458
|
"data-loading": isLoading,
|
|
3532
3459
|
children: [
|
|
3533
|
-
isLoading && /* @__PURE__ */
|
|
3460
|
+
isLoading && /* @__PURE__ */ jsxs20(
|
|
3534
3461
|
"div",
|
|
3535
3462
|
{
|
|
3536
3463
|
className: "sr-only",
|
|
@@ -3544,7 +3471,7 @@ function PersistentPagination({
|
|
|
3544
3471
|
]
|
|
3545
3472
|
}
|
|
3546
3473
|
),
|
|
3547
|
-
/* @__PURE__ */
|
|
3474
|
+
/* @__PURE__ */ jsx26(
|
|
3548
3475
|
"div",
|
|
3549
3476
|
{
|
|
3550
3477
|
className: cn(
|
|
@@ -3601,7 +3528,7 @@ function PersistentPaginationWrapper({
|
|
|
3601
3528
|
const isPaginationDisabled = isLoading;
|
|
3602
3529
|
const hasNoResults = !hasResults && !isLoading;
|
|
3603
3530
|
const PaginationComponent = (init_unified_pagination(), __toCommonJS(unified_pagination_exports)).UnifiedPagination;
|
|
3604
|
-
return /* @__PURE__ */
|
|
3531
|
+
return /* @__PURE__ */ jsxs20(
|
|
3605
3532
|
"div",
|
|
3606
3533
|
{
|
|
3607
3534
|
className: cn(
|
|
@@ -3619,7 +3546,7 @@ function PersistentPaginationWrapper({
|
|
|
3619
3546
|
"data-loading": isLoading,
|
|
3620
3547
|
"data-has-results": hasResults,
|
|
3621
3548
|
children: [
|
|
3622
|
-
(isLoading || !hasResults) && /* @__PURE__ */
|
|
3549
|
+
(isLoading || !hasResults) && /* @__PURE__ */ jsx26(
|
|
3623
3550
|
"div",
|
|
3624
3551
|
{
|
|
3625
3552
|
className: "sr-only",
|
|
@@ -3628,7 +3555,7 @@ function PersistentPaginationWrapper({
|
|
|
3628
3555
|
children: isLoading ? `Pagination temporarily disabled while loading page ${displayCurrentPage} of ${displayTotalPages}` : `No results available - pagination disabled`
|
|
3629
3556
|
}
|
|
3630
3557
|
),
|
|
3631
|
-
/* @__PURE__ */
|
|
3558
|
+
/* @__PURE__ */ jsx26(
|
|
3632
3559
|
"div",
|
|
3633
3560
|
{
|
|
3634
3561
|
className: cn(
|
|
@@ -3639,7 +3566,7 @@ function PersistentPaginationWrapper({
|
|
|
3639
3566
|
transitionDuration: "300ms"
|
|
3640
3567
|
},
|
|
3641
3568
|
"aria-hidden": isPaginationDisabled,
|
|
3642
|
-
children: /* @__PURE__ */
|
|
3569
|
+
children: /* @__PURE__ */ jsx26(
|
|
3643
3570
|
PaginationComponent,
|
|
3644
3571
|
{
|
|
3645
3572
|
currentPage: displayCurrentPage,
|
|
@@ -3656,7 +3583,7 @@ function PersistentPaginationWrapper({
|
|
|
3656
3583
|
}
|
|
3657
3584
|
|
|
3658
3585
|
// src/components/pricing-display.tsx
|
|
3659
|
-
import { jsx as
|
|
3586
|
+
import { jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3660
3587
|
var PRICING_STYLES = {
|
|
3661
3588
|
// Comparison table style (current default)
|
|
3662
3589
|
comparison: {
|
|
@@ -3692,19 +3619,19 @@ function PricingDisplay({
|
|
|
3692
3619
|
styleConfig = PRICING_STYLES.comparison
|
|
3693
3620
|
}) {
|
|
3694
3621
|
if (typeof pricing === "string") {
|
|
3695
|
-
return /* @__PURE__ */
|
|
3622
|
+
return /* @__PURE__ */ jsx27(LegacyPricingDisplay, { pricing, className, styleConfig });
|
|
3696
3623
|
}
|
|
3697
3624
|
const pricingArray = Array.isArray(pricing) ? pricing : [pricing];
|
|
3698
3625
|
if (!pricingArray || pricingArray.length === 0) {
|
|
3699
|
-
return /* @__PURE__ */
|
|
3626
|
+
return /* @__PURE__ */ jsx27("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: "No pricing data" });
|
|
3700
3627
|
}
|
|
3701
3628
|
if (pricingArray.length === 1) {
|
|
3702
3629
|
const item = pricingArray[0];
|
|
3703
3630
|
const price = item.ranges?.[0]?.min || 0;
|
|
3704
3631
|
const unit = item.ranges?.[0]?.unit;
|
|
3705
|
-
return /* @__PURE__ */
|
|
3706
|
-
/* @__PURE__ */
|
|
3707
|
-
unit && /* @__PURE__ */
|
|
3632
|
+
return /* @__PURE__ */ jsxs21("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3633
|
+
/* @__PURE__ */ jsx27("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
|
|
3634
|
+
unit && /* @__PURE__ */ jsxs21("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
|
|
3708
3635
|
"/",
|
|
3709
3636
|
unit
|
|
3710
3637
|
] })
|
|
@@ -3712,9 +3639,9 @@ function PricingDisplay({
|
|
|
3712
3639
|
}
|
|
3713
3640
|
const priceValues = pricingArray.map((item) => formatPriceValue(item.ranges?.[0]?.min || 0, styleConfig.showTildePrefix));
|
|
3714
3641
|
const itemWithUnit = pricingArray.find((item) => item.ranges?.[0]?.unit);
|
|
3715
|
-
return /* @__PURE__ */
|
|
3716
|
-
/* @__PURE__ */
|
|
3717
|
-
itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */
|
|
3642
|
+
return /* @__PURE__ */ jsxs21("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3643
|
+
/* @__PURE__ */ jsx27("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
|
|
3644
|
+
itemWithUnit && itemWithUnit.ranges?.[0]?.unit && /* @__PURE__ */ jsxs21("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
|
|
3718
3645
|
"/",
|
|
3719
3646
|
itemWithUnit.ranges[0].unit
|
|
3720
3647
|
] })
|
|
@@ -3735,7 +3662,7 @@ function LegacyPricingDisplay({
|
|
|
3735
3662
|
styleConfig = PRICING_STYLES.comparison
|
|
3736
3663
|
}) {
|
|
3737
3664
|
if (pricing === "Free" || pricing === "No pricing data") {
|
|
3738
|
-
return /* @__PURE__ */
|
|
3665
|
+
return /* @__PURE__ */ jsx27("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize} ${styleConfig.fontFamily} ${className}`, children: pricing });
|
|
3739
3666
|
}
|
|
3740
3667
|
const parsePricing = (pricingStr) => {
|
|
3741
3668
|
if (pricingStr.includes(", ")) {
|
|
@@ -3791,9 +3718,9 @@ function LegacyPricingDisplay({
|
|
|
3791
3718
|
};
|
|
3792
3719
|
};
|
|
3793
3720
|
const { mainValue, secondaryInfo } = parsePricing(pricing);
|
|
3794
|
-
return /* @__PURE__ */
|
|
3795
|
-
/* @__PURE__ */
|
|
3796
|
-
secondaryInfo && /* @__PURE__ */
|
|
3721
|
+
return /* @__PURE__ */ jsxs21("span", { className: `${styleConfig.fontFamily} ${className}`, children: [
|
|
3722
|
+
/* @__PURE__ */ jsx27("span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: mainValue }),
|
|
3723
|
+
secondaryInfo && /* @__PURE__ */ jsx27("span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: secondaryInfo })
|
|
3797
3724
|
] });
|
|
3798
3725
|
}
|
|
3799
3726
|
function formatPricingForDisplay(pricing) {
|
|
@@ -3801,7 +3728,7 @@ function formatPricingForDisplay(pricing) {
|
|
|
3801
3728
|
}
|
|
3802
3729
|
|
|
3803
3730
|
// src/components/results-count.tsx
|
|
3804
|
-
import { Fragment as Fragment6, jsx as
|
|
3731
|
+
import { Fragment as Fragment6, jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3805
3732
|
function ResultsCount({
|
|
3806
3733
|
currentPage,
|
|
3807
3734
|
pageSize,
|
|
@@ -3817,7 +3744,7 @@ function ResultsCount({
|
|
|
3817
3744
|
const plural = resultType === "vendors" ? "vendors" : "posts";
|
|
3818
3745
|
const singular = resultType === "vendors" ? "vendor" : "post";
|
|
3819
3746
|
const displayType = totalResults === 1 ? singular : plural;
|
|
3820
|
-
return /* @__PURE__ */
|
|
3747
|
+
return /* @__PURE__ */ jsx28("div", { className: "mb-6", children: /* @__PURE__ */ jsx28("p", { className: "text-ods-text-secondary text-sm font-['DM_Sans']", children: totalResults > 0 && /* @__PURE__ */ jsxs22(Fragment6, { children: [
|
|
3821
3748
|
"Showing ",
|
|
3822
3749
|
startIndex,
|
|
3823
3750
|
"-",
|
|
@@ -3826,7 +3753,7 @@ function ResultsCount({
|
|
|
3826
3753
|
totalResults,
|
|
3827
3754
|
" ",
|
|
3828
3755
|
displayType,
|
|
3829
|
-
sortingMessage && /* @__PURE__ */
|
|
3756
|
+
sortingMessage && /* @__PURE__ */ jsxs22("span", { className: "ml-2 text-ods-accent", children: [
|
|
3830
3757
|
"\u2022 ",
|
|
3831
3758
|
sortingMessage
|
|
3832
3759
|
] })
|
|
@@ -3836,7 +3763,7 @@ function ResultsCount({
|
|
|
3836
3763
|
// src/components/vendor-tag.tsx
|
|
3837
3764
|
init_cn();
|
|
3838
3765
|
import { Hand, Sparkles } from "lucide-react";
|
|
3839
|
-
import { jsx as
|
|
3766
|
+
import { jsx as jsx29, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3840
3767
|
function VendorTag({
|
|
3841
3768
|
type,
|
|
3842
3769
|
text,
|
|
@@ -3855,89 +3782,89 @@ function VendorTag({
|
|
|
3855
3782
|
return {
|
|
3856
3783
|
text: "Placeholder",
|
|
3857
3784
|
textColor: "text-ods-text-primary",
|
|
3858
|
-
icon: /* @__PURE__ */
|
|
3785
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
|
|
3859
3786
|
};
|
|
3860
3787
|
case "ai":
|
|
3861
3788
|
return {
|
|
3862
3789
|
text: "AI Selected",
|
|
3863
3790
|
textColor: "text-ods-text-primary",
|
|
3864
|
-
icon: /* @__PURE__ */
|
|
3791
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29(Sparkles, { width: 10, height: 10, className: "text-ods-text-primary" }) })
|
|
3865
3792
|
};
|
|
3866
3793
|
case "manual":
|
|
3867
3794
|
return {
|
|
3868
3795
|
text: "Manually Selected",
|
|
3869
3796
|
textColor: "text-ods-text-secondary",
|
|
3870
|
-
icon: /* @__PURE__ */
|
|
3797
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29(Hand, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3871
3798
|
};
|
|
3872
3799
|
case "open-source":
|
|
3873
3800
|
return {
|
|
3874
3801
|
text: text || "Open Source",
|
|
3875
|
-
icon: /* @__PURE__ */
|
|
3802
|
+
icon: /* @__PURE__ */ jsx29(
|
|
3876
3803
|
"div",
|
|
3877
3804
|
{
|
|
3878
3805
|
className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0",
|
|
3879
3806
|
style: accentColor ? { backgroundColor: accentColor } : void 0,
|
|
3880
|
-
children: /* @__PURE__ */
|
|
3807
|
+
children: /* @__PURE__ */ jsx29(OpenSourceIcon2, { width: 10, height: 10, className: "text-[#1A1A1A]" })
|
|
3881
3808
|
}
|
|
3882
3809
|
)
|
|
3883
3810
|
};
|
|
3884
3811
|
case "commercial":
|
|
3885
3812
|
return {
|
|
3886
3813
|
text: text || "Commercial Vendor",
|
|
3887
|
-
icon: /* @__PURE__ */
|
|
3814
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3888
3815
|
};
|
|
3889
3816
|
case "free":
|
|
3890
3817
|
return {
|
|
3891
3818
|
text: text || "Free",
|
|
3892
|
-
icon: /* @__PURE__ */
|
|
3819
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "$" }) })
|
|
3893
3820
|
};
|
|
3894
3821
|
case "freemium":
|
|
3895
3822
|
return {
|
|
3896
3823
|
text: text || "Freemium",
|
|
3897
|
-
icon: /* @__PURE__ */
|
|
3824
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "$" }) })
|
|
3898
3825
|
};
|
|
3899
3826
|
case "paid":
|
|
3900
3827
|
return {
|
|
3901
3828
|
text: text || "Paid",
|
|
3902
|
-
icon: /* @__PURE__ */
|
|
3829
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3903
3830
|
};
|
|
3904
3831
|
case "enterprise":
|
|
3905
3832
|
return {
|
|
3906
3833
|
text: text || "Enterprise",
|
|
3907
|
-
icon: /* @__PURE__ */
|
|
3834
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "E" }) })
|
|
3908
3835
|
};
|
|
3909
3836
|
case "recommended":
|
|
3910
3837
|
return {
|
|
3911
3838
|
text: text || "Recommended",
|
|
3912
|
-
icon: /* @__PURE__ */
|
|
3839
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "\u2605" }) })
|
|
3913
3840
|
};
|
|
3914
3841
|
case "classification":
|
|
3915
3842
|
const classificationType = text?.toLowerCase();
|
|
3916
3843
|
if (classificationType === "open_source") {
|
|
3917
3844
|
return {
|
|
3918
3845
|
text: "Open Source",
|
|
3919
|
-
icon: /* @__PURE__ */
|
|
3846
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29(OpenSourceIcon2, { width: 10, height: 10, className: "text-[#1A1A1A]" }) })
|
|
3920
3847
|
};
|
|
3921
3848
|
} else if (classificationType === "commercial") {
|
|
3922
3849
|
return {
|
|
3923
3850
|
text: "Commercial Vendor",
|
|
3924
|
-
icon: /* @__PURE__ */
|
|
3851
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29(CoinsIcon2, { width: 10, height: 10, className: "text-ods-text-secondary" }) })
|
|
3925
3852
|
};
|
|
3926
3853
|
} else if (classificationType === "openframe_selected") {
|
|
3927
3854
|
return {
|
|
3928
3855
|
text: "OpenFrame Selected",
|
|
3929
|
-
icon: /* @__PURE__ */
|
|
3856
|
+
icon: /* @__PURE__ */ jsx29(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
|
|
3930
3857
|
};
|
|
3931
3858
|
} else {
|
|
3932
3859
|
return {
|
|
3933
3860
|
text: text || "Classification",
|
|
3934
|
-
icon: /* @__PURE__ */
|
|
3861
|
+
icon: /* @__PURE__ */ jsx29("div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx29("span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "C" }) })
|
|
3935
3862
|
};
|
|
3936
3863
|
}
|
|
3937
3864
|
case "openframe_selected":
|
|
3938
3865
|
return {
|
|
3939
3866
|
text: text || "OpenFrame Selected",
|
|
3940
|
-
icon: /* @__PURE__ */
|
|
3867
|
+
icon: /* @__PURE__ */ jsx29(OpenFrameLogo2, { lowerPathColor: "currentColor", upperPathColor: "currentColor", className: "h-4 w-4 text-ods-accent" })
|
|
3941
3868
|
};
|
|
3942
3869
|
default:
|
|
3943
3870
|
return {
|
|
@@ -3947,9 +3874,9 @@ function VendorTag({
|
|
|
3947
3874
|
}
|
|
3948
3875
|
};
|
|
3949
3876
|
const { text: displayText, icon, textColor } = getTagContent();
|
|
3950
|
-
return /* @__PURE__ */
|
|
3877
|
+
return /* @__PURE__ */ jsxs23("div", { className: cn(baseClasses, className, hidden && "invisible"), children: [
|
|
3951
3878
|
icon,
|
|
3952
|
-
/* @__PURE__ */
|
|
3879
|
+
/* @__PURE__ */ jsx29("span", { className: cn(
|
|
3953
3880
|
"font-mono font-semibold uppercase",
|
|
3954
3881
|
textColor ? textColor : "text-ods-text-primary",
|
|
3955
3882
|
size === "sm" ? "text-[10px]" : "text-xs"
|
|
@@ -3958,12 +3885,12 @@ function VendorTag({
|
|
|
3958
3885
|
}
|
|
3959
3886
|
|
|
3960
3887
|
// src/components/selection-source-badge.tsx
|
|
3961
|
-
import { jsx as
|
|
3888
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
3962
3889
|
function SelectionSourceBadge({ source, hidden = false }) {
|
|
3963
3890
|
if (!source) {
|
|
3964
3891
|
return null;
|
|
3965
3892
|
}
|
|
3966
|
-
return /* @__PURE__ */
|
|
3893
|
+
return /* @__PURE__ */ jsx30(
|
|
3967
3894
|
VendorTag,
|
|
3968
3895
|
{
|
|
3969
3896
|
type: source?.toLowerCase(),
|
|
@@ -3976,13 +3903,13 @@ function SelectionSourceBadge({ source, hidden = false }) {
|
|
|
3976
3903
|
|
|
3977
3904
|
// src/components/user-display.tsx
|
|
3978
3905
|
init_cn();
|
|
3979
|
-
import { jsx as
|
|
3906
|
+
import { jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
3980
3907
|
function UserDisplay({ name, avatarUrl, subtitle, size = 32, className }) {
|
|
3981
|
-
return /* @__PURE__ */
|
|
3982
|
-
/* @__PURE__ */
|
|
3983
|
-
/* @__PURE__ */
|
|
3984
|
-
/* @__PURE__ */
|
|
3985
|
-
subtitle && /* @__PURE__ */
|
|
3908
|
+
return /* @__PURE__ */ jsxs24("div", { className: cn("flex items-center gap-2 min-w-0", className), children: [
|
|
3909
|
+
/* @__PURE__ */ jsx31(SquareAvatar2, { src: avatarUrl ?? void 0, fallbackName: name, size }),
|
|
3910
|
+
/* @__PURE__ */ jsxs24("div", { className: "min-w-0 flex-1", children: [
|
|
3911
|
+
/* @__PURE__ */ jsx31("p", { className: "font-['DM_Sans'] text-lg leading-[22px] text-ods-text-primary truncate", children: name }),
|
|
3912
|
+
subtitle && /* @__PURE__ */ jsx31("span", { className: "font-['DM_Sans'] text-md leading-[16px] text-ods-text-secondary truncate", children: subtitle })
|
|
3986
3913
|
] })
|
|
3987
3914
|
] });
|
|
3988
3915
|
}
|
|
@@ -3992,7 +3919,7 @@ init_cn();
|
|
|
3992
3919
|
|
|
3993
3920
|
// src/components/loading/unified-skeleton.tsx
|
|
3994
3921
|
init_cn();
|
|
3995
|
-
import { jsx as
|
|
3922
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
3996
3923
|
function UnifiedSkeleton({
|
|
3997
3924
|
className,
|
|
3998
3925
|
variant = "default",
|
|
@@ -4020,7 +3947,7 @@ function UnifiedSkeleton({
|
|
|
4020
3947
|
width,
|
|
4021
3948
|
height
|
|
4022
3949
|
};
|
|
4023
|
-
return /* @__PURE__ */
|
|
3950
|
+
return /* @__PURE__ */ jsx32(
|
|
4024
3951
|
"div",
|
|
4025
3952
|
{
|
|
4026
3953
|
className: cn(
|
|
@@ -4042,7 +3969,7 @@ var TextSkeleton = {
|
|
|
4042
3969
|
/**
|
|
4043
3970
|
* Large heading skeleton (h1, h2)
|
|
4044
3971
|
*/
|
|
4045
|
-
Heading: ({ className, ...props }) => /* @__PURE__ */
|
|
3972
|
+
Heading: ({ className, ...props }) => /* @__PURE__ */ jsx32(
|
|
4046
3973
|
UnifiedSkeleton,
|
|
4047
3974
|
{
|
|
4048
3975
|
variant: "text",
|
|
@@ -4054,7 +3981,7 @@ var TextSkeleton = {
|
|
|
4054
3981
|
/**
|
|
4055
3982
|
* Medium heading skeleton (h3, h4)
|
|
4056
3983
|
*/
|
|
4057
|
-
Subheading: ({ className, ...props }) => /* @__PURE__ */
|
|
3984
|
+
Subheading: ({ className, ...props }) => /* @__PURE__ */ jsx32(
|
|
4058
3985
|
UnifiedSkeleton,
|
|
4059
3986
|
{
|
|
4060
3987
|
variant: "text",
|
|
@@ -4066,7 +3993,7 @@ var TextSkeleton = {
|
|
|
4066
3993
|
/**
|
|
4067
3994
|
* Body text skeleton
|
|
4068
3995
|
*/
|
|
4069
|
-
Body: ({ className, ...props }) => /* @__PURE__ */
|
|
3996
|
+
Body: ({ className, ...props }) => /* @__PURE__ */ jsx32(
|
|
4070
3997
|
UnifiedSkeleton,
|
|
4071
3998
|
{
|
|
4072
3999
|
variant: "text",
|
|
@@ -4078,7 +4005,7 @@ var TextSkeleton = {
|
|
|
4078
4005
|
/**
|
|
4079
4006
|
* Small text skeleton (captions, metadata)
|
|
4080
4007
|
*/
|
|
4081
|
-
Caption: ({ className, ...props }) => /* @__PURE__ */
|
|
4008
|
+
Caption: ({ className, ...props }) => /* @__PURE__ */ jsx32(
|
|
4082
4009
|
UnifiedSkeleton,
|
|
4083
4010
|
{
|
|
4084
4011
|
variant: "text",
|
|
@@ -4092,7 +4019,7 @@ var InteractiveSkeleton = {
|
|
|
4092
4019
|
/**
|
|
4093
4020
|
* Button skeleton with proper touch targets
|
|
4094
4021
|
*/
|
|
4095
|
-
Button: ({ className, ...props }) => /* @__PURE__ */
|
|
4022
|
+
Button: ({ className, ...props }) => /* @__PURE__ */ jsx32(
|
|
4096
4023
|
UnifiedSkeleton,
|
|
4097
4024
|
{
|
|
4098
4025
|
variant: "default",
|
|
@@ -4104,7 +4031,7 @@ var InteractiveSkeleton = {
|
|
|
4104
4031
|
/**
|
|
4105
4032
|
* Input field skeleton
|
|
4106
4033
|
*/
|
|
4107
|
-
Input: ({ className, ...props }) => /* @__PURE__ */
|
|
4034
|
+
Input: ({ className, ...props }) => /* @__PURE__ */ jsx32(
|
|
4108
4035
|
UnifiedSkeleton,
|
|
4109
4036
|
{
|
|
4110
4037
|
variant: "default",
|
|
@@ -4116,7 +4043,7 @@ var InteractiveSkeleton = {
|
|
|
4116
4043
|
/**
|
|
4117
4044
|
* Filter chip skeleton
|
|
4118
4045
|
*/
|
|
4119
|
-
Chip: ({ className, ...props }) => /* @__PURE__ */
|
|
4046
|
+
Chip: ({ className, ...props }) => /* @__PURE__ */ jsx32(
|
|
4120
4047
|
UnifiedSkeleton,
|
|
4121
4048
|
{
|
|
4122
4049
|
variant: "default",
|
|
@@ -4136,7 +4063,7 @@ var MediaSkeleton = {
|
|
|
4136
4063
|
md: "h-12 w-12",
|
|
4137
4064
|
lg: "h-16 w-16"
|
|
4138
4065
|
};
|
|
4139
|
-
return /* @__PURE__ */
|
|
4066
|
+
return /* @__PURE__ */ jsx32(
|
|
4140
4067
|
UnifiedSkeleton,
|
|
4141
4068
|
{
|
|
4142
4069
|
variant: "circular",
|
|
@@ -4150,7 +4077,7 @@ var MediaSkeleton = {
|
|
|
4150
4077
|
* Card image skeleton (1200×630 OG aspect — matches entity-cards default
|
|
4151
4078
|
* so loading state never causes a height shift when card data arrives)
|
|
4152
4079
|
*/
|
|
4153
|
-
CardImage: ({ className, ...props }) => /* @__PURE__ */
|
|
4080
|
+
CardImage: ({ className, ...props }) => /* @__PURE__ */ jsx32(
|
|
4154
4081
|
UnifiedSkeleton,
|
|
4155
4082
|
{
|
|
4156
4083
|
variant: "default",
|
|
@@ -4168,7 +4095,7 @@ var MediaSkeleton = {
|
|
|
4168
4095
|
md: "h-6 w-6",
|
|
4169
4096
|
lg: "h-8 w-8"
|
|
4170
4097
|
};
|
|
4171
|
-
return /* @__PURE__ */
|
|
4098
|
+
return /* @__PURE__ */ jsx32(
|
|
4172
4099
|
UnifiedSkeleton,
|
|
4173
4100
|
{
|
|
4174
4101
|
variant: "default",
|
|
@@ -4182,7 +4109,7 @@ var MediaSkeleton = {
|
|
|
4182
4109
|
|
|
4183
4110
|
// src/components/loading/card-skeleton.tsx
|
|
4184
4111
|
init_cn();
|
|
4185
|
-
import { Fragment as Fragment7, jsx as
|
|
4112
|
+
import { Fragment as Fragment7, jsx as jsx33, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
4186
4113
|
function CardSkeleton({
|
|
4187
4114
|
className,
|
|
4188
4115
|
containerClassName,
|
|
@@ -4192,12 +4119,12 @@ function CardSkeleton({
|
|
|
4192
4119
|
...props
|
|
4193
4120
|
}) {
|
|
4194
4121
|
const cardContent = {
|
|
4195
|
-
vendor: /* @__PURE__ */
|
|
4196
|
-
blog: /* @__PURE__ */
|
|
4197
|
-
category: /* @__PURE__ */
|
|
4198
|
-
alternative: /* @__PURE__ */
|
|
4122
|
+
vendor: /* @__PURE__ */ jsx33(VendorCardContent, { showActions, showMetadata }),
|
|
4123
|
+
blog: /* @__PURE__ */ jsx33(BlogCardContent, { showActions, showMetadata }),
|
|
4124
|
+
category: /* @__PURE__ */ jsx33(CategoryCardContent, {}),
|
|
4125
|
+
alternative: /* @__PURE__ */ jsx33(AlternativeCardContent, { showActions })
|
|
4199
4126
|
};
|
|
4200
|
-
return /* @__PURE__ */
|
|
4127
|
+
return /* @__PURE__ */ jsx33(
|
|
4201
4128
|
"div",
|
|
4202
4129
|
{
|
|
4203
4130
|
className: cn(
|
|
@@ -4216,70 +4143,70 @@ function CardSkeleton({
|
|
|
4216
4143
|
);
|
|
4217
4144
|
}
|
|
4218
4145
|
function VendorCardContent({ showActions, showMetadata }) {
|
|
4219
|
-
return /* @__PURE__ */
|
|
4220
|
-
/* @__PURE__ */
|
|
4221
|
-
/* @__PURE__ */
|
|
4222
|
-
/* @__PURE__ */
|
|
4223
|
-
/* @__PURE__ */
|
|
4224
|
-
/* @__PURE__ */
|
|
4146
|
+
return /* @__PURE__ */ jsxs25("div", { className: "p-4 gap-3 flex flex-col", children: [
|
|
4147
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-start gap-3 w-full", children: [
|
|
4148
|
+
/* @__PURE__ */ jsx33("div", { className: "w-[60px] h-[60px] bg-ods-bg border border-ods-border rounded-lg p-2 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx33(MediaSkeleton.Avatar, { size: "sm", className: "w-11 h-11" }) }),
|
|
4149
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex-1 flex flex-col justify-center py-2 min-w-0 space-y-1", children: [
|
|
4150
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
4151
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Caption, { className: "w-1/2" })
|
|
4225
4152
|
] })
|
|
4226
4153
|
] }),
|
|
4227
|
-
/* @__PURE__ */
|
|
4228
|
-
/* @__PURE__ */
|
|
4229
|
-
/* @__PURE__ */
|
|
4154
|
+
/* @__PURE__ */ jsx33("div", { className: "w-full h-12 overflow-hidden flex items-center", children: /* @__PURE__ */ jsxs25("div", { className: "space-y-1 w-full", children: [
|
|
4155
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-full" }),
|
|
4156
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-2/3" })
|
|
4230
4157
|
] }) }),
|
|
4231
|
-
/* @__PURE__ */
|
|
4232
|
-
/* @__PURE__ */
|
|
4233
|
-
/* @__PURE__ */
|
|
4234
|
-
/* @__PURE__ */
|
|
4235
|
-
/* @__PURE__ */
|
|
4158
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center justify-between gap-2 w-full min-w-0", children: [
|
|
4159
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-3 md:gap-4 min-w-0 flex-shrink", children: [
|
|
4160
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
4161
|
+
/* @__PURE__ */ jsx33(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
|
|
4162
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Caption, { className: "w-8" })
|
|
4236
4163
|
] }),
|
|
4237
|
-
/* @__PURE__ */
|
|
4238
|
-
/* @__PURE__ */
|
|
4239
|
-
/* @__PURE__ */
|
|
4164
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
4165
|
+
/* @__PURE__ */ jsx33(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
|
|
4166
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Caption, { className: "w-10" })
|
|
4240
4167
|
] })
|
|
4241
4168
|
] }),
|
|
4242
|
-
/* @__PURE__ */
|
|
4243
|
-
/* @__PURE__ */
|
|
4244
|
-
/* @__PURE__ */
|
|
4169
|
+
/* @__PURE__ */ jsx33("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-1.5 bg-ods-bg border border-ods-border rounded px-2.5 py-1.5", children: [
|
|
4170
|
+
/* @__PURE__ */ jsx33("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx33(MediaSkeleton.Icon, { size: "sm", className: "w-2.5 h-2.5" }) }),
|
|
4171
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Caption, { className: "w-16" })
|
|
4245
4172
|
] }) })
|
|
4246
4173
|
] })
|
|
4247
4174
|
] });
|
|
4248
4175
|
}
|
|
4249
4176
|
function BlogCardContent({ showActions, showMetadata }) {
|
|
4250
|
-
return /* @__PURE__ */
|
|
4251
|
-
/* @__PURE__ */
|
|
4252
|
-
/* @__PURE__ */
|
|
4253
|
-
/* @__PURE__ */
|
|
4254
|
-
/* @__PURE__ */
|
|
4255
|
-
/* @__PURE__ */
|
|
4177
|
+
return /* @__PURE__ */ jsxs25(Fragment7, { children: [
|
|
4178
|
+
/* @__PURE__ */ jsx33("div", { className: "blog-card-image-container relative w-full aspect-[1200/630] overflow-hidden bg-ods-bg", children: /* @__PURE__ */ jsx33(MediaSkeleton.CardImage, {}) }),
|
|
4179
|
+
/* @__PURE__ */ jsxs25("div", { className: "p-4 flex flex-col flex-grow", children: [
|
|
4180
|
+
/* @__PURE__ */ jsx33("div", { className: "mb-3 flex items-center min-h-[50.4px] md:min-h-[56px] lg:min-h-[61.6px]", children: /* @__PURE__ */ jsxs25("div", { className: "space-y-1 w-full", children: [
|
|
4181
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Subheading, { className: "w-full" }),
|
|
4182
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Subheading, { className: "w-3/4" })
|
|
4256
4183
|
] }) }),
|
|
4257
|
-
/* @__PURE__ */
|
|
4258
|
-
/* @__PURE__ */
|
|
4259
|
-
/* @__PURE__ */
|
|
4184
|
+
/* @__PURE__ */ jsxs25("div", { className: "mb-3 flex gap-2 h-[28px] items-center", children: [
|
|
4185
|
+
/* @__PURE__ */ jsx33(InteractiveSkeleton.Chip, { className: "w-16" }),
|
|
4186
|
+
/* @__PURE__ */ jsx33(InteractiveSkeleton.Chip, { className: "w-12" })
|
|
4260
4187
|
] }),
|
|
4261
|
-
/* @__PURE__ */
|
|
4262
|
-
/* @__PURE__ */
|
|
4263
|
-
/* @__PURE__ */
|
|
4188
|
+
/* @__PURE__ */ jsx33("div", { className: "mb-3 flex items-center min-h-[42px] md:min-h-[45px] lg:min-h-[48px]", children: /* @__PURE__ */ jsxs25("div", { className: "space-y-1 w-full", children: [
|
|
4189
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-full" }),
|
|
4190
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-1/2" })
|
|
4264
4191
|
] }) }),
|
|
4265
|
-
showActions && /* @__PURE__ */
|
|
4266
|
-
showMetadata && /* @__PURE__ */
|
|
4267
|
-
/* @__PURE__ */
|
|
4268
|
-
/* @__PURE__ */
|
|
4269
|
-
/* @__PURE__ */
|
|
4192
|
+
showActions && /* @__PURE__ */ jsx33("div", { className: "pt-2", children: /* @__PURE__ */ jsx33(InteractiveSkeleton.Button, { className: "w-24 h-8" }) }),
|
|
4193
|
+
showMetadata && /* @__PURE__ */ jsx33("div", { className: "mt-auto", children: /* @__PURE__ */ jsxs25("div", { className: "flex items-center justify-between gap-4 pt-4 border-t border-ods-border", children: [
|
|
4194
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [
|
|
4195
|
+
/* @__PURE__ */ jsx33(MediaSkeleton.Avatar, { size: "sm" }),
|
|
4196
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Caption, { className: "w-16" })
|
|
4270
4197
|
] }),
|
|
4271
|
-
/* @__PURE__ */
|
|
4272
|
-
/* @__PURE__ */
|
|
4273
|
-
/* @__PURE__ */
|
|
4274
|
-
/* @__PURE__ */
|
|
4198
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-3 text-[#767676] shrink-0", children: [
|
|
4199
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Caption, { className: "w-12" }),
|
|
4200
|
+
/* @__PURE__ */ jsx33("div", { className: "w-1 h-1 bg-[#767676] rounded-full" }),
|
|
4201
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Caption, { className: "w-16" })
|
|
4275
4202
|
] })
|
|
4276
4203
|
] }) })
|
|
4277
4204
|
] })
|
|
4278
4205
|
] });
|
|
4279
4206
|
}
|
|
4280
4207
|
function CategoryCardContent() {
|
|
4281
|
-
return /* @__PURE__ */
|
|
4282
|
-
/* @__PURE__ */
|
|
4208
|
+
return /* @__PURE__ */ jsxs25("div", { className: "p-4 md:p-6 space-y-4", children: [
|
|
4209
|
+
/* @__PURE__ */ jsx33("div", { className: "flex gap-2 md:gap-3", children: Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */ jsx33(
|
|
4283
4210
|
MediaSkeleton.Icon,
|
|
4284
4211
|
{
|
|
4285
4212
|
size: "lg",
|
|
@@ -4287,34 +4214,34 @@ function CategoryCardContent() {
|
|
|
4287
4214
|
},
|
|
4288
4215
|
index
|
|
4289
4216
|
)) }),
|
|
4290
|
-
/* @__PURE__ */
|
|
4291
|
-
/* @__PURE__ */
|
|
4292
|
-
/* @__PURE__ */
|
|
4293
|
-
/* @__PURE__ */
|
|
4217
|
+
/* @__PURE__ */ jsxs25("div", { className: "space-y-2", children: [
|
|
4218
|
+
/* @__PURE__ */ jsxs25("div", { className: "space-y-1", children: [
|
|
4219
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
4220
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Caption, { className: "w-1/2" })
|
|
4294
4221
|
] }),
|
|
4295
|
-
/* @__PURE__ */
|
|
4296
|
-
/* @__PURE__ */
|
|
4297
|
-
/* @__PURE__ */
|
|
4298
|
-
/* @__PURE__ */
|
|
4222
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-start md:items-end justify-between gap-4 md:gap-6", children: [
|
|
4223
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex-1 space-y-2", children: [
|
|
4224
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-full" }),
|
|
4225
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-2/3" })
|
|
4299
4226
|
] }),
|
|
4300
|
-
/* @__PURE__ */
|
|
4227
|
+
/* @__PURE__ */ jsx33(InteractiveSkeleton.Button, { className: "w-10 h-10 md:w-12 md:h-12 flex-shrink-0" })
|
|
4301
4228
|
] })
|
|
4302
4229
|
] })
|
|
4303
4230
|
] });
|
|
4304
4231
|
}
|
|
4305
4232
|
function AlternativeCardContent({ showActions }) {
|
|
4306
|
-
return /* @__PURE__ */
|
|
4307
|
-
/* @__PURE__ */
|
|
4308
|
-
/* @__PURE__ */
|
|
4309
|
-
/* @__PURE__ */
|
|
4310
|
-
/* @__PURE__ */
|
|
4311
|
-
/* @__PURE__ */
|
|
4233
|
+
return /* @__PURE__ */ jsxs25("div", { className: "flex items-start gap-4 p-4", children: [
|
|
4234
|
+
/* @__PURE__ */ jsx33(MediaSkeleton.Avatar, { size: "md", className: "flex-shrink-0" }),
|
|
4235
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex-1 space-y-2", children: [
|
|
4236
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-center justify-between", children: [
|
|
4237
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
4238
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Caption, { className: "w-16" })
|
|
4312
4239
|
] }),
|
|
4313
|
-
/* @__PURE__ */
|
|
4314
|
-
/* @__PURE__ */
|
|
4315
|
-
/* @__PURE__ */
|
|
4240
|
+
/* @__PURE__ */ jsxs25("div", { className: "space-y-1", children: [
|
|
4241
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-full" }),
|
|
4242
|
+
/* @__PURE__ */ jsx33(TextSkeleton.Body, { className: "w-5/6" })
|
|
4316
4243
|
] }),
|
|
4317
|
-
showActions && /* @__PURE__ */
|
|
4244
|
+
showActions && /* @__PURE__ */ jsx33("div", { className: "pt-2", children: /* @__PURE__ */ jsx33(InteractiveSkeleton.Button, { className: "w-20 h-8" }) })
|
|
4318
4245
|
] })
|
|
4319
4246
|
] });
|
|
4320
4247
|
}
|
|
@@ -4325,7 +4252,7 @@ function CardSkeletonGrid({
|
|
|
4325
4252
|
containerClassName,
|
|
4326
4253
|
...props
|
|
4327
4254
|
}) {
|
|
4328
|
-
return /* @__PURE__ */
|
|
4255
|
+
return /* @__PURE__ */ jsx33(
|
|
4329
4256
|
"div",
|
|
4330
4257
|
{
|
|
4331
4258
|
className: cn(
|
|
@@ -4339,7 +4266,7 @@ function CardSkeletonGrid({
|
|
|
4339
4266
|
),
|
|
4340
4267
|
role: "status",
|
|
4341
4268
|
"aria-label": `Loading ${count} ${variant} cards`,
|
|
4342
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */
|
|
4269
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx33(
|
|
4343
4270
|
CardSkeleton,
|
|
4344
4271
|
{
|
|
4345
4272
|
variant,
|
|
@@ -4353,19 +4280,19 @@ function CardSkeletonGrid({
|
|
|
4353
4280
|
}
|
|
4354
4281
|
|
|
4355
4282
|
// src/components/loading/page-layout-skeleton.tsx
|
|
4356
|
-
import { Fragment as Fragment8, jsx as
|
|
4283
|
+
import { Fragment as Fragment8, jsx as jsx34, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
4357
4284
|
function AnnouncementBarSkeleton() {
|
|
4358
|
-
return /* @__PURE__ */
|
|
4359
|
-
/* @__PURE__ */
|
|
4360
|
-
/* @__PURE__ */
|
|
4361
|
-
/* @__PURE__ */
|
|
4362
|
-
/* @__PURE__ */
|
|
4285
|
+
return /* @__PURE__ */ jsx34("div", { className: "bg-[#2A2A2A] relative w-full animate-pulse", children: /* @__PURE__ */ jsx34("div", { className: "flex flex-row items-center relative w-full", children: /* @__PURE__ */ jsxs26("div", { className: "box-border flex flex-row gap-4 md:gap-6 items-center justify-start pl-4 md:pl-6 pr-12 md:pr-16 py-3 md:py-4 relative w-full", children: [
|
|
4286
|
+
/* @__PURE__ */ jsx34("div", { className: "relative shrink-0 w-6 h-6 md:w-8 md:h-8 bg-ods-border rounded" }),
|
|
4287
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 min-w-0 space-y-1 md:space-y-2", children: [
|
|
4288
|
+
/* @__PURE__ */ jsx34("div", { className: "h-[14px] md:h-[18px] bg-ods-border rounded w-3/4 max-w-md" }),
|
|
4289
|
+
/* @__PURE__ */ jsx34("div", { className: "h-[12px] md:h-[18px] bg-ods-border rounded w-full max-w-lg hidden md:block" })
|
|
4363
4290
|
] }),
|
|
4364
|
-
/* @__PURE__ */
|
|
4291
|
+
/* @__PURE__ */ jsx34("div", { className: "absolute right-2 top-2 w-6 h-6 bg-ods-border rounded" })
|
|
4365
4292
|
] }) }) });
|
|
4366
4293
|
}
|
|
4367
4294
|
function HeroSkeleton() {
|
|
4368
|
-
return /* @__PURE__ */
|
|
4295
|
+
return /* @__PURE__ */ jsxs26(
|
|
4369
4296
|
"section",
|
|
4370
4297
|
{
|
|
4371
4298
|
className: "w-full flex flex-col items-center justify-center py-12 px-4 md:py-20 md:px-8 text-center animate-pulse",
|
|
@@ -4373,12 +4300,12 @@ function HeroSkeleton() {
|
|
|
4373
4300
|
background: "radial-gradient(circle at 50% 0%, #242323 0%, #1A1A1A 100%)"
|
|
4374
4301
|
},
|
|
4375
4302
|
children: [
|
|
4376
|
-
/* @__PURE__ */
|
|
4377
|
-
/* @__PURE__ */
|
|
4378
|
-
/* @__PURE__ */
|
|
4379
|
-
/* @__PURE__ */
|
|
4303
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Heading, { className: "h-12 md:h-20 lg:h-24 mb-4 md:mb-6 max-w-4xl w-full" }),
|
|
4304
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-3 mb-8 md:mb-10 max-w-4xl w-full px-2", children: [
|
|
4305
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "h-5 md:h-7" }),
|
|
4306
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "h-5 md:h-7 w-3/4 mx-auto" })
|
|
4380
4307
|
] }),
|
|
4381
|
-
/* @__PURE__ */
|
|
4308
|
+
/* @__PURE__ */ jsx34(InteractiveSkeleton.Button, { className: "w-full md:w-64 h-12" })
|
|
4382
4309
|
]
|
|
4383
4310
|
}
|
|
4384
4311
|
);
|
|
@@ -4387,16 +4314,16 @@ function SearchContainerSkeleton({
|
|
|
4387
4314
|
className,
|
|
4388
4315
|
showFilters = true
|
|
4389
4316
|
}) {
|
|
4390
|
-
return /* @__PURE__ */
|
|
4391
|
-
/* @__PURE__ */
|
|
4392
|
-
/* @__PURE__ */
|
|
4393
|
-
/* @__PURE__ */
|
|
4317
|
+
return /* @__PURE__ */ jsxs26("div", { className: cn("space-y-4", className || ""), children: [
|
|
4318
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex gap-2 md:gap-4", children: [
|
|
4319
|
+
/* @__PURE__ */ jsx34(InteractiveSkeleton.Input, { className: "flex-1" }),
|
|
4320
|
+
/* @__PURE__ */ jsx34(InteractiveSkeleton.Button, { className: "w-32 md:w-40" })
|
|
4394
4321
|
] }),
|
|
4395
|
-
showFilters && /* @__PURE__ */
|
|
4396
|
-
/* @__PURE__ */
|
|
4397
|
-
/* @__PURE__ */
|
|
4398
|
-
/* @__PURE__ */
|
|
4399
|
-
/* @__PURE__ */
|
|
4322
|
+
showFilters && /* @__PURE__ */ jsxs26("div", { className: "flex gap-2 flex-wrap", children: [
|
|
4323
|
+
/* @__PURE__ */ jsx34(InteractiveSkeleton.Chip, {}),
|
|
4324
|
+
/* @__PURE__ */ jsx34(InteractiveSkeleton.Chip, { className: "w-24" }),
|
|
4325
|
+
/* @__PURE__ */ jsx34(InteractiveSkeleton.Chip, { className: "w-16" }),
|
|
4326
|
+
/* @__PURE__ */ jsx34(InteractiveSkeleton.Chip, { className: "w-20" })
|
|
4400
4327
|
] })
|
|
4401
4328
|
] });
|
|
4402
4329
|
}
|
|
@@ -4414,9 +4341,9 @@ function CategorySidebarSkeleton({ className }) {
|
|
|
4414
4341
|
{ type: "file", width: "w-28" },
|
|
4415
4342
|
{ type: "file", width: "w-36" }
|
|
4416
4343
|
];
|
|
4417
|
-
return /* @__PURE__ */
|
|
4418
|
-
/* @__PURE__ */
|
|
4419
|
-
/* @__PURE__ */
|
|
4344
|
+
return /* @__PURE__ */ jsxs26("div", { className: cn("w-full lg:w-[320px]", className), children: [
|
|
4345
|
+
/* @__PURE__ */ jsx34(UnifiedSkeleton, { className: "h-[14px] w-24 rounded mb-4" }),
|
|
4346
|
+
/* @__PURE__ */ jsx34("div", { className: "space-y-1.5", children: items.map((item, index) => /* @__PURE__ */ jsxs26(
|
|
4420
4347
|
"div",
|
|
4421
4348
|
{
|
|
4422
4349
|
className: cn(
|
|
@@ -4424,13 +4351,13 @@ function CategorySidebarSkeleton({ className }) {
|
|
|
4424
4351
|
index === 0 ? "bg-ods-accent/20" : "bg-ods-card"
|
|
4425
4352
|
),
|
|
4426
4353
|
children: [
|
|
4427
|
-
/* @__PURE__ */
|
|
4428
|
-
/* @__PURE__ */
|
|
4429
|
-
/* @__PURE__ */
|
|
4354
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2.5", children: [
|
|
4355
|
+
/* @__PURE__ */ jsx34(UnifiedSkeleton, { className: "w-4 h-4 shrink-0 rounded" }),
|
|
4356
|
+
/* @__PURE__ */ jsx34(UnifiedSkeleton, { className: `h-[14px] ${item.width} rounded` })
|
|
4430
4357
|
] }),
|
|
4431
|
-
/* @__PURE__ */
|
|
4432
|
-
item.hasBadge && /* @__PURE__ */
|
|
4433
|
-
item.type === "folder" && /* @__PURE__ */
|
|
4358
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2 h-[18px]", children: [
|
|
4359
|
+
item.hasBadge && /* @__PURE__ */ jsx34(UnifiedSkeleton, { className: "h-[18px] w-14 rounded" }),
|
|
4360
|
+
item.type === "folder" && /* @__PURE__ */ jsx34(UnifiedSkeleton, { className: "w-4 h-4 rounded" })
|
|
4434
4361
|
] })
|
|
4435
4362
|
]
|
|
4436
4363
|
},
|
|
@@ -4439,18 +4366,18 @@ function CategorySidebarSkeleton({ className }) {
|
|
|
4439
4366
|
] });
|
|
4440
4367
|
}
|
|
4441
4368
|
function BreadcrumbSkeleton({ className }) {
|
|
4442
|
-
return /* @__PURE__ */
|
|
4443
|
-
/* @__PURE__ */
|
|
4444
|
-
/* @__PURE__ */
|
|
4445
|
-
/* @__PURE__ */
|
|
4446
|
-
/* @__PURE__ */
|
|
4447
|
-
/* @__PURE__ */
|
|
4448
|
-
/* @__PURE__ */
|
|
4449
|
-
/* @__PURE__ */
|
|
4369
|
+
return /* @__PURE__ */ jsxs26("div", { className: cn("flex items-center space-x-1 mb-6", className), children: [
|
|
4370
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Caption, { className: "w-16" }),
|
|
4371
|
+
/* @__PURE__ */ jsx34(UnifiedSkeleton, { variant: "default", className: "w-4 h-4 rounded-full" }),
|
|
4372
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Caption, { className: "w-24" }),
|
|
4373
|
+
/* @__PURE__ */ jsx34(UnifiedSkeleton, { variant: "default", className: "w-4 h-4 rounded-full" }),
|
|
4374
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Caption, { className: "w-32" }),
|
|
4375
|
+
/* @__PURE__ */ jsx34(UnifiedSkeleton, { variant: "default", className: "w-4 h-4 rounded-full" }),
|
|
4376
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Caption, { className: "w-24" })
|
|
4450
4377
|
] });
|
|
4451
4378
|
}
|
|
4452
4379
|
function ResultsHeaderSkeleton({ className }) {
|
|
4453
|
-
return /* @__PURE__ */
|
|
4380
|
+
return /* @__PURE__ */ jsx34("div", { className: cn("flex flex-col md:flex-row justify-between items-start md:items-center gap-4 mb-6", className), children: /* @__PURE__ */ jsx34("div", { className: "space-y-1", children: /* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "w-48" }) }) });
|
|
4454
4381
|
}
|
|
4455
4382
|
function TwoColumnLayoutSkeleton({
|
|
4456
4383
|
className,
|
|
@@ -4458,250 +4385,250 @@ function TwoColumnLayoutSkeleton({
|
|
|
4458
4385
|
mainContent,
|
|
4459
4386
|
sidebarPosition = "left"
|
|
4460
4387
|
}) {
|
|
4461
|
-
const sidebar = sidebarContent || /* @__PURE__ */
|
|
4462
|
-
const main = mainContent || /* @__PURE__ */
|
|
4463
|
-
return /* @__PURE__ */
|
|
4388
|
+
const sidebar = sidebarContent || /* @__PURE__ */ jsx34(CategorySidebarSkeleton, {});
|
|
4389
|
+
const main = mainContent || /* @__PURE__ */ jsx34(CardSkeletonGrid, { count: 6 });
|
|
4390
|
+
return /* @__PURE__ */ jsx34("div", { className: cn(
|
|
4464
4391
|
"grid grid-cols-1 lg:grid-cols-[320px_1fr] gap-6 lg:gap-8",
|
|
4465
4392
|
sidebarPosition === "right" && "lg:grid-cols-[1fr_320px]",
|
|
4466
4393
|
className
|
|
4467
|
-
), children: sidebarPosition === "left" ? /* @__PURE__ */
|
|
4468
|
-
/* @__PURE__ */
|
|
4469
|
-
/* @__PURE__ */
|
|
4470
|
-
] }) : /* @__PURE__ */
|
|
4471
|
-
/* @__PURE__ */
|
|
4472
|
-
/* @__PURE__ */
|
|
4394
|
+
), children: sidebarPosition === "left" ? /* @__PURE__ */ jsxs26(Fragment8, { children: [
|
|
4395
|
+
/* @__PURE__ */ jsx34("aside", { className: "order-2 lg:order-1", children: sidebar }),
|
|
4396
|
+
/* @__PURE__ */ jsx34("main", { className: "order-1 lg:order-2", children: main })
|
|
4397
|
+
] }) : /* @__PURE__ */ jsxs26(Fragment8, { children: [
|
|
4398
|
+
/* @__PURE__ */ jsx34("main", { className: "order-1", children: main }),
|
|
4399
|
+
/* @__PURE__ */ jsx34("aside", { className: "order-2", children: sidebar })
|
|
4473
4400
|
] }) });
|
|
4474
4401
|
}
|
|
4475
4402
|
function ArticleLayoutSkeleton({ className }) {
|
|
4476
|
-
return /* @__PURE__ */
|
|
4477
|
-
/* @__PURE__ */
|
|
4478
|
-
/* @__PURE__ */
|
|
4479
|
-
/* @__PURE__ */
|
|
4480
|
-
/* @__PURE__ */
|
|
4403
|
+
return /* @__PURE__ */ jsxs26("article", { className: cn("max-w-4xl mx-auto", className), children: [
|
|
4404
|
+
/* @__PURE__ */ jsxs26("header", { className: "mb-8 md:mb-12 space-y-4 md:space-y-6", children: [
|
|
4405
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex gap-2", children: [
|
|
4406
|
+
/* @__PURE__ */ jsx34(InteractiveSkeleton.Chip, {}),
|
|
4407
|
+
/* @__PURE__ */ jsx34(InteractiveSkeleton.Chip, { className: "w-16" })
|
|
4481
4408
|
] }),
|
|
4482
|
-
/* @__PURE__ */
|
|
4483
|
-
/* @__PURE__ */
|
|
4484
|
-
/* @__PURE__ */
|
|
4409
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-3", children: [
|
|
4410
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Heading, { className: "w-full" }),
|
|
4411
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Heading, { className: "w-3/4" })
|
|
4485
4412
|
] }),
|
|
4486
|
-
/* @__PURE__ */
|
|
4487
|
-
/* @__PURE__ */
|
|
4488
|
-
/* @__PURE__ */
|
|
4489
|
-
/* @__PURE__ */
|
|
4413
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-4 pt-4 border-t border-ods-divider", children: [
|
|
4414
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2", children: [
|
|
4415
|
+
/* @__PURE__ */ jsx34(MediaSkeleton.Avatar, { size: "sm" }),
|
|
4416
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Caption, { className: "w-24" })
|
|
4490
4417
|
] }),
|
|
4491
|
-
/* @__PURE__ */
|
|
4492
|
-
/* @__PURE__ */
|
|
4418
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Caption, { className: "w-20" }),
|
|
4419
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Caption, { className: "w-16" })
|
|
4493
4420
|
] })
|
|
4494
4421
|
] }),
|
|
4495
|
-
/* @__PURE__ */
|
|
4496
|
-
/* @__PURE__ */
|
|
4497
|
-
Array.from({ length: 12 }).map((_, index) => /* @__PURE__ */
|
|
4498
|
-
/* @__PURE__ */
|
|
4499
|
-
/* @__PURE__ */
|
|
4500
|
-
/* @__PURE__ */
|
|
4501
|
-
/* @__PURE__ */
|
|
4422
|
+
/* @__PURE__ */ jsx34("div", { className: "mb-8 md:mb-12", children: /* @__PURE__ */ jsx34(MediaSkeleton.CardImage, { className: "w-full h-64 md:h-96" }) }),
|
|
4423
|
+
/* @__PURE__ */ jsxs26("div", { className: "prose prose-invert max-w-none space-y-6", children: [
|
|
4424
|
+
Array.from({ length: 12 }).map((_, index) => /* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
|
|
4425
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "w-full" }),
|
|
4426
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "w-full" }),
|
|
4427
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "w-5/6" }),
|
|
4428
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "w-3/4" })
|
|
4502
4429
|
] }, index)),
|
|
4503
|
-
/* @__PURE__ */
|
|
4504
|
-
/* @__PURE__ */
|
|
4505
|
-
/* @__PURE__ */
|
|
4506
|
-
/* @__PURE__ */
|
|
4507
|
-
/* @__PURE__ */
|
|
4430
|
+
/* @__PURE__ */ jsxs26("div", { className: "py-4", children: [
|
|
4431
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Subheading, { className: "w-2/3 mb-4" }),
|
|
4432
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
|
|
4433
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "w-full" }),
|
|
4434
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "w-4/5" })
|
|
4508
4435
|
] })
|
|
4509
4436
|
] })
|
|
4510
4437
|
] })
|
|
4511
4438
|
] });
|
|
4512
4439
|
}
|
|
4513
4440
|
function VendorDetailLayoutSkeleton({ className }) {
|
|
4514
|
-
return /* @__PURE__ */
|
|
4515
|
-
/* @__PURE__ */
|
|
4516
|
-
/* @__PURE__ */
|
|
4517
|
-
/* @__PURE__ */
|
|
4518
|
-
/* @__PURE__ */
|
|
4519
|
-
/* @__PURE__ */
|
|
4520
|
-
/* @__PURE__ */
|
|
4521
|
-
/* @__PURE__ */
|
|
4522
|
-
/* @__PURE__ */
|
|
4523
|
-
/* @__PURE__ */
|
|
4524
|
-
/* @__PURE__ */
|
|
4441
|
+
return /* @__PURE__ */ jsx34("main", { className: cn("bg-ods-bg min-h-screen", className), children: /* @__PURE__ */ jsxs26("div", { className: "max-w-[1920px] mx-auto px-6 md:px-20 py-6 md:py-10", children: [
|
|
4442
|
+
/* @__PURE__ */ jsx34(BreadcrumbSkeleton, { className: "mb-6" }),
|
|
4443
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col lg:flex-row lg:gap-10", children: [
|
|
4444
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 min-w-0", children: [
|
|
4445
|
+
/* @__PURE__ */ jsxs26("div", { className: "mb-10", children: [
|
|
4446
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex gap-6 mb-6", children: [
|
|
4447
|
+
/* @__PURE__ */ jsx34("div", { className: "w-20 h-20 bg-ods-card border border-ods-border rounded-lg animate-pulse flex-shrink-0" }),
|
|
4448
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-3", children: [
|
|
4449
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-2", children: [
|
|
4450
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 md:h-16 lg:h-20 bg-[#2A2A2A] rounded animate-pulse w-80 max-w-full" }),
|
|
4451
|
+
/* @__PURE__ */ jsx34("div", { className: "h-5 md:h-6 bg-[#2A2A2A] rounded animate-pulse w-32" })
|
|
4525
4452
|
] }),
|
|
4526
|
-
/* @__PURE__ */
|
|
4527
|
-
/* @__PURE__ */
|
|
4528
|
-
/* @__PURE__ */
|
|
4453
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2", children: [
|
|
4454
|
+
/* @__PURE__ */ jsx34("div", { className: "h-8 bg-[#2A2A2A] rounded animate-pulse w-20" }),
|
|
4455
|
+
/* @__PURE__ */ jsx34("div", { className: "h-8 bg-[#2A2A2A] rounded animate-pulse w-16" })
|
|
4529
4456
|
] })
|
|
4530
4457
|
] })
|
|
4531
4458
|
] }),
|
|
4532
|
-
/* @__PURE__ */
|
|
4533
|
-
/* @__PURE__ */
|
|
4459
|
+
/* @__PURE__ */ jsx34("div", { className: "w-full h-[300px] md:h-[400px] lg:h-[500px] bg-ods-card border border-ods-border rounded-lg animate-pulse mb-2" }),
|
|
4460
|
+
/* @__PURE__ */ jsx34("div", { className: "text-center", children: /* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-24 mx-auto" }) })
|
|
4534
4461
|
] }),
|
|
4535
|
-
/* @__PURE__ */
|
|
4536
|
-
/* @__PURE__ */
|
|
4537
|
-
/* @__PURE__ */
|
|
4538
|
-
/* @__PURE__ */
|
|
4539
|
-
/* @__PURE__ */
|
|
4462
|
+
/* @__PURE__ */ jsx34("div", { className: "lg:hidden mb-10", children: /* @__PURE__ */ jsxs26("div", { className: "space-y-4", children: [
|
|
4463
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
4464
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
|
|
4465
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
4466
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" })
|
|
4540
4467
|
] }),
|
|
4541
|
-
/* @__PURE__ */
|
|
4542
|
-
/* @__PURE__ */
|
|
4543
|
-
/* @__PURE__ */
|
|
4544
|
-
/* @__PURE__ */
|
|
4545
|
-
/* @__PURE__ */
|
|
4546
|
-
/* @__PURE__ */
|
|
4468
|
+
/* @__PURE__ */ jsxs26("div", { className: "border border-ods-border rounded-lg overflow-hidden", children: [
|
|
4469
|
+
/* @__PURE__ */ jsxs26("div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
|
|
4470
|
+
/* @__PURE__ */ jsx34("div", { className: "w-8 h-8 bg-[#2A2A2A] rounded animate-pulse" }),
|
|
4471
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-1", children: [
|
|
4472
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-20" }),
|
|
4473
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 bg-[#2A2A2A] rounded animate-pulse w-12" })
|
|
4547
4474
|
] })
|
|
4548
4475
|
] }),
|
|
4549
|
-
/* @__PURE__ */
|
|
4550
|
-
/* @__PURE__ */
|
|
4551
|
-
/* @__PURE__ */
|
|
4552
|
-
/* @__PURE__ */
|
|
4553
|
-
/* @__PURE__ */
|
|
4476
|
+
/* @__PURE__ */ jsx34("div", { className: "p-4 space-y-3", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-3", children: [
|
|
4477
|
+
/* @__PURE__ */ jsx34("div", { className: "w-6 h-6 bg-[#2A2A2A] rounded animate-pulse" }),
|
|
4478
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-end gap-1", children: [
|
|
4479
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-12" }),
|
|
4480
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded animate-pulse w-8" })
|
|
4554
4481
|
] })
|
|
4555
4482
|
] }, i)) })
|
|
4556
4483
|
] }),
|
|
4557
|
-
/* @__PURE__ */
|
|
4558
|
-
/* @__PURE__ */
|
|
4559
|
-
/* @__PURE__ */
|
|
4560
|
-
/* @__PURE__ */
|
|
4484
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-3", children: [
|
|
4485
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
4486
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
4487
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" })
|
|
4561
4488
|
] })
|
|
4562
4489
|
] }) }),
|
|
4563
|
-
/* @__PURE__ */
|
|
4564
|
-
/* @__PURE__ */
|
|
4565
|
-
/* @__PURE__ */
|
|
4566
|
-
/* @__PURE__ */
|
|
4567
|
-
/* @__PURE__ */
|
|
4490
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-6 mb-20", children: [
|
|
4491
|
+
/* @__PURE__ */ jsx34("div", { className: "h-8 md:h-10 bg-[#2A2A2A] rounded animate-pulse w-48" }),
|
|
4492
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-4", children: [
|
|
4493
|
+
/* @__PURE__ */ jsx34("div", { className: "h-5 bg-[#2A2A2A] rounded animate-pulse w-48" }),
|
|
4494
|
+
/* @__PURE__ */ jsx34("div", { className: "flex flex-wrap gap-2", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsx34("div", { className: "h-10 bg-ods-card border border-ods-border rounded-lg animate-pulse w-24" }, i)) })
|
|
4568
4495
|
] }),
|
|
4569
|
-
/* @__PURE__ */
|
|
4570
|
-
/* @__PURE__ */
|
|
4571
|
-
/* @__PURE__ */
|
|
4496
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-4", children: [
|
|
4497
|
+
/* @__PURE__ */ jsx34("div", { className: "h-5 bg-[#2A2A2A] rounded animate-pulse w-52" }),
|
|
4498
|
+
/* @__PURE__ */ jsx34("div", { className: "flex flex-wrap gap-2", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsx34("div", { className: "h-10 bg-ods-card border border-ods-border rounded-lg animate-pulse w-28" }, i)) })
|
|
4572
4499
|
] })
|
|
4573
4500
|
] }),
|
|
4574
|
-
/* @__PURE__ */
|
|
4575
|
-
/* @__PURE__ */
|
|
4576
|
-
/* @__PURE__ */
|
|
4577
|
-
/* @__PURE__ */
|
|
4578
|
-
/* @__PURE__ */
|
|
4579
|
-
/* @__PURE__ */
|
|
4580
|
-
/* @__PURE__ */
|
|
4501
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-6 mb-20", children: [
|
|
4502
|
+
/* @__PURE__ */ jsx34("div", { className: "h-8 md:h-10 bg-[#2A2A2A] rounded animate-pulse w-64" }),
|
|
4503
|
+
/* @__PURE__ */ jsx34("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 md:p-8", children: /* @__PURE__ */ jsxs26("div", { className: "space-y-4", children: [
|
|
4504
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 bg-[#2A2A2A] rounded animate-pulse" }),
|
|
4505
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 bg-[#2A2A2A] rounded animate-pulse" }),
|
|
4506
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 bg-[#2A2A2A] rounded animate-pulse w-5/6" }),
|
|
4507
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 bg-[#2A2A2A] rounded animate-pulse w-4/5" })
|
|
4581
4508
|
] }) })
|
|
4582
4509
|
] }),
|
|
4583
|
-
/* @__PURE__ */
|
|
4584
|
-
/* @__PURE__ */
|
|
4585
|
-
/* @__PURE__ */
|
|
4586
|
-
/* @__PURE__ */
|
|
4587
|
-
/* @__PURE__ */
|
|
4588
|
-
/* @__PURE__ */
|
|
4589
|
-
/* @__PURE__ */
|
|
4510
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-6 mb-20", children: [
|
|
4511
|
+
/* @__PURE__ */ jsx34("div", { className: "h-8 md:h-10 bg-[#2A2A2A] rounded animate-pulse w-72" }),
|
|
4512
|
+
/* @__PURE__ */ jsx34("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsxs26("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4 flex gap-4", children: [
|
|
4513
|
+
/* @__PURE__ */ jsx34("div", { className: "w-12 h-12 bg-[#2A2A2A] rounded flex-shrink-0 animate-pulse" }),
|
|
4514
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 space-y-2", children: [
|
|
4515
|
+
/* @__PURE__ */ jsx34("div", { className: "h-5 bg-[#2A2A2A] rounded animate-pulse w-3/4" }),
|
|
4516
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse" })
|
|
4590
4517
|
] })
|
|
4591
4518
|
] }, i)) })
|
|
4592
4519
|
] }),
|
|
4593
|
-
/* @__PURE__ */
|
|
4594
|
-
/* @__PURE__ */
|
|
4595
|
-
/* @__PURE__ */
|
|
4596
|
-
/* @__PURE__ */
|
|
4597
|
-
/* @__PURE__ */
|
|
4598
|
-
Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */
|
|
4599
|
-
/* @__PURE__ */
|
|
4600
|
-
/* @__PURE__ */
|
|
4601
|
-
/* @__PURE__ */
|
|
4602
|
-
/* @__PURE__ */
|
|
4520
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-6 mb-20", children: [
|
|
4521
|
+
/* @__PURE__ */ jsx34("div", { className: "h-8 md:h-10 bg-[#2A2A2A] rounded animate-pulse w-80" }),
|
|
4522
|
+
/* @__PURE__ */ jsxs26("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6", children: [
|
|
4523
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-6", children: [
|
|
4524
|
+
/* @__PURE__ */ jsx34("div", { className: "h-5 bg-[#2A2A2A] rounded animate-pulse w-16" }),
|
|
4525
|
+
Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxs26("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4 flex gap-3", children: [
|
|
4526
|
+
/* @__PURE__ */ jsx34("div", { className: "w-12 h-12 bg-ods-bg border border-ods-border rounded flex-shrink-0 animate-pulse" }),
|
|
4527
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 space-y-2", children: [
|
|
4528
|
+
/* @__PURE__ */ jsx34("div", { className: "h-5 bg-[#2A2A2A] rounded animate-pulse w-2/3" }),
|
|
4529
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse" })
|
|
4603
4530
|
] })
|
|
4604
4531
|
] }, i))
|
|
4605
4532
|
] }),
|
|
4606
|
-
/* @__PURE__ */
|
|
4607
|
-
/* @__PURE__ */
|
|
4608
|
-
Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */
|
|
4609
|
-
/* @__PURE__ */
|
|
4610
|
-
/* @__PURE__ */
|
|
4611
|
-
/* @__PURE__ */
|
|
4612
|
-
/* @__PURE__ */
|
|
4533
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-6", children: [
|
|
4534
|
+
/* @__PURE__ */ jsx34("div", { className: "h-5 bg-[#2A2A2A] rounded animate-pulse w-16" }),
|
|
4535
|
+
Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxs26("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4 flex gap-3", children: [
|
|
4536
|
+
/* @__PURE__ */ jsx34("div", { className: "w-12 h-12 bg-ods-bg border border-ods-border rounded flex-shrink-0 animate-pulse" }),
|
|
4537
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 space-y-2", children: [
|
|
4538
|
+
/* @__PURE__ */ jsx34("div", { className: "h-5 bg-[#2A2A2A] rounded animate-pulse w-2/3" }),
|
|
4539
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse" })
|
|
4613
4540
|
] })
|
|
4614
4541
|
] }, i))
|
|
4615
4542
|
] })
|
|
4616
4543
|
] })
|
|
4617
4544
|
] }),
|
|
4618
|
-
/* @__PURE__ */
|
|
4619
|
-
/* @__PURE__ */
|
|
4620
|
-
/* @__PURE__ */
|
|
4621
|
-
/* @__PURE__ */
|
|
4622
|
-
/* @__PURE__ */
|
|
4623
|
-
/* @__PURE__ */
|
|
4624
|
-
/* @__PURE__ */
|
|
4625
|
-
/* @__PURE__ */
|
|
4545
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-6 mb-20", children: [
|
|
4546
|
+
/* @__PURE__ */ jsx34("div", { className: "h-8 md:h-10 bg-[#2A2A2A] rounded animate-pulse w-72" }),
|
|
4547
|
+
/* @__PURE__ */ jsx34("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsxs26("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 space-y-4", children: [
|
|
4548
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-start gap-4", children: [
|
|
4549
|
+
/* @__PURE__ */ jsx34("div", { className: "w-16 h-16 bg-ods-bg border border-ods-border rounded-lg animate-pulse flex-shrink-0" }),
|
|
4550
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 space-y-2", children: [
|
|
4551
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 bg-[#2A2A2A] rounded animate-pulse w-3/4" }),
|
|
4552
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-1/2" })
|
|
4626
4553
|
] }),
|
|
4627
|
-
/* @__PURE__ */
|
|
4554
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 bg-[#2A2A2A] rounded animate-pulse w-20" })
|
|
4628
4555
|
] }),
|
|
4629
|
-
/* @__PURE__ */
|
|
4630
|
-
/* @__PURE__ */
|
|
4631
|
-
/* @__PURE__ */
|
|
4632
|
-
/* @__PURE__ */
|
|
4556
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
|
|
4557
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse" }),
|
|
4558
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-5/6" }),
|
|
4559
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-4/5" })
|
|
4633
4560
|
] }),
|
|
4634
|
-
/* @__PURE__ */
|
|
4635
|
-
/* @__PURE__ */
|
|
4636
|
-
/* @__PURE__ */
|
|
4561
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-between pt-2 border-t border-ods-border", children: [
|
|
4562
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-16" }),
|
|
4563
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-20" })
|
|
4637
4564
|
] })
|
|
4638
4565
|
] }, i)) }),
|
|
4639
|
-
/* @__PURE__ */
|
|
4566
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-[#2A2A2A] rounded-md animate-pulse" })
|
|
4640
4567
|
] }),
|
|
4641
|
-
/* @__PURE__ */
|
|
4642
|
-
/* @__PURE__ */
|
|
4643
|
-
/* @__PURE__ */
|
|
4644
|
-
/* @__PURE__ */
|
|
4645
|
-
/* @__PURE__ */
|
|
4646
|
-
/* @__PURE__ */
|
|
4647
|
-
/* @__PURE__ */
|
|
4568
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-6 mb-20", children: [
|
|
4569
|
+
/* @__PURE__ */ jsx34("div", { className: "h-8 md:h-10 bg-[#2A2A2A] rounded animate-pulse w-64" }),
|
|
4570
|
+
/* @__PURE__ */ jsx34("div", { className: "space-y-3", children: /* @__PURE__ */ jsxs26("div", { className: "flex gap-3", children: [
|
|
4571
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 bg-ods-bg border border-ods-border rounded-lg overflow-hidden", children: [
|
|
4572
|
+
/* @__PURE__ */ jsxs26("div", { className: "border-b border-ods-border p-3", children: [
|
|
4573
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded animate-pulse w-8 mb-2" }),
|
|
4574
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 bg-[#2A2A2A] rounded animate-pulse w-full" })
|
|
4648
4575
|
] }),
|
|
4649
|
-
/* @__PURE__ */
|
|
4650
|
-
/* @__PURE__ */
|
|
4651
|
-
/* @__PURE__ */
|
|
4652
|
-
/* @__PURE__ */
|
|
4653
|
-
/* @__PURE__ */
|
|
4654
|
-
/* @__PURE__ */
|
|
4576
|
+
/* @__PURE__ */ jsxs26("div", { className: "p-3", children: [
|
|
4577
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded animate-pulse w-16 mb-2" }),
|
|
4578
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
|
|
4579
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-full" }),
|
|
4580
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-3/4" }),
|
|
4581
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-1/2" })
|
|
4655
4582
|
] })
|
|
4656
4583
|
] })
|
|
4657
4584
|
] }),
|
|
4658
|
-
/* @__PURE__ */
|
|
4585
|
+
/* @__PURE__ */ jsx34("div", { className: "flex items-stretch", children: /* @__PURE__ */ jsx34("div", { className: "h-[120px] w-20 bg-[#2A2A2A] rounded-lg animate-pulse" }) })
|
|
4659
4586
|
] }) }),
|
|
4660
|
-
/* @__PURE__ */
|
|
4661
|
-
/* @__PURE__ */
|
|
4662
|
-
/* @__PURE__ */
|
|
4663
|
-
/* @__PURE__ */
|
|
4664
|
-
/* @__PURE__ */
|
|
4587
|
+
/* @__PURE__ */ jsx34("div", { className: "space-y-4", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxs26("div", { className: "bg-ods-card border border-ods-border rounded-lg p-4", children: [
|
|
4588
|
+
/* @__PURE__ */ jsx34("div", { className: "flex flex-col gap-3 mb-3 min-[420px]:flex-row min-[420px]:items-center min-[420px]:justify-between min-[420px]:gap-2", children: /* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2", children: [
|
|
4589
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2 bg-ods-card border border-ods-border rounded-lg py-2 px-3", children: [
|
|
4590
|
+
/* @__PURE__ */ jsx34("div", { className: "w-8 h-8 bg-[#2A2A2A] rounded-lg animate-pulse" }),
|
|
4591
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-20" })
|
|
4665
4592
|
] }),
|
|
4666
|
-
/* @__PURE__ */
|
|
4593
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-12" })
|
|
4667
4594
|
] }) }),
|
|
4668
|
-
/* @__PURE__ */
|
|
4669
|
-
/* @__PURE__ */
|
|
4670
|
-
/* @__PURE__ */
|
|
4671
|
-
/* @__PURE__ */
|
|
4672
|
-
/* @__PURE__ */
|
|
4673
|
-
/* @__PURE__ */
|
|
4595
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
|
|
4596
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 bg-[#2A2A2A] rounded animate-pulse w-2/3" }),
|
|
4597
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-1", children: [
|
|
4598
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-full" }),
|
|
4599
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-4/5" }),
|
|
4600
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-3/5" })
|
|
4674
4601
|
] })
|
|
4675
4602
|
] })
|
|
4676
4603
|
] }, i)) })
|
|
4677
4604
|
] })
|
|
4678
4605
|
] }),
|
|
4679
|
-
/* @__PURE__ */
|
|
4680
|
-
/* @__PURE__ */
|
|
4681
|
-
/* @__PURE__ */
|
|
4682
|
-
/* @__PURE__ */
|
|
4683
|
-
/* @__PURE__ */
|
|
4606
|
+
/* @__PURE__ */ jsx34("div", { className: "hidden lg:block w-[290px] flex-shrink-0", children: /* @__PURE__ */ jsxs26("div", { className: "space-y-4", children: [
|
|
4607
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
4608
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
|
|
4609
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
4610
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" })
|
|
4684
4611
|
] }),
|
|
4685
|
-
/* @__PURE__ */
|
|
4686
|
-
/* @__PURE__ */
|
|
4687
|
-
/* @__PURE__ */
|
|
4688
|
-
/* @__PURE__ */
|
|
4689
|
-
/* @__PURE__ */
|
|
4690
|
-
/* @__PURE__ */
|
|
4612
|
+
/* @__PURE__ */ jsxs26("div", { className: "border border-ods-border rounded-lg overflow-hidden", children: [
|
|
4613
|
+
/* @__PURE__ */ jsxs26("div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
|
|
4614
|
+
/* @__PURE__ */ jsx34("div", { className: "w-8 h-8 bg-[#2A2A2A] rounded animate-pulse" }),
|
|
4615
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-1", children: [
|
|
4616
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-20" }),
|
|
4617
|
+
/* @__PURE__ */ jsx34("div", { className: "h-6 bg-[#2A2A2A] rounded animate-pulse w-12" })
|
|
4691
4618
|
] })
|
|
4692
4619
|
] }),
|
|
4693
|
-
/* @__PURE__ */
|
|
4694
|
-
/* @__PURE__ */
|
|
4695
|
-
/* @__PURE__ */
|
|
4696
|
-
/* @__PURE__ */
|
|
4697
|
-
/* @__PURE__ */
|
|
4620
|
+
/* @__PURE__ */ jsx34("div", { className: "p-4 space-y-3", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-3", children: [
|
|
4621
|
+
/* @__PURE__ */ jsx34("div", { className: "w-6 h-6 bg-[#2A2A2A] rounded animate-pulse" }),
|
|
4622
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-end gap-1", children: [
|
|
4623
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded animate-pulse w-12" }),
|
|
4624
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded animate-pulse w-8" })
|
|
4698
4625
|
] })
|
|
4699
4626
|
] }, i)) })
|
|
4700
4627
|
] }),
|
|
4701
|
-
/* @__PURE__ */
|
|
4702
|
-
/* @__PURE__ */
|
|
4703
|
-
/* @__PURE__ */
|
|
4704
|
-
/* @__PURE__ */
|
|
4628
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-3", children: [
|
|
4629
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
4630
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
4631
|
+
/* @__PURE__ */ jsx34("div", { className: "h-12 bg-ods-card border border-ods-border rounded-lg animate-pulse" })
|
|
4705
4632
|
] })
|
|
4706
4633
|
] }) })
|
|
4707
4634
|
] })
|
|
@@ -4711,22 +4638,22 @@ function StatsSectionSkeleton({
|
|
|
4711
4638
|
className,
|
|
4712
4639
|
columns = 3
|
|
4713
4640
|
}) {
|
|
4714
|
-
return /* @__PURE__ */
|
|
4641
|
+
return /* @__PURE__ */ jsx34("div", { className: cn(
|
|
4715
4642
|
"grid gap-6 mb-12 md:mb-16",
|
|
4716
4643
|
columns === 3 && "grid-cols-1 md:grid-cols-3",
|
|
4717
4644
|
columns === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
4718
4645
|
className
|
|
4719
|
-
), children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */
|
|
4720
|
-
/* @__PURE__ */
|
|
4721
|
-
/* @__PURE__ */
|
|
4722
|
-
/* @__PURE__ */
|
|
4723
|
-
/* @__PURE__ */
|
|
4724
|
-
/* @__PURE__ */
|
|
4646
|
+
), children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ jsx34("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6", children: /* @__PURE__ */ jsxs26("div", { className: "space-y-4", children: [
|
|
4647
|
+
/* @__PURE__ */ jsx34(MediaSkeleton.Icon, { size: "lg" }),
|
|
4648
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
4649
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
|
|
4650
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "w-full" }),
|
|
4651
|
+
/* @__PURE__ */ jsx34(TextSkeleton.Body, { className: "w-3/4" })
|
|
4725
4652
|
] })
|
|
4726
4653
|
] }) }, i)) });
|
|
4727
4654
|
}
|
|
4728
4655
|
function BlogCardGridSkeleton({ className }) {
|
|
4729
|
-
return /* @__PURE__ */
|
|
4656
|
+
return /* @__PURE__ */ jsx34("div", { className: cn("space-y-6", className), children: /* @__PURE__ */ jsx34(
|
|
4730
4657
|
CardSkeletonGrid,
|
|
4731
4658
|
{
|
|
4732
4659
|
count: 4,
|
|
@@ -4736,7 +4663,7 @@ function BlogCardGridSkeleton({ className }) {
|
|
|
4736
4663
|
) });
|
|
4737
4664
|
}
|
|
4738
4665
|
function VendorGridSkeleton({ className }) {
|
|
4739
|
-
return /* @__PURE__ */
|
|
4666
|
+
return /* @__PURE__ */ jsx34("div", { className: cn("space-y-6", className), children: /* @__PURE__ */ jsx34(
|
|
4740
4667
|
CardSkeletonGrid,
|
|
4741
4668
|
{
|
|
4742
4669
|
count: 12,
|
|
@@ -4746,62 +4673,62 @@ function VendorGridSkeleton({ className }) {
|
|
|
4746
4673
|
) });
|
|
4747
4674
|
}
|
|
4748
4675
|
function SlackCommunitySkeleton() {
|
|
4749
|
-
return /* @__PURE__ */
|
|
4676
|
+
return /* @__PURE__ */ jsx34(
|
|
4750
4677
|
"section",
|
|
4751
4678
|
{
|
|
4752
4679
|
className: "w-full bg-ods-bg px-4 md:px-20 lg:px-20 py-12 md:py-20",
|
|
4753
4680
|
"aria-label": "Slack Community Loading",
|
|
4754
|
-
children: /* @__PURE__ */
|
|
4755
|
-
/* @__PURE__ */
|
|
4756
|
-
/* @__PURE__ */
|
|
4757
|
-
/* @__PURE__ */
|
|
4758
|
-
/* @__PURE__ */
|
|
4759
|
-
/* @__PURE__ */
|
|
4760
|
-
/* @__PURE__ */
|
|
4761
|
-
/* @__PURE__ */
|
|
4681
|
+
children: /* @__PURE__ */ jsxs26("div", { className: "w-full flex flex-col gap-4 md:gap-6", children: [
|
|
4682
|
+
/* @__PURE__ */ jsx34("div", { className: "w-full", children: /* @__PURE__ */ jsx34("div", { className: "h-8 md:h-12 lg:h-14 bg-[#2A2A2A] rounded-lg animate-pulse max-w-md" }) }),
|
|
4683
|
+
/* @__PURE__ */ jsxs26("div", { className: "w-full flex flex-col lg:flex-row lg:justify-end lg:items-start gap-4 md:gap-6 min-w-0", children: [
|
|
4684
|
+
/* @__PURE__ */ jsx34("div", { className: "w-full lg:w-[290px] lg:max-w-[290px] bg-ods-bg border border-ods-border rounded flex flex-col flex-shrink-0 overflow-hidden animate-pulse", children: /* @__PURE__ */ jsxs26("div", { className: "p-4 space-y-4", children: [
|
|
4685
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-2", children: [
|
|
4686
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-between", children: [
|
|
4687
|
+
/* @__PURE__ */ jsx34("div", { className: "h-4 bg-[#2A2A2A] rounded w-24" }),
|
|
4688
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-16" })
|
|
4762
4689
|
] }),
|
|
4763
|
-
/* @__PURE__ */
|
|
4690
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-32" })
|
|
4764
4691
|
] }),
|
|
4765
|
-
/* @__PURE__ */
|
|
4766
|
-
/* @__PURE__ */
|
|
4767
|
-
Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */
|
|
4768
|
-
/* @__PURE__ */
|
|
4769
|
-
/* @__PURE__ */
|
|
4770
|
-
/* @__PURE__ */
|
|
4771
|
-
/* @__PURE__ */
|
|
4692
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-1", children: [
|
|
4693
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-16 mb-2" }),
|
|
4694
|
+
Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2 px-2 py-3 min-h-[48px]", children: [
|
|
4695
|
+
/* @__PURE__ */ jsx34("div", { className: "w-4 h-4 bg-[#2A2A2A] rounded" }),
|
|
4696
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1", children: [
|
|
4697
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-24 mb-1" }),
|
|
4698
|
+
/* @__PURE__ */ jsx34("div", { className: "h-2 bg-[#2A2A2A] rounded w-16" })
|
|
4772
4699
|
] })
|
|
4773
4700
|
] }, i))
|
|
4774
4701
|
] }),
|
|
4775
|
-
/* @__PURE__ */
|
|
4776
|
-
/* @__PURE__ */
|
|
4777
|
-
/* @__PURE__ */
|
|
4778
|
-
/* @__PURE__ */
|
|
4702
|
+
/* @__PURE__ */ jsx34("div", { className: "border-t border-ods-border pt-3 mt-2", children: /* @__PURE__ */ jsxs26("div", { className: "space-y-2", children: [
|
|
4703
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex justify-between", children: [
|
|
4704
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-16" }),
|
|
4705
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-8" })
|
|
4779
4706
|
] }),
|
|
4780
|
-
/* @__PURE__ */
|
|
4781
|
-
/* @__PURE__ */
|
|
4782
|
-
/* @__PURE__ */
|
|
4707
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex justify-between", children: [
|
|
4708
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-20" }),
|
|
4709
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-8" })
|
|
4783
4710
|
] })
|
|
4784
4711
|
] }) })
|
|
4785
4712
|
] }) }),
|
|
4786
|
-
/* @__PURE__ */
|
|
4787
|
-
/* @__PURE__ */
|
|
4788
|
-
/* @__PURE__ */
|
|
4789
|
-
/* @__PURE__ */
|
|
4790
|
-
/* @__PURE__ */
|
|
4713
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 min-h-[450px] h-[450px] md:min-h-[500px] md:h-[500px] lg:min-h-[600px] lg:h-[600px] bg-ods-card border border-ods-border rounded-lg flex flex-col min-w-0 animate-pulse", children: [
|
|
4714
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center justify-between p-4 md:p-6 border-b border-ods-border bg-ods-bg h-[56px] md:h-[60px] flex-shrink-0", children: [
|
|
4715
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2", children: [
|
|
4716
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 md:h-4 bg-[#2A2A2A] rounded w-3 md:w-4" }),
|
|
4717
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 md:h-4 bg-[#2A2A2A] rounded w-24 md:w-32" })
|
|
4791
4718
|
] }),
|
|
4792
|
-
/* @__PURE__ */
|
|
4719
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-12 md:w-16" })
|
|
4793
4720
|
] }),
|
|
4794
|
-
/* @__PURE__ */
|
|
4795
|
-
/* @__PURE__ */
|
|
4796
|
-
/* @__PURE__ */
|
|
4797
|
-
/* @__PURE__ */
|
|
4798
|
-
/* @__PURE__ */
|
|
4799
|
-
/* @__PURE__ */
|
|
4721
|
+
/* @__PURE__ */ jsx34("div", { className: "flex-1 bg-ods-bg p-4 md:p-6 space-y-3 md:space-y-4 overflow-hidden min-h-[280px] md:min-h-[320px] lg:min-h-[420px]", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsxs26("div", { className: "flex gap-2 md:gap-3", children: [
|
|
4722
|
+
/* @__PURE__ */ jsx34("div", { className: "w-10 h-10 md:w-12 md:h-12 bg-[#2A2A2A] rounded-lg flex-shrink-0" }),
|
|
4723
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1", children: [
|
|
4724
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-2 mb-1", children: [
|
|
4725
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-16 md:w-20" }),
|
|
4726
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 bg-[#2A2A2A] rounded w-12 md:w-16" })
|
|
4800
4727
|
] }),
|
|
4801
|
-
/* @__PURE__ */
|
|
4728
|
+
/* @__PURE__ */ jsx34("div", { className: "h-3 md:h-4 bg-[#2A2A2A] rounded w-full" })
|
|
4802
4729
|
] })
|
|
4803
4730
|
] }, i)) }),
|
|
4804
|
-
/* @__PURE__ */
|
|
4731
|
+
/* @__PURE__ */ jsx34("div", { className: "p-4 md:p-6 border-t border-ods-border bg-ods-card h-[72px] md:h-[80px] flex-shrink-0", children: /* @__PURE__ */ jsx34("div", { className: "flex items-end gap-3 justify-center md:justify-end", children: /* @__PURE__ */ jsx34("div", { className: "h-10 md:h-12 bg-[#2A2A2A] rounded-lg w-28 md:w-32" }) }) })
|
|
4805
4732
|
] })
|
|
4806
4733
|
] })
|
|
4807
4734
|
] })
|
|
@@ -4811,13 +4738,13 @@ function SlackCommunitySkeleton() {
|
|
|
4811
4738
|
|
|
4812
4739
|
// src/components/loading/content-skeleton.tsx
|
|
4813
4740
|
init_cn();
|
|
4814
|
-
import { jsx as
|
|
4741
|
+
import { jsx as jsx35, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
4815
4742
|
function ParagraphSkeleton({
|
|
4816
4743
|
className,
|
|
4817
4744
|
lines = 4
|
|
4818
4745
|
}) {
|
|
4819
4746
|
const lineWidths = ["w-full", "w-full", "w-5/6", "w-3/4", "w-4/5", "w-2/3"];
|
|
4820
|
-
return /* @__PURE__ */
|
|
4747
|
+
return /* @__PURE__ */ jsx35("div", { className: cn("space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ jsx35(
|
|
4821
4748
|
TextSkeleton.Body,
|
|
4822
4749
|
{
|
|
4823
4750
|
className: lineWidths[index % lineWidths.length]
|
|
@@ -4831,14 +4758,14 @@ function ListSkeleton({
|
|
|
4831
4758
|
showIcons = false,
|
|
4832
4759
|
showActions = false
|
|
4833
4760
|
}) {
|
|
4834
|
-
return /* @__PURE__ */
|
|
4835
|
-
/* @__PURE__ */
|
|
4836
|
-
showIcons && /* @__PURE__ */
|
|
4837
|
-
/* @__PURE__ */
|
|
4761
|
+
return /* @__PURE__ */ jsx35("div", { className: cn("space-y-3", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs27("div", { className: "flex items-center justify-between", children: [
|
|
4762
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-3", children: [
|
|
4763
|
+
showIcons && /* @__PURE__ */ jsx35(MediaSkeleton.Icon, { size: "sm" }),
|
|
4764
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-32 md:w-48" })
|
|
4838
4765
|
] }),
|
|
4839
|
-
showActions && /* @__PURE__ */
|
|
4840
|
-
/* @__PURE__ */
|
|
4841
|
-
/* @__PURE__ */
|
|
4766
|
+
showActions && /* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-2", children: [
|
|
4767
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-8" }),
|
|
4768
|
+
/* @__PURE__ */ jsx35(UnifiedSkeleton, { variant: "default", className: "w-4 h-4" })
|
|
4842
4769
|
] })
|
|
4843
4770
|
] }, index)) });
|
|
4844
4771
|
}
|
|
@@ -4847,14 +4774,14 @@ function TableSkeleton({
|
|
|
4847
4774
|
rows = 5,
|
|
4848
4775
|
columns = 4
|
|
4849
4776
|
}) {
|
|
4850
|
-
return /* @__PURE__ */
|
|
4851
|
-
/* @__PURE__ */
|
|
4852
|
-
/* @__PURE__ */
|
|
4777
|
+
return /* @__PURE__ */ jsxs27("div", { className: cn("space-y-4", className), children: [
|
|
4778
|
+
/* @__PURE__ */ jsx35("div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx35(TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
|
|
4779
|
+
/* @__PURE__ */ jsx35("div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ jsx35(
|
|
4853
4780
|
"div",
|
|
4854
4781
|
{
|
|
4855
4782
|
className: "grid gap-4 py-2 border-b border-ods-divider",
|
|
4856
4783
|
style: { gridTemplateColumns: `repeat(${columns}, 1fr)` },
|
|
4857
|
-
children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */
|
|
4784
|
+
children: Array.from({ length: columns }).map((_2, colIndex) => /* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-2/3" }, colIndex))
|
|
4858
4785
|
},
|
|
4859
4786
|
rowIndex
|
|
4860
4787
|
)) })
|
|
@@ -4864,15 +4791,15 @@ function FormSkeleton({
|
|
|
4864
4791
|
className,
|
|
4865
4792
|
fields = 4
|
|
4866
4793
|
}) {
|
|
4867
|
-
return /* @__PURE__ */
|
|
4868
|
-
Array.from({ length: fields }).map((_, index) => /* @__PURE__ */
|
|
4869
|
-
/* @__PURE__ */
|
|
4870
|
-
/* @__PURE__ */
|
|
4871
|
-
index % 3 === 0 && /* @__PURE__ */
|
|
4794
|
+
return /* @__PURE__ */ jsxs27("div", { className: cn("space-y-6", className), children: [
|
|
4795
|
+
Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
|
|
4796
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-24" }),
|
|
4797
|
+
/* @__PURE__ */ jsx35(InteractiveSkeleton.Input, {}),
|
|
4798
|
+
index % 3 === 0 && /* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-48" })
|
|
4872
4799
|
] }, index)),
|
|
4873
|
-
/* @__PURE__ */
|
|
4874
|
-
/* @__PURE__ */
|
|
4875
|
-
/* @__PURE__ */
|
|
4800
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex gap-4 pt-4", children: [
|
|
4801
|
+
/* @__PURE__ */ jsx35(InteractiveSkeleton.Button, {}),
|
|
4802
|
+
/* @__PURE__ */ jsx35(InteractiveSkeleton.Button, { className: "bg-ods-border" })
|
|
4876
4803
|
] })
|
|
4877
4804
|
] });
|
|
4878
4805
|
}
|
|
@@ -4881,7 +4808,7 @@ function NavigationSkeleton({
|
|
|
4881
4808
|
items = 6,
|
|
4882
4809
|
horizontal = true
|
|
4883
4810
|
}) {
|
|
4884
|
-
return /* @__PURE__ */
|
|
4811
|
+
return /* @__PURE__ */ jsx35(
|
|
4885
4812
|
"nav",
|
|
4886
4813
|
{
|
|
4887
4814
|
className: cn(
|
|
@@ -4891,7 +4818,7 @@ function NavigationSkeleton({
|
|
|
4891
4818
|
),
|
|
4892
4819
|
role: "status",
|
|
4893
4820
|
"aria-label": "Loading navigation",
|
|
4894
|
-
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */
|
|
4821
|
+
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-16 md:w-20" }, index))
|
|
4895
4822
|
}
|
|
4896
4823
|
);
|
|
4897
4824
|
}
|
|
@@ -4900,32 +4827,32 @@ function ProfileSkeleton({
|
|
|
4900
4827
|
showBio = true,
|
|
4901
4828
|
showStats = true
|
|
4902
4829
|
}) {
|
|
4903
|
-
return /* @__PURE__ */
|
|
4904
|
-
/* @__PURE__ */
|
|
4905
|
-
/* @__PURE__ */
|
|
4906
|
-
/* @__PURE__ */
|
|
4907
|
-
/* @__PURE__ */
|
|
4908
|
-
/* @__PURE__ */
|
|
4909
|
-
/* @__PURE__ */
|
|
4830
|
+
return /* @__PURE__ */ jsxs27("div", { className: cn("space-y-4", className), children: [
|
|
4831
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex items-start gap-4", children: [
|
|
4832
|
+
/* @__PURE__ */ jsx35(MediaSkeleton.Avatar, { size: "lg" }),
|
|
4833
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex-1 space-y-2", children: [
|
|
4834
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
4835
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-1/3" }),
|
|
4836
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-2/3" })
|
|
4910
4837
|
] })
|
|
4911
4838
|
] }),
|
|
4912
|
-
showBio && /* @__PURE__ */
|
|
4913
|
-
/* @__PURE__ */
|
|
4914
|
-
/* @__PURE__ */
|
|
4915
|
-
/* @__PURE__ */
|
|
4839
|
+
showBio && /* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
|
|
4840
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-full" }),
|
|
4841
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-4/5" }),
|
|
4842
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-3/4" })
|
|
4916
4843
|
] }),
|
|
4917
|
-
showStats && /* @__PURE__ */
|
|
4918
|
-
/* @__PURE__ */
|
|
4919
|
-
/* @__PURE__ */
|
|
4920
|
-
/* @__PURE__ */
|
|
4844
|
+
showStats && /* @__PURE__ */ jsxs27("div", { className: "flex gap-6", children: [
|
|
4845
|
+
/* @__PURE__ */ jsxs27("div", { className: "text-center", children: [
|
|
4846
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
4847
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-12 mx-auto" })
|
|
4921
4848
|
] }),
|
|
4922
|
-
/* @__PURE__ */
|
|
4923
|
-
/* @__PURE__ */
|
|
4924
|
-
/* @__PURE__ */
|
|
4849
|
+
/* @__PURE__ */ jsxs27("div", { className: "text-center", children: [
|
|
4850
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
4851
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-16 mx-auto" })
|
|
4925
4852
|
] }),
|
|
4926
|
-
/* @__PURE__ */
|
|
4927
|
-
/* @__PURE__ */
|
|
4928
|
-
/* @__PURE__ */
|
|
4853
|
+
/* @__PURE__ */ jsxs27("div", { className: "text-center", children: [
|
|
4854
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Subheading, { className: "w-8 mx-auto" }),
|
|
4855
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-14 mx-auto" })
|
|
4929
4856
|
] })
|
|
4930
4857
|
] })
|
|
4931
4858
|
] });
|
|
@@ -4935,34 +4862,34 @@ function CommentSkeleton({
|
|
|
4935
4862
|
showRating = false,
|
|
4936
4863
|
showReplies = false
|
|
4937
4864
|
}) {
|
|
4938
|
-
return /* @__PURE__ */
|
|
4939
|
-
/* @__PURE__ */
|
|
4940
|
-
/* @__PURE__ */
|
|
4941
|
-
/* @__PURE__ */
|
|
4942
|
-
/* @__PURE__ */
|
|
4943
|
-
/* @__PURE__ */
|
|
4944
|
-
showRating && /* @__PURE__ */
|
|
4865
|
+
return /* @__PURE__ */ jsxs27("div", { className: cn("space-y-3", className), children: [
|
|
4866
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-3", children: [
|
|
4867
|
+
/* @__PURE__ */ jsx35(MediaSkeleton.Avatar, { size: "sm" }),
|
|
4868
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex-1 flex items-center gap-4", children: [
|
|
4869
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-24" }),
|
|
4870
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-16" }),
|
|
4871
|
+
showRating && /* @__PURE__ */ jsx35("div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsx35(MediaSkeleton.Icon, { size: "sm" }, i)) })
|
|
4945
4872
|
] })
|
|
4946
4873
|
] }),
|
|
4947
|
-
/* @__PURE__ */
|
|
4948
|
-
/* @__PURE__ */
|
|
4949
|
-
/* @__PURE__ */
|
|
4950
|
-
/* @__PURE__ */
|
|
4874
|
+
/* @__PURE__ */ jsxs27("div", { className: "ml-11 space-y-2", children: [
|
|
4875
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-full" }),
|
|
4876
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-3/4" }),
|
|
4877
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-1/2" })
|
|
4951
4878
|
] }),
|
|
4952
|
-
/* @__PURE__ */
|
|
4953
|
-
/* @__PURE__ */
|
|
4954
|
-
/* @__PURE__ */
|
|
4955
|
-
/* @__PURE__ */
|
|
4879
|
+
/* @__PURE__ */ jsxs27("div", { className: "ml-11 flex gap-4", children: [
|
|
4880
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-12" }),
|
|
4881
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-16" }),
|
|
4882
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-8" })
|
|
4956
4883
|
] }),
|
|
4957
|
-
showReplies && /* @__PURE__ */
|
|
4958
|
-
/* @__PURE__ */
|
|
4959
|
-
/* @__PURE__ */
|
|
4960
|
-
/* @__PURE__ */
|
|
4961
|
-
/* @__PURE__ */
|
|
4884
|
+
showReplies && /* @__PURE__ */ jsx35("div", { className: "ml-11 pl-4 border-l border-ods-divider space-y-4", children: Array.from({ length: 2 }).map((_, index) => /* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
|
|
4885
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-3", children: [
|
|
4886
|
+
/* @__PURE__ */ jsx35(MediaSkeleton.Avatar, { size: "sm" }),
|
|
4887
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-20" }),
|
|
4888
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-12" })
|
|
4962
4889
|
] }),
|
|
4963
|
-
/* @__PURE__ */
|
|
4964
|
-
/* @__PURE__ */
|
|
4965
|
-
/* @__PURE__ */
|
|
4890
|
+
/* @__PURE__ */ jsxs27("div", { className: "ml-11", children: [
|
|
4891
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-full" }),
|
|
4892
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-2/3" })
|
|
4966
4893
|
] })
|
|
4967
4894
|
] }, index)) })
|
|
4968
4895
|
] });
|
|
@@ -4974,35 +4901,35 @@ function FeatureListSkeleton({
|
|
|
4974
4901
|
grouped = false
|
|
4975
4902
|
}) {
|
|
4976
4903
|
if (grouped) {
|
|
4977
|
-
return /* @__PURE__ */
|
|
4978
|
-
/* @__PURE__ */
|
|
4979
|
-
/* @__PURE__ */
|
|
4980
|
-
showIcons && /* @__PURE__ */
|
|
4981
|
-
/* @__PURE__ */
|
|
4904
|
+
return /* @__PURE__ */ jsx35("div", { className: cn("space-y-6", className), children: Array.from({ length: 3 }).map((_, groupIndex) => /* @__PURE__ */ jsxs27("div", { className: "space-y-3", children: [
|
|
4905
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
4906
|
+
/* @__PURE__ */ jsx35("div", { className: "space-y-2", children: Array.from({ length: features / 3 }).map((_2, featureIndex) => /* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-3", children: [
|
|
4907
|
+
showIcons && /* @__PURE__ */ jsx35(MediaSkeleton.Icon, { size: "sm" }),
|
|
4908
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-2/3" })
|
|
4982
4909
|
] }, featureIndex)) })
|
|
4983
4910
|
] }, groupIndex)) });
|
|
4984
4911
|
}
|
|
4985
|
-
return /* @__PURE__ */
|
|
4986
|
-
showIcons && /* @__PURE__ */
|
|
4987
|
-
/* @__PURE__ */
|
|
4912
|
+
return /* @__PURE__ */ jsx35("div", { className: cn("space-y-3", className), children: Array.from({ length: features }).map((_, index) => /* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-3", children: [
|
|
4913
|
+
showIcons && /* @__PURE__ */ jsx35(MediaSkeleton.Icon, { size: "sm" }),
|
|
4914
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-2/3" })
|
|
4988
4915
|
] }, index)) });
|
|
4989
4916
|
}
|
|
4990
4917
|
function TimelineSkeleton({
|
|
4991
4918
|
className,
|
|
4992
4919
|
items = 5
|
|
4993
4920
|
}) {
|
|
4994
|
-
return /* @__PURE__ */
|
|
4995
|
-
/* @__PURE__ */
|
|
4996
|
-
/* @__PURE__ */
|
|
4997
|
-
index < items - 1 && /* @__PURE__ */
|
|
4921
|
+
return /* @__PURE__ */ jsx35("div", { className: cn("space-y-6", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ jsxs27("div", { className: "flex gap-4", children: [
|
|
4922
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex flex-col items-center", children: [
|
|
4923
|
+
/* @__PURE__ */ jsx35(MediaSkeleton.Icon, { size: "sm" }),
|
|
4924
|
+
index < items - 1 && /* @__PURE__ */ jsx35("div", { className: "w-px h-12 bg-ods-border mt-2" })
|
|
4998
4925
|
] }),
|
|
4999
|
-
/* @__PURE__ */
|
|
5000
|
-
/* @__PURE__ */
|
|
5001
|
-
/* @__PURE__ */
|
|
5002
|
-
/* @__PURE__ */
|
|
4926
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex-1 space-y-2", children: [
|
|
4927
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-3", children: [
|
|
4928
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-1/3" }),
|
|
4929
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-16" })
|
|
5003
4930
|
] }),
|
|
5004
|
-
/* @__PURE__ */
|
|
5005
|
-
/* @__PURE__ */
|
|
4931
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-full" }),
|
|
4932
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-3/4" })
|
|
5006
4933
|
] })
|
|
5007
4934
|
] }, index)) });
|
|
5008
4935
|
}
|
|
@@ -5010,54 +4937,54 @@ function PricingSkeleton({
|
|
|
5010
4937
|
className,
|
|
5011
4938
|
plans = 3
|
|
5012
4939
|
}) {
|
|
5013
|
-
return /* @__PURE__ */
|
|
4940
|
+
return /* @__PURE__ */ jsx35("div", { className: cn(
|
|
5014
4941
|
"grid gap-6",
|
|
5015
4942
|
plans === 2 && "grid-cols-1 md:grid-cols-2",
|
|
5016
4943
|
plans === 3 && "grid-cols-1 md:grid-cols-3",
|
|
5017
4944
|
plans === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
5018
4945
|
className
|
|
5019
|
-
), children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */
|
|
5020
|
-
/* @__PURE__ */
|
|
5021
|
-
/* @__PURE__ */
|
|
5022
|
-
/* @__PURE__ */
|
|
5023
|
-
/* @__PURE__ */
|
|
4946
|
+
), children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */ jsx35("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6", children: /* @__PURE__ */ jsxs27("div", { className: "space-y-4", children: [
|
|
4947
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
4948
|
+
/* @__PURE__ */ jsxs27("div", { className: "space-y-1", children: [
|
|
4949
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Heading, { className: "w-1/3" }),
|
|
4950
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Caption, { className: "w-1/4" })
|
|
5024
4951
|
] }),
|
|
5025
|
-
/* @__PURE__ */
|
|
5026
|
-
/* @__PURE__ */
|
|
5027
|
-
/* @__PURE__ */
|
|
4952
|
+
/* @__PURE__ */ jsx35("div", { className: "space-y-3 py-4", children: Array.from({ length: 5 }).map((_2, featureIndex) => /* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-2", children: [
|
|
4953
|
+
/* @__PURE__ */ jsx35(MediaSkeleton.Icon, { size: "sm" }),
|
|
4954
|
+
/* @__PURE__ */ jsx35(TextSkeleton.Body, { className: "w-3/4" })
|
|
5028
4955
|
] }, featureIndex)) }),
|
|
5029
|
-
/* @__PURE__ */
|
|
4956
|
+
/* @__PURE__ */ jsx35(InteractiveSkeleton.Button, { className: "w-full" })
|
|
5030
4957
|
] }) }, index)) });
|
|
5031
4958
|
}
|
|
5032
4959
|
|
|
5033
4960
|
// src/components/profile/ProfileLoadingSkeleton.tsx
|
|
5034
4961
|
init_cn();
|
|
5035
|
-
import { jsx as
|
|
4962
|
+
import { jsx as jsx36, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
5036
4963
|
function ProfileLoadingSkeleton({ className }) {
|
|
5037
|
-
return /* @__PURE__ */
|
|
5038
|
-
/* @__PURE__ */
|
|
5039
|
-
/* @__PURE__ */
|
|
5040
|
-
/* @__PURE__ */
|
|
5041
|
-
/* @__PURE__ */
|
|
5042
|
-
/* @__PURE__ */
|
|
4964
|
+
return /* @__PURE__ */ jsxs28("div", { className: cn("space-y-6", className), children: [
|
|
4965
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex items-center space-x-4", children: [
|
|
4966
|
+
/* @__PURE__ */ jsx36("div", { className: "h-16 w-16 bg-gray-200 rounded-full animate-pulse" }),
|
|
4967
|
+
/* @__PURE__ */ jsxs28("div", { className: "space-y-2", children: [
|
|
4968
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-32 bg-gray-200 rounded animate-pulse" }),
|
|
4969
|
+
/* @__PURE__ */ jsx36("div", { className: "h-3 w-24 bg-gray-200 rounded animate-pulse" })
|
|
5043
4970
|
] })
|
|
5044
4971
|
] }),
|
|
5045
|
-
/* @__PURE__ */
|
|
5046
|
-
/* @__PURE__ */
|
|
5047
|
-
/* @__PURE__ */
|
|
5048
|
-
/* @__PURE__ */
|
|
4972
|
+
/* @__PURE__ */ jsxs28("div", { className: "space-y-4", children: [
|
|
4973
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-full bg-gray-200 rounded animate-pulse" }),
|
|
4974
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-3/4 bg-gray-200 rounded animate-pulse" }),
|
|
4975
|
+
/* @__PURE__ */ jsx36("div", { className: "h-4 w-1/2 bg-gray-200 rounded animate-pulse" })
|
|
5049
4976
|
] })
|
|
5050
4977
|
] });
|
|
5051
4978
|
}
|
|
5052
4979
|
|
|
5053
4980
|
// src/components/loading/msp-profile-form-skeleton.tsx
|
|
5054
4981
|
init_cn();
|
|
5055
|
-
import { jsx as
|
|
4982
|
+
import { jsx as jsx37, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
5056
4983
|
function MspProfileFormSkeleton({
|
|
5057
4984
|
className,
|
|
5058
4985
|
fields = 4
|
|
5059
4986
|
}) {
|
|
5060
|
-
return /* @__PURE__ */
|
|
4987
|
+
return /* @__PURE__ */ jsxs29(
|
|
5061
4988
|
"div",
|
|
5062
4989
|
{
|
|
5063
4990
|
className: cn(
|
|
@@ -5067,13 +4994,13 @@ function MspProfileFormSkeleton({
|
|
|
5067
4994
|
role: "status",
|
|
5068
4995
|
"aria-label": "Loading MSP profile form",
|
|
5069
4996
|
children: [
|
|
5070
|
-
/* @__PURE__ */
|
|
5071
|
-
/* @__PURE__ */
|
|
5072
|
-
/* @__PURE__ */
|
|
4997
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex flex-col space-y-2 h-full", children: [
|
|
4998
|
+
/* @__PURE__ */ jsx37(TextSkeleton.Body, { className: "w-28" }),
|
|
4999
|
+
/* @__PURE__ */ jsx37("div", { className: "flex-1 min-h-[180px] md:min-h-full", children: /* @__PURE__ */ jsx37(UnifiedSkeleton, { className: "w-full h-full rounded-lg", "aria-label": "Loading company logo" }) })
|
|
5073
5000
|
] }),
|
|
5074
|
-
/* @__PURE__ */
|
|
5075
|
-
/* @__PURE__ */
|
|
5076
|
-
/* @__PURE__ */
|
|
5001
|
+
/* @__PURE__ */ jsx37("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: Array.from({ length: fields }).map((_, idx) => /* @__PURE__ */ jsxs29("div", { className: "space-y-2 flex flex-col", children: [
|
|
5002
|
+
/* @__PURE__ */ jsx37(TextSkeleton.Body, { className: "w-40" }),
|
|
5003
|
+
/* @__PURE__ */ jsx37(InteractiveSkeleton.Input, {})
|
|
5077
5004
|
] }, idx)) })
|
|
5078
5005
|
]
|
|
5079
5006
|
}
|
|
@@ -5082,9 +5009,9 @@ function MspProfileFormSkeleton({
|
|
|
5082
5009
|
|
|
5083
5010
|
// src/components/loading/category-card-skeleton.tsx
|
|
5084
5011
|
init_cn();
|
|
5085
|
-
import { jsx as
|
|
5012
|
+
import { jsx as jsx38, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
5086
5013
|
function CategoryCardSkeleton({ className }) {
|
|
5087
|
-
return /* @__PURE__ */
|
|
5014
|
+
return /* @__PURE__ */ jsxs30(
|
|
5088
5015
|
"article",
|
|
5089
5016
|
{
|
|
5090
5017
|
className: cn(
|
|
@@ -5094,7 +5021,7 @@ function CategoryCardSkeleton({ className }) {
|
|
|
5094
5021
|
role: "status",
|
|
5095
5022
|
"aria-label": "Loading category card",
|
|
5096
5023
|
children: [
|
|
5097
|
-
/* @__PURE__ */
|
|
5024
|
+
/* @__PURE__ */ jsx38("div", { className: "flex gap-6 mb-8 justify-center items-center", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ jsx38(
|
|
5098
5025
|
UnifiedSkeleton,
|
|
5099
5026
|
{
|
|
5100
5027
|
variant: "circular",
|
|
@@ -5103,12 +5030,12 @@ function CategoryCardSkeleton({ className }) {
|
|
|
5103
5030
|
},
|
|
5104
5031
|
i
|
|
5105
5032
|
)) }),
|
|
5106
|
-
/* @__PURE__ */
|
|
5107
|
-
/* @__PURE__ */
|
|
5108
|
-
/* @__PURE__ */
|
|
5109
|
-
/* @__PURE__ */
|
|
5033
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex-1 flex flex-col space-y-3", children: [
|
|
5034
|
+
/* @__PURE__ */ jsx38(TextSkeleton.Heading, { className: "w-3/4" }),
|
|
5035
|
+
/* @__PURE__ */ jsx38(TextSkeleton.Body, { className: "w-1/2" }),
|
|
5036
|
+
/* @__PURE__ */ jsx38(TextSkeleton.Body, { className: "w-full" })
|
|
5110
5037
|
] }),
|
|
5111
|
-
/* @__PURE__ */
|
|
5038
|
+
/* @__PURE__ */ jsx38("div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ jsx38(UnifiedSkeleton, { className: "w-12 h-12 rounded-[6px]", "aria-label": "Loading button" }) })
|
|
5112
5039
|
]
|
|
5113
5040
|
}
|
|
5114
5041
|
);
|
|
@@ -5116,22 +5043,22 @@ function CategoryCardSkeleton({ className }) {
|
|
|
5116
5043
|
|
|
5117
5044
|
// src/components/loading/category-vendor-selector-skeleton.tsx
|
|
5118
5045
|
init_cn();
|
|
5119
|
-
import { jsx as
|
|
5046
|
+
import { jsx as jsx39, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
5120
5047
|
function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
5121
|
-
return /* @__PURE__ */
|
|
5048
|
+
return /* @__PURE__ */ jsxs31(
|
|
5122
5049
|
"div",
|
|
5123
5050
|
{
|
|
5124
5051
|
className: cn("bg-ods-card border border-ods-border rounded-lg p-6", className),
|
|
5125
5052
|
role: "status",
|
|
5126
5053
|
"aria-label": "Loading category section",
|
|
5127
5054
|
children: [
|
|
5128
|
-
/* @__PURE__ */
|
|
5129
|
-
/* @__PURE__ */
|
|
5130
|
-
/* @__PURE__ */
|
|
5055
|
+
/* @__PURE__ */ jsxs31("div", { className: "mb-6 space-y-2 max-w-xl", children: [
|
|
5056
|
+
/* @__PURE__ */ jsx39(TextSkeleton.Heading, { className: "w-1/2" }),
|
|
5057
|
+
/* @__PURE__ */ jsx39(TextSkeleton.Body, { className: "w-3/4" })
|
|
5131
5058
|
] }),
|
|
5132
|
-
/* @__PURE__ */
|
|
5133
|
-
/* @__PURE__ */
|
|
5134
|
-
/* @__PURE__ */
|
|
5059
|
+
/* @__PURE__ */ jsx39("div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ jsxs31("div", { className: "space-y-2", children: [
|
|
5060
|
+
/* @__PURE__ */ jsx39(TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
5061
|
+
/* @__PURE__ */ jsx39("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-4", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ jsx39(UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
|
|
5135
5062
|
] }, idx)) })
|
|
5136
5063
|
]
|
|
5137
5064
|
}
|
|
@@ -5140,90 +5067,90 @@ function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
|
5140
5067
|
|
|
5141
5068
|
// src/components/loading/wizard-layout-skeleton.tsx
|
|
5142
5069
|
init_cn();
|
|
5143
|
-
import { jsx as
|
|
5070
|
+
import { jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
5144
5071
|
function WizardLayoutSkeleton({ steps = 6, className }) {
|
|
5145
|
-
return /* @__PURE__ */
|
|
5146
|
-
/* @__PURE__ */
|
|
5147
|
-
/* @__PURE__ */
|
|
5148
|
-
/* @__PURE__ */
|
|
5149
|
-
/* @__PURE__ */
|
|
5072
|
+
return /* @__PURE__ */ jsxs32("div", { className: cn("space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
|
|
5073
|
+
/* @__PURE__ */ jsx40("div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ jsx40(UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
|
|
5074
|
+
/* @__PURE__ */ jsxs32("div", { className: "space-y-2 max-w-2xl", children: [
|
|
5075
|
+
/* @__PURE__ */ jsx40(TextSkeleton.Heading, { className: "w-2/3" }),
|
|
5076
|
+
/* @__PURE__ */ jsx40(TextSkeleton.Body, { className: "w-1/2" })
|
|
5150
5077
|
] }),
|
|
5151
|
-
/* @__PURE__ */
|
|
5152
|
-
/* @__PURE__ */
|
|
5153
|
-
/* @__PURE__ */
|
|
5078
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex justify-between mt-10", children: [
|
|
5079
|
+
/* @__PURE__ */ jsx40(UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
|
|
5080
|
+
/* @__PURE__ */ jsx40(UnifiedSkeleton, { className: "h-10 w-32 rounded" })
|
|
5154
5081
|
] })
|
|
5155
5082
|
] });
|
|
5156
5083
|
}
|
|
5157
5084
|
|
|
5158
5085
|
// src/components/loading/margin-report-skeleton.tsx
|
|
5159
|
-
import { jsx as
|
|
5086
|
+
import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
5160
5087
|
function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
5161
|
-
return /* @__PURE__ */
|
|
5162
|
-
/* @__PURE__ */
|
|
5163
|
-
/* @__PURE__ */
|
|
5164
|
-
/* @__PURE__ */
|
|
5165
|
-
/* @__PURE__ */
|
|
5088
|
+
return /* @__PURE__ */ jsxs33("main", { className: `bg-ods-bg ${animate ? "animate-pulse" : ""} relative min-h-screen`, children: [
|
|
5089
|
+
/* @__PURE__ */ jsxs33("div", { className: "max-w-[1920px] px-6 md:px-20 py-6 md:py-10 mx-auto space-y-10", children: [
|
|
5090
|
+
/* @__PURE__ */ jsxs33("div", { className: "space-y-3", children: [
|
|
5091
|
+
/* @__PURE__ */ jsx41("div", { className: "h-10 w-72 bg-[#2A2A2A] rounded" }),
|
|
5092
|
+
/* @__PURE__ */ jsx41("div", { className: "h-4 w-80 bg-[#2A2A2A] rounded" })
|
|
5166
5093
|
] }),
|
|
5167
|
-
/* @__PURE__ */
|
|
5168
|
-
/* @__PURE__ */
|
|
5169
|
-
/* @__PURE__ */
|
|
5170
|
-
/* @__PURE__ */
|
|
5171
|
-
/* @__PURE__ */
|
|
5172
|
-
/* @__PURE__ */
|
|
5173
|
-
/* @__PURE__ */
|
|
5094
|
+
/* @__PURE__ */ jsx41("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx41("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) }),
|
|
5095
|
+
/* @__PURE__ */ jsxs33("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [
|
|
5096
|
+
/* @__PURE__ */ jsxs33("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex items-center gap-4 animate-pulse", children: [
|
|
5097
|
+
/* @__PURE__ */ jsx41("div", { className: "w-14 h-14 rounded-lg bg-[#2A2A2A]" }),
|
|
5098
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex-1 space-y-2", children: [
|
|
5099
|
+
/* @__PURE__ */ jsx41("div", { className: "h-4 bg-[#2A2A2A] rounded w-3/4" }),
|
|
5100
|
+
/* @__PURE__ */ jsx41("div", { className: "h-3 bg-[#2A2A2A] rounded w-1/2" })
|
|
5174
5101
|
] })
|
|
5175
5102
|
] }),
|
|
5176
|
-
/* @__PURE__ */
|
|
5177
|
-
/* @__PURE__ */
|
|
5178
|
-
/* @__PURE__ */
|
|
5179
|
-
/* @__PURE__ */
|
|
5180
|
-
/* @__PURE__ */
|
|
5181
|
-
/* @__PURE__ */
|
|
5182
|
-
/* @__PURE__ */
|
|
5103
|
+
/* @__PURE__ */ jsxs33("div", { className: "bg-ods-card border border-ods-border rounded-lg p-6 flex flex-col gap-4 animate-pulse", children: [
|
|
5104
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center justify-between gap-4", children: [
|
|
5105
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
5106
|
+
/* @__PURE__ */ jsx41("div", { className: "w-10 h-10 rounded-lg bg-[#2A2A2A]" }),
|
|
5107
|
+
/* @__PURE__ */ jsxs33("div", { className: "space-y-1", children: [
|
|
5108
|
+
/* @__PURE__ */ jsx41("div", { className: "h-4 w-32 bg-[#2A2A2A] rounded" }),
|
|
5109
|
+
/* @__PURE__ */ jsx41("div", { className: "h-3 w-20 bg-[#2A2A2A] rounded" })
|
|
5183
5110
|
] })
|
|
5184
5111
|
] }),
|
|
5185
|
-
/* @__PURE__ */
|
|
5112
|
+
/* @__PURE__ */ jsx41("div", { className: "h-6 w-36 bg-[#2A2A2A] rounded" })
|
|
5186
5113
|
] }),
|
|
5187
|
-
/* @__PURE__ */
|
|
5114
|
+
/* @__PURE__ */ jsx41("div", { className: "h-4 w-40 bg-[#2A2A2A] rounded mt-4" })
|
|
5188
5115
|
] })
|
|
5189
5116
|
] }),
|
|
5190
|
-
/* @__PURE__ */
|
|
5191
|
-
/* @__PURE__ */
|
|
5192
|
-
/* @__PURE__ */
|
|
5193
|
-
/* @__PURE__ */
|
|
5194
|
-
/* @__PURE__ */
|
|
5195
|
-
/* @__PURE__ */
|
|
5117
|
+
/* @__PURE__ */ jsx41("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: ["Commercial Stack", "Open-Source Stack"].map((label, idx) => /* @__PURE__ */ jsxs33("div", { className: "bg-ods-card border border-ods-border rounded-lg overflow-hidden flex flex-col animate-pulse", children: [
|
|
5118
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center justify-between px-6 py-4", children: [
|
|
5119
|
+
/* @__PURE__ */ jsx41("div", { className: "h-6 w-40 bg-[#2A2A2A] rounded" }),
|
|
5120
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
5121
|
+
/* @__PURE__ */ jsx41("div", { className: "h-5 w-20 bg-[#2A2A2A] rounded" }),
|
|
5122
|
+
/* @__PURE__ */ jsx41("div", { className: "h-4 w-10 bg-[#2A2A2A] rounded" })
|
|
5196
5123
|
] })
|
|
5197
5124
|
] }),
|
|
5198
|
-
/* @__PURE__ */
|
|
5199
|
-
/* @__PURE__ */
|
|
5200
|
-
/* @__PURE__ */
|
|
5201
|
-
/* @__PURE__ */
|
|
5202
|
-
/* @__PURE__ */
|
|
5203
|
-
/* @__PURE__ */
|
|
5125
|
+
/* @__PURE__ */ jsx41("div", { className: "flex-1 flex flex-col gap-3 p-3", children: Array.from({ length: 5 }).map((_, j) => /* @__PURE__ */ jsxs33("div", { className: "bg-ods-bg border border-ods-border rounded-lg px-4 py-3 flex items-center justify-between", children: [
|
|
5126
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
5127
|
+
/* @__PURE__ */ jsx41("div", { className: "w-12 h-12 bg-[#2A2A2A] rounded-lg flex-shrink-0" }),
|
|
5128
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex flex-col min-w-0", children: [
|
|
5129
|
+
/* @__PURE__ */ jsx41("div", { className: "h-4 w-32 bg-[#2A2A2A] rounded" }),
|
|
5130
|
+
/* @__PURE__ */ jsx41("div", { className: "hidden md:block h-3 w-24 bg-[#2A2A2A] rounded mt-1" })
|
|
5204
5131
|
] })
|
|
5205
5132
|
] }),
|
|
5206
|
-
/* @__PURE__ */
|
|
5207
|
-
/* @__PURE__ */
|
|
5208
|
-
/* @__PURE__ */
|
|
5133
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
5134
|
+
/* @__PURE__ */ jsx41("div", { className: "h-4 w-16 bg-[#2A2A2A] rounded" }),
|
|
5135
|
+
/* @__PURE__ */ jsx41("div", { className: "h-3 w-8 bg-[#2A2A2A] rounded" })
|
|
5209
5136
|
] })
|
|
5210
5137
|
] }, j)) })
|
|
5211
5138
|
] }, idx)) }),
|
|
5212
|
-
/* @__PURE__ */
|
|
5213
|
-
/* @__PURE__ */
|
|
5214
|
-
/* @__PURE__ */
|
|
5215
|
-
/* @__PURE__ */
|
|
5216
|
-
/* @__PURE__ */
|
|
5217
|
-
/* @__PURE__ */
|
|
5218
|
-
/* @__PURE__ */
|
|
5139
|
+
/* @__PURE__ */ jsx41("div", { className: "h-6 w-60 bg-[#2A2A2A] rounded" }),
|
|
5140
|
+
/* @__PURE__ */ jsx41("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx41("div", { className: "h-48 bg-ods-card border border-ods-border rounded" }, i)) }),
|
|
5141
|
+
/* @__PURE__ */ jsxs33("div", { className: "border border-ods-border rounded-3xl p-8 space-y-6", children: [
|
|
5142
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-start gap-6", children: [
|
|
5143
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex-1 space-y-2 min-w-0", children: [
|
|
5144
|
+
/* @__PURE__ */ jsx41("div", { className: "h-8 w-72 bg-[#2A2A2A] rounded" }),
|
|
5145
|
+
/* @__PURE__ */ jsx41("div", { className: "h-4 w-3/4 bg-[#2A2A2A] rounded" })
|
|
5219
5146
|
] }),
|
|
5220
|
-
/* @__PURE__ */
|
|
5147
|
+
/* @__PURE__ */ jsx41("div", { className: "w-12 h-12 bg-[#2A2A2A] rounded-md shrink-0" })
|
|
5221
5148
|
] }),
|
|
5222
|
-
/* @__PURE__ */
|
|
5149
|
+
/* @__PURE__ */ jsx41("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsx41("div", { className: "h-32 bg-ods-card border border-ods-border rounded" }, i)) })
|
|
5223
5150
|
] })
|
|
5224
5151
|
] }),
|
|
5225
|
-
overlayContent && /* @__PURE__ */
|
|
5226
|
-
description && /* @__PURE__ */
|
|
5152
|
+
overlayContent && /* @__PURE__ */ jsx41("div", { className: "absolute inset-0 bg-ods-card/80 z-10 rounded-lg pointer-events-none", children: /* @__PURE__ */ jsxs33("div", { className: "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-auto flex flex-col items-center gap-4 text-center px-4", children: [
|
|
5153
|
+
description && /* @__PURE__ */ jsx41("h3", { children: description }),
|
|
5227
5154
|
overlayContent
|
|
5228
5155
|
] }) })
|
|
5229
5156
|
] });
|
|
@@ -5231,18 +5158,18 @@ function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
|
5231
5158
|
|
|
5232
5159
|
// src/components/loading/users-grid-skeleton.tsx
|
|
5233
5160
|
init_cn();
|
|
5234
|
-
import { jsx as
|
|
5161
|
+
import { jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
5235
5162
|
function UsersGridSkeleton({ rows = 10, className }) {
|
|
5236
5163
|
const skeletonRows = Array.from({ length: rows });
|
|
5237
|
-
return /* @__PURE__ */
|
|
5238
|
-
/* @__PURE__ */
|
|
5239
|
-
/* @__PURE__ */
|
|
5164
|
+
return /* @__PURE__ */ jsx42("div", { className: cn("overflow-x-auto rounded-lg border border-ods-border bg-ods-card animate-pulse", className), children: /* @__PURE__ */ jsxs34("table", { className: "min-w-full divide-y divide-ods-border", children: [
|
|
5165
|
+
/* @__PURE__ */ jsx42("thead", { className: "bg-[#2A2A2A]", children: /* @__PURE__ */ jsx42("tr", { children: ["Name", "Email", "Role", "Created", "Last Sign-In"].map((h) => /* @__PURE__ */ jsx42("th", { className: "px-4 py-3 text-left text-[12px] font-medium text-ods-text-primary font-['DM_Sans']", children: h }, h)) }) }),
|
|
5166
|
+
/* @__PURE__ */ jsx42("tbody", { className: "divide-y divide-ods-border", children: skeletonRows.map((_, idx) => /* @__PURE__ */ jsx42("tr", { children: Array.from({ length: 5 }).map((__, cell) => /* @__PURE__ */ jsx42("td", { className: "px-4 py-3 whitespace-nowrap", children: /* @__PURE__ */ jsx42("div", { className: "h-4 bg-ods-border rounded w-full" }) }, cell)) }, idx)) })
|
|
5240
5167
|
] }) });
|
|
5241
5168
|
}
|
|
5242
5169
|
|
|
5243
5170
|
// src/components/loading/organization-icon-skeleton.tsx
|
|
5244
5171
|
init_cn();
|
|
5245
|
-
import { jsx as
|
|
5172
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
5246
5173
|
var sizeClasses2 = {
|
|
5247
5174
|
xs: "w-6 h-6",
|
|
5248
5175
|
sm: "w-8 h-8",
|
|
@@ -5269,27 +5196,27 @@ function OrganizationIconSkeleton({
|
|
|
5269
5196
|
!showBackground && "overflow-hidden",
|
|
5270
5197
|
className
|
|
5271
5198
|
);
|
|
5272
|
-
return /* @__PURE__ */
|
|
5199
|
+
return /* @__PURE__ */ jsx43(
|
|
5273
5200
|
"div",
|
|
5274
5201
|
{
|
|
5275
5202
|
className: containerClasses,
|
|
5276
5203
|
role: "status",
|
|
5277
5204
|
"aria-label": "Loading organization icon",
|
|
5278
|
-
children: /* @__PURE__ */
|
|
5205
|
+
children: /* @__PURE__ */ jsx43("div", { className: "w-1/2 h-1/2 bg-ods-border rounded-sm animate-pulse" })
|
|
5279
5206
|
}
|
|
5280
5207
|
);
|
|
5281
5208
|
}
|
|
5282
5209
|
|
|
5283
5210
|
// src/components/loading/organization-card-skeleton.tsx
|
|
5284
5211
|
init_cn();
|
|
5285
|
-
import { jsx as
|
|
5212
|
+
import { jsx as jsx44, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
5286
5213
|
function OrganizationCardSkeleton({
|
|
5287
5214
|
className,
|
|
5288
5215
|
containerClassName,
|
|
5289
5216
|
showFooter = true,
|
|
5290
5217
|
showDescription = true
|
|
5291
5218
|
}) {
|
|
5292
|
-
return /* @__PURE__ */
|
|
5219
|
+
return /* @__PURE__ */ jsx44(
|
|
5293
5220
|
"div",
|
|
5294
5221
|
{
|
|
5295
5222
|
className: cn(
|
|
@@ -5299,9 +5226,9 @@ function OrganizationCardSkeleton({
|
|
|
5299
5226
|
),
|
|
5300
5227
|
role: "status",
|
|
5301
5228
|
"aria-label": "Loading organization card",
|
|
5302
|
-
children: /* @__PURE__ */
|
|
5303
|
-
/* @__PURE__ */
|
|
5304
|
-
/* @__PURE__ */
|
|
5229
|
+
children: /* @__PURE__ */ jsxs35("div", { className: "p-4 gap-3 flex flex-col", children: [
|
|
5230
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-start gap-3 w-full", children: [
|
|
5231
|
+
/* @__PURE__ */ jsx44(
|
|
5305
5232
|
OrganizationIconSkeleton,
|
|
5306
5233
|
{
|
|
5307
5234
|
size: "xl",
|
|
@@ -5310,29 +5237,29 @@ function OrganizationCardSkeleton({
|
|
|
5310
5237
|
className: "w-[60px] h-[60px]"
|
|
5311
5238
|
}
|
|
5312
5239
|
),
|
|
5313
|
-
/* @__PURE__ */
|
|
5314
|
-
/* @__PURE__ */
|
|
5315
|
-
/* @__PURE__ */
|
|
5240
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex-1 flex flex-col justify-center py-2 min-w-0 space-y-1", children: [
|
|
5241
|
+
/* @__PURE__ */ jsx44(TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
5242
|
+
/* @__PURE__ */ jsx44(TextSkeleton.Caption, { className: "w-1/2" })
|
|
5316
5243
|
] })
|
|
5317
5244
|
] }),
|
|
5318
|
-
showDescription && /* @__PURE__ */
|
|
5319
|
-
/* @__PURE__ */
|
|
5320
|
-
/* @__PURE__ */
|
|
5245
|
+
showDescription && /* @__PURE__ */ jsx44("div", { className: "w-full h-12 overflow-hidden flex items-center", children: /* @__PURE__ */ jsxs35("div", { className: "space-y-1 w-full", children: [
|
|
5246
|
+
/* @__PURE__ */ jsx44(TextSkeleton.Body, { className: "w-full" }),
|
|
5247
|
+
/* @__PURE__ */ jsx44(TextSkeleton.Body, { className: "w-2/3" })
|
|
5321
5248
|
] }) }),
|
|
5322
|
-
showFooter && /* @__PURE__ */
|
|
5323
|
-
/* @__PURE__ */
|
|
5324
|
-
/* @__PURE__ */
|
|
5325
|
-
/* @__PURE__ */
|
|
5326
|
-
/* @__PURE__ */
|
|
5249
|
+
showFooter && /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between gap-2 w-full min-w-0", children: [
|
|
5250
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-3 md:gap-4 min-w-0 flex-shrink", children: [
|
|
5251
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
5252
|
+
/* @__PURE__ */ jsx44(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
|
|
5253
|
+
/* @__PURE__ */ jsx44(TextSkeleton.Caption, { className: "w-8" })
|
|
5327
5254
|
] }),
|
|
5328
|
-
/* @__PURE__ */
|
|
5329
|
-
/* @__PURE__ */
|
|
5330
|
-
/* @__PURE__ */
|
|
5255
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-1 flex-shrink-0", children: [
|
|
5256
|
+
/* @__PURE__ */ jsx44(MediaSkeleton.Icon, { size: "sm", className: "w-5 h-5" }),
|
|
5257
|
+
/* @__PURE__ */ jsx44(TextSkeleton.Caption, { className: "w-10" })
|
|
5331
5258
|
] })
|
|
5332
5259
|
] }),
|
|
5333
|
-
/* @__PURE__ */
|
|
5334
|
-
/* @__PURE__ */
|
|
5335
|
-
/* @__PURE__ */
|
|
5260
|
+
/* @__PURE__ */ jsx44("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-1.5 bg-ods-bg border border-ods-border rounded px-2.5 py-1.5", children: [
|
|
5261
|
+
/* @__PURE__ */ jsx44("div", { className: "w-4 h-4 bg-ods-border rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx44(MediaSkeleton.Icon, { size: "sm", className: "w-2.5 h-2.5" }) }),
|
|
5262
|
+
/* @__PURE__ */ jsx44(TextSkeleton.Caption, { className: "w-16" })
|
|
5336
5263
|
] }) })
|
|
5337
5264
|
] })
|
|
5338
5265
|
] })
|
|
@@ -5346,7 +5273,7 @@ function OrganizationCardSkeletonGrid({
|
|
|
5346
5273
|
showFooter = true,
|
|
5347
5274
|
showDescription = true
|
|
5348
5275
|
}) {
|
|
5349
|
-
return /* @__PURE__ */
|
|
5276
|
+
return /* @__PURE__ */ jsx44(
|
|
5350
5277
|
"div",
|
|
5351
5278
|
{
|
|
5352
5279
|
className: cn(
|
|
@@ -5355,7 +5282,7 @@ function OrganizationCardSkeletonGrid({
|
|
|
5355
5282
|
),
|
|
5356
5283
|
role: "status",
|
|
5357
5284
|
"aria-label": `Loading ${count} organization cards`,
|
|
5358
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */
|
|
5285
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx44(
|
|
5359
5286
|
OrganizationCardSkeleton,
|
|
5360
5287
|
{
|
|
5361
5288
|
containerClassName,
|
|
@@ -5370,9 +5297,9 @@ function OrganizationCardSkeletonGrid({
|
|
|
5370
5297
|
|
|
5371
5298
|
// src/components/loading/device-card-skeleton.tsx
|
|
5372
5299
|
init_cn();
|
|
5373
|
-
import { jsx as
|
|
5300
|
+
import { jsx as jsx45, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
5374
5301
|
function DeviceCardSkeleton({ className }) {
|
|
5375
|
-
return /* @__PURE__ */
|
|
5302
|
+
return /* @__PURE__ */ jsxs36(
|
|
5376
5303
|
"div",
|
|
5377
5304
|
{
|
|
5378
5305
|
className: cn(
|
|
@@ -5382,19 +5309,19 @@ function DeviceCardSkeleton({ className }) {
|
|
|
5382
5309
|
role: "status",
|
|
5383
5310
|
"aria-label": "Loading device card",
|
|
5384
5311
|
children: [
|
|
5385
|
-
/* @__PURE__ */
|
|
5386
|
-
/* @__PURE__ */
|
|
5387
|
-
/* @__PURE__ */
|
|
5388
|
-
/* @__PURE__ */
|
|
5312
|
+
/* @__PURE__ */ jsxs36("div", { className: "flex gap-4 items-center px-4 py-3", children: [
|
|
5313
|
+
/* @__PURE__ */ jsx45("div", { className: "w-8 h-8 bg-ods-bg border border-ods-border rounded-[6px] flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx45("div", { className: "w-4 h-4 bg-ods-border rounded animate-pulse" }) }),
|
|
5314
|
+
/* @__PURE__ */ jsx45("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx45("div", { className: "h-6 w-3/4 bg-ods-border rounded animate-pulse" }) }),
|
|
5315
|
+
/* @__PURE__ */ jsx45("div", { className: "w-12 h-12 bg-ods-border rounded-[6px] flex-shrink-0 animate-pulse" })
|
|
5389
5316
|
] }),
|
|
5390
|
-
/* @__PURE__ */
|
|
5391
|
-
/* @__PURE__ */
|
|
5392
|
-
/* @__PURE__ */
|
|
5393
|
-
/* @__PURE__ */
|
|
5317
|
+
/* @__PURE__ */ jsxs36("div", { className: "flex gap-4 items-center px-4 py-2", children: [
|
|
5318
|
+
/* @__PURE__ */ jsx45("div", { className: "w-24 h-6 bg-ods-border rounded flex-shrink-0 animate-pulse" }),
|
|
5319
|
+
/* @__PURE__ */ jsx45(OrganizationIconSkeleton, { size: "sm" }),
|
|
5320
|
+
/* @__PURE__ */ jsx45("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsx45("div", { className: "h-5 w-1/2 bg-ods-border rounded animate-pulse" }) })
|
|
5394
5321
|
] }),
|
|
5395
|
-
/* @__PURE__ */
|
|
5396
|
-
/* @__PURE__ */
|
|
5397
|
-
/* @__PURE__ */
|
|
5322
|
+
/* @__PURE__ */ jsxs36("div", { className: "flex gap-4 items-center px-4 py-2", children: [
|
|
5323
|
+
/* @__PURE__ */ jsx45("div", { className: "w-20 h-6 bg-ods-border rounded-full flex-shrink-0 animate-pulse" }),
|
|
5324
|
+
/* @__PURE__ */ jsx45("div", { className: "flex-1", children: /* @__PURE__ */ jsx45("div", { className: "h-5 w-40 bg-ods-border rounded animate-pulse" }) })
|
|
5398
5325
|
] })
|
|
5399
5326
|
]
|
|
5400
5327
|
}
|
|
@@ -5404,7 +5331,7 @@ function DeviceCardSkeletonGrid({
|
|
|
5404
5331
|
count = 12,
|
|
5405
5332
|
className
|
|
5406
5333
|
}) {
|
|
5407
|
-
return /* @__PURE__ */
|
|
5334
|
+
return /* @__PURE__ */ jsx45(
|
|
5408
5335
|
"div",
|
|
5409
5336
|
{
|
|
5410
5337
|
className: cn(
|
|
@@ -5413,22 +5340,22 @@ function DeviceCardSkeletonGrid({
|
|
|
5413
5340
|
),
|
|
5414
5341
|
role: "status",
|
|
5415
5342
|
"aria-label": `Loading ${count} device cards`,
|
|
5416
|
-
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */
|
|
5343
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx45(DeviceCardSkeleton, {}, index))
|
|
5417
5344
|
}
|
|
5418
5345
|
);
|
|
5419
5346
|
}
|
|
5420
5347
|
|
|
5421
5348
|
// src/components/vendor-page-skeleton.tsx
|
|
5422
|
-
import { jsx as
|
|
5349
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
5423
5350
|
function VendorPageSkeleton() {
|
|
5424
|
-
return /* @__PURE__ */
|
|
5351
|
+
return /* @__PURE__ */ jsx46(VendorDetailLayoutSkeleton, {});
|
|
5425
5352
|
}
|
|
5426
5353
|
|
|
5427
5354
|
// src/components/why-it-matters.tsx
|
|
5428
|
-
import { jsx as
|
|
5355
|
+
import { jsx as jsx47, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
5429
5356
|
|
|
5430
5357
|
// src/components/yes-no-display.tsx
|
|
5431
|
-
import { jsx as
|
|
5358
|
+
import { jsx as jsx48, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
5432
5359
|
function YesNoDisplay({
|
|
5433
5360
|
value,
|
|
5434
5361
|
yesText = "Yes",
|
|
@@ -5437,20 +5364,20 @@ function YesNoDisplay({
|
|
|
5437
5364
|
className = ""
|
|
5438
5365
|
}) {
|
|
5439
5366
|
if (customText) {
|
|
5440
|
-
return /* @__PURE__ */
|
|
5441
|
-
/* @__PURE__ */
|
|
5442
|
-
/* @__PURE__ */
|
|
5367
|
+
return /* @__PURE__ */ jsxs38("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
5368
|
+
/* @__PURE__ */ jsx48(CheckCircleIcon2, { className: "h-6 w-6" }),
|
|
5369
|
+
/* @__PURE__ */ jsx48("span", { className: "text-ods-text-primary text-[16px]", children: customText })
|
|
5443
5370
|
] });
|
|
5444
5371
|
}
|
|
5445
5372
|
if (value) {
|
|
5446
|
-
return /* @__PURE__ */
|
|
5447
|
-
/* @__PURE__ */
|
|
5448
|
-
/* @__PURE__ */
|
|
5373
|
+
return /* @__PURE__ */ jsxs38("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
5374
|
+
/* @__PURE__ */ jsx48(CheckCircleIcon2, { className: "h-6 w-6" }),
|
|
5375
|
+
/* @__PURE__ */ jsx48("span", { className: "text-ods-text-primary text-[16px]", children: yesText })
|
|
5449
5376
|
] });
|
|
5450
5377
|
}
|
|
5451
|
-
return /* @__PURE__ */
|
|
5452
|
-
/* @__PURE__ */
|
|
5453
|
-
/* @__PURE__ */
|
|
5378
|
+
return /* @__PURE__ */ jsxs38("div", { className: `flex items-center gap-2 ${className}`, children: [
|
|
5379
|
+
/* @__PURE__ */ jsx48(XCircleIcon, { className: "h-6 w-6" }),
|
|
5380
|
+
/* @__PURE__ */ jsx48("span", { className: "text-ods-text-secondary text-[16px]", children: noText })
|
|
5454
5381
|
] });
|
|
5455
5382
|
}
|
|
5456
5383
|
function evaluateFeatureValue(value, dataType) {
|
|
@@ -5484,16 +5411,16 @@ function evaluateFeatureValue(value, dataType) {
|
|
|
5484
5411
|
}
|
|
5485
5412
|
|
|
5486
5413
|
// src/components/made-with-love.tsx
|
|
5487
|
-
import { useState as
|
|
5488
|
-
import { jsx as
|
|
5414
|
+
import { useState as useState6, useEffect as useEffect5 } from "react";
|
|
5415
|
+
import { jsx as jsx49, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
5489
5416
|
function MadeWithLove({
|
|
5490
5417
|
className = "",
|
|
5491
5418
|
size = "md",
|
|
5492
5419
|
showOnMobile = true
|
|
5493
5420
|
}) {
|
|
5494
|
-
const [isMobile, setIsMobile] =
|
|
5495
|
-
const [isHovered, setIsHovered] =
|
|
5496
|
-
|
|
5421
|
+
const [isMobile, setIsMobile] = useState6(false);
|
|
5422
|
+
const [isHovered, setIsHovered] = useState6(false);
|
|
5423
|
+
useEffect5(() => {
|
|
5497
5424
|
const checkMobile = () => {
|
|
5498
5425
|
setIsMobile(window.innerWidth < 640);
|
|
5499
5426
|
};
|
|
@@ -5559,14 +5486,14 @@ function MadeWithLove({
|
|
|
5559
5486
|
marginLeft: "4px",
|
|
5560
5487
|
textDecoration: "none"
|
|
5561
5488
|
};
|
|
5562
|
-
return /* @__PURE__ */
|
|
5489
|
+
return /* @__PURE__ */ jsxs39(
|
|
5563
5490
|
"div",
|
|
5564
5491
|
{
|
|
5565
5492
|
style: containerStyle,
|
|
5566
5493
|
className,
|
|
5567
5494
|
children: [
|
|
5568
5495
|
"Made with love by",
|
|
5569
|
-
/* @__PURE__ */
|
|
5496
|
+
/* @__PURE__ */ jsxs39(
|
|
5570
5497
|
"a",
|
|
5571
5498
|
{
|
|
5572
5499
|
href: flamingoUrl,
|
|
@@ -5576,14 +5503,14 @@ function MadeWithLove({
|
|
|
5576
5503
|
onMouseEnter: () => setIsHovered(true),
|
|
5577
5504
|
onMouseLeave: () => setIsHovered(false),
|
|
5578
5505
|
children: [
|
|
5579
|
-
/* @__PURE__ */
|
|
5506
|
+
/* @__PURE__ */ jsx49("div", { style: logoStyle, children: /* @__PURE__ */ jsx49(
|
|
5580
5507
|
FlamingoLogo2,
|
|
5581
5508
|
{
|
|
5582
5509
|
size: config.logoSize,
|
|
5583
5510
|
color: "#f357bb"
|
|
5584
5511
|
}
|
|
5585
5512
|
) }),
|
|
5586
|
-
/* @__PURE__ */
|
|
5513
|
+
/* @__PURE__ */ jsx49("span", { style: textStyle, children: "Flamingo" })
|
|
5587
5514
|
]
|
|
5588
5515
|
}
|
|
5589
5516
|
)
|
|
@@ -5595,7 +5522,7 @@ function MadeWithLove({
|
|
|
5595
5522
|
// src/components/date-time-picker.tsx
|
|
5596
5523
|
init_cn();
|
|
5597
5524
|
import DatePicker2 from "react-datepicker";
|
|
5598
|
-
import { jsx as
|
|
5525
|
+
import { jsx as jsx50, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
5599
5526
|
var inputClassName = cn(
|
|
5600
5527
|
"flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background",
|
|
5601
5528
|
"file:border-0 file:bg-transparent file:text-sm file:font-medium",
|
|
@@ -5619,9 +5546,9 @@ function DateTimePicker({
|
|
|
5619
5546
|
timeIntervals = 15,
|
|
5620
5547
|
dateFormat = "MMMM d, yyyy h:mm aa"
|
|
5621
5548
|
}) {
|
|
5622
|
-
return /* @__PURE__ */
|
|
5623
|
-
label && /* @__PURE__ */
|
|
5624
|
-
/* @__PURE__ */
|
|
5549
|
+
return /* @__PURE__ */ jsxs40("div", { className: cn("space-y-2", className), children: [
|
|
5550
|
+
label && /* @__PURE__ */ jsx50(Label, { className: "font-['Azeret_Mono'] text-[12px] font-semibold leading-[1em] tracking-[-0.02em] text-ods-text-secondary uppercase", children: label }),
|
|
5551
|
+
/* @__PURE__ */ jsx50("div", { className: "w-full", children: /* @__PURE__ */ jsx50(
|
|
5625
5552
|
DatePicker2,
|
|
5626
5553
|
{
|
|
5627
5554
|
selected: value,
|
|
@@ -5636,7 +5563,7 @@ function DateTimePicker({
|
|
|
5636
5563
|
className: inputClassName
|
|
5637
5564
|
}
|
|
5638
5565
|
) }),
|
|
5639
|
-
/* @__PURE__ */
|
|
5566
|
+
/* @__PURE__ */ jsx50("style", { dangerouslySetInnerHTML: { __html: `
|
|
5640
5567
|
.react-datepicker-wrapper {
|
|
5641
5568
|
width: 100% !important;
|
|
5642
5569
|
display: block !important;
|
|
@@ -5741,7 +5668,7 @@ function DateTimePicker({
|
|
|
5741
5668
|
|
|
5742
5669
|
// src/components/shared/product-release/product-releases-view.tsx
|
|
5743
5670
|
init_cn();
|
|
5744
|
-
import { Fragment as Fragment9, jsx as
|
|
5671
|
+
import { Fragment as Fragment9, jsx as jsx51, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
5745
5672
|
var DEFAULT_ENDPOINT = "/api/releases";
|
|
5746
5673
|
var DEFAULT_SEARCH_PARAM_KEY = DEV_SECTION_PARAM_KEYS.search;
|
|
5747
5674
|
var DEFAULT_STATUS_PARAM_KEY = DEV_SECTION_PARAM_KEYS.releaseStatus;
|
|
@@ -5770,7 +5697,7 @@ function ReleaseRow({
|
|
|
5770
5697
|
fallbackNavigate: router.push
|
|
5771
5698
|
});
|
|
5772
5699
|
};
|
|
5773
|
-
return /* @__PURE__ */
|
|
5700
|
+
return /* @__PURE__ */ jsx51(
|
|
5774
5701
|
ProductReleaseCard,
|
|
5775
5702
|
{
|
|
5776
5703
|
size: "lg",
|
|
@@ -5825,9 +5752,9 @@ function ProductReleasesView({
|
|
|
5825
5752
|
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
5826
5753
|
};
|
|
5827
5754
|
if (error) {
|
|
5828
|
-
return /* @__PURE__ */
|
|
5755
|
+
return /* @__PURE__ */ jsx51("div", { className: cn("w-full", className), children: /* @__PURE__ */ jsx51(LoadError, { message: "Failed to load releases.", onRetry: reload }) });
|
|
5829
5756
|
}
|
|
5830
|
-
return /* @__PURE__ */
|
|
5757
|
+
return /* @__PURE__ */ jsx51("div", { className: cn("w-full flex flex-col gap-[40px]", className), children: /* @__PURE__ */ jsx51("div", { className: "min-h-[600px]", children: showEmpty ? /* @__PURE__ */ jsx51("div", { className: "h-[600px] flex items-center justify-center", children: hasActiveFilters ? /* @__PURE__ */ jsx51(
|
|
5831
5758
|
EmptyState,
|
|
5832
5759
|
{
|
|
5833
5760
|
type: "search",
|
|
@@ -5837,7 +5764,7 @@ function ProductReleasesView({
|
|
|
5837
5764
|
ctaText: "Reset Filters",
|
|
5838
5765
|
onCtaClick: resetFilters
|
|
5839
5766
|
}
|
|
5840
|
-
) : /* @__PURE__ */
|
|
5767
|
+
) : /* @__PURE__ */ jsx51(
|
|
5841
5768
|
EmptyState,
|
|
5842
5769
|
{
|
|
5843
5770
|
type: "generic",
|
|
@@ -5845,20 +5772,20 @@ function ProductReleasesView({
|
|
|
5845
5772
|
description: "Check back soon for product updates!",
|
|
5846
5773
|
showCTA: false
|
|
5847
5774
|
}
|
|
5848
|
-
) }) : /* @__PURE__ */
|
|
5849
|
-
/* @__PURE__ */
|
|
5775
|
+
) }) : /* @__PURE__ */ jsxs41(Fragment9, { children: [
|
|
5776
|
+
/* @__PURE__ */ jsx51("div", { className: "flex flex-col gap-6", children: Array.from({ length: itemsPerPage }).map((_, i) => {
|
|
5850
5777
|
const release = releases[i];
|
|
5851
5778
|
const hasData = !!release;
|
|
5852
|
-
return /* @__PURE__ */
|
|
5779
|
+
return /* @__PURE__ */ jsx51(
|
|
5853
5780
|
"div",
|
|
5854
5781
|
{
|
|
5855
5782
|
style: { visibility: isLoading || hasData ? "visible" : "hidden" },
|
|
5856
|
-
children: isLoading ? /* @__PURE__ */
|
|
5783
|
+
children: isLoading ? /* @__PURE__ */ jsx51(ProductReleaseCardSkeleton, { size: "lg" }) : release ? /* @__PURE__ */ jsx51(ReleaseRow, { release, basePath, buildCardProps }) : /* @__PURE__ */ jsx51(ProductReleaseCardSkeleton, { size: "lg" })
|
|
5857
5784
|
},
|
|
5858
5785
|
release?.id ?? `slot-${i}`
|
|
5859
5786
|
);
|
|
5860
5787
|
}) }),
|
|
5861
|
-
/* @__PURE__ */
|
|
5788
|
+
/* @__PURE__ */ jsx51("div", { className: "mt-6 md:mt-8 flex justify-center", children: isLoading ? /* @__PURE__ */ jsx51("div", { className: "h-12 m-3 w-64" }) : releases.length > 0 && totalPages > 1 ? /* @__PURE__ */ jsx51(
|
|
5862
5789
|
PersistentPaginationWrapper,
|
|
5863
5790
|
{
|
|
5864
5791
|
isLoading: false,
|
|
@@ -5867,18 +5794,18 @@ function ProductReleasesView({
|
|
|
5867
5794
|
onPageChange: goToPage,
|
|
5868
5795
|
variant: "blog"
|
|
5869
5796
|
}
|
|
5870
|
-
) : /* @__PURE__ */
|
|
5797
|
+
) : /* @__PURE__ */ jsx51("div", { className: "h-12 m-3 w-64", style: { visibility: "hidden" } }) })
|
|
5871
5798
|
] }) }) });
|
|
5872
5799
|
}
|
|
5873
5800
|
|
|
5874
5801
|
// src/components/shared/product-release/release-detail-page.tsx
|
|
5875
5802
|
init_next_link();
|
|
5876
5803
|
init_next_navigation();
|
|
5877
|
-
import { useState as
|
|
5804
|
+
import { useState as useState7, useEffect as useEffect6 } from "react";
|
|
5878
5805
|
import { AlertTriangle, ExternalLink, BookMarked, Sparkles as Sparkles2, TrendingUp, Wrench } from "lucide-react";
|
|
5879
|
-
import { Fragment as Fragment10, jsx as
|
|
5806
|
+
import { Fragment as Fragment10, jsx as jsx52, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
5880
5807
|
function DefaultMarkdownRenderer({ content }) {
|
|
5881
|
-
return /* @__PURE__ */
|
|
5808
|
+
return /* @__PURE__ */ jsx52("div", { className: "whitespace-pre-wrap", children: content });
|
|
5882
5809
|
}
|
|
5883
5810
|
function ReleaseDetailPage({
|
|
5884
5811
|
slug,
|
|
@@ -5896,16 +5823,16 @@ function ReleaseDetailPage({
|
|
|
5896
5823
|
const router = useRouter();
|
|
5897
5824
|
const { data: fetchedRelease, error, isLoading } = useRelease(initialData ? void 0 : slug);
|
|
5898
5825
|
const release = initialData || fetchedRelease;
|
|
5899
|
-
const [galleryOpen, setGalleryOpen] =
|
|
5900
|
-
const [galleryIndex, setGalleryIndex] =
|
|
5826
|
+
const [galleryOpen, setGalleryOpen] = useState7(false);
|
|
5827
|
+
const [galleryIndex, setGalleryIndex] = useState7(0);
|
|
5901
5828
|
const showBackButton = backButton !== false;
|
|
5902
5829
|
const backLabel = (backButton ? backButton.label : void 0) ?? "Back to home";
|
|
5903
5830
|
const backHref = (backButton ? backButton.href : void 0) ?? "/";
|
|
5904
|
-
const [roadmapTasks, setRoadmapTasks] =
|
|
5905
|
-
const [deliveryData, setDeliveryData] =
|
|
5906
|
-
const [roadmapLoading, setRoadmapLoading] =
|
|
5907
|
-
const [deliveryLoading, setDeliveryLoading] =
|
|
5908
|
-
|
|
5831
|
+
const [roadmapTasks, setRoadmapTasks] = useState7([]);
|
|
5832
|
+
const [deliveryData, setDeliveryData] = useState7(null);
|
|
5833
|
+
const [roadmapLoading, setRoadmapLoading] = useState7(false);
|
|
5834
|
+
const [deliveryLoading, setDeliveryLoading] = useState7(false);
|
|
5835
|
+
useEffect6(() => {
|
|
5909
5836
|
async function fetchLinkedTasks() {
|
|
5910
5837
|
if (!release) return;
|
|
5911
5838
|
try {
|
|
@@ -5936,12 +5863,12 @@ function ReleaseDetailPage({
|
|
|
5936
5863
|
fetchLinkedTasks();
|
|
5937
5864
|
}, [release, RoadmapSection, DeliverySection, roadmapApiEndpoint, deliveryApiEndpoint]);
|
|
5938
5865
|
if (!initialData && isLoading) {
|
|
5939
|
-
return /* @__PURE__ */
|
|
5866
|
+
return /* @__PURE__ */ jsx52(DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
|
|
5940
5867
|
}
|
|
5941
5868
|
if (error || !release) {
|
|
5942
|
-
return /* @__PURE__ */
|
|
5943
|
-
/* @__PURE__ */
|
|
5944
|
-
/* @__PURE__ */
|
|
5869
|
+
return /* @__PURE__ */ jsxs42("div", { className: "text-center py-16", children: [
|
|
5870
|
+
/* @__PURE__ */ jsx52("h1", { className: "text-4xl font-bold text-ods-text-primary mb-4", children: "Release Not Found" }),
|
|
5871
|
+
/* @__PURE__ */ jsx52("p", { className: "text-xl text-ods-text-secondary", children: "The release you're looking for doesn't exist." })
|
|
5945
5872
|
] });
|
|
5946
5873
|
}
|
|
5947
5874
|
const hasBreakingChanges = Array.isArray(release.breaking_changes) && release.breaking_changes.length > 0;
|
|
@@ -5967,8 +5894,8 @@ function ReleaseDetailPage({
|
|
|
5967
5894
|
const featuresAdded = release.features_added;
|
|
5968
5895
|
const bugFixed = release.bugs_fixed;
|
|
5969
5896
|
const improvements = release.improvements;
|
|
5970
|
-
return /* @__PURE__ */
|
|
5971
|
-
showBackButton && /* @__PURE__ */
|
|
5897
|
+
return /* @__PURE__ */ jsxs42(ArticleDetailLayout, { children: [
|
|
5898
|
+
showBackButton && /* @__PURE__ */ jsx52(
|
|
5972
5899
|
BackButton,
|
|
5973
5900
|
{
|
|
5974
5901
|
label: backLabel,
|
|
@@ -5976,30 +5903,30 @@ function ReleaseDetailPage({
|
|
|
5976
5903
|
className: "hidden md:inline-flex mb-4"
|
|
5977
5904
|
}
|
|
5978
5905
|
),
|
|
5979
|
-
/* @__PURE__ */
|
|
5980
|
-
/* @__PURE__ */
|
|
5981
|
-
/* @__PURE__ */
|
|
5982
|
-
/* @__PURE__ */
|
|
5906
|
+
/* @__PURE__ */ jsxs42("div", { className: "space-y-6 md:space-y-8", children: [
|
|
5907
|
+
/* @__PURE__ */ jsx52("div", { className: "flex flex-col md:flex-row md:items-end gap-4 w-full", children: /* @__PURE__ */ jsxs42("div", { className: "flex-1 flex flex-col gap-2", children: [
|
|
5908
|
+
/* @__PURE__ */ jsx52("h1", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary", children: releaseTitle }),
|
|
5909
|
+
/* @__PURE__ */ jsxs42("p", { className: "text-h4 text-ods-text-secondary", children: [
|
|
5983
5910
|
"Version: ",
|
|
5984
5911
|
releaseVersion
|
|
5985
5912
|
] })
|
|
5986
5913
|
] }) }),
|
|
5987
|
-
/* @__PURE__ */
|
|
5988
|
-
/* @__PURE__ */
|
|
5989
|
-
/* @__PURE__ */
|
|
5990
|
-
/* @__PURE__ */
|
|
5991
|
-
/* @__PURE__ */
|
|
5914
|
+
/* @__PURE__ */ jsx52(EntityTagBadges, { tags: release.product_release_tags }),
|
|
5915
|
+
/* @__PURE__ */ jsxs42("div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
|
|
5916
|
+
/* @__PURE__ */ jsx52("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-0", children: [
|
|
5917
|
+
/* @__PURE__ */ jsx52("p", { className: "text-h4 text-ods-text-primary", children: releaseType.toLocaleUpperCase() }),
|
|
5918
|
+
/* @__PURE__ */ jsx52("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Type" })
|
|
5992
5919
|
] }) }),
|
|
5993
|
-
/* @__PURE__ */
|
|
5994
|
-
/* @__PURE__ */
|
|
5995
|
-
/* @__PURE__ */
|
|
5920
|
+
/* @__PURE__ */ jsx52("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-0", children: [
|
|
5921
|
+
/* @__PURE__ */ jsx52("p", { className: "text-h4 text-ods-text-primary", children: releaseStatus.toLocaleUpperCase() }),
|
|
5922
|
+
/* @__PURE__ */ jsx52("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Status" })
|
|
5996
5923
|
] }) }),
|
|
5997
|
-
/* @__PURE__ */
|
|
5998
|
-
/* @__PURE__ */
|
|
5999
|
-
/* @__PURE__ */
|
|
5924
|
+
/* @__PURE__ */ jsx52("div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-0", children: [
|
|
5925
|
+
/* @__PURE__ */ jsx52("p", { className: "text-h4 text-ods-text-primary", children: formatReleaseDate(releaseDate) }),
|
|
5926
|
+
/* @__PURE__ */ jsx52("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Release Date" })
|
|
6000
5927
|
] }) }),
|
|
6001
|
-
/* @__PURE__ */
|
|
6002
|
-
/* @__PURE__ */
|
|
5928
|
+
/* @__PURE__ */ jsxs42("div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
|
|
5929
|
+
/* @__PURE__ */ jsx52(
|
|
6003
5930
|
SquareAvatar,
|
|
6004
5931
|
{
|
|
6005
5932
|
src: author?.avatar_url || "",
|
|
@@ -6009,13 +5936,13 @@ function ReleaseDetailPage({
|
|
|
6009
5936
|
variant: "round"
|
|
6010
5937
|
}
|
|
6011
5938
|
),
|
|
6012
|
-
/* @__PURE__ */
|
|
6013
|
-
/* @__PURE__ */
|
|
6014
|
-
/* @__PURE__ */
|
|
5939
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
|
|
5940
|
+
/* @__PURE__ */ jsx52("p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", title: author?.full_name || "Unknown Author", children: author?.full_name || "Unknown Author" }),
|
|
5941
|
+
/* @__PURE__ */ jsx52("p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
|
|
6015
5942
|
] })
|
|
6016
5943
|
] })
|
|
6017
5944
|
] }),
|
|
6018
|
-
releaseMedia && releaseMedia.length > 0 && /* @__PURE__ */
|
|
5945
|
+
releaseMedia && releaseMedia.length > 0 && /* @__PURE__ */ jsx52("div", { className: "flex gap-6 overflow-x-auto w-full", children: releaseMedia.slice(0, 5).map((mediaItem, index) => /* @__PURE__ */ jsx52(
|
|
6019
5946
|
"div",
|
|
6020
5947
|
{
|
|
6021
5948
|
className: "shrink-0 w-[240px] h-[200px] rounded-md overflow-hidden border border-ods-border bg-black cursor-pointer hover:opacity-80 transition-opacity",
|
|
@@ -6025,12 +5952,12 @@ function ReleaseDetailPage({
|
|
|
6025
5952
|
setGalleryOpen(true);
|
|
6026
5953
|
}
|
|
6027
5954
|
},
|
|
6028
|
-
children: mediaItem.media_type === "video" || mediaItem.media_type === "demo" ? /* @__PURE__ */
|
|
5955
|
+
children: mediaItem.media_type === "video" || mediaItem.media_type === "demo" ? /* @__PURE__ */ jsx52(Video, { url: mediaItem.media_url, layout: "native" }) : /* @__PURE__ */ jsx52("img", { src: mediaItem.media_url, alt: mediaItem.title || `Media ${index + 1}`, className: "w-full h-full object-cover" })
|
|
6029
5956
|
},
|
|
6030
5957
|
mediaItem.id || index
|
|
6031
5958
|
)) }),
|
|
6032
|
-
releaseSummary && /* @__PURE__ */
|
|
6033
|
-
VideoDisplaySection ? /* @__PURE__ */
|
|
5959
|
+
releaseSummary && /* @__PURE__ */ jsx52("div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ jsx52("p", { children: releaseSummary }) }),
|
|
5960
|
+
VideoDisplaySection ? /* @__PURE__ */ jsx52(
|
|
6034
5961
|
VideoDisplaySection,
|
|
6035
5962
|
{
|
|
6036
5963
|
mainVideoUrl,
|
|
@@ -6044,8 +5971,8 @@ function ReleaseDetailPage({
|
|
|
6044
5971
|
srtContent: release?.srt_content,
|
|
6045
5972
|
captionsUrl: release?.captionsUrl
|
|
6046
5973
|
}
|
|
6047
|
-
) : /* @__PURE__ */
|
|
6048
|
-
youtubeUrl && /* @__PURE__ */
|
|
5974
|
+
) : /* @__PURE__ */ jsxs42(Fragment10, { children: [
|
|
5975
|
+
youtubeUrl && /* @__PURE__ */ jsx52(
|
|
6049
5976
|
Video,
|
|
6050
5977
|
{
|
|
6051
5978
|
kind: "youtube",
|
|
@@ -6054,7 +5981,7 @@ function ReleaseDetailPage({
|
|
|
6054
5981
|
layout: "native"
|
|
6055
5982
|
}
|
|
6056
5983
|
),
|
|
6057
|
-
!youtubeUrl && mainVideoUrl && /* @__PURE__ */
|
|
5984
|
+
!youtubeUrl && mainVideoUrl && /* @__PURE__ */ jsx52(
|
|
6058
5985
|
Video,
|
|
6059
5986
|
{
|
|
6060
5987
|
url: mainVideoUrl,
|
|
@@ -6063,7 +5990,7 @@ function ReleaseDetailPage({
|
|
|
6063
5990
|
layout: "centered"
|
|
6064
5991
|
}
|
|
6065
5992
|
),
|
|
6066
|
-
highlightVideoUrl && /* @__PURE__ */
|
|
5993
|
+
highlightVideoUrl && /* @__PURE__ */ jsx52(
|
|
6067
5994
|
Video,
|
|
6068
5995
|
{
|
|
6069
5996
|
url: highlightVideoUrl,
|
|
@@ -6072,56 +5999,56 @@ function ReleaseDetailPage({
|
|
|
6072
5999
|
}
|
|
6073
6000
|
)
|
|
6074
6001
|
] }),
|
|
6075
|
-
releaseContent && /* @__PURE__ */
|
|
6076
|
-
hasBreakingChanges && /* @__PURE__ */
|
|
6077
|
-
/* @__PURE__ */
|
|
6078
|
-
/* @__PURE__ */
|
|
6079
|
-
/* @__PURE__ */
|
|
6080
|
-
/* @__PURE__ */
|
|
6002
|
+
releaseContent && /* @__PURE__ */ jsx52("div", { className: "text-h4 text-ods-text-primary", children: /* @__PURE__ */ jsx52(MarkdownRenderer, { content: releaseContent }) }),
|
|
6003
|
+
hasBreakingChanges && /* @__PURE__ */ jsx52(Card, { className: "border-red-500 bg-red-500/10", children: /* @__PURE__ */ jsx52(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-3", children: [
|
|
6004
|
+
/* @__PURE__ */ jsx52(AlertTriangle, { className: "h-6 w-6 text-red-500" }),
|
|
6005
|
+
/* @__PURE__ */ jsxs42("div", { children: [
|
|
6006
|
+
/* @__PURE__ */ jsx52("h3", { className: "font-bold text-red-500 text-lg", children: "Breaking Changes" }),
|
|
6007
|
+
/* @__PURE__ */ jsx52("p", { className: "text-ods-text-secondary", children: "This release contains breaking changes. Review carefully before upgrading." })
|
|
6081
6008
|
] })
|
|
6082
6009
|
] }) }) }),
|
|
6083
|
-
/* @__PURE__ */
|
|
6010
|
+
/* @__PURE__ */ jsx52(
|
|
6084
6011
|
ReleaseChangelogSection,
|
|
6085
6012
|
{
|
|
6086
6013
|
title: "Breaking Changes",
|
|
6087
6014
|
entries: breakingChanges || [],
|
|
6088
6015
|
isBreaking: true,
|
|
6089
6016
|
hideTitle: true,
|
|
6090
|
-
icon: /* @__PURE__ */
|
|
6017
|
+
icon: /* @__PURE__ */ jsx52(AlertTriangle, { className: "h-6 w-6" }),
|
|
6091
6018
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
6092
6019
|
}
|
|
6093
6020
|
),
|
|
6094
|
-
/* @__PURE__ */
|
|
6021
|
+
/* @__PURE__ */ jsx52(
|
|
6095
6022
|
ReleaseChangelogSection,
|
|
6096
6023
|
{
|
|
6097
6024
|
title: "Features Added",
|
|
6098
6025
|
entries: featuresAdded || [],
|
|
6099
|
-
icon: /* @__PURE__ */
|
|
6026
|
+
icon: /* @__PURE__ */ jsx52(Sparkles2, { className: "h-6 w-6" }),
|
|
6100
6027
|
previewFirst: true,
|
|
6101
6028
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
6102
6029
|
}
|
|
6103
6030
|
),
|
|
6104
|
-
/* @__PURE__ */
|
|
6031
|
+
/* @__PURE__ */ jsx52(
|
|
6105
6032
|
ReleaseChangelogSection,
|
|
6106
6033
|
{
|
|
6107
6034
|
title: "Bugs Fixed",
|
|
6108
6035
|
entries: bugFixed || [],
|
|
6109
|
-
icon: /* @__PURE__ */
|
|
6036
|
+
icon: /* @__PURE__ */ jsx52(Wrench, { className: "h-6 w-6" }),
|
|
6110
6037
|
previewFirst: true,
|
|
6111
6038
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
6112
6039
|
}
|
|
6113
6040
|
),
|
|
6114
|
-
/* @__PURE__ */
|
|
6041
|
+
/* @__PURE__ */ jsx52(
|
|
6115
6042
|
ReleaseChangelogSection,
|
|
6116
6043
|
{
|
|
6117
6044
|
title: "Improvements",
|
|
6118
6045
|
entries: improvements || [],
|
|
6119
|
-
icon: /* @__PURE__ */
|
|
6046
|
+
icon: /* @__PURE__ */ jsx52(TrendingUp, { className: "h-6 w-6" }),
|
|
6120
6047
|
previewFirst: true,
|
|
6121
6048
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
6122
6049
|
}
|
|
6123
6050
|
),
|
|
6124
|
-
!VideoDisplaySection && VideoSection && videoBites && videoBites.length > 0 && /* @__PURE__ */
|
|
6051
|
+
!VideoDisplaySection && VideoSection && videoBites && videoBites.length > 0 && /* @__PURE__ */ jsx52(
|
|
6125
6052
|
VideoSection,
|
|
6126
6053
|
{
|
|
6127
6054
|
bites: videoBites,
|
|
@@ -6129,9 +6056,9 @@ function ReleaseDetailPage({
|
|
|
6129
6056
|
filterPublished: true
|
|
6130
6057
|
}
|
|
6131
6058
|
),
|
|
6132
|
-
RoadmapSection && (roadmapLoading || roadmapTasks.length > 0) && /* @__PURE__ */
|
|
6133
|
-
/* @__PURE__ */
|
|
6134
|
-
/* @__PURE__ */
|
|
6059
|
+
RoadmapSection && (roadmapLoading || roadmapTasks.length > 0) && /* @__PURE__ */ jsxs42("div", { className: "space-y-4 w-full", children: [
|
|
6060
|
+
/* @__PURE__ */ jsx52("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Roadmap Items" }),
|
|
6061
|
+
/* @__PURE__ */ jsx52(
|
|
6135
6062
|
RoadmapSection,
|
|
6136
6063
|
{
|
|
6137
6064
|
items: roadmapTasks,
|
|
@@ -6146,9 +6073,9 @@ function ReleaseDetailPage({
|
|
|
6146
6073
|
}
|
|
6147
6074
|
)
|
|
6148
6075
|
] }),
|
|
6149
|
-
DeliverySection && (deliveryLoading || deliveryData && (deliveryData.completed.length > 0 || deliveryData.inProgress.length > 0)) && /* @__PURE__ */
|
|
6150
|
-
/* @__PURE__ */
|
|
6151
|
-
/* @__PURE__ */
|
|
6076
|
+
DeliverySection && (deliveryLoading || deliveryData && (deliveryData.completed.length > 0 || deliveryData.inProgress.length > 0)) && /* @__PURE__ */ jsxs42("div", { className: "w-full space-y-4", children: [
|
|
6077
|
+
/* @__PURE__ */ jsx52("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Enhancements and Bug-fixes" }),
|
|
6078
|
+
/* @__PURE__ */ jsx52(
|
|
6152
6079
|
DeliverySection,
|
|
6153
6080
|
{
|
|
6154
6081
|
data: deliveryData,
|
|
@@ -6156,13 +6083,13 @@ function ReleaseDetailPage({
|
|
|
6156
6083
|
}
|
|
6157
6084
|
)
|
|
6158
6085
|
] }),
|
|
6159
|
-
(githubReleases?.length || knowledgeBaseLinks?.length || migrationGuideUrl || documentationUrl) && /* @__PURE__ */
|
|
6160
|
-
/* @__PURE__ */
|
|
6161
|
-
/* @__PURE__ */
|
|
6162
|
-
githubReleases && githubReleases.length > 0 && /* @__PURE__ */
|
|
6163
|
-
/* @__PURE__ */
|
|
6164
|
-
/* @__PURE__ */
|
|
6165
|
-
/* @__PURE__ */
|
|
6086
|
+
(githubReleases?.length || knowledgeBaseLinks?.length || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ jsxs42("div", { className: "space-y-1 w-full", children: [
|
|
6087
|
+
/* @__PURE__ */ jsx52("p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
|
|
6088
|
+
/* @__PURE__ */ jsx52(Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ jsxs42("div", { className: "space-y-4", children: [
|
|
6089
|
+
githubReleases && githubReleases.length > 0 && /* @__PURE__ */ jsx52(Fragment10, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ jsxs42("div", { className: "flex items-start gap-1", children: [
|
|
6090
|
+
/* @__PURE__ */ jsx52(GitHubIcon, { className: "shrink-0", width: 24, height: 24, color: "var(--color-text-secondary)" }),
|
|
6091
|
+
/* @__PURE__ */ jsx52("span", { className: "text-h4 text-ods-text-primary", children: "Github Release" }),
|
|
6092
|
+
/* @__PURE__ */ jsx52(
|
|
6166
6093
|
"a",
|
|
6167
6094
|
{
|
|
6168
6095
|
href: ghRelease.github_release_url,
|
|
@@ -6172,15 +6099,15 @@ function ReleaseDetailPage({
|
|
|
6172
6099
|
children: ghRelease.github_release_url.split("/").pop()
|
|
6173
6100
|
}
|
|
6174
6101
|
),
|
|
6175
|
-
/* @__PURE__ */
|
|
6102
|
+
/* @__PURE__ */ jsx52(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
6176
6103
|
] }, ghRelease.id)) }),
|
|
6177
|
-
knowledgeBaseLinks && knowledgeBaseLinks.length > 0 && /* @__PURE__ */
|
|
6104
|
+
knowledgeBaseLinks && knowledgeBaseLinks.length > 0 && /* @__PURE__ */ jsx52(Fragment10, { children: knowledgeBaseLinks.map((linkObj) => {
|
|
6178
6105
|
const path = typeof linkObj === "string" ? linkObj : linkObj.kb_article_path;
|
|
6179
6106
|
const linkId = typeof linkObj === "string" ? path : linkObj.id || path;
|
|
6180
|
-
return /* @__PURE__ */
|
|
6181
|
-
/* @__PURE__ */
|
|
6182
|
-
/* @__PURE__ */
|
|
6183
|
-
/* @__PURE__ */
|
|
6107
|
+
return /* @__PURE__ */ jsxs42("div", { className: "flex items-start gap-1", children: [
|
|
6108
|
+
/* @__PURE__ */ jsx52(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
|
|
6109
|
+
/* @__PURE__ */ jsx52("span", { className: "text-h4 text-ods-text-primary", children: "Knowledge Base" }),
|
|
6110
|
+
/* @__PURE__ */ jsx52(
|
|
6184
6111
|
next_link_default,
|
|
6185
6112
|
{
|
|
6186
6113
|
href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
|
|
@@ -6188,12 +6115,12 @@ function ReleaseDetailPage({
|
|
|
6188
6115
|
children: path.replace(/^\//, "").split("/").pop()?.replace(/-/g, " ") || "View Article"
|
|
6189
6116
|
}
|
|
6190
6117
|
),
|
|
6191
|
-
/* @__PURE__ */
|
|
6118
|
+
/* @__PURE__ */ jsx52(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
6192
6119
|
] }, linkId);
|
|
6193
6120
|
}) }),
|
|
6194
|
-
migrationGuideUrl && /* @__PURE__ */
|
|
6195
|
-
/* @__PURE__ */
|
|
6196
|
-
/* @__PURE__ */
|
|
6121
|
+
migrationGuideUrl && /* @__PURE__ */ jsxs42("div", { className: "flex items-start gap-1", children: [
|
|
6122
|
+
/* @__PURE__ */ jsx52(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
|
|
6123
|
+
/* @__PURE__ */ jsx52(
|
|
6197
6124
|
"a",
|
|
6198
6125
|
{
|
|
6199
6126
|
href: migrationGuideUrl,
|
|
@@ -6203,11 +6130,11 @@ function ReleaseDetailPage({
|
|
|
6203
6130
|
children: "\u{1F4D6} Migration Guide"
|
|
6204
6131
|
}
|
|
6205
6132
|
),
|
|
6206
|
-
/* @__PURE__ */
|
|
6133
|
+
/* @__PURE__ */ jsx52(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
6207
6134
|
] }),
|
|
6208
|
-
documentationUrl && /* @__PURE__ */
|
|
6209
|
-
/* @__PURE__ */
|
|
6210
|
-
/* @__PURE__ */
|
|
6135
|
+
documentationUrl && /* @__PURE__ */ jsxs42("div", { className: "flex items-start gap-1", children: [
|
|
6136
|
+
/* @__PURE__ */ jsx52(BookMarked, { className: "h-6 w-6 text-ods-text-secondary shrink-0" }),
|
|
6137
|
+
/* @__PURE__ */ jsx52(
|
|
6211
6138
|
"a",
|
|
6212
6139
|
{
|
|
6213
6140
|
href: documentationUrl,
|
|
@@ -6217,12 +6144,12 @@ function ReleaseDetailPage({
|
|
|
6217
6144
|
children: "\u{1F4DA} Documentation"
|
|
6218
6145
|
}
|
|
6219
6146
|
),
|
|
6220
|
-
/* @__PURE__ */
|
|
6147
|
+
/* @__PURE__ */ jsx52(ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
6221
6148
|
] })
|
|
6222
6149
|
] }) })
|
|
6223
6150
|
] })
|
|
6224
6151
|
] }),
|
|
6225
|
-
releaseMedia && releaseMedia.filter((m) => m.media_type !== "video" && m.media_type !== "demo").length > 0 && /* @__PURE__ */
|
|
6152
|
+
releaseMedia && releaseMedia.filter((m) => m.media_type !== "video" && m.media_type !== "demo").length > 0 && /* @__PURE__ */ jsx52(
|
|
6226
6153
|
ImageGalleryModal,
|
|
6227
6154
|
{
|
|
6228
6155
|
images: releaseMedia.filter((m) => m.media_type !== "video" && m.media_type !== "demo").map((m) => m.media_url),
|
|
@@ -6235,24 +6162,24 @@ function ReleaseDetailPage({
|
|
|
6235
6162
|
}
|
|
6236
6163
|
|
|
6237
6164
|
// src/components/shared/product-release/release-detail-skeleton.tsx
|
|
6238
|
-
import { jsx as
|
|
6165
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
6239
6166
|
function ReleaseDetailSkeleton() {
|
|
6240
|
-
return /* @__PURE__ */
|
|
6167
|
+
return /* @__PURE__ */ jsx53(DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
|
|
6241
6168
|
}
|
|
6242
6169
|
|
|
6243
6170
|
// src/components/shared/roadmap/roadmap-grid.tsx
|
|
6244
|
-
import { useEffect as
|
|
6171
|
+
import { useEffect as useEffect8, useRef as useRef5, useState as useState9 } from "react";
|
|
6245
6172
|
|
|
6246
6173
|
// src/components/shared/roadmap/use-roadmap-voting.ts
|
|
6247
|
-
import { useState as
|
|
6174
|
+
import { useState as useState8, useEffect as useEffect7, useCallback as useCallback4 } from "react";
|
|
6248
6175
|
var DEFAULT_VOTE_ENDPOINT = "/api/roadmap/vote";
|
|
6249
6176
|
var DEFAULT_STORAGE_KEY = "roadmap_votes_v1";
|
|
6250
6177
|
function useRoadmapVoting(options = {}) {
|
|
6251
6178
|
const voteApiEndpoint = options.voteApiEndpoint ?? DEFAULT_VOTE_ENDPOINT;
|
|
6252
6179
|
const storageKey = options.storageKey ?? DEFAULT_STORAGE_KEY;
|
|
6253
|
-
const [votes, setVotes] =
|
|
6254
|
-
const [isLoading, setIsLoading] =
|
|
6255
|
-
|
|
6180
|
+
const [votes, setVotes] = useState8({});
|
|
6181
|
+
const [isLoading, setIsLoading] = useState8(true);
|
|
6182
|
+
useEffect7(() => {
|
|
6256
6183
|
setIsLoading(true);
|
|
6257
6184
|
setVotes({});
|
|
6258
6185
|
try {
|
|
@@ -6266,7 +6193,7 @@ function useRoadmapVoting(options = {}) {
|
|
|
6266
6193
|
setIsLoading(false);
|
|
6267
6194
|
}
|
|
6268
6195
|
}, [storageKey]);
|
|
6269
|
-
|
|
6196
|
+
useEffect7(() => {
|
|
6270
6197
|
if (!isLoading) {
|
|
6271
6198
|
try {
|
|
6272
6199
|
localStorage.setItem(storageKey, JSON.stringify(votes));
|
|
@@ -6275,13 +6202,13 @@ function useRoadmapVoting(options = {}) {
|
|
|
6275
6202
|
}
|
|
6276
6203
|
}
|
|
6277
6204
|
}, [votes, isLoading, storageKey]);
|
|
6278
|
-
const getVote =
|
|
6205
|
+
const getVote = useCallback4(
|
|
6279
6206
|
(taskId) => {
|
|
6280
6207
|
return votes[taskId] || null;
|
|
6281
6208
|
},
|
|
6282
6209
|
[votes]
|
|
6283
6210
|
);
|
|
6284
|
-
const toggleVote =
|
|
6211
|
+
const toggleVote = useCallback4(
|
|
6285
6212
|
async (taskId, voteType) => {
|
|
6286
6213
|
const currentVote = votes[taskId];
|
|
6287
6214
|
let newVote = null;
|
|
@@ -6329,7 +6256,7 @@ function useRoadmapVoting(options = {}) {
|
|
|
6329
6256
|
},
|
|
6330
6257
|
[votes, voteApiEndpoint]
|
|
6331
6258
|
);
|
|
6332
|
-
const clearVotes =
|
|
6259
|
+
const clearVotes = useCallback4(() => {
|
|
6333
6260
|
setVotes({});
|
|
6334
6261
|
localStorage.removeItem(storageKey);
|
|
6335
6262
|
}, [storageKey]);
|
|
@@ -6344,7 +6271,7 @@ function useRoadmapVoting(options = {}) {
|
|
|
6344
6271
|
|
|
6345
6272
|
// src/components/shared/roadmap/roadmap-grid.tsx
|
|
6346
6273
|
init_cn();
|
|
6347
|
-
import { jsx as
|
|
6274
|
+
import { jsx as jsx54, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
6348
6275
|
var DEFAULT_BUILD_REFRESH_URL = (taskId) => `/api/roadmap/${taskId}`;
|
|
6349
6276
|
var BACKLOG = "Backlog";
|
|
6350
6277
|
function getStatusPriority(status) {
|
|
@@ -6393,7 +6320,7 @@ function RoadmapGridSingle({
|
|
|
6393
6320
|
onVote,
|
|
6394
6321
|
votingTasks
|
|
6395
6322
|
}) {
|
|
6396
|
-
return /* @__PURE__ */
|
|
6323
|
+
return /* @__PURE__ */ jsx54("div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: items.map((item) => /* @__PURE__ */ jsx54(
|
|
6397
6324
|
RoadmapCard,
|
|
6398
6325
|
{
|
|
6399
6326
|
item,
|
|
@@ -6415,7 +6342,7 @@ function RoadmapGrid({
|
|
|
6415
6342
|
quartersToKeepClosed = 2
|
|
6416
6343
|
}) {
|
|
6417
6344
|
const { getVote, toggleVote } = useRoadmapVoting(votingOptions);
|
|
6418
|
-
const [votingTasks, setVotingTasks] =
|
|
6345
|
+
const [votingTasks, setVotingTasks] = useState9(/* @__PURE__ */ new Set());
|
|
6419
6346
|
const handleVote = async (taskId, voteType) => {
|
|
6420
6347
|
if (votingTasks.has(taskId)) return;
|
|
6421
6348
|
setVotingTasks((prev) => new Set(prev).add(taskId));
|
|
@@ -6452,11 +6379,11 @@ function RoadmapGrid({
|
|
|
6452
6379
|
return compareQuarters(aD, bD);
|
|
6453
6380
|
});
|
|
6454
6381
|
const sortedQuartersKey = sortedQuarters.join(",");
|
|
6455
|
-
const [expandedQuarters, setExpandedQuarters] =
|
|
6456
|
-
const [isInitialized, setIsInitialized] =
|
|
6457
|
-
const hasSetInitialState =
|
|
6458
|
-
const prevItemsLength =
|
|
6459
|
-
|
|
6382
|
+
const [expandedQuarters, setExpandedQuarters] = useState9([]);
|
|
6383
|
+
const [isInitialized, setIsInitialized] = useState9(false);
|
|
6384
|
+
const hasSetInitialState = useRef5(false);
|
|
6385
|
+
const prevItemsLength = useRef5(0);
|
|
6386
|
+
useEffect8(() => {
|
|
6460
6387
|
const itemsJustLoaded = prevItemsLength.current === 0 && items.length > 0;
|
|
6461
6388
|
prevItemsLength.current = items.length;
|
|
6462
6389
|
if (sortedQuarters.length > 0 && (!hasSetInitialState.current || itemsJustLoaded)) {
|
|
@@ -6467,14 +6394,14 @@ function RoadmapGrid({
|
|
|
6467
6394
|
setIsInitialized(true);
|
|
6468
6395
|
}
|
|
6469
6396
|
}, [sortedQuarters.length, items.length]);
|
|
6470
|
-
|
|
6397
|
+
useEffect8(() => {
|
|
6471
6398
|
if (!isInitialized || sortedQuarters.length === 0) return;
|
|
6472
6399
|
setExpandedQuarters(
|
|
6473
6400
|
hasActiveFilters ? [...sortedQuarters] : computeDefaultExpandedQuarters(sortedQuarters, quartersToKeepClosed)
|
|
6474
6401
|
);
|
|
6475
6402
|
}, [hasActiveFilters, sortedQuartersKey, isInitialized, quartersToKeepClosed]);
|
|
6476
6403
|
if (items.length === 0) {
|
|
6477
|
-
return /* @__PURE__ */
|
|
6404
|
+
return /* @__PURE__ */ jsx54(
|
|
6478
6405
|
EmptyState,
|
|
6479
6406
|
{
|
|
6480
6407
|
type: "generic",
|
|
@@ -6484,7 +6411,7 @@ function RoadmapGrid({
|
|
|
6484
6411
|
);
|
|
6485
6412
|
}
|
|
6486
6413
|
if (!groupByQuarter) {
|
|
6487
|
-
return /* @__PURE__ */
|
|
6414
|
+
return /* @__PURE__ */ jsx54(
|
|
6488
6415
|
RoadmapGridSingle,
|
|
6489
6416
|
{
|
|
6490
6417
|
items,
|
|
@@ -6495,7 +6422,7 @@ function RoadmapGrid({
|
|
|
6495
6422
|
}
|
|
6496
6423
|
);
|
|
6497
6424
|
}
|
|
6498
|
-
return /* @__PURE__ */
|
|
6425
|
+
return /* @__PURE__ */ jsx54(
|
|
6499
6426
|
Accordion,
|
|
6500
6427
|
{
|
|
6501
6428
|
type: "multiple",
|
|
@@ -6505,15 +6432,15 @@ function RoadmapGrid({
|
|
|
6505
6432
|
children: sortedQuarters.map((quarter) => {
|
|
6506
6433
|
const itemCount = itemsByQuarter[quarter]?.length || 0;
|
|
6507
6434
|
const isExpanded = expandedQuarters.includes(quarter);
|
|
6508
|
-
return /* @__PURE__ */
|
|
6435
|
+
return /* @__PURE__ */ jsxs43(
|
|
6509
6436
|
AccordionItem,
|
|
6510
6437
|
{
|
|
6511
6438
|
value: quarter,
|
|
6512
6439
|
id: `quarter-${quarter.replace(/\s+/g, "-").toLowerCase()}`,
|
|
6513
6440
|
className: "border-0",
|
|
6514
6441
|
children: [
|
|
6515
|
-
/* @__PURE__ */
|
|
6516
|
-
/* @__PURE__ */
|
|
6442
|
+
/* @__PURE__ */ jsx54(AccordionTrigger, { className: "w-full p-0 hover:no-underline [&>svg]:h-5 [&>svg]:w-5 [&>svg]:text-ods-text-secondary [&>svg]:ml-auto [&>svg]:shrink-0", children: /* @__PURE__ */ jsxs43("div", { className: "flex items-center gap-3", children: [
|
|
6443
|
+
/* @__PURE__ */ jsxs43(
|
|
6517
6444
|
"h3",
|
|
6518
6445
|
{
|
|
6519
6446
|
className: cn(
|
|
@@ -6522,11 +6449,11 @@ function RoadmapGrid({
|
|
|
6522
6449
|
),
|
|
6523
6450
|
children: [
|
|
6524
6451
|
quarter,
|
|
6525
|
-
/* @__PURE__ */
|
|
6452
|
+
/* @__PURE__ */ jsx54("span", { className: "text-ods-accent", children: ":" })
|
|
6526
6453
|
]
|
|
6527
6454
|
}
|
|
6528
6455
|
),
|
|
6529
|
-
/* @__PURE__ */
|
|
6456
|
+
/* @__PURE__ */ jsxs43(
|
|
6530
6457
|
"span",
|
|
6531
6458
|
{
|
|
6532
6459
|
className: cn(
|
|
@@ -6537,12 +6464,12 @@ function RoadmapGrid({
|
|
|
6537
6464
|
itemCount,
|
|
6538
6465
|
" ",
|
|
6539
6466
|
itemCount === 1 ? "item" : "items",
|
|
6540
|
-
isInitialized && !isExpanded && /* @__PURE__ */
|
|
6467
|
+
isInitialized && !isExpanded && /* @__PURE__ */ jsx54("span", { className: "ml-2 text-ods-accent", children: "Click to expand" })
|
|
6541
6468
|
]
|
|
6542
6469
|
}
|
|
6543
6470
|
)
|
|
6544
6471
|
] }) }),
|
|
6545
|
-
/* @__PURE__ */
|
|
6472
|
+
/* @__PURE__ */ jsx54(AccordionContent, { className: "pt-4 pb-0 overflow-hidden data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ jsx54(
|
|
6546
6473
|
RoadmapGridSingle,
|
|
6547
6474
|
{
|
|
6548
6475
|
items: itemsByQuarter[quarter],
|
|
@@ -6562,36 +6489,36 @@ function RoadmapGrid({
|
|
|
6562
6489
|
}
|
|
6563
6490
|
|
|
6564
6491
|
// src/components/shared/roadmap/roadmap-grid-skeleton.tsx
|
|
6565
|
-
import { jsx as
|
|
6492
|
+
import { jsx as jsx55, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
6566
6493
|
function RoadmapCardSkeleton2() {
|
|
6567
|
-
return /* @__PURE__ */
|
|
6568
|
-
/* @__PURE__ */
|
|
6569
|
-
/* @__PURE__ */
|
|
6570
|
-
/* @__PURE__ */
|
|
6571
|
-
/* @__PURE__ */
|
|
6572
|
-
/* @__PURE__ */
|
|
6573
|
-
/* @__PURE__ */
|
|
6494
|
+
return /* @__PURE__ */ jsxs44("div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[24px] flex flex-col gap-[16px] min-h-[340px] relative", children: [
|
|
6495
|
+
/* @__PURE__ */ jsx55("div", { className: "absolute top-[24px] right-[24px]", children: /* @__PURE__ */ jsx55("div", { className: "h-[20px] w-[80px] bg-ods-border rounded animate-pulse" }) }),
|
|
6496
|
+
/* @__PURE__ */ jsxs44("div", { className: "flex items-center gap-[16px] pr-[120px]", children: [
|
|
6497
|
+
/* @__PURE__ */ jsx55("div", { className: "w-[80px] h-[80px] bg-ods-border rounded-lg flex-shrink-0 animate-pulse" }),
|
|
6498
|
+
/* @__PURE__ */ jsxs44("div", { className: "flex-1 min-w-0 flex flex-col gap-1", children: [
|
|
6499
|
+
/* @__PURE__ */ jsx55("div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ jsx55("div", { className: "h-[24px] w-full bg-ods-border rounded animate-pulse" }) }),
|
|
6500
|
+
/* @__PURE__ */ jsx55("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ jsx55("div", { className: "h-[14px] w-1/2 bg-ods-border rounded animate-pulse" }) })
|
|
6574
6501
|
] })
|
|
6575
6502
|
] }),
|
|
6576
|
-
/* @__PURE__ */
|
|
6577
|
-
/* @__PURE__ */
|
|
6578
|
-
/* @__PURE__ */
|
|
6579
|
-
/* @__PURE__ */
|
|
6503
|
+
/* @__PURE__ */ jsx55("div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ jsxs44("div", { className: "w-full space-y-2", children: [
|
|
6504
|
+
/* @__PURE__ */ jsx55("div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
|
|
6505
|
+
/* @__PURE__ */ jsx55("div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
|
|
6506
|
+
/* @__PURE__ */ jsx55("div", { className: "h-[24px] w-4/5 bg-ods-border rounded animate-pulse" })
|
|
6580
6507
|
] }) }),
|
|
6581
|
-
/* @__PURE__ */
|
|
6582
|
-
/* @__PURE__ */
|
|
6583
|
-
/* @__PURE__ */
|
|
6584
|
-
/* @__PURE__ */
|
|
6508
|
+
/* @__PURE__ */ jsx55("div", { className: "flex-1" }),
|
|
6509
|
+
/* @__PURE__ */ jsxs44("div", { className: "flex items-center justify-between", children: [
|
|
6510
|
+
/* @__PURE__ */ jsx55("div", { className: "h-[48px] w-[120px] bg-ods-border rounded animate-pulse" }),
|
|
6511
|
+
/* @__PURE__ */ jsx55("div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" })
|
|
6585
6512
|
] })
|
|
6586
6513
|
] });
|
|
6587
6514
|
}
|
|
6588
6515
|
function RoadmapGridSkeleton({ count = 4, showLeftMargin = true }) {
|
|
6589
|
-
return /* @__PURE__ */
|
|
6516
|
+
return /* @__PURE__ */ jsx55("div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsx55(RoadmapCardSkeleton2, {}, i)) });
|
|
6590
6517
|
}
|
|
6591
6518
|
|
|
6592
6519
|
// src/components/shared/roadmap/roadmap-view.tsx
|
|
6593
6520
|
import { useMemo as useMemo2 } from "react";
|
|
6594
|
-
import { jsx as
|
|
6521
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
6595
6522
|
var DEFAULT_ENDPOINT2 = "/api/roadmap";
|
|
6596
6523
|
var DEFAULT_SEARCH_PARAM_KEY2 = DEV_SECTION_PARAM_KEYS.search;
|
|
6597
6524
|
var DEFAULT_STATUS_PARAM_KEY2 = DEV_SECTION_PARAM_KEYS.status;
|
|
@@ -6619,12 +6546,12 @@ function RoadmapView({
|
|
|
6619
6546
|
);
|
|
6620
6547
|
const items = data?.items ?? [];
|
|
6621
6548
|
if (error) {
|
|
6622
|
-
return /* @__PURE__ */
|
|
6549
|
+
return /* @__PURE__ */ jsx56(LoadError, { message: "Failed to load roadmap.", onRetry: reload });
|
|
6623
6550
|
}
|
|
6624
6551
|
if (isLoading && !data) {
|
|
6625
|
-
return /* @__PURE__ */
|
|
6552
|
+
return /* @__PURE__ */ jsx56(RoadmapGridSkeleton, { showLeftMargin });
|
|
6626
6553
|
}
|
|
6627
|
-
return /* @__PURE__ */
|
|
6554
|
+
return /* @__PURE__ */ jsx56(
|
|
6628
6555
|
RoadmapGrid,
|
|
6629
6556
|
{
|
|
6630
6557
|
items,
|
|
@@ -6641,46 +6568,46 @@ function RoadmapView({
|
|
|
6641
6568
|
}
|
|
6642
6569
|
|
|
6643
6570
|
// src/components/shared/delivery/delivery-lists.tsx
|
|
6644
|
-
import { useEffect as
|
|
6571
|
+
import { useEffect as useEffect9, useState as useState10 } from "react";
|
|
6645
6572
|
|
|
6646
6573
|
// src/components/shared/delivery/delivery-table.tsx
|
|
6647
|
-
import { jsx as
|
|
6574
|
+
import { jsx as jsx57, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
6648
6575
|
function SkeletonRow() {
|
|
6649
|
-
return /* @__PURE__ */
|
|
6650
|
-
/* @__PURE__ */
|
|
6651
|
-
/* @__PURE__ */
|
|
6652
|
-
/* @__PURE__ */
|
|
6653
|
-
/* @__PURE__ */
|
|
6654
|
-
/* @__PURE__ */
|
|
6655
|
-
/* @__PURE__ */
|
|
6656
|
-
/* @__PURE__ */
|
|
6576
|
+
return /* @__PURE__ */ jsx57("div", { className: "border-b border-ods-border last:border-b-0 p-[12px] md:p-[16px]", children: /* @__PURE__ */ jsxs45("div", { className: "flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full", children: [
|
|
6577
|
+
/* @__PURE__ */ jsxs45("div", { className: "flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]", children: [
|
|
6578
|
+
/* @__PURE__ */ jsx57("div", { className: "min-h-[24px] flex items-center", children: /* @__PURE__ */ jsx57("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }) }),
|
|
6579
|
+
/* @__PURE__ */ jsx57("div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ jsx57("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-1/2" }) }),
|
|
6580
|
+
/* @__PURE__ */ jsx57("div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ jsxs45("div", { className: "flex-1 space-y-1", children: [
|
|
6581
|
+
/* @__PURE__ */ jsx57("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
|
|
6582
|
+
/* @__PURE__ */ jsx57("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
|
|
6583
|
+
/* @__PURE__ */ jsx57("div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-2/3" })
|
|
6657
6584
|
] }) })
|
|
6658
6585
|
] }),
|
|
6659
|
-
/* @__PURE__ */
|
|
6660
|
-
/* @__PURE__ */
|
|
6661
|
-
/* @__PURE__ */
|
|
6586
|
+
/* @__PURE__ */ jsxs45("div", { className: "flex-shrink-0 self-start flex flex-col gap-2", children: [
|
|
6587
|
+
/* @__PURE__ */ jsx57("div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" }),
|
|
6588
|
+
/* @__PURE__ */ jsx57("div", { className: "h-[32px] w-[120px] bg-ods-border rounded animate-pulse" })
|
|
6662
6589
|
] })
|
|
6663
6590
|
] }) });
|
|
6664
6591
|
}
|
|
6665
6592
|
function DeliveryTable({ items, isLoading = false }) {
|
|
6666
6593
|
if (isLoading) {
|
|
6667
|
-
return /* @__PURE__ */
|
|
6594
|
+
return /* @__PURE__ */ jsx57("div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ jsx57("div", { className: "w-full", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsx57(SkeletonRow, {}, i)) }) });
|
|
6668
6595
|
}
|
|
6669
6596
|
if (items.length === 0) {
|
|
6670
|
-
return /* @__PURE__ */
|
|
6597
|
+
return /* @__PURE__ */ jsx57("div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[40px] text-center w-full", children: /* @__PURE__ */ jsx57("p", { className: "text-ods-text-secondary text-[14px] font-['DM_Sans'] font-medium", children: "No tasks available" }) });
|
|
6671
6598
|
}
|
|
6672
|
-
return /* @__PURE__ */
|
|
6599
|
+
return /* @__PURE__ */ jsx57("div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ jsx57("div", { className: "w-full", children: items.map((item) => /* @__PURE__ */ jsx57(
|
|
6673
6600
|
"div",
|
|
6674
6601
|
{
|
|
6675
6602
|
className: "border-b border-ods-border last:border-b-0",
|
|
6676
|
-
children: /* @__PURE__ */
|
|
6603
|
+
children: /* @__PURE__ */ jsx57(DeliveryRow, { item })
|
|
6677
6604
|
},
|
|
6678
6605
|
item.id
|
|
6679
6606
|
)) }) });
|
|
6680
6607
|
}
|
|
6681
6608
|
|
|
6682
6609
|
// src/components/shared/delivery/delivery-lists.tsx
|
|
6683
|
-
import { jsx as
|
|
6610
|
+
import { jsx as jsx58, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
6684
6611
|
var DEFAULT_COMPLETED_ENDPOINT = "/api/delivery/completed";
|
|
6685
6612
|
var DEFAULT_IN_PROGRESS_ENDPOINT = "/api/delivery/in-progress";
|
|
6686
6613
|
var DEFAULT_SEARCH_PARAM_KEY3 = DEV_SECTION_PARAM_KEYS.search;
|
|
@@ -6694,12 +6621,12 @@ function DeliveryLists({
|
|
|
6694
6621
|
const searchParams = useSearchParams();
|
|
6695
6622
|
const router = useRouter();
|
|
6696
6623
|
const pathname = usePathname();
|
|
6697
|
-
const [data, setData] =
|
|
6698
|
-
const [isLoading, setIsLoading] =
|
|
6699
|
-
const [error, setError] =
|
|
6624
|
+
const [data, setData] = useState10(null);
|
|
6625
|
+
const [isLoading, setIsLoading] = useState10(true);
|
|
6626
|
+
const [error, setError] = useState10(null);
|
|
6700
6627
|
const searchQuery = searchParams.get(searchParamKey) || "";
|
|
6701
6628
|
const taskTypeFilter = searchParams.get(taskTypeParamKey) || "all";
|
|
6702
|
-
|
|
6629
|
+
useEffect9(() => {
|
|
6703
6630
|
async function fetchDeliveryData() {
|
|
6704
6631
|
try {
|
|
6705
6632
|
setIsLoading(true);
|
|
@@ -6744,10 +6671,10 @@ function DeliveryLists({
|
|
|
6744
6671
|
const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
|
|
6745
6672
|
const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
|
|
6746
6673
|
if (error) {
|
|
6747
|
-
return /* @__PURE__ */
|
|
6674
|
+
return /* @__PURE__ */ jsx58("div", { className: "w-full", children: /* @__PURE__ */ jsx58(LoadError, { message: error, onRetry: () => window.location.reload() }) });
|
|
6748
6675
|
}
|
|
6749
|
-
return /* @__PURE__ */
|
|
6750
|
-
!isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */
|
|
6676
|
+
return /* @__PURE__ */ jsxs46("div", { className: "w-full flex flex-col gap-[40px]", children: [
|
|
6677
|
+
!isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */ jsx58(
|
|
6751
6678
|
EmptyState,
|
|
6752
6679
|
{
|
|
6753
6680
|
type: "search",
|
|
@@ -6762,7 +6689,7 @@ function DeliveryLists({
|
|
|
6762
6689
|
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
6763
6690
|
}
|
|
6764
6691
|
}
|
|
6765
|
-
) : /* @__PURE__ */
|
|
6692
|
+
) : /* @__PURE__ */ jsx58(
|
|
6766
6693
|
EmptyState,
|
|
6767
6694
|
{
|
|
6768
6695
|
type: "generic",
|
|
@@ -6771,12 +6698,12 @@ function DeliveryLists({
|
|
|
6771
6698
|
showCTA: false
|
|
6772
6699
|
}
|
|
6773
6700
|
)),
|
|
6774
|
-
showCompleted && (hasResults || isLoading) && /* @__PURE__ */
|
|
6775
|
-
/* @__PURE__ */
|
|
6701
|
+
showCompleted && (hasResults || isLoading) && /* @__PURE__ */ jsxs46("div", { className: "w-full", children: [
|
|
6702
|
+
/* @__PURE__ */ jsxs46("h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
|
|
6776
6703
|
"Recently Completed",
|
|
6777
|
-
/* @__PURE__ */
|
|
6704
|
+
/* @__PURE__ */ jsx58("span", { className: "text-ods-accent", children: ":" })
|
|
6778
6705
|
] }),
|
|
6779
|
-
/* @__PURE__ */
|
|
6706
|
+
/* @__PURE__ */ jsx58(
|
|
6780
6707
|
DeliveryTable,
|
|
6781
6708
|
{
|
|
6782
6709
|
items: filteredCompleted,
|
|
@@ -6784,12 +6711,12 @@ function DeliveryLists({
|
|
|
6784
6711
|
}
|
|
6785
6712
|
)
|
|
6786
6713
|
] }),
|
|
6787
|
-
showInProgress && (hasResults || isLoading) && /* @__PURE__ */
|
|
6788
|
-
/* @__PURE__ */
|
|
6714
|
+
showInProgress && (hasResults || isLoading) && /* @__PURE__ */ jsxs46("div", { className: "w-full", children: [
|
|
6715
|
+
/* @__PURE__ */ jsxs46("h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
|
|
6789
6716
|
"Active Tasks",
|
|
6790
|
-
/* @__PURE__ */
|
|
6717
|
+
/* @__PURE__ */ jsx58("span", { className: "text-ods-accent", children: ":" })
|
|
6791
6718
|
] }),
|
|
6792
|
-
/* @__PURE__ */
|
|
6719
|
+
/* @__PURE__ */ jsx58(
|
|
6793
6720
|
DeliveryTable,
|
|
6794
6721
|
{
|
|
6795
6722
|
items: filteredInProgress,
|
|
@@ -6804,14 +6731,14 @@ function DeliveryLists({
|
|
|
6804
6731
|
init_next_navigation();
|
|
6805
6732
|
|
|
6806
6733
|
// src/components/shared/legal-document/use-legal-docs.ts
|
|
6807
|
-
import { useState as
|
|
6734
|
+
import { useState as useState11, useEffect as useEffect10, useCallback as useCallback5 } from "react";
|
|
6808
6735
|
function useLegalDocs(docType, options = {}) {
|
|
6809
6736
|
const { initialData = null, apiEndpoint } = options;
|
|
6810
6737
|
const effectiveEndpoint = apiEndpoint ?? `/api/legal/${docType}`;
|
|
6811
|
-
const [data, setData] =
|
|
6812
|
-
const [isLoading, setIsLoading] =
|
|
6813
|
-
const [error, setError] =
|
|
6814
|
-
const fetchDocument =
|
|
6738
|
+
const [data, setData] = useState11(initialData ?? null);
|
|
6739
|
+
const [isLoading, setIsLoading] = useState11(!initialData);
|
|
6740
|
+
const [error, setError] = useState11(null);
|
|
6741
|
+
const fetchDocument = useCallback5(async () => {
|
|
6815
6742
|
try {
|
|
6816
6743
|
setIsLoading(true);
|
|
6817
6744
|
setError(null);
|
|
@@ -6834,12 +6761,12 @@ function useLegalDocs(docType, options = {}) {
|
|
|
6834
6761
|
setIsLoading(false);
|
|
6835
6762
|
}
|
|
6836
6763
|
}, [docType, effectiveEndpoint]);
|
|
6837
|
-
|
|
6764
|
+
useEffect10(() => {
|
|
6838
6765
|
setData(initialData ?? null);
|
|
6839
6766
|
setError(null);
|
|
6840
6767
|
setIsLoading(!initialData);
|
|
6841
6768
|
}, [docType, initialData]);
|
|
6842
|
-
|
|
6769
|
+
useEffect10(() => {
|
|
6843
6770
|
if (initialData) return;
|
|
6844
6771
|
fetchDocument();
|
|
6845
6772
|
}, [fetchDocument, initialData]);
|
|
@@ -6855,7 +6782,7 @@ function useLegalDocs(docType, options = {}) {
|
|
|
6855
6782
|
}
|
|
6856
6783
|
|
|
6857
6784
|
// src/components/shared/legal-document/legal-document-page.tsx
|
|
6858
|
-
import { jsx as
|
|
6785
|
+
import { jsx as jsx59, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
6859
6786
|
function LegalDocumentPage({
|
|
6860
6787
|
docType,
|
|
6861
6788
|
title,
|
|
@@ -6878,58 +6805,58 @@ function LegalDocumentPage({
|
|
|
6878
6805
|
};
|
|
6879
6806
|
const fallbackLastUpdatedLabel = data?.lastSynced != null ? formatLegalDate(data.lastSynced) : null;
|
|
6880
6807
|
const effectiveLastUpdatedLabel = initialLastUpdatedLabel ?? fallbackLastUpdatedLabel;
|
|
6881
|
-
const customTitle = /* @__PURE__ */
|
|
6882
|
-
/* @__PURE__ */
|
|
6883
|
-
/* @__PURE__ */
|
|
6884
|
-
/* @__PURE__ */
|
|
6808
|
+
const customTitle = /* @__PURE__ */ jsxs47("div", { className: "flex flex-col gap-4", children: [
|
|
6809
|
+
/* @__PURE__ */ jsxs47(PageHeading, { children: [
|
|
6810
|
+
/* @__PURE__ */ jsx59("span", { children: title }),
|
|
6811
|
+
/* @__PURE__ */ jsx59("span", { className: "text-ods-accent", children: "." })
|
|
6885
6812
|
] }),
|
|
6886
|
-
/* @__PURE__ */
|
|
6813
|
+
/* @__PURE__ */ jsxs47("p", { className: "font-['DM_Sans'] text-base md:text-lg text-ods-text-secondary max-w-2xl", children: [
|
|
6887
6814
|
effectiveLastUpdatedLabel ? `Last Updated: ${effectiveLastUpdatedLabel}` : fallbackDescription,
|
|
6888
|
-
data?.sourceFile && /* @__PURE__ */
|
|
6815
|
+
data?.sourceFile && /* @__PURE__ */ jsxs47("span", { className: "block text-sm mt-1 opacity-75", children: [
|
|
6889
6816
|
"Source: ",
|
|
6890
6817
|
data.sourceFile
|
|
6891
6818
|
] })
|
|
6892
6819
|
] })
|
|
6893
6820
|
] });
|
|
6894
|
-
return /* @__PURE__ */
|
|
6895
|
-
/* @__PURE__ */
|
|
6896
|
-
/* @__PURE__ */
|
|
6821
|
+
return /* @__PURE__ */ jsx59(PageShell, { children: /* @__PURE__ */ jsxs47(PageLayout, { backButton: backCfg, children: [
|
|
6822
|
+
/* @__PURE__ */ jsx59("div", { className: "flex flex-col gap-4", children: customTitle }),
|
|
6823
|
+
/* @__PURE__ */ jsx59("div", { className: "flex flex-col lg:flex-row gap-6 lg:gap-10 items-start flex-1", children: /* @__PURE__ */ jsx59("div", { className: "flex-1", children: /* @__PURE__ */ jsx59("div", { className: "w-full", children: /* @__PURE__ */ jsx59("article", { className: "space-y-2", children: isLoading ? (
|
|
6897
6824
|
// Loading skeleton matching Knowledge Hub pattern
|
|
6898
|
-
/* @__PURE__ */
|
|
6899
|
-
/* @__PURE__ */
|
|
6900
|
-
/* @__PURE__ */
|
|
6901
|
-
/* @__PURE__ */
|
|
6902
|
-
/* @__PURE__ */
|
|
6903
|
-
/* @__PURE__ */
|
|
6825
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-6", children: [
|
|
6826
|
+
/* @__PURE__ */ jsx59("div", { className: "h-10 bg-ods-skeleton rounded-lg w-3/4 animate-pulse" }),
|
|
6827
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-4", children: [
|
|
6828
|
+
/* @__PURE__ */ jsx59("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
6829
|
+
/* @__PURE__ */ jsx59("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
6830
|
+
/* @__PURE__ */ jsx59("div", { className: "h-4 bg-ods-skeleton rounded w-5/6 animate-pulse" })
|
|
6904
6831
|
] }),
|
|
6905
|
-
/* @__PURE__ */
|
|
6906
|
-
/* @__PURE__ */
|
|
6907
|
-
/* @__PURE__ */
|
|
6908
|
-
/* @__PURE__ */
|
|
6832
|
+
/* @__PURE__ */ jsx59("div", { className: "h-32 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
6833
|
+
/* @__PURE__ */ jsxs47("div", { className: "space-y-4", children: [
|
|
6834
|
+
/* @__PURE__ */ jsx59("div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
6835
|
+
/* @__PURE__ */ jsx59("div", { className: "h-4 bg-ods-skeleton rounded w-4/5 animate-pulse" })
|
|
6909
6836
|
] })
|
|
6910
6837
|
] })
|
|
6911
|
-
) : error ? /* @__PURE__ */
|
|
6912
|
-
/* @__PURE__ */
|
|
6913
|
-
/* @__PURE__ */
|
|
6914
|
-
/* @__PURE__ */
|
|
6838
|
+
) : error ? /* @__PURE__ */ jsxs47("div", { className: "text-center space-y-4", children: [
|
|
6839
|
+
/* @__PURE__ */ jsxs47("div", { className: "bg-red-900/20 border border-red-700 rounded-lg p-6", children: [
|
|
6840
|
+
/* @__PURE__ */ jsx59("p", { className: "text-red-400 mb-2", children: errorTitle }),
|
|
6841
|
+
/* @__PURE__ */ jsx59("p", { className: "text-red-300 text-sm", children: error })
|
|
6915
6842
|
] }),
|
|
6916
|
-
/* @__PURE__ */
|
|
6917
|
-
/* @__PURE__ */
|
|
6918
|
-
/* @__PURE__ */
|
|
6843
|
+
/* @__PURE__ */ jsxs47("div", { className: "text-ods-text-secondary", children: [
|
|
6844
|
+
/* @__PURE__ */ jsx59("p", { children: errorContactPrompt }),
|
|
6845
|
+
/* @__PURE__ */ jsx59("a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail })
|
|
6919
6846
|
] })
|
|
6920
|
-
] }) : data ? /* @__PURE__ */
|
|
6847
|
+
] }) : data ? /* @__PURE__ */ jsx59(
|
|
6921
6848
|
MarkdownRenderer,
|
|
6922
6849
|
{
|
|
6923
6850
|
content: data.content,
|
|
6924
6851
|
sectionIds: data.sections || [],
|
|
6925
6852
|
demoteMarkdownH1ToH2: true
|
|
6926
6853
|
}
|
|
6927
|
-
) : /* @__PURE__ */
|
|
6928
|
-
/* @__PURE__ */
|
|
6929
|
-
/* @__PURE__ */
|
|
6854
|
+
) : /* @__PURE__ */ jsxs47("div", { className: "text-center text-ods-text-secondary py-16", children: [
|
|
6855
|
+
/* @__PURE__ */ jsx59("p", { className: "text-xl", children: emptyStateMessage }),
|
|
6856
|
+
/* @__PURE__ */ jsxs47("p", { className: "mt-2", children: [
|
|
6930
6857
|
"Please contact",
|
|
6931
6858
|
" ",
|
|
6932
|
-
/* @__PURE__ */
|
|
6859
|
+
/* @__PURE__ */ jsx59("a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail }),
|
|
6933
6860
|
" ",
|
|
6934
6861
|
"for more information."
|
|
6935
6862
|
] })
|
|
@@ -7255,6 +7182,7 @@ export {
|
|
|
7255
7182
|
FLAMINGO_LOGO_VIEWBOX,
|
|
7256
7183
|
FacebookIcon,
|
|
7257
7184
|
FaqAccordion,
|
|
7185
|
+
FaqSection,
|
|
7258
7186
|
FeatureCardGrid,
|
|
7259
7187
|
FeatureList,
|
|
7260
7188
|
FeatureListSkeleton,
|
|
@@ -7735,12 +7663,14 @@ export {
|
|
|
7735
7663
|
alignJustify,
|
|
7736
7664
|
applyProxyAuth,
|
|
7737
7665
|
badgeVariants,
|
|
7666
|
+
baseFaqSchema,
|
|
7738
7667
|
blogFilterConfig,
|
|
7739
7668
|
buildAnchorProps,
|
|
7740
7669
|
buildAutoContinuationDirective,
|
|
7741
7670
|
buildChatAttachmentViewUrl,
|
|
7742
7671
|
buildChatRefKey,
|
|
7743
7672
|
buildDiscussAddendum,
|
|
7673
|
+
buildFaqJsonLdFromFaqs,
|
|
7744
7674
|
buildNatsWsUrl,
|
|
7745
7675
|
buildProductReleaseCardProps,
|
|
7746
7676
|
buttonVariants,
|