@flamingo-stack/openframe-frontend-core 0.0.586 → 0.0.587-1973.5528.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/chat-protocol/events.d.ts +8 -2
- package/dist/chat-protocol/events.d.ts.map +1 -1
- package/dist/chat-protocol/index.cjs +188 -0
- package/dist/chat-protocol/index.cjs.map +1 -1
- package/dist/chat-protocol/index.js +188 -0
- package/dist/chat-protocol/index.js.map +1 -1
- package/dist/chat-protocol/nats-decoder.d.ts.map +1 -1
- package/dist/chat-protocol/source-metadata.d.ts +5 -0
- package/dist/chat-protocol/source-metadata.d.ts.map +1 -0
- package/dist/{chunk-BMORFCT2.cjs → chunk-3UJMZADA.cjs} +43 -43
- package/dist/{chunk-BMORFCT2.cjs.map → chunk-3UJMZADA.cjs.map} +1 -1
- package/dist/{chunk-D7YISHXC.js → chunk-4MVGFYRE.js} +534 -190
- package/dist/chunk-4MVGFYRE.js.map +1 -0
- package/dist/{chunk-3WR5R6H6.cjs → chunk-4S7GMJYA.cjs} +21 -21
- package/dist/{chunk-3WR5R6H6.cjs.map → chunk-4S7GMJYA.cjs.map} +1 -1
- package/dist/{chunk-EAYMX22G.cjs → chunk-5VCDP6UA.cjs} +10 -10
- package/dist/{chunk-EAYMX22G.cjs.map → chunk-5VCDP6UA.cjs.map} +1 -1
- package/dist/{chunk-XMTGLQSD.js → chunk-5X7AJ67N.js} +3 -3
- package/dist/{chunk-OZNFPQT5.js → chunk-7A6J4JTW.js} +3 -3
- package/dist/{chunk-QZYYNBMI.cjs → chunk-7COFWOCJ.cjs} +22 -22
- package/dist/{chunk-QZYYNBMI.cjs.map → chunk-7COFWOCJ.cjs.map} +1 -1
- package/dist/{chunk-6ZNWY6WW.cjs → chunk-AIUIIGO3.cjs} +24 -24
- package/dist/{chunk-6ZNWY6WW.cjs.map → chunk-AIUIIGO3.cjs.map} +1 -1
- package/dist/{chunk-M36XSGZV.cjs → chunk-BLC4JOFC.cjs} +15 -15
- package/dist/{chunk-M36XSGZV.cjs.map → chunk-BLC4JOFC.cjs.map} +1 -1
- package/dist/{chunk-NISAGFEM.cjs → chunk-DSXD77KX.cjs} +3 -3
- package/dist/{chunk-NISAGFEM.cjs.map → chunk-DSXD77KX.cjs.map} +1 -1
- package/dist/{chunk-P2CKLIOM.cjs → chunk-DVMQV3M4.cjs} +69 -69
- package/dist/{chunk-P2CKLIOM.cjs.map → chunk-DVMQV3M4.cjs.map} +1 -1
- package/dist/{chunk-S7YXLZNG.js → chunk-E2QFZDCP.js} +5 -5
- package/dist/{chunk-G45RGWHF.cjs → chunk-EKKR5ZFB.cjs} +887 -543
- package/dist/chunk-EKKR5ZFB.cjs.map +1 -0
- package/dist/{chunk-L4WLYGB4.js → chunk-FDWGO244.js} +2 -2
- package/dist/{chunk-3JVYM4ZN.js → chunk-JQO47UHC.js} +5 -5
- package/dist/{chunk-C3MRLZUI.cjs → chunk-JR37UTA2.cjs} +33 -33
- package/dist/{chunk-C3MRLZUI.cjs.map → chunk-JR37UTA2.cjs.map} +1 -1
- package/dist/{chunk-LV6CORVJ.js → chunk-KQWI25NP.js} +2 -2
- package/dist/{chunk-V7ZJTUV2.cjs → chunk-NEI7XMCM.cjs} +9 -9
- package/dist/{chunk-V7ZJTUV2.cjs.map → chunk-NEI7XMCM.cjs.map} +1 -1
- package/dist/{chunk-YEQAA6I4.js → chunk-OW3FUJ2I.js} +3 -3
- package/dist/{chunk-PLMJVA2H.js → chunk-OZRT3ZI3.js} +3 -3
- package/dist/{chunk-XMK24INA.cjs → chunk-QKAUBYU5.cjs} +3 -3
- package/dist/{chunk-XMK24INA.cjs.map → chunk-QKAUBYU5.cjs.map} +1 -1
- package/dist/{chunk-6EZGJZVH.js → chunk-QSO24MEK.js} +2 -2
- package/dist/{chunk-DQUEVRDU.js → chunk-QYDIVL4X.js} +6 -6
- package/dist/{chunk-3HYHYKNL.js → chunk-RE3KVI2Q.js} +5 -5
- package/dist/{chunk-KLWJRGNN.js → chunk-RQ5PYSRJ.js} +4 -4
- package/dist/{chunk-NYLWMAHP.cjs → chunk-S2UY2C4A.cjs} +10 -10
- package/dist/{chunk-NYLWMAHP.cjs.map → chunk-S2UY2C4A.cjs.map} +1 -1
- package/dist/{chunk-SSGM2NKA.cjs → chunk-SCVIBVFS.cjs} +4 -4
- package/dist/{chunk-SSGM2NKA.cjs.map → chunk-SCVIBVFS.cjs.map} +1 -1
- package/dist/{chunk-4VZFJKPT.cjs → chunk-ULOMJH7C.cjs} +5 -5
- package/dist/{chunk-4VZFJKPT.cjs.map → chunk-ULOMJH7C.cjs.map} +1 -1
- package/dist/{chunk-5OIXAV4P.js → chunk-UODM3HJC.js} +3 -3
- package/dist/{chunk-A6ETQEWK.cjs → chunk-UYHETUX3.cjs} +159 -159
- package/dist/{chunk-A6ETQEWK.cjs.map → chunk-UYHETUX3.cjs.map} +1 -1
- package/dist/{chunk-2Y5UT5VF.js → chunk-WFWWQO2I.js} +2 -2
- package/dist/{chunk-YYC7V7YC.js → chunk-ZRFSUCAH.js} +2 -2
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +4 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-slash-commands.d.ts +3 -3
- package/dist/components/chat/hooks/use-slash-commands.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +2 -28
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/chat/remark-strip-citations.d.ts.map +1 -1
- package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -1
- package/dist/components/chat/tool-execution-display.d.ts.map +1 -1
- package/dist/components/chat/types/component.types.d.ts +4 -0
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/chat/types/message.types.d.ts +35 -1
- package/dist/components/chat/types/message.types.d.ts.map +1 -1
- package/dist/components/chat/types/unified-chat-state.types.d.ts +3 -3
- package/dist/components/chat/types/unified-chat-state.types.d.ts.map +1 -1
- package/dist/components/chat/utils/chat-source-metadata.d.ts +5 -0
- package/dist/components/chat/utils/chat-source-metadata.d.ts.map +1 -0
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +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 +3 -3
- package/dist/components/features/index.js +2 -2
- 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 +36 -36
- package/dist/components/index.js +13 -13
- 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/hover-dropdown.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +3 -3
- package/dist/components/ui/index.js +2 -2
- package/dist/index.cjs +7 -7
- package/dist/index.js +6 -6
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +2 -1
- package/src/chat-protocol/__tests__/nats-decoder-golden.test.ts +130 -0
- package/src/chat-protocol/__tests__/source-metadata.test.ts +74 -0
- package/src/chat-protocol/events.ts +9 -1
- package/src/chat-protocol/nats-decoder.ts +7 -0
- package/src/chat-protocol/source-metadata.ts +202 -0
- package/src/components/chat/__tests__/chat-message-list.test.tsx +70 -0
- package/src/components/chat/__tests__/chat-message-streaming-memo.test.tsx +86 -0
- package/src/components/chat/__tests__/embeddable-chat-sources.test.tsx +411 -0
- package/src/components/chat/__tests__/remark-strip-citations.test.ts +52 -0
- package/src/components/chat/__tests__/tool-execution-display.test.tsx +93 -0
- package/src/components/chat/chat-message-enhanced.tsx +28 -13
- package/src/components/chat/chat-message-list.tsx +27 -22
- package/src/components/chat/embeddable-chat.tsx +55 -36
- package/src/components/chat/entity-cards/__tests__/dispatch-video-refs.test.tsx +74 -0
- package/src/components/chat/entity-cards/dispatch.tsx +86 -17
- package/src/components/chat/hooks/__tests__/use-slash-commands.test.ts +64 -0
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +7 -0
- package/src/components/chat/hooks/use-slash-commands.ts +9 -5
- package/src/components/chat/hooks/use-sse-chat-adapter.ts +2 -29
- package/src/components/chat/remark-strip-citations.ts +5 -3
- package/src/components/chat/stream/__tests__/chat-stream-reducer.test.ts +56 -0
- package/src/components/chat/stream/chat-stream-reducer.ts +31 -0
- package/src/components/chat/tool-execution-display.tsx +5 -2
- package/src/components/chat/types/component.types.ts +4 -0
- package/src/components/chat/types/message.types.ts +39 -0
- package/src/components/chat/types/unified-chat-state.types.ts +4 -3
- package/src/components/chat/utils/__tests__/process-historical-messages-golden.test.ts +57 -0
- package/src/components/chat/utils/chat-source-metadata.ts +19 -0
- package/src/components/chat/utils/process-historical-messages.ts +19 -1
- package/src/components/ui/hover-dropdown.tsx +8 -3
- package/dist/chunk-D7YISHXC.js.map +0 -1
- package/dist/chunk-G45RGWHF.cjs.map +0 -1
- /package/dist/{chunk-XMTGLQSD.js.map → chunk-5X7AJ67N.js.map} +0 -0
- /package/dist/{chunk-OZNFPQT5.js.map → chunk-7A6J4JTW.js.map} +0 -0
- /package/dist/{chunk-S7YXLZNG.js.map → chunk-E2QFZDCP.js.map} +0 -0
- /package/dist/{chunk-L4WLYGB4.js.map → chunk-FDWGO244.js.map} +0 -0
- /package/dist/{chunk-3JVYM4ZN.js.map → chunk-JQO47UHC.js.map} +0 -0
- /package/dist/{chunk-LV6CORVJ.js.map → chunk-KQWI25NP.js.map} +0 -0
- /package/dist/{chunk-YEQAA6I4.js.map → chunk-OW3FUJ2I.js.map} +0 -0
- /package/dist/{chunk-PLMJVA2H.js.map → chunk-OZRT3ZI3.js.map} +0 -0
- /package/dist/{chunk-6EZGJZVH.js.map → chunk-QSO24MEK.js.map} +0 -0
- /package/dist/{chunk-DQUEVRDU.js.map → chunk-QYDIVL4X.js.map} +0 -0
- /package/dist/{chunk-3HYHYKNL.js.map → chunk-RE3KVI2Q.js.map} +0 -0
- /package/dist/{chunk-KLWJRGNN.js.map → chunk-RQ5PYSRJ.js.map} +0 -0
- /package/dist/{chunk-5OIXAV4P.js.map → chunk-UODM3HJC.js.map} +0 -0
- /package/dist/{chunk-2Y5UT5VF.js.map → chunk-WFWWQO2I.js.map} +0 -0
- /package/dist/{chunk-YYC7V7YC.js.map → chunk-ZRFSUCAH.js.map} +0 -0
|
@@ -90,7 +90,7 @@ var _chunkIKDC3R7Vcjs = require('./chunk-IKDC3R7V.cjs');
|
|
|
90
90
|
|
|
91
91
|
|
|
92
92
|
|
|
93
|
-
var
|
|
93
|
+
var _chunkEKKR5ZFBcjs = require('./chunk-EKKR5ZFB.cjs');
|
|
94
94
|
|
|
95
95
|
|
|
96
96
|
|
|
@@ -335,7 +335,7 @@ function ThemeProvider({ children, ...overrides }) {
|
|
|
335
335
|
var useTheme = _nextthemes.useTheme;
|
|
336
336
|
function useThemeToggle() {
|
|
337
337
|
const { resolvedTheme, theme, setTheme } = useTheme();
|
|
338
|
-
const mounted =
|
|
338
|
+
const mounted = _chunkEKKR5ZFBcjs.useIsHydrated.call(void 0, );
|
|
339
339
|
const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
|
|
340
340
|
const setOdsTheme = _react.useCallback.call(void 0, (next) => setTheme(next), [setTheme]);
|
|
341
341
|
const toggle = _react.useCallback.call(void 0, () => setTheme(active === "dark" ? "light" : "dark"), [active, setTheme]);
|
|
@@ -612,7 +612,7 @@ function TruncateText({
|
|
|
612
612
|
const { ref, isTruncated } = _chunkZI27ALYXcjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
|
|
613
613
|
const clampClass = isMultiLine ? LINE_CLAMP_CLASS[lines] : "truncate block";
|
|
614
614
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
615
|
-
|
|
615
|
+
_chunkEKKR5ZFBcjs.FloatingTooltip,
|
|
616
616
|
{
|
|
617
617
|
content: _nullishCoalesce(tooltip, () => ( children)),
|
|
618
618
|
side,
|
|
@@ -914,7 +914,7 @@ function AutocompleteInner(props, ref) {
|
|
|
914
914
|
),
|
|
915
915
|
/* @__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: [
|
|
916
916
|
multiple && visibleTags.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
917
|
-
|
|
917
|
+
_chunkEKKR5ZFBcjs.Tag,
|
|
918
918
|
{
|
|
919
919
|
variant: "outline",
|
|
920
920
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -1120,7 +1120,7 @@ function AutocompleteInner(props, ref) {
|
|
|
1120
1120
|
"aria-hidden": "true",
|
|
1121
1121
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
1122
1122
|
children: selectedOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1123
|
-
|
|
1123
|
+
_chunkEKKR5ZFBcjs.Tag,
|
|
1124
1124
|
{
|
|
1125
1125
|
variant: "outline",
|
|
1126
1126
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -2504,7 +2504,7 @@ function InfoHint({ children, label, side = "top", className }) {
|
|
|
2504
2504
|
const describedById = _react.useId.call(void 0, );
|
|
2505
2505
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "inline-flex shrink-0 items-center", className), children: [
|
|
2506
2506
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2507
|
-
|
|
2507
|
+
_chunkEKKR5ZFBcjs.FloatingTooltip,
|
|
2508
2508
|
{
|
|
2509
2509
|
content: children,
|
|
2510
2510
|
side,
|
|
@@ -2598,7 +2598,7 @@ function Value2({ value, depth }) {
|
|
|
2598
2598
|
}
|
|
2599
2599
|
if (typeof value === "string") {
|
|
2600
2600
|
if (ISO_DATE.test(value)) {
|
|
2601
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children:
|
|
2601
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children: _chunkEKKR5ZFBcjs.formatRelativeTime.call(void 0, value) });
|
|
2602
2602
|
}
|
|
2603
2603
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-pre-wrap text-ods-text-primary", children: value });
|
|
2604
2604
|
}
|
|
@@ -3230,7 +3230,7 @@ function RowValue({ value }) {
|
|
|
3230
3230
|
}
|
|
3231
3231
|
case "status": {
|
|
3232
3232
|
const { type: _type, ...props } = value;
|
|
3233
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3233
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TicketStatusTag, { ...props });
|
|
3234
3234
|
}
|
|
3235
3235
|
case "custom":
|
|
3236
3236
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: value.content });
|
|
@@ -4141,7 +4141,7 @@ function TagsManager({
|
|
|
4141
4141
|
}
|
|
4142
4142
|
),
|
|
4143
4143
|
selectedTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4144
|
-
|
|
4144
|
+
_chunkEKKR5ZFBcjs.Tag,
|
|
4145
4145
|
{
|
|
4146
4146
|
label: tag.name,
|
|
4147
4147
|
variant: "outline",
|
|
@@ -4686,10 +4686,10 @@ function useConfirm() {
|
|
|
4686
4686
|
},
|
|
4687
4687
|
[]
|
|
4688
4688
|
);
|
|
4689
|
-
const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4690
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4691
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4692
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4689
|
+
const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Modal, { isOpen: open, onClose: () => decide(false), children: [
|
|
4690
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalTitle, { children: pending.title }) }),
|
|
4691
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: pending.body }) }),
|
|
4692
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.ModalFooter, { children: [
|
|
4693
4693
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", onClick: () => decide(false), children: "Cancel" }),
|
|
4694
4694
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "destructive", onClick: () => decide(true), children: "Confirm" })
|
|
4695
4695
|
] })
|
|
@@ -4747,9 +4747,9 @@ function AdminFormModal({
|
|
|
4747
4747
|
body: "Your edits have not been saved. Close and discard them?"
|
|
4748
4748
|
});
|
|
4749
4749
|
if (!isOpen) return null;
|
|
4750
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4751
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4752
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4750
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Modal, { isOpen: true, onClose: guardedClose, size: effectiveSize, children: [
|
|
4751
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.ModalHeader, { children: [
|
|
4752
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalTitle, { children: title }),
|
|
4753
4753
|
subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: subtitle })
|
|
4754
4754
|
] }),
|
|
4755
4755
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -4773,7 +4773,7 @@ function AdminFormModal({
|
|
|
4773
4773
|
// a shrink-to-fit flex item pinned to the left of a 1400px panel).
|
|
4774
4774
|
// The placeholder owns its own layout and mirrors the column count so
|
|
4775
4775
|
// the modal doesn't visibly re-flow when the entity lands.
|
|
4776
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4776
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalContent, { children: loadingContent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-busy": "true", children: loadingContent }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4777
4777
|
"div",
|
|
4778
4778
|
{
|
|
4779
4779
|
"aria-busy": "true",
|
|
@@ -4794,12 +4794,12 @@ function AdminFormModal({
|
|
|
4794
4794
|
]
|
|
4795
4795
|
}
|
|
4796
4796
|
) })
|
|
4797
|
-
) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4797
|
+
) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalTwoColumn, { left: leftColumn, right: rightColumn }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalContent, { className: contentClassName, children }),
|
|
4798
4798
|
error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "alert", className: "shrink-0 text-ods-error text-h6", children: error })
|
|
4799
4799
|
]
|
|
4800
4800
|
}
|
|
4801
4801
|
),
|
|
4802
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4802
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalFooter, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-[var(--spacing-system-xsf)]", children: [
|
|
4803
4803
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: footerExtras }),
|
|
4804
4804
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
4805
4805
|
footerStatus,
|
|
@@ -6897,7 +6897,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarouselImpl({
|
|
|
6897
6897
|
};
|
|
6898
6898
|
const displayImageSrc = (url) => transformImageSrc ? transformImageSrc(url) : url;
|
|
6899
6899
|
const renderVideo = (item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6900
|
-
|
|
6900
|
+
_chunkEKKR5ZFBcjs.Video,
|
|
6901
6901
|
{
|
|
6902
6902
|
url: item.src,
|
|
6903
6903
|
poster: item.poster ? displayImageSrc(item.poster) : void 0,
|
|
@@ -7621,7 +7621,7 @@ function buildRichEmbedOverrides({
|
|
|
7621
7621
|
ogEndpointPath,
|
|
7622
7622
|
textSizes
|
|
7623
7623
|
}) {
|
|
7624
|
-
const standard =
|
|
7624
|
+
const standard = _chunkEKKR5ZFBcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
|
|
7625
7625
|
return {
|
|
7626
7626
|
// Fence-language embeds (```youtube-embed etc.); everything else
|
|
7627
7627
|
// (mermaid, highlighted blocks, inline code) falls through to `standard`.
|
|
@@ -7631,7 +7631,7 @@ function buildRichEmbedOverrides({
|
|
|
7631
7631
|
const language = match ? match[1] : "";
|
|
7632
7632
|
const fenceText = () => String(children).replace(/\n$/, "").trim();
|
|
7633
7633
|
if (language === "youtube-embed") {
|
|
7634
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7634
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Video, { kind: "youtube", url: fenceText() });
|
|
7635
7635
|
}
|
|
7636
7636
|
if (language === "reddit-embed") {
|
|
7637
7637
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: fenceText() });
|
|
@@ -7672,7 +7672,7 @@ function buildRichEmbedOverrides({
|
|
|
7672
7672
|
"data-figma-url": figmaUrl
|
|
7673
7673
|
} = divProps;
|
|
7674
7674
|
if (className === "youtube-embed" && videoId) {
|
|
7675
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7675
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Video, { kind: "youtube", url: videoId });
|
|
7676
7676
|
}
|
|
7677
7677
|
if (className === "reddit-embed" && postUrl) {
|
|
7678
7678
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: postUrl });
|
|
@@ -7757,14 +7757,14 @@ function buildRichEmbedOverrides({
|
|
|
7757
7757
|
// rich-markdown runtime (Supabase optimization on the hub, identity
|
|
7758
7758
|
// elsewhere). Guard against empty `![]()`.
|
|
7759
7759
|
img: ({ src, alt }) => {
|
|
7760
|
-
if (!
|
|
7760
|
+
if (!_chunkEKKR5ZFBcjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7761
7761
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownImage, { src: src.trim(), alt });
|
|
7762
7762
|
},
|
|
7763
7763
|
// Raw <video> tags in stored content (blog publisher injection) route
|
|
7764
7764
|
// to the <Video> SSOT (MuxPlayer) so HLS manifests play everywhere.
|
|
7765
7765
|
video: ({ src, poster, className }) => {
|
|
7766
|
-
if (!
|
|
7767
|
-
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,
|
|
7766
|
+
if (!_chunkEKKR5ZFBcjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7767
|
+
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, _chunkEKKR5ZFBcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
|
|
7768
7768
|
}
|
|
7769
7769
|
};
|
|
7770
7770
|
}
|
|
@@ -7947,13 +7947,13 @@ var RichMarkdownInner = ({
|
|
|
7947
7947
|
},
|
|
7948
7948
|
[resolveLinkEndpointUrl, resolveSource]
|
|
7949
7949
|
);
|
|
7950
|
-
const textSizes = _react.useMemo.call(void 0, () =>
|
|
7950
|
+
const textSizes = _react.useMemo.call(void 0, () => _chunkEKKR5ZFBcjs.resolveTextSizeConfig.call(void 0, "article"), []);
|
|
7951
7951
|
const componentOverrides = _react.useMemo.call(void 0,
|
|
7952
7952
|
() => buildRichEmbedOverrides({ ogApiBaseUrl, ogEndpointPath, textSizes }),
|
|
7953
7953
|
[ogApiBaseUrl, ogEndpointPath, textSizes]
|
|
7954
7954
|
);
|
|
7955
7955
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7956
|
-
|
|
7956
|
+
_chunkEKKR5ZFBcjs.MarkdownEngine,
|
|
7957
7957
|
{
|
|
7958
7958
|
content,
|
|
7959
7959
|
className,
|
|
@@ -7975,7 +7975,7 @@ var RichMarkdownRendererImpl = ({
|
|
|
7975
7975
|
className = "",
|
|
7976
7976
|
sectionIds,
|
|
7977
7977
|
onInternalLinkClick,
|
|
7978
|
-
brokenLinks =
|
|
7978
|
+
brokenLinks = _chunkEKKR5ZFBcjs.NO_BROKEN_LINKS,
|
|
7979
7979
|
currentPath,
|
|
7980
7980
|
resolveSource = "openframe-docs",
|
|
7981
7981
|
resolveLinkEndpointUrl = "/api/docs/resolve-link",
|
|
@@ -8548,7 +8548,7 @@ function FilterModal({
|
|
|
8548
8548
|
const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _161 => _161.defaultSort]), () => ( "desc"));
|
|
8549
8549
|
const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _162 => _162.sort]), () => ( dateDefaultSort)));
|
|
8550
8550
|
const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _163 => _163.range]));
|
|
8551
|
-
const { scrollRef, fadeTop, fadeBottom, update: updateFade } =
|
|
8551
|
+
const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkEKKR5ZFBcjs.useScrollFade.call(void 0, );
|
|
8552
8552
|
const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
|
|
8553
8553
|
const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
|
|
8554
8554
|
_react.useEffect.call(void 0, () => {
|
|
@@ -8593,10 +8593,10 @@ function FilterModal({
|
|
|
8593
8593
|
const hasFilterGroups = filterGroups.length > 0;
|
|
8594
8594
|
const hasTagFilter = !!tagFilterKeys && tagFilterKeys.length > 0 && !!onTagsChange;
|
|
8595
8595
|
const isEmpty = !isLoading && !hasSort && !hasFilterGroups && !hasTagFilter && !dateFilter;
|
|
8596
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8597
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8596
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Modal, { isOpen, onClose, className: _chunkPRPZBXWZcjs.cn.call(void 0, "max-h-[90vh] max-w-none", className), children: [
|
|
8597
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalTitle, { children: title }) }),
|
|
8598
8598
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8599
|
-
|
|
8599
|
+
_chunkEKKR5ZFBcjs.ModalContent,
|
|
8600
8600
|
{
|
|
8601
8601
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
8602
8602
|
"flex min-h-0 flex-1 flex-col",
|
|
@@ -8688,12 +8688,12 @@ function FilterModal({
|
|
|
8688
8688
|
] })
|
|
8689
8689
|
}
|
|
8690
8690
|
),
|
|
8691
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8692
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8691
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
|
|
8692
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
|
|
8693
8693
|
] })
|
|
8694
8694
|
}
|
|
8695
8695
|
),
|
|
8696
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8696
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.ModalFooter, { children: [
|
|
8697
8697
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", className: "h-11 flex-1", onClick: handleReset, children: resetButtonText }),
|
|
8698
8698
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "accent", className: "h-11 flex-1", onClick: handleApply, children: applyButtonText })
|
|
8699
8699
|
] })
|
|
@@ -8737,9 +8737,9 @@ function actionToMenuItems(action, idx) {
|
|
|
8737
8737
|
function renderActionButton(action, opts = {}) {
|
|
8738
8738
|
const button = renderRawActionButton(action, opts);
|
|
8739
8739
|
if (!action.tooltip) return button;
|
|
8740
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8741
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8742
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8740
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Tooltip, { children: [
|
|
8741
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipTrigger, { asChild: true, children: button }),
|
|
8742
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipContent, { children: action.tooltip })
|
|
8743
8743
|
] }) });
|
|
8744
8744
|
}
|
|
8745
8745
|
function renderRawActionButton(action, opts = {}) {
|
|
@@ -8763,7 +8763,7 @@ function renderRawActionButton(action, opts = {}) {
|
|
|
8763
8763
|
}
|
|
8764
8764
|
if (action.submenu && action.submenu.length > 0) {
|
|
8765
8765
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8766
|
-
|
|
8766
|
+
_chunkEKKR5ZFBcjs.ActionsMenuDropdown,
|
|
8767
8767
|
{
|
|
8768
8768
|
groups: [{ items: action.submenu }],
|
|
8769
8769
|
customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -8898,10 +8898,10 @@ function IconButtonsVariant({
|
|
|
8898
8898
|
selector,
|
|
8899
8899
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8900
8900
|
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
|
|
8901
|
-
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8901
|
+
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ActionsMenuDropdown, { groups: menuActions })
|
|
8902
8902
|
] })
|
|
8903
8903
|
] }),
|
|
8904
|
-
/* @__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,
|
|
8904
|
+
/* @__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, _chunkEKKR5ZFBcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
|
|
8905
8905
|
] });
|
|
8906
8906
|
}
|
|
8907
8907
|
function PrimaryButtonsVariant({
|
|
@@ -8939,7 +8939,7 @@ function MenuPrimaryVariant({
|
|
|
8939
8939
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "hidden items-center md:flex", ACTIONS_GAP, className), children: [
|
|
8940
8940
|
selector,
|
|
8941
8941
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8942
|
-
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8942
|
+
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ActionsMenuDropdown, { groups: menuActions }),
|
|
8943
8943
|
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
|
|
8944
8944
|
] })
|
|
8945
8945
|
] }),
|
|
@@ -8947,7 +8947,7 @@ function MenuPrimaryVariant({
|
|
|
8947
8947
|
// The selector rides into the menu as its header row: on mobile the
|
|
8948
8948
|
// title row has no room for it, and hiding it entirely (what
|
|
8949
8949
|
// `icon-buttons` does) would leave no way to switch views at all.
|
|
8950
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8950
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ActionsMenuDropdown, { groups: mobileMenuGroups, header: selector })
|
|
8951
8951
|
) : null })
|
|
8952
8952
|
] });
|
|
8953
8953
|
}
|
|
@@ -9350,7 +9350,7 @@ function TitleBlock({
|
|
|
9350
9350
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
9351
9351
|
(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: [
|
|
9352
9352
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9353
|
-
|
|
9353
|
+
_chunkEKKR5ZFBcjs.FloatingTooltip,
|
|
9354
9354
|
{
|
|
9355
9355
|
content: title,
|
|
9356
9356
|
side: "bottom",
|
|
@@ -9367,12 +9367,12 @@ function TitleBlock({
|
|
|
9367
9367
|
}
|
|
9368
9368
|
),
|
|
9369
9369
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
9370
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9370
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.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 }) })),
|
|
9371
9371
|
hasSubtitleRow && /* The NBSP is a pure spacer, reached only in `'always'` mode: an
|
|
9372
9372
|
empty `p` collapses to zero height (its only content would be
|
|
9373
9373
|
collapsible whitespace), which is exactly the shift that mode
|
|
9374
9374
|
exists to prevent. Hidden from AT — it carries no meaning. */
|
|
9375
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9375
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9376
9376
|
"p",
|
|
9377
9377
|
{
|
|
9378
9378
|
ref: subtitleRef,
|
|
@@ -9383,7 +9383,7 @@ function TitleBlock({
|
|
|
9383
9383
|
) })
|
|
9384
9384
|
] })
|
|
9385
9385
|
] }) : title && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
|
|
9386
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9386
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.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 }) }),
|
|
9387
9387
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
9388
9388
|
] }) : (
|
|
9389
9389
|
/* This branch never had the single-line clamp, so text already
|
|
@@ -10997,7 +10997,7 @@ function extractSections(markdown, options = {}) {
|
|
|
10997
10997
|
if (heading.level > opts.maxLevel) continue;
|
|
10998
10998
|
let title = heading.text;
|
|
10999
10999
|
if (opts.stripFormattingMarkers) {
|
|
11000
|
-
title =
|
|
11000
|
+
title = _chunkEKKR5ZFBcjs.stripInlineMarkdown.call(void 0, title).trim();
|
|
11001
11001
|
}
|
|
11002
11002
|
const baseId = _chunkZI27ALYXcjs.slugifyHeadingBase.call(void 0, opts.removeEmojis ? _chunkZI27ALYXcjs.stripHeadingEmojis.call(void 0, title) : title);
|
|
11003
11003
|
const cleanId = baseId || `section-${sections.length + 1}`;
|
|
@@ -11489,7 +11489,7 @@ function DashboardInfoCard({
|
|
|
11489
11489
|
const asTag = percentageDisplay === "tag" || percentageDisplay === "auto" && (progressVariant === "warning" || progressVariant === "error");
|
|
11490
11490
|
if (asTag) {
|
|
11491
11491
|
const tagVariant = progressVariant === "warning" || progressVariant === "error" ? progressVariant : progressVariant === "success" ? "success" : "grey";
|
|
11492
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11492
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Tag, { variant: tagVariant, label: `${percentage}%` });
|
|
11493
11493
|
}
|
|
11494
11494
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: [
|
|
11495
11495
|
"(",
|
|
@@ -11543,7 +11543,7 @@ function DashboardInfoCard({
|
|
|
11543
11543
|
/* @__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 }),
|
|
11544
11544
|
subValue && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: subValue }),
|
|
11545
11545
|
renderPercentage(),
|
|
11546
|
-
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11546
|
+
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.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 }) }) })
|
|
11547
11547
|
] })
|
|
11548
11548
|
] }),
|
|
11549
11549
|
renderProgress()
|
|
@@ -11726,7 +11726,7 @@ function DeviceCard({
|
|
|
11726
11726
|
] }),
|
|
11727
11727
|
(statusTag || device.lastSeen) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-2", children: [
|
|
11728
11728
|
statusTag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11729
|
-
|
|
11729
|
+
_chunkEKKR5ZFBcjs.Tag,
|
|
11730
11730
|
{
|
|
11731
11731
|
variant: statusTag.variant,
|
|
11732
11732
|
icon: statusTag.icon,
|
|
@@ -11740,7 +11740,7 @@ function DeviceCard({
|
|
|
11740
11740
|
formatLastSeen(device.lastSeen)
|
|
11741
11741
|
] })
|
|
11742
11742
|
] }),
|
|
11743
|
-
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,
|
|
11743
|
+
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, _chunkEKKR5ZFBcjs.Tag, { variant: "outline", label: tag }, index)) })
|
|
11744
11744
|
]
|
|
11745
11745
|
}
|
|
11746
11746
|
);
|
|
@@ -11888,7 +11888,7 @@ function FeatureList({ items, className = "", iconBoxSize = 72 }) {
|
|
|
11888
11888
|
|
|
11889
11889
|
function SourceTooltip({ intro, sources, note, iconClassName, triggerAnchorProps }) {
|
|
11890
11890
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11891
|
-
|
|
11891
|
+
_chunkEKKR5ZFBcjs.FloatingTooltip,
|
|
11892
11892
|
{
|
|
11893
11893
|
as: "span",
|
|
11894
11894
|
side: "top",
|
|
@@ -12072,7 +12072,7 @@ function DropdownButton({
|
|
|
12072
12072
|
)
|
|
12073
12073
|
);
|
|
12074
12074
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12075
|
-
|
|
12075
|
+
_chunkEKKR5ZFBcjs.ActionsMenuDropdown,
|
|
12076
12076
|
{
|
|
12077
12077
|
groups: _nullishCoalesce(groups, () => ( [{ items: _nullishCoalesce(items, () => ( [])) }])),
|
|
12078
12078
|
open,
|
|
@@ -12310,7 +12310,7 @@ function ServiceCardRowItem({ row }) {
|
|
|
12310
12310
|
),
|
|
12311
12311
|
children: [
|
|
12312
12312
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12313
|
-
|
|
12313
|
+
_chunkEKKR5ZFBcjs.FloatingTooltip,
|
|
12314
12314
|
{
|
|
12315
12315
|
content: row.value,
|
|
12316
12316
|
side: "top",
|
|
@@ -12436,9 +12436,9 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
|
|
|
12436
12436
|
return next;
|
|
12437
12437
|
});
|
|
12438
12438
|
};
|
|
12439
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12439
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Tooltip, { open, onOpenChange: setOpen, children: [
|
|
12440
12440
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12441
|
-
|
|
12441
|
+
_chunkEKKR5ZFBcjs.TooltipTrigger,
|
|
12442
12442
|
{
|
|
12443
12443
|
asChild: true,
|
|
12444
12444
|
onPointerDown: (e) => {
|
|
@@ -12456,7 +12456,7 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
|
|
|
12456
12456
|
children
|
|
12457
12457
|
}
|
|
12458
12458
|
),
|
|
12459
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12459
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipContent, { side, className: "max-w-xs", children: content })
|
|
12460
12460
|
] }) });
|
|
12461
12461
|
}
|
|
12462
12462
|
|
|
@@ -13471,9 +13471,9 @@ function TruncatedHeaderCell({ value, width }) {
|
|
|
13471
13471
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
13472
13472
|
}
|
|
13473
13473
|
}, []);
|
|
13474
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13475
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13476
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13474
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
13475
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.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 }) }) }),
|
|
13476
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipContent, { side: "bottom", className: "max-w-xs break-words", children: value })
|
|
13477
13477
|
] }) });
|
|
13478
13478
|
}
|
|
13479
13479
|
|
|
@@ -13526,9 +13526,9 @@ function TruncatedCell({ value, className }) {
|
|
|
13526
13526
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
13527
13527
|
}
|
|
13528
13528
|
}, []);
|
|
13529
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13530
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13531
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13529
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
13530
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.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 }) }),
|
|
13531
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipContent, { side: "top", className: "max-w-xs break-words", children: value })
|
|
13532
13532
|
] }) });
|
|
13533
13533
|
}
|
|
13534
13534
|
|
|
@@ -14812,7 +14812,7 @@ function SearchInput({
|
|
|
14812
14812
|
/* @__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, {}) }),
|
|
14813
14813
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
|
|
14814
14814
|
visibleChips.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14815
|
-
|
|
14815
|
+
_chunkEKKR5ZFBcjs.Tag,
|
|
14816
14816
|
{
|
|
14817
14817
|
variant: chipVariantToTagVariant(chip.variant),
|
|
14818
14818
|
label: chip.label,
|
|
@@ -14926,7 +14926,7 @@ function SearchInput({
|
|
|
14926
14926
|
}
|
|
14927
14927
|
),
|
|
14928
14928
|
/* @__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,
|
|
14929
|
-
|
|
14929
|
+
_chunkEKKR5ZFBcjs.Tag,
|
|
14930
14930
|
{
|
|
14931
14931
|
variant: chipVariantToTagVariant(chip.variant),
|
|
14932
14932
|
label: chip.label,
|
|
@@ -15139,7 +15139,7 @@ function TagSearchInput({
|
|
|
15139
15139
|
/* @__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" }) }),
|
|
15140
15140
|
/* @__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: [
|
|
15141
15141
|
visibleTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15142
|
-
|
|
15142
|
+
_chunkEKKR5ZFBcjs.Tag,
|
|
15143
15143
|
{
|
|
15144
15144
|
variant: "outline",
|
|
15145
15145
|
label: renderTag ? renderTag(tag) : tag.label,
|
|
@@ -15227,7 +15227,7 @@ function TagSearchInput({
|
|
|
15227
15227
|
"aria-hidden": "true",
|
|
15228
15228
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
15229
15229
|
children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15230
|
-
|
|
15230
|
+
_chunkEKKR5ZFBcjs.Tag,
|
|
15231
15231
|
{
|
|
15232
15232
|
variant: "outline",
|
|
15233
15233
|
label: renderTag ? renderTag(tag) : tag.label,
|
|
@@ -16116,20 +16116,20 @@ function ColorPresetSelect({
|
|
|
16116
16116
|
...presets.map((p) => ({
|
|
16117
16117
|
id: p.key,
|
|
16118
16118
|
label: p.label,
|
|
16119
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16119
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ColorSwatch, { color: p.color }),
|
|
16120
16120
|
onClick: () => onChange({ color: p.color, preset: p.key })
|
|
16121
16121
|
})),
|
|
16122
16122
|
{
|
|
16123
16123
|
id: CUSTOM_PRESET_KEY,
|
|
16124
16124
|
label: "Custom",
|
|
16125
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16125
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ColorSwatch, { color: isCustom ? value : DEFAULT_CUSTOM_STATUS_COLOR }),
|
|
16126
16126
|
onClick: () => onChange({ color: value, preset: void 0 })
|
|
16127
16127
|
}
|
|
16128
16128
|
]
|
|
16129
16129
|
}
|
|
16130
16130
|
];
|
|
16131
16131
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16132
|
-
|
|
16132
|
+
_chunkEKKR5ZFBcjs.ActionsMenuDropdown,
|
|
16133
16133
|
{
|
|
16134
16134
|
groups,
|
|
16135
16135
|
align: "start",
|
|
@@ -16139,7 +16139,7 @@ function ColorPresetSelect({
|
|
|
16139
16139
|
{
|
|
16140
16140
|
disabled,
|
|
16141
16141
|
"aria-label": `Color: ${displayLabel}`,
|
|
16142
|
-
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16142
|
+
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ColorSwatch, { color: displayColor }),
|
|
16143
16143
|
selectedLabel: displayLabel,
|
|
16144
16144
|
endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
|
|
16145
16145
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
|
|
@@ -16160,7 +16160,7 @@ function HexInputs({ value, onChange }) {
|
|
|
16160
16160
|
}
|
|
16161
16161
|
const commit = () => {
|
|
16162
16162
|
const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
|
|
16163
|
-
if (
|
|
16163
|
+
if (_chunkEKKR5ZFBcjs.HEX_PATTERN.test(candidate)) onChange(candidate);
|
|
16164
16164
|
else setDraft(value);
|
|
16165
16165
|
};
|
|
16166
16166
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -16224,12 +16224,12 @@ function ChannelInput({
|
|
|
16224
16224
|
);
|
|
16225
16225
|
}
|
|
16226
16226
|
function RgbInputs({ value, onChange }) {
|
|
16227
|
-
const rgb = _nullishCoalesce(
|
|
16227
|
+
const rgb = _nullishCoalesce(_chunkEKKR5ZFBcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
|
|
16228
16228
|
const update = (next) => {
|
|
16229
16229
|
const r = _nullishCoalesce(next.r, () => ( rgb.r));
|
|
16230
16230
|
const g = _nullishCoalesce(next.g, () => ( rgb.g));
|
|
16231
16231
|
const b = _nullishCoalesce(next.b, () => ( rgb.b));
|
|
16232
|
-
onChange(
|
|
16232
|
+
onChange(_chunkEKKR5ZFBcjs.rgbToHex.call(void 0, r, g, b));
|
|
16233
16233
|
};
|
|
16234
16234
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16235
16235
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
|
|
@@ -16238,14 +16238,14 @@ function RgbInputs({ value, onChange }) {
|
|
|
16238
16238
|
] });
|
|
16239
16239
|
}
|
|
16240
16240
|
function HslInputs({ value, onChange }) {
|
|
16241
|
-
const rgb = _nullishCoalesce(
|
|
16242
|
-
const hsl =
|
|
16241
|
+
const rgb = _nullishCoalesce(_chunkEKKR5ZFBcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
|
|
16242
|
+
const hsl = _chunkEKKR5ZFBcjs.rgbToHsl.call(void 0, rgb.r, rgb.g, rgb.b);
|
|
16243
16243
|
const update = (next) => {
|
|
16244
16244
|
const h = _nullishCoalesce(next.h, () => ( hsl.h));
|
|
16245
16245
|
const s = _nullishCoalesce(next.s, () => ( hsl.s));
|
|
16246
16246
|
const l = _nullishCoalesce(next.l, () => ( hsl.l));
|
|
16247
|
-
const out =
|
|
16248
|
-
onChange(
|
|
16247
|
+
const out = _chunkEKKR5ZFBcjs.hslToRgb.call(void 0, h, s, l);
|
|
16248
|
+
onChange(_chunkEKKR5ZFBcjs.rgbToHex.call(void 0, out.r, out.g, out.b));
|
|
16249
16249
|
};
|
|
16250
16250
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16251
16251
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
|
|
@@ -16271,7 +16271,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16271
16271
|
{
|
|
16272
16272
|
disabled,
|
|
16273
16273
|
"aria-label": "Pick custom color",
|
|
16274
|
-
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16274
|
+
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ColorSwatch, { color: value }),
|
|
16275
16275
|
selectedLabel: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase", children: value }),
|
|
16276
16276
|
endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
|
|
16277
16277
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
|
|
@@ -16287,7 +16287,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16287
16287
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactcolorful.HexColorPicker, { color: value, onChange }),
|
|
16288
16288
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
16289
16289
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16290
|
-
|
|
16290
|
+
_chunkEKKR5ZFBcjs.ActionsMenuDropdown,
|
|
16291
16291
|
{
|
|
16292
16292
|
groups: formatGroups,
|
|
16293
16293
|
align: "start",
|
|
@@ -16344,7 +16344,7 @@ function TicketStatusConfigRow({
|
|
|
16344
16344
|
const previewVariant = _nullishCoalesce(systemTagVariant, () => ( (isSystem ? void 0 : "primary")));
|
|
16345
16345
|
const fieldRowOffset = "mt-[calc(var(--font-line-space-h4-body)+0.25rem)]";
|
|
16346
16346
|
const chip = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16347
|
-
|
|
16347
|
+
_chunkEKKR5ZFBcjs.TicketStatusTag,
|
|
16348
16348
|
{
|
|
16349
16349
|
status: statusKey,
|
|
16350
16350
|
label: name || " ",
|
|
@@ -16496,7 +16496,7 @@ function formatTestRunDuration(ms) {
|
|
|
16496
16496
|
var RESULT_COLUMN_MIN_WIDTH = 176;
|
|
16497
16497
|
var SKELETON_COLUMNS = 6;
|
|
16498
16498
|
function TestResultsSkeleton() {
|
|
16499
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16499
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
|
|
16500
16500
|
/* @__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}`)) }),
|
|
16501
16501
|
/* @__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}`)) }) })
|
|
16502
16502
|
] }) });
|
|
@@ -16531,7 +16531,7 @@ function TestResultsTable({ rows, loading }) {
|
|
|
16531
16531
|
if (loading) {
|
|
16532
16532
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TestResultsSkeleton, {});
|
|
16533
16533
|
}
|
|
16534
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16534
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.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: [
|
|
16535
16535
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Header, { className: "flex flex-col" }),
|
|
16536
16536
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Body, { loading: false })
|
|
16537
16537
|
] }) }) });
|
|
@@ -16591,7 +16591,7 @@ var TEST_RUN_STATUS_TAGS = {
|
|
|
16591
16591
|
function TestRunStatusStat({ status, className }) {
|
|
16592
16592
|
const tag = status === "idle" ? null : TEST_RUN_STATUS_TAGS[status];
|
|
16593
16593
|
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: [
|
|
16594
|
-
tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16594
|
+
tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.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: "-" }),
|
|
16595
16595
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: "Status" })
|
|
16596
16596
|
] });
|
|
16597
16597
|
}
|
|
@@ -16634,7 +16634,7 @@ function useTestRunState(campaign) {
|
|
|
16634
16634
|
const firstError = isFinished && campaign.errors.length > 0 ? campaign.errors[0].error : null;
|
|
16635
16635
|
const status = isActive ? "running" : hasRun && isFinished ? firstError ? "error" : "success" : "idle";
|
|
16636
16636
|
const showTiming = hasRun && campaign.startedAt !== null && (campaign.isRunning || isFinished);
|
|
16637
|
-
const startedLabel = showTiming && campaign.startedAt ?
|
|
16637
|
+
const startedLabel = showTiming && campaign.startedAt ? _chunkEKKR5ZFBcjs.formatTime.call(void 0, campaign.startedAt) : "00:00 PM";
|
|
16638
16638
|
const durationLabel = showTiming ? formatTestRunDuration(durationMs) : "00:00:00";
|
|
16639
16639
|
const displayRows = _react.useMemo.call(void 0,
|
|
16640
16640
|
() => campaign.results.map(
|
|
@@ -16972,7 +16972,7 @@ function TicketInfoSection({
|
|
|
16972
16972
|
/* @__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]) }),
|
|
16973
16973
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-4", children: [
|
|
16974
16974
|
(status || statusLabel) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16975
|
-
|
|
16975
|
+
_chunkEKKR5ZFBcjs.TicketStatusTag,
|
|
16976
16976
|
{
|
|
16977
16977
|
status: _nullishCoalesce(status, () => ( "")),
|
|
16978
16978
|
label: statusLabel,
|
|
@@ -17011,9 +17011,9 @@ function TicketInfoSection({
|
|
|
17011
17011
|
expanded && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
17012
17012
|
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" }) }),
|
|
17013
17013
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
|
|
17014
|
-
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17014
|
+
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.SimpleMarkdownRenderer, { content: description }),
|
|
17015
17015
|
attachments && attachments.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketAttachmentsList, { attachments }) }),
|
|
17016
|
-
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,
|
|
17016
|
+
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, _chunkEKKR5ZFBcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
|
|
17017
17017
|
(notes || onAddNote) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Notes", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17018
17018
|
TicketNotesSection,
|
|
17019
17019
|
{
|
|
@@ -17036,7 +17036,7 @@ function renderTicketStatusOption(option, isSelected) {
|
|
|
17036
17036
|
const { label, color } = option;
|
|
17037
17037
|
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: [
|
|
17038
17038
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
|
|
17039
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17039
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ColorSwatch, { color }),
|
|
17040
17040
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TruncateText, { className: "text-inherit", children: label }) })
|
|
17041
17041
|
] }),
|
|
17042
17042
|
isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
|
|
@@ -17081,9 +17081,9 @@ function TakeOverTicketModal({
|
|
|
17081
17081
|
if (!selectedStatusId || !assigneeId || isPending) return;
|
|
17082
17082
|
onConfirm({ statusId: selectedStatusId, assigneeId });
|
|
17083
17083
|
};
|
|
17084
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17084
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17085
17085
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17086
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17086
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalTitle, { children: "Take Over Ticket" }) }),
|
|
17087
17087
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
17088
17088
|
"The ticket ",
|
|
17089
17089
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
|
|
@@ -17098,7 +17098,7 @@ function TakeOverTicketModal({
|
|
|
17098
17098
|
value: selectedStatusId,
|
|
17099
17099
|
onChange: setStatusId,
|
|
17100
17100
|
placeholder: "Select Status",
|
|
17101
|
-
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17101
|
+
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
|
|
17102
17102
|
renderOption: renderTicketStatusOption
|
|
17103
17103
|
}
|
|
17104
17104
|
) }),
|
|
@@ -17125,7 +17125,7 @@ function TakeOverTicketModal({
|
|
|
17125
17125
|
}
|
|
17126
17126
|
) })
|
|
17127
17127
|
] }),
|
|
17128
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17128
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.ModalFooter, { children: [
|
|
17129
17129
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
17130
17130
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
17131
17131
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -17184,9 +17184,9 @@ function ReopenTicketModal({
|
|
|
17184
17184
|
reason: trimmedReason ? trimmedReason.slice(0, REASON_MAX_LENGTH) : null
|
|
17185
17185
|
});
|
|
17186
17186
|
};
|
|
17187
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17187
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17188
17188
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17189
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17189
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalTitle, { children: "Reopen Ticket" }) }),
|
|
17190
17190
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
17191
17191
|
"The ticket ",
|
|
17192
17192
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
|
|
@@ -17201,7 +17201,7 @@ function ReopenTicketModal({
|
|
|
17201
17201
|
value: selectedStatusId,
|
|
17202
17202
|
onChange: setStatusId,
|
|
17203
17203
|
placeholder: "Select Status",
|
|
17204
|
-
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17204
|
+
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
|
|
17205
17205
|
renderOption: renderTicketStatusOption
|
|
17206
17206
|
}
|
|
17207
17207
|
) }),
|
|
@@ -17239,7 +17239,7 @@ function ReopenTicketModal({
|
|
|
17239
17239
|
disabled: isPending
|
|
17240
17240
|
}
|
|
17241
17241
|
) }),
|
|
17242
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17242
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.ModalFooter, { children: [
|
|
17243
17243
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
17244
17244
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
17245
17245
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -17287,9 +17287,9 @@ function ReopenTicketRequestModal({
|
|
|
17287
17287
|
...showHandoffOption ? { handoffToTechnician: handoff } : {}
|
|
17288
17288
|
});
|
|
17289
17289
|
};
|
|
17290
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17290
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17291
17291
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17292
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17292
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ModalTitle, { children: "Reopen Ticket" }) }),
|
|
17293
17293
|
/* @__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." }),
|
|
17294
17294
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17295
17295
|
Textarea,
|
|
@@ -17313,7 +17313,7 @@ function ReopenTicketRequestModal({
|
|
|
17313
17313
|
disabled: isPending
|
|
17314
17314
|
}
|
|
17315
17315
|
),
|
|
17316
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17316
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.ModalFooter, { children: [
|
|
17317
17317
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1", children: "Cancel" }),
|
|
17318
17318
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "accent", onClick: handleConfirm, loading: isPending, className: "flex-1", children: "Reopen Ticket" })
|
|
17319
17319
|
] })
|
|
@@ -19432,7 +19432,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
|
|
|
19432
19432
|
sandbox: "allow-scripts allow-same-origin allow-popups allow-presentation",
|
|
19433
19433
|
title: config.title,
|
|
19434
19434
|
loading: "eager",
|
|
19435
|
-
...
|
|
19435
|
+
..._chunkEKKR5ZFBcjs.fetchPriorityProp.call(void 0, "high")
|
|
19436
19436
|
},
|
|
19437
19437
|
iframeKey
|
|
19438
19438
|
),
|
|
@@ -20282,7 +20282,7 @@ function MediaGalleryManager({
|
|
|
20282
20282
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video overflow-hidden rounded-lg bg-ods-bg", children: _chunkEMF64FWAcjs.isVideoMedia.call(void 0, mediaItem) || mediaItem.media_type === "demo" ? (
|
|
20283
20283
|
// <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
|
|
20284
20284
|
// fit="cover" crops to the aspect-video cell.
|
|
20285
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20285
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Video, { kind: "file", url: mediaItem.media_url, fit: "cover", className: "h-full w-full" })
|
|
20286
20286
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20287
20287
|
_chunkWLSFBRT5cjs.next_image_default,
|
|
20288
20288
|
{
|
|
@@ -22533,9 +22533,9 @@ function PushButtonSelector({
|
|
|
22533
22533
|
option.id
|
|
22534
22534
|
);
|
|
22535
22535
|
if (option.disabled && option.disabledReason) {
|
|
22536
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
22537
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22538
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22536
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Tooltip, { children: [
|
|
22537
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipTrigger, { asChild: true, children: optionEl }),
|
|
22538
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
|
|
22539
22539
|
] }, option.id);
|
|
22540
22540
|
}
|
|
22541
22541
|
return optionEl;
|
|
@@ -22580,7 +22580,7 @@ function PushButtonSelector({
|
|
|
22580
22580
|
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
|
|
22581
22581
|
] }) : null
|
|
22582
22582
|
] });
|
|
22583
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22583
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 ${className}`, children: [
|
|
22584
22584
|
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
|
|
22585
22585
|
searchInput,
|
|
22586
22586
|
lazyLoad ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -22753,7 +22753,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
22753
22753
|
item.media_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video bg-ods-bg", children: _chunkEMF64FWAcjs.isVideoMedia.call(void 0, item) || item.media_type === "demo" ? (
|
|
22754
22754
|
// <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
|
|
22755
22755
|
// fit="cover" crops to the aspect-video cell.
|
|
22756
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22756
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
|
|
22757
22757
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22758
22758
|
_chunkWLSFBRT5cjs.next_image_default,
|
|
22759
22759
|
{
|
|
@@ -22886,7 +22886,7 @@ var SelectButton = _react2.default.forwardRef(
|
|
|
22886
22886
|
}
|
|
22887
22887
|
)
|
|
22888
22888
|
] }),
|
|
22889
|
-
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22889
|
+
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Tag, { variant: tagVariant, className: "shrink-0", label: tag }),
|
|
22890
22890
|
selected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckCircleIcon, { className: "size-4 shrink-0 text-ods-accent md:size-6" })
|
|
22891
22891
|
]
|
|
22892
22892
|
}
|
|
@@ -23672,7 +23672,7 @@ function VideoBitesDisplay({
|
|
|
23672
23672
|
filterPublished = true,
|
|
23673
23673
|
showTitle = true
|
|
23674
23674
|
}) {
|
|
23675
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23675
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
|
|
23676
23676
|
}
|
|
23677
23677
|
|
|
23678
23678
|
// src/components/features/walkthrough-video.tsx
|
|
@@ -23741,7 +23741,7 @@ function WalkthroughVideo({
|
|
|
23741
23741
|
if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
|
|
23742
23742
|
};
|
|
23743
23743
|
}, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId]);
|
|
23744
|
-
const hydrated =
|
|
23744
|
+
const hydrated = _chunkEKKR5ZFBcjs.useIsHydrated.call(void 0, );
|
|
23745
23745
|
const previewSuppressed = _react.useMemo.call(void 0, () => {
|
|
23746
23746
|
if (!hydrated) return false;
|
|
23747
23747
|
try {
|
|
@@ -24138,7 +24138,7 @@ function WalkthroughVideo({
|
|
|
24138
24138
|
},
|
|
24139
24139
|
children: [
|
|
24140
24140
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24141
|
-
|
|
24141
|
+
_chunkEKKR5ZFBcjs.VideoHoverPreviewSurface,
|
|
24142
24142
|
{
|
|
24143
24143
|
url: video.mainVideoUrl || "",
|
|
24144
24144
|
posterUrl: video.posterUrl,
|
|
@@ -24161,7 +24161,7 @@ function WalkthroughVideo({
|
|
|
24161
24161
|
`card-${embedUrlKey}`
|
|
24162
24162
|
) }),
|
|
24163
24163
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24164
|
-
|
|
24164
|
+
_chunkEKKR5ZFBcjs.CardHitLayer,
|
|
24165
24165
|
{
|
|
24166
24166
|
label: video.title ? `${label}: ${video.title}` : label,
|
|
24167
24167
|
onPointerDown: pausePreviewNow,
|
|
@@ -24170,7 +24170,7 @@ function WalkthroughVideo({
|
|
|
24170
24170
|
}
|
|
24171
24171
|
),
|
|
24172
24172
|
/* @__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: [
|
|
24173
|
-
presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24173
|
+
presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.VideoPlayBadge, { size: "sm", className: "h-5 w-5 shrink-0" }),
|
|
24174
24174
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: summaryTitle || label })
|
|
24175
24175
|
] }),
|
|
24176
24176
|
showBigUnmute && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -24183,7 +24183,7 @@ function WalkthroughVideo({
|
|
|
24183
24183
|
onPointerDown: (e) => e.stopPropagation(),
|
|
24184
24184
|
onClick: onUnmuteOrPlay,
|
|
24185
24185
|
className: "absolute inset-0 z-30 m-auto hidden sm:inline-flex",
|
|
24186
|
-
children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24186
|
+
children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.VideoPlayBadge, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.VideoUnmuteGlyph, {})
|
|
24187
24187
|
}
|
|
24188
24188
|
),
|
|
24189
24189
|
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: [
|
|
@@ -24276,7 +24276,7 @@ function WalkthroughVideo({
|
|
|
24276
24276
|
children: [
|
|
24277
24277
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive2.Title, { className: "sr-only", children: summaryTitle || "Walkthrough video" }),
|
|
24278
24278
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24279
|
-
|
|
24279
|
+
_chunkEKKR5ZFBcjs.Video,
|
|
24280
24280
|
{
|
|
24281
24281
|
kind: video.youtubeUrl ? "youtube" : "file",
|
|
24282
24282
|
url: video.youtubeUrl || video.mainVideoUrl,
|
|
@@ -24327,7 +24327,7 @@ function InlineWalkthroughVideo(props) {
|
|
|
24327
24327
|
var _reactquery = require('@tanstack/react-query');
|
|
24328
24328
|
function useWalkthroughVideo(opts) {
|
|
24329
24329
|
const { endpoint, initialData, enabled = true, transformCaptionsUrl } = opts;
|
|
24330
|
-
const captions =
|
|
24330
|
+
const captions = _chunkEKKR5ZFBcjs.useCaptions.call(void 0, );
|
|
24331
24331
|
const query = _reactquery.useQuery.call(void 0, {
|
|
24332
24332
|
queryKey: ["walkthrough-video", endpoint],
|
|
24333
24333
|
enabled,
|
|
@@ -24525,7 +24525,7 @@ function VideoSourceSelector({
|
|
|
24525
24525
|
}
|
|
24526
24526
|
function DefaultVideoPreview({ videoUrl, onDelete, disabled }) {
|
|
24527
24527
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border", children: [
|
|
24528
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24528
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Video, { kind: "file", url: videoUrl }) }),
|
|
24529
24529
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24530
24530
|
"button",
|
|
24531
24531
|
{
|
|
@@ -25049,7 +25049,7 @@ function HighlightVideoSection({
|
|
|
25049
25049
|
// Default simple preview — the <Video> SSOT (MuxPlayer) plays
|
|
25050
25050
|
// MP4 and Mux HLS alike; aspect-video box reserves the height.
|
|
25051
25051
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border bg-black", children: [
|
|
25052
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25052
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
|
|
25053
25053
|
onDeleteHighlight && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
25054
25054
|
"button",
|
|
25055
25055
|
{
|
|
@@ -25785,7 +25785,7 @@ var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
|
|
|
25785
25785
|
] });
|
|
25786
25786
|
};
|
|
25787
25787
|
var CategorySection = ({ category, editMode, isExpanded, bulkLevel, onToggle, onBulkLevelChange, onPolicyPermissionChange }) => {
|
|
25788
|
-
const { innerRef, containerStyle } =
|
|
25788
|
+
const { innerRef, containerStyle } = _chunkEKKR5ZFBcjs.useCollapsible.call(void 0, { expanded: isExpanded, durationMs: 300 });
|
|
25789
25789
|
const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
|
|
25790
25790
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
25791
25791
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -25953,7 +25953,7 @@ function WaitlistForm({
|
|
|
25953
25953
|
const { toast } = _chunkLEISUAHFcjs.useToast.call(void 0, );
|
|
25954
25954
|
const { honeypotInputProps, getSignals, resetSignals } = _chunkLEISUAHFcjs.useHumanitySignals.call(void 0, );
|
|
25955
25955
|
const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
|
|
25956
|
-
const isClient =
|
|
25956
|
+
const isClient = _chunkEKKR5ZFBcjs.useIsHydrated.call(void 0, );
|
|
25957
25957
|
const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
|
|
25958
25958
|
const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
|
|
25959
25959
|
const isMailDomainGeneric = hasGenericEmailDomain(email);
|
|
@@ -26757,7 +26757,7 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
26757
26757
|
"data-state": open ? "open" : "closed",
|
|
26758
26758
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
26759
26759
|
"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",
|
|
26760
|
-
|
|
26760
|
+
_chunkEKKR5ZFBcjs.OVERLAY_BACKDROP_CLASS,
|
|
26761
26761
|
// Persist mode only: hold the fade-out's final (transparent) frame
|
|
26762
26762
|
// so the backdrop doesn't snap back to opacity 1 and dim the whole
|
|
26763
26763
|
// content area while the drawer is "closed" (see PERSIST_CLOSED_HOLD).
|
|
@@ -26833,11 +26833,11 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
26833
26833
|
}
|
|
26834
26834
|
);
|
|
26835
26835
|
AppLayoutDrawerContent.displayName = "AppLayoutDrawerContent";
|
|
26836
|
-
var AppLayoutDrawerHeader =
|
|
26837
|
-
var AppLayoutDrawerTitle =
|
|
26838
|
-
var AppLayoutDrawerDescription =
|
|
26839
|
-
var AppLayoutDrawerBody =
|
|
26840
|
-
var AppLayoutDrawerFooter =
|
|
26836
|
+
var AppLayoutDrawerHeader = _chunkEKKR5ZFBcjs.DrawerHeader;
|
|
26837
|
+
var AppLayoutDrawerTitle = _chunkEKKR5ZFBcjs.DrawerTitle;
|
|
26838
|
+
var AppLayoutDrawerDescription = _chunkEKKR5ZFBcjs.DrawerDescription;
|
|
26839
|
+
var AppLayoutDrawerBody = _chunkEKKR5ZFBcjs.DrawerBody;
|
|
26840
|
+
var AppLayoutDrawerFooter = _chunkEKKR5ZFBcjs.DrawerFooter;
|
|
26841
26841
|
|
|
26842
26842
|
// src/components/features/notifications/notification-tile.tsx
|
|
26843
26843
|
|
|
@@ -26925,7 +26925,7 @@ function NotificationTile({
|
|
|
26925
26925
|
}
|
|
26926
26926
|
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkLEISUAHFcjs.dotColorByVariant[accentVariant]) }))) }),
|
|
26927
26927
|
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" }),
|
|
26928
|
-
!isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children:
|
|
26928
|
+
!isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkEKKR5ZFBcjs.formatTicketRelativeTime.call(void 0, createdAtIso) }) : null,
|
|
26929
26929
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "relative size-4 shrink-0", children: [
|
|
26930
26930
|
{
|
|
26931
26931
|
active: isLive,
|
|
@@ -27022,7 +27022,7 @@ function NotificationDrawer({
|
|
|
27022
27022
|
const unreadNotifications = notifications.filter((n) => !n.read);
|
|
27023
27023
|
const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
27024
27024
|
/* @__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,
|
|
27025
|
-
|
|
27025
|
+
_chunkEKKR5ZFBcjs.DrawerTitle,
|
|
27026
27026
|
{
|
|
27027
27027
|
hideClose: true,
|
|
27028
27028
|
className: "truncate",
|
|
@@ -27081,8 +27081,8 @@ function NotificationDrawer({
|
|
|
27081
27081
|
}
|
|
27082
27082
|
) });
|
|
27083
27083
|
}
|
|
27084
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27085
|
-
|
|
27084
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Drawer, { open: isOpen, onOpenChange: (v) => v ? open() : close(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27085
|
+
_chunkEKKR5ZFBcjs.DrawerContent,
|
|
27086
27086
|
{
|
|
27087
27087
|
side: "right",
|
|
27088
27088
|
"aria-describedby": void 0,
|
|
@@ -27357,13 +27357,13 @@ function getApprovalMeta(notification) {
|
|
|
27357
27357
|
function resolutionToStatus(resolution) {
|
|
27358
27358
|
switch (typeof resolution === "string" ? resolution.toUpperCase() : void 0) {
|
|
27359
27359
|
case "APPROVED":
|
|
27360
|
-
return
|
|
27360
|
+
return _chunkEKKR5ZFBcjs.APPROVAL_STATUS.APPROVED;
|
|
27361
27361
|
case "REJECTED":
|
|
27362
|
-
return
|
|
27362
|
+
return _chunkEKKR5ZFBcjs.APPROVAL_STATUS.REJECTED;
|
|
27363
27363
|
case "CANCELLED":
|
|
27364
|
-
return
|
|
27364
|
+
return _chunkEKKR5ZFBcjs.APPROVAL_STATUS.CANCELLED;
|
|
27365
27365
|
default:
|
|
27366
|
-
return
|
|
27366
|
+
return _chunkEKKR5ZFBcjs.APPROVAL_STATUS.PENDING;
|
|
27367
27367
|
}
|
|
27368
27368
|
}
|
|
27369
27369
|
function approvalMetaToBatchData(approval) {
|
|
@@ -27403,7 +27403,7 @@ function ApprovalRequestNotificationTile({
|
|
|
27403
27403
|
const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _581 => _581.resolution]));
|
|
27404
27404
|
const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
|
|
27405
27405
|
const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
|
|
27406
|
-
const { innerRef, containerStyle } =
|
|
27406
|
+
const { innerRef, containerStyle } = _chunkEKKR5ZFBcjs.useCollapsible.call(void 0, { expanded });
|
|
27407
27407
|
if (!approval || !batchData) return null;
|
|
27408
27408
|
const tileNotification = {
|
|
27409
27409
|
...notification,
|
|
@@ -27456,7 +27456,7 @@ function ApprovalRequestNotificationTile({
|
|
|
27456
27456
|
}
|
|
27457
27457
|
)
|
|
27458
27458
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
27459
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27459
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ApprovalStatusTag, { status }),
|
|
27460
27460
|
approval.resolvedByName ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: [
|
|
27461
27461
|
"by ",
|
|
27462
27462
|
approval.resolvedByName
|
|
@@ -27474,12 +27474,12 @@ function ApprovalRequestNotificationTile({
|
|
|
27474
27474
|
"aria-expanded": expanded,
|
|
27475
27475
|
"aria-label": toggleLabel,
|
|
27476
27476
|
className: "ml-auto w-6 shrink-0 px-0 md:w-8",
|
|
27477
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27477
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.ExpandChevron, { expanded })
|
|
27478
27478
|
}
|
|
27479
27479
|
)
|
|
27480
27480
|
] }),
|
|
27481
27481
|
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,
|
|
27482
|
-
|
|
27482
|
+
_chunkEKKR5ZFBcjs.ApprovalBatchMessage,
|
|
27483
27483
|
{
|
|
27484
27484
|
data: batchData,
|
|
27485
27485
|
showExecutionStatus: false,
|
|
@@ -27810,7 +27810,7 @@ var STATUS_TAG_SKIN = "gap-[var(--spacing-system-xs)] font-mono font-medium uppe
|
|
|
27810
27810
|
function StatusTag({ status }) {
|
|
27811
27811
|
if (status === "tracking") {
|
|
27812
27812
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27813
|
-
|
|
27813
|
+
_chunkEKKR5ZFBcjs.Tag,
|
|
27814
27814
|
{
|
|
27815
27815
|
variant: "success",
|
|
27816
27816
|
className: STATUS_TAG_SKIN,
|
|
@@ -27820,9 +27820,9 @@ function StatusTag({ status }) {
|
|
|
27820
27820
|
);
|
|
27821
27821
|
}
|
|
27822
27822
|
if (status === "paused") {
|
|
27823
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27823
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Tag, { variant: "warning", className: STATUS_TAG_SKIN, icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.PauseIcon, { className: "h-4 w-4" }), label: "Paused" });
|
|
27824
27824
|
}
|
|
27825
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27825
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Tag, { variant: "grey", className: STATUS_TAG_SKIN, label: "Ready to Track" });
|
|
27826
27826
|
}
|
|
27827
27827
|
function LastEntryRow({ entry, onClick }) {
|
|
27828
27828
|
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: [
|
|
@@ -27991,7 +27991,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
27991
27991
|
"data-state": isOpen ? "open" : "closed",
|
|
27992
27992
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
27993
27993
|
layoutContainer ? "absolute inset-0 z-[102]" : "fixed inset-0 z-[1299]",
|
|
27994
|
-
|
|
27994
|
+
_chunkEKKR5ZFBcjs.OVERLAY_BACKDROP_CLASS,
|
|
27995
27995
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
27996
27996
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0"
|
|
27997
27997
|
)
|
|
@@ -28145,7 +28145,7 @@ function BoardColumnHeader({
|
|
|
28145
28145
|
}) {
|
|
28146
28146
|
const count = _nullishCoalesce(column.total, () => ( column.tickets.length));
|
|
28147
28147
|
const tagStatus = _nullishCoalesce(column.statusKey, () => ( column.id));
|
|
28148
|
-
const useStatusVariant =
|
|
28148
|
+
const useStatusVariant = _chunkEKKR5ZFBcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
|
|
28149
28149
|
const actionClass = "h-8 w-8 p-0 md:h-8 md:w-8";
|
|
28150
28150
|
if (collapsed) {
|
|
28151
28151
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
@@ -28161,7 +28161,7 @@ function BoardColumnHeader({
|
|
|
28161
28161
|
}
|
|
28162
28162
|
),
|
|
28163
28163
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28164
|
-
|
|
28164
|
+
_chunkEKKR5ZFBcjs.TicketStatusTag,
|
|
28165
28165
|
{
|
|
28166
28166
|
status: tagStatus,
|
|
28167
28167
|
label: column.label,
|
|
@@ -28174,7 +28174,7 @@ function BoardColumnHeader({
|
|
|
28174
28174
|
}
|
|
28175
28175
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
28176
28176
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
28177
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28177
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
|
|
28178
28178
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h5", style: useStatusVariant ? void 0 : { color: column.color }, children: count })
|
|
28179
28179
|
] }),
|
|
28180
28180
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
@@ -28325,7 +28325,7 @@ function holdMoveDragEffect(element) {
|
|
|
28325
28325
|
|
|
28326
28326
|
function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
28327
28327
|
const [expanded, setExpanded] = _react.useState.call(void 0, false);
|
|
28328
|
-
const { innerRef, containerStyle } =
|
|
28328
|
+
const { innerRef, containerStyle } = _chunkEKKR5ZFBcjs.useCollapsible.call(void 0, { expanded });
|
|
28329
28329
|
const isAdmin = pendingApproval.approvalType === "ADMIN";
|
|
28330
28330
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
|
|
28331
28331
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -28354,7 +28354,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
|
28354
28354
|
}
|
|
28355
28355
|
),
|
|
28356
28356
|
/* @__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,
|
|
28357
|
-
|
|
28357
|
+
_chunkEKKR5ZFBcjs.ApprovalBatchMessage,
|
|
28358
28358
|
{
|
|
28359
28359
|
className: "mb-0",
|
|
28360
28360
|
data: {
|
|
@@ -28426,7 +28426,7 @@ var ACTIVITY_DEFAULT_LABEL = {
|
|
|
28426
28426
|
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";
|
|
28427
28427
|
function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
|
|
28428
28428
|
const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
|
|
28429
|
-
const newMessageTextColor = columnColor ?
|
|
28429
|
+
const newMessageTextColor = columnColor ? _chunkEKKR5ZFBcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
|
|
28430
28430
|
const showDeviceRow = !!(_optionalChain([ticket, 'access', _617 => _617.deviceHostnames, 'optionalAccess', _618 => _618.length]) || ticket.organizationName);
|
|
28431
28431
|
const deviceText = [_optionalChain([ticket, 'access', _619 => _619.deviceHostnames, 'optionalAccess', _620 => _620.join, 'call', _621 => _621(", ")]), ticket.organizationName].filter(Boolean).join(", ");
|
|
28432
28432
|
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _622 => _622.assignees, 'optionalAccess', _623 => _623.length]) || renderAssignSlot);
|
|
@@ -28465,8 +28465,8 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28465
28465
|
] })
|
|
28466
28466
|
] }) : null
|
|
28467
28467
|
] }) : null;
|
|
28468
|
-
const timestampLabel = ticket.createdAt ?
|
|
28469
|
-
const tooltipLabel = ticket.createdAt ?
|
|
28468
|
+
const timestampLabel = ticket.createdAt ? _chunkEKKR5ZFBcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
|
|
28469
|
+
const tooltipLabel = ticket.createdAt ? _chunkEKKR5ZFBcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
|
|
28470
28470
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
28471
28471
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
|
|
28472
28472
|
/* @__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: [
|
|
@@ -28479,9 +28479,9 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28479
28479
|
rightSection
|
|
28480
28480
|
] }),
|
|
28481
28481
|
_optionalChain([ticket, 'access', _626 => _626.tags, 'optionalAccess', _627 => _627.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
|
|
28482
|
-
timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28483
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28484
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28482
|
+
timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkEKKR5ZFBcjs.Tooltip, { children: [
|
|
28483
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
|
|
28484
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.TooltipContent, { children: tooltipLabel })
|
|
28485
28485
|
] }) }),
|
|
28486
28486
|
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: [
|
|
28487
28487
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.UserCheckIcon, { className: "size-4 shrink-0" }),
|
|
@@ -28501,7 +28501,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28501
28501
|
}
|
|
28502
28502
|
),
|
|
28503
28503
|
showNewMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28504
|
-
|
|
28504
|
+
_chunkEKKR5ZFBcjs.Tag,
|
|
28505
28505
|
{
|
|
28506
28506
|
label: "New Message",
|
|
28507
28507
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.MessagesIcon, { size: 16, color: newMessageTextColor }),
|
|
@@ -28716,8 +28716,8 @@ function TicketTagRow({ tags }) {
|
|
|
28716
28716
|
const visible = tags.slice(0, MAX_VISIBLE_TAGS);
|
|
28717
28717
|
const hidden = tags.length - visible.length;
|
|
28718
28718
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 flex-wrap items-start gap-[var(--spacing-system-xxs)] overflow-clip", children: [
|
|
28719
|
-
visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28720
|
-
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28719
|
+
visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Tag, { variant: "outline", label: tag }, tag)),
|
|
28720
|
+
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEKKR5ZFBcjs.Tag, { variant: "outline", label: `+${hidden}` })
|
|
28721
28721
|
] });
|
|
28722
28722
|
}
|
|
28723
28723
|
|
|
@@ -30377,4 +30377,4 @@ function SortableRow({
|
|
|
30377
30377
|
|
|
30378
30378
|
|
|
30379
30379
|
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.PasswordInput = PasswordInput; exports.AccountDetailsFields = AccountDetailsFields; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.LabeledDivider = LabeledDivider; 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; exports.LazyMount = LazyMount;
|
|
30380
|
-
//# sourceMappingURL=chunk-
|
|
30380
|
+
//# sourceMappingURL=chunk-UYHETUX3.cjs.map
|