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