@flamingo-stack/openframe-frontend-core 0.0.579 → 0.0.580-1958.5358.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/decode.d.ts.map +1 -1
- package/dist/chat-protocol/events.d.ts +1 -47
- package/dist/chat-protocol/events.d.ts.map +1 -1
- package/dist/chat-protocol/index.cjs +0 -51
- package/dist/chat-protocol/index.cjs.map +1 -1
- package/dist/chat-protocol/index.js +1 -48
- package/dist/chat-protocol/index.js.map +1 -1
- package/dist/chat-protocol/leading-frames.d.ts +3 -9
- package/dist/chat-protocol/leading-frames.d.ts.map +1 -1
- package/dist/chat-protocol/nats-decoder.d.ts +0 -41
- package/dist/chat-protocol/nats-decoder.d.ts.map +1 -1
- package/dist/{chunk-OGZAFM6M.cjs → chunk-26NL6WZU.cjs} +5 -5
- package/dist/{chunk-OGZAFM6M.cjs.map → chunk-26NL6WZU.cjs.map} +1 -1
- package/dist/{chunk-QCP2KV7P.js → chunk-4SYELUXP.js} +3 -3
- package/dist/{chunk-4HGRXFQP.cjs → chunk-6PLACYFA.cjs} +3 -3
- package/dist/{chunk-4HGRXFQP.cjs.map → chunk-6PLACYFA.cjs.map} +1 -1
- package/dist/{chunk-FEVLXRTC.cjs → chunk-7LGVUXWE.cjs} +344 -282
- package/dist/chunk-7LGVUXWE.cjs.map +1 -0
- package/dist/{chunk-AKPLEWMH.js → chunk-A4BZ2CP4.js} +2 -2
- package/dist/{chunk-HHJVIHVR.cjs → chunk-COSV5FC2.cjs} +69 -69
- package/dist/{chunk-HHJVIHVR.cjs.map → chunk-COSV5FC2.cjs.map} +1 -1
- package/dist/{chunk-4WSKSNXL.js → chunk-CX62MVCV.js} +6 -6
- package/dist/{chunk-O2FTVZOD.js → chunk-DZAPMQ6U.js} +3 -3
- package/dist/{chunk-YW4WBNYV.cjs → chunk-EXUKW6GT.cjs} +24 -24
- package/dist/{chunk-YW4WBNYV.cjs.map → chunk-EXUKW6GT.cjs.map} +1 -1
- package/dist/{chunk-PWOYEUIQ.js → chunk-FN4PUTHZ.js} +5 -5
- package/dist/{chunk-L2CF2QZW.js → chunk-JDP5BGVO.js} +5 -5
- package/dist/{chunk-5Y6TPFW7.js → chunk-JFVT6XRN.js} +5 -5
- package/dist/{chunk-BCJQ7CJE.cjs → chunk-JHLZTU7R.cjs} +9 -9
- package/dist/{chunk-BCJQ7CJE.cjs.map → chunk-JHLZTU7R.cjs.map} +1 -1
- package/dist/{chunk-D44S2QLI.js → chunk-OSIIXSYG.js} +3 -3
- package/dist/{chunk-DB3TV4CW.js → chunk-PGWXVNYS.js} +3 -3
- package/dist/{chunk-H54EPP3P.cjs → chunk-PP3LCLWI.cjs} +4 -4
- package/dist/{chunk-H54EPP3P.cjs.map → chunk-PP3LCLWI.cjs.map} +1 -1
- package/dist/{chunk-M5GWCMYE.cjs → chunk-QIDD3LTS.cjs} +32 -32
- package/dist/{chunk-M5GWCMYE.cjs.map → chunk-QIDD3LTS.cjs.map} +1 -1
- package/dist/{chunk-3AX3ZEY3.js → chunk-QZSNH7XU.js} +1317 -1480
- package/dist/chunk-QZSNH7XU.js.map +1 -0
- package/dist/{chunk-37XJYOAY.cjs → chunk-RF65N4QA.cjs} +10 -10
- package/dist/{chunk-37XJYOAY.cjs.map → chunk-RF65N4QA.cjs.map} +1 -1
- package/dist/{chunk-36TJYCF3.cjs → chunk-S5BS2CZA.cjs} +21 -21
- package/dist/{chunk-36TJYCF3.cjs.map → chunk-S5BS2CZA.cjs.map} +1 -1
- package/dist/{chunk-QGJYWLF4.js → chunk-SN6SL4HR.js} +2 -2
- package/dist/{chunk-4FJSN2XW.cjs → chunk-TDM5FQZG.cjs} +10 -10
- package/dist/{chunk-4FJSN2XW.cjs.map → chunk-TDM5FQZG.cjs.map} +1 -1
- package/dist/{chunk-HGA74X35.js → chunk-TXNAZKWW.js} +3 -3
- package/dist/{chunk-IFYQ7DHV.cjs → chunk-UNVW4BVF.cjs} +43 -43
- package/dist/{chunk-IFYQ7DHV.cjs.map → chunk-UNVW4BVF.cjs.map} +1 -1
- package/dist/{chunk-CP5EYMNL.js → chunk-V5RWTIRS.js} +202 -140
- package/dist/{chunk-CP5EYMNL.js.map → chunk-V5RWTIRS.js.map} +1 -1
- package/dist/{chunk-RKGOVTXZ.cjs → chunk-VYQNM75R.cjs} +167 -330
- package/dist/chunk-VYQNM75R.cjs.map +1 -0
- package/dist/{chunk-PMENIZXI.js → chunk-WEUWTEQL.js} +4 -4
- package/dist/{chunk-H4BPHGU5.js → chunk-WW435OOF.js} +2 -2
- package/dist/{chunk-4LZ7B5H5.cjs → chunk-YB75SLEH.cjs} +3 -3
- package/dist/{chunk-4LZ7B5H5.cjs.map → chunk-YB75SLEH.cjs.map} +1 -1
- package/dist/{chunk-A6C5HOD7.cjs → chunk-YLYU6DDT.cjs} +15 -15
- package/dist/{chunk-A6C5HOD7.cjs.map → chunk-YLYU6DDT.cjs.map} +1 -1
- package/dist/{chunk-BW4WDUSI.js → chunk-ZNCYSM6R.js} +2 -2
- package/dist/{chunk-NPVDKOGD.cjs → chunk-ZQ2RBAXO.cjs} +22 -22
- package/dist/{chunk-NPVDKOGD.cjs.map → chunk-ZQ2RBAXO.cjs.map} +1 -1
- 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/index.cjs +2 -10
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.d.ts +0 -1
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +1 -9
- package/dist/components/chat/stream/chat-stream-reducer.d.ts +0 -9
- package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -1
- package/dist/components/chat/stream/delta-batcher.d.ts +3 -3
- package/dist/components/chat/stream/delta-batcher.d.ts.map +1 -1
- package/dist/components/chat/stream/message-mutations.d.ts.map +1 -1
- package/dist/components/chat/types/component.types.d.ts +0 -6
- package/dist/components/chat/types/component.types.d.ts.map +1 -1
- package/dist/components/chat/types/message.types.d.ts +2 -30
- package/dist/components/chat/types/message.types.d.ts.map +1 -1
- package/dist/components/chat/types/network.types.d.ts +1 -3
- package/dist/components/chat/types/network.types.d.ts.map +1 -1
- package/dist/components/chat/types/processing.types.d.ts +1 -4
- package/dist/components/chat/types/processing.types.d.ts.map +1 -1
- package/dist/components/chat/utils/approval-display.d.ts +8 -36
- package/dist/components/chat/utils/approval-display.d.ts.map +1 -1
- package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
- package/dist/components/chat/utils/index.d.ts +1 -1
- package/dist/components/chat/utils/index.d.ts.map +1 -1
- package/dist/components/chat/utils/message-segment-accumulator.d.ts +4 -16
- package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/chat/utils/resolve-fetched-card-href.d.ts +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/features/push-button-selector.d.ts +29 -1
- package/dist/components/features/push-button-selector.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +121 -129
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +13 -21
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +21 -21
- package/dist/components/meeting-scheduler/index.js +2 -2
- package/dist/components/navigation/index.cjs +6 -6
- package/dist/components/navigation/index.js +5 -5
- package/dist/components/onboarding-guides/index.cjs +6 -6
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/index.cjs +3 -11
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +2 -10
- package/dist/index.cjs +7 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -14
- package/dist/index.js.map +1 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/chat-protocol/__tests__/__snapshots__/nats-decoder-golden.test.ts.snap +0 -80
- package/src/chat-protocol/__tests__/nats-decoder-golden.test.ts +1 -118
- package/src/chat-protocol/decode.ts +3 -4
- package/src/chat-protocol/events.ts +0 -51
- package/src/chat-protocol/leading-frames.ts +3 -9
- package/src/chat-protocol/nats-decoder.ts +1 -110
- package/src/components/chat/__tests__/chat-pending-turn.test.tsx +0 -19
- package/src/components/chat/chat-message-enhanced.tsx +1 -13
- package/src/components/chat/index.ts +0 -1
- package/src/components/chat/stream/__tests__/chat-stream-reducer.test.ts +0 -90
- package/src/components/chat/stream/chat-dialog-store.ts +1 -1
- package/src/components/chat/stream/chat-stream-reducer.ts +11 -49
- package/src/components/chat/stream/delta-batcher.ts +4 -9
- package/src/components/chat/stream/message-mutations.ts +0 -2
- package/src/components/chat/types/component.types.ts +0 -9
- package/src/components/chat/types/message.types.ts +0 -32
- package/src/components/chat/types/network.types.ts +1 -3
- package/src/components/chat/types/processing.types.ts +1 -4
- package/src/components/chat/utils/__tests__/process-historical-messages-approvals.test.ts +0 -93
- package/src/components/chat/utils/__tests__/process-historical-messages-golden.test.ts +1 -78
- package/src/components/chat/utils/approval-display.ts +8 -53
- package/src/components/chat/utils/extract-incomplete-message-state.ts +0 -1
- package/src/components/chat/utils/index.ts +1 -6
- package/src/components/chat/utils/message-segment-accumulator.ts +3 -37
- package/src/components/chat/utils/process-historical-messages.ts +7 -44
- package/src/components/chat/utils/resolve-fetched-card-href.ts +1 -1
- package/src/components/features/.push-button-selector.md +1 -1
- package/src/components/features/push-button-selector.tsx +130 -6
- package/src/stories/ChatMessageEnhanced.stories.tsx +3 -7
- package/dist/chunk-3AX3ZEY3.js.map +0 -1
- package/dist/chunk-FEVLXRTC.cjs.map +0 -1
- package/dist/chunk-RKGOVTXZ.cjs.map +0 -1
- package/dist/components/chat/guide-display.d.ts +0 -14
- package/dist/components/chat/guide-display.d.ts.map +0 -1
- package/src/components/chat/guide-display.tsx +0 -42
- /package/dist/{chunk-QCP2KV7P.js.map → chunk-4SYELUXP.js.map} +0 -0
- /package/dist/{chunk-AKPLEWMH.js.map → chunk-A4BZ2CP4.js.map} +0 -0
- /package/dist/{chunk-4WSKSNXL.js.map → chunk-CX62MVCV.js.map} +0 -0
- /package/dist/{chunk-O2FTVZOD.js.map → chunk-DZAPMQ6U.js.map} +0 -0
- /package/dist/{chunk-PWOYEUIQ.js.map → chunk-FN4PUTHZ.js.map} +0 -0
- /package/dist/{chunk-L2CF2QZW.js.map → chunk-JDP5BGVO.js.map} +0 -0
- /package/dist/{chunk-5Y6TPFW7.js.map → chunk-JFVT6XRN.js.map} +0 -0
- /package/dist/{chunk-D44S2QLI.js.map → chunk-OSIIXSYG.js.map} +0 -0
- /package/dist/{chunk-DB3TV4CW.js.map → chunk-PGWXVNYS.js.map} +0 -0
- /package/dist/{chunk-QGJYWLF4.js.map → chunk-SN6SL4HR.js.map} +0 -0
- /package/dist/{chunk-HGA74X35.js.map → chunk-TXNAZKWW.js.map} +0 -0
- /package/dist/{chunk-PMENIZXI.js.map → chunk-WEUWTEQL.js.map} +0 -0
- /package/dist/{chunk-H4BPHGU5.js.map → chunk-WW435OOF.js.map} +0 -0
- /package/dist/{chunk-BW4WDUSI.js.map → chunk-ZNCYSM6R.js.map} +0 -0
|
@@ -89,7 +89,7 @@ var _chunkIKDC3R7Vcjs = require('./chunk-IKDC3R7V.cjs');
|
|
|
89
89
|
|
|
90
90
|
|
|
91
91
|
|
|
92
|
-
var
|
|
92
|
+
var _chunkVYQNM75Rcjs = require('./chunk-VYQNM75R.cjs');
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
|
|
@@ -329,7 +329,7 @@ function ThemeProvider({ children, ...overrides }) {
|
|
|
329
329
|
var useTheme = _nextthemes.useTheme;
|
|
330
330
|
function useThemeToggle() {
|
|
331
331
|
const { resolvedTheme, theme, setTheme } = useTheme();
|
|
332
|
-
const mounted =
|
|
332
|
+
const mounted = _chunkVYQNM75Rcjs.useIsHydrated.call(void 0, );
|
|
333
333
|
const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
|
|
334
334
|
const setOdsTheme = _react.useCallback.call(void 0, (next) => setTheme(next), [setTheme]);
|
|
335
335
|
const toggle = _react.useCallback.call(void 0, () => setTheme(active === "dark" ? "light" : "dark"), [active, setTheme]);
|
|
@@ -606,7 +606,7 @@ function TruncateText({
|
|
|
606
606
|
const { ref, isTruncated } = _chunkZI27ALYXcjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
|
|
607
607
|
const clampClass = isMultiLine ? LINE_CLAMP_CLASS[lines] : "truncate block";
|
|
608
608
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
609
|
-
|
|
609
|
+
_chunkVYQNM75Rcjs.FloatingTooltip,
|
|
610
610
|
{
|
|
611
611
|
content: _nullishCoalesce(tooltip, () => ( children)),
|
|
612
612
|
side,
|
|
@@ -908,7 +908,7 @@ function AutocompleteInner(props, ref) {
|
|
|
908
908
|
),
|
|
909
909
|
/* @__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: [
|
|
910
910
|
multiple && visibleTags.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
911
|
-
|
|
911
|
+
_chunkVYQNM75Rcjs.Tag,
|
|
912
912
|
{
|
|
913
913
|
variant: "outline",
|
|
914
914
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -1114,7 +1114,7 @@ function AutocompleteInner(props, ref) {
|
|
|
1114
1114
|
"aria-hidden": "true",
|
|
1115
1115
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
1116
1116
|
children: selectedOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1117
|
-
|
|
1117
|
+
_chunkVYQNM75Rcjs.Tag,
|
|
1118
1118
|
{
|
|
1119
1119
|
variant: "outline",
|
|
1120
1120
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -2498,7 +2498,7 @@ function InfoHint({ children, label, side = "top", className }) {
|
|
|
2498
2498
|
const describedById = _react.useId.call(void 0, );
|
|
2499
2499
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "inline-flex shrink-0 items-center", className), children: [
|
|
2500
2500
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2501
|
-
|
|
2501
|
+
_chunkVYQNM75Rcjs.FloatingTooltip,
|
|
2502
2502
|
{
|
|
2503
2503
|
content: children,
|
|
2504
2504
|
side,
|
|
@@ -2592,7 +2592,7 @@ function Value2({ value, depth }) {
|
|
|
2592
2592
|
}
|
|
2593
2593
|
if (typeof value === "string") {
|
|
2594
2594
|
if (ISO_DATE.test(value)) {
|
|
2595
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children:
|
|
2595
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children: _chunkVYQNM75Rcjs.formatRelativeTime.call(void 0, value) });
|
|
2596
2596
|
}
|
|
2597
2597
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-pre-wrap text-ods-text-primary", children: value });
|
|
2598
2598
|
}
|
|
@@ -3224,7 +3224,7 @@ function RowValue({ value }) {
|
|
|
3224
3224
|
}
|
|
3225
3225
|
case "status": {
|
|
3226
3226
|
const { type: _type, ...props } = value;
|
|
3227
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3227
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TicketStatusTag, { ...props });
|
|
3228
3228
|
}
|
|
3229
3229
|
case "custom":
|
|
3230
3230
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: value.content });
|
|
@@ -4135,7 +4135,7 @@ function TagsManager({
|
|
|
4135
4135
|
}
|
|
4136
4136
|
),
|
|
4137
4137
|
selectedTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4138
|
-
|
|
4138
|
+
_chunkVYQNM75Rcjs.Tag,
|
|
4139
4139
|
{
|
|
4140
4140
|
label: tag.name,
|
|
4141
4141
|
variant: "outline",
|
|
@@ -4680,10 +4680,10 @@ function useConfirm() {
|
|
|
4680
4680
|
},
|
|
4681
4681
|
[]
|
|
4682
4682
|
);
|
|
4683
|
-
const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4684
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4685
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4686
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4683
|
+
const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen: open, onClose: () => decide(false), children: [
|
|
4684
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: pending.title }) }),
|
|
4685
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: pending.body }) }),
|
|
4686
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: [
|
|
4687
4687
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", onClick: () => decide(false), children: "Cancel" }),
|
|
4688
4688
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "destructive", onClick: () => decide(true), children: "Confirm" })
|
|
4689
4689
|
] })
|
|
@@ -4741,9 +4741,9 @@ function AdminFormModal({
|
|
|
4741
4741
|
body: "Your edits have not been saved. Close and discard them?"
|
|
4742
4742
|
});
|
|
4743
4743
|
if (!isOpen) return null;
|
|
4744
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4745
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4746
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4744
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen: true, onClose: guardedClose, size: effectiveSize, children: [
|
|
4745
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: [
|
|
4746
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: title }),
|
|
4747
4747
|
subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: subtitle })
|
|
4748
4748
|
] }),
|
|
4749
4749
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -4767,7 +4767,7 @@ function AdminFormModal({
|
|
|
4767
4767
|
// a shrink-to-fit flex item pinned to the left of a 1400px panel).
|
|
4768
4768
|
// The placeholder owns its own layout and mirrors the column count so
|
|
4769
4769
|
// the modal doesn't visibly re-flow when the entity lands.
|
|
4770
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4770
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalContent, { children: loadingContent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-busy": "true", children: loadingContent }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4771
4771
|
"div",
|
|
4772
4772
|
{
|
|
4773
4773
|
"aria-busy": "true",
|
|
@@ -4788,12 +4788,12 @@ function AdminFormModal({
|
|
|
4788
4788
|
]
|
|
4789
4789
|
}
|
|
4790
4790
|
) })
|
|
4791
|
-
) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4791
|
+
) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTwoColumn, { left: leftColumn, right: rightColumn }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalContent, { className: contentClassName, children }),
|
|
4792
4792
|
error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "alert", className: "shrink-0 text-ods-error text-h6", children: error })
|
|
4793
4793
|
]
|
|
4794
4794
|
}
|
|
4795
4795
|
),
|
|
4796
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4796
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-[var(--spacing-system-xsf)]", children: [
|
|
4797
4797
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: footerExtras }),
|
|
4798
4798
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
4799
4799
|
footerStatus,
|
|
@@ -6891,7 +6891,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarouselImpl({
|
|
|
6891
6891
|
};
|
|
6892
6892
|
const displayImageSrc = (url) => transformImageSrc ? transformImageSrc(url) : url;
|
|
6893
6893
|
const renderVideo = (item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6894
|
-
|
|
6894
|
+
_chunkVYQNM75Rcjs.Video,
|
|
6895
6895
|
{
|
|
6896
6896
|
url: item.src,
|
|
6897
6897
|
poster: item.poster ? displayImageSrc(item.poster) : void 0,
|
|
@@ -7615,7 +7615,7 @@ function buildRichEmbedOverrides({
|
|
|
7615
7615
|
ogEndpointPath,
|
|
7616
7616
|
textSizes
|
|
7617
7617
|
}) {
|
|
7618
|
-
const standard =
|
|
7618
|
+
const standard = _chunkVYQNM75Rcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
|
|
7619
7619
|
return {
|
|
7620
7620
|
// Fence-language embeds (```youtube-embed etc.); everything else
|
|
7621
7621
|
// (mermaid, highlighted blocks, inline code) falls through to `standard`.
|
|
@@ -7625,7 +7625,7 @@ function buildRichEmbedOverrides({
|
|
|
7625
7625
|
const language = match ? match[1] : "";
|
|
7626
7626
|
const fenceText = () => String(children).replace(/\n$/, "").trim();
|
|
7627
7627
|
if (language === "youtube-embed") {
|
|
7628
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7628
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "youtube", url: fenceText() });
|
|
7629
7629
|
}
|
|
7630
7630
|
if (language === "reddit-embed") {
|
|
7631
7631
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: fenceText() });
|
|
@@ -7666,7 +7666,7 @@ function buildRichEmbedOverrides({
|
|
|
7666
7666
|
"data-figma-url": figmaUrl
|
|
7667
7667
|
} = divProps;
|
|
7668
7668
|
if (className === "youtube-embed" && videoId) {
|
|
7669
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7669
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "youtube", url: videoId });
|
|
7670
7670
|
}
|
|
7671
7671
|
if (className === "reddit-embed" && postUrl) {
|
|
7672
7672
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: postUrl });
|
|
@@ -7751,14 +7751,14 @@ function buildRichEmbedOverrides({
|
|
|
7751
7751
|
// rich-markdown runtime (Supabase optimization on the hub, identity
|
|
7752
7752
|
// elsewhere). Guard against empty `![]()`.
|
|
7753
7753
|
img: ({ src, alt }) => {
|
|
7754
|
-
if (!
|
|
7754
|
+
if (!_chunkVYQNM75Rcjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7755
7755
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownImage, { src: src.trim(), alt });
|
|
7756
7756
|
},
|
|
7757
7757
|
// Raw <video> tags in stored content (blog publisher injection) route
|
|
7758
7758
|
// to the <Video> SSOT (MuxPlayer) so HLS manifests play everywhere.
|
|
7759
7759
|
video: ({ src, poster, className }) => {
|
|
7760
|
-
if (!
|
|
7761
|
-
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,
|
|
7760
|
+
if (!_chunkVYQNM75Rcjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7761
|
+
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, _chunkVYQNM75Rcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
|
|
7762
7762
|
}
|
|
7763
7763
|
};
|
|
7764
7764
|
}
|
|
@@ -7941,13 +7941,13 @@ var RichMarkdownInner = ({
|
|
|
7941
7941
|
},
|
|
7942
7942
|
[resolveLinkEndpointUrl, resolveSource]
|
|
7943
7943
|
);
|
|
7944
|
-
const textSizes = _react.useMemo.call(void 0, () =>
|
|
7944
|
+
const textSizes = _react.useMemo.call(void 0, () => _chunkVYQNM75Rcjs.resolveTextSizeConfig.call(void 0, "article"), []);
|
|
7945
7945
|
const componentOverrides = _react.useMemo.call(void 0,
|
|
7946
7946
|
() => buildRichEmbedOverrides({ ogApiBaseUrl, ogEndpointPath, textSizes }),
|
|
7947
7947
|
[ogApiBaseUrl, ogEndpointPath, textSizes]
|
|
7948
7948
|
);
|
|
7949
7949
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7950
|
-
|
|
7950
|
+
_chunkVYQNM75Rcjs.MarkdownEngine,
|
|
7951
7951
|
{
|
|
7952
7952
|
content,
|
|
7953
7953
|
className,
|
|
@@ -7969,7 +7969,7 @@ var RichMarkdownRendererImpl = ({
|
|
|
7969
7969
|
className = "",
|
|
7970
7970
|
sectionIds,
|
|
7971
7971
|
onInternalLinkClick,
|
|
7972
|
-
brokenLinks =
|
|
7972
|
+
brokenLinks = _chunkVYQNM75Rcjs.NO_BROKEN_LINKS,
|
|
7973
7973
|
currentPath,
|
|
7974
7974
|
resolveSource = "openframe-docs",
|
|
7975
7975
|
resolveLinkEndpointUrl = "/api/docs/resolve-link",
|
|
@@ -8542,7 +8542,7 @@ function FilterModal({
|
|
|
8542
8542
|
const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _161 => _161.defaultSort]), () => ( "desc"));
|
|
8543
8543
|
const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _162 => _162.sort]), () => ( dateDefaultSort)));
|
|
8544
8544
|
const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _163 => _163.range]));
|
|
8545
|
-
const { scrollRef, fadeTop, fadeBottom, update: updateFade } =
|
|
8545
|
+
const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkVYQNM75Rcjs.useScrollFade.call(void 0, );
|
|
8546
8546
|
const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
|
|
8547
8547
|
const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
|
|
8548
8548
|
_react.useEffect.call(void 0, () => {
|
|
@@ -8587,10 +8587,10 @@ function FilterModal({
|
|
|
8587
8587
|
const hasFilterGroups = filterGroups.length > 0;
|
|
8588
8588
|
const hasTagFilter = !!tagFilterKeys && tagFilterKeys.length > 0 && !!onTagsChange;
|
|
8589
8589
|
const isEmpty = !isLoading && !hasSort && !hasFilterGroups && !hasTagFilter && !dateFilter;
|
|
8590
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8591
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8590
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen, onClose, className: _chunkPRPZBXWZcjs.cn.call(void 0, "max-h-[90vh] max-w-none", className), children: [
|
|
8591
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: title }) }),
|
|
8592
8592
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8593
|
-
|
|
8593
|
+
_chunkVYQNM75Rcjs.ModalContent,
|
|
8594
8594
|
{
|
|
8595
8595
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
8596
8596
|
"flex min-h-0 flex-1 flex-col",
|
|
@@ -8682,12 +8682,12 @@ function FilterModal({
|
|
|
8682
8682
|
] })
|
|
8683
8683
|
}
|
|
8684
8684
|
),
|
|
8685
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8686
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8685
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
|
|
8686
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
|
|
8687
8687
|
] })
|
|
8688
8688
|
}
|
|
8689
8689
|
),
|
|
8690
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8690
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: [
|
|
8691
8691
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", className: "h-11 flex-1", onClick: handleReset, children: resetButtonText }),
|
|
8692
8692
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "accent", className: "h-11 flex-1", onClick: handleApply, children: applyButtonText })
|
|
8693
8693
|
] })
|
|
@@ -8731,9 +8731,9 @@ function actionToMenuItems(action, idx) {
|
|
|
8731
8731
|
function renderActionButton(action, opts = {}) {
|
|
8732
8732
|
const button = renderRawActionButton(action, opts);
|
|
8733
8733
|
if (!action.tooltip) return button;
|
|
8734
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8735
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8736
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8734
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { children: [
|
|
8735
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipTrigger, { asChild: true, children: button }),
|
|
8736
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { children: action.tooltip })
|
|
8737
8737
|
] }) });
|
|
8738
8738
|
}
|
|
8739
8739
|
function renderRawActionButton(action, opts = {}) {
|
|
@@ -8757,7 +8757,7 @@ function renderRawActionButton(action, opts = {}) {
|
|
|
8757
8757
|
}
|
|
8758
8758
|
if (action.submenu && action.submenu.length > 0) {
|
|
8759
8759
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8760
|
-
|
|
8760
|
+
_chunkVYQNM75Rcjs.ActionsMenuDropdown,
|
|
8761
8761
|
{
|
|
8762
8762
|
groups: [{ items: action.submenu }],
|
|
8763
8763
|
customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -8892,10 +8892,10 @@ function IconButtonsVariant({
|
|
|
8892
8892
|
selector,
|
|
8893
8893
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8894
8894
|
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
|
|
8895
|
-
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8895
|
+
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ActionsMenuDropdown, { groups: menuActions })
|
|
8896
8896
|
] })
|
|
8897
8897
|
] }),
|
|
8898
|
-
/* @__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,
|
|
8898
|
+
/* @__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, _chunkVYQNM75Rcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
|
|
8899
8899
|
] });
|
|
8900
8900
|
}
|
|
8901
8901
|
function PrimaryButtonsVariant({
|
|
@@ -8933,11 +8933,11 @@ function MenuPrimaryVariant({
|
|
|
8933
8933
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "hidden items-center md:flex", ACTIONS_GAP, className), children: [
|
|
8934
8934
|
selector,
|
|
8935
8935
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8936
|
-
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8936
|
+
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ActionsMenuDropdown, { groups: menuActions }),
|
|
8937
8937
|
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
|
|
8938
8938
|
] })
|
|
8939
8939
|
] }),
|
|
8940
|
-
/* @__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, {}) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8940
|
+
/* @__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, {}) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
|
|
8941
8941
|
] });
|
|
8942
8942
|
}
|
|
8943
8943
|
function MobileBottomActions({ actions, loading }) {
|
|
@@ -9339,7 +9339,7 @@ function TitleBlock({
|
|
|
9339
9339
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
9340
9340
|
(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: [
|
|
9341
9341
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9342
|
-
|
|
9342
|
+
_chunkVYQNM75Rcjs.FloatingTooltip,
|
|
9343
9343
|
{
|
|
9344
9344
|
content: title,
|
|
9345
9345
|
side: "bottom",
|
|
@@ -9356,12 +9356,12 @@ function TitleBlock({
|
|
|
9356
9356
|
}
|
|
9357
9357
|
),
|
|
9358
9358
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
9359
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9359
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.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 }) })),
|
|
9360
9360
|
hasSubtitleRow && /* The NBSP is a pure spacer, reached only in `'always'` mode: an
|
|
9361
9361
|
empty `p` collapses to zero height (its only content would be
|
|
9362
9362
|
collapsible whitespace), which is exactly the shift that mode
|
|
9363
9363
|
exists to prevent. Hidden from AT — it carries no meaning. */
|
|
9364
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9364
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9365
9365
|
"p",
|
|
9366
9366
|
{
|
|
9367
9367
|
ref: subtitleRef,
|
|
@@ -9372,7 +9372,7 @@ function TitleBlock({
|
|
|
9372
9372
|
) })
|
|
9373
9373
|
] })
|
|
9374
9374
|
] }) : title && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
|
|
9375
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9375
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.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 }) }),
|
|
9376
9376
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
9377
9377
|
] }) : (
|
|
9378
9378
|
/* This branch never had the single-line clamp, so text already
|
|
@@ -10969,7 +10969,7 @@ function extractSections(markdown, options = {}) {
|
|
|
10969
10969
|
if (heading.level > opts.maxLevel) continue;
|
|
10970
10970
|
let title = heading.text;
|
|
10971
10971
|
if (opts.stripFormattingMarkers) {
|
|
10972
|
-
title =
|
|
10972
|
+
title = _chunkVYQNM75Rcjs.stripInlineMarkdown.call(void 0, title).trim();
|
|
10973
10973
|
}
|
|
10974
10974
|
const baseId = _chunkZI27ALYXcjs.slugifyHeadingBase.call(void 0, opts.removeEmojis ? _chunkZI27ALYXcjs.stripHeadingEmojis.call(void 0, title) : title);
|
|
10975
10975
|
const cleanId = baseId || `section-${sections.length + 1}`;
|
|
@@ -11461,7 +11461,7 @@ function DashboardInfoCard({
|
|
|
11461
11461
|
const asTag = percentageDisplay === "tag" || percentageDisplay === "auto" && (progressVariant === "warning" || progressVariant === "error");
|
|
11462
11462
|
if (asTag) {
|
|
11463
11463
|
const tagVariant = progressVariant === "warning" || progressVariant === "error" ? progressVariant : progressVariant === "success" ? "success" : "grey";
|
|
11464
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11464
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: tagVariant, label: `${percentage}%` });
|
|
11465
11465
|
}
|
|
11466
11466
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: [
|
|
11467
11467
|
"(",
|
|
@@ -11515,7 +11515,7 @@ function DashboardInfoCard({
|
|
|
11515
11515
|
/* @__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 }),
|
|
11516
11516
|
subValue && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: subValue }),
|
|
11517
11517
|
renderPercentage(),
|
|
11518
|
-
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11518
|
+
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.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 }) }) })
|
|
11519
11519
|
] })
|
|
11520
11520
|
] }),
|
|
11521
11521
|
renderProgress()
|
|
@@ -11698,7 +11698,7 @@ function DeviceCard({
|
|
|
11698
11698
|
] }),
|
|
11699
11699
|
(statusTag || device.lastSeen) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-2", children: [
|
|
11700
11700
|
statusTag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11701
|
-
|
|
11701
|
+
_chunkVYQNM75Rcjs.Tag,
|
|
11702
11702
|
{
|
|
11703
11703
|
variant: statusTag.variant,
|
|
11704
11704
|
icon: statusTag.icon,
|
|
@@ -11712,7 +11712,7 @@ function DeviceCard({
|
|
|
11712
11712
|
formatLastSeen(device.lastSeen)
|
|
11713
11713
|
] })
|
|
11714
11714
|
] }),
|
|
11715
|
-
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,
|
|
11715
|
+
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, _chunkVYQNM75Rcjs.Tag, { variant: "outline", label: tag }, index)) })
|
|
11716
11716
|
]
|
|
11717
11717
|
}
|
|
11718
11718
|
);
|
|
@@ -11860,7 +11860,7 @@ function FeatureList({ items, className = "", iconBoxSize = 72 }) {
|
|
|
11860
11860
|
|
|
11861
11861
|
function SourceTooltip({ intro, sources, note, iconClassName, triggerAnchorProps }) {
|
|
11862
11862
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11863
|
-
|
|
11863
|
+
_chunkVYQNM75Rcjs.FloatingTooltip,
|
|
11864
11864
|
{
|
|
11865
11865
|
as: "span",
|
|
11866
11866
|
side: "top",
|
|
@@ -12044,7 +12044,7 @@ function DropdownButton({
|
|
|
12044
12044
|
)
|
|
12045
12045
|
);
|
|
12046
12046
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12047
|
-
|
|
12047
|
+
_chunkVYQNM75Rcjs.ActionsMenuDropdown,
|
|
12048
12048
|
{
|
|
12049
12049
|
groups: _nullishCoalesce(groups, () => ( [{ items: _nullishCoalesce(items, () => ( [])) }])),
|
|
12050
12050
|
open,
|
|
@@ -12282,7 +12282,7 @@ function ServiceCardRowItem({ row }) {
|
|
|
12282
12282
|
),
|
|
12283
12283
|
children: [
|
|
12284
12284
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12285
|
-
|
|
12285
|
+
_chunkVYQNM75Rcjs.FloatingTooltip,
|
|
12286
12286
|
{
|
|
12287
12287
|
content: row.value,
|
|
12288
12288
|
side: "top",
|
|
@@ -12408,9 +12408,9 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
|
|
|
12408
12408
|
return next;
|
|
12409
12409
|
});
|
|
12410
12410
|
};
|
|
12411
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12411
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { open, onOpenChange: setOpen, children: [
|
|
12412
12412
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12413
|
-
|
|
12413
|
+
_chunkVYQNM75Rcjs.TooltipTrigger,
|
|
12414
12414
|
{
|
|
12415
12415
|
asChild: true,
|
|
12416
12416
|
onPointerDown: (e) => {
|
|
@@ -12428,7 +12428,7 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
|
|
|
12428
12428
|
children
|
|
12429
12429
|
}
|
|
12430
12430
|
),
|
|
12431
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12431
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { side, className: "max-w-xs", children: content })
|
|
12432
12432
|
] }) });
|
|
12433
12433
|
}
|
|
12434
12434
|
|
|
@@ -13443,9 +13443,9 @@ function TruncatedHeaderCell({ value, width }) {
|
|
|
13443
13443
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
13444
13444
|
}
|
|
13445
13445
|
}, []);
|
|
13446
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13447
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13448
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13446
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
13447
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.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 }) }) }),
|
|
13448
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { side: "bottom", className: "max-w-xs break-words", children: value })
|
|
13449
13449
|
] }) });
|
|
13450
13450
|
}
|
|
13451
13451
|
|
|
@@ -13498,9 +13498,9 @@ function TruncatedCell({ value, className }) {
|
|
|
13498
13498
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
13499
13499
|
}
|
|
13500
13500
|
}, []);
|
|
13501
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13502
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13503
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13501
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
13502
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.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 }) }),
|
|
13503
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { side: "top", className: "max-w-xs break-words", children: value })
|
|
13504
13504
|
] }) });
|
|
13505
13505
|
}
|
|
13506
13506
|
|
|
@@ -14784,7 +14784,7 @@ function SearchInput({
|
|
|
14784
14784
|
/* @__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, {}) }),
|
|
14785
14785
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
|
|
14786
14786
|
visibleChips.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14787
|
-
|
|
14787
|
+
_chunkVYQNM75Rcjs.Tag,
|
|
14788
14788
|
{
|
|
14789
14789
|
variant: chipVariantToTagVariant(chip.variant),
|
|
14790
14790
|
label: chip.label,
|
|
@@ -14898,7 +14898,7 @@ function SearchInput({
|
|
|
14898
14898
|
}
|
|
14899
14899
|
),
|
|
14900
14900
|
/* @__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,
|
|
14901
|
-
|
|
14901
|
+
_chunkVYQNM75Rcjs.Tag,
|
|
14902
14902
|
{
|
|
14903
14903
|
variant: chipVariantToTagVariant(chip.variant),
|
|
14904
14904
|
label: chip.label,
|
|
@@ -15111,7 +15111,7 @@ function TagSearchInput({
|
|
|
15111
15111
|
/* @__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" }) }),
|
|
15112
15112
|
/* @__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: [
|
|
15113
15113
|
visibleTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15114
|
-
|
|
15114
|
+
_chunkVYQNM75Rcjs.Tag,
|
|
15115
15115
|
{
|
|
15116
15116
|
variant: "outline",
|
|
15117
15117
|
label: renderTag ? renderTag(tag) : tag.label,
|
|
@@ -15199,7 +15199,7 @@ function TagSearchInput({
|
|
|
15199
15199
|
"aria-hidden": "true",
|
|
15200
15200
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
15201
15201
|
children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15202
|
-
|
|
15202
|
+
_chunkVYQNM75Rcjs.Tag,
|
|
15203
15203
|
{
|
|
15204
15204
|
variant: "outline",
|
|
15205
15205
|
label: renderTag ? renderTag(tag) : tag.label,
|
|
@@ -16088,20 +16088,20 @@ function ColorPresetSelect({
|
|
|
16088
16088
|
...presets.map((p) => ({
|
|
16089
16089
|
id: p.key,
|
|
16090
16090
|
label: p.label,
|
|
16091
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16091
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: p.color }),
|
|
16092
16092
|
onClick: () => onChange({ color: p.color, preset: p.key })
|
|
16093
16093
|
})),
|
|
16094
16094
|
{
|
|
16095
16095
|
id: CUSTOM_PRESET_KEY,
|
|
16096
16096
|
label: "Custom",
|
|
16097
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16097
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: isCustom ? value : DEFAULT_CUSTOM_STATUS_COLOR }),
|
|
16098
16098
|
onClick: () => onChange({ color: value, preset: void 0 })
|
|
16099
16099
|
}
|
|
16100
16100
|
]
|
|
16101
16101
|
}
|
|
16102
16102
|
];
|
|
16103
16103
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16104
|
-
|
|
16104
|
+
_chunkVYQNM75Rcjs.ActionsMenuDropdown,
|
|
16105
16105
|
{
|
|
16106
16106
|
groups,
|
|
16107
16107
|
align: "start",
|
|
@@ -16111,7 +16111,7 @@ function ColorPresetSelect({
|
|
|
16111
16111
|
{
|
|
16112
16112
|
disabled,
|
|
16113
16113
|
"aria-label": `Color: ${displayLabel}`,
|
|
16114
|
-
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16114
|
+
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: displayColor }),
|
|
16115
16115
|
selectedLabel: displayLabel,
|
|
16116
16116
|
endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
|
|
16117
16117
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
|
|
@@ -16132,7 +16132,7 @@ function HexInputs({ value, onChange }) {
|
|
|
16132
16132
|
}
|
|
16133
16133
|
const commit = () => {
|
|
16134
16134
|
const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
|
|
16135
|
-
if (
|
|
16135
|
+
if (_chunkVYQNM75Rcjs.HEX_PATTERN.test(candidate)) onChange(candidate);
|
|
16136
16136
|
else setDraft(value);
|
|
16137
16137
|
};
|
|
16138
16138
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -16196,12 +16196,12 @@ function ChannelInput({
|
|
|
16196
16196
|
);
|
|
16197
16197
|
}
|
|
16198
16198
|
function RgbInputs({ value, onChange }) {
|
|
16199
|
-
const rgb = _nullishCoalesce(
|
|
16199
|
+
const rgb = _nullishCoalesce(_chunkVYQNM75Rcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
|
|
16200
16200
|
const update = (next) => {
|
|
16201
16201
|
const r = _nullishCoalesce(next.r, () => ( rgb.r));
|
|
16202
16202
|
const g = _nullishCoalesce(next.g, () => ( rgb.g));
|
|
16203
16203
|
const b = _nullishCoalesce(next.b, () => ( rgb.b));
|
|
16204
|
-
onChange(
|
|
16204
|
+
onChange(_chunkVYQNM75Rcjs.rgbToHex.call(void 0, r, g, b));
|
|
16205
16205
|
};
|
|
16206
16206
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16207
16207
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
|
|
@@ -16210,14 +16210,14 @@ function RgbInputs({ value, onChange }) {
|
|
|
16210
16210
|
] });
|
|
16211
16211
|
}
|
|
16212
16212
|
function HslInputs({ value, onChange }) {
|
|
16213
|
-
const rgb = _nullishCoalesce(
|
|
16214
|
-
const hsl =
|
|
16213
|
+
const rgb = _nullishCoalesce(_chunkVYQNM75Rcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
|
|
16214
|
+
const hsl = _chunkVYQNM75Rcjs.rgbToHsl.call(void 0, rgb.r, rgb.g, rgb.b);
|
|
16215
16215
|
const update = (next) => {
|
|
16216
16216
|
const h = _nullishCoalesce(next.h, () => ( hsl.h));
|
|
16217
16217
|
const s = _nullishCoalesce(next.s, () => ( hsl.s));
|
|
16218
16218
|
const l = _nullishCoalesce(next.l, () => ( hsl.l));
|
|
16219
|
-
const out =
|
|
16220
|
-
onChange(
|
|
16219
|
+
const out = _chunkVYQNM75Rcjs.hslToRgb.call(void 0, h, s, l);
|
|
16220
|
+
onChange(_chunkVYQNM75Rcjs.rgbToHex.call(void 0, out.r, out.g, out.b));
|
|
16221
16221
|
};
|
|
16222
16222
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16223
16223
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
|
|
@@ -16243,7 +16243,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16243
16243
|
{
|
|
16244
16244
|
disabled,
|
|
16245
16245
|
"aria-label": "Pick custom color",
|
|
16246
|
-
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16246
|
+
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: value }),
|
|
16247
16247
|
selectedLabel: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase", children: value }),
|
|
16248
16248
|
endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
|
|
16249
16249
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
|
|
@@ -16259,7 +16259,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16259
16259
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactcolorful.HexColorPicker, { color: value, onChange }),
|
|
16260
16260
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
16261
16261
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16262
|
-
|
|
16262
|
+
_chunkVYQNM75Rcjs.ActionsMenuDropdown,
|
|
16263
16263
|
{
|
|
16264
16264
|
groups: formatGroups,
|
|
16265
16265
|
align: "start",
|
|
@@ -16316,7 +16316,7 @@ function TicketStatusConfigRow({
|
|
|
16316
16316
|
const previewVariant = _nullishCoalesce(systemTagVariant, () => ( (isSystem ? void 0 : "primary")));
|
|
16317
16317
|
const fieldRowOffset = "mt-[calc(var(--font-line-space-h4-body)+0.25rem)]";
|
|
16318
16318
|
const chip = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16319
|
-
|
|
16319
|
+
_chunkVYQNM75Rcjs.TicketStatusTag,
|
|
16320
16320
|
{
|
|
16321
16321
|
status: statusKey,
|
|
16322
16322
|
label: name || " ",
|
|
@@ -16468,7 +16468,7 @@ function formatTestRunDuration(ms) {
|
|
|
16468
16468
|
var RESULT_COLUMN_MIN_WIDTH = 176;
|
|
16469
16469
|
var SKELETON_COLUMNS = 6;
|
|
16470
16470
|
function TestResultsSkeleton() {
|
|
16471
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16471
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
|
|
16472
16472
|
/* @__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}`)) }),
|
|
16473
16473
|
/* @__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}`)) }) })
|
|
16474
16474
|
] }) });
|
|
@@ -16503,7 +16503,7 @@ function TestResultsTable({ rows, loading }) {
|
|
|
16503
16503
|
if (loading) {
|
|
16504
16504
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TestResultsSkeleton, {});
|
|
16505
16505
|
}
|
|
16506
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16506
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.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: [
|
|
16507
16507
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Header, { className: "flex flex-col" }),
|
|
16508
16508
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Body, { loading: false })
|
|
16509
16509
|
] }) }) });
|
|
@@ -16563,7 +16563,7 @@ var TEST_RUN_STATUS_TAGS = {
|
|
|
16563
16563
|
function TestRunStatusStat({ status, className }) {
|
|
16564
16564
|
const tag = status === "idle" ? null : TEST_RUN_STATUS_TAGS[status];
|
|
16565
16565
|
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: [
|
|
16566
|
-
tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16566
|
+
tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.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: "-" }),
|
|
16567
16567
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: "Status" })
|
|
16568
16568
|
] });
|
|
16569
16569
|
}
|
|
@@ -16606,7 +16606,7 @@ function useTestRunState(campaign) {
|
|
|
16606
16606
|
const firstError = isFinished && campaign.errors.length > 0 ? campaign.errors[0].error : null;
|
|
16607
16607
|
const status = isActive ? "running" : hasRun && isFinished ? firstError ? "error" : "success" : "idle";
|
|
16608
16608
|
const showTiming = hasRun && campaign.startedAt !== null && (campaign.isRunning || isFinished);
|
|
16609
|
-
const startedLabel = showTiming && campaign.startedAt ?
|
|
16609
|
+
const startedLabel = showTiming && campaign.startedAt ? _chunkVYQNM75Rcjs.formatTime.call(void 0, campaign.startedAt) : "00:00 PM";
|
|
16610
16610
|
const durationLabel = showTiming ? formatTestRunDuration(durationMs) : "00:00:00";
|
|
16611
16611
|
const displayRows = _react.useMemo.call(void 0,
|
|
16612
16612
|
() => campaign.results.map(
|
|
@@ -16944,7 +16944,7 @@ function TicketInfoSection({
|
|
|
16944
16944
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([device, 'optionalAccess', _390 => _390.name]) || "Unassigned", label: "Device", icon: _optionalChain([device, 'optionalAccess', _391 => _391.icon]), onClick: _optionalChain([device, 'optionalAccess', _392 => _392.onClick]) }),
|
|
16945
16945
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-4", children: [
|
|
16946
16946
|
(status || statusLabel) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16947
|
-
|
|
16947
|
+
_chunkVYQNM75Rcjs.TicketStatusTag,
|
|
16948
16948
|
{
|
|
16949
16949
|
status: _nullishCoalesce(status, () => ( "")),
|
|
16950
16950
|
label: statusLabel,
|
|
@@ -16983,9 +16983,9 @@ function TicketInfoSection({
|
|
|
16983
16983
|
expanded && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16984
16984
|
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" }) }),
|
|
16985
16985
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
|
|
16986
|
-
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16986
|
+
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.SimpleMarkdownRenderer, { content: description }),
|
|
16987
16987
|
attachments && attachments.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketAttachmentsList, { attachments }) }),
|
|
16988
|
-
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,
|
|
16988
|
+
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, _chunkVYQNM75Rcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
|
|
16989
16989
|
(notes || onAddNote) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Notes", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16990
16990
|
TicketNotesSection,
|
|
16991
16991
|
{
|
|
@@ -17008,7 +17008,7 @@ function renderTicketStatusOption(option, isSelected) {
|
|
|
17008
17008
|
const { label, color } = option;
|
|
17009
17009
|
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: [
|
|
17010
17010
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
|
|
17011
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17011
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color }),
|
|
17012
17012
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TruncateText, { className: "text-inherit", children: label }) })
|
|
17013
17013
|
] }),
|
|
17014
17014
|
isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
|
|
@@ -17053,9 +17053,9 @@ function TakeOverTicketModal({
|
|
|
17053
17053
|
if (!selectedStatusId || !assigneeId || isPending) return;
|
|
17054
17054
|
onConfirm({ statusId: selectedStatusId, assigneeId });
|
|
17055
17055
|
};
|
|
17056
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17056
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17057
17057
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17058
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17058
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: "Take Over Ticket" }) }),
|
|
17059
17059
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
17060
17060
|
"The ticket ",
|
|
17061
17061
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
|
|
@@ -17070,7 +17070,7 @@ function TakeOverTicketModal({
|
|
|
17070
17070
|
value: selectedStatusId,
|
|
17071
17071
|
onChange: setStatusId,
|
|
17072
17072
|
placeholder: "Select Status",
|
|
17073
|
-
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17073
|
+
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
|
|
17074
17074
|
renderOption: renderTicketStatusOption
|
|
17075
17075
|
}
|
|
17076
17076
|
) }),
|
|
@@ -17097,7 +17097,7 @@ function TakeOverTicketModal({
|
|
|
17097
17097
|
}
|
|
17098
17098
|
) })
|
|
17099
17099
|
] }),
|
|
17100
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17100
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: [
|
|
17101
17101
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
17102
17102
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
17103
17103
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -17156,9 +17156,9 @@ function ReopenTicketModal({
|
|
|
17156
17156
|
reason: trimmedReason ? trimmedReason.slice(0, REASON_MAX_LENGTH) : null
|
|
17157
17157
|
});
|
|
17158
17158
|
};
|
|
17159
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17159
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17160
17160
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17161
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17161
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: "Reopen Ticket" }) }),
|
|
17162
17162
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
17163
17163
|
"The ticket ",
|
|
17164
17164
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
|
|
@@ -17173,7 +17173,7 @@ function ReopenTicketModal({
|
|
|
17173
17173
|
value: selectedStatusId,
|
|
17174
17174
|
onChange: setStatusId,
|
|
17175
17175
|
placeholder: "Select Status",
|
|
17176
|
-
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17176
|
+
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
|
|
17177
17177
|
renderOption: renderTicketStatusOption
|
|
17178
17178
|
}
|
|
17179
17179
|
) }),
|
|
@@ -17211,7 +17211,7 @@ function ReopenTicketModal({
|
|
|
17211
17211
|
disabled: isPending
|
|
17212
17212
|
}
|
|
17213
17213
|
) }),
|
|
17214
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17214
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: [
|
|
17215
17215
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
17216
17216
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
17217
17217
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -17259,9 +17259,9 @@ function ReopenTicketRequestModal({
|
|
|
17259
17259
|
...showHandoffOption ? { handoffToTechnician: handoff } : {}
|
|
17260
17260
|
});
|
|
17261
17261
|
};
|
|
17262
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17262
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17263
17263
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17264
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17264
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ModalTitle, { children: "Reopen Ticket" }) }),
|
|
17265
17265
|
/* @__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." }),
|
|
17266
17266
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17267
17267
|
Textarea,
|
|
@@ -17285,7 +17285,7 @@ function ReopenTicketRequestModal({
|
|
|
17285
17285
|
disabled: isPending
|
|
17286
17286
|
}
|
|
17287
17287
|
),
|
|
17288
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17288
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.ModalFooter, { children: [
|
|
17289
17289
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1", children: "Cancel" }),
|
|
17290
17290
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "accent", onClick: handleConfirm, loading: isPending, className: "flex-1", children: "Reopen Ticket" })
|
|
17291
17291
|
] })
|
|
@@ -19282,7 +19282,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
|
|
|
19282
19282
|
sandbox: "allow-scripts allow-same-origin allow-popups allow-presentation",
|
|
19283
19283
|
title: config.title,
|
|
19284
19284
|
loading: "eager",
|
|
19285
|
-
...
|
|
19285
|
+
..._chunkVYQNM75Rcjs.fetchPriorityProp.call(void 0, "high")
|
|
19286
19286
|
},
|
|
19287
19287
|
iframeKey
|
|
19288
19288
|
),
|
|
@@ -20132,7 +20132,7 @@ function MediaGalleryManager({
|
|
|
20132
20132
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video overflow-hidden rounded-lg bg-ods-bg", children: mediaItem.media_type === "video" || mediaItem.media_type === "demo" ? (
|
|
20133
20133
|
// <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
|
|
20134
20134
|
// fit="cover" crops to the aspect-video cell.
|
|
20135
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20135
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "file", url: mediaItem.media_url, fit: "cover", className: "h-full w-full" })
|
|
20136
20136
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20137
20137
|
_chunkWLSFBRT5cjs.next_image_default,
|
|
20138
20138
|
{
|
|
@@ -20593,6 +20593,7 @@ function PlatformFilterComponent({
|
|
|
20593
20593
|
// src/components/features/push-button-selector.tsx
|
|
20594
20594
|
|
|
20595
20595
|
|
|
20596
|
+
|
|
20596
20597
|
function PushButtonSelectorSkeleton({ count = 3, hasTitle }) {
|
|
20597
20598
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
|
|
20598
20599
|
hasTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-20 animate-pulse rounded bg-ods-skeleton" }),
|
|
@@ -20630,13 +20631,57 @@ function PushButtonSelector({
|
|
|
20630
20631
|
isLoading = false,
|
|
20631
20632
|
error = null,
|
|
20632
20633
|
skeletonCount = 3,
|
|
20633
|
-
sections
|
|
20634
|
+
sections,
|
|
20635
|
+
search,
|
|
20636
|
+
lazyLoad,
|
|
20637
|
+
emptyMessage,
|
|
20638
|
+
footer
|
|
20634
20639
|
}) {
|
|
20640
|
+
const scrollRef = _react.useRef.call(void 0, null);
|
|
20641
|
+
const sentinelRef = _react.useRef.call(void 0, null);
|
|
20642
|
+
const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _460 => _460.hasMore]), () => ( false));
|
|
20643
|
+
const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _461 => _461.isFetchingMore]), () => ( false));
|
|
20644
|
+
const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _462 => _462.onLoadMore]);
|
|
20645
|
+
const optionCount = options.length;
|
|
20646
|
+
_react.useEffect.call(void 0, () => {
|
|
20647
|
+
const sentinel = sentinelRef.current;
|
|
20648
|
+
const root = scrollRef.current;
|
|
20649
|
+
if (!sentinel || !root || !onLoadMore || !lazyHasMore) return void 0;
|
|
20650
|
+
const observer = new IntersectionObserver(
|
|
20651
|
+
(entries) => {
|
|
20652
|
+
if (entries.some((e) => e.isIntersecting) && !lazyFetching) {
|
|
20653
|
+
onLoadMore();
|
|
20654
|
+
}
|
|
20655
|
+
},
|
|
20656
|
+
{ root, rootMargin: "80px" }
|
|
20657
|
+
);
|
|
20658
|
+
observer.observe(sentinel);
|
|
20659
|
+
return () => {
|
|
20660
|
+
observer.disconnect();
|
|
20661
|
+
};
|
|
20662
|
+
}, [lazyHasMore, lazyFetching, onLoadMore, optionCount]);
|
|
20663
|
+
const searchInput = search ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20664
|
+
_chunkIKDC3R7Vcjs.Input,
|
|
20665
|
+
{
|
|
20666
|
+
value: search.value,
|
|
20667
|
+
onChange: (e) => search.onChange(e.target.value),
|
|
20668
|
+
placeholder: search.placeholder,
|
|
20669
|
+
"aria-label": _nullishCoalesce(_nullishCoalesce(search.ariaLabel, () => ( search.placeholder)), () => ( "Search"))
|
|
20670
|
+
}
|
|
20671
|
+
) : null;
|
|
20635
20672
|
if (isLoading) {
|
|
20636
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.
|
|
20673
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: search ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
20674
|
+
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
|
|
20675
|
+
searchInput,
|
|
20676
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorSkeleton, { count: skeletonCount })
|
|
20677
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorSkeleton, { count: skeletonCount, hasTitle: !!title }) });
|
|
20637
20678
|
}
|
|
20638
20679
|
if (error) {
|
|
20639
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.
|
|
20680
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: search ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
20681
|
+
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
|
|
20682
|
+
searchInput,
|
|
20683
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorError, { message: error })
|
|
20684
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorError, { message: error, title }) });
|
|
20640
20685
|
}
|
|
20641
20686
|
const validSelectedIds = options.length > 0 ? selectedIds.filter((id) => options.some((option) => option.id === id)) : selectedIds;
|
|
20642
20687
|
if (process.env.NODE_ENV === "development" && options.length > 0 && validSelectedIds.length !== selectedIds.length) {
|
|
@@ -20689,9 +20734,9 @@ function PushButtonSelector({
|
|
|
20689
20734
|
option.id
|
|
20690
20735
|
);
|
|
20691
20736
|
if (option.disabled && option.disabledReason) {
|
|
20692
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
20693
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20694
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20737
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { children: [
|
|
20738
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipTrigger, { asChild: true, children: optionEl }),
|
|
20739
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
|
|
20695
20740
|
] }, option.id);
|
|
20696
20741
|
}
|
|
20697
20742
|
return optionEl;
|
|
@@ -20728,9 +20773,26 @@ function PushButtonSelector({
|
|
|
20728
20773
|
ungroupedOptions.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-2", children: ungroupedOptions.map(renderOption) })
|
|
20729
20774
|
] });
|
|
20730
20775
|
};
|
|
20731
|
-
|
|
20776
|
+
const listContent = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
20777
|
+
options.length === 0 && emptyMessage !== void 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: emptyMessage }) : renderOptionsContent(),
|
|
20778
|
+
lazyLoad ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
20779
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef }),
|
|
20780
|
+
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
|
|
20781
|
+
] }) : null
|
|
20782
|
+
] });
|
|
20783
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 ${className}`, children: [
|
|
20732
20784
|
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
|
|
20733
|
-
|
|
20785
|
+
searchInput,
|
|
20786
|
+
lazyLoad ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20787
|
+
"div",
|
|
20788
|
+
{
|
|
20789
|
+
ref: scrollRef,
|
|
20790
|
+
className: "space-y-4 overflow-y-auto rounded-lg border border-ods-border p-2",
|
|
20791
|
+
style: { height: _nullishCoalesce(lazyLoad.maxHeight, () => ( "336px")) },
|
|
20792
|
+
children: listContent
|
|
20793
|
+
}
|
|
20794
|
+
) : listContent,
|
|
20795
|
+
footer,
|
|
20734
20796
|
selectionSummary && validSelectedIds.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rounded-lg border border-ods-success bg-ods-success-secondary p-4", children: [
|
|
20735
20797
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-2 flex items-center gap-2", children: [
|
|
20736
20798
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-2 w-2 rounded-full bg-ods-success" }),
|
|
@@ -20756,7 +20818,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
20756
20818
|
const fileInputRef = _react.useRef.call(void 0, null);
|
|
20757
20819
|
const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
|
|
20758
20820
|
const handleFileSelect = async (event) => {
|
|
20759
|
-
const file = _optionalChain([event, 'access',
|
|
20821
|
+
const file = _optionalChain([event, 'access', _463 => _463.target, 'access', _464 => _464.files, 'optionalAccess', _465 => _465[0]]);
|
|
20760
20822
|
if (!file) return;
|
|
20761
20823
|
let mediaType;
|
|
20762
20824
|
if (file.type.startsWith("image/")) {
|
|
@@ -20838,7 +20900,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
20838
20900
|
{
|
|
20839
20901
|
type: "button",
|
|
20840
20902
|
variant: "outline",
|
|
20841
|
-
onClick: () => _optionalChain([fileInputRef, 'access',
|
|
20903
|
+
onClick: () => _optionalChain([fileInputRef, 'access', _466 => _466.current, 'optionalAccess', _467 => _467.click, 'call', _468 => _468()]),
|
|
20842
20904
|
disabled: uploadingIndex !== null,
|
|
20843
20905
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
|
|
20844
20906
|
className: "font-bold text-h6",
|
|
@@ -20891,7 +20953,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
20891
20953
|
item.media_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video bg-ods-bg", children: item.media_type === "video" || item.media_type === "demo" ? (
|
|
20892
20954
|
// <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
|
|
20893
20955
|
// fit="cover" crops to the aspect-video cell.
|
|
20894
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20956
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
|
|
20895
20957
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20896
20958
|
_chunkWLSFBRT5cjs.next_image_default,
|
|
20897
20959
|
{
|
|
@@ -21024,7 +21086,7 @@ var SelectButton = _react2.default.forwardRef(
|
|
|
21024
21086
|
}
|
|
21025
21087
|
)
|
|
21026
21088
|
] }),
|
|
21027
|
-
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21089
|
+
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: tagVariant, className: "shrink-0", label: tag }),
|
|
21028
21090
|
selected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckCircleIcon, { className: "size-4 shrink-0 text-ods-accent md:size-6" })
|
|
21029
21091
|
]
|
|
21030
21092
|
}
|
|
@@ -21119,7 +21181,7 @@ function SEOEditorPreview({
|
|
|
21119
21181
|
const displayImage = hasOgImage || hasFeaturedImage;
|
|
21120
21182
|
const handleImageUpload = async (event) => {
|
|
21121
21183
|
if (!onOgImageUpload) return;
|
|
21122
|
-
const file = _optionalChain([event, 'access',
|
|
21184
|
+
const file = _optionalChain([event, 'access', _469 => _469.target, 'access', _470 => _470.files, 'optionalAccess', _471 => _471[0]]);
|
|
21123
21185
|
if (!file) return;
|
|
21124
21186
|
setIsUploading(true);
|
|
21125
21187
|
try {
|
|
@@ -21276,7 +21338,7 @@ function SEOEditorPreview({
|
|
|
21276
21338
|
type: "button",
|
|
21277
21339
|
variant: "outline",
|
|
21278
21340
|
size: "icon",
|
|
21279
|
-
onClick: () => _optionalChain([fileInputRef, 'optionalAccess',
|
|
21341
|
+
onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _472 => _472.click, 'call', _473 => _473()]),
|
|
21280
21342
|
disabled: disabled || isUploading,
|
|
21281
21343
|
className: "rounded-full bg-white text-black opacity-0 hover:bg-gray-100 group-hover:opacity-100",
|
|
21282
21344
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
|
|
@@ -21302,7 +21364,7 @@ function SEOEditorPreview({
|
|
|
21302
21364
|
SEO_MEDIA_BOX_HEIGHT,
|
|
21303
21365
|
"flex cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-ods-border bg-ods-bg-hover transition-colors hover:border-ods-accent"
|
|
21304
21366
|
),
|
|
21305
|
-
onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess',
|
|
21367
|
+
onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _474 => _474.click, 'call', _475 => _475()]),
|
|
21306
21368
|
children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
21307
21369
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "mb-2 h-8 w-8 text-ods-text-secondary" }),
|
|
21308
21370
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
|
|
@@ -21389,7 +21451,7 @@ function SocialLinksManager({
|
|
|
21389
21451
|
className = ""
|
|
21390
21452
|
}) {
|
|
21391
21453
|
const addLink = () => {
|
|
21392
|
-
const firstPlatform = _optionalChain([platforms, 'access',
|
|
21454
|
+
const firstPlatform = _optionalChain([platforms, 'access', _476 => _476[0], 'optionalAccess', _477 => _477.name]) || "website";
|
|
21393
21455
|
onChange([...links, { platform: firstPlatform, url: "" }]);
|
|
21394
21456
|
};
|
|
21395
21457
|
const removeLink = (index) => {
|
|
@@ -21401,7 +21463,7 @@ function SocialLinksManager({
|
|
|
21401
21463
|
onChange(updated);
|
|
21402
21464
|
};
|
|
21403
21465
|
const getIcon = (link, platform) => {
|
|
21404
|
-
const iconKey = _optionalChain([platform, 'optionalAccess',
|
|
21466
|
+
const iconKey = _optionalChain([platform, 'optionalAccess', _478 => _478.icon_name]) || link.platform;
|
|
21405
21467
|
const IconComponent = iconMap[iconKey];
|
|
21406
21468
|
return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
|
|
21407
21469
|
};
|
|
@@ -21423,7 +21485,7 @@ function SocialLinksManager({
|
|
|
21423
21485
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21424
21486
|
_chunkIKDC3R7Vcjs.Input,
|
|
21425
21487
|
{
|
|
21426
|
-
placeholder: _optionalChain([platform, 'optionalAccess',
|
|
21488
|
+
placeholder: _optionalChain([platform, 'optionalAccess', _479 => _479.placeholder]) || "Profile URL",
|
|
21427
21489
|
value: link.url,
|
|
21428
21490
|
onChange: (e) => updateLink(index, "url", e.target.value),
|
|
21429
21491
|
onKeyDown: (e) => {
|
|
@@ -21810,7 +21872,7 @@ function VideoBitesDisplay({
|
|
|
21810
21872
|
filterPublished = true,
|
|
21811
21873
|
showTitle = true
|
|
21812
21874
|
}) {
|
|
21813
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21875
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
|
|
21814
21876
|
}
|
|
21815
21877
|
|
|
21816
21878
|
// src/components/features/walkthrough-video.tsx
|
|
@@ -21819,8 +21881,8 @@ function VideoBitesDisplay({
|
|
|
21819
21881
|
|
|
21820
21882
|
var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
|
|
21821
21883
|
function theaterSeedFromLive(live, fallbackTime, fallbackMuted) {
|
|
21822
|
-
const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess',
|
|
21823
|
-
const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess',
|
|
21884
|
+
const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _480 => _480.getCurrentTime, 'call', _481 => _481()]), () => ( 0));
|
|
21885
|
+
const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _482 => _482.getDuration, 'call', _483 => _483()]), () => ( 0)), time);
|
|
21824
21886
|
return {
|
|
21825
21887
|
// At end -> start over, never rewind to an unrelated older anchor.
|
|
21826
21888
|
time: atEnd ? 0 : time > 0.5 ? time : fallbackTime,
|
|
@@ -21852,11 +21914,11 @@ function WalkthroughVideo({
|
|
|
21852
21914
|
const inline = placement === "inline";
|
|
21853
21915
|
const dismissEnabled = dismissal !== false;
|
|
21854
21916
|
const storageKey = dismissEnabled && dismissal.storageKey || WALKTHROUGH_VIDEO_DISMISS_KEY;
|
|
21855
|
-
const dismissalId = _optionalChain([video, 'optionalAccess',
|
|
21917
|
+
const dismissalId = _optionalChain([video, 'optionalAccess', _484 => _484.id]) != null ? String(video.id) : "dismissed";
|
|
21856
21918
|
const [mounted, setMounted] = _react.useState.call(void 0, false);
|
|
21857
21919
|
const [dismissed, setDismissed] = _react.useState.call(void 0, false);
|
|
21858
21920
|
const hasVideo = video != null;
|
|
21859
|
-
const videoId = _optionalChain([video, 'optionalAccess',
|
|
21921
|
+
const videoId = _optionalChain([video, 'optionalAccess', _485 => _485.id]);
|
|
21860
21922
|
_react.useEffect.call(void 0, () => {
|
|
21861
21923
|
let idleHandle = null;
|
|
21862
21924
|
if (!hasVideo) return void 0;
|
|
@@ -21879,13 +21941,13 @@ function WalkthroughVideo({
|
|
|
21879
21941
|
if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
|
|
21880
21942
|
};
|
|
21881
21943
|
}, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId]);
|
|
21882
|
-
const hydrated =
|
|
21944
|
+
const hydrated = _chunkVYQNM75Rcjs.useIsHydrated.call(void 0, );
|
|
21883
21945
|
const previewSuppressed = _react.useMemo.call(void 0, () => {
|
|
21884
21946
|
if (!hydrated) return false;
|
|
21885
21947
|
try {
|
|
21886
|
-
const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access',
|
|
21948
|
+
const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _486 => _486.matchMedia, 'optionalCall', _487 => _487("(prefers-reduced-motion: reduce)"), 'access', _488 => _488.matches]), () => ( false));
|
|
21887
21949
|
const conn = navigator.connection;
|
|
21888
|
-
const saveData = _optionalChain([conn, 'optionalAccess',
|
|
21950
|
+
const saveData = _optionalChain([conn, 'optionalAccess', _489 => _489.saveData]) === true || _optionalChain([conn, 'optionalAccess', _490 => _490.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _491 => _491.effectiveType]) === "slow-2g";
|
|
21889
21951
|
return Boolean(reducedMotion || saveData);
|
|
21890
21952
|
} catch (e27) {
|
|
21891
21953
|
return false;
|
|
@@ -21918,18 +21980,18 @@ function WalkthroughVideo({
|
|
|
21918
21980
|
const [cardMuted, setCardMuted] = _react.useState.call(void 0, false);
|
|
21919
21981
|
const [cardPaused, setCardPaused] = _react.useState.call(void 0, false);
|
|
21920
21982
|
const [userMuted, setUserMuted] = _react.useState.call(void 0, false);
|
|
21921
|
-
const isYouTube = Boolean(_optionalChain([video, 'optionalAccess',
|
|
21983
|
+
const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _492 => _492.youtubeUrl]));
|
|
21922
21984
|
const resumeMode = !open && handoff !== null && !isYouTube;
|
|
21923
21985
|
const previewAllowed = !previewSuppressed && !isYouTube;
|
|
21924
21986
|
const footerFadeKey = `${mounted ? 1 : 0}|${inline ? 1 : 0}|${hideNearSelector}|${pathname}`;
|
|
21925
|
-
const footerHidden = _optionalChain([footerObservation, 'optionalAccess',
|
|
21987
|
+
const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _493 => _493.key]) === footerFadeKey && footerObservation.hidden;
|
|
21926
21988
|
_react.useEffect.call(void 0, () => {
|
|
21927
21989
|
if (!mounted) return void 0;
|
|
21928
21990
|
if (inline) return void 0;
|
|
21929
21991
|
const el = typeof document !== "undefined" ? document.querySelector(hideNearSelector) : null;
|
|
21930
21992
|
if (!el || typeof IntersectionObserver === "undefined") return void 0;
|
|
21931
21993
|
const io = new IntersectionObserver(
|
|
21932
|
-
(entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access',
|
|
21994
|
+
(entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _494 => _494[0], 'optionalAccess', _495 => _495.isIntersecting]), () => ( false)) }),
|
|
21933
21995
|
{ rootMargin: "0px 0px -40px 0px" }
|
|
21934
21996
|
);
|
|
21935
21997
|
io.observe(el);
|
|
@@ -21955,7 +22017,7 @@ function WalkthroughVideo({
|
|
|
21955
22017
|
if (!footerHidden) return;
|
|
21956
22018
|
const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
21957
22019
|
try {
|
|
21958
|
-
_optionalChain([h, 'optionalAccess',
|
|
22020
|
+
_optionalChain([h, 'optionalAccess', _496 => _496.pause, 'call', _497 => _497()]);
|
|
21959
22021
|
} catch (e29) {
|
|
21960
22022
|
}
|
|
21961
22023
|
}, [footerHidden, resumeMode, hovered]);
|
|
@@ -21974,30 +22036,30 @@ function WalkthroughVideo({
|
|
|
21974
22036
|
}, 400);
|
|
21975
22037
|
}
|
|
21976
22038
|
if (openProp === void 0) setOpenState(next);
|
|
21977
|
-
_optionalChain([onOpenChange, 'optionalCall',
|
|
22039
|
+
_optionalChain([onOpenChange, 'optionalCall', _498 => _498(next)]);
|
|
21978
22040
|
},
|
|
21979
22041
|
[openProp, onOpenChange]
|
|
21980
22042
|
);
|
|
21981
22043
|
const pausePreviewNow = _react.useCallback.call(void 0, () => {
|
|
21982
22044
|
const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
21983
22045
|
try {
|
|
21984
|
-
_optionalChain([h, 'optionalAccess',
|
|
22046
|
+
_optionalChain([h, 'optionalAccess', _499 => _499.pause, 'call', _500 => _500()]);
|
|
21985
22047
|
} catch (e30) {
|
|
21986
22048
|
}
|
|
21987
22049
|
setCardPaused(true);
|
|
21988
22050
|
}, [setCardPaused]);
|
|
21989
22051
|
const openTheater = _react.useCallback.call(void 0, () => {
|
|
21990
22052
|
const handleBeforePause = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
21991
|
-
const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess',
|
|
22053
|
+
const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _501 => _501.getPaused, 'call', _502 => _502()]) === false;
|
|
21992
22054
|
pausePreviewNow();
|
|
21993
22055
|
const liveHandle = _nullishCoalesce(resumeHandleRef.current, () => ( (cardModeRef.current === "preview" ? previewHandleRef.current : null)));
|
|
21994
|
-
const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess',
|
|
21995
|
-
const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess',
|
|
22056
|
+
const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _503 => _503.getCurrentTime, 'call', _504 => _504()]), () => ( 0));
|
|
22057
|
+
const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _505 => _505.getDuration, 'call', _506 => _506()]), () => ( 0));
|
|
21996
22058
|
const liveAtEnd = isAtEnd(liveDuration, liveTime);
|
|
21997
22059
|
const start = {
|
|
21998
22060
|
// At end -> start over. Falling back to `handoff.time` here would rewind
|
|
21999
22061
|
// to an unrelated older anchor (e.g. 3:20) instead of restarting.
|
|
22000
|
-
time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess',
|
|
22062
|
+
time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _507 => _507.time]), () => ( 0)),
|
|
22001
22063
|
// Live element wins over remembered intent (the theater's own chrome may
|
|
22002
22064
|
// have changed it) — EXCEPT when the element is muted only because
|
|
22003
22065
|
// autoplay policy forced it, which is not intent.
|
|
@@ -22025,7 +22087,7 @@ function WalkthroughVideo({
|
|
|
22025
22087
|
const selfDriven = selfDrivenFor === open;
|
|
22026
22088
|
if (openProp !== void 0 && !selfDriven) {
|
|
22027
22089
|
if (open) {
|
|
22028
|
-
setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess',
|
|
22090
|
+
setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _508 => _508.time]), () => ( 0)), userMuted));
|
|
22029
22091
|
setHovered(false);
|
|
22030
22092
|
setSuspended(false);
|
|
22031
22093
|
setHandoff(null);
|
|
@@ -22111,8 +22173,8 @@ function WalkthroughVideo({
|
|
|
22111
22173
|
});
|
|
22112
22174
|
_react.useEffect.call(void 0, () => {
|
|
22113
22175
|
if (resumeMode) {
|
|
22114
|
-
setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access',
|
|
22115
|
-
setCardPaused(_optionalChain([handoffRef, 'access',
|
|
22176
|
+
setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _509 => _509.current, 'optionalAccess', _510 => _510.muted]), () => ( false)));
|
|
22177
|
+
setCardPaused(_optionalChain([handoffRef, 'access', _511 => _511.current, 'optionalAccess', _512 => _512.playing]) === false);
|
|
22116
22178
|
}
|
|
22117
22179
|
}, [resumeMode]);
|
|
22118
22180
|
const [hoverSeeded, setHoverSeeded] = _react.useState.call(void 0, hovered);
|
|
@@ -22194,11 +22256,11 @@ function WalkthroughVideo({
|
|
|
22194
22256
|
},
|
|
22195
22257
|
[cardFallback.blocked, cardPaused, activeHandle, setCardPaused]
|
|
22196
22258
|
);
|
|
22197
|
-
const summaryTitle = _optionalChain([video, 'optionalAccess',
|
|
22198
|
-
const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess',
|
|
22259
|
+
const summaryTitle = _optionalChain([video, 'optionalAccess', _513 => _513.title]) || void 0;
|
|
22260
|
+
const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _514 => _514.presenterAvatarUrl]), () => ( null));
|
|
22199
22261
|
const embedUrlKey = _react.useMemo.call(void 0,
|
|
22200
|
-
() => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess',
|
|
22201
|
-
[_optionalChain([video, 'optionalAccess',
|
|
22262
|
+
() => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _515 => _515.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _516 => _516.youtubeUrl]), () => ( ""))}`,
|
|
22263
|
+
[_optionalChain([video, 'optionalAccess', _517 => _517.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _518 => _518.youtubeUrl])]
|
|
22202
22264
|
);
|
|
22203
22265
|
const cardActive = !open && previewAllowed && hovered && !resumeMode;
|
|
22204
22266
|
const cardMode = resumeMode ? "resume" : cardActive ? "preview" : "poster";
|
|
@@ -22257,7 +22319,7 @@ function WalkthroughVideo({
|
|
|
22257
22319
|
const el = e.target;
|
|
22258
22320
|
let keyboard = false;
|
|
22259
22321
|
try {
|
|
22260
|
-
keyboard = _nullishCoalesce(_optionalChain([el, 'access',
|
|
22322
|
+
keyboard = _nullishCoalesce(_optionalChain([el, 'access', _519 => _519.matches, 'optionalCall', _520 => _520(":focus-visible")]), () => ( false));
|
|
22261
22323
|
} catch (e35) {
|
|
22262
22324
|
keyboard = false;
|
|
22263
22325
|
}
|
|
@@ -22276,7 +22338,7 @@ function WalkthroughVideo({
|
|
|
22276
22338
|
},
|
|
22277
22339
|
children: [
|
|
22278
22340
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22279
|
-
|
|
22341
|
+
_chunkVYQNM75Rcjs.VideoHoverPreviewSurface,
|
|
22280
22342
|
{
|
|
22281
22343
|
url: video.mainVideoUrl || "",
|
|
22282
22344
|
posterUrl: video.posterUrl,
|
|
@@ -22291,15 +22353,15 @@ function WalkthroughVideo({
|
|
|
22291
22353
|
previewHandleRef: cardMode === "resume" ? resumeHandleRef : previewHandleRef,
|
|
22292
22354
|
mutedIntent: userMuted,
|
|
22293
22355
|
continuation: cardMode === "resume",
|
|
22294
|
-
autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess',
|
|
22295
|
-
startTime: _optionalChain([resumeHandoff, 'optionalAccess',
|
|
22296
|
-
startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess',
|
|
22356
|
+
autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _521 => _521.playing]) !== false && !footerHidden,
|
|
22357
|
+
startTime: _optionalChain([resumeHandoff, 'optionalAccess', _522 => _522.time]),
|
|
22358
|
+
startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _523 => _523.muted]), () => ( false)),
|
|
22297
22359
|
onEnded: cardMode === "resume" ? () => setHandoff(null) : () => setCardPaused(true)
|
|
22298
22360
|
},
|
|
22299
22361
|
`card-${embedUrlKey}`
|
|
22300
22362
|
) }),
|
|
22301
22363
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22302
|
-
|
|
22364
|
+
_chunkVYQNM75Rcjs.CardHitLayer,
|
|
22303
22365
|
{
|
|
22304
22366
|
label: video.title ? `${label}: ${video.title}` : label,
|
|
22305
22367
|
onPointerDown: pausePreviewNow,
|
|
@@ -22308,7 +22370,7 @@ function WalkthroughVideo({
|
|
|
22308
22370
|
}
|
|
22309
22371
|
),
|
|
22310
22372
|
/* @__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: [
|
|
22311
|
-
presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22373
|
+
presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNFQLTJ3cjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.VideoPlayBadge, { size: "sm", className: "h-5 w-5 shrink-0" }),
|
|
22312
22374
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: summaryTitle || label })
|
|
22313
22375
|
] }),
|
|
22314
22376
|
showBigUnmute && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -22321,7 +22383,7 @@ function WalkthroughVideo({
|
|
|
22321
22383
|
onPointerDown: (e) => e.stopPropagation(),
|
|
22322
22384
|
onClick: onUnmuteOrPlay,
|
|
22323
22385
|
className: "absolute inset-0 z-30 m-auto hidden sm:inline-flex",
|
|
22324
|
-
children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22386
|
+
children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.VideoPlayBadge, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.VideoUnmuteGlyph, {})
|
|
22325
22387
|
}
|
|
22326
22388
|
),
|
|
22327
22389
|
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: [
|
|
@@ -22390,7 +22452,7 @@ function WalkthroughVideo({
|
|
|
22390
22452
|
{
|
|
22391
22453
|
onOpenAutoFocus: (e) => {
|
|
22392
22454
|
e.preventDefault();
|
|
22393
|
-
_optionalChain([closeButtonRef, 'access',
|
|
22455
|
+
_optionalChain([closeButtonRef, 'access', _524 => _524.current, 'optionalAccess', _525 => _525.focus, 'call', _526 => _526()]);
|
|
22394
22456
|
},
|
|
22395
22457
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
22396
22458
|
// PURE theater: just the video, centered on a dimmed backdrop.
|
|
@@ -22414,7 +22476,7 @@ function WalkthroughVideo({
|
|
|
22414
22476
|
children: [
|
|
22415
22477
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive2.Title, { className: "sr-only", children: summaryTitle || "Walkthrough video" }),
|
|
22416
22478
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22417
|
-
|
|
22479
|
+
_chunkVYQNM75Rcjs.Video,
|
|
22418
22480
|
{
|
|
22419
22481
|
kind: video.youtubeUrl ? "youtube" : "file",
|
|
22420
22482
|
url: video.youtubeUrl || video.mainVideoUrl,
|
|
@@ -22465,7 +22527,7 @@ function InlineWalkthroughVideo(props) {
|
|
|
22465
22527
|
var _reactquery = require('@tanstack/react-query');
|
|
22466
22528
|
function useWalkthroughVideo(opts) {
|
|
22467
22529
|
const { endpoint, initialData, enabled = true, transformCaptionsUrl } = opts;
|
|
22468
|
-
const captions =
|
|
22530
|
+
const captions = _chunkVYQNM75Rcjs.useCaptions.call(void 0, );
|
|
22469
22531
|
const query = _reactquery.useQuery.call(void 0, {
|
|
22470
22532
|
queryKey: ["walkthrough-video", endpoint],
|
|
22471
22533
|
enabled,
|
|
@@ -22484,14 +22546,14 @@ function useWalkthroughVideo(opts) {
|
|
|
22484
22546
|
if (res.status === 404) return null;
|
|
22485
22547
|
if (!res.ok) throw new Error(`Walkthrough video request failed (${res.status})`);
|
|
22486
22548
|
const body = await res.json();
|
|
22487
|
-
return _nullishCoalesce(_optionalChain([body, 'optionalAccess',
|
|
22549
|
+
return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _527 => _527.walkthroughVideo]), () => ( null));
|
|
22488
22550
|
},
|
|
22489
22551
|
// Per-observer transform — NEVER mutate the cached data. `select` also runs
|
|
22490
22552
|
// over `initialData`, so the SSR seed is rewritten too. Keeping the proxy
|
|
22491
22553
|
// rewrite here (not in queryFn) means a second consumer of the same
|
|
22492
22554
|
// endpoint can't inherit this observer's proxied captionsUrl from the cache.
|
|
22493
22555
|
select: (video) => {
|
|
22494
|
-
if (!_optionalChain([video, 'optionalAccess',
|
|
22556
|
+
if (!_optionalChain([video, 'optionalAccess', _528 => _528.captionsUrl])) return video;
|
|
22495
22557
|
if (transformCaptionsUrl && video.captionsUrl.startsWith("/")) {
|
|
22496
22558
|
return { ...video, captionsUrl: transformCaptionsUrl(video.captionsUrl) };
|
|
22497
22559
|
}
|
|
@@ -22538,7 +22600,7 @@ function VideoSourceSelector({
|
|
|
22538
22600
|
input.accept = "video/*";
|
|
22539
22601
|
input.onchange = async (e) => {
|
|
22540
22602
|
const target = e.target;
|
|
22541
|
-
const file = _optionalChain([target, 'access',
|
|
22603
|
+
const file = _optionalChain([target, 'access', _529 => _529.files, 'optionalAccess', _530 => _530[0]]);
|
|
22542
22604
|
if (!file) return;
|
|
22543
22605
|
setIsUploading(true);
|
|
22544
22606
|
setUploadProgress(0);
|
|
@@ -22663,7 +22725,7 @@ function VideoSourceSelector({
|
|
|
22663
22725
|
}
|
|
22664
22726
|
function DefaultVideoPreview({ videoUrl, onDelete, disabled }) {
|
|
22665
22727
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border", children: [
|
|
22666
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22728
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "file", url: videoUrl }) }),
|
|
22667
22729
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22668
22730
|
"button",
|
|
22669
22731
|
{
|
|
@@ -22714,7 +22776,7 @@ function SubtitlesEditor({
|
|
|
22714
22776
|
{
|
|
22715
22777
|
id,
|
|
22716
22778
|
value: subtitles || "",
|
|
22717
|
-
onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall',
|
|
22779
|
+
onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _531 => _531(e.target.value)]),
|
|
22718
22780
|
placeholder,
|
|
22719
22781
|
disabled: disabled || !onSubtitlesChange,
|
|
22720
22782
|
className: "h-full w-full resize-none border-0 bg-transparent p-4 text-ods-text-primary text-code placeholder:text-ods-text-secondary/50 focus:outline-none focus:ring-0",
|
|
@@ -22943,7 +23005,7 @@ var AIEnrichSection = ({
|
|
|
22943
23005
|
}) => {
|
|
22944
23006
|
const hasResults = status === "success" || status === "error";
|
|
22945
23007
|
const shouldDisable = disabled || !canEnrich;
|
|
22946
|
-
const unfilledFields = _optionalChain([requiredFields, 'optionalAccess',
|
|
23008
|
+
const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _532 => _532.filter, 'call', _533 => _533((f) => !f.isFilled)]) || [];
|
|
22947
23009
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
22948
23010
|
"div",
|
|
22949
23011
|
{
|
|
@@ -22975,7 +23037,7 @@ var AIEnrichSection = ({
|
|
|
22975
23037
|
{
|
|
22976
23038
|
id: "ai-enrich-custom-instructions",
|
|
22977
23039
|
value: _nullishCoalesce(customInstructions, () => ( "")),
|
|
22978
|
-
onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall',
|
|
23040
|
+
onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _534 => _534(e.target.value)]),
|
|
22979
23041
|
placeholder: customInstructionsPlaceholder,
|
|
22980
23042
|
disabled: loading,
|
|
22981
23043
|
maxLength: customInstructionsMaxLength,
|
|
@@ -23097,7 +23159,7 @@ function HighlightVideoSection({
|
|
|
23097
23159
|
input.accept = "video/*";
|
|
23098
23160
|
input.onchange = async (e) => {
|
|
23099
23161
|
const target = e.target;
|
|
23100
|
-
const file = _optionalChain([target, 'access',
|
|
23162
|
+
const file = _optionalChain([target, 'access', _535 => _535.files, 'optionalAccess', _536 => _536[0]]);
|
|
23101
23163
|
if (!file) return;
|
|
23102
23164
|
setUploadError(null);
|
|
23103
23165
|
try {
|
|
@@ -23187,7 +23249,7 @@ function HighlightVideoSection({
|
|
|
23187
23249
|
// Default simple preview — the <Video> SSOT (MuxPlayer) plays
|
|
23188
23250
|
// MP4 and Mux HLS alike; aspect-video box reserves the height.
|
|
23189
23251
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border bg-black", children: [
|
|
23190
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23252
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
|
|
23191
23253
|
onDeleteHighlight && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
23192
23254
|
"button",
|
|
23193
23255
|
{
|
|
@@ -23524,7 +23586,7 @@ function HighlightVideoPreview({
|
|
|
23524
23586
|
input.accept = "video/*";
|
|
23525
23587
|
input.onchange = async (e) => {
|
|
23526
23588
|
const target = e.target;
|
|
23527
|
-
const file = _optionalChain([target, 'access',
|
|
23589
|
+
const file = _optionalChain([target, 'access', _537 => _537.files, 'optionalAccess', _538 => _538[0]]);
|
|
23528
23590
|
if (!file) return;
|
|
23529
23591
|
await onUpload(file);
|
|
23530
23592
|
};
|
|
@@ -23708,7 +23770,7 @@ function HighlightVideoCombinedSection({
|
|
|
23708
23770
|
input.accept = "video/*";
|
|
23709
23771
|
input.onchange = async (e) => {
|
|
23710
23772
|
const target = e.target;
|
|
23711
|
-
const file = _optionalChain([target, 'access',
|
|
23773
|
+
const file = _optionalChain([target, 'access', _539 => _539.files, 'optionalAccess', _540 => _540[0]]);
|
|
23712
23774
|
if (!file) return;
|
|
23713
23775
|
await onUpload(file);
|
|
23714
23776
|
};
|
|
@@ -23923,7 +23985,7 @@ var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
|
|
|
23923
23985
|
] });
|
|
23924
23986
|
};
|
|
23925
23987
|
var CategorySection = ({ category, editMode, isExpanded, bulkLevel, onToggle, onBulkLevelChange, onPolicyPermissionChange }) => {
|
|
23926
|
-
const { innerRef, containerStyle } =
|
|
23988
|
+
const { innerRef, containerStyle } = _chunkVYQNM75Rcjs.useCollapsible.call(void 0, { expanded: isExpanded, durationMs: 300 });
|
|
23927
23989
|
const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
|
|
23928
23990
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
23929
23991
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -24091,7 +24153,7 @@ function WaitlistForm({
|
|
|
24091
24153
|
const { toast } = _chunkLEISUAHFcjs.useToast.call(void 0, );
|
|
24092
24154
|
const { honeypotInputProps, getSignals, resetSignals } = _chunkLEISUAHFcjs.useHumanitySignals.call(void 0, );
|
|
24093
24155
|
const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
|
|
24094
|
-
const isClient =
|
|
24156
|
+
const isClient = _chunkVYQNM75Rcjs.useIsHydrated.call(void 0, );
|
|
24095
24157
|
const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
|
|
24096
24158
|
const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
|
|
24097
24159
|
const isMailDomainGeneric = hasGenericEmailDomain(email);
|
|
@@ -24407,19 +24469,19 @@ function NotificationsProvider({
|
|
|
24407
24469
|
}, []);
|
|
24408
24470
|
const markRead = _react.useCallback.call(void 0, (id) => {
|
|
24409
24471
|
dispatch({ type: "markRead", id });
|
|
24410
|
-
void _optionalChain([actionsRef, 'access',
|
|
24472
|
+
void _optionalChain([actionsRef, 'access', _541 => _541.current, 'optionalAccess', _542 => _542.onMarkRead, 'optionalCall', _543 => _543(id)]);
|
|
24411
24473
|
}, []);
|
|
24412
24474
|
const markAllRead = _react.useCallback.call(void 0, () => {
|
|
24413
24475
|
dispatch({ type: "markAllRead" });
|
|
24414
|
-
void _optionalChain([actionsRef, 'access',
|
|
24476
|
+
void _optionalChain([actionsRef, 'access', _544 => _544.current, 'optionalAccess', _545 => _545.onMarkAllRead, 'optionalCall', _546 => _546()]);
|
|
24415
24477
|
}, []);
|
|
24416
24478
|
const markSettled = _react.useCallback.call(void 0, (id) => {
|
|
24417
24479
|
dispatch({ type: "markSettled", id });
|
|
24418
|
-
void _optionalChain([actionsRef, 'access',
|
|
24480
|
+
void _optionalChain([actionsRef, 'access', _547 => _547.current, 'optionalAccess', _548 => _548.onMarkSettled, 'optionalCall', _549 => _549(id)]);
|
|
24419
24481
|
}, []);
|
|
24420
24482
|
const remove = _react.useCallback.call(void 0, (id) => {
|
|
24421
24483
|
dispatch({ type: "remove", id });
|
|
24422
|
-
void _optionalChain([actionsRef, 'access',
|
|
24484
|
+
void _optionalChain([actionsRef, 'access', _550 => _550.current, 'optionalAccess', _551 => _551.onRemove, 'optionalCall', _552 => _552(id)]);
|
|
24423
24485
|
}, []);
|
|
24424
24486
|
const clear = _react.useCallback.call(void 0, () => dispatch({ type: "clear" }), []);
|
|
24425
24487
|
const open = _react.useCallback.call(void 0, () => setIsOpen(true), []);
|
|
@@ -24428,14 +24490,14 @@ function NotificationsProvider({
|
|
|
24428
24490
|
const setShowPopups = _react.useCallback.call(void 0,
|
|
24429
24491
|
(value2) => {
|
|
24430
24492
|
setShowPopupsState(value2);
|
|
24431
|
-
_optionalChain([onShowPopupsChange, 'optionalCall',
|
|
24493
|
+
_optionalChain([onShowPopupsChange, 'optionalCall', _553 => _553(value2)]);
|
|
24432
24494
|
},
|
|
24433
24495
|
[onShowPopupsChange]
|
|
24434
24496
|
);
|
|
24435
24497
|
const setShowDesktopPopups = _react.useCallback.call(void 0,
|
|
24436
24498
|
(value2) => {
|
|
24437
24499
|
setShowDesktopPopupsState(value2);
|
|
24438
|
-
_optionalChain([onShowDesktopPopupsChange, 'optionalCall',
|
|
24500
|
+
_optionalChain([onShowDesktopPopupsChange, 'optionalCall', _554 => _554(value2)]);
|
|
24439
24501
|
},
|
|
24440
24502
|
[onShowDesktopPopupsChange]
|
|
24441
24503
|
);
|
|
@@ -24551,7 +24613,7 @@ var AppLayoutDrawerRoot = ({
|
|
|
24551
24613
|
const handleOpenChange = _react.useCallback.call(void 0,
|
|
24552
24614
|
(next) => {
|
|
24553
24615
|
if (!isControlled) setInternalOpen(next);
|
|
24554
|
-
_optionalChain([onOpenChange, 'optionalCall',
|
|
24616
|
+
_optionalChain([onOpenChange, 'optionalCall', _555 => _555(next)]);
|
|
24555
24617
|
},
|
|
24556
24618
|
[isControlled, onOpenChange]
|
|
24557
24619
|
);
|
|
@@ -24568,9 +24630,9 @@ var AppLayoutDrawerRoot = ({
|
|
|
24568
24630
|
}
|
|
24569
24631
|
}));
|
|
24570
24632
|
_react.useEffect.call(void 0, () => {
|
|
24571
|
-
if (open) _optionalChain([coordination, 'optionalAccess',
|
|
24633
|
+
if (open) _optionalChain([coordination, 'optionalAccess', _556 => _556.notifyDrawerDidOpen, 'call', _557 => _557(selfHandle)]);
|
|
24572
24634
|
}, [open, coordination, selfHandle]);
|
|
24573
|
-
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess',
|
|
24635
|
+
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _558 => _558.registerDrawer, 'call', _559 => _559(selfHandle)]), [coordination, selfHandle]);
|
|
24574
24636
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DrawerOpenContext.Provider, { value: open, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive3.Root, { ...rest, open, onOpenChange: handleOpenChange, modal, children }) });
|
|
24575
24637
|
};
|
|
24576
24638
|
AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
|
|
@@ -24895,7 +24957,7 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
24895
24957
|
"data-state": open ? "open" : "closed",
|
|
24896
24958
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
24897
24959
|
"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",
|
|
24898
|
-
|
|
24960
|
+
_chunkVYQNM75Rcjs.OVERLAY_BACKDROP_CLASS,
|
|
24899
24961
|
// Persist mode only: hold the fade-out's final (transparent) frame
|
|
24900
24962
|
// so the backdrop doesn't snap back to opacity 1 and dim the whole
|
|
24901
24963
|
// content area while the drawer is "closed" (see PERSIST_CLOSED_HOLD).
|
|
@@ -24923,10 +24985,10 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
24923
24985
|
),
|
|
24924
24986
|
style,
|
|
24925
24987
|
onInteractOutside: (event) => {
|
|
24926
|
-
_optionalChain([onInteractOutside, 'optionalCall',
|
|
24988
|
+
_optionalChain([onInteractOutside, 'optionalCall', _560 => _560(event)]);
|
|
24927
24989
|
if (event.defaultPrevented) return;
|
|
24928
24990
|
const target = event.target;
|
|
24929
|
-
const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess',
|
|
24991
|
+
const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _561 => _561.contains, 'call', _562 => _562(target)]);
|
|
24930
24992
|
if (!isInsideContainer) {
|
|
24931
24993
|
event.preventDefault();
|
|
24932
24994
|
return;
|
|
@@ -24971,11 +25033,11 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
24971
25033
|
}
|
|
24972
25034
|
);
|
|
24973
25035
|
AppLayoutDrawerContent.displayName = "AppLayoutDrawerContent";
|
|
24974
|
-
var AppLayoutDrawerHeader =
|
|
24975
|
-
var AppLayoutDrawerTitle =
|
|
24976
|
-
var AppLayoutDrawerDescription =
|
|
24977
|
-
var AppLayoutDrawerBody =
|
|
24978
|
-
var AppLayoutDrawerFooter =
|
|
25036
|
+
var AppLayoutDrawerHeader = _chunkVYQNM75Rcjs.DrawerHeader;
|
|
25037
|
+
var AppLayoutDrawerTitle = _chunkVYQNM75Rcjs.DrawerTitle;
|
|
25038
|
+
var AppLayoutDrawerDescription = _chunkVYQNM75Rcjs.DrawerDescription;
|
|
25039
|
+
var AppLayoutDrawerBody = _chunkVYQNM75Rcjs.DrawerBody;
|
|
25040
|
+
var AppLayoutDrawerFooter = _chunkVYQNM75Rcjs.DrawerFooter;
|
|
24979
25041
|
|
|
24980
25042
|
// src/components/features/notifications/notification-tile.tsx
|
|
24981
25043
|
|
|
@@ -25029,7 +25091,7 @@ function NotificationTile({
|
|
|
25029
25091
|
if (!counting) return void 0;
|
|
25030
25092
|
const remaining = Math.max(0, liveDurationMs - initialElapsed);
|
|
25031
25093
|
const timer = window.setTimeout(() => {
|
|
25032
|
-
_optionalChain([onSettle, 'optionalCall',
|
|
25094
|
+
_optionalChain([onSettle, 'optionalCall', _563 => _563(id)]);
|
|
25033
25095
|
}, remaining);
|
|
25034
25096
|
return () => window.clearTimeout(timer);
|
|
25035
25097
|
}, [id, counting, initialElapsed, liveDurationMs, onSettle]);
|
|
@@ -25063,13 +25125,13 @@ function NotificationTile({
|
|
|
25063
25125
|
}
|
|
25064
25126
|
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkLEISUAHFcjs.dotColorByVariant[accentVariant]) }))) }),
|
|
25065
25127
|
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" }),
|
|
25066
|
-
!isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children:
|
|
25128
|
+
!isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkVYQNM75Rcjs.formatTicketRelativeTime.call(void 0, createdAtIso) }) : null,
|
|
25067
25129
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "relative size-4 shrink-0", children: [
|
|
25068
25130
|
{
|
|
25069
25131
|
active: isLive,
|
|
25070
25132
|
label: "Dismiss notification",
|
|
25071
25133
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.XmarkIcon, { size: 16 }),
|
|
25072
|
-
onClick: () => _optionalChain([onSettle, 'optionalCall',
|
|
25134
|
+
onClick: () => _optionalChain([onSettle, 'optionalCall', _564 => _564(id)])
|
|
25073
25135
|
},
|
|
25074
25136
|
{
|
|
25075
25137
|
active: !isLive,
|
|
@@ -25160,7 +25222,7 @@ function NotificationDrawer({
|
|
|
25160
25222
|
const unreadNotifications = notifications.filter((n) => !n.read);
|
|
25161
25223
|
const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
25162
25224
|
/* @__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,
|
|
25163
|
-
|
|
25225
|
+
_chunkVYQNM75Rcjs.DrawerTitle,
|
|
25164
25226
|
{
|
|
25165
25227
|
hideClose: true,
|
|
25166
25228
|
className: "truncate",
|
|
@@ -25219,8 +25281,8 @@ function NotificationDrawer({
|
|
|
25219
25281
|
}
|
|
25220
25282
|
) });
|
|
25221
25283
|
}
|
|
25222
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25223
|
-
|
|
25284
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Drawer, { open: isOpen, onOpenChange: (v) => v ? open() : close(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25285
|
+
_chunkVYQNM75Rcjs.DrawerContent,
|
|
25224
25286
|
{
|
|
25225
25287
|
side: "right",
|
|
25226
25288
|
"aria-describedby": void 0,
|
|
@@ -25257,7 +25319,7 @@ function DrawerScrollList({
|
|
|
25257
25319
|
if (!sentinel || !root) return void 0;
|
|
25258
25320
|
const observer = new IntersectionObserver(
|
|
25259
25321
|
(entries) => {
|
|
25260
|
-
if (_optionalChain([entries, 'access',
|
|
25322
|
+
if (_optionalChain([entries, 'access', _565 => _565[0], 'optionalAccess', _566 => _566.isIntersecting])) _optionalChain([loadMoreRef, 'access', _567 => _567.current, 'optionalCall', _568 => _568()]);
|
|
25261
25323
|
},
|
|
25262
25324
|
{ root, rootMargin: loadMoreRootMargin }
|
|
25263
25325
|
);
|
|
@@ -25272,7 +25334,7 @@ function DrawerScrollList({
|
|
|
25272
25334
|
className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
|
|
25273
25335
|
children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
25274
25336
|
unreadNotifications.map((n) => {
|
|
25275
|
-
const custom = _optionalChain([renderTile, 'optionalCall',
|
|
25337
|
+
const custom = _optionalChain([renderTile, 'optionalCall', _569 => _569(n, { onComplete, onSettle, liveDurationMs })]);
|
|
25276
25338
|
if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
|
|
25277
25339
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25278
25340
|
NotificationTile,
|
|
@@ -25392,7 +25454,7 @@ function NotificationPopups({
|
|
|
25392
25454
|
}) {
|
|
25393
25455
|
const ctx = useOptionalNotifications();
|
|
25394
25456
|
const [now, setNow] = _react.useState.call(void 0, () => Date.now());
|
|
25395
|
-
const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess',
|
|
25457
|
+
const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _570 => _570.notifications, 'access', _571 => _571.some, 'call', _572 => _572((n) => !n.read && !n.settled)]));
|
|
25396
25458
|
_react.useEffect.call(void 0, () => {
|
|
25397
25459
|
if (!hasAgeingNotifications) return void 0;
|
|
25398
25460
|
const id = setInterval(() => setNow(Date.now()), 500);
|
|
@@ -25435,7 +25497,7 @@ function NotificationPopups({
|
|
|
25435
25497
|
className
|
|
25436
25498
|
),
|
|
25437
25499
|
children: live.map((n) => {
|
|
25438
|
-
const custom = _optionalChain([renderTile, 'optionalCall',
|
|
25500
|
+
const custom = _optionalChain([renderTile, 'optionalCall', _573 => _573(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
|
|
25439
25501
|
if (custom) {
|
|
25440
25502
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
|
|
25441
25503
|
}
|
|
@@ -25474,34 +25536,34 @@ function NotificationPopups({
|
|
|
25474
25536
|
// src/components/features/notifications/types.ts
|
|
25475
25537
|
var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
|
|
25476
25538
|
function isApprovalNotification(notification) {
|
|
25477
|
-
return _optionalChain([notification, 'access',
|
|
25539
|
+
return _optionalChain([notification, 'access', _574 => _574.meta, 'optionalAccess', _575 => _575.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
|
|
25478
25540
|
}
|
|
25479
25541
|
function getApprovalMeta(notification) {
|
|
25480
25542
|
if (!isApprovalNotification(notification)) return null;
|
|
25481
25543
|
const meta = notification.meta;
|
|
25482
|
-
const approvalRequestId = _optionalChain([meta, 'optionalAccess',
|
|
25483
|
-
const toolCalls = _optionalChain([meta, 'optionalAccess',
|
|
25544
|
+
const approvalRequestId = _optionalChain([meta, 'optionalAccess', _576 => _576.approvalRequestId]);
|
|
25545
|
+
const toolCalls = _optionalChain([meta, 'optionalAccess', _577 => _577.toolCalls]);
|
|
25484
25546
|
if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
|
|
25485
25547
|
return {
|
|
25486
25548
|
approvalRequestId,
|
|
25487
|
-
dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
25488
|
-
ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
25489
|
-
approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
25490
|
-
resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
25491
|
-
resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
25549
|
+
dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _578 => _578.dialogId]), () => ( null)),
|
|
25550
|
+
ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.ticketId]), () => ( null)),
|
|
25551
|
+
approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _580 => _580.approvalType]), () => ( null)),
|
|
25552
|
+
resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _581 => _581.resolution]), () => ( null)),
|
|
25553
|
+
resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _582 => _582.resolvedByName]), () => ( null)),
|
|
25492
25554
|
toolCalls
|
|
25493
25555
|
};
|
|
25494
25556
|
}
|
|
25495
25557
|
function resolutionToStatus(resolution) {
|
|
25496
25558
|
switch (typeof resolution === "string" ? resolution.toUpperCase() : void 0) {
|
|
25497
25559
|
case "APPROVED":
|
|
25498
|
-
return
|
|
25560
|
+
return _chunkVYQNM75Rcjs.APPROVAL_STATUS.APPROVED;
|
|
25499
25561
|
case "REJECTED":
|
|
25500
|
-
return
|
|
25562
|
+
return _chunkVYQNM75Rcjs.APPROVAL_STATUS.REJECTED;
|
|
25501
25563
|
case "CANCELLED":
|
|
25502
|
-
return
|
|
25564
|
+
return _chunkVYQNM75Rcjs.APPROVAL_STATUS.CANCELLED;
|
|
25503
25565
|
default:
|
|
25504
|
-
return
|
|
25566
|
+
return _chunkVYQNM75Rcjs.APPROVAL_STATUS.PENDING;
|
|
25505
25567
|
}
|
|
25506
25568
|
}
|
|
25507
25569
|
function approvalMetaToBatchData(approval) {
|
|
@@ -25538,10 +25600,10 @@ function ApprovalRequestNotificationTile({
|
|
|
25538
25600
|
const [processing, setProcessing] = _react.useState.call(void 0, false);
|
|
25539
25601
|
const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
|
|
25540
25602
|
const approval = getApprovalMeta(notification);
|
|
25541
|
-
const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess',
|
|
25603
|
+
const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _583 => _583.resolution]));
|
|
25542
25604
|
const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
|
|
25543
25605
|
const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
|
|
25544
|
-
const { innerRef, containerStyle } =
|
|
25606
|
+
const { innerRef, containerStyle } = _chunkVYQNM75Rcjs.useCollapsible.call(void 0, { expanded });
|
|
25545
25607
|
if (!approval || !batchData) return null;
|
|
25546
25608
|
const tileNotification = {
|
|
25547
25609
|
...notification,
|
|
@@ -25594,7 +25656,7 @@ function ApprovalRequestNotificationTile({
|
|
|
25594
25656
|
}
|
|
25595
25657
|
)
|
|
25596
25658
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
25597
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25659
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ApprovalStatusTag, { status }),
|
|
25598
25660
|
approval.resolvedByName ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: [
|
|
25599
25661
|
"by ",
|
|
25600
25662
|
approval.resolvedByName
|
|
@@ -25612,12 +25674,12 @@ function ApprovalRequestNotificationTile({
|
|
|
25612
25674
|
"aria-expanded": expanded,
|
|
25613
25675
|
"aria-label": toggleLabel,
|
|
25614
25676
|
className: "ml-auto w-6 shrink-0 px-0 md:w-8",
|
|
25615
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25677
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.ExpandChevron, { expanded })
|
|
25616
25678
|
}
|
|
25617
25679
|
)
|
|
25618
25680
|
] }),
|
|
25619
25681
|
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,
|
|
25620
|
-
|
|
25682
|
+
_chunkVYQNM75Rcjs.ApprovalBatchMessage,
|
|
25621
25683
|
{
|
|
25622
25684
|
data: batchData,
|
|
25623
25685
|
showExecutionStatus: false,
|
|
@@ -25860,7 +25922,7 @@ function TimeTrackerPanel({
|
|
|
25860
25922
|
error: showFieldError ? "Required if no notes added" : void 0,
|
|
25861
25923
|
disableClientFilter: !!onTicketSearch,
|
|
25862
25924
|
onInputChange: (value, reason) => {
|
|
25863
|
-
if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall',
|
|
25925
|
+
if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _584 => _584(value)]);
|
|
25864
25926
|
}
|
|
25865
25927
|
}
|
|
25866
25928
|
),
|
|
@@ -25875,7 +25937,7 @@ function TimeTrackerPanel({
|
|
|
25875
25937
|
disabled: customerLocked,
|
|
25876
25938
|
disableClientFilter: !!onCustomerSearch,
|
|
25877
25939
|
onInputChange: (value, reason) => {
|
|
25878
|
-
if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall',
|
|
25940
|
+
if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _585 => _585(value)]);
|
|
25879
25941
|
},
|
|
25880
25942
|
startAdornment: customerStartAdornment,
|
|
25881
25943
|
renderOption: renderCustomerOption
|
|
@@ -25948,7 +26010,7 @@ var STATUS_TAG_SKIN = "gap-[var(--spacing-system-xs)] font-mono font-medium uppe
|
|
|
25948
26010
|
function StatusTag({ status }) {
|
|
25949
26011
|
if (status === "tracking") {
|
|
25950
26012
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25951
|
-
|
|
26013
|
+
_chunkVYQNM75Rcjs.Tag,
|
|
25952
26014
|
{
|
|
25953
26015
|
variant: "success",
|
|
25954
26016
|
className: STATUS_TAG_SKIN,
|
|
@@ -25958,9 +26020,9 @@ function StatusTag({ status }) {
|
|
|
25958
26020
|
);
|
|
25959
26021
|
}
|
|
25960
26022
|
if (status === "paused") {
|
|
25961
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26023
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: "warning", className: STATUS_TAG_SKIN, icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.PauseIcon, { className: "h-4 w-4" }), label: "Paused" });
|
|
25962
26024
|
}
|
|
25963
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26025
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: "grey", className: STATUS_TAG_SKIN, label: "Ready to Track" });
|
|
25964
26026
|
}
|
|
25965
26027
|
function LastEntryRow({ entry, onClick }) {
|
|
25966
26028
|
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: [
|
|
@@ -25977,7 +26039,7 @@ function LastEntryRow({ entry, onClick }) {
|
|
|
25977
26039
|
{
|
|
25978
26040
|
variant: "outline",
|
|
25979
26041
|
size: "icon",
|
|
25980
|
-
onClick: () => _optionalChain([onClick, 'optionalCall',
|
|
26042
|
+
onClick: () => _optionalChain([onClick, 'optionalCall', _586 => _586(entry)]),
|
|
25981
26043
|
disabled: !onClick,
|
|
25982
26044
|
"aria-label": `Open entry: ${entry.title}`,
|
|
25983
26045
|
className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
|
|
@@ -26061,28 +26123,28 @@ function HeaderButton({
|
|
|
26061
26123
|
function TimeTrackerHeaderButton({ className, disabled }) {
|
|
26062
26124
|
const ctx = useOptionalTimeTracker();
|
|
26063
26125
|
const elapsedLabel = useTrackerClock({
|
|
26064
|
-
status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
26065
|
-
runningSince: _optionalChain([ctx, 'optionalAccess',
|
|
26066
|
-
accumulatedMs: _optionalChain([ctx, 'optionalAccess',
|
|
26126
|
+
status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _587 => _587.status]), () => ( "ready")),
|
|
26127
|
+
runningSince: _optionalChain([ctx, 'optionalAccess', _588 => _588.runningSince]),
|
|
26128
|
+
accumulatedMs: _optionalChain([ctx, 'optionalAccess', _589 => _589.accumulatedMs])
|
|
26067
26129
|
});
|
|
26068
26130
|
const layoutContainer = useAppLayoutDrawerContainer();
|
|
26069
26131
|
const coordination = useAppLayoutDrawerCoordination();
|
|
26070
|
-
const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
26132
|
+
const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _590 => _590.isOpen]), () => ( false));
|
|
26071
26133
|
const isOpenRef = _react.useRef.call(void 0, isOpen);
|
|
26072
|
-
const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess',
|
|
26134
|
+
const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _591 => _591.close]));
|
|
26073
26135
|
_react.useEffect.call(void 0, () => {
|
|
26074
26136
|
isOpenRef.current = isOpen;
|
|
26075
|
-
closeRef.current = _optionalChain([ctx, 'optionalAccess',
|
|
26137
|
+
closeRef.current = _optionalChain([ctx, 'optionalAccess', _592 => _592.close]);
|
|
26076
26138
|
});
|
|
26077
26139
|
const [selfHandle] = _react.useState.call(void 0, () => ({
|
|
26078
26140
|
close: () => {
|
|
26079
|
-
if (isOpenRef.current) _optionalChain([closeRef, 'access',
|
|
26141
|
+
if (isOpenRef.current) _optionalChain([closeRef, 'access', _593 => _593.current, 'optionalCall', _594 => _594()]);
|
|
26080
26142
|
}
|
|
26081
26143
|
}));
|
|
26082
26144
|
_react.useEffect.call(void 0, () => {
|
|
26083
|
-
if (isOpen) _optionalChain([coordination, 'optionalAccess',
|
|
26145
|
+
if (isOpen) _optionalChain([coordination, 'optionalAccess', _595 => _595.notifyDrawerDidOpen, 'call', _596 => _596(selfHandle)]);
|
|
26084
26146
|
}, [isOpen, coordination, selfHandle]);
|
|
26085
|
-
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess',
|
|
26147
|
+
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _597 => _597.registerDrawer, 'call', _598 => _598(selfHandle)]), [coordination, selfHandle]);
|
|
26086
26148
|
if (!ctx) return null;
|
|
26087
26149
|
const { open, close, status } = ctx;
|
|
26088
26150
|
const isPaused = status === "paused";
|
|
@@ -26129,7 +26191,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
26129
26191
|
"data-state": isOpen ? "open" : "closed",
|
|
26130
26192
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
26131
26193
|
layoutContainer ? "absolute inset-0 z-[102]" : "fixed inset-0 z-[1299]",
|
|
26132
|
-
|
|
26194
|
+
_chunkVYQNM75Rcjs.OVERLAY_BACKDROP_CLASS,
|
|
26133
26195
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
26134
26196
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0"
|
|
26135
26197
|
)
|
|
@@ -26214,7 +26276,7 @@ function autoScrollAncestors(element) {
|
|
|
26214
26276
|
|
|
26215
26277
|
// src/components/features/board/aim.ts
|
|
26216
26278
|
var _closestedge = require('@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge');
|
|
26217
|
-
var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access',
|
|
26279
|
+
var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access', _599 => _599.find, 'call', _600 => _600((c) => c.id === columnId), 'optionalAccess', _601 => _601.tickets]), () => ( []))).filter((t) => t.id !== ticketId);
|
|
26218
26280
|
function laneOf(columns, ticketId) {
|
|
26219
26281
|
return _nullishCoalesce(columns.find((c) => c.tickets.some((t) => t.id === ticketId)), () => ( null));
|
|
26220
26282
|
}
|
|
@@ -26258,11 +26320,11 @@ function aimToChange(columns, ticketId, aim) {
|
|
|
26258
26320
|
const lane = laneOf(columns, ticketId);
|
|
26259
26321
|
if (!lane) return null;
|
|
26260
26322
|
const others = othersIn(columns, aim.columnId, ticketId);
|
|
26261
|
-
const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access',
|
|
26262
|
-
const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access',
|
|
26323
|
+
const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _602 => _602[aim.index - 1], 'optionalAccess', _603 => _603.id]), () => ( null));
|
|
26324
|
+
const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _604 => _604[aim.index], 'optionalAccess', _605 => _605.id]), () => ( null));
|
|
26263
26325
|
if (lane.id === aim.columnId) {
|
|
26264
26326
|
const currentIndex = lane.tickets.findIndex((t) => t.id === ticketId);
|
|
26265
|
-
if ((_nullishCoalesce(_optionalChain([lane, 'access',
|
|
26327
|
+
if ((_nullishCoalesce(_optionalChain([lane, 'access', _606 => _606.tickets, 'access', _607 => _607[currentIndex - 1], 'optionalAccess', _608 => _608.id]), () => ( null))) === afterTicketId) return null;
|
|
26266
26328
|
}
|
|
26267
26329
|
return { ticketId, fromColumnId: lane.id, toColumnId: aim.columnId, afterTicketId, beforeTicketId };
|
|
26268
26330
|
}
|
|
@@ -26283,7 +26345,7 @@ function BoardColumnHeader({
|
|
|
26283
26345
|
}) {
|
|
26284
26346
|
const count = _nullishCoalesce(column.total, () => ( column.tickets.length));
|
|
26285
26347
|
const tagStatus = _nullishCoalesce(column.statusKey, () => ( column.id));
|
|
26286
|
-
const useStatusVariant =
|
|
26348
|
+
const useStatusVariant = _chunkVYQNM75Rcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
|
|
26287
26349
|
if (collapsed) {
|
|
26288
26350
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
26289
26351
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -26298,7 +26360,7 @@ function BoardColumnHeader({
|
|
|
26298
26360
|
}
|
|
26299
26361
|
),
|
|
26300
26362
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26301
|
-
|
|
26363
|
+
_chunkVYQNM75Rcjs.TicketStatusTag,
|
|
26302
26364
|
{
|
|
26303
26365
|
status: tagStatus,
|
|
26304
26366
|
label: column.label,
|
|
@@ -26311,7 +26373,7 @@ function BoardColumnHeader({
|
|
|
26311
26373
|
}
|
|
26312
26374
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
26313
26375
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
26314
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26376
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
|
|
26315
26377
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h5", style: useStatusVariant ? void 0 : { color: column.color }, children: count })
|
|
26316
26378
|
] }),
|
|
26317
26379
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
@@ -26462,7 +26524,7 @@ function holdMoveDragEffect(element) {
|
|
|
26462
26524
|
|
|
26463
26525
|
function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
26464
26526
|
const [expanded, setExpanded] = _react.useState.call(void 0, false);
|
|
26465
|
-
const { innerRef, containerStyle } =
|
|
26527
|
+
const { innerRef, containerStyle } = _chunkVYQNM75Rcjs.useCollapsible.call(void 0, { expanded });
|
|
26466
26528
|
const isAdmin = pendingApproval.approvalType === "ADMIN";
|
|
26467
26529
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
|
|
26468
26530
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -26491,7 +26553,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
|
26491
26553
|
}
|
|
26492
26554
|
),
|
|
26493
26555
|
/* @__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,
|
|
26494
|
-
|
|
26556
|
+
_chunkVYQNM75Rcjs.ApprovalBatchMessage,
|
|
26495
26557
|
{
|
|
26496
26558
|
className: "mb-0",
|
|
26497
26559
|
data: {
|
|
@@ -26532,14 +26594,14 @@ function useIsLanding(ticketId) {
|
|
|
26532
26594
|
return _react.useContext.call(void 0, LandingCardContext) === ticketId;
|
|
26533
26595
|
}
|
|
26534
26596
|
function hasMoveSettled(columns, move) {
|
|
26535
|
-
const tickets = _optionalChain([columns, 'access',
|
|
26597
|
+
const tickets = _optionalChain([columns, 'access', _609 => _609.find, 'call', _610 => _610((c) => c.id === move.toColumnId), 'optionalAccess', _611 => _611.tickets]);
|
|
26536
26598
|
if (!tickets) return false;
|
|
26537
26599
|
const index = tickets.findIndex((t) => t.id === move.ticketId);
|
|
26538
26600
|
if (index < 0) return false;
|
|
26539
26601
|
if (move.fromColumnId === move.toColumnId) {
|
|
26540
|
-
return (_nullishCoalesce(_optionalChain([tickets, 'access',
|
|
26602
|
+
return (_nullishCoalesce(_optionalChain([tickets, 'access', _612 => _612[index - 1], 'optionalAccess', _613 => _613.id]), () => ( null))) === move.afterTicketId;
|
|
26541
26603
|
}
|
|
26542
|
-
return !_optionalChain([columns, 'access',
|
|
26604
|
+
return !_optionalChain([columns, 'access', _614 => _614.find, 'call', _615 => _615((c) => c.id === move.fromColumnId), 'optionalAccess', _616 => _616.tickets, 'access', _617 => _617.some, 'call', _618 => _618((t) => t.id === move.ticketId)]);
|
|
26543
26605
|
}
|
|
26544
26606
|
|
|
26545
26607
|
// src/components/features/board/ticket-card.tsx
|
|
@@ -26563,10 +26625,10 @@ var ACTIVITY_DEFAULT_LABEL = {
|
|
|
26563
26625
|
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";
|
|
26564
26626
|
function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
|
|
26565
26627
|
const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
|
|
26566
|
-
const newMessageTextColor = columnColor ?
|
|
26567
|
-
const showDeviceRow = !!(_optionalChain([ticket, 'access',
|
|
26568
|
-
const deviceText = [_optionalChain([ticket, 'access',
|
|
26569
|
-
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access',
|
|
26628
|
+
const newMessageTextColor = columnColor ? _chunkVYQNM75Rcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
|
|
26629
|
+
const showDeviceRow = !!(_optionalChain([ticket, 'access', _619 => _619.deviceHostnames, 'optionalAccess', _620 => _620.length]) || ticket.organizationName);
|
|
26630
|
+
const deviceText = [_optionalChain([ticket, 'access', _621 => _621.deviceHostnames, 'optionalAccess', _622 => _622.join, 'call', _623 => _623(", ")]), ticket.organizationName].filter(Boolean).join(", ");
|
|
26631
|
+
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _624 => _624.assignees, 'optionalAccess', _625 => _625.length]) || renderAssignSlot);
|
|
26570
26632
|
const rightSection = hasRightSection ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
26571
26633
|
ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26572
26634
|
_chunkGSQM4PDRcjs.Flag02Icon,
|
|
@@ -26575,7 +26637,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
26575
26637
|
"aria-label": `Priority: ${ticket.priority}`
|
|
26576
26638
|
}
|
|
26577
26639
|
),
|
|
26578
|
-
renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access',
|
|
26640
|
+
renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _626 => _626.assignees, 'optionalAccess', _627 => _627.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
|
|
26579
26641
|
ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map(
|
|
26580
26642
|
(a) => a.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26581
26643
|
DeletedUserAvatar,
|
|
@@ -26602,8 +26664,8 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
26602
26664
|
] })
|
|
26603
26665
|
] }) : null
|
|
26604
26666
|
] }) : null;
|
|
26605
|
-
const timestampLabel = ticket.createdAt ?
|
|
26606
|
-
const tooltipLabel = ticket.createdAt ?
|
|
26667
|
+
const timestampLabel = ticket.createdAt ? _chunkVYQNM75Rcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
|
|
26668
|
+
const tooltipLabel = ticket.createdAt ? _chunkVYQNM75Rcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
|
|
26607
26669
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
26608
26670
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
|
|
26609
26671
|
/* @__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: [
|
|
@@ -26615,10 +26677,10 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
26615
26677
|
] }),
|
|
26616
26678
|
rightSection
|
|
26617
26679
|
] }),
|
|
26618
|
-
_optionalChain([ticket, 'access',
|
|
26619
|
-
timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26620
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26621
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26680
|
+
_optionalChain([ticket, 'access', _628 => _628.tags, 'optionalAccess', _629 => _629.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
|
|
26681
|
+
timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkVYQNM75Rcjs.Tooltip, { children: [
|
|
26682
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
|
|
26683
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.TooltipContent, { children: tooltipLabel })
|
|
26622
26684
|
] }) }),
|
|
26623
26685
|
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: [
|
|
26624
26686
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.UserCheckIcon, { className: "size-4 shrink-0" }),
|
|
@@ -26638,7 +26700,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
26638
26700
|
}
|
|
26639
26701
|
),
|
|
26640
26702
|
showNewMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26641
|
-
|
|
26703
|
+
_chunkVYQNM75Rcjs.Tag,
|
|
26642
26704
|
{
|
|
26643
26705
|
label: "New Message",
|
|
26644
26706
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.MessagesIcon, { size: 16, color: newMessageTextColor }),
|
|
@@ -26682,7 +26744,7 @@ var TicketCard = _react.memo.call(void 0, function TicketCardImpl({
|
|
|
26682
26744
|
const isLanding = useIsLanding(ticket.id);
|
|
26683
26745
|
const aim = useDropAim();
|
|
26684
26746
|
const closestEdge = aim && aim.columnId === columnId && aim.ticketId === ticket.id ? aim.edge : null;
|
|
26685
|
-
const isSource = isDragging || _optionalChain([aim, 'optionalAccess',
|
|
26747
|
+
const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _630 => _630.ticket, 'access', _631 => _631.id]) === ticket.id;
|
|
26686
26748
|
const lift = useBoardLift();
|
|
26687
26749
|
const handleKeyDown = (e) => {
|
|
26688
26750
|
if (e.key !== " " || dragDisabled || !lift) return;
|
|
@@ -26852,8 +26914,8 @@ function TicketTagRow({ tags }) {
|
|
|
26852
26914
|
const visible = tags.slice(0, MAX_VISIBLE_TAGS);
|
|
26853
26915
|
const hidden = tags.length - visible.length;
|
|
26854
26916
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 flex-wrap items-start gap-[var(--spacing-system-xxs)] overflow-clip", children: [
|
|
26855
|
-
visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26856
|
-
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26917
|
+
visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: "outline", label: tag }, tag)),
|
|
26918
|
+
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVYQNM75Rcjs.Tag, { variant: "outline", label: `+${hidden}` })
|
|
26857
26919
|
] });
|
|
26858
26920
|
}
|
|
26859
26921
|
|
|
@@ -26932,7 +26994,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
|
|
|
26932
26994
|
// large ones like the only thing that did.
|
|
26933
26995
|
getData: ({ input, element: lane, source }) => {
|
|
26934
26996
|
const nearest = nearestCardIn(lane, input.clientY, String(source.data.ticketId));
|
|
26935
|
-
const ticketId = _optionalChain([nearest, 'optionalAccess',
|
|
26997
|
+
const ticketId = _optionalChain([nearest, 'optionalAccess', _632 => _632.dataset, 'access', _633 => _633.ticketId]);
|
|
26936
26998
|
if (!nearest || !ticketId) return { type: "column", columnId: column.id };
|
|
26937
26999
|
return _closestedge.attachClosestEdge.call(void 0,
|
|
26938
27000
|
{ type: "ticket", ticketId, columnId: column.id },
|
|
@@ -27020,7 +27082,7 @@ function ColumnBody({
|
|
|
27020
27082
|
const observer = new IntersectionObserver(
|
|
27021
27083
|
(entries) => {
|
|
27022
27084
|
if (entries.some((e) => e.isIntersecting)) {
|
|
27023
|
-
_optionalChain([loadMoreRef, 'access',
|
|
27085
|
+
_optionalChain([loadMoreRef, 'access', _634 => _634.current, 'optionalCall', _635 => _635(columnIdRef.current)]);
|
|
27024
27086
|
}
|
|
27025
27087
|
},
|
|
27026
27088
|
{ root, rootMargin: loadMoreRootMargin }
|
|
@@ -27045,7 +27107,7 @@ function ColumnBody({
|
|
|
27045
27107
|
ticket: t,
|
|
27046
27108
|
columnId: column.id,
|
|
27047
27109
|
columnColor: column.color,
|
|
27048
|
-
href: _optionalChain([getTicketHref, 'optionalCall',
|
|
27110
|
+
href: _optionalChain([getTicketHref, 'optionalCall', _636 => _636(t.id)]),
|
|
27049
27111
|
renderAssignSlot,
|
|
27050
27112
|
onApprove,
|
|
27051
27113
|
onReject,
|
|
@@ -27173,7 +27235,7 @@ function Board({
|
|
|
27173
27235
|
const [landing, setLanding] = _react.useState.call(void 0, null);
|
|
27174
27236
|
const landingTimer = _react.useRef.call(void 0, null);
|
|
27175
27237
|
const pointRef = _react.useRef.call(void 0, { x: 0, y: 0 });
|
|
27176
|
-
const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access',
|
|
27238
|
+
const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access', _637 => _637.find, 'call', _638 => _638((c) => c.id === columnId), 'optionalAccess', _639 => _639.label]), () => ( columnId)), [view]);
|
|
27177
27239
|
const acceptsLifted = _react.useCallback.call(void 0,
|
|
27178
27240
|
(fromColumnId) => (column) => {
|
|
27179
27241
|
if (column.dropDisabled || collapsed[column.id]) return false;
|
|
@@ -27187,7 +27249,7 @@ function Board({
|
|
|
27187
27249
|
const start = initialAim(view, ticketId);
|
|
27188
27250
|
if (!start) return;
|
|
27189
27251
|
setLifted({ ticketId, aim: start });
|
|
27190
|
-
const title = _nullishCoalesce(_optionalChain([laneOf, 'call',
|
|
27252
|
+
const title = _nullishCoalesce(_optionalChain([laneOf, 'call', _640 => _640(view, ticketId), 'optionalAccess', _641 => _641.tickets, 'access', _642 => _642.find, 'call', _643 => _643((t) => t.id === ticketId), 'optionalAccess', _644 => _644.title]), () => ( "Ticket"));
|
|
27191
27253
|
setAnnouncement(`${title} lifted. Use the arrow keys to move it, space to drop it, escape to put it back.`);
|
|
27192
27254
|
},
|
|
27193
27255
|
[view]
|
|
@@ -27212,11 +27274,11 @@ function Board({
|
|
|
27212
27274
|
const walk = _react.useCallback.call(void 0,
|
|
27213
27275
|
(key) => {
|
|
27214
27276
|
if (!lifted) return;
|
|
27215
|
-
const from = _nullishCoalesce(_optionalChain([laneOf, 'call',
|
|
27277
|
+
const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _645 => _645(view, lifted.ticketId), 'optionalAccess', _646 => _646.id]), () => ( lifted.aim.columnId));
|
|
27216
27278
|
const next = moveAim(view, lifted.ticketId, lifted.aim, key, acceptsLifted(from));
|
|
27217
27279
|
if (next === lifted.aim) return;
|
|
27218
27280
|
setLifted({ ...lifted, aim: next });
|
|
27219
|
-
const total = (_nullishCoalesce(_optionalChain([view, 'access',
|
|
27281
|
+
const total = (_nullishCoalesce(_optionalChain([view, 'access', _647 => _647.find, 'call', _648 => _648((c) => c.id === next.columnId), 'optionalAccess', _649 => _649.tickets]), () => ( []))).filter(
|
|
27220
27282
|
(t) => t.id !== lifted.ticketId
|
|
27221
27283
|
).length;
|
|
27222
27284
|
setAnnouncement(`${laneLabel(next.columnId)}, position ${next.index + 1} of ${total + 1}.`);
|
|
@@ -27243,11 +27305,11 @@ function Board({
|
|
|
27243
27305
|
}, [lifted, drop, walk]);
|
|
27244
27306
|
_react.useEffect.call(void 0, () => {
|
|
27245
27307
|
if (!lifted) return;
|
|
27246
|
-
_optionalChain([boardRef, 'access',
|
|
27308
|
+
_optionalChain([boardRef, 'access', _650 => _650.current, 'optionalAccess', _651 => _651.querySelector, 'call', _652 => _652(`[${DROP_LINE_ATTRIBUTE}]`), 'optionalAccess', _653 => _653.scrollIntoView, 'call', _654 => _654({ block: "nearest", inline: "nearest" })]);
|
|
27247
27309
|
}, [lifted]);
|
|
27248
27310
|
const keyboardAim = _react.useMemo.call(void 0, () => {
|
|
27249
27311
|
if (!lifted) return null;
|
|
27250
|
-
const ticket = _optionalChain([laneOf, 'call',
|
|
27312
|
+
const ticket = _optionalChain([laneOf, 'call', _655 => _655(view, lifted.ticketId), 'optionalAccess', _656 => _656.tickets, 'access', _657 => _657.find, 'call', _658 => _658((t) => t.id === lifted.ticketId)]);
|
|
27251
27313
|
if (!ticket) return null;
|
|
27252
27314
|
const anchor = aimToChange(view, lifted.ticketId, lifted.aim) ? aimAnchor(view, lifted.ticketId, lifted.aim) : { ticketId: null, edge: null };
|
|
27253
27315
|
return { columnId: lifted.aim.columnId, ...anchor, ticket };
|
|
@@ -27269,7 +27331,7 @@ function Board({
|
|
|
27269
27331
|
return { columnId: slot.columnId, ...anchor, ticket };
|
|
27270
27332
|
};
|
|
27271
27333
|
const aimAt = (source, targets) => {
|
|
27272
|
-
const next = readAim(source, _optionalChain([targets, 'access',
|
|
27334
|
+
const next = readAim(source, _optionalChain([targets, 'access', _659 => _659[0], 'optionalAccess', _660 => _660.data]));
|
|
27273
27335
|
setAim((prev) => isSameAim(prev, next) ? prev : next);
|
|
27274
27336
|
};
|
|
27275
27337
|
return _combine.combine.call(void 0,
|
|
@@ -27298,7 +27360,7 @@ function Board({
|
|
|
27298
27360
|
setLanding(null);
|
|
27299
27361
|
dragGeometry.current = {
|
|
27300
27362
|
ticket,
|
|
27301
|
-
columnColor: _optionalChain([columnsRef, 'access',
|
|
27363
|
+
columnColor: _optionalChain([columnsRef, 'access', _661 => _661.current, 'access', _662 => _662.find, 'call', _663 => _663((c) => c.id === source.data.columnId), 'optionalAccess', _664 => _664.color]),
|
|
27302
27364
|
width: rect.width,
|
|
27303
27365
|
grabX: clientX - rect.left,
|
|
27304
27366
|
grabY: clientY - rect.top
|
|
@@ -27315,7 +27377,7 @@ function Board({
|
|
|
27315
27377
|
setAim(null);
|
|
27316
27378
|
const change = resolveBoardDrop(columnsRef.current, {
|
|
27317
27379
|
source: source.data,
|
|
27318
|
-
target: _optionalChain([location, 'access',
|
|
27380
|
+
target: _optionalChain([location, 'access', _665 => _665.current, 'access', _666 => _666.dropTargets, 'access', _667 => _667[0], 'optionalAccess', _668 => _668.data])
|
|
27319
27381
|
});
|
|
27320
27382
|
if (!change) return;
|
|
27321
27383
|
setPendingMove({
|
|
@@ -27348,7 +27410,7 @@ function Board({
|
|
|
27348
27410
|
return void 0;
|
|
27349
27411
|
}
|
|
27350
27412
|
const to = card.getBoundingClientRect();
|
|
27351
|
-
const lane = _optionalChain([nearestScrollableAncestor, 'call',
|
|
27413
|
+
const lane = _optionalChain([nearestScrollableAncestor, 'call', _669 => _669(card), 'optionalAccess', _670 => _670.getBoundingClientRect, 'call', _671 => _671()]);
|
|
27352
27414
|
if (lane && (to.top < lane.top || to.bottom > lane.bottom)) {
|
|
27353
27415
|
finish();
|
|
27354
27416
|
return void 0;
|
|
@@ -27407,8 +27469,8 @@ function Board({
|
|
|
27407
27469
|
children: view.map((column, i) => {
|
|
27408
27470
|
const prev = view[i - 1];
|
|
27409
27471
|
const next = view[i + 1];
|
|
27410
|
-
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess',
|
|
27411
|
-
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess',
|
|
27472
|
+
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _672 => _672.system]));
|
|
27473
|
+
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _673 => _673.system]));
|
|
27412
27474
|
const showGap = i > 0 && !joinLeft;
|
|
27413
27475
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
|
|
27414
27476
|
showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
|
|
@@ -27588,13 +27650,13 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
27588
27650
|
const [flipTick, setFlipTick] = _react.useState.call(void 0, 0);
|
|
27589
27651
|
const flipTimer = _react.useRef.call(void 0, null);
|
|
27590
27652
|
const readItems = _react.useCallback.call(void 0,
|
|
27591
|
-
() => [..._nullishCoalesce(_optionalChain([listRef, 'access',
|
|
27653
|
+
() => [..._nullishCoalesce(_optionalChain([listRef, 'access', _674 => _674.current, 'optionalAccess', _675 => _675.querySelectorAll, 'call', _676 => _676(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
|
|
27592
27654
|
[]
|
|
27593
27655
|
);
|
|
27594
27656
|
const reorder = _react.useCallback.call(void 0,
|
|
27595
27657
|
(from, to) => {
|
|
27596
27658
|
if (from === to) return;
|
|
27597
|
-
const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access',
|
|
27659
|
+
const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _677 => _677.current, 'optionalCall', _678 => _678(from)]), () => ( "Item"));
|
|
27598
27660
|
setAnnouncement(`${label} moved to position ${to + 1} of ${readItems().length}.`);
|
|
27599
27661
|
onReorderRef.current(from, to);
|
|
27600
27662
|
},
|
|
@@ -27682,7 +27744,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
27682
27744
|
moving.push(item);
|
|
27683
27745
|
}
|
|
27684
27746
|
if (moving.length === 0) return;
|
|
27685
|
-
void _optionalChain([listRef, 'access',
|
|
27747
|
+
void _optionalChain([listRef, 'access', _679 => _679.current, 'optionalAccess', _680 => _680.offsetHeight]);
|
|
27686
27748
|
for (const item of moving) {
|
|
27687
27749
|
item.style.transition = `transform ${DROP_MS2}ms ${EASING}`;
|
|
27688
27750
|
item.style.transform = "";
|
|
@@ -27719,8 +27781,8 @@ function SortableMoveButtons({ index, count, label, className }) {
|
|
|
27719
27781
|
if (to < 0 || to >= count) return;
|
|
27720
27782
|
reorder(index, to);
|
|
27721
27783
|
requestAnimationFrame(() => {
|
|
27722
|
-
if (step === -1 && to === 0) _optionalChain([downRef, 'access',
|
|
27723
|
-
if (step === 1 && to === count - 1) _optionalChain([upRef, 'access',
|
|
27784
|
+
if (step === -1 && to === 0) _optionalChain([downRef, 'access', _681 => _681.current, 'optionalAccess', _682 => _682.focus, 'call', _683 => _683()]);
|
|
27785
|
+
if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _684 => _684.current, 'optionalAccess', _685 => _685.focus, 'call', _686 => _686()]);
|
|
27724
27786
|
});
|
|
27725
27787
|
};
|
|
27726
27788
|
const subject = _nullishCoalesce(label, () => ( "item"));
|
|
@@ -27768,7 +27830,7 @@ function useSortableItem() {
|
|
|
27768
27830
|
const [handle, setHandle] = _react.useState.call(void 0, null);
|
|
27769
27831
|
const [isDragging, setIsDragging] = _react.useState.call(void 0, false);
|
|
27770
27832
|
const itemRef = _react.useCallback.call(void 0, (node) => {
|
|
27771
|
-
_optionalChain([node, 'optionalAccess',
|
|
27833
|
+
_optionalChain([node, 'optionalAccess', _687 => _687.setAttribute, 'call', _688 => _688(SORTABLE_ITEM_ATTRIBUTE, "")]);
|
|
27772
27834
|
setItem(node);
|
|
27773
27835
|
}, []);
|
|
27774
27836
|
_react.useEffect.call(void 0, () => {
|
|
@@ -27798,7 +27860,7 @@ function useSortableItem() {
|
|
|
27798
27860
|
if (from < 0 || to < 0 || to >= items.length) return;
|
|
27799
27861
|
event.preventDefault();
|
|
27800
27862
|
reorder(from, to);
|
|
27801
|
-
requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess',
|
|
27863
|
+
requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _689 => _689.focus, 'call', _690 => _690()]));
|
|
27802
27864
|
},
|
|
27803
27865
|
[inert, readItems, reorder, handle]
|
|
27804
27866
|
);
|
|
@@ -27820,7 +27882,7 @@ function TicketStatusConfigList({
|
|
|
27820
27882
|
onReorder,
|
|
27821
27883
|
getItemLabel,
|
|
27822
27884
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className),
|
|
27823
|
-
children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall',
|
|
27885
|
+
children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _691 => _691(index)]), children: (args) => renderRow(item, args) }, item.id))
|
|
27824
27886
|
}
|
|
27825
27887
|
);
|
|
27826
27888
|
}
|
|
@@ -28410,4 +28472,4 @@ function SortableRow({
|
|
|
28410
28472
|
|
|
28411
28473
|
|
|
28412
28474
|
exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.HiddenTagsPopup = HiddenTagsPopup; exports.TruncateText = TruncateText; exports.Autocomplete = Autocomplete; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.FullscreenSwitchController = FullscreenSwitchController; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.StatusIndicator = StatusIndicator; exports.BackButton = BackButton; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TitleContentBlock = TitleContentBlock; exports.TouchFriendlyTooltip = TouchFriendlyTooltip; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.COMPACT_ROW_MIN_HEIGHT_PX = COMPACT_ROW_MIN_HEIGHT_PX; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.DataTableEmpty = DataTableEmpty; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow;
|
|
28413
|
-
//# sourceMappingURL=chunk-
|
|
28475
|
+
//# sourceMappingURL=chunk-7LGVUXWE.cjs.map
|