@flamingo-stack/openframe-frontend-core 0.0.581 → 0.0.582-1958.5391.1
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-2EIGO6ZS.js +1055 -0
- package/dist/chunk-2EIGO6ZS.js.map +1 -0
- package/dist/{chunk-HVSZYUGP.js → chunk-53ZVUW2M.js} +5 -5
- package/dist/{chunk-R5JVRFSW.js → chunk-5U2FU5LM.js} +3 -3
- package/dist/{chunk-AIALG25H.cjs → chunk-7WE6FGGK.cjs} +69 -69
- package/dist/{chunk-AIALG25H.cjs.map → chunk-7WE6FGGK.cjs.map} +1 -1
- package/dist/{chunk-EZVABFEO.js → chunk-CJW6KZD3.js} +2 -2
- package/dist/{chunk-GMQEHDN2.cjs → chunk-E4TK2BBD.cjs} +5 -5
- package/dist/{chunk-GMQEHDN2.cjs.map → chunk-E4TK2BBD.cjs.map} +1 -1
- package/dist/{chunk-KAEVE7W2.js → chunk-EULY3BXB.js} +2 -2
- package/dist/{chunk-HJVKPG55.js → chunk-F227VMPL.js} +125 -15
- package/dist/{chunk-HJVKPG55.js.map → chunk-F227VMPL.js.map} +1 -1
- package/dist/{chunk-GVM37TRU.js → chunk-GAL6EXUY.js} +4 -4
- package/dist/{chunk-ZEZMGXYV.js → chunk-H7K76TPX.js} +5 -5
- package/dist/{chunk-U3W2ZVN4.cjs → chunk-HMEEW73F.cjs} +2058 -300
- package/dist/chunk-HMEEW73F.cjs.map +1 -0
- package/dist/{chunk-LWDIDSCF.js → chunk-IB23CRL2.js} +3 -3
- package/dist/{chunk-6U45VX5J.cjs → chunk-IVJ6TBVW.cjs} +43 -43
- package/dist/{chunk-6U45VX5J.cjs.map → chunk-IVJ6TBVW.cjs.map} +1 -1
- package/dist/{chunk-JW53WPB5.js → chunk-IZGXIZWF.js} +3 -3
- package/dist/chunk-JMWLF2GL.cjs +1055 -0
- package/dist/chunk-JMWLF2GL.cjs.map +1 -0
- package/dist/{chunk-OKA3DJJ3.js → chunk-JUXCEHK2.js} +2 -2
- package/dist/{chunk-GUC4JK6O.cjs → chunk-KS7NKONC.cjs} +9 -9
- package/dist/{chunk-GUC4JK6O.cjs.map → chunk-KS7NKONC.cjs.map} +1 -1
- package/dist/{chunk-WHFEG6UU.cjs → chunk-LHQ6RVFE.cjs} +22 -22
- package/dist/{chunk-WHFEG6UU.cjs.map → chunk-LHQ6RVFE.cjs.map} +1 -1
- package/dist/{chunk-YU2UJPAT.cjs → chunk-LOJ5KQ6B.cjs} +466 -356
- package/dist/chunk-LOJ5KQ6B.cjs.map +1 -0
- package/dist/{chunk-BTKMTVN5.cjs → chunk-M3ERSHPM.cjs} +4 -4
- package/dist/{chunk-BTKMTVN5.cjs.map → chunk-M3ERSHPM.cjs.map} +1 -1
- package/dist/{chunk-KNBXZ22O.cjs → chunk-RBMVTCRM.cjs} +3 -3
- package/dist/{chunk-KNBXZ22O.cjs.map → chunk-RBMVTCRM.cjs.map} +1 -1
- package/dist/{chunk-PBRXT7TD.cjs → chunk-RILGQ2OY.cjs} +10 -10
- package/dist/{chunk-PBRXT7TD.cjs.map → chunk-RILGQ2OY.cjs.map} +1 -1
- package/dist/{chunk-DSPQVZFE.cjs → chunk-RQMS2CF5.cjs} +24 -24
- package/dist/{chunk-DSPQVZFE.cjs.map → chunk-RQMS2CF5.cjs.map} +1 -1
- package/dist/{chunk-W2TXSZTM.cjs → chunk-S2ZXUQLR.cjs} +21 -21
- package/dist/{chunk-W2TXSZTM.cjs.map → chunk-S2ZXUQLR.cjs.map} +1 -1
- package/dist/{chunk-7CP5KY5W.js → chunk-SM6JAZ4C.js} +3 -3
- package/dist/{chunk-3GXNCJZI.js → chunk-T4DIAKIK.js} +3 -3
- package/dist/{chunk-UKHM2S6I.cjs → chunk-TMNFC24G.cjs} +15 -15
- package/dist/{chunk-UKHM2S6I.cjs.map → chunk-TMNFC24G.cjs.map} +1 -1
- package/dist/{chunk-ESWXXWCL.js → chunk-U6GFESVF.js} +2 -2
- package/dist/{chunk-VXUUSLD5.js → chunk-XA5UPYWE.js} +2669 -911
- package/dist/chunk-XA5UPYWE.js.map +1 -0
- package/dist/{chunk-SEZ25E22.cjs → chunk-XNSEZVV4.cjs} +10 -10
- package/dist/{chunk-SEZ25E22.cjs.map → chunk-XNSEZVV4.cjs.map} +1 -1
- package/dist/{chunk-VDRCKHML.cjs → chunk-YU4QZ6I6.cjs} +3 -3
- package/dist/{chunk-VDRCKHML.cjs.map → chunk-YU4QZ6I6.cjs.map} +1 -1
- package/dist/{chunk-GAHKWML7.js → chunk-ZSENCE55.js} +6 -6
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/index.cjs +5 -3
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +4 -2
- package/dist/components/features/push-button-selector.d.ts +29 -1
- package/dist/components/features/push-button-selector.d.ts.map +1 -1
- package/dist/components/features/video.d.ts +12 -0
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +70 -899
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +247 -1076
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +21 -21
- package/dist/components/meeting-scheduler/index.js +2 -2
- package/dist/components/navigation/index.cjs +6 -6
- package/dist/components/navigation/index.js +5 -5
- package/dist/components/onboarding-guides/index.cjs +6 -6
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/index.cjs +3 -3
- package/dist/components/ui/index.js +2 -2
- package/dist/index.cjs +9 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/features/.push-button-selector.md +1 -1
- package/src/components/features/__tests__/video-playback-failure.test.tsx +250 -0
- package/src/components/features/push-button-selector.tsx +142 -17
- package/src/components/features/video.tsx +198 -16
- package/dist/chunk-IHFQ5VVR.js +0 -1867
- package/dist/chunk-IHFQ5VVR.js.map +0 -1
- package/dist/chunk-M4KQWGEL.cjs +0 -1867
- package/dist/chunk-M4KQWGEL.cjs.map +0 -1
- package/dist/chunk-U3W2ZVN4.cjs.map +0 -1
- package/dist/chunk-VXUUSLD5.js.map +0 -1
- package/dist/chunk-YU2UJPAT.cjs.map +0 -1
- /package/dist/{chunk-HVSZYUGP.js.map → chunk-53ZVUW2M.js.map} +0 -0
- /package/dist/{chunk-R5JVRFSW.js.map → chunk-5U2FU5LM.js.map} +0 -0
- /package/dist/{chunk-EZVABFEO.js.map → chunk-CJW6KZD3.js.map} +0 -0
- /package/dist/{chunk-KAEVE7W2.js.map → chunk-EULY3BXB.js.map} +0 -0
- /package/dist/{chunk-GVM37TRU.js.map → chunk-GAL6EXUY.js.map} +0 -0
- /package/dist/{chunk-ZEZMGXYV.js.map → chunk-H7K76TPX.js.map} +0 -0
- /package/dist/{chunk-LWDIDSCF.js.map → chunk-IB23CRL2.js.map} +0 -0
- /package/dist/{chunk-JW53WPB5.js.map → chunk-IZGXIZWF.js.map} +0 -0
- /package/dist/{chunk-OKA3DJJ3.js.map → chunk-JUXCEHK2.js.map} +0 -0
- /package/dist/{chunk-7CP5KY5W.js.map → chunk-SM6JAZ4C.js.map} +0 -0
- /package/dist/{chunk-3GXNCJZI.js.map → chunk-T4DIAKIK.js.map} +0 -0
- /package/dist/{chunk-ESWXXWCL.js.map → chunk-U6GFESVF.js.map} +0 -0
- /package/dist/{chunk-GAHKWML7.js.map → chunk-ZSENCE55.js.map} +0 -0
|
@@ -90,7 +90,7 @@ var _chunkIKDC3R7Vcjs = require('./chunk-IKDC3R7V.cjs');
|
|
|
90
90
|
|
|
91
91
|
|
|
92
92
|
|
|
93
|
-
var
|
|
93
|
+
var _chunkLOJ5KQ6Bcjs = require('./chunk-LOJ5KQ6B.cjs');
|
|
94
94
|
|
|
95
95
|
|
|
96
96
|
|
|
@@ -331,7 +331,7 @@ function ThemeProvider({ children, ...overrides }) {
|
|
|
331
331
|
var useTheme = _nextthemes.useTheme;
|
|
332
332
|
function useThemeToggle() {
|
|
333
333
|
const { resolvedTheme, theme, setTheme } = useTheme();
|
|
334
|
-
const mounted =
|
|
334
|
+
const mounted = _chunkLOJ5KQ6Bcjs.useIsHydrated.call(void 0, );
|
|
335
335
|
const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
|
|
336
336
|
const setOdsTheme = _react.useCallback.call(void 0, (next) => setTheme(next), [setTheme]);
|
|
337
337
|
const toggle = _react.useCallback.call(void 0, () => setTheme(active === "dark" ? "light" : "dark"), [active, setTheme]);
|
|
@@ -608,7 +608,7 @@ function TruncateText({
|
|
|
608
608
|
const { ref, isTruncated } = _chunkZI27ALYXcjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
|
|
609
609
|
const clampClass = isMultiLine ? LINE_CLAMP_CLASS[lines] : "truncate block";
|
|
610
610
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
611
|
-
|
|
611
|
+
_chunkLOJ5KQ6Bcjs.FloatingTooltip,
|
|
612
612
|
{
|
|
613
613
|
content: _nullishCoalesce(tooltip, () => ( children)),
|
|
614
614
|
side,
|
|
@@ -910,7 +910,7 @@ function AutocompleteInner(props, ref) {
|
|
|
910
910
|
),
|
|
911
911
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2", children: [
|
|
912
912
|
multiple && visibleTags.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
913
|
-
|
|
913
|
+
_chunkLOJ5KQ6Bcjs.Tag,
|
|
914
914
|
{
|
|
915
915
|
variant: "outline",
|
|
916
916
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -1116,7 +1116,7 @@ function AutocompleteInner(props, ref) {
|
|
|
1116
1116
|
"aria-hidden": "true",
|
|
1117
1117
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
1118
1118
|
children: selectedOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1119
|
-
|
|
1119
|
+
_chunkLOJ5KQ6Bcjs.Tag,
|
|
1120
1120
|
{
|
|
1121
1121
|
variant: "outline",
|
|
1122
1122
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -2500,7 +2500,7 @@ function InfoHint({ children, label, side = "top", className }) {
|
|
|
2500
2500
|
const describedById = _react.useId.call(void 0, );
|
|
2501
2501
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "inline-flex shrink-0 items-center", className), children: [
|
|
2502
2502
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2503
|
-
|
|
2503
|
+
_chunkLOJ5KQ6Bcjs.FloatingTooltip,
|
|
2504
2504
|
{
|
|
2505
2505
|
content: children,
|
|
2506
2506
|
side,
|
|
@@ -2594,7 +2594,7 @@ function Value2({ value, depth }) {
|
|
|
2594
2594
|
}
|
|
2595
2595
|
if (typeof value === "string") {
|
|
2596
2596
|
if (ISO_DATE.test(value)) {
|
|
2597
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children:
|
|
2597
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children: _chunkLOJ5KQ6Bcjs.formatRelativeTime.call(void 0, value) });
|
|
2598
2598
|
}
|
|
2599
2599
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-pre-wrap text-ods-text-primary", children: value });
|
|
2600
2600
|
}
|
|
@@ -3226,7 +3226,7 @@ function RowValue({ value }) {
|
|
|
3226
3226
|
}
|
|
3227
3227
|
case "status": {
|
|
3228
3228
|
const { type: _type, ...props } = value;
|
|
3229
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3229
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TicketStatusTag, { ...props });
|
|
3230
3230
|
}
|
|
3231
3231
|
case "custom":
|
|
3232
3232
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: value.content });
|
|
@@ -4137,7 +4137,7 @@ function TagsManager({
|
|
|
4137
4137
|
}
|
|
4138
4138
|
),
|
|
4139
4139
|
selectedTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4140
|
-
|
|
4140
|
+
_chunkLOJ5KQ6Bcjs.Tag,
|
|
4141
4141
|
{
|
|
4142
4142
|
label: tag.name,
|
|
4143
4143
|
variant: "outline",
|
|
@@ -4682,10 +4682,10 @@ function useConfirm() {
|
|
|
4682
4682
|
},
|
|
4683
4683
|
[]
|
|
4684
4684
|
);
|
|
4685
|
-
const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4686
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4687
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4688
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4685
|
+
const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Modal, { isOpen: open, onClose: () => decide(false), children: [
|
|
4686
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalTitle, { children: pending.title }) }),
|
|
4687
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: pending.body }) }),
|
|
4688
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.ModalFooter, { children: [
|
|
4689
4689
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", onClick: () => decide(false), children: "Cancel" }),
|
|
4690
4690
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "destructive", onClick: () => decide(true), children: "Confirm" })
|
|
4691
4691
|
] })
|
|
@@ -4743,9 +4743,9 @@ function AdminFormModal({
|
|
|
4743
4743
|
body: "Your edits have not been saved. Close and discard them?"
|
|
4744
4744
|
});
|
|
4745
4745
|
if (!isOpen) return null;
|
|
4746
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4747
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4748
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4746
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Modal, { isOpen: true, onClose: guardedClose, size: effectiveSize, children: [
|
|
4747
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.ModalHeader, { children: [
|
|
4748
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalTitle, { children: title }),
|
|
4749
4749
|
subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: subtitle })
|
|
4750
4750
|
] }),
|
|
4751
4751
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -4769,7 +4769,7 @@ function AdminFormModal({
|
|
|
4769
4769
|
// a shrink-to-fit flex item pinned to the left of a 1400px panel).
|
|
4770
4770
|
// The placeholder owns its own layout and mirrors the column count so
|
|
4771
4771
|
// the modal doesn't visibly re-flow when the entity lands.
|
|
4772
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4772
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalContent, { children: loadingContent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-busy": "true", children: loadingContent }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4773
4773
|
"div",
|
|
4774
4774
|
{
|
|
4775
4775
|
"aria-busy": "true",
|
|
@@ -4790,12 +4790,12 @@ function AdminFormModal({
|
|
|
4790
4790
|
]
|
|
4791
4791
|
}
|
|
4792
4792
|
) })
|
|
4793
|
-
) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4793
|
+
) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalTwoColumn, { left: leftColumn, right: rightColumn }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalContent, { className: contentClassName, children }),
|
|
4794
4794
|
error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "alert", className: "shrink-0 text-ods-error text-h6", children: error })
|
|
4795
4795
|
]
|
|
4796
4796
|
}
|
|
4797
4797
|
),
|
|
4798
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4798
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalFooter, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-[var(--spacing-system-xsf)]", children: [
|
|
4799
4799
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: footerExtras }),
|
|
4800
4800
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
4801
4801
|
footerStatus,
|
|
@@ -6893,7 +6893,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarouselImpl({
|
|
|
6893
6893
|
};
|
|
6894
6894
|
const displayImageSrc = (url) => transformImageSrc ? transformImageSrc(url) : url;
|
|
6895
6895
|
const renderVideo = (item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6896
|
-
|
|
6896
|
+
_chunkLOJ5KQ6Bcjs.Video,
|
|
6897
6897
|
{
|
|
6898
6898
|
url: item.src,
|
|
6899
6899
|
poster: item.poster ? displayImageSrc(item.poster) : void 0,
|
|
@@ -7617,7 +7617,7 @@ function buildRichEmbedOverrides({
|
|
|
7617
7617
|
ogEndpointPath,
|
|
7618
7618
|
textSizes
|
|
7619
7619
|
}) {
|
|
7620
|
-
const standard =
|
|
7620
|
+
const standard = _chunkLOJ5KQ6Bcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
|
|
7621
7621
|
return {
|
|
7622
7622
|
// Fence-language embeds (```youtube-embed etc.); everything else
|
|
7623
7623
|
// (mermaid, highlighted blocks, inline code) falls through to `standard`.
|
|
@@ -7627,7 +7627,7 @@ function buildRichEmbedOverrides({
|
|
|
7627
7627
|
const language = match ? match[1] : "";
|
|
7628
7628
|
const fenceText = () => String(children).replace(/\n$/, "").trim();
|
|
7629
7629
|
if (language === "youtube-embed") {
|
|
7630
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7630
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Video, { kind: "youtube", url: fenceText() });
|
|
7631
7631
|
}
|
|
7632
7632
|
if (language === "reddit-embed") {
|
|
7633
7633
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: fenceText() });
|
|
@@ -7668,7 +7668,7 @@ function buildRichEmbedOverrides({
|
|
|
7668
7668
|
"data-figma-url": figmaUrl
|
|
7669
7669
|
} = divProps;
|
|
7670
7670
|
if (className === "youtube-embed" && videoId) {
|
|
7671
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7671
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Video, { kind: "youtube", url: videoId });
|
|
7672
7672
|
}
|
|
7673
7673
|
if (className === "reddit-embed" && postUrl) {
|
|
7674
7674
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: postUrl });
|
|
@@ -7753,14 +7753,14 @@ function buildRichEmbedOverrides({
|
|
|
7753
7753
|
// rich-markdown runtime (Supabase optimization on the hub, identity
|
|
7754
7754
|
// elsewhere). Guard against empty `![]()`.
|
|
7755
7755
|
img: ({ src, alt }) => {
|
|
7756
|
-
if (!
|
|
7756
|
+
if (!_chunkLOJ5KQ6Bcjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7757
7757
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownImage, { src: src.trim(), alt });
|
|
7758
7758
|
},
|
|
7759
7759
|
// Raw <video> tags in stored content (blog publisher injection) route
|
|
7760
7760
|
// to the <Video> SSOT (MuxPlayer) so HLS manifests play everywhere.
|
|
7761
7761
|
video: ({ src, poster, className }) => {
|
|
7762
|
-
if (!
|
|
7763
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `overflow-hidden ${className || "my-8 w-full rounded-lg"}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7762
|
+
if (!_chunkLOJ5KQ6Bcjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7763
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `overflow-hidden ${className || "my-8 w-full rounded-lg"}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
|
|
7764
7764
|
}
|
|
7765
7765
|
};
|
|
7766
7766
|
}
|
|
@@ -7943,13 +7943,13 @@ var RichMarkdownInner = ({
|
|
|
7943
7943
|
},
|
|
7944
7944
|
[resolveLinkEndpointUrl, resolveSource]
|
|
7945
7945
|
);
|
|
7946
|
-
const textSizes = _react.useMemo.call(void 0, () =>
|
|
7946
|
+
const textSizes = _react.useMemo.call(void 0, () => _chunkLOJ5KQ6Bcjs.resolveTextSizeConfig.call(void 0, "article"), []);
|
|
7947
7947
|
const componentOverrides = _react.useMemo.call(void 0,
|
|
7948
7948
|
() => buildRichEmbedOverrides({ ogApiBaseUrl, ogEndpointPath, textSizes }),
|
|
7949
7949
|
[ogApiBaseUrl, ogEndpointPath, textSizes]
|
|
7950
7950
|
);
|
|
7951
7951
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7952
|
-
|
|
7952
|
+
_chunkLOJ5KQ6Bcjs.MarkdownEngine,
|
|
7953
7953
|
{
|
|
7954
7954
|
content,
|
|
7955
7955
|
className,
|
|
@@ -7971,7 +7971,7 @@ var RichMarkdownRendererImpl = ({
|
|
|
7971
7971
|
className = "",
|
|
7972
7972
|
sectionIds,
|
|
7973
7973
|
onInternalLinkClick,
|
|
7974
|
-
brokenLinks =
|
|
7974
|
+
brokenLinks = _chunkLOJ5KQ6Bcjs.NO_BROKEN_LINKS,
|
|
7975
7975
|
currentPath,
|
|
7976
7976
|
resolveSource = "openframe-docs",
|
|
7977
7977
|
resolveLinkEndpointUrl = "/api/docs/resolve-link",
|
|
@@ -8544,7 +8544,7 @@ function FilterModal({
|
|
|
8544
8544
|
const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _161 => _161.defaultSort]), () => ( "desc"));
|
|
8545
8545
|
const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _162 => _162.sort]), () => ( dateDefaultSort)));
|
|
8546
8546
|
const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _163 => _163.range]));
|
|
8547
|
-
const { scrollRef, fadeTop, fadeBottom, update: updateFade } =
|
|
8547
|
+
const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkLOJ5KQ6Bcjs.useScrollFade.call(void 0, );
|
|
8548
8548
|
const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
|
|
8549
8549
|
const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
|
|
8550
8550
|
_react.useEffect.call(void 0, () => {
|
|
@@ -8589,10 +8589,10 @@ function FilterModal({
|
|
|
8589
8589
|
const hasFilterGroups = filterGroups.length > 0;
|
|
8590
8590
|
const hasTagFilter = !!tagFilterKeys && tagFilterKeys.length > 0 && !!onTagsChange;
|
|
8591
8591
|
const isEmpty = !isLoading && !hasSort && !hasFilterGroups && !hasTagFilter && !dateFilter;
|
|
8592
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8593
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8592
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Modal, { isOpen, onClose, className: _chunkPRPZBXWZcjs.cn.call(void 0, "max-h-[90vh] max-w-none", className), children: [
|
|
8593
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalTitle, { children: title }) }),
|
|
8594
8594
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8595
|
-
|
|
8595
|
+
_chunkLOJ5KQ6Bcjs.ModalContent,
|
|
8596
8596
|
{
|
|
8597
8597
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
8598
8598
|
"flex min-h-0 flex-1 flex-col",
|
|
@@ -8684,12 +8684,12 @@ function FilterModal({
|
|
|
8684
8684
|
] })
|
|
8685
8685
|
}
|
|
8686
8686
|
),
|
|
8687
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8688
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8687
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
|
|
8688
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
|
|
8689
8689
|
] })
|
|
8690
8690
|
}
|
|
8691
8691
|
),
|
|
8692
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8692
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.ModalFooter, { children: [
|
|
8693
8693
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", className: "h-11 flex-1", onClick: handleReset, children: resetButtonText }),
|
|
8694
8694
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "accent", className: "h-11 flex-1", onClick: handleApply, children: applyButtonText })
|
|
8695
8695
|
] })
|
|
@@ -8733,9 +8733,9 @@ function actionToMenuItems(action, idx) {
|
|
|
8733
8733
|
function renderActionButton(action, opts = {}) {
|
|
8734
8734
|
const button = renderRawActionButton(action, opts);
|
|
8735
8735
|
if (!action.tooltip) return button;
|
|
8736
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8737
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8738
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8736
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Tooltip, { children: [
|
|
8737
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipTrigger, { asChild: true, children: button }),
|
|
8738
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipContent, { children: action.tooltip })
|
|
8739
8739
|
] }) });
|
|
8740
8740
|
}
|
|
8741
8741
|
function renderRawActionButton(action, opts = {}) {
|
|
@@ -8759,7 +8759,7 @@ function renderRawActionButton(action, opts = {}) {
|
|
|
8759
8759
|
}
|
|
8760
8760
|
if (action.submenu && action.submenu.length > 0) {
|
|
8761
8761
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8762
|
-
|
|
8762
|
+
_chunkLOJ5KQ6Bcjs.ActionsMenuDropdown,
|
|
8763
8763
|
{
|
|
8764
8764
|
groups: [{ items: action.submenu }],
|
|
8765
8765
|
customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -8894,10 +8894,10 @@ function IconButtonsVariant({
|
|
|
8894
8894
|
selector,
|
|
8895
8895
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8896
8896
|
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
|
|
8897
|
-
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8897
|
+
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ActionsMenuDropdown, { groups: menuActions })
|
|
8898
8898
|
] })
|
|
8899
8899
|
] }),
|
|
8900
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex md:hidden", className), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileTriggerSkeleton, {}) : useSingleActionMobile && singleAction ? renderActionButton(singleAction, { iconOnly: true }) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8900
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex md:hidden", className), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileTriggerSkeleton, {}) : useSingleActionMobile && singleAction ? renderActionButton(singleAction, { iconOnly: true }) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
|
|
8901
8901
|
] });
|
|
8902
8902
|
}
|
|
8903
8903
|
function PrimaryButtonsVariant({
|
|
@@ -8935,7 +8935,7 @@ function MenuPrimaryVariant({
|
|
|
8935
8935
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "hidden items-center md:flex", ACTIONS_GAP, className), children: [
|
|
8936
8936
|
selector,
|
|
8937
8937
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8938
|
-
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8938
|
+
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ActionsMenuDropdown, { groups: menuActions }),
|
|
8939
8939
|
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
|
|
8940
8940
|
] })
|
|
8941
8941
|
] }),
|
|
@@ -8943,7 +8943,7 @@ function MenuPrimaryVariant({
|
|
|
8943
8943
|
// The selector rides into the menu as its header row: on mobile the
|
|
8944
8944
|
// title row has no room for it, and hiding it entirely (what
|
|
8945
8945
|
// `icon-buttons` does) would leave no way to switch views at all.
|
|
8946
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8946
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ActionsMenuDropdown, { groups: mobileMenuGroups, header: selector })
|
|
8947
8947
|
) : null })
|
|
8948
8948
|
] });
|
|
8949
8949
|
}
|
|
@@ -9030,7 +9030,7 @@ function renderAdvancedPageContainer({
|
|
|
9030
9030
|
md: "p-6",
|
|
9031
9031
|
lg: "p-8"
|
|
9032
9032
|
};
|
|
9033
|
-
const
|
|
9033
|
+
const backgroundClasses2 = {
|
|
9034
9034
|
default: "bg-ods-bg",
|
|
9035
9035
|
card: "bg-ods-card",
|
|
9036
9036
|
transparent: ""
|
|
@@ -9090,7 +9090,7 @@ function renderAdvancedPageContainer({
|
|
|
9090
9090
|
] });
|
|
9091
9091
|
};
|
|
9092
9092
|
const getContainerClasses = () => {
|
|
9093
|
-
const baseClasses = ["flex flex-col w-full",
|
|
9093
|
+
const baseClasses = ["flex flex-col w-full", backgroundClasses2[background], paddingClasses[padding]];
|
|
9094
9094
|
switch (variant) {
|
|
9095
9095
|
case "list":
|
|
9096
9096
|
return _chunkPRPZBXWZcjs.cn.call(void 0, baseClasses, "gap-4 md:gap-6", className);
|
|
@@ -9346,7 +9346,7 @@ function TitleBlock({
|
|
|
9346
9346
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
9347
9347
|
(loading || title) && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
|
|
9348
9348
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9349
|
-
|
|
9349
|
+
_chunkLOJ5KQ6Bcjs.FloatingTooltip,
|
|
9350
9350
|
{
|
|
9351
9351
|
content: title,
|
|
9352
9352
|
side: "bottom",
|
|
@@ -9363,12 +9363,12 @@ function TitleBlock({
|
|
|
9363
9363
|
}
|
|
9364
9364
|
),
|
|
9365
9365
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
9366
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9366
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { ref: titleRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClass, "text-ods-text-primary", titleOverflowClass), children: titleNode }) })),
|
|
9367
9367
|
hasSubtitleRow && /* The NBSP is a pure spacer, reached only in `'always'` mode: an
|
|
9368
9368
|
empty `p` collapses to zero height (its only content would be
|
|
9369
9369
|
collapsible whitespace), which is exactly the shift that mode
|
|
9370
9370
|
exists to prevent. Hidden from AT — it carries no meaning. */
|
|
9371
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9371
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9372
9372
|
"p",
|
|
9373
9373
|
{
|
|
9374
9374
|
ref: subtitleRef,
|
|
@@ -9379,7 +9379,7 @@ function TitleBlock({
|
|
|
9379
9379
|
) })
|
|
9380
9380
|
] })
|
|
9381
9381
|
] }) : title && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
|
|
9382
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9382
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, triggerClassName: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { ref: titleRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClass, "min-w-0 text-ods-text-primary", titleOverflowClass), children: title }) }),
|
|
9383
9383
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
9384
9384
|
] }) : (
|
|
9385
9385
|
/* This branch never had the single-line clamp, so text already
|
|
@@ -10976,7 +10976,7 @@ function extractSections(markdown, options = {}) {
|
|
|
10976
10976
|
if (heading.level > opts.maxLevel) continue;
|
|
10977
10977
|
let title = heading.text;
|
|
10978
10978
|
if (opts.stripFormattingMarkers) {
|
|
10979
|
-
title =
|
|
10979
|
+
title = _chunkLOJ5KQ6Bcjs.stripInlineMarkdown.call(void 0, title).trim();
|
|
10980
10980
|
}
|
|
10981
10981
|
const baseId = _chunkZI27ALYXcjs.slugifyHeadingBase.call(void 0, opts.removeEmojis ? _chunkZI27ALYXcjs.stripHeadingEmojis.call(void 0, title) : title);
|
|
10982
10982
|
const cleanId = baseId || `section-${sections.length + 1}`;
|
|
@@ -11108,7 +11108,7 @@ var BenefitCard = ({
|
|
|
11108
11108
|
const gap = cardVariant === "auth-figma" ? "gap-4" : "gap-2";
|
|
11109
11109
|
return `flex ${gap} items-start justify-start relative`;
|
|
11110
11110
|
};
|
|
11111
|
-
const
|
|
11111
|
+
const variantStyles2 = {
|
|
11112
11112
|
default: {
|
|
11113
11113
|
container: "bg-ods-bg p-2 md:p-4",
|
|
11114
11114
|
title: "font-body font-bold text-body-md md:text-body-lg text-ods-text-primary",
|
|
@@ -11125,7 +11125,7 @@ var BenefitCard = ({
|
|
|
11125
11125
|
description: "text-h4 text-ods-text-secondary"
|
|
11126
11126
|
}
|
|
11127
11127
|
};
|
|
11128
|
-
const styles =
|
|
11128
|
+
const styles = variantStyles2[variant];
|
|
11129
11129
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, getBaseStyles(variant), styles.container, className), children: [
|
|
11130
11130
|
icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: icon }),
|
|
11131
11131
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
@@ -11263,7 +11263,7 @@ function BulletList({
|
|
|
11263
11263
|
var ChevronButton = _react.forwardRef.call(void 0,
|
|
11264
11264
|
({ className, direction = "down", size = "md", isExpanded, backgroundColor, borderColor, ...props }, ref) => {
|
|
11265
11265
|
const Icon2 = (isExpanded ? _lucidereact.ChevronUp : _lucidereact.ChevronDown) || (direction === "up" ? _lucidereact.ChevronUp : _lucidereact.ChevronDown);
|
|
11266
|
-
const
|
|
11266
|
+
const sizeClasses2 = {
|
|
11267
11267
|
sm: "h-4 w-4",
|
|
11268
11268
|
md: "h-5 w-5",
|
|
11269
11269
|
lg: "h-6 w-6"
|
|
@@ -11282,7 +11282,7 @@ var ChevronButton = _react.forwardRef.call(void 0,
|
|
|
11282
11282
|
},
|
|
11283
11283
|
ref,
|
|
11284
11284
|
...props,
|
|
11285
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon2, { className:
|
|
11285
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon2, { className: sizeClasses2[size] })
|
|
11286
11286
|
}
|
|
11287
11287
|
);
|
|
11288
11288
|
}
|
|
@@ -11468,7 +11468,7 @@ function DashboardInfoCard({
|
|
|
11468
11468
|
const asTag = percentageDisplay === "tag" || percentageDisplay === "auto" && (progressVariant === "warning" || progressVariant === "error");
|
|
11469
11469
|
if (asTag) {
|
|
11470
11470
|
const tagVariant = progressVariant === "warning" || progressVariant === "error" ? progressVariant : progressVariant === "success" ? "success" : "grey";
|
|
11471
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11471
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Tag, { variant: tagVariant, label: `${percentage}%` });
|
|
11472
11472
|
}
|
|
11473
11473
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: [
|
|
11474
11474
|
"(",
|
|
@@ -11522,7 +11522,7 @@ function DashboardInfoCard({
|
|
|
11522
11522
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "truncate text-ods-text-primary text-h3 md:text-h2", valueClassName), children: formattedValue }),
|
|
11523
11523
|
subValue && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: subValue }),
|
|
11524
11524
|
renderPercentage(),
|
|
11525
|
-
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11525
|
+
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.FloatingTooltip, { content: tooltip, side: "top", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "cursor-help text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.QuestionCircleIcon, { size: 20 }) }) })
|
|
11526
11526
|
] })
|
|
11527
11527
|
] }),
|
|
11528
11528
|
renderProgress()
|
|
@@ -11705,7 +11705,7 @@ function DeviceCard({
|
|
|
11705
11705
|
] }),
|
|
11706
11706
|
(statusTag || device.lastSeen) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-2", children: [
|
|
11707
11707
|
statusTag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11708
|
-
|
|
11708
|
+
_chunkLOJ5KQ6Bcjs.Tag,
|
|
11709
11709
|
{
|
|
11710
11710
|
variant: statusTag.variant,
|
|
11711
11711
|
icon: statusTag.icon,
|
|
@@ -11719,7 +11719,7 @@ function DeviceCard({
|
|
|
11719
11719
|
formatLastSeen(device.lastSeen)
|
|
11720
11720
|
] })
|
|
11721
11721
|
] }),
|
|
11722
|
-
device.tags && device.tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full flex-wrap items-center gap-2", children: device.tags.map((tag, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11722
|
+
device.tags && device.tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full flex-wrap items-center gap-2", children: device.tags.map((tag, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Tag, { variant: "outline", label: tag }, index)) })
|
|
11723
11723
|
]
|
|
11724
11724
|
}
|
|
11725
11725
|
);
|
|
@@ -11867,7 +11867,7 @@ function FeatureList({ items, className = "", iconBoxSize = 72 }) {
|
|
|
11867
11867
|
|
|
11868
11868
|
function SourceTooltip({ intro, sources, note, iconClassName, triggerAnchorProps }) {
|
|
11869
11869
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11870
|
-
|
|
11870
|
+
_chunkLOJ5KQ6Bcjs.FloatingTooltip,
|
|
11871
11871
|
{
|
|
11872
11872
|
as: "span",
|
|
11873
11873
|
side: "top",
|
|
@@ -11977,12 +11977,12 @@ function HighlightCardGrid({
|
|
|
11977
11977
|
|
|
11978
11978
|
var IconsBlock = _react.forwardRef.call(void 0,
|
|
11979
11979
|
({ className, icons = [], size = "md", ...props }, ref) => {
|
|
11980
|
-
const
|
|
11980
|
+
const sizeClasses2 = {
|
|
11981
11981
|
sm: "h-4 w-4",
|
|
11982
11982
|
md: "h-6 w-6",
|
|
11983
11983
|
lg: "h-8 w-8"
|
|
11984
11984
|
};
|
|
11985
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex items-center gap-2", className), ref, ...props, children: icons.map((icon, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "rounded-md bg-secondary p-1",
|
|
11985
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex items-center gap-2", className), ref, ...props, children: icons.map((icon, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "rounded-md bg-secondary p-1", sizeClasses2[size]), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full w-full rounded-sm bg-primary/20" }) }, index)) });
|
|
11986
11986
|
}
|
|
11987
11987
|
);
|
|
11988
11988
|
IconsBlock.displayName = "IconsBlock";
|
|
@@ -12051,7 +12051,7 @@ function DropdownButton({
|
|
|
12051
12051
|
)
|
|
12052
12052
|
);
|
|
12053
12053
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12054
|
-
|
|
12054
|
+
_chunkLOJ5KQ6Bcjs.ActionsMenuDropdown,
|
|
12055
12055
|
{
|
|
12056
12056
|
groups: _nullishCoalesce(groups, () => ( [{ items: _nullishCoalesce(items, () => ( [])) }])),
|
|
12057
12057
|
open,
|
|
@@ -12289,7 +12289,7 @@ function ServiceCardRowItem({ row }) {
|
|
|
12289
12289
|
),
|
|
12290
12290
|
children: [
|
|
12291
12291
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12292
|
-
|
|
12292
|
+
_chunkLOJ5KQ6Bcjs.FloatingTooltip,
|
|
12293
12293
|
{
|
|
12294
12294
|
content: row.value,
|
|
12295
12295
|
side: "top",
|
|
@@ -12415,9 +12415,9 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
|
|
|
12415
12415
|
return next;
|
|
12416
12416
|
});
|
|
12417
12417
|
};
|
|
12418
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12418
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Tooltip, { open, onOpenChange: setOpen, children: [
|
|
12419
12419
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12420
|
-
|
|
12420
|
+
_chunkLOJ5KQ6Bcjs.TooltipTrigger,
|
|
12421
12421
|
{
|
|
12422
12422
|
asChild: true,
|
|
12423
12423
|
onPointerDown: (e) => {
|
|
@@ -12435,7 +12435,7 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
|
|
|
12435
12435
|
children
|
|
12436
12436
|
}
|
|
12437
12437
|
),
|
|
12438
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12438
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipContent, { side, className: "max-w-xs", children: content })
|
|
12439
12439
|
] }) });
|
|
12440
12440
|
}
|
|
12441
12441
|
|
|
@@ -13450,9 +13450,9 @@ function TruncatedHeaderCell({ value, width }) {
|
|
|
13450
13450
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
13451
13451
|
}
|
|
13452
13452
|
}, []);
|
|
13453
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13454
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13455
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13453
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
13454
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 items-center", style: { width, height: 48 }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: textRef, className: "truncate text-ods-text-secondary text-h5", children: value }) }) }),
|
|
13455
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipContent, { side: "bottom", className: "max-w-xs break-words", children: value })
|
|
13456
13456
|
] }) });
|
|
13457
13457
|
}
|
|
13458
13458
|
|
|
@@ -13505,9 +13505,9 @@ function TruncatedCell({ value, className }) {
|
|
|
13505
13505
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
13506
13506
|
}
|
|
13507
13507
|
}, []);
|
|
13508
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13509
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13510
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13508
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
13509
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: textRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, "block truncate", className), children: value }) }),
|
|
13510
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipContent, { side: "top", className: "max-w-xs break-words", children: value })
|
|
13511
13511
|
] }) });
|
|
13512
13512
|
}
|
|
13513
13513
|
|
|
@@ -14791,7 +14791,7 @@ function SearchInput({
|
|
|
14791
14791
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex-shrink-0 text-ods-text-secondary transition-colors duration-200 group-has-[:focus]:text-ods-accent [&_svg]:size-4 md:[&_svg]:size-6", children: startAdornment !== void 0 ? startAdornment : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, {}) }),
|
|
14792
14792
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
|
|
14793
14793
|
visibleChips.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14794
|
-
|
|
14794
|
+
_chunkLOJ5KQ6Bcjs.Tag,
|
|
14795
14795
|
{
|
|
14796
14796
|
variant: chipVariantToTagVariant(chip.variant),
|
|
14797
14797
|
label: chip.label,
|
|
@@ -14905,7 +14905,7 @@ function SearchInput({
|
|
|
14905
14905
|
}
|
|
14906
14906
|
),
|
|
14907
14907
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: measureRef, "aria-hidden": "true", className: "pointer-events-none fixed -left-[9999px] top-0 flex gap-2", children: filterChips.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14908
|
-
|
|
14908
|
+
_chunkLOJ5KQ6Bcjs.Tag,
|
|
14909
14909
|
{
|
|
14910
14910
|
variant: chipVariantToTagVariant(chip.variant),
|
|
14911
14911
|
label: chip.label,
|
|
@@ -15118,7 +15118,7 @@ function TagSearchInput({
|
|
|
15118
15118
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "size-4 text-ods-text-secondary md:size-6" }) }),
|
|
15119
15119
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2", children: [
|
|
15120
15120
|
visibleTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15121
|
-
|
|
15121
|
+
_chunkLOJ5KQ6Bcjs.Tag,
|
|
15122
15122
|
{
|
|
15123
15123
|
variant: "outline",
|
|
15124
15124
|
label: renderTag ? renderTag(tag) : tag.label,
|
|
@@ -15206,7 +15206,7 @@ function TagSearchInput({
|
|
|
15206
15206
|
"aria-hidden": "true",
|
|
15207
15207
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
15208
15208
|
children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15209
|
-
|
|
15209
|
+
_chunkLOJ5KQ6Bcjs.Tag,
|
|
15210
15210
|
{
|
|
15211
15211
|
variant: "outline",
|
|
15212
15212
|
label: renderTag ? renderTag(tag) : tag.label,
|
|
@@ -16095,20 +16095,20 @@ function ColorPresetSelect({
|
|
|
16095
16095
|
...presets.map((p) => ({
|
|
16096
16096
|
id: p.key,
|
|
16097
16097
|
label: p.label,
|
|
16098
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16098
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ColorSwatch, { color: p.color }),
|
|
16099
16099
|
onClick: () => onChange({ color: p.color, preset: p.key })
|
|
16100
16100
|
})),
|
|
16101
16101
|
{
|
|
16102
16102
|
id: CUSTOM_PRESET_KEY,
|
|
16103
16103
|
label: "Custom",
|
|
16104
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16104
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ColorSwatch, { color: isCustom ? value : DEFAULT_CUSTOM_STATUS_COLOR }),
|
|
16105
16105
|
onClick: () => onChange({ color: value, preset: void 0 })
|
|
16106
16106
|
}
|
|
16107
16107
|
]
|
|
16108
16108
|
}
|
|
16109
16109
|
];
|
|
16110
16110
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16111
|
-
|
|
16111
|
+
_chunkLOJ5KQ6Bcjs.ActionsMenuDropdown,
|
|
16112
16112
|
{
|
|
16113
16113
|
groups,
|
|
16114
16114
|
align: "start",
|
|
@@ -16118,7 +16118,7 @@ function ColorPresetSelect({
|
|
|
16118
16118
|
{
|
|
16119
16119
|
disabled,
|
|
16120
16120
|
"aria-label": `Color: ${displayLabel}`,
|
|
16121
|
-
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16121
|
+
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ColorSwatch, { color: displayColor }),
|
|
16122
16122
|
selectedLabel: displayLabel,
|
|
16123
16123
|
endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
|
|
16124
16124
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
|
|
@@ -16139,7 +16139,7 @@ function HexInputs({ value, onChange }) {
|
|
|
16139
16139
|
}
|
|
16140
16140
|
const commit = () => {
|
|
16141
16141
|
const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
|
|
16142
|
-
if (
|
|
16142
|
+
if (_chunkLOJ5KQ6Bcjs.HEX_PATTERN.test(candidate)) onChange(candidate);
|
|
16143
16143
|
else setDraft(value);
|
|
16144
16144
|
};
|
|
16145
16145
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -16203,12 +16203,12 @@ function ChannelInput({
|
|
|
16203
16203
|
);
|
|
16204
16204
|
}
|
|
16205
16205
|
function RgbInputs({ value, onChange }) {
|
|
16206
|
-
const rgb = _nullishCoalesce(
|
|
16206
|
+
const rgb = _nullishCoalesce(_chunkLOJ5KQ6Bcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
|
|
16207
16207
|
const update = (next) => {
|
|
16208
16208
|
const r = _nullishCoalesce(next.r, () => ( rgb.r));
|
|
16209
16209
|
const g = _nullishCoalesce(next.g, () => ( rgb.g));
|
|
16210
16210
|
const b = _nullishCoalesce(next.b, () => ( rgb.b));
|
|
16211
|
-
onChange(
|
|
16211
|
+
onChange(_chunkLOJ5KQ6Bcjs.rgbToHex.call(void 0, r, g, b));
|
|
16212
16212
|
};
|
|
16213
16213
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16214
16214
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
|
|
@@ -16217,14 +16217,14 @@ function RgbInputs({ value, onChange }) {
|
|
|
16217
16217
|
] });
|
|
16218
16218
|
}
|
|
16219
16219
|
function HslInputs({ value, onChange }) {
|
|
16220
|
-
const rgb = _nullishCoalesce(
|
|
16221
|
-
const hsl =
|
|
16220
|
+
const rgb = _nullishCoalesce(_chunkLOJ5KQ6Bcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
|
|
16221
|
+
const hsl = _chunkLOJ5KQ6Bcjs.rgbToHsl.call(void 0, rgb.r, rgb.g, rgb.b);
|
|
16222
16222
|
const update = (next) => {
|
|
16223
16223
|
const h = _nullishCoalesce(next.h, () => ( hsl.h));
|
|
16224
16224
|
const s = _nullishCoalesce(next.s, () => ( hsl.s));
|
|
16225
16225
|
const l = _nullishCoalesce(next.l, () => ( hsl.l));
|
|
16226
|
-
const out =
|
|
16227
|
-
onChange(
|
|
16226
|
+
const out = _chunkLOJ5KQ6Bcjs.hslToRgb.call(void 0, h, s, l);
|
|
16227
|
+
onChange(_chunkLOJ5KQ6Bcjs.rgbToHex.call(void 0, out.r, out.g, out.b));
|
|
16228
16228
|
};
|
|
16229
16229
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16230
16230
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
|
|
@@ -16250,7 +16250,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16250
16250
|
{
|
|
16251
16251
|
disabled,
|
|
16252
16252
|
"aria-label": "Pick custom color",
|
|
16253
|
-
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16253
|
+
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ColorSwatch, { color: value }),
|
|
16254
16254
|
selectedLabel: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase", children: value }),
|
|
16255
16255
|
endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
|
|
16256
16256
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
|
|
@@ -16266,7 +16266,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16266
16266
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactcolorful.HexColorPicker, { color: value, onChange }),
|
|
16267
16267
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
16268
16268
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16269
|
-
|
|
16269
|
+
_chunkLOJ5KQ6Bcjs.ActionsMenuDropdown,
|
|
16270
16270
|
{
|
|
16271
16271
|
groups: formatGroups,
|
|
16272
16272
|
align: "start",
|
|
@@ -16323,7 +16323,7 @@ function TicketStatusConfigRow({
|
|
|
16323
16323
|
const previewVariant = _nullishCoalesce(systemTagVariant, () => ( (isSystem ? void 0 : "primary")));
|
|
16324
16324
|
const fieldRowOffset = "mt-[calc(var(--font-line-space-h4-body)+0.25rem)]";
|
|
16325
16325
|
const chip = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16326
|
-
|
|
16326
|
+
_chunkLOJ5KQ6Bcjs.TicketStatusTag,
|
|
16327
16327
|
{
|
|
16328
16328
|
status: statusKey,
|
|
16329
16329
|
label: name || " ",
|
|
@@ -16475,7 +16475,7 @@ function formatTestRunDuration(ms) {
|
|
|
16475
16475
|
var RESULT_COLUMN_MIN_WIDTH = 176;
|
|
16476
16476
|
var SKELETON_COLUMNS = 6;
|
|
16477
16477
|
function TestResultsSkeleton() {
|
|
16478
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16478
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
|
|
16479
16479
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-mf)] px-[var(--spacing-system-mf)]", children: Array.from({ length: SKELETON_COLUMNS }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-[160px] shrink-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 animate-pulse rounded-sm bg-ods-bg-surface" }) }, `skeleton-header-${i}`)) }),
|
|
16480
16480
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "animate-pulse overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[66px] items-center gap-[var(--spacing-system-mf)] px-[var(--spacing-system-mf)] md:h-[78px]", children: Array.from({ length: SKELETON_COLUMNS }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-[160px] shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-3/4 rounded-sm bg-ods-bg-surface" }) }, `skeleton-cell-${i}`)) }) })
|
|
16481
16481
|
] }) });
|
|
@@ -16510,7 +16510,7 @@ function TestResultsTable({ rows, loading }) {
|
|
|
16510
16510
|
if (loading) {
|
|
16511
16511
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TestResultsSkeleton, {});
|
|
16512
16512
|
}
|
|
16513
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16513
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { minWidth: Math.max(1, columnKeys.length) * RESULT_COLUMN_MIN_WIDTH }, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, DataTable, { table, children: [
|
|
16514
16514
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Header, { className: "flex flex-col" }),
|
|
16515
16515
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Body, { loading: false })
|
|
16516
16516
|
] }) }) });
|
|
@@ -16570,7 +16570,7 @@ var TEST_RUN_STATUS_TAGS = {
|
|
|
16570
16570
|
function TestRunStatusStat({ status, className }) {
|
|
16571
16571
|
const tag = status === "idle" ? null : TEST_RUN_STATUS_TAGS[status];
|
|
16572
16572
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex min-w-0 flex-col items-start justify-center gap-[var(--spacing-system-xxs)]", className), children: [
|
|
16573
|
-
tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16573
|
+
tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Tag, { label: tag.label, variant: tag.variant, className: "pointer-events-none" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h4", children: "-" }),
|
|
16574
16574
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: "Status" })
|
|
16575
16575
|
] });
|
|
16576
16576
|
}
|
|
@@ -16613,7 +16613,7 @@ function useTestRunState(campaign) {
|
|
|
16613
16613
|
const firstError = isFinished && campaign.errors.length > 0 ? campaign.errors[0].error : null;
|
|
16614
16614
|
const status = isActive ? "running" : hasRun && isFinished ? firstError ? "error" : "success" : "idle";
|
|
16615
16615
|
const showTiming = hasRun && campaign.startedAt !== null && (campaign.isRunning || isFinished);
|
|
16616
|
-
const startedLabel = showTiming && campaign.startedAt ?
|
|
16616
|
+
const startedLabel = showTiming && campaign.startedAt ? _chunkLOJ5KQ6Bcjs.formatTime.call(void 0, campaign.startedAt) : "00:00 PM";
|
|
16617
16617
|
const durationLabel = showTiming ? formatTestRunDuration(durationMs) : "00:00:00";
|
|
16618
16618
|
const displayRows = _react.useMemo.call(void 0,
|
|
16619
16619
|
() => campaign.results.map(
|
|
@@ -16951,7 +16951,7 @@ function TicketInfoSection({
|
|
|
16951
16951
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([device, 'optionalAccess', _391 => _391.name]) || "Unassigned", label: "Device", icon: _optionalChain([device, 'optionalAccess', _392 => _392.icon]), onClick: _optionalChain([device, 'optionalAccess', _393 => _393.onClick]) }),
|
|
16952
16952
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-4", children: [
|
|
16953
16953
|
(status || statusLabel) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16954
|
-
|
|
16954
|
+
_chunkLOJ5KQ6Bcjs.TicketStatusTag,
|
|
16955
16955
|
{
|
|
16956
16956
|
status: _nullishCoalesce(status, () => ( "")),
|
|
16957
16957
|
label: statusLabel,
|
|
@@ -16990,9 +16990,9 @@ function TicketInfoSection({
|
|
|
16990
16990
|
expanded && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16991
16991
|
createdAt && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 items-center gap-4 border-b border-ods-border bg-ods-bg px-4 py-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: createdAt, label: "Created" }) }),
|
|
16992
16992
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
|
|
16993
|
-
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16993
|
+
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.SimpleMarkdownRenderer, { content: description }),
|
|
16994
16994
|
attachments && attachments.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketAttachmentsList, { attachments }) }),
|
|
16995
|
-
tags && tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Tags", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-wrap gap-2", children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16995
|
+
tags && tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Tags", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-wrap gap-2", children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
|
|
16996
16996
|
(notes || onAddNote) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Notes", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16997
16997
|
TicketNotesSection,
|
|
16998
16998
|
{
|
|
@@ -17015,7 +17015,7 @@ function renderTicketStatusOption(option, isSelected) {
|
|
|
17015
17015
|
const { label, color } = option;
|
|
17016
17016
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-[var(--spacing-system-xs)]", children: [
|
|
17017
17017
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
|
|
17018
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17018
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ColorSwatch, { color }),
|
|
17019
17019
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TruncateText, { className: "text-inherit", children: label }) })
|
|
17020
17020
|
] }),
|
|
17021
17021
|
isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
|
|
@@ -17060,9 +17060,9 @@ function TakeOverTicketModal({
|
|
|
17060
17060
|
if (!selectedStatusId || !assigneeId || isPending) return;
|
|
17061
17061
|
onConfirm({ statusId: selectedStatusId, assigneeId });
|
|
17062
17062
|
};
|
|
17063
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17063
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17064
17064
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17065
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17065
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalTitle, { children: "Take Over Ticket" }) }),
|
|
17066
17066
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
17067
17067
|
"The ticket ",
|
|
17068
17068
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
|
|
@@ -17077,7 +17077,7 @@ function TakeOverTicketModal({
|
|
|
17077
17077
|
value: selectedStatusId,
|
|
17078
17078
|
onChange: setStatusId,
|
|
17079
17079
|
placeholder: "Select Status",
|
|
17080
|
-
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17080
|
+
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
|
|
17081
17081
|
renderOption: renderTicketStatusOption
|
|
17082
17082
|
}
|
|
17083
17083
|
) }),
|
|
@@ -17104,7 +17104,7 @@ function TakeOverTicketModal({
|
|
|
17104
17104
|
}
|
|
17105
17105
|
) })
|
|
17106
17106
|
] }),
|
|
17107
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17107
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.ModalFooter, { children: [
|
|
17108
17108
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
17109
17109
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
17110
17110
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -17163,9 +17163,9 @@ function ReopenTicketModal({
|
|
|
17163
17163
|
reason: trimmedReason ? trimmedReason.slice(0, REASON_MAX_LENGTH) : null
|
|
17164
17164
|
});
|
|
17165
17165
|
};
|
|
17166
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17166
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17167
17167
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17168
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17168
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalTitle, { children: "Reopen Ticket" }) }),
|
|
17169
17169
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
17170
17170
|
"The ticket ",
|
|
17171
17171
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
|
|
@@ -17180,7 +17180,7 @@ function ReopenTicketModal({
|
|
|
17180
17180
|
value: selectedStatusId,
|
|
17181
17181
|
onChange: setStatusId,
|
|
17182
17182
|
placeholder: "Select Status",
|
|
17183
|
-
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17183
|
+
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
|
|
17184
17184
|
renderOption: renderTicketStatusOption
|
|
17185
17185
|
}
|
|
17186
17186
|
) }),
|
|
@@ -17218,7 +17218,7 @@ function ReopenTicketModal({
|
|
|
17218
17218
|
disabled: isPending
|
|
17219
17219
|
}
|
|
17220
17220
|
) }),
|
|
17221
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17221
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.ModalFooter, { children: [
|
|
17222
17222
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
17223
17223
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
17224
17224
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -17266,9 +17266,9 @@ function ReopenTicketRequestModal({
|
|
|
17266
17266
|
...showHandoffOption ? { handoffToTechnician: handoff } : {}
|
|
17267
17267
|
});
|
|
17268
17268
|
};
|
|
17269
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17269
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17270
17270
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17271
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17271
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ModalTitle, { children: "Reopen Ticket" }) }),
|
|
17272
17272
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: "This ticket will be reopened and the AI assistant will continue helping you." }),
|
|
17273
17273
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17274
17274
|
Textarea,
|
|
@@ -17292,7 +17292,7 @@ function ReopenTicketRequestModal({
|
|
|
17292
17292
|
disabled: isPending
|
|
17293
17293
|
}
|
|
17294
17294
|
),
|
|
17295
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17295
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.ModalFooter, { children: [
|
|
17296
17296
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1", children: "Cancel" }),
|
|
17297
17297
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "accent", onClick: handleConfirm, loading: isPending, className: "flex-1", children: "Reopen Ticket" })
|
|
17298
17298
|
] })
|
|
@@ -19289,7 +19289,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
|
|
|
19289
19289
|
sandbox: "allow-scripts allow-same-origin allow-popups allow-presentation",
|
|
19290
19290
|
title: config.title,
|
|
19291
19291
|
loading: "eager",
|
|
19292
|
-
...
|
|
19292
|
+
..._chunkLOJ5KQ6Bcjs.fetchPriorityProp.call(void 0, "high")
|
|
19293
19293
|
},
|
|
19294
19294
|
iframeKey
|
|
19295
19295
|
),
|
|
@@ -20139,7 +20139,7 @@ function MediaGalleryManager({
|
|
|
20139
20139
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video overflow-hidden rounded-lg bg-ods-bg", children: mediaItem.media_type === "video" || mediaItem.media_type === "demo" ? (
|
|
20140
20140
|
// <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
|
|
20141
20141
|
// fit="cover" crops to the aspect-video cell.
|
|
20142
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20142
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Video, { kind: "file", url: mediaItem.media_url, fit: "cover", className: "h-full w-full" })
|
|
20143
20143
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20144
20144
|
_chunkWLSFBRT5cjs.next_image_default,
|
|
20145
20145
|
{
|
|
@@ -20600,18 +20600,1674 @@ function PlatformFilterComponent({
|
|
|
20600
20600
|
// src/components/features/push-button-selector.tsx
|
|
20601
20601
|
|
|
20602
20602
|
|
|
20603
|
+
|
|
20604
|
+
// src/components/loading/unified-skeleton.tsx
|
|
20605
|
+
|
|
20606
|
+
function UnifiedSkeleton({
|
|
20607
|
+
className,
|
|
20608
|
+
variant = "default",
|
|
20609
|
+
width,
|
|
20610
|
+
height,
|
|
20611
|
+
animate = true,
|
|
20612
|
+
"aria-label": ariaLabel,
|
|
20613
|
+
...props
|
|
20614
|
+
}) {
|
|
20615
|
+
const baseClasses = "bg-ods-skeleton";
|
|
20616
|
+
const variantClasses = {
|
|
20617
|
+
default: "rounded-md",
|
|
20618
|
+
text: "rounded-sm",
|
|
20619
|
+
circular: "rounded-full",
|
|
20620
|
+
rectangular: "rounded-none"
|
|
20621
|
+
};
|
|
20622
|
+
const defaultHeights = {
|
|
20623
|
+
default: "h-4",
|
|
20624
|
+
text: "h-4",
|
|
20625
|
+
circular: "h-12 w-12",
|
|
20626
|
+
rectangular: "h-4"
|
|
20627
|
+
};
|
|
20628
|
+
const animationClasses = animate ? "animate-pulse motion-reduce:animate-none" : "";
|
|
20629
|
+
const style = {
|
|
20630
|
+
width,
|
|
20631
|
+
height
|
|
20632
|
+
};
|
|
20633
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20634
|
+
"div",
|
|
20635
|
+
{
|
|
20636
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
20637
|
+
baseClasses,
|
|
20638
|
+
variantClasses[variant],
|
|
20639
|
+
!height && !style.height && defaultHeights[variant],
|
|
20640
|
+
!width && !style.width && variant !== "circular" && "w-full",
|
|
20641
|
+
animationClasses,
|
|
20642
|
+
className
|
|
20643
|
+
),
|
|
20644
|
+
style,
|
|
20645
|
+
role: "status",
|
|
20646
|
+
"aria-label": ariaLabel || "Loading content",
|
|
20647
|
+
...props
|
|
20648
|
+
}
|
|
20649
|
+
);
|
|
20650
|
+
}
|
|
20651
|
+
var TextSkeleton = {
|
|
20652
|
+
/**
|
|
20653
|
+
* Large heading skeleton (h1, h2)
|
|
20654
|
+
*/
|
|
20655
|
+
Heading: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20656
|
+
UnifiedSkeleton,
|
|
20657
|
+
{
|
|
20658
|
+
variant: "text",
|
|
20659
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-8 md:h-10 lg:h-12", className),
|
|
20660
|
+
"aria-label": "Loading heading",
|
|
20661
|
+
...props
|
|
20662
|
+
}
|
|
20663
|
+
),
|
|
20664
|
+
/**
|
|
20665
|
+
* Medium heading skeleton (h3, h4)
|
|
20666
|
+
*/
|
|
20667
|
+
Subheading: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20668
|
+
UnifiedSkeleton,
|
|
20669
|
+
{
|
|
20670
|
+
variant: "text",
|
|
20671
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-6 md:h-7 lg:h-8", className),
|
|
20672
|
+
"aria-label": "Loading subheading",
|
|
20673
|
+
...props
|
|
20674
|
+
}
|
|
20675
|
+
),
|
|
20676
|
+
/**
|
|
20677
|
+
* Body text skeleton
|
|
20678
|
+
*/
|
|
20679
|
+
Body: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "text", className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-4 md:h-5", className), "aria-label": "Loading text", ...props }),
|
|
20680
|
+
/**
|
|
20681
|
+
* Small text skeleton (captions, metadata)
|
|
20682
|
+
*/
|
|
20683
|
+
Caption: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "text", className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-3 md:h-4", className), "aria-label": "Loading caption", ...props })
|
|
20684
|
+
};
|
|
20685
|
+
var InteractiveSkeleton = {
|
|
20686
|
+
/**
|
|
20687
|
+
* Button skeleton with proper touch targets
|
|
20688
|
+
*/
|
|
20689
|
+
Button: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20690
|
+
UnifiedSkeleton,
|
|
20691
|
+
{
|
|
20692
|
+
variant: "default",
|
|
20693
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-10 w-32 md:h-12 md:w-40", className),
|
|
20694
|
+
"aria-label": "Loading button",
|
|
20695
|
+
...props
|
|
20696
|
+
}
|
|
20697
|
+
),
|
|
20698
|
+
/**
|
|
20699
|
+
* Input field skeleton
|
|
20700
|
+
*/
|
|
20701
|
+
Input: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20702
|
+
UnifiedSkeleton,
|
|
20703
|
+
{
|
|
20704
|
+
variant: "default",
|
|
20705
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-10 w-full md:h-12", className),
|
|
20706
|
+
"aria-label": "Loading input field",
|
|
20707
|
+
...props
|
|
20708
|
+
}
|
|
20709
|
+
),
|
|
20710
|
+
/**
|
|
20711
|
+
* Filter chip skeleton
|
|
20712
|
+
*/
|
|
20713
|
+
Chip: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20714
|
+
UnifiedSkeleton,
|
|
20715
|
+
{
|
|
20716
|
+
variant: "default",
|
|
20717
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-8 w-20 rounded-full", className),
|
|
20718
|
+
"aria-label": "Loading filter",
|
|
20719
|
+
...props
|
|
20720
|
+
}
|
|
20721
|
+
)
|
|
20722
|
+
};
|
|
20723
|
+
var MediaSkeleton = {
|
|
20724
|
+
/**
|
|
20725
|
+
* Avatar/profile image skeleton
|
|
20726
|
+
*/
|
|
20727
|
+
Avatar: ({
|
|
20728
|
+
size = "md",
|
|
20729
|
+
className,
|
|
20730
|
+
...props
|
|
20731
|
+
}) => {
|
|
20732
|
+
const sizeClasses2 = {
|
|
20733
|
+
sm: "h-8 w-8",
|
|
20734
|
+
md: "h-12 w-12",
|
|
20735
|
+
lg: "h-16 w-16"
|
|
20736
|
+
};
|
|
20737
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20738
|
+
UnifiedSkeleton,
|
|
20739
|
+
{
|
|
20740
|
+
variant: "circular",
|
|
20741
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, sizeClasses2[size], className),
|
|
20742
|
+
"aria-label": "Loading profile image",
|
|
20743
|
+
...props
|
|
20744
|
+
}
|
|
20745
|
+
);
|
|
20746
|
+
},
|
|
20747
|
+
/**
|
|
20748
|
+
* Card image skeleton (1200×630 OG aspect — matches entity-cards default
|
|
20749
|
+
* so loading state never causes a height shift when card data arrives)
|
|
20750
|
+
*/
|
|
20751
|
+
CardImage: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20752
|
+
UnifiedSkeleton,
|
|
20753
|
+
{
|
|
20754
|
+
variant: "default",
|
|
20755
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "aspect-[1200/630] w-full", className),
|
|
20756
|
+
"aria-label": "Loading image",
|
|
20757
|
+
...props
|
|
20758
|
+
}
|
|
20759
|
+
),
|
|
20760
|
+
/**
|
|
20761
|
+
* Icon skeleton
|
|
20762
|
+
*/
|
|
20763
|
+
Icon: ({
|
|
20764
|
+
size = "md",
|
|
20765
|
+
className,
|
|
20766
|
+
...props
|
|
20767
|
+
}) => {
|
|
20768
|
+
const sizeClasses2 = {
|
|
20769
|
+
sm: "h-4 w-4",
|
|
20770
|
+
md: "h-6 w-6",
|
|
20771
|
+
lg: "h-8 w-8"
|
|
20772
|
+
};
|
|
20773
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20774
|
+
UnifiedSkeleton,
|
|
20775
|
+
{
|
|
20776
|
+
variant: "default",
|
|
20777
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, sizeClasses2[size], className),
|
|
20778
|
+
"aria-label": "Loading icon",
|
|
20779
|
+
...props
|
|
20780
|
+
}
|
|
20781
|
+
);
|
|
20782
|
+
}
|
|
20783
|
+
};
|
|
20784
|
+
|
|
20785
|
+
// src/components/loading/card-skeleton.tsx
|
|
20786
|
+
|
|
20787
|
+
function CardSkeleton({
|
|
20788
|
+
className,
|
|
20789
|
+
containerClassName,
|
|
20790
|
+
variant = "vendor",
|
|
20791
|
+
showActions = true,
|
|
20792
|
+
showMetadata = true,
|
|
20793
|
+
...props
|
|
20794
|
+
}) {
|
|
20795
|
+
const cardContent = {
|
|
20796
|
+
vendor: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorCardContent, { showMetadata }),
|
|
20797
|
+
blog: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BlogCardContent, { showActions, showMetadata }),
|
|
20798
|
+
category: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CategoryCardContent, {}),
|
|
20799
|
+
alternative: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AlternativeCardContent, { showActions })
|
|
20800
|
+
};
|
|
20801
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20802
|
+
"div",
|
|
20803
|
+
{
|
|
20804
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
20805
|
+
containerClassName || "border border-ods-border bg-ods-card",
|
|
20806
|
+
"overflow-hidden rounded-lg",
|
|
20807
|
+
// Flex layouts for certain variants
|
|
20808
|
+
variant === "blog" && "flex h-full flex-col",
|
|
20809
|
+
variant === "vendor" && "flex h-full flex-col",
|
|
20810
|
+
className
|
|
20811
|
+
),
|
|
20812
|
+
role: "status",
|
|
20813
|
+
"aria-label": `Loading ${variant} card`,
|
|
20814
|
+
...props,
|
|
20815
|
+
children: cardContent[variant]
|
|
20816
|
+
}
|
|
20817
|
+
);
|
|
20818
|
+
}
|
|
20819
|
+
function VendorCardContent({ showMetadata }) {
|
|
20820
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3 p-4", children: [
|
|
20821
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-start gap-3", children: [
|
|
20822
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[60px] w-[60px] flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "sm", className: "h-11 w-11" }) }),
|
|
20823
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center space-y-1 py-2", children: [
|
|
20824
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
20825
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-1/2" })
|
|
20826
|
+
] })
|
|
20827
|
+
] }),
|
|
20828
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-full items-center overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
|
|
20829
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
20830
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
|
|
20831
|
+
] }) }),
|
|
20832
|
+
showMetadata && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-2", children: [
|
|
20833
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-shrink items-center gap-3 md:gap-4", children: [
|
|
20834
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
20835
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
|
|
20836
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-8" })
|
|
20837
|
+
] }),
|
|
20838
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
20839
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
|
|
20840
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-10" })
|
|
20841
|
+
] })
|
|
20842
|
+
] }),
|
|
20843
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5 rounded border border-ods-border bg-ods-bg px-2.5 py-1.5", children: [
|
|
20844
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-2.5 w-2.5" }) }),
|
|
20845
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
|
|
20846
|
+
] }) })
|
|
20847
|
+
] })
|
|
20848
|
+
] });
|
|
20849
|
+
}
|
|
20850
|
+
function BlogCardContent({ showActions, showMetadata }) {
|
|
20851
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
20852
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "blog-card-image-container relative aspect-[1200/630] w-full overflow-hidden bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.CardImage, {}) }),
|
|
20853
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-grow flex-col p-4", children: [
|
|
20854
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex min-h-[50.4px] items-center md:min-h-[56px] lg:min-h-[61.6px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
|
|
20855
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-full" }),
|
|
20856
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" })
|
|
20857
|
+
] }) }),
|
|
20858
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-3 flex h-[28px] items-center gap-2", children: [
|
|
20859
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-16" }),
|
|
20860
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-12" })
|
|
20861
|
+
] }),
|
|
20862
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex min-h-[42px] items-center md:min-h-[45px] lg:min-h-[48px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
|
|
20863
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
20864
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-1/2" })
|
|
20865
|
+
] }) }),
|
|
20866
|
+
showActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "h-8 w-24" }) }),
|
|
20867
|
+
showMetadata && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-auto", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4 border-t border-ods-border pt-4", children: [
|
|
20868
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
20869
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "sm" }),
|
|
20870
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
|
|
20871
|
+
] }),
|
|
20872
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-3 text-ods-text-muted", children: [
|
|
20873
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-12" }),
|
|
20874
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-1 w-1 rounded-full bg-ods-skeleton" }),
|
|
20875
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
|
|
20876
|
+
] })
|
|
20877
|
+
] }) })
|
|
20878
|
+
] })
|
|
20879
|
+
] });
|
|
20880
|
+
}
|
|
20881
|
+
function CategoryCardContent() {
|
|
20882
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 p-4 md:p-6", children: [
|
|
20883
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex gap-2 md:gap-3", children: Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "lg", className: "flex-shrink-0" }, index)) }),
|
|
20884
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
20885
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
|
|
20886
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
20887
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-1/2" })
|
|
20888
|
+
] }),
|
|
20889
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start justify-between gap-4 md:items-end md:gap-6", children: [
|
|
20890
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
20891
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
20892
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
|
|
20893
|
+
] }),
|
|
20894
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "h-10 w-10 flex-shrink-0 md:h-12 md:w-12" })
|
|
20895
|
+
] })
|
|
20896
|
+
] })
|
|
20897
|
+
] });
|
|
20898
|
+
}
|
|
20899
|
+
function AlternativeCardContent({ showActions }) {
|
|
20900
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4 p-4", children: [
|
|
20901
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "md", className: "flex-shrink-0" }),
|
|
20902
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
20903
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
|
|
20904
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
20905
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
|
|
20906
|
+
] }),
|
|
20907
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
|
|
20908
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
20909
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-5/6" })
|
|
20910
|
+
] }),
|
|
20911
|
+
showActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "h-8 w-20" }) })
|
|
20912
|
+
] })
|
|
20913
|
+
] });
|
|
20914
|
+
}
|
|
20915
|
+
function CardSkeletonGrid({
|
|
20916
|
+
count = 6,
|
|
20917
|
+
variant = "vendor",
|
|
20918
|
+
className,
|
|
20919
|
+
containerClassName,
|
|
20920
|
+
...props
|
|
20921
|
+
}) {
|
|
20922
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20923
|
+
"div",
|
|
20924
|
+
{
|
|
20925
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
20926
|
+
"grid gap-4 md:gap-6",
|
|
20927
|
+
// Responsive grid based on card type
|
|
20928
|
+
variant === "vendor" && "grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
|
|
20929
|
+
variant === "blog" && "grid-cols-1 md:grid-cols-2",
|
|
20930
|
+
variant === "category" && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
20931
|
+
variant === "alternative" && "grid-cols-1",
|
|
20932
|
+
className
|
|
20933
|
+
),
|
|
20934
|
+
role: "status",
|
|
20935
|
+
"aria-label": `Loading ${count} ${variant} cards`,
|
|
20936
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardSkeleton, { variant, containerClassName, ...props }, index))
|
|
20937
|
+
}
|
|
20938
|
+
);
|
|
20939
|
+
}
|
|
20940
|
+
|
|
20941
|
+
// src/components/loading/page-layout-skeleton.tsx
|
|
20942
|
+
|
|
20943
|
+
function AnnouncementBarSkeleton() {
|
|
20944
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative w-full animate-pulse bg-ods-skeleton", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative flex w-full flex-row items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative box-border flex w-full flex-row items-center justify-start gap-4 py-3 pl-4 pr-12 md:gap-6 md:py-4 md:pl-6 md:pr-16", children: [
|
|
20945
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative h-6 w-6 shrink-0 rounded bg-ods-border md:h-8 md:w-8" }),
|
|
20946
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1 space-y-1 md:space-y-2", children: [
|
|
20947
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[14px] w-3/4 max-w-md rounded bg-ods-border md:h-[18px]" }),
|
|
20948
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden h-[12px] w-full max-w-lg rounded bg-ods-border md:block md:h-[18px]" })
|
|
20949
|
+
] }),
|
|
20950
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute right-2 top-2 h-6 w-6 rounded bg-ods-border" })
|
|
20951
|
+
] }) }) });
|
|
20952
|
+
}
|
|
20953
|
+
function HeroSkeleton() {
|
|
20954
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
20955
|
+
"section",
|
|
20956
|
+
{
|
|
20957
|
+
className: "flex w-full animate-pulse flex-col items-center justify-center px-4 py-12 text-center md:px-8 md:py-20",
|
|
20958
|
+
style: {
|
|
20959
|
+
background: "radial-gradient(circle at 50% 0%, #242323 0%, #1A1A1A 100%)"
|
|
20960
|
+
},
|
|
20961
|
+
children: [
|
|
20962
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "mb-4 h-12 w-full max-w-4xl md:mb-6 md:h-20 lg:h-24" }),
|
|
20963
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-8 w-full max-w-4xl space-y-3 px-2 md:mb-10", children: [
|
|
20964
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "h-5 md:h-7" }),
|
|
20965
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "mx-auto h-5 w-3/4 md:h-7" })
|
|
20966
|
+
] }),
|
|
20967
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "h-12 w-full md:w-64" })
|
|
20968
|
+
]
|
|
20969
|
+
}
|
|
20970
|
+
);
|
|
20971
|
+
}
|
|
20972
|
+
function SearchContainerSkeleton({
|
|
20973
|
+
className,
|
|
20974
|
+
showFilters = true
|
|
20975
|
+
}) {
|
|
20976
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-4", className || ""), children: [
|
|
20977
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 md:gap-4", children: [
|
|
20978
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Input, { className: "flex-1" }),
|
|
20979
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "w-32 md:w-40" })
|
|
20980
|
+
] }),
|
|
20981
|
+
showFilters && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap gap-2", children: [
|
|
20982
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, {}),
|
|
20983
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-24" }),
|
|
20984
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-16" }),
|
|
20985
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-20" })
|
|
20986
|
+
] })
|
|
20987
|
+
] });
|
|
20988
|
+
}
|
|
20989
|
+
function CategorySidebarSkeleton({ className }) {
|
|
20990
|
+
const items = [
|
|
20991
|
+
{ type: "file", width: "w-20", hasBadge: false },
|
|
20992
|
+
{ type: "folder", width: "w-24", hasBadge: true },
|
|
20993
|
+
{ type: "folder", width: "w-20", hasBadge: true },
|
|
20994
|
+
{ type: "folder", width: "w-24", hasBadge: true },
|
|
20995
|
+
{ type: "folder", width: "w-16", hasBadge: true },
|
|
20996
|
+
{ type: "folder", width: "w-20", hasBadge: true },
|
|
20997
|
+
{ type: "folder", width: "w-28", hasBadge: true },
|
|
20998
|
+
{ type: "folder", width: "w-16", hasBadge: true },
|
|
20999
|
+
{ type: "folder", width: "w-24", hasBadge: true },
|
|
21000
|
+
{ type: "file", width: "w-28" },
|
|
21001
|
+
{ type: "file", width: "w-36" }
|
|
21002
|
+
];
|
|
21003
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "w-full lg:w-[320px]", className), children: [
|
|
21004
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "mb-4 h-[14px] w-24 rounded" }),
|
|
21005
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-1.5", children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
21006
|
+
"div",
|
|
21007
|
+
{
|
|
21008
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
21009
|
+
"flex min-h-[50px] items-center justify-between rounded-lg border border-ods-border px-4 py-4",
|
|
21010
|
+
index === 0 ? "bg-ods-accent/20" : "bg-ods-card"
|
|
21011
|
+
),
|
|
21012
|
+
children: [
|
|
21013
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2.5", children: [
|
|
21014
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-4 w-4 shrink-0 rounded" }),
|
|
21015
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: `h-[14px] ${item.width} rounded` })
|
|
21016
|
+
] }),
|
|
21017
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-[18px] items-center gap-2", children: [
|
|
21018
|
+
item.hasBadge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-[18px] w-14 rounded" }),
|
|
21019
|
+
item.type === "folder" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-4 w-4 rounded" })
|
|
21020
|
+
] })
|
|
21021
|
+
]
|
|
21022
|
+
},
|
|
21023
|
+
index
|
|
21024
|
+
)) })
|
|
21025
|
+
] });
|
|
21026
|
+
}
|
|
21027
|
+
function BreadcrumbSkeleton({ className }) {
|
|
21028
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "mb-6 flex items-center space-x-1", className), children: [
|
|
21029
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" }),
|
|
21030
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
|
|
21031
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-24" }),
|
|
21032
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
|
|
21033
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-32" }),
|
|
21034
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
|
|
21035
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-24" })
|
|
21036
|
+
] });
|
|
21037
|
+
}
|
|
21038
|
+
function ResultsHeaderSkeleton({ className }) {
|
|
21039
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "mb-6 flex flex-col items-start justify-between gap-4 md:flex-row md:items-center", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-48" }) }) });
|
|
21040
|
+
}
|
|
21041
|
+
function TwoColumnLayoutSkeleton({
|
|
21042
|
+
className,
|
|
21043
|
+
sidebarContent,
|
|
21044
|
+
mainContent,
|
|
21045
|
+
sidebarPosition = "left"
|
|
21046
|
+
}) {
|
|
21047
|
+
const sidebar = sidebarContent || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CategorySidebarSkeleton, {});
|
|
21048
|
+
const main = mainContent || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardSkeletonGrid, { count: 6 });
|
|
21049
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21050
|
+
"div",
|
|
21051
|
+
{
|
|
21052
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
21053
|
+
"grid grid-cols-1 gap-6 lg:grid-cols-[320px_1fr] lg:gap-8",
|
|
21054
|
+
sidebarPosition === "right" && "lg:grid-cols-[1fr_320px]",
|
|
21055
|
+
className
|
|
21056
|
+
),
|
|
21057
|
+
children: sidebarPosition === "left" ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
21058
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "aside", { className: "order-2 lg:order-1", children: sidebar }),
|
|
21059
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "main", { className: "order-1 lg:order-2", children: main })
|
|
21060
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
21061
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "main", { className: "order-1", children: main }),
|
|
21062
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "aside", { className: "order-2", children: sidebar })
|
|
21063
|
+
] })
|
|
21064
|
+
}
|
|
21065
|
+
);
|
|
21066
|
+
}
|
|
21067
|
+
function ArticleLayoutSkeleton({ className }) {
|
|
21068
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "mx-auto max-w-4xl", className), children: [
|
|
21069
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "header", { className: "mb-8 space-y-4 md:mb-12 md:space-y-6", children: [
|
|
21070
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2", children: [
|
|
21071
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, {}),
|
|
21072
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-16" })
|
|
21073
|
+
] }),
|
|
21074
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
|
|
21075
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-full" }),
|
|
21076
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-3/4" })
|
|
21077
|
+
] }),
|
|
21078
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 border-t border-ods-divider pt-4", children: [
|
|
21079
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
21080
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "sm" }),
|
|
21081
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-24" })
|
|
21082
|
+
] }),
|
|
21083
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-20" }),
|
|
21084
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
|
|
21085
|
+
] })
|
|
21086
|
+
] }),
|
|
21087
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-8 md:mb-12", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.CardImage, { className: "h-64 w-full md:h-96" }) }),
|
|
21088
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "prose prose-invert max-w-none space-y-6", children: [
|
|
21089
|
+
Array.from({ length: 12 }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21090
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
21091
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
21092
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-5/6" }),
|
|
21093
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
|
|
21094
|
+
] }, index)),
|
|
21095
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "py-4", children: [
|
|
21096
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "mb-4 w-2/3" }),
|
|
21097
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21098
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
21099
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-4/5" })
|
|
21100
|
+
] })
|
|
21101
|
+
] })
|
|
21102
|
+
] })
|
|
21103
|
+
] });
|
|
21104
|
+
}
|
|
21105
|
+
function VendorDetailLayoutSkeleton({ className }) {
|
|
21106
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "main", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "min-h-screen bg-ods-bg", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mx-auto max-w-[1920px] px-6 py-6 md:px-20 md:py-10", children: [
|
|
21107
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, BreadcrumbSkeleton, { className: "mb-6" }),
|
|
21108
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col lg:flex-row lg:gap-10", children: [
|
|
21109
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
|
|
21110
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-10", children: [
|
|
21111
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-6 flex gap-6", children: [
|
|
21112
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-20 w-20 flex-shrink-0 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
|
|
21113
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3", children: [
|
|
21114
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
21115
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-80 max-w-full animate-pulse rounded bg-ods-skeleton md:h-16 lg:h-20" }),
|
|
21116
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-32 animate-pulse rounded bg-ods-skeleton md:h-6" })
|
|
21117
|
+
] }),
|
|
21118
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
21119
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-20 animate-pulse rounded bg-ods-skeleton" }),
|
|
21120
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-16 animate-pulse rounded bg-ods-skeleton" })
|
|
21121
|
+
] })
|
|
21122
|
+
] })
|
|
21123
|
+
] }),
|
|
21124
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-2 h-[300px] w-full animate-pulse rounded-lg border border-ods-border bg-ods-card md:h-[400px] lg:h-[500px]" }),
|
|
21125
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mx-auto h-4 w-24 animate-pulse rounded bg-ods-skeleton" }) })
|
|
21126
|
+
] }),
|
|
21127
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-10 lg:hidden", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
21128
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
|
|
21129
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21130
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
|
|
21131
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" })
|
|
21132
|
+
] }),
|
|
21133
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "overflow-hidden rounded-lg border border-ods-border", children: [
|
|
21134
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 bg-ods-card p-4", children: [
|
|
21135
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 animate-pulse rounded bg-ods-skeleton" }),
|
|
21136
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
|
|
21137
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-20 animate-pulse rounded bg-ods-skeleton" }),
|
|
21138
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-12 animate-pulse rounded bg-ods-skeleton" })
|
|
21139
|
+
] })
|
|
21140
|
+
] }),
|
|
21141
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3 p-4", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
21142
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-6 animate-pulse rounded bg-ods-skeleton" }),
|
|
21143
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end gap-1", children: [
|
|
21144
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-12 animate-pulse rounded bg-ods-skeleton" }),
|
|
21145
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-8 animate-pulse rounded bg-ods-skeleton" })
|
|
21146
|
+
] })
|
|
21147
|
+
] }, i)) })
|
|
21148
|
+
] }),
|
|
21149
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
|
|
21150
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
|
|
21151
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
|
|
21152
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" })
|
|
21153
|
+
] })
|
|
21154
|
+
] }) }),
|
|
21155
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
|
|
21156
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-48 animate-pulse rounded bg-ods-skeleton md:h-10" }),
|
|
21157
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4", children: [
|
|
21158
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-48 animate-pulse rounded bg-ods-skeleton" }),
|
|
21159
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21160
|
+
"div",
|
|
21161
|
+
{
|
|
21162
|
+
className: "h-10 w-24 animate-pulse rounded-lg border border-ods-border bg-ods-card"
|
|
21163
|
+
},
|
|
21164
|
+
i
|
|
21165
|
+
)) })
|
|
21166
|
+
] }),
|
|
21167
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4", children: [
|
|
21168
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-52 animate-pulse rounded bg-ods-skeleton" }),
|
|
21169
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21170
|
+
"div",
|
|
21171
|
+
{
|
|
21172
|
+
className: "h-10 w-28 animate-pulse rounded-lg border border-ods-border bg-ods-card"
|
|
21173
|
+
},
|
|
21174
|
+
i
|
|
21175
|
+
)) })
|
|
21176
|
+
] })
|
|
21177
|
+
] }),
|
|
21178
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
|
|
21179
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-64 animate-pulse rounded bg-ods-skeleton md:h-10" }),
|
|
21180
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-card p-6 md:p-8", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
21181
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 animate-pulse rounded bg-ods-skeleton" }),
|
|
21182
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 animate-pulse rounded bg-ods-skeleton" }),
|
|
21183
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-5/6 animate-pulse rounded bg-ods-skeleton" }),
|
|
21184
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-4/5 animate-pulse rounded bg-ods-skeleton" })
|
|
21185
|
+
] }) })
|
|
21186
|
+
] }),
|
|
21187
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
|
|
21188
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-72 animate-pulse rounded bg-ods-skeleton md:h-10" }),
|
|
21189
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-4 rounded-lg border border-ods-border bg-ods-card p-4", children: [
|
|
21190
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 flex-shrink-0 animate-pulse rounded bg-ods-skeleton" }),
|
|
21191
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
21192
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-3/4 animate-pulse rounded bg-ods-skeleton" }),
|
|
21193
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 animate-pulse rounded bg-ods-skeleton" })
|
|
21194
|
+
] })
|
|
21195
|
+
] }, i)) })
|
|
21196
|
+
] }),
|
|
21197
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
|
|
21198
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-80 animate-pulse rounded bg-ods-skeleton md:h-10" }),
|
|
21199
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-6 lg:grid-cols-2", children: [
|
|
21200
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-6", children: [
|
|
21201
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-16 animate-pulse rounded bg-ods-skeleton" }),
|
|
21202
|
+
Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-3 rounded-lg border border-ods-border bg-ods-card p-4", children: [
|
|
21203
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 flex-shrink-0 animate-pulse rounded border border-ods-border bg-ods-bg" }),
|
|
21204
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
21205
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-2/3 animate-pulse rounded bg-ods-skeleton" }),
|
|
21206
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 animate-pulse rounded bg-ods-skeleton" })
|
|
21207
|
+
] })
|
|
21208
|
+
] }, i))
|
|
21209
|
+
] }),
|
|
21210
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-6", children: [
|
|
21211
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-16 animate-pulse rounded bg-ods-skeleton" }),
|
|
21212
|
+
Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-3 rounded-lg border border-ods-border bg-ods-card p-4", children: [
|
|
21213
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 flex-shrink-0 animate-pulse rounded border border-ods-border bg-ods-bg" }),
|
|
21214
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
21215
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-2/3 animate-pulse rounded bg-ods-skeleton" }),
|
|
21216
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 animate-pulse rounded bg-ods-skeleton" })
|
|
21217
|
+
] })
|
|
21218
|
+
] }, i))
|
|
21219
|
+
] })
|
|
21220
|
+
] })
|
|
21221
|
+
] }),
|
|
21222
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
|
|
21223
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-72 animate-pulse rounded bg-ods-skeleton md:h-10" }),
|
|
21224
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
|
|
21225
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4", children: [
|
|
21226
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-16 w-16 flex-shrink-0 animate-pulse rounded-lg border border-ods-border bg-ods-bg" }),
|
|
21227
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
21228
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-3/4 animate-pulse rounded bg-ods-skeleton" }),
|
|
21229
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-1/2 animate-pulse rounded bg-ods-skeleton" })
|
|
21230
|
+
] }),
|
|
21231
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-20 animate-pulse rounded bg-ods-skeleton" })
|
|
21232
|
+
] }),
|
|
21233
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21234
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 animate-pulse rounded bg-ods-skeleton" }),
|
|
21235
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-5/6 animate-pulse rounded bg-ods-skeleton" }),
|
|
21236
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-4/5 animate-pulse rounded bg-ods-skeleton" })
|
|
21237
|
+
] }),
|
|
21238
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between border-t border-ods-border pt-2", children: [
|
|
21239
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-16 animate-pulse rounded bg-ods-skeleton" }),
|
|
21240
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-20 animate-pulse rounded bg-ods-skeleton" })
|
|
21241
|
+
] })
|
|
21242
|
+
] }, i)) }),
|
|
21243
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-md bg-ods-skeleton" })
|
|
21244
|
+
] }),
|
|
21245
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
|
|
21246
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-64 animate-pulse rounded bg-ods-skeleton md:h-10" }),
|
|
21247
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-3", children: [
|
|
21248
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 overflow-hidden rounded-lg border border-ods-border bg-ods-bg", children: [
|
|
21249
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "border-b border-ods-border p-3", children: [
|
|
21250
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-2 h-3 w-8 animate-pulse rounded bg-ods-skeleton" }),
|
|
21251
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-full animate-pulse rounded bg-ods-skeleton" })
|
|
21252
|
+
] }),
|
|
21253
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-3", children: [
|
|
21254
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-2 h-3 w-16 animate-pulse rounded bg-ods-skeleton" }),
|
|
21255
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21256
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-full animate-pulse rounded bg-ods-skeleton" }),
|
|
21257
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 animate-pulse rounded bg-ods-skeleton" }),
|
|
21258
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-1/2 animate-pulse rounded bg-ods-skeleton" })
|
|
21259
|
+
] })
|
|
21260
|
+
] })
|
|
21261
|
+
] }),
|
|
21262
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-stretch", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[120px] w-20 animate-pulse rounded-lg bg-ods-skeleton" }) })
|
|
21263
|
+
] }) }),
|
|
21264
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-card p-4", children: [
|
|
21265
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex flex-col gap-3 min-[420px]:flex-row min-[420px]:items-center min-[420px]:justify-between min-[420px]:gap-2", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
21266
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 rounded-lg border border-ods-border bg-ods-card px-3 py-2", children: [
|
|
21267
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 animate-pulse rounded-lg bg-ods-skeleton" }),
|
|
21268
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-20 animate-pulse rounded bg-ods-skeleton" })
|
|
21269
|
+
] }),
|
|
21270
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-12 animate-pulse rounded bg-ods-skeleton" })
|
|
21271
|
+
] }) }),
|
|
21272
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21273
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-2/3 animate-pulse rounded bg-ods-skeleton" }),
|
|
21274
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
|
|
21275
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-full animate-pulse rounded bg-ods-skeleton" }),
|
|
21276
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-4/5 animate-pulse rounded bg-ods-skeleton" }),
|
|
21277
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/5 animate-pulse rounded bg-ods-skeleton" })
|
|
21278
|
+
] })
|
|
21279
|
+
] })
|
|
21280
|
+
] }, i)) })
|
|
21281
|
+
] })
|
|
21282
|
+
] }),
|
|
21283
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden w-[290px] flex-shrink-0 lg:block", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
21284
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
|
|
21285
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21286
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
|
|
21287
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" })
|
|
21288
|
+
] }),
|
|
21289
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "overflow-hidden rounded-lg border border-ods-border", children: [
|
|
21290
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 bg-ods-card p-4", children: [
|
|
21291
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 animate-pulse rounded bg-ods-skeleton" }),
|
|
21292
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
|
|
21293
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-20 animate-pulse rounded bg-ods-skeleton" }),
|
|
21294
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-12 animate-pulse rounded bg-ods-skeleton" })
|
|
21295
|
+
] })
|
|
21296
|
+
] }),
|
|
21297
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3 p-4", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
21298
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-6 animate-pulse rounded bg-ods-skeleton" }),
|
|
21299
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end gap-1", children: [
|
|
21300
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-12 animate-pulse rounded bg-ods-skeleton" }),
|
|
21301
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-8 animate-pulse rounded bg-ods-skeleton" })
|
|
21302
|
+
] })
|
|
21303
|
+
] }, i)) })
|
|
21304
|
+
] }),
|
|
21305
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
|
|
21306
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
|
|
21307
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
|
|
21308
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" })
|
|
21309
|
+
] })
|
|
21310
|
+
] }) })
|
|
21311
|
+
] })
|
|
21312
|
+
] }) });
|
|
21313
|
+
}
|
|
21314
|
+
function StatsSectionSkeleton({ className, columns = 3 }) {
|
|
21315
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21316
|
+
"div",
|
|
21317
|
+
{
|
|
21318
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
21319
|
+
"mb-12 grid gap-6 md:mb-16",
|
|
21320
|
+
columns === 3 && "grid-cols-1 md:grid-cols-3",
|
|
21321
|
+
columns === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
21322
|
+
className
|
|
21323
|
+
),
|
|
21324
|
+
children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-card p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
21325
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "lg" }),
|
|
21326
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
21327
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21328
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
21329
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
|
|
21330
|
+
] })
|
|
21331
|
+
] }) }, i))
|
|
21332
|
+
}
|
|
21333
|
+
);
|
|
21334
|
+
}
|
|
21335
|
+
function BlogCardGridSkeleton({ className }) {
|
|
21336
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardSkeletonGrid, { count: 4, variant: "blog", className: "grid-cols-1 md:grid-cols-2" }) });
|
|
21337
|
+
}
|
|
21338
|
+
function VendorGridSkeleton({ className }) {
|
|
21339
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardSkeletonGrid, { count: 12, variant: "vendor", className: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3" }) });
|
|
21340
|
+
}
|
|
21341
|
+
function SlackCommunitySkeleton() {
|
|
21342
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "section", { className: "w-full bg-ods-bg px-4 py-12 md:px-20 md:py-20 lg:px-20", "aria-label": "Slack Community Loading", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 md:gap-6", children: [
|
|
21343
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 max-w-md animate-pulse rounded-lg bg-ods-skeleton md:h-12 lg:h-14" }) }),
|
|
21344
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-col gap-4 md:gap-6 lg:flex-row lg:items-start lg:justify-end", children: [
|
|
21345
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full flex-shrink-0 animate-pulse flex-col overflow-hidden rounded border border-ods-border bg-ods-bg lg:w-[290px] lg:max-w-[290px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 p-4", children: [
|
|
21346
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
21347
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
|
|
21348
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-24 rounded bg-ods-skeleton" }),
|
|
21349
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-16 rounded bg-ods-skeleton" })
|
|
21350
|
+
] }),
|
|
21351
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-32 rounded bg-ods-skeleton" })
|
|
21352
|
+
] }),
|
|
21353
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
|
|
21354
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-2 h-3 w-16 rounded bg-ods-skeleton" }),
|
|
21355
|
+
Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-[48px] items-center gap-2 px-2 py-3", children: [
|
|
21356
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-4 rounded bg-ods-skeleton" }),
|
|
21357
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
|
|
21358
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-1 h-3 w-24 rounded bg-ods-skeleton" }),
|
|
21359
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-2 w-16 rounded bg-ods-skeleton" })
|
|
21360
|
+
] })
|
|
21361
|
+
] }, i))
|
|
21362
|
+
] }),
|
|
21363
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2 border-t border-ods-border pt-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21364
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between", children: [
|
|
21365
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-16 rounded bg-ods-skeleton" }),
|
|
21366
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-8 rounded bg-ods-skeleton" })
|
|
21367
|
+
] }),
|
|
21368
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between", children: [
|
|
21369
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-20 rounded bg-ods-skeleton" }),
|
|
21370
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-8 rounded bg-ods-skeleton" })
|
|
21371
|
+
] })
|
|
21372
|
+
] }) })
|
|
21373
|
+
] }) }),
|
|
21374
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-[450px] min-h-[450px] min-w-0 flex-1 animate-pulse flex-col rounded-lg border border-ods-border bg-ods-card md:h-[500px] md:min-h-[500px] lg:h-[600px] lg:min-h-[600px]", children: [
|
|
21375
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-[56px] flex-shrink-0 items-center justify-between border-b border-ods-border bg-ods-bg p-4 md:h-[60px] md:p-6", children: [
|
|
21376
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
21377
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-3 rounded bg-ods-skeleton md:h-4 md:w-4" }),
|
|
21378
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-24 rounded bg-ods-skeleton md:h-4 md:w-32" })
|
|
21379
|
+
] }),
|
|
21380
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-12 rounded bg-ods-skeleton md:w-16" })
|
|
21381
|
+
] }),
|
|
21382
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[280px] flex-1 space-y-3 overflow-hidden bg-ods-bg p-4 md:min-h-[320px] md:space-y-4 md:p-6 lg:min-h-[420px]", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 md:gap-3", children: [
|
|
21383
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 flex-shrink-0 rounded-lg bg-ods-skeleton md:h-12 md:w-12" }),
|
|
21384
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
|
|
21385
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-1 flex items-center gap-2", children: [
|
|
21386
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-16 rounded bg-ods-skeleton md:w-20" }),
|
|
21387
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-12 rounded bg-ods-skeleton md:w-16" })
|
|
21388
|
+
] }),
|
|
21389
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-full rounded bg-ods-skeleton md:h-4" })
|
|
21390
|
+
] })
|
|
21391
|
+
] }, i)) }),
|
|
21392
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[72px] flex-shrink-0 border-t border-ods-border bg-ods-card p-4 md:h-[80px] md:p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-end justify-center gap-3 md:justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 rounded-lg bg-ods-skeleton md:h-12 md:w-32" }) }) })
|
|
21393
|
+
] })
|
|
21394
|
+
] })
|
|
21395
|
+
] }) });
|
|
21396
|
+
}
|
|
21397
|
+
|
|
21398
|
+
// src/components/content-loading-container.tsx
|
|
21399
|
+
|
|
21400
|
+
function ContentLoadingContainer({
|
|
21401
|
+
isLoading,
|
|
21402
|
+
children,
|
|
21403
|
+
skeletonComponent,
|
|
21404
|
+
className,
|
|
21405
|
+
minHeight = "min-h-[300px] md:min-h-[800px]",
|
|
21406
|
+
loadingOpacity = 1,
|
|
21407
|
+
transitionDuration = 300
|
|
21408
|
+
}) {
|
|
21409
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
21410
|
+
"div",
|
|
21411
|
+
{
|
|
21412
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "relative w-full transition-all ease-in-out", minHeight, className),
|
|
21413
|
+
style: {
|
|
21414
|
+
transitionDuration: `${transitionDuration}ms`
|
|
21415
|
+
},
|
|
21416
|
+
role: "region",
|
|
21417
|
+
"aria-label": isLoading ? "Loading content" : "Content loaded",
|
|
21418
|
+
"aria-live": "polite",
|
|
21419
|
+
children: [
|
|
21420
|
+
isLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21421
|
+
"div",
|
|
21422
|
+
{
|
|
21423
|
+
className: "absolute inset-0 z-10 bg-ods-bg",
|
|
21424
|
+
style: {
|
|
21425
|
+
opacity: loadingOpacity,
|
|
21426
|
+
transition: `opacity ${transitionDuration}ms ease-in-out`
|
|
21427
|
+
},
|
|
21428
|
+
role: "status",
|
|
21429
|
+
"aria-label": "Loading content",
|
|
21430
|
+
children: skeletonComponent
|
|
21431
|
+
}
|
|
21432
|
+
),
|
|
21433
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21434
|
+
"div",
|
|
21435
|
+
{
|
|
21436
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "relative transition-opacity ease-in-out", isLoading && "opacity-0"),
|
|
21437
|
+
style: {
|
|
21438
|
+
transitionDuration: `${transitionDuration}ms`
|
|
21439
|
+
},
|
|
21440
|
+
"aria-hidden": isLoading,
|
|
21441
|
+
children
|
|
21442
|
+
}
|
|
21443
|
+
)
|
|
21444
|
+
]
|
|
21445
|
+
}
|
|
21446
|
+
);
|
|
21447
|
+
}
|
|
21448
|
+
function useContentLoading(isLoading) {
|
|
21449
|
+
const containerProps = {
|
|
21450
|
+
"aria-busy": isLoading,
|
|
21451
|
+
"data-loading": isLoading
|
|
21452
|
+
};
|
|
21453
|
+
const getSkeletonCount = (contentType) => {
|
|
21454
|
+
return contentType === "vendor" ? 12 : 6;
|
|
21455
|
+
};
|
|
21456
|
+
const getMinHeight = (contentType) => {
|
|
21457
|
+
return contentType === "vendor" ? "min-h-[400px] md:min-h-[900px]" : "min-h-[300px] md:min-h-[800px]";
|
|
21458
|
+
};
|
|
21459
|
+
return {
|
|
21460
|
+
containerProps,
|
|
21461
|
+
getSkeletonCount,
|
|
21462
|
+
getMinHeight
|
|
21463
|
+
};
|
|
21464
|
+
}
|
|
21465
|
+
|
|
21466
|
+
// src/components/loading/content-skeleton.tsx
|
|
21467
|
+
|
|
21468
|
+
function ParagraphSkeleton({ className, lines = 4 }) {
|
|
21469
|
+
const lineWidths = ["w-full", "w-full", "w-5/6", "w-3/4", "w-4/5", "w-2/3"];
|
|
21470
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: lineWidths[index % lineWidths.length] }, index)) });
|
|
21471
|
+
}
|
|
21472
|
+
function ListSkeleton({
|
|
21473
|
+
className,
|
|
21474
|
+
items = 5,
|
|
21475
|
+
showIcons = false,
|
|
21476
|
+
showActions = false
|
|
21477
|
+
}) {
|
|
21478
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-3", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
|
|
21479
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
21480
|
+
showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }),
|
|
21481
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-32 md:w-48" })
|
|
21482
|
+
] }),
|
|
21483
|
+
showActions && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
21484
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-8" }),
|
|
21485
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "default", className: "h-4 w-4" })
|
|
21486
|
+
] })
|
|
21487
|
+
] }, index)) });
|
|
21488
|
+
}
|
|
21489
|
+
function TableSkeleton({
|
|
21490
|
+
className,
|
|
21491
|
+
rows = 5,
|
|
21492
|
+
columns = 4
|
|
21493
|
+
}) {
|
|
21494
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-4", className), children: [
|
|
21495
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
|
|
21496
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21497
|
+
"div",
|
|
21498
|
+
{
|
|
21499
|
+
className: "grid gap-4 border-b border-ods-divider py-2",
|
|
21500
|
+
style: { gridTemplateColumns: `repeat(${columns}, 1fr)` },
|
|
21501
|
+
children: Array.from({ length: columns }).map((_cell, colIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" }, colIndex))
|
|
21502
|
+
},
|
|
21503
|
+
rowIndex
|
|
21504
|
+
)) })
|
|
21505
|
+
] });
|
|
21506
|
+
}
|
|
21507
|
+
function FormSkeleton({ className, fields = 4 }) {
|
|
21508
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: [
|
|
21509
|
+
Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21510
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-24" }),
|
|
21511
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Input, {}),
|
|
21512
|
+
index % 3 === 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-48" })
|
|
21513
|
+
] }, index)),
|
|
21514
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-4 pt-4", children: [
|
|
21515
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, {}),
|
|
21516
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "bg-ods-border" })
|
|
21517
|
+
] })
|
|
21518
|
+
] });
|
|
21519
|
+
}
|
|
21520
|
+
function NavigationSkeleton({
|
|
21521
|
+
className,
|
|
21522
|
+
items = 6,
|
|
21523
|
+
horizontal = true
|
|
21524
|
+
}) {
|
|
21525
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21526
|
+
"nav",
|
|
21527
|
+
{
|
|
21528
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex gap-4 md:gap-6", !horizontal && "flex-col", className),
|
|
21529
|
+
role: "status",
|
|
21530
|
+
"aria-label": "Loading navigation",
|
|
21531
|
+
children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-16 md:w-20" }, index))
|
|
21532
|
+
}
|
|
21533
|
+
);
|
|
21534
|
+
}
|
|
21535
|
+
function ProfileSkeleton({
|
|
21536
|
+
className,
|
|
21537
|
+
showBio = true,
|
|
21538
|
+
showStats = true
|
|
21539
|
+
}) {
|
|
21540
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-4", className), children: [
|
|
21541
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4", children: [
|
|
21542
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "lg" }),
|
|
21543
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
21544
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
21545
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-1/3" }),
|
|
21546
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
|
|
21547
|
+
] })
|
|
21548
|
+
] }),
|
|
21549
|
+
showBio && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21550
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
21551
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-4/5" }),
|
|
21552
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
|
|
21553
|
+
] }),
|
|
21554
|
+
showStats && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-6", children: [
|
|
21555
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
|
|
21556
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "mx-auto w-8" }),
|
|
21557
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "mx-auto w-12" })
|
|
21558
|
+
] }),
|
|
21559
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
|
|
21560
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "mx-auto w-8" }),
|
|
21561
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "mx-auto w-16" })
|
|
21562
|
+
] }),
|
|
21563
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
|
|
21564
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "mx-auto w-8" }),
|
|
21565
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "mx-auto w-14" })
|
|
21566
|
+
] })
|
|
21567
|
+
] })
|
|
21568
|
+
] });
|
|
21569
|
+
}
|
|
21570
|
+
function CommentSkeleton({
|
|
21571
|
+
className,
|
|
21572
|
+
showRating = false,
|
|
21573
|
+
showReplies = false
|
|
21574
|
+
}) {
|
|
21575
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-3", className), children: [
|
|
21576
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
21577
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "sm" }),
|
|
21578
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 items-center gap-4", children: [
|
|
21579
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-24" }),
|
|
21580
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" }),
|
|
21581
|
+
showRating && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }, i)) })
|
|
21582
|
+
] })
|
|
21583
|
+
] }),
|
|
21584
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "ml-11 space-y-2", children: [
|
|
21585
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
21586
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" }),
|
|
21587
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-1/2" })
|
|
21588
|
+
] }),
|
|
21589
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "ml-11 flex gap-4", children: [
|
|
21590
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-12" }),
|
|
21591
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" }),
|
|
21592
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-8" })
|
|
21593
|
+
] }),
|
|
21594
|
+
showReplies && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "ml-11 space-y-4 border-l border-ods-divider pl-4", children: Array.from({ length: 2 }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21595
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
21596
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "sm" }),
|
|
21597
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-20" }),
|
|
21598
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-12" })
|
|
21599
|
+
] }),
|
|
21600
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "ml-11", children: [
|
|
21601
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
21602
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
|
|
21603
|
+
] })
|
|
21604
|
+
] }, index)) })
|
|
21605
|
+
] });
|
|
21606
|
+
}
|
|
21607
|
+
function FeatureListSkeleton({
|
|
21608
|
+
className,
|
|
21609
|
+
features = 6,
|
|
21610
|
+
showIcons = true,
|
|
21611
|
+
grouped = false
|
|
21612
|
+
}) {
|
|
21613
|
+
if (grouped) {
|
|
21614
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: Array.from({ length: 3 }).map((_, groupIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
|
|
21615
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
21616
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-2", children: Array.from({ length: features / 3 }).map((_feature, featureIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
21617
|
+
showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }),
|
|
21618
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
|
|
21619
|
+
] }, featureIndex)) })
|
|
21620
|
+
] }, groupIndex)) });
|
|
21621
|
+
}
|
|
21622
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-3", className), children: Array.from({ length: features }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
21623
|
+
showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }),
|
|
21624
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
|
|
21625
|
+
] }, index)) });
|
|
21626
|
+
}
|
|
21627
|
+
function TimelineSkeleton({ className, items = 5 }) {
|
|
21628
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-4", children: [
|
|
21629
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center", children: [
|
|
21630
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }),
|
|
21631
|
+
index < items - 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2 h-12 w-px bg-ods-border" })
|
|
21632
|
+
] }),
|
|
21633
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
21634
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
21635
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-1/3" }),
|
|
21636
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
|
|
21637
|
+
] }),
|
|
21638
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
21639
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
|
|
21640
|
+
] })
|
|
21641
|
+
] }, index)) });
|
|
21642
|
+
}
|
|
21643
|
+
function PricingSkeleton({ className, plans = 3 }) {
|
|
21644
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21645
|
+
"div",
|
|
21646
|
+
{
|
|
21647
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
21648
|
+
"grid gap-6",
|
|
21649
|
+
plans === 2 && "grid-cols-1 md:grid-cols-2",
|
|
21650
|
+
plans === 3 && "grid-cols-1 md:grid-cols-3",
|
|
21651
|
+
plans === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
|
|
21652
|
+
className
|
|
21653
|
+
),
|
|
21654
|
+
children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-card p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
21655
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-1/2" }),
|
|
21656
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
|
|
21657
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-1/3" }),
|
|
21658
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-1/4" })
|
|
21659
|
+
] }),
|
|
21660
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3 py-4", children: Array.from({ length: 5 }).map((_feature, featureIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
21661
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }),
|
|
21662
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
|
|
21663
|
+
] }, featureIndex)) }),
|
|
21664
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "w-full" })
|
|
21665
|
+
] }) }, index))
|
|
21666
|
+
}
|
|
21667
|
+
);
|
|
21668
|
+
}
|
|
21669
|
+
|
|
21670
|
+
// src/components/profile/ProfileLoadingSkeleton.tsx
|
|
21671
|
+
|
|
21672
|
+
function ProfileLoadingSkeleton({ className }) {
|
|
21673
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: [
|
|
21674
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center space-x-4", children: [
|
|
21675
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-16 w-16 animate-pulse rounded-full bg-ods-skeleton" }),
|
|
21676
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21677
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-32 animate-pulse rounded bg-ods-skeleton" }),
|
|
21678
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-24 animate-pulse rounded bg-ods-skeleton" })
|
|
21679
|
+
] })
|
|
21680
|
+
] }),
|
|
21681
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
21682
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-full animate-pulse rounded bg-ods-skeleton" }),
|
|
21683
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 animate-pulse rounded bg-ods-skeleton" }),
|
|
21684
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-1/2 animate-pulse rounded bg-ods-skeleton" })
|
|
21685
|
+
] })
|
|
21686
|
+
] });
|
|
21687
|
+
}
|
|
21688
|
+
|
|
21689
|
+
// src/components/loading/msp-profile-form-skeleton.tsx
|
|
21690
|
+
|
|
21691
|
+
function MspProfileFormSkeleton({ className, fields = 4 }) {
|
|
21692
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
21693
|
+
"div",
|
|
21694
|
+
{
|
|
21695
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "grid grid-cols-1 items-stretch gap-6 md:grid-cols-2", className),
|
|
21696
|
+
role: "status",
|
|
21697
|
+
"aria-label": "Loading MSP profile form",
|
|
21698
|
+
children: [
|
|
21699
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col space-y-2", children: [
|
|
21700
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-28" }),
|
|
21701
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[180px] flex-1 md:min-h-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-full w-full rounded-lg", "aria-label": "Loading company logo" }) })
|
|
21702
|
+
] }),
|
|
21703
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: Array.from({ length: fields }).map((_, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col space-y-2", children: [
|
|
21704
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-40" }),
|
|
21705
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Input, {})
|
|
21706
|
+
] }, idx)) })
|
|
21707
|
+
]
|
|
21708
|
+
}
|
|
21709
|
+
);
|
|
21710
|
+
}
|
|
21711
|
+
|
|
21712
|
+
// src/components/loading/category-card-skeleton.tsx
|
|
21713
|
+
|
|
21714
|
+
function CategoryCardSkeleton({ className }) {
|
|
21715
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
21716
|
+
"article",
|
|
21717
|
+
{
|
|
21718
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
21719
|
+
"box-border flex min-w-0 flex-col rounded-[12px] border border-ods-border bg-ods-card p-8",
|
|
21720
|
+
className
|
|
21721
|
+
),
|
|
21722
|
+
role: "status",
|
|
21723
|
+
"aria-label": "Loading category card",
|
|
21724
|
+
children: [
|
|
21725
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-8 flex items-center justify-center gap-6", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "circular", className: "h-10 w-10 flex-shrink-0", "aria-label": "Loading icon" }, i)) }),
|
|
21726
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col space-y-3", children: [
|
|
21727
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-3/4" }),
|
|
21728
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-1/2" }),
|
|
21729
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" })
|
|
21730
|
+
] }),
|
|
21731
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-12 w-12 rounded-[6px]", "aria-label": "Loading button" }) })
|
|
21732
|
+
]
|
|
21733
|
+
}
|
|
21734
|
+
);
|
|
21735
|
+
}
|
|
21736
|
+
|
|
21737
|
+
// src/components/loading/category-vendor-selector-skeleton.tsx
|
|
21738
|
+
|
|
21739
|
+
function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
|
|
21740
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
21741
|
+
"div",
|
|
21742
|
+
{
|
|
21743
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "rounded-lg border border-ods-border bg-ods-card p-6", className),
|
|
21744
|
+
role: "status",
|
|
21745
|
+
"aria-label": "Loading category section",
|
|
21746
|
+
children: [
|
|
21747
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-6 max-w-xl space-y-2", children: [
|
|
21748
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-1/2" }),
|
|
21749
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
|
|
21750
|
+
] }),
|
|
21751
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21752
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-1/3" }),
|
|
21753
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-4 md:grid-cols-3", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
|
|
21754
|
+
] }, idx)) })
|
|
21755
|
+
]
|
|
21756
|
+
}
|
|
21757
|
+
);
|
|
21758
|
+
}
|
|
21759
|
+
|
|
21760
|
+
// src/components/loading/wizard-layout-skeleton.tsx
|
|
21761
|
+
|
|
21762
|
+
function WizardLayoutSkeleton({ steps = 6, className }) {
|
|
21763
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
|
|
21764
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
|
|
21765
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "max-w-2xl space-y-2", children: [
|
|
21766
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-2/3" }),
|
|
21767
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-1/2" })
|
|
21768
|
+
] }),
|
|
21769
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mt-10 flex justify-between", children: [
|
|
21770
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
|
|
21771
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-10 w-32 rounded" })
|
|
21772
|
+
] })
|
|
21773
|
+
] });
|
|
21774
|
+
}
|
|
21775
|
+
|
|
21776
|
+
// src/components/loading/margin-report-skeleton.tsx
|
|
21777
|
+
|
|
21778
|
+
function MarginReportSkeleton({ animate = true, description, overlayContent }) {
|
|
21779
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "main", { className: `bg-ods-bg ${animate ? "animate-pulse" : ""} relative min-h-screen`, children: [
|
|
21780
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mx-auto max-w-[1920px] space-y-10 px-6 py-6 md:px-20 md:py-10", children: [
|
|
21781
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
|
|
21782
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-72 rounded bg-ods-skeleton" }),
|
|
21783
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-80 rounded bg-ods-skeleton" })
|
|
21784
|
+
] }),
|
|
21785
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-32 rounded border border-ods-border bg-ods-card" }, i)) }),
|
|
21786
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [
|
|
21787
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex animate-pulse items-center gap-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
|
|
21788
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-14 w-14 rounded-lg bg-ods-skeleton" }),
|
|
21789
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
21790
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 rounded bg-ods-skeleton" }),
|
|
21791
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-1/2 rounded bg-ods-skeleton" })
|
|
21792
|
+
] })
|
|
21793
|
+
] }),
|
|
21794
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex animate-pulse flex-col gap-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
|
|
21795
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4", children: [
|
|
21796
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
21797
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 rounded-lg bg-ods-skeleton" }),
|
|
21798
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
|
|
21799
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-32 rounded bg-ods-skeleton" }),
|
|
21800
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-20 rounded bg-ods-skeleton" })
|
|
21801
|
+
] })
|
|
21802
|
+
] }),
|
|
21803
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-36 rounded bg-ods-skeleton" })
|
|
21804
|
+
] }),
|
|
21805
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-4 h-4 w-40 rounded bg-ods-skeleton" })
|
|
21806
|
+
] })
|
|
21807
|
+
] }),
|
|
21808
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: ["Commercial Stack", "Open-Source Stack"].map((label, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
21809
|
+
"div",
|
|
21810
|
+
{
|
|
21811
|
+
className: "flex animate-pulse flex-col overflow-hidden rounded-lg border border-ods-border bg-ods-card",
|
|
21812
|
+
children: [
|
|
21813
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between px-6 py-4", children: [
|
|
21814
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-40 rounded bg-ods-skeleton" }),
|
|
21815
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
21816
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-20 rounded bg-ods-skeleton" }),
|
|
21817
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-10 rounded bg-ods-skeleton" })
|
|
21818
|
+
] })
|
|
21819
|
+
] }),
|
|
21820
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-1 flex-col gap-3 p-3", children: Array.from({ length: 5 }).map((_, j) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
21821
|
+
"div",
|
|
21822
|
+
{
|
|
21823
|
+
className: "flex items-center justify-between rounded-lg border border-ods-border bg-ods-bg px-4 py-3",
|
|
21824
|
+
children: [
|
|
21825
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-3", children: [
|
|
21826
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 flex-shrink-0 rounded-lg bg-ods-skeleton" }),
|
|
21827
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col", children: [
|
|
21828
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-32 rounded bg-ods-skeleton" }),
|
|
21829
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-1 hidden h-3 w-24 rounded bg-ods-skeleton md:block" })
|
|
21830
|
+
] })
|
|
21831
|
+
] }),
|
|
21832
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
21833
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-16 rounded bg-ods-skeleton" }),
|
|
21834
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-8 rounded bg-ods-skeleton" })
|
|
21835
|
+
] })
|
|
21836
|
+
]
|
|
21837
|
+
},
|
|
21838
|
+
j
|
|
21839
|
+
)) })
|
|
21840
|
+
]
|
|
21841
|
+
},
|
|
21842
|
+
idx
|
|
21843
|
+
)) }),
|
|
21844
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-60 rounded bg-ods-skeleton" }),
|
|
21845
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-48 rounded border border-ods-border bg-ods-card" }, i)) }),
|
|
21846
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6 rounded-3xl border border-ods-border p-8", children: [
|
|
21847
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-6", children: [
|
|
21848
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1 space-y-2", children: [
|
|
21849
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-72 rounded bg-ods-skeleton" }),
|
|
21850
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 rounded bg-ods-skeleton" })
|
|
21851
|
+
] }),
|
|
21852
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 shrink-0 rounded-md bg-ods-skeleton" })
|
|
21853
|
+
] }),
|
|
21854
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-32 rounded border border-ods-border bg-ods-card" }, i)) })
|
|
21855
|
+
] })
|
|
21856
|
+
] }),
|
|
21857
|
+
overlayContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0 z-10 rounded-lg bg-ods-card/80", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto fixed left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 flex-col items-center gap-4 px-4 text-center", children: [
|
|
21858
|
+
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { children: description }),
|
|
21859
|
+
overlayContent
|
|
21860
|
+
] }) })
|
|
21861
|
+
] });
|
|
21862
|
+
}
|
|
21863
|
+
|
|
21864
|
+
// src/components/loading/users-grid-skeleton.tsx
|
|
21865
|
+
|
|
21866
|
+
function UsersGridSkeleton({ rows = 10, className }) {
|
|
21867
|
+
const skeletonRows = Array.from({ length: rows });
|
|
21868
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "animate-pulse overflow-x-auto rounded-lg border border-ods-border bg-ods-card", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "table", { className: "min-w-full divide-y divide-ods-border", children: [
|
|
21869
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "thead", { className: "bg-ods-skeleton", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tr", { children: ["Name", "Email", "Role", "Created", "Last Sign-In"].map((h) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "th", { className: "px-4 py-3 text-left text-ods-text-primary text-h6", children: h }, h)) }) }),
|
|
21870
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tbody", { className: "divide-y divide-ods-border", children: skeletonRows.map((_, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tr", { children: Array.from({ length: 5 }).map((__, cell) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "td", { className: "whitespace-nowrap px-4 py-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-full rounded bg-ods-border" }) }, cell)) }, idx)) })
|
|
21871
|
+
] }) });
|
|
21872
|
+
}
|
|
21873
|
+
|
|
21874
|
+
// src/components/dynamic-skeleton.tsx
|
|
21875
|
+
|
|
21876
|
+
|
|
21877
|
+
// src/hooks/use-theme-aware.ts
|
|
21878
|
+
function useThemeAware() {
|
|
21879
|
+
return {
|
|
21880
|
+
themeColors: {},
|
|
21881
|
+
platformContext: "default",
|
|
21882
|
+
isDarkMode: false,
|
|
21883
|
+
platform: "default",
|
|
21884
|
+
isDark: false,
|
|
21885
|
+
accentColor: "#FFC008"
|
|
21886
|
+
};
|
|
21887
|
+
}
|
|
21888
|
+
|
|
21889
|
+
// src/components/dynamic-skeleton.tsx
|
|
21890
|
+
|
|
21891
|
+
var sizePresets = {
|
|
21892
|
+
sm: { width: "4rem", height: "1rem" },
|
|
21893
|
+
md: { width: "8rem", height: "1.5rem" },
|
|
21894
|
+
lg: { width: "12rem", height: "2rem" },
|
|
21895
|
+
xl: { width: "16rem", height: "2.5rem" }
|
|
21896
|
+
};
|
|
21897
|
+
var variantStyles = {
|
|
21898
|
+
text: "rounded",
|
|
21899
|
+
avatar: "rounded-full aspect-square",
|
|
21900
|
+
card: "rounded-lg",
|
|
21901
|
+
button: "rounded-md",
|
|
21902
|
+
image: "rounded-lg aspect-video",
|
|
21903
|
+
custom: ""
|
|
21904
|
+
};
|
|
21905
|
+
function DynamicSkeleton({
|
|
21906
|
+
animation = "shimmer",
|
|
21907
|
+
variant = "text",
|
|
21908
|
+
size = "md",
|
|
21909
|
+
width,
|
|
21910
|
+
height,
|
|
21911
|
+
lines = 1,
|
|
21912
|
+
platformAware = true,
|
|
21913
|
+
includeAriaLabel = true,
|
|
21914
|
+
className,
|
|
21915
|
+
children
|
|
21916
|
+
}) {
|
|
21917
|
+
const { platform, isDark, accentColor } = useThemeAware();
|
|
21918
|
+
const dimensions = _react2.default.useMemo(() => {
|
|
21919
|
+
if (width || height) {
|
|
21920
|
+
return {
|
|
21921
|
+
width: typeof width === "number" ? `${width}px` : width,
|
|
21922
|
+
height: typeof height === "number" ? `${height}px` : height
|
|
21923
|
+
};
|
|
21924
|
+
}
|
|
21925
|
+
if (variant === "avatar") {
|
|
21926
|
+
const avatarSize = sizePresets[size].height;
|
|
21927
|
+
return { width: avatarSize, height: avatarSize };
|
|
21928
|
+
}
|
|
21929
|
+
return sizePresets[size];
|
|
21930
|
+
}, [width, height, size, variant]);
|
|
21931
|
+
const platformStyles = _react2.default.useMemo(() => {
|
|
21932
|
+
if (!platformAware) return {};
|
|
21933
|
+
const baseOpacity = isDark ? 0.1 : 0.15;
|
|
21934
|
+
const accentOpacity = isDark ? 0.05 : 0.08;
|
|
21935
|
+
return {
|
|
21936
|
+
"--skeleton-base": `color-mix(in srgb, var(--color-bg-skeleton) ${baseOpacity * 100}%, transparent)`,
|
|
21937
|
+
"--skeleton-highlight": `color-mix(in srgb, ${accentColor} ${accentOpacity * 100}%, var(--color-bg-skeleton))`,
|
|
21938
|
+
"--skeleton-accent": `color-mix(in srgb, ${accentColor} 10%, transparent)`
|
|
21939
|
+
};
|
|
21940
|
+
}, [platformAware, isDark, accentColor]);
|
|
21941
|
+
const animationClasses = {
|
|
21942
|
+
pulse: "animate-pulse",
|
|
21943
|
+
shimmer: "ods-loading-dynamic",
|
|
21944
|
+
wave: "skeleton-wave",
|
|
21945
|
+
static: ""
|
|
21946
|
+
};
|
|
21947
|
+
const baseClasses = _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
21948
|
+
"bg-ods-skeleton",
|
|
21949
|
+
variantStyles[variant],
|
|
21950
|
+
animationClasses[animation],
|
|
21951
|
+
platformAware && `skeleton-platform-${platform}`,
|
|
21952
|
+
className
|
|
21953
|
+
);
|
|
21954
|
+
if (variant === "text" && lines > 1) {
|
|
21955
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21956
|
+
"div",
|
|
21957
|
+
{
|
|
21958
|
+
className: "space-y-2",
|
|
21959
|
+
style: platformStyles,
|
|
21960
|
+
role: "status",
|
|
21961
|
+
"aria-label": includeAriaLabel ? "Loading content..." : void 0,
|
|
21962
|
+
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21963
|
+
"div",
|
|
21964
|
+
{
|
|
21965
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
21966
|
+
baseClasses,
|
|
21967
|
+
index === lines - 1 && "w-3/4"
|
|
21968
|
+
// Last line shorter
|
|
21969
|
+
),
|
|
21970
|
+
style: {
|
|
21971
|
+
...dimensions,
|
|
21972
|
+
width: index === lines - 1 ? "75%" : dimensions.width
|
|
21973
|
+
}
|
|
21974
|
+
},
|
|
21975
|
+
index
|
|
21976
|
+
))
|
|
21977
|
+
}
|
|
21978
|
+
);
|
|
21979
|
+
}
|
|
21980
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21981
|
+
"div",
|
|
21982
|
+
{
|
|
21983
|
+
className: baseClasses,
|
|
21984
|
+
style: { ...dimensions, ...platformStyles },
|
|
21985
|
+
role: "status",
|
|
21986
|
+
"aria-label": includeAriaLabel ? "Loading content..." : void 0,
|
|
21987
|
+
children
|
|
21988
|
+
}
|
|
21989
|
+
);
|
|
21990
|
+
}
|
|
21991
|
+
var SkeletonPresets = {
|
|
21992
|
+
/**
|
|
21993
|
+
* Card skeleton with header, content, and actions
|
|
21994
|
+
*/
|
|
21995
|
+
Card: ({ showActions = true, showImage = false }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
|
|
21996
|
+
showImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "image", className: "h-40 w-full" }),
|
|
21997
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
21998
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "lg" }),
|
|
21999
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
|
|
22000
|
+
] }),
|
|
22001
|
+
showActions && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 pt-2", children: [
|
|
22002
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "button", width: "6rem", height: "2.5rem" }),
|
|
22003
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "button", width: "4rem", height: "2.5rem" })
|
|
22004
|
+
] })
|
|
22005
|
+
] }),
|
|
22006
|
+
/**
|
|
22007
|
+
* User profile skeleton
|
|
22008
|
+
*/
|
|
22009
|
+
Profile: () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4 p-4", children: [
|
|
22010
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "avatar", size: "lg" }),
|
|
22011
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
|
|
22012
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "lg", width: "8rem" }),
|
|
22013
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "sm", width: "12rem" }),
|
|
22014
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
|
|
22015
|
+
] })
|
|
22016
|
+
] }),
|
|
22017
|
+
/**
|
|
22018
|
+
* Navigation skeleton
|
|
22019
|
+
*/
|
|
22020
|
+
Navigation: ({ items = 5 }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { className: "space-y-2 p-4", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
22021
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "avatar", size: "sm" }),
|
|
22022
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "md" })
|
|
22023
|
+
] }, index)) }),
|
|
22024
|
+
/**
|
|
22025
|
+
* Table skeleton
|
|
22026
|
+
*/
|
|
22027
|
+
Table: ({ rows = 5, columns = 4 }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
|
|
22028
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "md" }, `header-${index}`)) }),
|
|
22029
|
+
Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_cell, colIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "sm" }, `cell-${rowIndex}-${colIndex}`)) }, `row-${rowIndex}`))
|
|
22030
|
+
] }),
|
|
22031
|
+
/**
|
|
22032
|
+
* Vendor grid skeleton (specific to the app)
|
|
22033
|
+
*/
|
|
22034
|
+
VendorGrid: ({ items = 6 }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3 rounded-lg border border-ods-border bg-ods-card p-4", children: [
|
|
22035
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
22036
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "avatar", size: "md" }),
|
|
22037
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
|
|
22038
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "md", width: "6rem" }),
|
|
22039
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "sm", width: "4rem", className: "mt-1" })
|
|
22040
|
+
] })
|
|
22041
|
+
] }),
|
|
22042
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", lines: 2, size: "sm" }),
|
|
22043
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2", children: [
|
|
22044
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "custom", width: "3rem", height: "1.25rem", className: "rounded-full" }),
|
|
22045
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "custom", width: "4rem", height: "1.25rem", className: "rounded-full" })
|
|
22046
|
+
] })
|
|
22047
|
+
] }, index)) }),
|
|
22048
|
+
/**
|
|
22049
|
+
* Blog post skeleton
|
|
22050
|
+
*/
|
|
22051
|
+
BlogPost: () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: "space-y-6", children: [
|
|
22052
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
22053
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "xl", width: "75%" }),
|
|
22054
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-4 text-sm", children: [
|
|
22055
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "sm", width: "4rem" }),
|
|
22056
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "sm", width: "6rem" })
|
|
22057
|
+
] })
|
|
22058
|
+
] }),
|
|
22059
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "image", className: "h-64 w-full" }),
|
|
22060
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", lines: 3, size: "md" }, index)) })
|
|
22061
|
+
] })
|
|
22062
|
+
};
|
|
22063
|
+
function PlatformSkeletonContainer({
|
|
22064
|
+
children,
|
|
22065
|
+
isLoading,
|
|
22066
|
+
skeletonType = "Card",
|
|
22067
|
+
skeletonProps = {}
|
|
22068
|
+
}) {
|
|
22069
|
+
const { platform } = useThemeAware();
|
|
22070
|
+
if (!isLoading) {
|
|
22071
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children });
|
|
22072
|
+
}
|
|
22073
|
+
const SkeletonComponent = SkeletonPresets[skeletonType];
|
|
22074
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `platform-skeleton skeleton-${platform}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonComponent, { ...skeletonProps }) });
|
|
22075
|
+
}
|
|
22076
|
+
function ProgressiveSkeleton({
|
|
22077
|
+
// Named only to keep it out of the `...props` spread: the stage NAMES are
|
|
22078
|
+
// unused, `currentStage` alone selects the skeleton shape below.
|
|
22079
|
+
stages: _stages = ["basic", "detailed", "interactive"],
|
|
22080
|
+
currentStage = 0,
|
|
22081
|
+
children,
|
|
22082
|
+
...props
|
|
22083
|
+
}) {
|
|
22084
|
+
const { platform } = useThemeAware();
|
|
22085
|
+
const stageConfig = {
|
|
22086
|
+
0: { animation: "pulse", variant: "text" },
|
|
22087
|
+
1: { animation: "shimmer", variant: "card" },
|
|
22088
|
+
2: { animation: "wave", variant: "custom" }
|
|
22089
|
+
};
|
|
22090
|
+
const config = stageConfig[currentStage] || stageConfig[0];
|
|
22091
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22092
|
+
DynamicSkeleton,
|
|
22093
|
+
{
|
|
22094
|
+
...props,
|
|
22095
|
+
...config,
|
|
22096
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, props.className, `skeleton-stage-${currentStage}`, `skeleton-platform-${platform}`),
|
|
22097
|
+
children
|
|
22098
|
+
}
|
|
22099
|
+
);
|
|
22100
|
+
}
|
|
22101
|
+
|
|
22102
|
+
// src/components/loading/organization-icon-skeleton.tsx
|
|
22103
|
+
|
|
22104
|
+
var sizeClasses = {
|
|
22105
|
+
xs: "w-6 h-6",
|
|
22106
|
+
sm: "w-8 h-8",
|
|
22107
|
+
md: "w-10 h-10",
|
|
22108
|
+
lg: "w-12 h-12",
|
|
22109
|
+
l: "w-14 h-14",
|
|
22110
|
+
xl: "w-16 h-16"
|
|
22111
|
+
};
|
|
22112
|
+
var backgroundClasses = {
|
|
22113
|
+
dark: "bg-ods-bg border border-ods-border",
|
|
22114
|
+
light: "bg-ods-card border border-ods-border",
|
|
22115
|
+
white: "bg-white border border-[#E5E5E5]"
|
|
22116
|
+
};
|
|
22117
|
+
function OrganizationIconSkeleton({
|
|
22118
|
+
size = "md",
|
|
22119
|
+
className = "",
|
|
22120
|
+
showBackground = true,
|
|
22121
|
+
backgroundStyle = "dark"
|
|
22122
|
+
}) {
|
|
22123
|
+
const containerClasses = _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
22124
|
+
sizeClasses[size],
|
|
22125
|
+
"flex flex-shrink-0 items-center justify-center rounded-lg",
|
|
22126
|
+
showBackground && backgroundClasses[backgroundStyle],
|
|
22127
|
+
!showBackground && "overflow-hidden",
|
|
22128
|
+
className
|
|
22129
|
+
);
|
|
22130
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: containerClasses, role: "status", "aria-label": "Loading organization icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-1/2 w-1/2 animate-pulse rounded-sm bg-ods-border" }) });
|
|
22131
|
+
}
|
|
22132
|
+
|
|
22133
|
+
// src/components/loading/organization-card-skeleton.tsx
|
|
22134
|
+
|
|
22135
|
+
function OrganizationCardSkeleton({
|
|
22136
|
+
className,
|
|
22137
|
+
containerClassName,
|
|
22138
|
+
showFooter = true,
|
|
22139
|
+
showDescription = true
|
|
22140
|
+
}) {
|
|
22141
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22142
|
+
"div",
|
|
22143
|
+
{
|
|
22144
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
22145
|
+
containerClassName || "border border-ods-border bg-ods-card",
|
|
22146
|
+
"flex h-full flex-col overflow-hidden rounded-lg",
|
|
22147
|
+
className
|
|
22148
|
+
),
|
|
22149
|
+
role: "status",
|
|
22150
|
+
"aria-label": "Loading organization card",
|
|
22151
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3 p-4", children: [
|
|
22152
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-start gap-3", children: [
|
|
22153
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22154
|
+
OrganizationIconSkeleton,
|
|
22155
|
+
{
|
|
22156
|
+
size: "xl",
|
|
22157
|
+
backgroundStyle: "dark",
|
|
22158
|
+
showBackground: true,
|
|
22159
|
+
className: "h-[60px] w-[60px]"
|
|
22160
|
+
}
|
|
22161
|
+
),
|
|
22162
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center space-y-1 py-2", children: [
|
|
22163
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" }),
|
|
22164
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-1/2" })
|
|
22165
|
+
] })
|
|
22166
|
+
] }),
|
|
22167
|
+
showDescription && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-full items-center overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
|
|
22168
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
|
|
22169
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
|
|
22170
|
+
] }) }),
|
|
22171
|
+
showFooter && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-2", children: [
|
|
22172
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-shrink items-center gap-3 md:gap-4", children: [
|
|
22173
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
22174
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
|
|
22175
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-8" })
|
|
22176
|
+
] }),
|
|
22177
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
|
|
22178
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
|
|
22179
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-10" })
|
|
22180
|
+
] })
|
|
22181
|
+
] }),
|
|
22182
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5 rounded border border-ods-border bg-ods-bg px-2.5 py-1.5", children: [
|
|
22183
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-2.5 w-2.5" }) }),
|
|
22184
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
|
|
22185
|
+
] }) })
|
|
22186
|
+
] })
|
|
22187
|
+
] })
|
|
22188
|
+
}
|
|
22189
|
+
);
|
|
22190
|
+
}
|
|
22191
|
+
function OrganizationCardSkeletonGrid({
|
|
22192
|
+
count = 12,
|
|
22193
|
+
className,
|
|
22194
|
+
containerClassName,
|
|
22195
|
+
showFooter = true,
|
|
22196
|
+
showDescription = true
|
|
22197
|
+
}) {
|
|
22198
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22199
|
+
"div",
|
|
22200
|
+
{
|
|
22201
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "grid grid-cols-1 gap-4 md:grid-cols-2 md:gap-6 lg:grid-cols-3", className),
|
|
22202
|
+
role: "status",
|
|
22203
|
+
"aria-label": `Loading ${count} organization cards`,
|
|
22204
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22205
|
+
OrganizationCardSkeleton,
|
|
22206
|
+
{
|
|
22207
|
+
containerClassName,
|
|
22208
|
+
showFooter,
|
|
22209
|
+
showDescription
|
|
22210
|
+
},
|
|
22211
|
+
index
|
|
22212
|
+
))
|
|
22213
|
+
}
|
|
22214
|
+
);
|
|
22215
|
+
}
|
|
22216
|
+
|
|
22217
|
+
// src/components/loading/device-card-skeleton.tsx
|
|
22218
|
+
|
|
22219
|
+
function DeviceCardSkeleton({ className }) {
|
|
22220
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
22221
|
+
"div",
|
|
22222
|
+
{
|
|
22223
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-full rounded-[6px] border border-ods-border bg-ods-card", className),
|
|
22224
|
+
role: "status",
|
|
22225
|
+
"aria-label": "Loading device card",
|
|
22226
|
+
children: [
|
|
22227
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 px-4 py-3", children: [
|
|
22228
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-[6px] border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-4 animate-pulse rounded bg-ods-border" }) }),
|
|
22229
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-3/4 animate-pulse rounded bg-ods-border" }) }),
|
|
22230
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 flex-shrink-0 animate-pulse rounded-[6px] bg-ods-border" })
|
|
22231
|
+
] }),
|
|
22232
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 px-4 py-2", children: [
|
|
22233
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 flex-shrink-0 animate-pulse rounded bg-ods-border" }),
|
|
22234
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, OrganizationIconSkeleton, { size: "sm" }),
|
|
22235
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-1/2 animate-pulse rounded bg-ods-border" }) })
|
|
22236
|
+
] }),
|
|
22237
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 px-4 py-2", children: [
|
|
22238
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-20 flex-shrink-0 animate-pulse rounded-full bg-ods-border" }),
|
|
22239
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-40 animate-pulse rounded bg-ods-border" }) })
|
|
22240
|
+
] })
|
|
22241
|
+
]
|
|
22242
|
+
}
|
|
22243
|
+
);
|
|
22244
|
+
}
|
|
22245
|
+
function DeviceCardSkeletonGrid({ count = 12, className }) {
|
|
22246
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22247
|
+
"div",
|
|
22248
|
+
{
|
|
22249
|
+
className: _chunkPRPZBXWZcjs.cn.call(void 0, "grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-4", className),
|
|
22250
|
+
role: "status",
|
|
22251
|
+
"aria-label": `Loading ${count} device cards`,
|
|
22252
|
+
children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeviceCardSkeleton, {}, index))
|
|
22253
|
+
}
|
|
22254
|
+
);
|
|
22255
|
+
}
|
|
22256
|
+
|
|
22257
|
+
// src/components/features/push-button-selector.tsx
|
|
22258
|
+
|
|
20603
22259
|
function PushButtonSelectorSkeleton({ count = 3, hasTitle }) {
|
|
20604
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
|
|
20605
|
-
hasTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20606
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "
|
|
22260
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", role: "status", "aria-label": "Loading options", children: [
|
|
22261
|
+
hasTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-5 w-20", "aria-label": "Loading title" }),
|
|
22262
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-bg p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4", children: [
|
|
20607
22263
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
20608
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22264
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-8 w-8", "aria-label": "Loading icon" }),
|
|
20609
22265
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
|
|
20610
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "
|
|
20611
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "
|
|
22266
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "text", className: "mb-2 h-4 w-24", "aria-label": "Loading name" }),
|
|
22267
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "text", className: "h-4 w-36", "aria-label": "Loading description" })
|
|
20612
22268
|
] })
|
|
20613
22269
|
] }),
|
|
20614
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22270
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-6 w-6", "aria-label": "Loading selection state" })
|
|
20615
22271
|
] }) }, i)) })
|
|
20616
22272
|
] });
|
|
20617
22273
|
}
|
|
@@ -20637,12 +22293,49 @@ function PushButtonSelector({
|
|
|
20637
22293
|
isLoading = false,
|
|
20638
22294
|
error = null,
|
|
20639
22295
|
skeletonCount = 3,
|
|
20640
|
-
sections
|
|
22296
|
+
sections,
|
|
22297
|
+
search,
|
|
22298
|
+
lazyLoad,
|
|
22299
|
+
emptyMessage,
|
|
22300
|
+
footer
|
|
20641
22301
|
}) {
|
|
20642
|
-
|
|
22302
|
+
const scrollRef = _react.useRef.call(void 0, null);
|
|
22303
|
+
const sentinelRef = _react.useRef.call(void 0, null);
|
|
22304
|
+
const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _461 => _461.hasMore]), () => ( false));
|
|
22305
|
+
const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _462 => _462.isFetchingMore]), () => ( false));
|
|
22306
|
+
const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _463 => _463.onLoadMore]);
|
|
22307
|
+
const optionCount = options.length;
|
|
22308
|
+
_react.useEffect.call(void 0, () => {
|
|
22309
|
+
const sentinel = sentinelRef.current;
|
|
22310
|
+
const root = scrollRef.current;
|
|
22311
|
+
if (!sentinel || !root || !onLoadMore || !lazyHasMore) return void 0;
|
|
22312
|
+
const observer = new IntersectionObserver(
|
|
22313
|
+
(entries) => {
|
|
22314
|
+
if (entries.some((e) => e.isIntersecting) && !lazyFetching) {
|
|
22315
|
+
onLoadMore();
|
|
22316
|
+
}
|
|
22317
|
+
},
|
|
22318
|
+
{ root, rootMargin: "80px" }
|
|
22319
|
+
);
|
|
22320
|
+
observer.observe(sentinel);
|
|
22321
|
+
return () => {
|
|
22322
|
+
observer.disconnect();
|
|
22323
|
+
};
|
|
22324
|
+
}, [lazyHasMore, lazyFetching, onLoadMore, optionCount]);
|
|
22325
|
+
const searchInput = search ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22326
|
+
_chunkIKDC3R7Vcjs.Input,
|
|
22327
|
+
{
|
|
22328
|
+
value: search.value,
|
|
22329
|
+
onChange: (e) => search.onChange(e.target.value),
|
|
22330
|
+
placeholder: search.placeholder,
|
|
22331
|
+
"aria-label": _nullishCoalesce(_nullishCoalesce(search.ariaLabel, () => ( search.placeholder)), () => ( "Search"))
|
|
22332
|
+
}
|
|
22333
|
+
) : null;
|
|
22334
|
+
const framed = !!search || !!lazyLoad;
|
|
22335
|
+
if (isLoading && !framed) {
|
|
20643
22336
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorSkeleton, { count: skeletonCount, hasTitle: !!title }) });
|
|
20644
22337
|
}
|
|
20645
|
-
if (error) {
|
|
22338
|
+
if (error && !framed) {
|
|
20646
22339
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorError, { message: error, title }) });
|
|
20647
22340
|
}
|
|
20648
22341
|
const validSelectedIds = options.length > 0 ? selectedIds.filter((id) => options.some((option) => option.id === id)) : selectedIds;
|
|
@@ -20696,9 +22389,9 @@ function PushButtonSelector({
|
|
|
20696
22389
|
option.id
|
|
20697
22390
|
);
|
|
20698
22391
|
if (option.disabled && option.disabledReason) {
|
|
20699
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
20700
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20701
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22392
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Tooltip, { children: [
|
|
22393
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipTrigger, { asChild: true, children: optionEl }),
|
|
22394
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
|
|
20702
22395
|
] }, option.id);
|
|
20703
22396
|
}
|
|
20704
22397
|
return optionEl;
|
|
@@ -20735,10 +22428,28 @@ function PushButtonSelector({
|
|
|
20735
22428
|
ungroupedOptions.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-2", children: ungroupedOptions.map(renderOption) })
|
|
20736
22429
|
] });
|
|
20737
22430
|
};
|
|
20738
|
-
|
|
22431
|
+
const framedSkeletonCount = lazyLoad ? Math.max(skeletonCount, 4) : skeletonCount;
|
|
22432
|
+
const listContent = isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorSkeleton, { count: framedSkeletonCount }) : error ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorError, { message: error }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
22433
|
+
options.length === 0 && emptyMessage !== void 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: emptyMessage }) : renderOptionsContent(),
|
|
22434
|
+
lazyLoad ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
22435
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef }),
|
|
22436
|
+
lazyLoad.isFetchingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "py-2 text-center text-ods-text-secondary text-h6", children: "Loading more\u2026" }) : null
|
|
22437
|
+
] }) : null
|
|
22438
|
+
] });
|
|
22439
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 ${className}`, children: [
|
|
20739
22440
|
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
|
|
20740
|
-
|
|
20741
|
-
|
|
22441
|
+
searchInput,
|
|
22442
|
+
lazyLoad ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22443
|
+
"div",
|
|
22444
|
+
{
|
|
22445
|
+
ref: scrollRef,
|
|
22446
|
+
className: "space-y-4 overflow-y-auto rounded-lg border border-ods-border p-2",
|
|
22447
|
+
style: { height: _nullishCoalesce(lazyLoad.maxHeight, () => ( "336px")) },
|
|
22448
|
+
children: listContent
|
|
22449
|
+
}
|
|
22450
|
+
) : listContent,
|
|
22451
|
+
footer,
|
|
22452
|
+
!isLoading && !error && selectionSummary && validSelectedIds.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rounded-lg border border-ods-success bg-ods-success-secondary p-4", children: [
|
|
20742
22453
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-2 flex items-center gap-2", children: [
|
|
20743
22454
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-2 w-2 rounded-full bg-ods-success" }),
|
|
20744
22455
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-success text-h6", children: [
|
|
@@ -20763,7 +22474,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
20763
22474
|
const fileInputRef = _react.useRef.call(void 0, null);
|
|
20764
22475
|
const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
|
|
20765
22476
|
const handleFileSelect = async (event) => {
|
|
20766
|
-
const file = _optionalChain([event, 'access',
|
|
22477
|
+
const file = _optionalChain([event, 'access', _464 => _464.target, 'access', _465 => _465.files, 'optionalAccess', _466 => _466[0]]);
|
|
20767
22478
|
if (!file) return;
|
|
20768
22479
|
let mediaType;
|
|
20769
22480
|
if (file.type.startsWith("image/")) {
|
|
@@ -20845,7 +22556,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
20845
22556
|
{
|
|
20846
22557
|
type: "button",
|
|
20847
22558
|
variant: "outline",
|
|
20848
|
-
onClick: () => _optionalChain([fileInputRef, 'access',
|
|
22559
|
+
onClick: () => _optionalChain([fileInputRef, 'access', _467 => _467.current, 'optionalAccess', _468 => _468.click, 'call', _469 => _469()]),
|
|
20849
22560
|
disabled: uploadingIndex !== null,
|
|
20850
22561
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
|
|
20851
22562
|
className: "font-bold text-h6",
|
|
@@ -20898,7 +22609,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
20898
22609
|
item.media_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video bg-ods-bg", children: item.media_type === "video" || item.media_type === "demo" ? (
|
|
20899
22610
|
// <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
|
|
20900
22611
|
// fit="cover" crops to the aspect-video cell.
|
|
20901
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22612
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
|
|
20902
22613
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20903
22614
|
_chunkWLSFBRT5cjs.next_image_default,
|
|
20904
22615
|
{
|
|
@@ -21031,7 +22742,7 @@ var SelectButton = _react2.default.forwardRef(
|
|
|
21031
22742
|
}
|
|
21032
22743
|
)
|
|
21033
22744
|
] }),
|
|
21034
|
-
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22745
|
+
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Tag, { variant: tagVariant, className: "shrink-0", label: tag }),
|
|
21035
22746
|
selected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckCircleIcon, { className: "size-4 shrink-0 text-ods-accent md:size-6" })
|
|
21036
22747
|
]
|
|
21037
22748
|
}
|
|
@@ -21126,7 +22837,7 @@ function SEOEditorPreview({
|
|
|
21126
22837
|
const displayImage = hasOgImage || hasFeaturedImage;
|
|
21127
22838
|
const handleImageUpload = async (event) => {
|
|
21128
22839
|
if (!onOgImageUpload) return;
|
|
21129
|
-
const file = _optionalChain([event, 'access',
|
|
22840
|
+
const file = _optionalChain([event, 'access', _470 => _470.target, 'access', _471 => _471.files, 'optionalAccess', _472 => _472[0]]);
|
|
21130
22841
|
if (!file) return;
|
|
21131
22842
|
setIsUploading(true);
|
|
21132
22843
|
try {
|
|
@@ -21283,7 +22994,7 @@ function SEOEditorPreview({
|
|
|
21283
22994
|
type: "button",
|
|
21284
22995
|
variant: "outline",
|
|
21285
22996
|
size: "icon",
|
|
21286
|
-
onClick: () => _optionalChain([fileInputRef, 'optionalAccess',
|
|
22997
|
+
onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _473 => _473.click, 'call', _474 => _474()]),
|
|
21287
22998
|
disabled: disabled || isUploading,
|
|
21288
22999
|
className: "rounded-full bg-white text-black opacity-0 hover:bg-gray-100 group-hover:opacity-100",
|
|
21289
23000
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
|
|
@@ -21309,7 +23020,7 @@ function SEOEditorPreview({
|
|
|
21309
23020
|
SEO_MEDIA_BOX_HEIGHT,
|
|
21310
23021
|
"flex cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-ods-border bg-ods-bg-hover transition-colors hover:border-ods-accent"
|
|
21311
23022
|
),
|
|
21312
|
-
onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess',
|
|
23023
|
+
onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _475 => _475.click, 'call', _476 => _476()]),
|
|
21313
23024
|
children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
21314
23025
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "mb-2 h-8 w-8 text-ods-text-secondary" }),
|
|
21315
23026
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
|
|
@@ -21396,7 +23107,7 @@ function SocialLinksManager({
|
|
|
21396
23107
|
className = ""
|
|
21397
23108
|
}) {
|
|
21398
23109
|
const addLink = () => {
|
|
21399
|
-
const firstPlatform = _optionalChain([platforms, 'access',
|
|
23110
|
+
const firstPlatform = _optionalChain([platforms, 'access', _477 => _477[0], 'optionalAccess', _478 => _478.name]) || "website";
|
|
21400
23111
|
onChange([...links, { platform: firstPlatform, url: "" }]);
|
|
21401
23112
|
};
|
|
21402
23113
|
const removeLink = (index) => {
|
|
@@ -21408,7 +23119,7 @@ function SocialLinksManager({
|
|
|
21408
23119
|
onChange(updated);
|
|
21409
23120
|
};
|
|
21410
23121
|
const getIcon = (link, platform) => {
|
|
21411
|
-
const iconKey = _optionalChain([platform, 'optionalAccess',
|
|
23122
|
+
const iconKey = _optionalChain([platform, 'optionalAccess', _479 => _479.icon_name]) || link.platform;
|
|
21412
23123
|
const IconComponent = iconMap[iconKey];
|
|
21413
23124
|
return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
|
|
21414
23125
|
};
|
|
@@ -21430,7 +23141,7 @@ function SocialLinksManager({
|
|
|
21430
23141
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21431
23142
|
_chunkIKDC3R7Vcjs.Input,
|
|
21432
23143
|
{
|
|
21433
|
-
placeholder: _optionalChain([platform, 'optionalAccess',
|
|
23144
|
+
placeholder: _optionalChain([platform, 'optionalAccess', _480 => _480.placeholder]) || "Profile URL",
|
|
21434
23145
|
value: link.url,
|
|
21435
23146
|
onChange: (e) => updateLink(index, "url", e.target.value),
|
|
21436
23147
|
onKeyDown: (e) => {
|
|
@@ -21817,7 +23528,7 @@ function VideoBitesDisplay({
|
|
|
21817
23528
|
filterPublished = true,
|
|
21818
23529
|
showTitle = true
|
|
21819
23530
|
}) {
|
|
21820
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23531
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
|
|
21821
23532
|
}
|
|
21822
23533
|
|
|
21823
23534
|
// src/components/features/walkthrough-video.tsx
|
|
@@ -21826,8 +23537,8 @@ function VideoBitesDisplay({
|
|
|
21826
23537
|
|
|
21827
23538
|
var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
|
|
21828
23539
|
function theaterSeedFromLive(live, fallbackTime, fallbackMuted) {
|
|
21829
|
-
const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess',
|
|
21830
|
-
const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess',
|
|
23540
|
+
const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _481 => _481.getCurrentTime, 'call', _482 => _482()]), () => ( 0));
|
|
23541
|
+
const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _483 => _483.getDuration, 'call', _484 => _484()]), () => ( 0)), time);
|
|
21831
23542
|
return {
|
|
21832
23543
|
// At end -> start over, never rewind to an unrelated older anchor.
|
|
21833
23544
|
time: atEnd ? 0 : time > 0.5 ? time : fallbackTime,
|
|
@@ -21859,11 +23570,11 @@ function WalkthroughVideo({
|
|
|
21859
23570
|
const inline = placement === "inline";
|
|
21860
23571
|
const dismissEnabled = dismissal !== false;
|
|
21861
23572
|
const storageKey = dismissEnabled && dismissal.storageKey || WALKTHROUGH_VIDEO_DISMISS_KEY;
|
|
21862
|
-
const dismissalId = _optionalChain([video, 'optionalAccess',
|
|
23573
|
+
const dismissalId = _optionalChain([video, 'optionalAccess', _485 => _485.id]) != null ? String(video.id) : "dismissed";
|
|
21863
23574
|
const [mounted, setMounted] = _react.useState.call(void 0, false);
|
|
21864
23575
|
const [dismissed, setDismissed] = _react.useState.call(void 0, false);
|
|
21865
23576
|
const hasVideo = video != null;
|
|
21866
|
-
const videoId = _optionalChain([video, 'optionalAccess',
|
|
23577
|
+
const videoId = _optionalChain([video, 'optionalAccess', _486 => _486.id]);
|
|
21867
23578
|
_react.useEffect.call(void 0, () => {
|
|
21868
23579
|
let idleHandle = null;
|
|
21869
23580
|
if (!hasVideo) return void 0;
|
|
@@ -21886,13 +23597,13 @@ function WalkthroughVideo({
|
|
|
21886
23597
|
if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
|
|
21887
23598
|
};
|
|
21888
23599
|
}, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId]);
|
|
21889
|
-
const hydrated =
|
|
23600
|
+
const hydrated = _chunkLOJ5KQ6Bcjs.useIsHydrated.call(void 0, );
|
|
21890
23601
|
const previewSuppressed = _react.useMemo.call(void 0, () => {
|
|
21891
23602
|
if (!hydrated) return false;
|
|
21892
23603
|
try {
|
|
21893
|
-
const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access',
|
|
23604
|
+
const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _487 => _487.matchMedia, 'optionalCall', _488 => _488("(prefers-reduced-motion: reduce)"), 'access', _489 => _489.matches]), () => ( false));
|
|
21894
23605
|
const conn = navigator.connection;
|
|
21895
|
-
const saveData = _optionalChain([conn, 'optionalAccess',
|
|
23606
|
+
const saveData = _optionalChain([conn, 'optionalAccess', _490 => _490.saveData]) === true || _optionalChain([conn, 'optionalAccess', _491 => _491.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _492 => _492.effectiveType]) === "slow-2g";
|
|
21896
23607
|
return Boolean(reducedMotion || saveData);
|
|
21897
23608
|
} catch (e27) {
|
|
21898
23609
|
return false;
|
|
@@ -21925,18 +23636,18 @@ function WalkthroughVideo({
|
|
|
21925
23636
|
const [cardMuted, setCardMuted] = _react.useState.call(void 0, false);
|
|
21926
23637
|
const [cardPaused, setCardPaused] = _react.useState.call(void 0, false);
|
|
21927
23638
|
const [userMuted, setUserMuted] = _react.useState.call(void 0, false);
|
|
21928
|
-
const isYouTube = Boolean(_optionalChain([video, 'optionalAccess',
|
|
23639
|
+
const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _493 => _493.youtubeUrl]));
|
|
21929
23640
|
const resumeMode = !open && handoff !== null && !isYouTube;
|
|
21930
23641
|
const previewAllowed = !previewSuppressed && !isYouTube;
|
|
21931
23642
|
const footerFadeKey = `${mounted ? 1 : 0}|${inline ? 1 : 0}|${hideNearSelector}|${pathname}`;
|
|
21932
|
-
const footerHidden = _optionalChain([footerObservation, 'optionalAccess',
|
|
23643
|
+
const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _494 => _494.key]) === footerFadeKey && footerObservation.hidden;
|
|
21933
23644
|
_react.useEffect.call(void 0, () => {
|
|
21934
23645
|
if (!mounted) return void 0;
|
|
21935
23646
|
if (inline) return void 0;
|
|
21936
23647
|
const el = typeof document !== "undefined" ? document.querySelector(hideNearSelector) : null;
|
|
21937
23648
|
if (!el || typeof IntersectionObserver === "undefined") return void 0;
|
|
21938
23649
|
const io = new IntersectionObserver(
|
|
21939
|
-
(entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access',
|
|
23650
|
+
(entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _495 => _495[0], 'optionalAccess', _496 => _496.isIntersecting]), () => ( false)) }),
|
|
21940
23651
|
{ rootMargin: "0px 0px -40px 0px" }
|
|
21941
23652
|
);
|
|
21942
23653
|
io.observe(el);
|
|
@@ -21962,7 +23673,7 @@ function WalkthroughVideo({
|
|
|
21962
23673
|
if (!footerHidden) return;
|
|
21963
23674
|
const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
21964
23675
|
try {
|
|
21965
|
-
_optionalChain([h, 'optionalAccess',
|
|
23676
|
+
_optionalChain([h, 'optionalAccess', _497 => _497.pause, 'call', _498 => _498()]);
|
|
21966
23677
|
} catch (e29) {
|
|
21967
23678
|
}
|
|
21968
23679
|
}, [footerHidden, resumeMode, hovered]);
|
|
@@ -21981,30 +23692,30 @@ function WalkthroughVideo({
|
|
|
21981
23692
|
}, 400);
|
|
21982
23693
|
}
|
|
21983
23694
|
if (openProp === void 0) setOpenState(next);
|
|
21984
|
-
_optionalChain([onOpenChange, 'optionalCall',
|
|
23695
|
+
_optionalChain([onOpenChange, 'optionalCall', _499 => _499(next)]);
|
|
21985
23696
|
},
|
|
21986
23697
|
[openProp, onOpenChange]
|
|
21987
23698
|
);
|
|
21988
23699
|
const pausePreviewNow = _react.useCallback.call(void 0, () => {
|
|
21989
23700
|
const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
21990
23701
|
try {
|
|
21991
|
-
_optionalChain([h, 'optionalAccess',
|
|
23702
|
+
_optionalChain([h, 'optionalAccess', _500 => _500.pause, 'call', _501 => _501()]);
|
|
21992
23703
|
} catch (e30) {
|
|
21993
23704
|
}
|
|
21994
23705
|
setCardPaused(true);
|
|
21995
23706
|
}, [setCardPaused]);
|
|
21996
23707
|
const openTheater = _react.useCallback.call(void 0, () => {
|
|
21997
23708
|
const handleBeforePause = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
21998
|
-
const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess',
|
|
23709
|
+
const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _502 => _502.getPaused, 'call', _503 => _503()]) === false;
|
|
21999
23710
|
pausePreviewNow();
|
|
22000
23711
|
const liveHandle = _nullishCoalesce(resumeHandleRef.current, () => ( (cardModeRef.current === "preview" ? previewHandleRef.current : null)));
|
|
22001
|
-
const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess',
|
|
22002
|
-
const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess',
|
|
23712
|
+
const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _504 => _504.getCurrentTime, 'call', _505 => _505()]), () => ( 0));
|
|
23713
|
+
const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _506 => _506.getDuration, 'call', _507 => _507()]), () => ( 0));
|
|
22003
23714
|
const liveAtEnd = isAtEnd(liveDuration, liveTime);
|
|
22004
23715
|
const start = {
|
|
22005
23716
|
// At end -> start over. Falling back to `handoff.time` here would rewind
|
|
22006
23717
|
// to an unrelated older anchor (e.g. 3:20) instead of restarting.
|
|
22007
|
-
time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess',
|
|
23718
|
+
time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _508 => _508.time]), () => ( 0)),
|
|
22008
23719
|
// Live element wins over remembered intent (the theater's own chrome may
|
|
22009
23720
|
// have changed it) — EXCEPT when the element is muted only because
|
|
22010
23721
|
// autoplay policy forced it, which is not intent.
|
|
@@ -22032,7 +23743,7 @@ function WalkthroughVideo({
|
|
|
22032
23743
|
const selfDriven = selfDrivenFor === open;
|
|
22033
23744
|
if (openProp !== void 0 && !selfDriven) {
|
|
22034
23745
|
if (open) {
|
|
22035
|
-
setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess',
|
|
23746
|
+
setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _509 => _509.time]), () => ( 0)), userMuted));
|
|
22036
23747
|
setHovered(false);
|
|
22037
23748
|
setSuspended(false);
|
|
22038
23749
|
setHandoff(null);
|
|
@@ -22118,8 +23829,8 @@ function WalkthroughVideo({
|
|
|
22118
23829
|
});
|
|
22119
23830
|
_react.useEffect.call(void 0, () => {
|
|
22120
23831
|
if (resumeMode) {
|
|
22121
|
-
setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access',
|
|
22122
|
-
setCardPaused(_optionalChain([handoffRef, 'access',
|
|
23832
|
+
setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _510 => _510.current, 'optionalAccess', _511 => _511.muted]), () => ( false)));
|
|
23833
|
+
setCardPaused(_optionalChain([handoffRef, 'access', _512 => _512.current, 'optionalAccess', _513 => _513.playing]) === false);
|
|
22123
23834
|
}
|
|
22124
23835
|
}, [resumeMode]);
|
|
22125
23836
|
const [hoverSeeded, setHoverSeeded] = _react.useState.call(void 0, hovered);
|
|
@@ -22201,11 +23912,11 @@ function WalkthroughVideo({
|
|
|
22201
23912
|
},
|
|
22202
23913
|
[cardFallback.blocked, cardPaused, activeHandle, setCardPaused]
|
|
22203
23914
|
);
|
|
22204
|
-
const summaryTitle = _optionalChain([video, 'optionalAccess',
|
|
22205
|
-
const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess',
|
|
23915
|
+
const summaryTitle = _optionalChain([video, 'optionalAccess', _514 => _514.title]) || void 0;
|
|
23916
|
+
const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _515 => _515.presenterAvatarUrl]), () => ( null));
|
|
22206
23917
|
const embedUrlKey = _react.useMemo.call(void 0,
|
|
22207
|
-
() => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess',
|
|
22208
|
-
[_optionalChain([video, 'optionalAccess',
|
|
23918
|
+
() => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _516 => _516.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _517 => _517.youtubeUrl]), () => ( ""))}`,
|
|
23919
|
+
[_optionalChain([video, 'optionalAccess', _518 => _518.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _519 => _519.youtubeUrl])]
|
|
22209
23920
|
);
|
|
22210
23921
|
const cardActive = !open && previewAllowed && hovered && !resumeMode;
|
|
22211
23922
|
const cardMode = resumeMode ? "resume" : cardActive ? "preview" : "poster";
|
|
@@ -22264,7 +23975,7 @@ function WalkthroughVideo({
|
|
|
22264
23975
|
const el = e.target;
|
|
22265
23976
|
let keyboard = false;
|
|
22266
23977
|
try {
|
|
22267
|
-
keyboard = _nullishCoalesce(_optionalChain([el, 'access',
|
|
23978
|
+
keyboard = _nullishCoalesce(_optionalChain([el, 'access', _520 => _520.matches, 'optionalCall', _521 => _521(":focus-visible")]), () => ( false));
|
|
22268
23979
|
} catch (e35) {
|
|
22269
23980
|
keyboard = false;
|
|
22270
23981
|
}
|
|
@@ -22283,7 +23994,7 @@ function WalkthroughVideo({
|
|
|
22283
23994
|
},
|
|
22284
23995
|
children: [
|
|
22285
23996
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22286
|
-
|
|
23997
|
+
_chunkLOJ5KQ6Bcjs.VideoHoverPreviewSurface,
|
|
22287
23998
|
{
|
|
22288
23999
|
url: video.mainVideoUrl || "",
|
|
22289
24000
|
posterUrl: video.posterUrl,
|
|
@@ -22298,15 +24009,15 @@ function WalkthroughVideo({
|
|
|
22298
24009
|
previewHandleRef: cardMode === "resume" ? resumeHandleRef : previewHandleRef,
|
|
22299
24010
|
mutedIntent: userMuted,
|
|
22300
24011
|
continuation: cardMode === "resume",
|
|
22301
|
-
autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess',
|
|
22302
|
-
startTime: _optionalChain([resumeHandoff, 'optionalAccess',
|
|
22303
|
-
startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess',
|
|
24012
|
+
autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _522 => _522.playing]) !== false && !footerHidden,
|
|
24013
|
+
startTime: _optionalChain([resumeHandoff, 'optionalAccess', _523 => _523.time]),
|
|
24014
|
+
startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _524 => _524.muted]), () => ( false)),
|
|
22304
24015
|
onEnded: cardMode === "resume" ? () => setHandoff(null) : () => setCardPaused(true)
|
|
22305
24016
|
},
|
|
22306
24017
|
`card-${embedUrlKey}`
|
|
22307
24018
|
) }),
|
|
22308
24019
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22309
|
-
|
|
24020
|
+
_chunkLOJ5KQ6Bcjs.CardHitLayer,
|
|
22310
24021
|
{
|
|
22311
24022
|
label: video.title ? `${label}: ${video.title}` : label,
|
|
22312
24023
|
onPointerDown: pausePreviewNow,
|
|
@@ -22315,7 +24026,7 @@ function WalkthroughVideo({
|
|
|
22315
24026
|
}
|
|
22316
24027
|
),
|
|
22317
24028
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "pointer-events-none absolute bottom-[var(--spacing-system-xsf)] left-[var(--spacing-system-xsf)] z-20 flex max-w-[calc(100%-2*var(--spacing-system-xsf))] items-center gap-[var(--spacing-system-xsf)] rounded-full bg-ods-overlay py-[var(--spacing-system-xxs)] pl-[var(--spacing-system-xxs)] pr-[var(--spacing-system-sf)] text-ods-text-primary text-h6", children: [
|
|
22318
|
-
presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24029
|
+
presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.VideoPlayBadge, { size: "sm", className: "h-5 w-5 shrink-0" }),
|
|
22319
24030
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: summaryTitle || label })
|
|
22320
24031
|
] }),
|
|
22321
24032
|
showBigUnmute && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -22328,7 +24039,7 @@ function WalkthroughVideo({
|
|
|
22328
24039
|
onPointerDown: (e) => e.stopPropagation(),
|
|
22329
24040
|
onClick: onUnmuteOrPlay,
|
|
22330
24041
|
className: "absolute inset-0 z-30 m-auto hidden sm:inline-flex",
|
|
22331
|
-
children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24042
|
+
children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.VideoPlayBadge, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.VideoUnmuteGlyph, {})
|
|
22332
24043
|
}
|
|
22333
24044
|
),
|
|
22334
24045
|
showPlaybackControls && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "absolute left-[var(--spacing-system-xsf)] top-[var(--spacing-system-xsf)] z-30 flex items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
@@ -22397,7 +24108,7 @@ function WalkthroughVideo({
|
|
|
22397
24108
|
{
|
|
22398
24109
|
onOpenAutoFocus: (e) => {
|
|
22399
24110
|
e.preventDefault();
|
|
22400
|
-
_optionalChain([closeButtonRef, 'access',
|
|
24111
|
+
_optionalChain([closeButtonRef, 'access', _525 => _525.current, 'optionalAccess', _526 => _526.focus, 'call', _527 => _527()]);
|
|
22401
24112
|
},
|
|
22402
24113
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
22403
24114
|
// PURE theater: just the video, centered on a dimmed backdrop.
|
|
@@ -22421,7 +24132,7 @@ function WalkthroughVideo({
|
|
|
22421
24132
|
children: [
|
|
22422
24133
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive2.Title, { className: "sr-only", children: summaryTitle || "Walkthrough video" }),
|
|
22423
24134
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22424
|
-
|
|
24135
|
+
_chunkLOJ5KQ6Bcjs.Video,
|
|
22425
24136
|
{
|
|
22426
24137
|
kind: video.youtubeUrl ? "youtube" : "file",
|
|
22427
24138
|
url: video.youtubeUrl || video.mainVideoUrl,
|
|
@@ -22472,7 +24183,7 @@ function InlineWalkthroughVideo(props) {
|
|
|
22472
24183
|
var _reactquery = require('@tanstack/react-query');
|
|
22473
24184
|
function useWalkthroughVideo(opts) {
|
|
22474
24185
|
const { endpoint, initialData, enabled = true, transformCaptionsUrl } = opts;
|
|
22475
|
-
const captions =
|
|
24186
|
+
const captions = _chunkLOJ5KQ6Bcjs.useCaptions.call(void 0, );
|
|
22476
24187
|
const query = _reactquery.useQuery.call(void 0, {
|
|
22477
24188
|
queryKey: ["walkthrough-video", endpoint],
|
|
22478
24189
|
enabled,
|
|
@@ -22491,14 +24202,14 @@ function useWalkthroughVideo(opts) {
|
|
|
22491
24202
|
if (res.status === 404) return null;
|
|
22492
24203
|
if (!res.ok) throw new Error(`Walkthrough video request failed (${res.status})`);
|
|
22493
24204
|
const body = await res.json();
|
|
22494
|
-
return _nullishCoalesce(_optionalChain([body, 'optionalAccess',
|
|
24205
|
+
return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _528 => _528.walkthroughVideo]), () => ( null));
|
|
22495
24206
|
},
|
|
22496
24207
|
// Per-observer transform — NEVER mutate the cached data. `select` also runs
|
|
22497
24208
|
// over `initialData`, so the SSR seed is rewritten too. Keeping the proxy
|
|
22498
24209
|
// rewrite here (not in queryFn) means a second consumer of the same
|
|
22499
24210
|
// endpoint can't inherit this observer's proxied captionsUrl from the cache.
|
|
22500
24211
|
select: (video) => {
|
|
22501
|
-
if (!_optionalChain([video, 'optionalAccess',
|
|
24212
|
+
if (!_optionalChain([video, 'optionalAccess', _529 => _529.captionsUrl])) return video;
|
|
22502
24213
|
if (transformCaptionsUrl && video.captionsUrl.startsWith("/")) {
|
|
22503
24214
|
return { ...video, captionsUrl: transformCaptionsUrl(video.captionsUrl) };
|
|
22504
24215
|
}
|
|
@@ -22545,7 +24256,7 @@ function VideoSourceSelector({
|
|
|
22545
24256
|
input.accept = "video/*";
|
|
22546
24257
|
input.onchange = async (e) => {
|
|
22547
24258
|
const target = e.target;
|
|
22548
|
-
const file = _optionalChain([target, 'access',
|
|
24259
|
+
const file = _optionalChain([target, 'access', _530 => _530.files, 'optionalAccess', _531 => _531[0]]);
|
|
22549
24260
|
if (!file) return;
|
|
22550
24261
|
setIsUploading(true);
|
|
22551
24262
|
setUploadProgress(0);
|
|
@@ -22670,7 +24381,7 @@ function VideoSourceSelector({
|
|
|
22670
24381
|
}
|
|
22671
24382
|
function DefaultVideoPreview({ videoUrl, onDelete, disabled }) {
|
|
22672
24383
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border", children: [
|
|
22673
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24384
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Video, { kind: "file", url: videoUrl }) }),
|
|
22674
24385
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22675
24386
|
"button",
|
|
22676
24387
|
{
|
|
@@ -22721,7 +24432,7 @@ function SubtitlesEditor({
|
|
|
22721
24432
|
{
|
|
22722
24433
|
id,
|
|
22723
24434
|
value: subtitles || "",
|
|
22724
|
-
onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall',
|
|
24435
|
+
onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _532 => _532(e.target.value)]),
|
|
22725
24436
|
placeholder,
|
|
22726
24437
|
disabled: disabled || !onSubtitlesChange,
|
|
22727
24438
|
className: "h-full w-full resize-none border-0 bg-transparent p-4 text-ods-text-primary text-code placeholder:text-ods-text-secondary/50 focus:outline-none focus:ring-0",
|
|
@@ -22950,7 +24661,7 @@ var AIEnrichSection = ({
|
|
|
22950
24661
|
}) => {
|
|
22951
24662
|
const hasResults = status === "success" || status === "error";
|
|
22952
24663
|
const shouldDisable = disabled || !canEnrich;
|
|
22953
|
-
const unfilledFields = _optionalChain([requiredFields, 'optionalAccess',
|
|
24664
|
+
const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _533 => _533.filter, 'call', _534 => _534((f) => !f.isFilled)]) || [];
|
|
22954
24665
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
22955
24666
|
"div",
|
|
22956
24667
|
{
|
|
@@ -22982,7 +24693,7 @@ var AIEnrichSection = ({
|
|
|
22982
24693
|
{
|
|
22983
24694
|
id: "ai-enrich-custom-instructions",
|
|
22984
24695
|
value: _nullishCoalesce(customInstructions, () => ( "")),
|
|
22985
|
-
onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall',
|
|
24696
|
+
onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _535 => _535(e.target.value)]),
|
|
22986
24697
|
placeholder: customInstructionsPlaceholder,
|
|
22987
24698
|
disabled: loading,
|
|
22988
24699
|
maxLength: customInstructionsMaxLength,
|
|
@@ -23104,7 +24815,7 @@ function HighlightVideoSection({
|
|
|
23104
24815
|
input.accept = "video/*";
|
|
23105
24816
|
input.onchange = async (e) => {
|
|
23106
24817
|
const target = e.target;
|
|
23107
|
-
const file = _optionalChain([target, 'access',
|
|
24818
|
+
const file = _optionalChain([target, 'access', _536 => _536.files, 'optionalAccess', _537 => _537[0]]);
|
|
23108
24819
|
if (!file) return;
|
|
23109
24820
|
setUploadError(null);
|
|
23110
24821
|
try {
|
|
@@ -23194,7 +24905,7 @@ function HighlightVideoSection({
|
|
|
23194
24905
|
// Default simple preview — the <Video> SSOT (MuxPlayer) plays
|
|
23195
24906
|
// MP4 and Mux HLS alike; aspect-video box reserves the height.
|
|
23196
24907
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border bg-black", children: [
|
|
23197
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24908
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
|
|
23198
24909
|
onDeleteHighlight && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
23199
24910
|
"button",
|
|
23200
24911
|
{
|
|
@@ -23531,7 +25242,7 @@ function HighlightVideoPreview({
|
|
|
23531
25242
|
input.accept = "video/*";
|
|
23532
25243
|
input.onchange = async (e) => {
|
|
23533
25244
|
const target = e.target;
|
|
23534
|
-
const file = _optionalChain([target, 'access',
|
|
25245
|
+
const file = _optionalChain([target, 'access', _538 => _538.files, 'optionalAccess', _539 => _539[0]]);
|
|
23535
25246
|
if (!file) return;
|
|
23536
25247
|
await onUpload(file);
|
|
23537
25248
|
};
|
|
@@ -23715,7 +25426,7 @@ function HighlightVideoCombinedSection({
|
|
|
23715
25426
|
input.accept = "video/*";
|
|
23716
25427
|
input.onchange = async (e) => {
|
|
23717
25428
|
const target = e.target;
|
|
23718
|
-
const file = _optionalChain([target, 'access',
|
|
25429
|
+
const file = _optionalChain([target, 'access', _540 => _540.files, 'optionalAccess', _541 => _541[0]]);
|
|
23719
25430
|
if (!file) return;
|
|
23720
25431
|
await onUpload(file);
|
|
23721
25432
|
};
|
|
@@ -23930,7 +25641,7 @@ var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
|
|
|
23930
25641
|
] });
|
|
23931
25642
|
};
|
|
23932
25643
|
var CategorySection = ({ category, editMode, isExpanded, bulkLevel, onToggle, onBulkLevelChange, onPolicyPermissionChange }) => {
|
|
23933
|
-
const { innerRef, containerStyle } =
|
|
25644
|
+
const { innerRef, containerStyle } = _chunkLOJ5KQ6Bcjs.useCollapsible.call(void 0, { expanded: isExpanded, durationMs: 300 });
|
|
23934
25645
|
const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
|
|
23935
25646
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
23936
25647
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -24098,7 +25809,7 @@ function WaitlistForm({
|
|
|
24098
25809
|
const { toast } = _chunkLEISUAHFcjs.useToast.call(void 0, );
|
|
24099
25810
|
const { honeypotInputProps, getSignals, resetSignals } = _chunkLEISUAHFcjs.useHumanitySignals.call(void 0, );
|
|
24100
25811
|
const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
|
|
24101
|
-
const isClient =
|
|
25812
|
+
const isClient = _chunkLOJ5KQ6Bcjs.useIsHydrated.call(void 0, );
|
|
24102
25813
|
const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
|
|
24103
25814
|
const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
|
|
24104
25815
|
const isMailDomainGeneric = hasGenericEmailDomain(email);
|
|
@@ -24414,19 +26125,19 @@ function NotificationsProvider({
|
|
|
24414
26125
|
}, []);
|
|
24415
26126
|
const markRead = _react.useCallback.call(void 0, (id) => {
|
|
24416
26127
|
dispatch({ type: "markRead", id });
|
|
24417
|
-
void _optionalChain([actionsRef, 'access',
|
|
26128
|
+
void _optionalChain([actionsRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.onMarkRead, 'optionalCall', _544 => _544(id)]);
|
|
24418
26129
|
}, []);
|
|
24419
26130
|
const markAllRead = _react.useCallback.call(void 0, () => {
|
|
24420
26131
|
dispatch({ type: "markAllRead" });
|
|
24421
|
-
void _optionalChain([actionsRef, 'access',
|
|
26132
|
+
void _optionalChain([actionsRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.onMarkAllRead, 'optionalCall', _547 => _547()]);
|
|
24422
26133
|
}, []);
|
|
24423
26134
|
const markSettled = _react.useCallback.call(void 0, (id) => {
|
|
24424
26135
|
dispatch({ type: "markSettled", id });
|
|
24425
|
-
void _optionalChain([actionsRef, 'access',
|
|
26136
|
+
void _optionalChain([actionsRef, 'access', _548 => _548.current, 'optionalAccess', _549 => _549.onMarkSettled, 'optionalCall', _550 => _550(id)]);
|
|
24426
26137
|
}, []);
|
|
24427
26138
|
const remove = _react.useCallback.call(void 0, (id) => {
|
|
24428
26139
|
dispatch({ type: "remove", id });
|
|
24429
|
-
void _optionalChain([actionsRef, 'access',
|
|
26140
|
+
void _optionalChain([actionsRef, 'access', _551 => _551.current, 'optionalAccess', _552 => _552.onRemove, 'optionalCall', _553 => _553(id)]);
|
|
24430
26141
|
}, []);
|
|
24431
26142
|
const clear = _react.useCallback.call(void 0, () => dispatch({ type: "clear" }), []);
|
|
24432
26143
|
const open = _react.useCallback.call(void 0, () => setIsOpen(true), []);
|
|
@@ -24435,14 +26146,14 @@ function NotificationsProvider({
|
|
|
24435
26146
|
const setShowPopups = _react.useCallback.call(void 0,
|
|
24436
26147
|
(value2) => {
|
|
24437
26148
|
setShowPopupsState(value2);
|
|
24438
|
-
_optionalChain([onShowPopupsChange, 'optionalCall',
|
|
26149
|
+
_optionalChain([onShowPopupsChange, 'optionalCall', _554 => _554(value2)]);
|
|
24439
26150
|
},
|
|
24440
26151
|
[onShowPopupsChange]
|
|
24441
26152
|
);
|
|
24442
26153
|
const setShowDesktopPopups = _react.useCallback.call(void 0,
|
|
24443
26154
|
(value2) => {
|
|
24444
26155
|
setShowDesktopPopupsState(value2);
|
|
24445
|
-
_optionalChain([onShowDesktopPopupsChange, 'optionalCall',
|
|
26156
|
+
_optionalChain([onShowDesktopPopupsChange, 'optionalCall', _555 => _555(value2)]);
|
|
24446
26157
|
},
|
|
24447
26158
|
[onShowDesktopPopupsChange]
|
|
24448
26159
|
);
|
|
@@ -24558,7 +26269,7 @@ var AppLayoutDrawerRoot = ({
|
|
|
24558
26269
|
const handleOpenChange = _react.useCallback.call(void 0,
|
|
24559
26270
|
(next) => {
|
|
24560
26271
|
if (!isControlled) setInternalOpen(next);
|
|
24561
|
-
_optionalChain([onOpenChange, 'optionalCall',
|
|
26272
|
+
_optionalChain([onOpenChange, 'optionalCall', _556 => _556(next)]);
|
|
24562
26273
|
},
|
|
24563
26274
|
[isControlled, onOpenChange]
|
|
24564
26275
|
);
|
|
@@ -24575,9 +26286,9 @@ var AppLayoutDrawerRoot = ({
|
|
|
24575
26286
|
}
|
|
24576
26287
|
}));
|
|
24577
26288
|
_react.useEffect.call(void 0, () => {
|
|
24578
|
-
if (open) _optionalChain([coordination, 'optionalAccess',
|
|
26289
|
+
if (open) _optionalChain([coordination, 'optionalAccess', _557 => _557.notifyDrawerDidOpen, 'call', _558 => _558(selfHandle)]);
|
|
24579
26290
|
}, [open, coordination, selfHandle]);
|
|
24580
|
-
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess',
|
|
26291
|
+
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _559 => _559.registerDrawer, 'call', _560 => _560(selfHandle)]), [coordination, selfHandle]);
|
|
24581
26292
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DrawerOpenContext.Provider, { value: open, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive3.Root, { ...rest, open, onOpenChange: handleOpenChange, modal, children }) });
|
|
24582
26293
|
};
|
|
24583
26294
|
AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
|
|
@@ -24902,7 +26613,7 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
24902
26613
|
"data-state": open ? "open" : "closed",
|
|
24903
26614
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
24904
26615
|
"absolute inset-0 z-[102] outline-none data-[state=closed]:pointer-events-none data-[state=open]:pointer-events-auto data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
24905
|
-
|
|
26616
|
+
_chunkLOJ5KQ6Bcjs.OVERLAY_BACKDROP_CLASS,
|
|
24906
26617
|
// Persist mode only: hold the fade-out's final (transparent) frame
|
|
24907
26618
|
// so the backdrop doesn't snap back to opacity 1 and dim the whole
|
|
24908
26619
|
// content area while the drawer is "closed" (see PERSIST_CLOSED_HOLD).
|
|
@@ -24930,10 +26641,10 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
24930
26641
|
),
|
|
24931
26642
|
style,
|
|
24932
26643
|
onInteractOutside: (event) => {
|
|
24933
|
-
_optionalChain([onInteractOutside, 'optionalCall',
|
|
26644
|
+
_optionalChain([onInteractOutside, 'optionalCall', _561 => _561(event)]);
|
|
24934
26645
|
if (event.defaultPrevented) return;
|
|
24935
26646
|
const target = event.target;
|
|
24936
|
-
const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess',
|
|
26647
|
+
const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _562 => _562.contains, 'call', _563 => _563(target)]);
|
|
24937
26648
|
if (!isInsideContainer) {
|
|
24938
26649
|
event.preventDefault();
|
|
24939
26650
|
return;
|
|
@@ -24978,11 +26689,11 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
24978
26689
|
}
|
|
24979
26690
|
);
|
|
24980
26691
|
AppLayoutDrawerContent.displayName = "AppLayoutDrawerContent";
|
|
24981
|
-
var AppLayoutDrawerHeader =
|
|
24982
|
-
var AppLayoutDrawerTitle =
|
|
24983
|
-
var AppLayoutDrawerDescription =
|
|
24984
|
-
var AppLayoutDrawerBody =
|
|
24985
|
-
var AppLayoutDrawerFooter =
|
|
26692
|
+
var AppLayoutDrawerHeader = _chunkLOJ5KQ6Bcjs.DrawerHeader;
|
|
26693
|
+
var AppLayoutDrawerTitle = _chunkLOJ5KQ6Bcjs.DrawerTitle;
|
|
26694
|
+
var AppLayoutDrawerDescription = _chunkLOJ5KQ6Bcjs.DrawerDescription;
|
|
26695
|
+
var AppLayoutDrawerBody = _chunkLOJ5KQ6Bcjs.DrawerBody;
|
|
26696
|
+
var AppLayoutDrawerFooter = _chunkLOJ5KQ6Bcjs.DrawerFooter;
|
|
24986
26697
|
|
|
24987
26698
|
// src/components/features/notifications/notification-tile.tsx
|
|
24988
26699
|
|
|
@@ -25036,7 +26747,7 @@ function NotificationTile({
|
|
|
25036
26747
|
if (!counting) return void 0;
|
|
25037
26748
|
const remaining = Math.max(0, liveDurationMs - initialElapsed);
|
|
25038
26749
|
const timer = window.setTimeout(() => {
|
|
25039
|
-
_optionalChain([onSettle, 'optionalCall',
|
|
26750
|
+
_optionalChain([onSettle, 'optionalCall', _564 => _564(id)]);
|
|
25040
26751
|
}, remaining);
|
|
25041
26752
|
return () => window.clearTimeout(timer);
|
|
25042
26753
|
}, [id, counting, initialElapsed, liveDurationMs, onSettle]);
|
|
@@ -25070,13 +26781,13 @@ function NotificationTile({
|
|
|
25070
26781
|
}
|
|
25071
26782
|
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkLEISUAHFcjs.dotColorByVariant[accentVariant]) }))) }),
|
|
25072
26783
|
type ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "min-w-0 flex-1 truncate text-h5", typeColorByVariant[accentVariant]), title: type, children: type }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1" }),
|
|
25073
|
-
!isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children:
|
|
26784
|
+
!isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkLOJ5KQ6Bcjs.formatTicketRelativeTime.call(void 0, createdAtIso) }) : null,
|
|
25074
26785
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "relative size-4 shrink-0", children: [
|
|
25075
26786
|
{
|
|
25076
26787
|
active: isLive,
|
|
25077
26788
|
label: "Dismiss notification",
|
|
25078
26789
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.XmarkIcon, { size: 16 }),
|
|
25079
|
-
onClick: () => _optionalChain([onSettle, 'optionalCall',
|
|
26790
|
+
onClick: () => _optionalChain([onSettle, 'optionalCall', _565 => _565(id)])
|
|
25080
26791
|
},
|
|
25081
26792
|
{
|
|
25082
26793
|
active: !isLive,
|
|
@@ -25167,7 +26878,7 @@ function NotificationDrawer({
|
|
|
25167
26878
|
const unreadNotifications = notifications.filter((n) => !n.read);
|
|
25168
26879
|
const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
25169
26880
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25170
|
-
|
|
26881
|
+
_chunkLOJ5KQ6Bcjs.DrawerTitle,
|
|
25171
26882
|
{
|
|
25172
26883
|
hideClose: true,
|
|
25173
26884
|
className: "truncate",
|
|
@@ -25226,8 +26937,8 @@ function NotificationDrawer({
|
|
|
25226
26937
|
}
|
|
25227
26938
|
) });
|
|
25228
26939
|
}
|
|
25229
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25230
|
-
|
|
26940
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Drawer, { open: isOpen, onOpenChange: (v) => v ? open() : close(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26941
|
+
_chunkLOJ5KQ6Bcjs.DrawerContent,
|
|
25231
26942
|
{
|
|
25232
26943
|
side: "right",
|
|
25233
26944
|
"aria-describedby": void 0,
|
|
@@ -25264,7 +26975,7 @@ function DrawerScrollList({
|
|
|
25264
26975
|
if (!sentinel || !root) return void 0;
|
|
25265
26976
|
const observer = new IntersectionObserver(
|
|
25266
26977
|
(entries) => {
|
|
25267
|
-
if (_optionalChain([entries, 'access',
|
|
26978
|
+
if (_optionalChain([entries, 'access', _566 => _566[0], 'optionalAccess', _567 => _567.isIntersecting])) _optionalChain([loadMoreRef, 'access', _568 => _568.current, 'optionalCall', _569 => _569()]);
|
|
25268
26979
|
},
|
|
25269
26980
|
{ root, rootMargin: loadMoreRootMargin }
|
|
25270
26981
|
);
|
|
@@ -25279,7 +26990,7 @@ function DrawerScrollList({
|
|
|
25279
26990
|
className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
|
|
25280
26991
|
children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
25281
26992
|
unreadNotifications.map((n) => {
|
|
25282
|
-
const custom = _optionalChain([renderTile, 'optionalCall',
|
|
26993
|
+
const custom = _optionalChain([renderTile, 'optionalCall', _570 => _570(n, { onComplete, onSettle, liveDurationMs })]);
|
|
25283
26994
|
if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
|
|
25284
26995
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25285
26996
|
NotificationTile,
|
|
@@ -25399,7 +27110,7 @@ function NotificationPopups({
|
|
|
25399
27110
|
}) {
|
|
25400
27111
|
const ctx = useOptionalNotifications();
|
|
25401
27112
|
const [now, setNow] = _react.useState.call(void 0, () => Date.now());
|
|
25402
|
-
const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess',
|
|
27113
|
+
const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _571 => _571.notifications, 'access', _572 => _572.some, 'call', _573 => _573((n) => !n.read && !n.settled)]));
|
|
25403
27114
|
_react.useEffect.call(void 0, () => {
|
|
25404
27115
|
if (!hasAgeingNotifications) return void 0;
|
|
25405
27116
|
const id = setInterval(() => setNow(Date.now()), 500);
|
|
@@ -25442,7 +27153,7 @@ function NotificationPopups({
|
|
|
25442
27153
|
className
|
|
25443
27154
|
),
|
|
25444
27155
|
children: live.map((n) => {
|
|
25445
|
-
const custom = _optionalChain([renderTile, 'optionalCall',
|
|
27156
|
+
const custom = _optionalChain([renderTile, 'optionalCall', _574 => _574(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
|
|
25446
27157
|
if (custom) {
|
|
25447
27158
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
|
|
25448
27159
|
}
|
|
@@ -25481,34 +27192,34 @@ function NotificationPopups({
|
|
|
25481
27192
|
// src/components/features/notifications/types.ts
|
|
25482
27193
|
var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
|
|
25483
27194
|
function isApprovalNotification(notification) {
|
|
25484
|
-
return _optionalChain([notification, 'access',
|
|
27195
|
+
return _optionalChain([notification, 'access', _575 => _575.meta, 'optionalAccess', _576 => _576.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
|
|
25485
27196
|
}
|
|
25486
27197
|
function getApprovalMeta(notification) {
|
|
25487
27198
|
if (!isApprovalNotification(notification)) return null;
|
|
25488
27199
|
const meta = notification.meta;
|
|
25489
|
-
const approvalRequestId = _optionalChain([meta, 'optionalAccess',
|
|
25490
|
-
const toolCalls = _optionalChain([meta, 'optionalAccess',
|
|
27200
|
+
const approvalRequestId = _optionalChain([meta, 'optionalAccess', _577 => _577.approvalRequestId]);
|
|
27201
|
+
const toolCalls = _optionalChain([meta, 'optionalAccess', _578 => _578.toolCalls]);
|
|
25491
27202
|
if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
|
|
25492
27203
|
return {
|
|
25493
27204
|
approvalRequestId,
|
|
25494
|
-
dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
25495
|
-
ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
25496
|
-
approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
25497
|
-
resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
25498
|
-
resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27205
|
+
dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.dialogId]), () => ( null)),
|
|
27206
|
+
ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _580 => _580.ticketId]), () => ( null)),
|
|
27207
|
+
approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _581 => _581.approvalType]), () => ( null)),
|
|
27208
|
+
resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _582 => _582.resolution]), () => ( null)),
|
|
27209
|
+
resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _583 => _583.resolvedByName]), () => ( null)),
|
|
25499
27210
|
toolCalls
|
|
25500
27211
|
};
|
|
25501
27212
|
}
|
|
25502
27213
|
function resolutionToStatus(resolution) {
|
|
25503
27214
|
switch (typeof resolution === "string" ? resolution.toUpperCase() : void 0) {
|
|
25504
27215
|
case "APPROVED":
|
|
25505
|
-
return
|
|
27216
|
+
return _chunkLOJ5KQ6Bcjs.APPROVAL_STATUS.APPROVED;
|
|
25506
27217
|
case "REJECTED":
|
|
25507
|
-
return
|
|
27218
|
+
return _chunkLOJ5KQ6Bcjs.APPROVAL_STATUS.REJECTED;
|
|
25508
27219
|
case "CANCELLED":
|
|
25509
|
-
return
|
|
27220
|
+
return _chunkLOJ5KQ6Bcjs.APPROVAL_STATUS.CANCELLED;
|
|
25510
27221
|
default:
|
|
25511
|
-
return
|
|
27222
|
+
return _chunkLOJ5KQ6Bcjs.APPROVAL_STATUS.PENDING;
|
|
25512
27223
|
}
|
|
25513
27224
|
}
|
|
25514
27225
|
function approvalMetaToBatchData(approval) {
|
|
@@ -25545,10 +27256,10 @@ function ApprovalRequestNotificationTile({
|
|
|
25545
27256
|
const [processing, setProcessing] = _react.useState.call(void 0, false);
|
|
25546
27257
|
const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
|
|
25547
27258
|
const approval = getApprovalMeta(notification);
|
|
25548
|
-
const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess',
|
|
27259
|
+
const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _584 => _584.resolution]));
|
|
25549
27260
|
const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
|
|
25550
27261
|
const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
|
|
25551
|
-
const { innerRef, containerStyle } =
|
|
27262
|
+
const { innerRef, containerStyle } = _chunkLOJ5KQ6Bcjs.useCollapsible.call(void 0, { expanded });
|
|
25552
27263
|
if (!approval || !batchData) return null;
|
|
25553
27264
|
const tileNotification = {
|
|
25554
27265
|
...notification,
|
|
@@ -25601,7 +27312,7 @@ function ApprovalRequestNotificationTile({
|
|
|
25601
27312
|
}
|
|
25602
27313
|
)
|
|
25603
27314
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
25604
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27315
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ApprovalStatusTag, { status }),
|
|
25605
27316
|
approval.resolvedByName ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: [
|
|
25606
27317
|
"by ",
|
|
25607
27318
|
approval.resolvedByName
|
|
@@ -25619,12 +27330,12 @@ function ApprovalRequestNotificationTile({
|
|
|
25619
27330
|
"aria-expanded": expanded,
|
|
25620
27331
|
"aria-label": toggleLabel,
|
|
25621
27332
|
className: "ml-auto w-6 shrink-0 px-0 md:w-8",
|
|
25622
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27333
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.ExpandChevron, { expanded })
|
|
25623
27334
|
}
|
|
25624
27335
|
)
|
|
25625
27336
|
] }),
|
|
25626
27337
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-t border-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25627
|
-
|
|
27338
|
+
_chunkLOJ5KQ6Bcjs.ApprovalBatchMessage,
|
|
25628
27339
|
{
|
|
25629
27340
|
data: batchData,
|
|
25630
27341
|
showExecutionStatus: false,
|
|
@@ -25867,7 +27578,7 @@ function TimeTrackerPanel({
|
|
|
25867
27578
|
error: showFieldError ? "Required if no notes added" : void 0,
|
|
25868
27579
|
disableClientFilter: !!onTicketSearch,
|
|
25869
27580
|
onInputChange: (value, reason) => {
|
|
25870
|
-
if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall',
|
|
27581
|
+
if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _585 => _585(value)]);
|
|
25871
27582
|
}
|
|
25872
27583
|
}
|
|
25873
27584
|
),
|
|
@@ -25882,7 +27593,7 @@ function TimeTrackerPanel({
|
|
|
25882
27593
|
disabled: customerLocked,
|
|
25883
27594
|
disableClientFilter: !!onCustomerSearch,
|
|
25884
27595
|
onInputChange: (value, reason) => {
|
|
25885
|
-
if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall',
|
|
27596
|
+
if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _586 => _586(value)]);
|
|
25886
27597
|
},
|
|
25887
27598
|
startAdornment: customerStartAdornment,
|
|
25888
27599
|
renderOption: renderCustomerOption
|
|
@@ -25955,7 +27666,7 @@ var STATUS_TAG_SKIN = "gap-[var(--spacing-system-xs)] font-mono font-medium uppe
|
|
|
25955
27666
|
function StatusTag({ status }) {
|
|
25956
27667
|
if (status === "tracking") {
|
|
25957
27668
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25958
|
-
|
|
27669
|
+
_chunkLOJ5KQ6Bcjs.Tag,
|
|
25959
27670
|
{
|
|
25960
27671
|
variant: "success",
|
|
25961
27672
|
className: STATUS_TAG_SKIN,
|
|
@@ -25965,9 +27676,9 @@ function StatusTag({ status }) {
|
|
|
25965
27676
|
);
|
|
25966
27677
|
}
|
|
25967
27678
|
if (status === "paused") {
|
|
25968
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27679
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Tag, { variant: "warning", className: STATUS_TAG_SKIN, icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.PauseIcon, { className: "h-4 w-4" }), label: "Paused" });
|
|
25969
27680
|
}
|
|
25970
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27681
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Tag, { variant: "grey", className: STATUS_TAG_SKIN, label: "Ready to Track" });
|
|
25971
27682
|
}
|
|
25972
27683
|
function LastEntryRow({ entry, onClick }) {
|
|
25973
27684
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-m)] border-b border-ods-border bg-ods-bg px-[var(--spacing-system-m)] py-[var(--spacing-system-sf)] last:border-b-0", children: [
|
|
@@ -25984,7 +27695,7 @@ function LastEntryRow({ entry, onClick }) {
|
|
|
25984
27695
|
{
|
|
25985
27696
|
variant: "outline",
|
|
25986
27697
|
size: "icon",
|
|
25987
|
-
onClick: () => _optionalChain([onClick, 'optionalCall',
|
|
27698
|
+
onClick: () => _optionalChain([onClick, 'optionalCall', _587 => _587(entry)]),
|
|
25988
27699
|
disabled: !onClick,
|
|
25989
27700
|
"aria-label": `Open entry: ${entry.title}`,
|
|
25990
27701
|
className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
|
|
@@ -26068,28 +27779,28 @@ function HeaderButton({
|
|
|
26068
27779
|
function TimeTrackerHeaderButton({ className, disabled }) {
|
|
26069
27780
|
const ctx = useOptionalTimeTracker();
|
|
26070
27781
|
const elapsedLabel = useTrackerClock({
|
|
26071
|
-
status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
26072
|
-
runningSince: _optionalChain([ctx, 'optionalAccess',
|
|
26073
|
-
accumulatedMs: _optionalChain([ctx, 'optionalAccess',
|
|
27782
|
+
status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _588 => _588.status]), () => ( "ready")),
|
|
27783
|
+
runningSince: _optionalChain([ctx, 'optionalAccess', _589 => _589.runningSince]),
|
|
27784
|
+
accumulatedMs: _optionalChain([ctx, 'optionalAccess', _590 => _590.accumulatedMs])
|
|
26074
27785
|
});
|
|
26075
27786
|
const layoutContainer = useAppLayoutDrawerContainer();
|
|
26076
27787
|
const coordination = useAppLayoutDrawerCoordination();
|
|
26077
|
-
const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
27788
|
+
const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _591 => _591.isOpen]), () => ( false));
|
|
26078
27789
|
const isOpenRef = _react.useRef.call(void 0, isOpen);
|
|
26079
|
-
const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess',
|
|
27790
|
+
const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _592 => _592.close]));
|
|
26080
27791
|
_react.useEffect.call(void 0, () => {
|
|
26081
27792
|
isOpenRef.current = isOpen;
|
|
26082
|
-
closeRef.current = _optionalChain([ctx, 'optionalAccess',
|
|
27793
|
+
closeRef.current = _optionalChain([ctx, 'optionalAccess', _593 => _593.close]);
|
|
26083
27794
|
});
|
|
26084
27795
|
const [selfHandle] = _react.useState.call(void 0, () => ({
|
|
26085
27796
|
close: () => {
|
|
26086
|
-
if (isOpenRef.current) _optionalChain([closeRef, 'access',
|
|
27797
|
+
if (isOpenRef.current) _optionalChain([closeRef, 'access', _594 => _594.current, 'optionalCall', _595 => _595()]);
|
|
26087
27798
|
}
|
|
26088
27799
|
}));
|
|
26089
27800
|
_react.useEffect.call(void 0, () => {
|
|
26090
|
-
if (isOpen) _optionalChain([coordination, 'optionalAccess',
|
|
27801
|
+
if (isOpen) _optionalChain([coordination, 'optionalAccess', _596 => _596.notifyDrawerDidOpen, 'call', _597 => _597(selfHandle)]);
|
|
26091
27802
|
}, [isOpen, coordination, selfHandle]);
|
|
26092
|
-
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess',
|
|
27803
|
+
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _598 => _598.registerDrawer, 'call', _599 => _599(selfHandle)]), [coordination, selfHandle]);
|
|
26093
27804
|
if (!ctx) return null;
|
|
26094
27805
|
const { open, close, status } = ctx;
|
|
26095
27806
|
const isPaused = status === "paused";
|
|
@@ -26136,7 +27847,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
26136
27847
|
"data-state": isOpen ? "open" : "closed",
|
|
26137
27848
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
26138
27849
|
layoutContainer ? "absolute inset-0 z-[102]" : "fixed inset-0 z-[1299]",
|
|
26139
|
-
|
|
27850
|
+
_chunkLOJ5KQ6Bcjs.OVERLAY_BACKDROP_CLASS,
|
|
26140
27851
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
26141
27852
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0"
|
|
26142
27853
|
)
|
|
@@ -26221,7 +27932,7 @@ function autoScrollAncestors(element) {
|
|
|
26221
27932
|
|
|
26222
27933
|
// src/components/features/board/aim.ts
|
|
26223
27934
|
var _closestedge = require('@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge');
|
|
26224
|
-
var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access',
|
|
27935
|
+
var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access', _600 => _600.find, 'call', _601 => _601((c) => c.id === columnId), 'optionalAccess', _602 => _602.tickets]), () => ( []))).filter((t) => t.id !== ticketId);
|
|
26225
27936
|
function laneOf(columns, ticketId) {
|
|
26226
27937
|
return _nullishCoalesce(columns.find((c) => c.tickets.some((t) => t.id === ticketId)), () => ( null));
|
|
26227
27938
|
}
|
|
@@ -26265,11 +27976,11 @@ function aimToChange(columns, ticketId, aim) {
|
|
|
26265
27976
|
const lane = laneOf(columns, ticketId);
|
|
26266
27977
|
if (!lane) return null;
|
|
26267
27978
|
const others = othersIn(columns, aim.columnId, ticketId);
|
|
26268
|
-
const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access',
|
|
26269
|
-
const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access',
|
|
27979
|
+
const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _603 => _603[aim.index - 1], 'optionalAccess', _604 => _604.id]), () => ( null));
|
|
27980
|
+
const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _605 => _605[aim.index], 'optionalAccess', _606 => _606.id]), () => ( null));
|
|
26270
27981
|
if (lane.id === aim.columnId) {
|
|
26271
27982
|
const currentIndex = lane.tickets.findIndex((t) => t.id === ticketId);
|
|
26272
|
-
if ((_nullishCoalesce(_optionalChain([lane, 'access',
|
|
27983
|
+
if ((_nullishCoalesce(_optionalChain([lane, 'access', _607 => _607.tickets, 'access', _608 => _608[currentIndex - 1], 'optionalAccess', _609 => _609.id]), () => ( null))) === afterTicketId) return null;
|
|
26273
27984
|
}
|
|
26274
27985
|
return { ticketId, fromColumnId: lane.id, toColumnId: aim.columnId, afterTicketId, beforeTicketId };
|
|
26275
27986
|
}
|
|
@@ -26290,7 +28001,7 @@ function BoardColumnHeader({
|
|
|
26290
28001
|
}) {
|
|
26291
28002
|
const count = _nullishCoalesce(column.total, () => ( column.tickets.length));
|
|
26292
28003
|
const tagStatus = _nullishCoalesce(column.statusKey, () => ( column.id));
|
|
26293
|
-
const useStatusVariant =
|
|
28004
|
+
const useStatusVariant = _chunkLOJ5KQ6Bcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
|
|
26294
28005
|
const actionClass = "h-8 w-8 p-0 md:h-8 md:w-8";
|
|
26295
28006
|
if (collapsed) {
|
|
26296
28007
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
@@ -26306,7 +28017,7 @@ function BoardColumnHeader({
|
|
|
26306
28017
|
}
|
|
26307
28018
|
),
|
|
26308
28019
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26309
|
-
|
|
28020
|
+
_chunkLOJ5KQ6Bcjs.TicketStatusTag,
|
|
26310
28021
|
{
|
|
26311
28022
|
status: tagStatus,
|
|
26312
28023
|
label: column.label,
|
|
@@ -26319,7 +28030,7 @@ function BoardColumnHeader({
|
|
|
26319
28030
|
}
|
|
26320
28031
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
26321
28032
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
26322
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28033
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
|
|
26323
28034
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h5", style: useStatusVariant ? void 0 : { color: column.color }, children: count })
|
|
26324
28035
|
] }),
|
|
26325
28036
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
@@ -26470,7 +28181,7 @@ function holdMoveDragEffect(element) {
|
|
|
26470
28181
|
|
|
26471
28182
|
function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
26472
28183
|
const [expanded, setExpanded] = _react.useState.call(void 0, false);
|
|
26473
|
-
const { innerRef, containerStyle } =
|
|
28184
|
+
const { innerRef, containerStyle } = _chunkLOJ5KQ6Bcjs.useCollapsible.call(void 0, { expanded });
|
|
26474
28185
|
const isAdmin = pendingApproval.approvalType === "ADMIN";
|
|
26475
28186
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
|
|
26476
28187
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -26499,7 +28210,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
|
26499
28210
|
}
|
|
26500
28211
|
),
|
|
26501
28212
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, className: "pt-[var(--spacing-system-xs)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26502
|
-
|
|
28213
|
+
_chunkLOJ5KQ6Bcjs.ApprovalBatchMessage,
|
|
26503
28214
|
{
|
|
26504
28215
|
className: "mb-0",
|
|
26505
28216
|
data: {
|
|
@@ -26540,14 +28251,14 @@ function useIsLanding(ticketId) {
|
|
|
26540
28251
|
return _react.useContext.call(void 0, LandingCardContext) === ticketId;
|
|
26541
28252
|
}
|
|
26542
28253
|
function hasMoveSettled(columns, move) {
|
|
26543
|
-
const tickets = _optionalChain([columns, 'access',
|
|
28254
|
+
const tickets = _optionalChain([columns, 'access', _610 => _610.find, 'call', _611 => _611((c) => c.id === move.toColumnId), 'optionalAccess', _612 => _612.tickets]);
|
|
26544
28255
|
if (!tickets) return false;
|
|
26545
28256
|
const index = tickets.findIndex((t) => t.id === move.ticketId);
|
|
26546
28257
|
if (index < 0) return false;
|
|
26547
28258
|
if (move.fromColumnId === move.toColumnId) {
|
|
26548
|
-
return (_nullishCoalesce(_optionalChain([tickets, 'access',
|
|
28259
|
+
return (_nullishCoalesce(_optionalChain([tickets, 'access', _613 => _613[index - 1], 'optionalAccess', _614 => _614.id]), () => ( null))) === move.afterTicketId;
|
|
26549
28260
|
}
|
|
26550
|
-
return !_optionalChain([columns, 'access',
|
|
28261
|
+
return !_optionalChain([columns, 'access', _615 => _615.find, 'call', _616 => _616((c) => c.id === move.fromColumnId), 'optionalAccess', _617 => _617.tickets, 'access', _618 => _618.some, 'call', _619 => _619((t) => t.id === move.ticketId)]);
|
|
26551
28262
|
}
|
|
26552
28263
|
|
|
26553
28264
|
// src/components/features/board/ticket-card.tsx
|
|
@@ -26571,10 +28282,10 @@ var ACTIVITY_DEFAULT_LABEL = {
|
|
|
26571
28282
|
var TICKET_CARD_SHELL = "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left";
|
|
26572
28283
|
function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
|
|
26573
28284
|
const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
|
|
26574
|
-
const newMessageTextColor = columnColor ?
|
|
26575
|
-
const showDeviceRow = !!(_optionalChain([ticket, 'access',
|
|
26576
|
-
const deviceText = [_optionalChain([ticket, 'access',
|
|
26577
|
-
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access',
|
|
28285
|
+
const newMessageTextColor = columnColor ? _chunkLOJ5KQ6Bcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
|
|
28286
|
+
const showDeviceRow = !!(_optionalChain([ticket, 'access', _620 => _620.deviceHostnames, 'optionalAccess', _621 => _621.length]) || ticket.organizationName);
|
|
28287
|
+
const deviceText = [_optionalChain([ticket, 'access', _622 => _622.deviceHostnames, 'optionalAccess', _623 => _623.join, 'call', _624 => _624(", ")]), ticket.organizationName].filter(Boolean).join(", ");
|
|
28288
|
+
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _625 => _625.assignees, 'optionalAccess', _626 => _626.length]) || renderAssignSlot);
|
|
26578
28289
|
const rightSection = hasRightSection ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
26579
28290
|
ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26580
28291
|
_chunkGSQM4PDRcjs.Flag02Icon,
|
|
@@ -26583,7 +28294,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
26583
28294
|
"aria-label": `Priority: ${ticket.priority}`
|
|
26584
28295
|
}
|
|
26585
28296
|
),
|
|
26586
|
-
renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access',
|
|
28297
|
+
renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _627 => _627.assignees, 'optionalAccess', _628 => _628.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
|
|
26587
28298
|
ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map(
|
|
26588
28299
|
(a) => a.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26589
28300
|
DeletedUserAvatar,
|
|
@@ -26610,8 +28321,8 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
26610
28321
|
] })
|
|
26611
28322
|
] }) : null
|
|
26612
28323
|
] }) : null;
|
|
26613
|
-
const timestampLabel = ticket.createdAt ?
|
|
26614
|
-
const tooltipLabel = ticket.createdAt ?
|
|
28324
|
+
const timestampLabel = ticket.createdAt ? _chunkLOJ5KQ6Bcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
|
|
28325
|
+
const tooltipLabel = ticket.createdAt ? _chunkLOJ5KQ6Bcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
|
|
26615
28326
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
26616
28327
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
|
|
26617
28328
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-zero)]", title: ticket.title, children: [
|
|
@@ -26623,10 +28334,10 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
26623
28334
|
] }),
|
|
26624
28335
|
rightSection
|
|
26625
28336
|
] }),
|
|
26626
|
-
_optionalChain([ticket, 'access',
|
|
26627
|
-
timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26628
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26629
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28337
|
+
_optionalChain([ticket, 'access', _629 => _629.tags, 'optionalAccess', _630 => _630.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
|
|
28338
|
+
timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Tooltip, { children: [
|
|
28339
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
|
|
28340
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipContent, { children: tooltipLabel })
|
|
26630
28341
|
] }) }),
|
|
26631
28342
|
ticket.escalatedByUser && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xxs)] text-ods-open-yellow text-h6", children: [
|
|
26632
28343
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.UserCheckIcon, { className: "size-4 shrink-0" }),
|
|
@@ -26646,7 +28357,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
26646
28357
|
}
|
|
26647
28358
|
),
|
|
26648
28359
|
showNewMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26649
|
-
|
|
28360
|
+
_chunkLOJ5KQ6Bcjs.Tag,
|
|
26650
28361
|
{
|
|
26651
28362
|
label: "New Message",
|
|
26652
28363
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.MessagesIcon, { size: 16, color: newMessageTextColor }),
|
|
@@ -26690,7 +28401,7 @@ var TicketCard = _react.memo.call(void 0, function TicketCardImpl({
|
|
|
26690
28401
|
const isLanding = useIsLanding(ticket.id);
|
|
26691
28402
|
const aim = useDropAim();
|
|
26692
28403
|
const closestEdge = aim && aim.columnId === columnId && aim.ticketId === ticket.id ? aim.edge : null;
|
|
26693
|
-
const isSource = isDragging || _optionalChain([aim, 'optionalAccess',
|
|
28404
|
+
const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _631 => _631.ticket, 'access', _632 => _632.id]) === ticket.id;
|
|
26694
28405
|
const lift = useBoardLift();
|
|
26695
28406
|
const handleKeyDown = (e) => {
|
|
26696
28407
|
if (e.key !== " " || dragDisabled || !lift) return;
|
|
@@ -26861,8 +28572,8 @@ function TicketTagRow({ tags }) {
|
|
|
26861
28572
|
const visible = tags.slice(0, MAX_VISIBLE_TAGS);
|
|
26862
28573
|
const hidden = tags.length - visible.length;
|
|
26863
28574
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 flex-wrap items-start gap-[var(--spacing-system-xxs)] overflow-clip", children: [
|
|
26864
|
-
visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26865
|
-
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28575
|
+
visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Tag, { variant: "outline", label: tag }, tag)),
|
|
28576
|
+
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.Tag, { variant: "outline", label: `+${hidden}` })
|
|
26866
28577
|
] });
|
|
26867
28578
|
}
|
|
26868
28579
|
|
|
@@ -26943,7 +28654,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
|
|
|
26943
28654
|
// large ones like the only thing that did.
|
|
26944
28655
|
getData: ({ input, element: lane, source }) => {
|
|
26945
28656
|
const nearest = nearestCardIn(lane, input.clientY, String(source.data.ticketId));
|
|
26946
|
-
const ticketId = _optionalChain([nearest, 'optionalAccess',
|
|
28657
|
+
const ticketId = _optionalChain([nearest, 'optionalAccess', _633 => _633.dataset, 'access', _634 => _634.ticketId]);
|
|
26947
28658
|
if (!nearest || !ticketId) return { type: "column", columnId: column.id };
|
|
26948
28659
|
return _closestedge.attachClosestEdge.call(void 0,
|
|
26949
28660
|
{ type: "ticket", ticketId, columnId: column.id },
|
|
@@ -26955,7 +28666,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
|
|
|
26955
28666
|
onDrop: () => setIsOver(false)
|
|
26956
28667
|
});
|
|
26957
28668
|
}, [column.id, column.dropDisabled, column.allowedFromColumns, collapsed, touchMode]);
|
|
26958
|
-
const handleToggleCollapse = _react.useCallback.call(void 0, () => _optionalChain([onToggleCollapse, 'optionalCall',
|
|
28669
|
+
const handleToggleCollapse = _react.useCallback.call(void 0, () => _optionalChain([onToggleCollapse, 'optionalCall', _635 => _635(column.id)]), [onToggleCollapse, column.id]);
|
|
26959
28670
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
26960
28671
|
"div",
|
|
26961
28672
|
{
|
|
@@ -27034,7 +28745,7 @@ function ColumnBody({
|
|
|
27034
28745
|
const observer = new IntersectionObserver(
|
|
27035
28746
|
(entries) => {
|
|
27036
28747
|
if (entries.some((e) => e.isIntersecting)) {
|
|
27037
|
-
_optionalChain([loadMoreRef, 'access',
|
|
28748
|
+
_optionalChain([loadMoreRef, 'access', _636 => _636.current, 'optionalCall', _637 => _637(columnIdRef.current)]);
|
|
27038
28749
|
}
|
|
27039
28750
|
},
|
|
27040
28751
|
{ root, rootMargin: loadMoreRootMargin }
|
|
@@ -27059,7 +28770,7 @@ function ColumnBody({
|
|
|
27059
28770
|
ticket: t,
|
|
27060
28771
|
columnId: column.id,
|
|
27061
28772
|
columnColor: column.color,
|
|
27062
|
-
href: _optionalChain([getTicketHref, 'optionalCall',
|
|
28773
|
+
href: _optionalChain([getTicketHref, 'optionalCall', _638 => _638(t.id)]),
|
|
27063
28774
|
renderAssignSlot,
|
|
27064
28775
|
onApprove,
|
|
27065
28776
|
onReject,
|
|
@@ -27235,7 +28946,7 @@ function DragBoard({
|
|
|
27235
28946
|
const [landing, setLanding] = _react.useState.call(void 0, null);
|
|
27236
28947
|
const landingTimer = _react.useRef.call(void 0, null);
|
|
27237
28948
|
const pointRef = _react.useRef.call(void 0, { x: 0, y: 0 });
|
|
27238
|
-
const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access',
|
|
28949
|
+
const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access', _639 => _639.find, 'call', _640 => _640((c) => c.id === columnId), 'optionalAccess', _641 => _641.label]), () => ( columnId)), [view]);
|
|
27239
28950
|
const acceptsLifted = _react.useCallback.call(void 0,
|
|
27240
28951
|
(fromColumnId) => (column) => {
|
|
27241
28952
|
if (column.dropDisabled || collapsed[column.id]) return false;
|
|
@@ -27249,7 +28960,7 @@ function DragBoard({
|
|
|
27249
28960
|
const start = initialAim(view, ticketId);
|
|
27250
28961
|
if (!start) return;
|
|
27251
28962
|
setLifted({ ticketId, aim: start });
|
|
27252
|
-
const title = _nullishCoalesce(_optionalChain([laneOf, 'call',
|
|
28963
|
+
const title = _nullishCoalesce(_optionalChain([laneOf, 'call', _642 => _642(view, ticketId), 'optionalAccess', _643 => _643.tickets, 'access', _644 => _644.find, 'call', _645 => _645((t) => t.id === ticketId), 'optionalAccess', _646 => _646.title]), () => ( "Ticket"));
|
|
27253
28964
|
setAnnouncement(`${title} lifted. Use the arrow keys to move it, space to drop it, escape to put it back.`);
|
|
27254
28965
|
},
|
|
27255
28966
|
[view]
|
|
@@ -27274,11 +28985,11 @@ function DragBoard({
|
|
|
27274
28985
|
const walk = _react.useCallback.call(void 0,
|
|
27275
28986
|
(key) => {
|
|
27276
28987
|
if (!lifted) return;
|
|
27277
|
-
const from = _nullishCoalesce(_optionalChain([laneOf, 'call',
|
|
28988
|
+
const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _647 => _647(view, lifted.ticketId), 'optionalAccess', _648 => _648.id]), () => ( lifted.aim.columnId));
|
|
27278
28989
|
const next = moveAim(view, lifted.ticketId, lifted.aim, key, acceptsLifted(from));
|
|
27279
28990
|
if (next === lifted.aim) return;
|
|
27280
28991
|
setLifted({ ...lifted, aim: next });
|
|
27281
|
-
const total = (_nullishCoalesce(_optionalChain([view, 'access',
|
|
28992
|
+
const total = (_nullishCoalesce(_optionalChain([view, 'access', _649 => _649.find, 'call', _650 => _650((c) => c.id === next.columnId), 'optionalAccess', _651 => _651.tickets]), () => ( []))).filter(
|
|
27282
28993
|
(t) => t.id !== lifted.ticketId
|
|
27283
28994
|
).length;
|
|
27284
28995
|
setAnnouncement(`${laneLabel(next.columnId)}, position ${next.index + 1} of ${total + 1}.`);
|
|
@@ -27305,11 +29016,11 @@ function DragBoard({
|
|
|
27305
29016
|
}, [lifted, drop, walk]);
|
|
27306
29017
|
_react.useEffect.call(void 0, () => {
|
|
27307
29018
|
if (!lifted) return;
|
|
27308
|
-
_optionalChain([boardRef, 'access',
|
|
29019
|
+
_optionalChain([boardRef, 'access', _652 => _652.current, 'optionalAccess', _653 => _653.querySelector, 'call', _654 => _654(`[${DROP_LINE_ATTRIBUTE}]`), 'optionalAccess', _655 => _655.scrollIntoView, 'call', _656 => _656({ block: "nearest", inline: "nearest" })]);
|
|
27309
29020
|
}, [lifted]);
|
|
27310
29021
|
const keyboardAim = _react.useMemo.call(void 0, () => {
|
|
27311
29022
|
if (!lifted) return null;
|
|
27312
|
-
const ticket = _optionalChain([laneOf, 'call',
|
|
29023
|
+
const ticket = _optionalChain([laneOf, 'call', _657 => _657(view, lifted.ticketId), 'optionalAccess', _658 => _658.tickets, 'access', _659 => _659.find, 'call', _660 => _660((t) => t.id === lifted.ticketId)]);
|
|
27313
29024
|
if (!ticket) return null;
|
|
27314
29025
|
const anchor = aimToChange(view, lifted.ticketId, lifted.aim) ? aimAnchor(view, lifted.ticketId, lifted.aim) : { ticketId: null, edge: null };
|
|
27315
29026
|
return { columnId: lifted.aim.columnId, ...anchor, ticket };
|
|
@@ -27331,7 +29042,7 @@ function DragBoard({
|
|
|
27331
29042
|
return { columnId: slot.columnId, ...anchor, ticket };
|
|
27332
29043
|
};
|
|
27333
29044
|
const aimAt = (source, targets) => {
|
|
27334
|
-
const next = readAim(source, _optionalChain([targets, 'access',
|
|
29045
|
+
const next = readAim(source, _optionalChain([targets, 'access', _661 => _661[0], 'optionalAccess', _662 => _662.data]));
|
|
27335
29046
|
setAim((prev) => isSameAim(prev, next) ? prev : next);
|
|
27336
29047
|
};
|
|
27337
29048
|
return _combine.combine.call(void 0,
|
|
@@ -27360,7 +29071,7 @@ function DragBoard({
|
|
|
27360
29071
|
setLanding(null);
|
|
27361
29072
|
dragGeometry.current = {
|
|
27362
29073
|
ticket,
|
|
27363
|
-
columnColor: _optionalChain([columnsRef, 'access',
|
|
29074
|
+
columnColor: _optionalChain([columnsRef, 'access', _663 => _663.current, 'access', _664 => _664.find, 'call', _665 => _665((c) => c.id === source.data.columnId), 'optionalAccess', _666 => _666.color]),
|
|
27364
29075
|
width: rect.width,
|
|
27365
29076
|
grabX: clientX - rect.left,
|
|
27366
29077
|
grabY: clientY - rect.top
|
|
@@ -27377,7 +29088,7 @@ function DragBoard({
|
|
|
27377
29088
|
setAim(null);
|
|
27378
29089
|
const change = resolveBoardDrop(columnsRef.current, {
|
|
27379
29090
|
source: source.data,
|
|
27380
|
-
target: _optionalChain([location, 'access',
|
|
29091
|
+
target: _optionalChain([location, 'access', _667 => _667.current, 'access', _668 => _668.dropTargets, 'access', _669 => _669[0], 'optionalAccess', _670 => _670.data])
|
|
27381
29092
|
});
|
|
27382
29093
|
if (!change) return;
|
|
27383
29094
|
setPendingMove({
|
|
@@ -27410,7 +29121,7 @@ function DragBoard({
|
|
|
27410
29121
|
return void 0;
|
|
27411
29122
|
}
|
|
27412
29123
|
const to = card.getBoundingClientRect();
|
|
27413
|
-
const lane = _optionalChain([nearestScrollableAncestor, 'call',
|
|
29124
|
+
const lane = _optionalChain([nearestScrollableAncestor, 'call', _671 => _671(card), 'optionalAccess', _672 => _672.getBoundingClientRect, 'call', _673 => _673()]);
|
|
27414
29125
|
if (lane && (to.top < lane.top || to.bottom > lane.bottom)) {
|
|
27415
29126
|
finish();
|
|
27416
29127
|
return void 0;
|
|
@@ -27469,8 +29180,8 @@ function DragBoard({
|
|
|
27469
29180
|
children: view.map((column, i) => {
|
|
27470
29181
|
const prev = view[i - 1];
|
|
27471
29182
|
const next = view[i + 1];
|
|
27472
|
-
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess',
|
|
27473
|
-
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess',
|
|
29183
|
+
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _674 => _674.system]));
|
|
29184
|
+
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _675 => _675.system]));
|
|
27474
29185
|
const showGap = i > 0 && !joinLeft;
|
|
27475
29186
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
|
|
27476
29187
|
showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
|
|
@@ -27650,13 +29361,13 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
27650
29361
|
const [flipTick, setFlipTick] = _react.useState.call(void 0, 0);
|
|
27651
29362
|
const flipTimer = _react.useRef.call(void 0, null);
|
|
27652
29363
|
const readItems = _react.useCallback.call(void 0,
|
|
27653
|
-
() => [..._nullishCoalesce(_optionalChain([listRef, 'access',
|
|
29364
|
+
() => [..._nullishCoalesce(_optionalChain([listRef, 'access', _676 => _676.current, 'optionalAccess', _677 => _677.querySelectorAll, 'call', _678 => _678(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
|
|
27654
29365
|
[]
|
|
27655
29366
|
);
|
|
27656
29367
|
const reorder = _react.useCallback.call(void 0,
|
|
27657
29368
|
(from, to) => {
|
|
27658
29369
|
if (from === to) return;
|
|
27659
|
-
const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access',
|
|
29370
|
+
const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _679 => _679.current, 'optionalCall', _680 => _680(from)]), () => ( "Item"));
|
|
27660
29371
|
setAnnouncement(`${label} moved to position ${to + 1} of ${readItems().length}.`);
|
|
27661
29372
|
onReorderRef.current(from, to);
|
|
27662
29373
|
},
|
|
@@ -27744,7 +29455,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
27744
29455
|
moving.push(item);
|
|
27745
29456
|
}
|
|
27746
29457
|
if (moving.length === 0) return;
|
|
27747
|
-
void _optionalChain([listRef, 'access',
|
|
29458
|
+
void _optionalChain([listRef, 'access', _681 => _681.current, 'optionalAccess', _682 => _682.offsetHeight]);
|
|
27748
29459
|
for (const item of moving) {
|
|
27749
29460
|
item.style.transition = `transform ${DROP_MS2}ms ${EASING}`;
|
|
27750
29461
|
item.style.transform = "";
|
|
@@ -27781,8 +29492,8 @@ function SortableMoveButtons({ index, count, label, className }) {
|
|
|
27781
29492
|
if (to < 0 || to >= count) return;
|
|
27782
29493
|
reorder(index, to);
|
|
27783
29494
|
requestAnimationFrame(() => {
|
|
27784
|
-
if (step === -1 && to === 0) _optionalChain([downRef, 'access',
|
|
27785
|
-
if (step === 1 && to === count - 1) _optionalChain([upRef, 'access',
|
|
29495
|
+
if (step === -1 && to === 0) _optionalChain([downRef, 'access', _683 => _683.current, 'optionalAccess', _684 => _684.focus, 'call', _685 => _685()]);
|
|
29496
|
+
if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _686 => _686.current, 'optionalAccess', _687 => _687.focus, 'call', _688 => _688()]);
|
|
27786
29497
|
});
|
|
27787
29498
|
};
|
|
27788
29499
|
const subject = _nullishCoalesce(label, () => ( "item"));
|
|
@@ -27830,7 +29541,7 @@ function useSortableItem() {
|
|
|
27830
29541
|
const [handle, setHandle] = _react.useState.call(void 0, null);
|
|
27831
29542
|
const [isDragging, setIsDragging] = _react.useState.call(void 0, false);
|
|
27832
29543
|
const itemRef = _react.useCallback.call(void 0, (node) => {
|
|
27833
|
-
_optionalChain([node, 'optionalAccess',
|
|
29544
|
+
_optionalChain([node, 'optionalAccess', _689 => _689.setAttribute, 'call', _690 => _690(SORTABLE_ITEM_ATTRIBUTE, "")]);
|
|
27834
29545
|
setItem(node);
|
|
27835
29546
|
}, []);
|
|
27836
29547
|
_react.useEffect.call(void 0, () => {
|
|
@@ -27860,7 +29571,7 @@ function useSortableItem() {
|
|
|
27860
29571
|
if (from < 0 || to < 0 || to >= items.length) return;
|
|
27861
29572
|
event.preventDefault();
|
|
27862
29573
|
reorder(from, to);
|
|
27863
|
-
requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess',
|
|
29574
|
+
requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _691 => _691.focus, 'call', _692 => _692()]));
|
|
27864
29575
|
},
|
|
27865
29576
|
[inert, readItems, reorder, handle]
|
|
27866
29577
|
);
|
|
@@ -27882,7 +29593,7 @@ function TicketStatusConfigList({
|
|
|
27882
29593
|
onReorder,
|
|
27883
29594
|
getItemLabel,
|
|
27884
29595
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className),
|
|
27885
|
-
children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall',
|
|
29596
|
+
children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _693 => _693(index)]), children: (args) => renderRow(item, args) }, item.id))
|
|
27886
29597
|
}
|
|
27887
29598
|
);
|
|
27888
29599
|
}
|
|
@@ -28471,5 +30182,52 @@ function SortableRow({
|
|
|
28471
30182
|
|
|
28472
30183
|
|
|
28473
30184
|
|
|
28474
|
-
exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.HiddenTagsPopup = HiddenTagsPopup; exports.TruncateText = TruncateText; exports.Autocomplete = Autocomplete; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.FullscreenSwitchController = FullscreenSwitchController; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.StatusIndicator = StatusIndicator; exports.BackButton = BackButton; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TitleContentBlock = TitleContentBlock; exports.TouchFriendlyTooltip = TouchFriendlyTooltip; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.COMPACT_ROW_MIN_HEIGHT_PX = COMPACT_ROW_MIN_HEIGHT_PX; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.DataTableEmpty = DataTableEmpty; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow;
|
|
28475
|
-
|
|
30185
|
+
|
|
30186
|
+
|
|
30187
|
+
|
|
30188
|
+
|
|
30189
|
+
|
|
30190
|
+
|
|
30191
|
+
|
|
30192
|
+
|
|
30193
|
+
|
|
30194
|
+
|
|
30195
|
+
|
|
30196
|
+
|
|
30197
|
+
|
|
30198
|
+
|
|
30199
|
+
|
|
30200
|
+
|
|
30201
|
+
|
|
30202
|
+
|
|
30203
|
+
|
|
30204
|
+
|
|
30205
|
+
|
|
30206
|
+
|
|
30207
|
+
|
|
30208
|
+
|
|
30209
|
+
|
|
30210
|
+
|
|
30211
|
+
|
|
30212
|
+
|
|
30213
|
+
|
|
30214
|
+
|
|
30215
|
+
|
|
30216
|
+
|
|
30217
|
+
|
|
30218
|
+
|
|
30219
|
+
|
|
30220
|
+
|
|
30221
|
+
|
|
30222
|
+
|
|
30223
|
+
|
|
30224
|
+
|
|
30225
|
+
|
|
30226
|
+
|
|
30227
|
+
|
|
30228
|
+
|
|
30229
|
+
|
|
30230
|
+
|
|
30231
|
+
|
|
30232
|
+
exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.HiddenTagsPopup = HiddenTagsPopup; exports.TruncateText = TruncateText; exports.Autocomplete = Autocomplete; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.FullscreenSwitchController = FullscreenSwitchController; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.StatusIndicator = StatusIndicator; exports.BackButton = BackButton; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TitleContentBlock = TitleContentBlock; exports.TouchFriendlyTooltip = TouchFriendlyTooltip; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.COMPACT_ROW_MIN_HEIGHT_PX = COMPACT_ROW_MIN_HEIGHT_PX; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.DataTableEmpty = DataTableEmpty; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow;
|
|
30233
|
+
//# sourceMappingURL=chunk-HMEEW73F.cjs.map
|