@flamingo-stack/openframe-frontend-core 0.0.592 → 0.0.593-snapshot.20260905112237
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-F543W3F2.js → chunk-3OQIZPUX.js} +3 -3
- package/dist/{chunk-CRW4WRMH.js → chunk-3T7ZP3TL.js} +2 -2
- package/dist/{chunk-ASFEUMFW.js → chunk-3XDPXOMS.js} +4 -4
- package/dist/{chunk-3JOBM57M.cjs → chunk-43ADGEWL.cjs} +24 -24
- package/dist/{chunk-3JOBM57M.cjs.map → chunk-43ADGEWL.cjs.map} +1 -1
- package/dist/{chunk-YBENO4XG.cjs → chunk-5XQMEDGE.cjs} +10 -10
- package/dist/{chunk-YBENO4XG.cjs.map → chunk-5XQMEDGE.cjs.map} +1 -1
- package/dist/{chunk-HGEA6PW7.cjs → chunk-66I2QUFE.cjs} +3 -3
- package/dist/{chunk-HGEA6PW7.cjs.map → chunk-66I2QUFE.cjs.map} +1 -1
- package/dist/{chunk-ZT2Z2BYH.cjs → chunk-ACU7J5BL.cjs} +69 -69
- package/dist/{chunk-ZT2Z2BYH.cjs.map → chunk-ACU7J5BL.cjs.map} +1 -1
- package/dist/{chunk-FVADHGDP.cjs → chunk-C4YJC5X7.cjs} +4 -4
- package/dist/{chunk-FVADHGDP.cjs.map → chunk-C4YJC5X7.cjs.map} +1 -1
- package/dist/{chunk-5LJZWTOE.cjs → chunk-CCLPJSY3.cjs} +10 -10
- package/dist/{chunk-5LJZWTOE.cjs.map → chunk-CCLPJSY3.cjs.map} +1 -1
- package/dist/{chunk-WOGLPNK3.cjs → chunk-CQ35OMPJ.cjs} +3 -3
- package/dist/{chunk-WOGLPNK3.cjs.map → chunk-CQ35OMPJ.cjs.map} +1 -1
- package/dist/{chunk-XNGE5EE5.js → chunk-DRZ224RU.js} +6 -6
- package/dist/{chunk-O4VGEJ7I.cjs → chunk-EWOFXJGH.cjs} +43 -43
- package/dist/{chunk-O4VGEJ7I.cjs.map → chunk-EWOFXJGH.cjs.map} +1 -1
- package/dist/{chunk-6GMMR667.js → chunk-F5Q3DTP5.js} +5 -5
- package/dist/{chunk-R25AUM2R.js → chunk-GBIC3VNA.js} +3 -3
- package/dist/{chunk-LXD2QJFG.js → chunk-HOLK4ZMT.js} +3 -3
- package/dist/{chunk-W2RUBABW.cjs → chunk-HQWZ4IXU.cjs} +21 -21
- package/dist/{chunk-W2RUBABW.cjs.map → chunk-HQWZ4IXU.cjs.map} +1 -1
- package/dist/{chunk-JIINHJIT.js → chunk-IKQVXZB5.js} +5 -5
- package/dist/{chunk-FSCQOWXI.js → chunk-KVNA3HU2.js} +2 -2
- package/dist/{chunk-I7JYX5O3.js → chunk-LKN2KKYZ.js} +57 -4
- package/dist/{chunk-I7JYX5O3.js.map → chunk-LKN2KKYZ.js.map} +1 -1
- package/dist/{chunk-NZQYZKIN.js → chunk-M5HGULIY.js} +5 -5
- package/dist/{chunk-AUA6OSU7.js → chunk-MEWAFY6X.js} +2 -2
- package/dist/{chunk-OO6AMBHV.js → chunk-N3RHX26N.js} +3 -3
- package/dist/{chunk-NICIJRZ4.cjs → chunk-PETYVGEQ.cjs} +5 -5
- package/dist/{chunk-NICIJRZ4.cjs.map → chunk-PETYVGEQ.cjs.map} +1 -1
- package/dist/{chunk-WVHQQ3NY.js → chunk-PMN7WDXI.js} +31 -10
- package/dist/chunk-PMN7WDXI.js.map +1 -0
- package/dist/{chunk-5MHDMDPX.cjs → chunk-QAVT6P5F.cjs} +22 -22
- package/dist/{chunk-5MHDMDPX.cjs.map → chunk-QAVT6P5F.cjs.map} +1 -1
- package/dist/{chunk-V7RUX5CX.cjs → chunk-S7VW4HVL.cjs} +15 -15
- package/dist/{chunk-V7RUX5CX.cjs.map → chunk-S7VW4HVL.cjs.map} +1 -1
- package/dist/{chunk-COY57SZP.cjs → chunk-UBRVIVY4.cjs} +188 -167
- package/dist/chunk-UBRVIVY4.cjs.map +1 -0
- package/dist/{chunk-NYH3NVUF.js → chunk-Y22VQDVW.js} +3 -3
- package/dist/{chunk-TVPJ5DIB.cjs → chunk-YLVPQNLO.cjs} +57 -4
- package/dist/chunk-YLVPQNLO.cjs.map +1 -0
- package/dist/{chunk-XHDBU5EI.js → chunk-YZLUOZKR.js} +2 -2
- package/dist/{chunk-WP3AVAMP.cjs → chunk-ZEG3ZJPY.cjs} +33 -33
- package/dist/{chunk-WP3AVAMP.cjs.map → chunk-ZEG3ZJPY.cjs.map} +1 -1
- package/dist/{chunk-TQMZFXWZ.cjs → chunk-ZK3AZ5YF.cjs} +9 -9
- package/dist/{chunk-TQMZFXWZ.cjs.map → chunk-ZK3AZ5YF.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/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/index.cjs +3 -3
- package/dist/components/features/index.js +2 -2
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +38 -38
- package/dist/components/index.js +13 -13
- package/dist/components/meeting-scheduler/index.cjs +21 -21
- package/dist/components/meeting-scheduler/index.js +2 -2
- package/dist/components/navigation/index.cjs +6 -6
- package/dist/components/navigation/index.js +5 -5
- package/dist/components/onboarding-guides/index.cjs +6 -6
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/data-table/data-table-row.d.ts +5 -0
- package/dist/components/ui/data-table/data-table-row.d.ts.map +1 -1
- package/dist/components/ui/data-table/data-table-skeleton.d.ts +1 -0
- package/dist/components/ui/data-table/data-table-skeleton.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +3 -3
- package/dist/components/ui/index.js +2 -2
- package/dist/index.cjs +7 -7
- package/dist/index.js +6 -6
- package/dist/utils/index.cjs +14 -2
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js +14 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/source-icons.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/data-table-row-height.test.tsx +31 -0
- package/src/components/chat/entity-cards/dispatch.tsx +57 -0
- package/src/components/ui/data-table/data-table-body.tsx +12 -3
- package/src/components/ui/data-table/data-table-row.tsx +15 -3
- package/src/components/ui/data-table/data-table-skeleton.tsx +5 -2
- package/src/utils/source-icons.ts +24 -0
- package/dist/chunk-COY57SZP.cjs.map +0 -1
- package/dist/chunk-TVPJ5DIB.cjs.map +0 -1
- package/dist/chunk-WVHQQ3NY.js.map +0 -1
- /package/dist/{chunk-F543W3F2.js.map → chunk-3OQIZPUX.js.map} +0 -0
- /package/dist/{chunk-CRW4WRMH.js.map → chunk-3T7ZP3TL.js.map} +0 -0
- /package/dist/{chunk-ASFEUMFW.js.map → chunk-3XDPXOMS.js.map} +0 -0
- /package/dist/{chunk-XNGE5EE5.js.map → chunk-DRZ224RU.js.map} +0 -0
- /package/dist/{chunk-6GMMR667.js.map → chunk-F5Q3DTP5.js.map} +0 -0
- /package/dist/{chunk-R25AUM2R.js.map → chunk-GBIC3VNA.js.map} +0 -0
- /package/dist/{chunk-LXD2QJFG.js.map → chunk-HOLK4ZMT.js.map} +0 -0
- /package/dist/{chunk-JIINHJIT.js.map → chunk-IKQVXZB5.js.map} +0 -0
- /package/dist/{chunk-FSCQOWXI.js.map → chunk-KVNA3HU2.js.map} +0 -0
- /package/dist/{chunk-NZQYZKIN.js.map → chunk-M5HGULIY.js.map} +0 -0
- /package/dist/{chunk-AUA6OSU7.js.map → chunk-MEWAFY6X.js.map} +0 -0
- /package/dist/{chunk-OO6AMBHV.js.map → chunk-N3RHX26N.js.map} +0 -0
- /package/dist/{chunk-NYH3NVUF.js.map → chunk-Y22VQDVW.js.map} +0 -0
- /package/dist/{chunk-XHDBU5EI.js.map → chunk-YZLUOZKR.js.map} +0 -0
|
@@ -90,7 +90,7 @@ var _chunkY7ITKISQcjs = require('./chunk-Y7ITKISQ.cjs');
|
|
|
90
90
|
|
|
91
91
|
|
|
92
92
|
|
|
93
|
-
var
|
|
93
|
+
var _chunkYLVPQNLOcjs = require('./chunk-YLVPQNLO.cjs');
|
|
94
94
|
|
|
95
95
|
|
|
96
96
|
|
|
@@ -343,7 +343,7 @@ function ThemeProvider({ children, ...overrides }) {
|
|
|
343
343
|
var useTheme = _nextthemes.useTheme;
|
|
344
344
|
function useThemeToggle() {
|
|
345
345
|
const { resolvedTheme, theme, setTheme } = useTheme();
|
|
346
|
-
const mounted =
|
|
346
|
+
const mounted = _chunkYLVPQNLOcjs.useIsHydrated.call(void 0, );
|
|
347
347
|
const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
|
|
348
348
|
const setOdsTheme = _react.useCallback.call(void 0, (next) => setTheme(next), [setTheme]);
|
|
349
349
|
const toggle = _react.useCallback.call(void 0, () => setTheme(active === "dark" ? "light" : "dark"), [active, setTheme]);
|
|
@@ -620,7 +620,7 @@ function TruncateText({
|
|
|
620
620
|
const { ref, isTruncated } = _chunkYXWGSDK4cjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
|
|
621
621
|
const clampClass = isMultiLine ? LINE_CLAMP_CLASS[lines] : "truncate block";
|
|
622
622
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
623
|
-
|
|
623
|
+
_chunkYLVPQNLOcjs.FloatingTooltip,
|
|
624
624
|
{
|
|
625
625
|
content: _nullishCoalesce(tooltip, () => ( children)),
|
|
626
626
|
side,
|
|
@@ -927,7 +927,7 @@ function AutocompleteInner(props, ref) {
|
|
|
927
927
|
),
|
|
928
928
|
/* @__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: [
|
|
929
929
|
multiple && visibleTags.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
930
|
-
|
|
930
|
+
_chunkYLVPQNLOcjs.Tag,
|
|
931
931
|
{
|
|
932
932
|
variant: "outline",
|
|
933
933
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -1141,7 +1141,7 @@ function AutocompleteInner(props, ref) {
|
|
|
1141
1141
|
"aria-hidden": "true",
|
|
1142
1142
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
1143
1143
|
children: selectedOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1144
|
-
|
|
1144
|
+
_chunkYLVPQNLOcjs.Tag,
|
|
1145
1145
|
{
|
|
1146
1146
|
variant: "outline",
|
|
1147
1147
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -2525,7 +2525,7 @@ function InfoHint({ children, label, side = "top", className }) {
|
|
|
2525
2525
|
const describedById = _react.useId.call(void 0, );
|
|
2526
2526
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk23V5BSHDcjs.cn.call(void 0, "inline-flex shrink-0 items-center", className), children: [
|
|
2527
2527
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2528
|
-
|
|
2528
|
+
_chunkYLVPQNLOcjs.FloatingTooltip,
|
|
2529
2529
|
{
|
|
2530
2530
|
content: children,
|
|
2531
2531
|
side,
|
|
@@ -2619,7 +2619,7 @@ function Value2({ value, depth }) {
|
|
|
2619
2619
|
}
|
|
2620
2620
|
if (typeof value === "string") {
|
|
2621
2621
|
if (ISO_DATE.test(value)) {
|
|
2622
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children:
|
|
2622
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children: _chunkYLVPQNLOcjs.formatRelativeTime.call(void 0, value) });
|
|
2623
2623
|
}
|
|
2624
2624
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-pre-wrap text-ods-text-primary", children: value });
|
|
2625
2625
|
}
|
|
@@ -3251,7 +3251,7 @@ function RowValue({ value }) {
|
|
|
3251
3251
|
}
|
|
3252
3252
|
case "status": {
|
|
3253
3253
|
const { type: _type, ...props } = value;
|
|
3254
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3254
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TicketStatusTag, { ...props });
|
|
3255
3255
|
}
|
|
3256
3256
|
case "custom":
|
|
3257
3257
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: value.content });
|
|
@@ -4162,7 +4162,7 @@ function TagsManager({
|
|
|
4162
4162
|
}
|
|
4163
4163
|
),
|
|
4164
4164
|
selectedTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4165
|
-
|
|
4165
|
+
_chunkYLVPQNLOcjs.Tag,
|
|
4166
4166
|
{
|
|
4167
4167
|
label: tag.name,
|
|
4168
4168
|
variant: "outline",
|
|
@@ -4707,10 +4707,10 @@ function useConfirm() {
|
|
|
4707
4707
|
},
|
|
4708
4708
|
[]
|
|
4709
4709
|
);
|
|
4710
|
-
const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4711
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4712
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4713
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4710
|
+
const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Modal, { isOpen: open, onClose: () => decide(false), children: [
|
|
4711
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalTitle, { children: pending.title }) }),
|
|
4712
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: pending.body }) }),
|
|
4713
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.ModalFooter, { children: [
|
|
4714
4714
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCJBSU3XBcjs.Button, { variant: "outline", onClick: () => decide(false), children: "Cancel" }),
|
|
4715
4715
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCJBSU3XBcjs.Button, { variant: "destructive", onClick: () => decide(true), children: "Confirm" })
|
|
4716
4716
|
] })
|
|
@@ -4768,9 +4768,9 @@ function AdminFormModal({
|
|
|
4768
4768
|
body: "Your edits have not been saved. Close and discard them?"
|
|
4769
4769
|
});
|
|
4770
4770
|
if (!isOpen) return null;
|
|
4771
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4772
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4773
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4771
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Modal, { isOpen: true, onClose: guardedClose, size: effectiveSize, children: [
|
|
4772
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.ModalHeader, { children: [
|
|
4773
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalTitle, { children: title }),
|
|
4774
4774
|
subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: subtitle })
|
|
4775
4775
|
] }),
|
|
4776
4776
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -4794,7 +4794,7 @@ function AdminFormModal({
|
|
|
4794
4794
|
// a shrink-to-fit flex item pinned to the left of a 1400px panel).
|
|
4795
4795
|
// The placeholder owns its own layout and mirrors the column count so
|
|
4796
4796
|
// the modal doesn't visibly re-flow when the entity lands.
|
|
4797
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4797
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalContent, { children: loadingContent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-busy": "true", children: loadingContent }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4798
4798
|
"div",
|
|
4799
4799
|
{
|
|
4800
4800
|
"aria-busy": "true",
|
|
@@ -4815,12 +4815,12 @@ function AdminFormModal({
|
|
|
4815
4815
|
]
|
|
4816
4816
|
}
|
|
4817
4817
|
) })
|
|
4818
|
-
) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4818
|
+
) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalTwoColumn, { left: leftColumn, right: rightColumn }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalContent, { className: contentClassName, children }),
|
|
4819
4819
|
error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "alert", className: "shrink-0 text-ods-error text-h6", children: error })
|
|
4820
4820
|
]
|
|
4821
4821
|
}
|
|
4822
4822
|
),
|
|
4823
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4823
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalFooter, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-[var(--spacing-system-xsf)]", children: [
|
|
4824
4824
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: footerExtras }),
|
|
4825
4825
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
4826
4826
|
footerStatus,
|
|
@@ -6918,7 +6918,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarouselImpl({
|
|
|
6918
6918
|
};
|
|
6919
6919
|
const displayImageSrc = (url) => transformImageSrc ? transformImageSrc(url) : url;
|
|
6920
6920
|
const renderVideo = (item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6921
|
-
|
|
6921
|
+
_chunkYLVPQNLOcjs.Video,
|
|
6922
6922
|
{
|
|
6923
6923
|
url: item.src,
|
|
6924
6924
|
poster: item.poster ? displayImageSrc(item.poster) : void 0,
|
|
@@ -7642,7 +7642,7 @@ function buildRichEmbedOverrides({
|
|
|
7642
7642
|
ogEndpointPath,
|
|
7643
7643
|
textSizes
|
|
7644
7644
|
}) {
|
|
7645
|
-
const standard =
|
|
7645
|
+
const standard = _chunkYLVPQNLOcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
|
|
7646
7646
|
return {
|
|
7647
7647
|
// Fence-language embeds (```youtube-embed etc.); everything else
|
|
7648
7648
|
// (mermaid, highlighted blocks, inline code) falls through to `standard`.
|
|
@@ -7652,7 +7652,7 @@ function buildRichEmbedOverrides({
|
|
|
7652
7652
|
const language = match ? match[1] : "";
|
|
7653
7653
|
const fenceText = () => String(children).replace(/\n$/, "").trim();
|
|
7654
7654
|
if (language === "youtube-embed") {
|
|
7655
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7655
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Video, { kind: "youtube", url: fenceText() });
|
|
7656
7656
|
}
|
|
7657
7657
|
if (language === "reddit-embed") {
|
|
7658
7658
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: fenceText() });
|
|
@@ -7693,7 +7693,7 @@ function buildRichEmbedOverrides({
|
|
|
7693
7693
|
"data-figma-url": figmaUrl
|
|
7694
7694
|
} = divProps;
|
|
7695
7695
|
if (className === "youtube-embed" && videoId) {
|
|
7696
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7696
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Video, { kind: "youtube", url: videoId });
|
|
7697
7697
|
}
|
|
7698
7698
|
if (className === "reddit-embed" && postUrl) {
|
|
7699
7699
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: postUrl });
|
|
@@ -7778,14 +7778,14 @@ function buildRichEmbedOverrides({
|
|
|
7778
7778
|
// rich-markdown runtime (Supabase optimization on the hub, identity
|
|
7779
7779
|
// elsewhere). Guard against empty `![]()`.
|
|
7780
7780
|
img: ({ src, alt }) => {
|
|
7781
|
-
if (!
|
|
7781
|
+
if (!_chunkYLVPQNLOcjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7782
7782
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownImage, { src: src.trim(), alt });
|
|
7783
7783
|
},
|
|
7784
7784
|
// Raw <video> tags in stored content (blog publisher injection) route
|
|
7785
7785
|
// to the <Video> SSOT (MuxPlayer) so HLS manifests play everywhere.
|
|
7786
7786
|
video: ({ src, poster, className }) => {
|
|
7787
|
-
if (!
|
|
7788
|
-
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,
|
|
7787
|
+
if (!_chunkYLVPQNLOcjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7788
|
+
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, _chunkYLVPQNLOcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
|
|
7789
7789
|
}
|
|
7790
7790
|
};
|
|
7791
7791
|
}
|
|
@@ -8026,13 +8026,13 @@ var RichMarkdownInner = ({
|
|
|
8026
8026
|
},
|
|
8027
8027
|
[resolveLinkEndpointUrl, resolveSource]
|
|
8028
8028
|
);
|
|
8029
|
-
const textSizes = _react.useMemo.call(void 0, () =>
|
|
8029
|
+
const textSizes = _react.useMemo.call(void 0, () => _chunkYLVPQNLOcjs.resolveTextSizeConfig.call(void 0, "article"), []);
|
|
8030
8030
|
const componentOverrides = _react.useMemo.call(void 0,
|
|
8031
8031
|
() => buildRichEmbedOverrides({ ogApiBaseUrl, ogEndpointPath, textSizes }),
|
|
8032
8032
|
[ogApiBaseUrl, ogEndpointPath, textSizes]
|
|
8033
8033
|
);
|
|
8034
8034
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8035
|
-
|
|
8035
|
+
_chunkYLVPQNLOcjs.MarkdownEngine,
|
|
8036
8036
|
{
|
|
8037
8037
|
content,
|
|
8038
8038
|
className,
|
|
@@ -8054,7 +8054,7 @@ var RichMarkdownRendererImpl = ({
|
|
|
8054
8054
|
className = "",
|
|
8055
8055
|
sectionIds,
|
|
8056
8056
|
onInternalLinkClick,
|
|
8057
|
-
brokenLinks =
|
|
8057
|
+
brokenLinks = _chunkYLVPQNLOcjs.NO_BROKEN_LINKS,
|
|
8058
8058
|
currentPath,
|
|
8059
8059
|
resolveSource = "openframe-docs",
|
|
8060
8060
|
resolveLinkEndpointUrl = "/api/docs/resolve-link",
|
|
@@ -8627,7 +8627,7 @@ function FilterModal({
|
|
|
8627
8627
|
const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _162 => _162.defaultSort]), () => ( "desc"));
|
|
8628
8628
|
const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _163 => _163.sort]), () => ( dateDefaultSort)));
|
|
8629
8629
|
const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _164 => _164.range]));
|
|
8630
|
-
const { scrollRef, fadeTop, fadeBottom, update: updateFade } =
|
|
8630
|
+
const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkYLVPQNLOcjs.useScrollFade.call(void 0, );
|
|
8631
8631
|
const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
|
|
8632
8632
|
const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
|
|
8633
8633
|
_react.useEffect.call(void 0, () => {
|
|
@@ -8672,10 +8672,10 @@ function FilterModal({
|
|
|
8672
8672
|
const hasFilterGroups = filterGroups.length > 0;
|
|
8673
8673
|
const hasTagFilter = !!tagFilterKeys && tagFilterKeys.length > 0 && !!onTagsChange;
|
|
8674
8674
|
const isEmpty = !isLoading && !hasSort && !hasFilterGroups && !hasTagFilter && !dateFilter;
|
|
8675
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8676
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8675
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Modal, { isOpen, onClose, className: _chunk23V5BSHDcjs.cn.call(void 0, "max-h-[90vh] max-w-none", className), children: [
|
|
8676
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalTitle, { children: title }) }),
|
|
8677
8677
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8678
|
-
|
|
8678
|
+
_chunkYLVPQNLOcjs.ModalContent,
|
|
8679
8679
|
{
|
|
8680
8680
|
className: _chunk23V5BSHDcjs.cn.call(void 0,
|
|
8681
8681
|
"flex min-h-0 flex-1 flex-col",
|
|
@@ -8767,12 +8767,12 @@ function FilterModal({
|
|
|
8767
8767
|
] })
|
|
8768
8768
|
}
|
|
8769
8769
|
),
|
|
8770
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8771
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8770
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
|
|
8771
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
|
|
8772
8772
|
] })
|
|
8773
8773
|
}
|
|
8774
8774
|
),
|
|
8775
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8775
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.ModalFooter, { children: [
|
|
8776
8776
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCJBSU3XBcjs.Button, { variant: "outline", className: "h-11 flex-1", onClick: handleReset, children: resetButtonText }),
|
|
8777
8777
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCJBSU3XBcjs.Button, { variant: "accent", className: "h-11 flex-1", onClick: handleApply, children: applyButtonText })
|
|
8778
8778
|
] })
|
|
@@ -8816,9 +8816,9 @@ function actionToMenuItems(action, idx) {
|
|
|
8816
8816
|
function renderActionButton(action, opts = {}) {
|
|
8817
8817
|
const button = renderRawActionButton(action, opts);
|
|
8818
8818
|
if (!action.tooltip) return button;
|
|
8819
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8820
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8821
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8819
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Tooltip, { children: [
|
|
8820
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipTrigger, { asChild: true, children: button }),
|
|
8821
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipContent, { children: action.tooltip })
|
|
8822
8822
|
] }) });
|
|
8823
8823
|
}
|
|
8824
8824
|
function renderRawActionButton(action, opts = {}) {
|
|
@@ -8842,7 +8842,7 @@ function renderRawActionButton(action, opts = {}) {
|
|
|
8842
8842
|
}
|
|
8843
8843
|
if (action.submenu && action.submenu.length > 0) {
|
|
8844
8844
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8845
|
-
|
|
8845
|
+
_chunkYLVPQNLOcjs.ActionsMenuDropdown,
|
|
8846
8846
|
{
|
|
8847
8847
|
groups: [{ items: action.submenu }],
|
|
8848
8848
|
customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -8977,10 +8977,10 @@ function IconButtonsVariant({
|
|
|
8977
8977
|
selector,
|
|
8978
8978
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8979
8979
|
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
|
|
8980
|
-
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8980
|
+
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ActionsMenuDropdown, { groups: menuActions })
|
|
8981
8981
|
] })
|
|
8982
8982
|
] }),
|
|
8983
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk23V5BSHDcjs.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,
|
|
8983
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk23V5BSHDcjs.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, _chunkYLVPQNLOcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
|
|
8984
8984
|
] });
|
|
8985
8985
|
}
|
|
8986
8986
|
function PrimaryButtonsVariant({
|
|
@@ -9018,7 +9018,7 @@ function MenuPrimaryVariant({
|
|
|
9018
9018
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk23V5BSHDcjs.cn.call(void 0, "hidden items-center md:flex", ACTIONS_GAP, className), children: [
|
|
9019
9019
|
selector,
|
|
9020
9020
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
9021
|
-
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9021
|
+
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ActionsMenuDropdown, { groups: menuActions }),
|
|
9022
9022
|
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
|
|
9023
9023
|
] })
|
|
9024
9024
|
] }),
|
|
@@ -9026,7 +9026,7 @@ function MenuPrimaryVariant({
|
|
|
9026
9026
|
// The selector rides into the menu as its header row: on mobile the
|
|
9027
9027
|
// title row has no room for it, and hiding it entirely (what
|
|
9028
9028
|
// `icon-buttons` does) would leave no way to switch views at all.
|
|
9029
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9029
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ActionsMenuDropdown, { groups: mobileMenuGroups, header: selector })
|
|
9030
9030
|
) : null })
|
|
9031
9031
|
] });
|
|
9032
9032
|
}
|
|
@@ -9432,7 +9432,7 @@ function TitleBlock({
|
|
|
9432
9432
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
9433
9433
|
(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: [
|
|
9434
9434
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9435
|
-
|
|
9435
|
+
_chunkYLVPQNLOcjs.FloatingTooltip,
|
|
9436
9436
|
{
|
|
9437
9437
|
content: title,
|
|
9438
9438
|
side: "bottom",
|
|
@@ -9449,12 +9449,12 @@ function TitleBlock({
|
|
|
9449
9449
|
}
|
|
9450
9450
|
),
|
|
9451
9451
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
9452
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9452
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { ref: titleRef, className: _chunk23V5BSHDcjs.cn.call(void 0, titleClass, "text-ods-text-primary", titleOverflowClass), children: titleNode }) })),
|
|
9453
9453
|
hasSubtitleRow && /* The NBSP is a pure spacer, reached only in `'always'` mode: an
|
|
9454
9454
|
empty `p` collapses to zero height (its only content would be
|
|
9455
9455
|
collapsible whitespace), which is exactly the shift that mode
|
|
9456
9456
|
exists to prevent. Hidden from AT — it carries no meaning. */
|
|
9457
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9457
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9458
9458
|
"p",
|
|
9459
9459
|
{
|
|
9460
9460
|
ref: subtitleRef,
|
|
@@ -9465,7 +9465,7 @@ function TitleBlock({
|
|
|
9465
9465
|
) })
|
|
9466
9466
|
] })
|
|
9467
9467
|
] }) : title && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
|
|
9468
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9468
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, triggerClassName: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { ref: titleRef, className: _chunk23V5BSHDcjs.cn.call(void 0, titleClass, "min-w-0 text-ods-text-primary", titleOverflowClass), children: title }) }),
|
|
9469
9469
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
9470
9470
|
] }) : (
|
|
9471
9471
|
/* This branch never had the single-line clamp, so text already
|
|
@@ -11067,7 +11067,7 @@ function extractSections(markdown, options = {}) {
|
|
|
11067
11067
|
if (heading.level > opts.maxLevel) continue;
|
|
11068
11068
|
let title = heading.text;
|
|
11069
11069
|
if (opts.stripFormattingMarkers) {
|
|
11070
|
-
title =
|
|
11070
|
+
title = _chunkYLVPQNLOcjs.stripInlineMarkdown.call(void 0, title).trim();
|
|
11071
11071
|
}
|
|
11072
11072
|
const baseId = _chunkYXWGSDK4cjs.slugifyHeadingBase.call(void 0, opts.removeEmojis ? _chunkYXWGSDK4cjs.stripHeadingEmojis.call(void 0, title) : title);
|
|
11073
11073
|
const cleanId = baseId || `section-${sections.length + 1}`;
|
|
@@ -11623,7 +11623,7 @@ function DashboardInfoCard({
|
|
|
11623
11623
|
const asTag = percentageDisplay === "tag" || percentageDisplay === "auto" && (progressVariant === "warning" || progressVariant === "error");
|
|
11624
11624
|
if (asTag) {
|
|
11625
11625
|
const tagVariant = progressVariant === "warning" || progressVariant === "error" ? progressVariant : progressVariant === "success" ? "success" : "grey";
|
|
11626
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11626
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Tag, { variant: tagVariant, label: `${percentage}%` });
|
|
11627
11627
|
}
|
|
11628
11628
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: [
|
|
11629
11629
|
"(",
|
|
@@ -11677,7 +11677,7 @@ function DashboardInfoCard({
|
|
|
11677
11677
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk23V5BSHDcjs.cn.call(void 0, "truncate text-ods-text-primary text-h3 md:text-h2", valueClassName), children: formattedValue }),
|
|
11678
11678
|
subValue && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: subValue }),
|
|
11679
11679
|
renderPercentage(),
|
|
11680
|
-
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11680
|
+
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.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 }) }) })
|
|
11681
11681
|
] })
|
|
11682
11682
|
] }),
|
|
11683
11683
|
renderProgress()
|
|
@@ -11860,7 +11860,7 @@ function DeviceCard({
|
|
|
11860
11860
|
] }),
|
|
11861
11861
|
(statusTag || device.lastSeen) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-2", children: [
|
|
11862
11862
|
statusTag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11863
|
-
|
|
11863
|
+
_chunkYLVPQNLOcjs.Tag,
|
|
11864
11864
|
{
|
|
11865
11865
|
variant: statusTag.variant,
|
|
11866
11866
|
icon: statusTag.icon,
|
|
@@ -11874,7 +11874,7 @@ function DeviceCard({
|
|
|
11874
11874
|
formatLastSeen(device.lastSeen)
|
|
11875
11875
|
] })
|
|
11876
11876
|
] }),
|
|
11877
|
-
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,
|
|
11877
|
+
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, _chunkYLVPQNLOcjs.Tag, { variant: "outline", label: tag }, index)) })
|
|
11878
11878
|
]
|
|
11879
11879
|
}
|
|
11880
11880
|
);
|
|
@@ -12022,7 +12022,7 @@ function FeatureList({ items, className = "", iconBoxSize = 72 }) {
|
|
|
12022
12022
|
|
|
12023
12023
|
function SourceTooltip({ intro, sources, note, iconClassName, triggerAnchorProps }) {
|
|
12024
12024
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12025
|
-
|
|
12025
|
+
_chunkYLVPQNLOcjs.FloatingTooltip,
|
|
12026
12026
|
{
|
|
12027
12027
|
as: "span",
|
|
12028
12028
|
side: "top",
|
|
@@ -12206,7 +12206,7 @@ function DropdownButton({
|
|
|
12206
12206
|
)
|
|
12207
12207
|
);
|
|
12208
12208
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12209
|
-
|
|
12209
|
+
_chunkYLVPQNLOcjs.ActionsMenuDropdown,
|
|
12210
12210
|
{
|
|
12211
12211
|
groups: _nullishCoalesce(groups, () => ( [{ items: _nullishCoalesce(items, () => ( [])) }])),
|
|
12212
12212
|
open,
|
|
@@ -12444,7 +12444,7 @@ function ServiceCardRowItem({ row }) {
|
|
|
12444
12444
|
),
|
|
12445
12445
|
children: [
|
|
12446
12446
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12447
|
-
|
|
12447
|
+
_chunkYLVPQNLOcjs.FloatingTooltip,
|
|
12448
12448
|
{
|
|
12449
12449
|
content: row.value,
|
|
12450
12450
|
side: "top",
|
|
@@ -12570,9 +12570,9 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
|
|
|
12570
12570
|
return next;
|
|
12571
12571
|
});
|
|
12572
12572
|
};
|
|
12573
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12573
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Tooltip, { open, onOpenChange: setOpen, children: [
|
|
12574
12574
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12575
|
-
|
|
12575
|
+
_chunkYLVPQNLOcjs.TooltipTrigger,
|
|
12576
12576
|
{
|
|
12577
12577
|
asChild: true,
|
|
12578
12578
|
onPointerDown: (e) => {
|
|
@@ -12590,7 +12590,7 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
|
|
|
12590
12590
|
children
|
|
12591
12591
|
}
|
|
12592
12592
|
),
|
|
12593
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12593
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipContent, { side, className: "max-w-xs", children: content })
|
|
12594
12594
|
] }) });
|
|
12595
12595
|
}
|
|
12596
12596
|
|
|
@@ -13605,9 +13605,9 @@ function TruncatedHeaderCell({ value, width }) {
|
|
|
13605
13605
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
13606
13606
|
}
|
|
13607
13607
|
}, []);
|
|
13608
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13609
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13610
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13608
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
13609
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.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 }) }) }),
|
|
13610
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipContent, { side: "bottom", className: "max-w-xs break-words", children: value })
|
|
13611
13611
|
] }) });
|
|
13612
13612
|
}
|
|
13613
13613
|
|
|
@@ -13660,9 +13660,9 @@ function TruncatedCell({ value, className }) {
|
|
|
13660
13660
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
13661
13661
|
}
|
|
13662
13662
|
}, []);
|
|
13663
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13664
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13665
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13663
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
13664
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: textRef, className: _chunk23V5BSHDcjs.cn.call(void 0, "block truncate", className), children: value }) }),
|
|
13665
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipContent, { side: "top", className: "max-w-xs break-words", children: value })
|
|
13666
13666
|
] }) });
|
|
13667
13667
|
}
|
|
13668
13668
|
|
|
@@ -13948,6 +13948,8 @@ function DataTableSkeleton({ rows = 10, className, rowClassName, rowHeightClassN
|
|
|
13948
13948
|
{
|
|
13949
13949
|
className: _chunk23V5BSHDcjs.cn.call(void 0,
|
|
13950
13950
|
"relative animate-pulse overflow-hidden rounded-md border border-ods-border bg-ods-card",
|
|
13951
|
+
// The slot height sits on the card, matching a real row.
|
|
13952
|
+
rowHeightClassName,
|
|
13951
13953
|
className
|
|
13952
13954
|
),
|
|
13953
13955
|
children: [
|
|
@@ -13957,7 +13959,7 @@ function DataTableSkeleton({ rows = 10, className, rowClassName, rowHeightClassN
|
|
|
13957
13959
|
className: _chunk23V5BSHDcjs.cn.call(void 0,
|
|
13958
13960
|
"hidden py-0 md:flex",
|
|
13959
13961
|
ROW_SHELL_CLASSES,
|
|
13960
|
-
|
|
13962
|
+
rowHeightClassName ? "h-full" : ROW_HEIGHT_DESKTOP2,
|
|
13961
13963
|
rowClassName
|
|
13962
13964
|
),
|
|
13963
13965
|
children: columns.map((column) => {
|
|
@@ -13991,7 +13993,7 @@ function DataTableSkeleton({ rows = 10, className, rowClassName, rowHeightClassN
|
|
|
13991
13993
|
className: _chunk23V5BSHDcjs.cn.call(void 0,
|
|
13992
13994
|
"flex justify-start py-0 md:hidden",
|
|
13993
13995
|
ROW_SHELL_CLASSES,
|
|
13994
|
-
|
|
13996
|
+
rowHeightClassName ? "h-full" : ROW_HEIGHT_MOBILE2,
|
|
13995
13997
|
rowClassName
|
|
13996
13998
|
),
|
|
13997
13999
|
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center py-[var(--spacing-system-sf)]", children: [
|
|
@@ -14038,7 +14040,11 @@ function DataTableRowImpl({
|
|
|
14038
14040
|
[onClick, row.original, isLinkMode]
|
|
14039
14041
|
);
|
|
14040
14042
|
const containerClassName = _chunk23V5BSHDcjs.cn.call(void 0,
|
|
14041
|
-
"
|
|
14043
|
+
"overflow-hidden rounded-md border border-ods-border bg-ods-card text-inherit no-underline",
|
|
14044
|
+
// A stated slot height goes HERE, on the card, with the cells flexing to
|
|
14045
|
+
// fill whatever the sub-row leaves. `border-box` sizing means the number a
|
|
14046
|
+
// caller writes is the number the row occupies, borders included.
|
|
14047
|
+
rowHeightClassName ? `flex flex-col ${rowHeightClassName}` : "block",
|
|
14042
14048
|
// With a sub-row the link wraps only the cells, so keep the clickable affordance off the whole card.
|
|
14043
14049
|
(onClick || isWholeCardLink) && "cursor-pointer transition-colors hover:bg-ods-bg-active",
|
|
14044
14050
|
className
|
|
@@ -14049,7 +14055,7 @@ function DataTableRowImpl({
|
|
|
14049
14055
|
className: _chunk23V5BSHDcjs.cn.call(void 0,
|
|
14050
14056
|
"flex",
|
|
14051
14057
|
ROW_SHELL_CLASSES,
|
|
14052
|
-
rowHeightClassName ?
|
|
14058
|
+
rowHeightClassName ? "min-h-0 flex-1 py-0" : compact ? "py-[var(--spacing-system-xsf)]" : autoHeight ? "min-h-[66px] py-[var(--spacing-system-sf)] md:min-h-[78px]" : `py-0 ${ROW_HEIGHT_DESKTOP2}`,
|
|
14053
14059
|
hasSubRow && "border-b border-ods-border"
|
|
14054
14060
|
),
|
|
14055
14061
|
children: row.getVisibleCells().map((cell) => {
|
|
@@ -14096,7 +14102,10 @@ function DataTableRowImpl({
|
|
|
14096
14102
|
{
|
|
14097
14103
|
href,
|
|
14098
14104
|
prefetch: false,
|
|
14099
|
-
className:
|
|
14105
|
+
className: _chunk23V5BSHDcjs.cn.call(void 0,
|
|
14106
|
+
"cursor-pointer text-inherit no-underline transition-colors hover:bg-ods-bg-active",
|
|
14107
|
+
rowHeightClassName ? "flex min-h-0 flex-1 flex-col" : "block"
|
|
14108
|
+
),
|
|
14100
14109
|
onClick: handleClick,
|
|
14101
14110
|
children: cells
|
|
14102
14111
|
}
|
|
@@ -14174,17 +14183,29 @@ function PlaceholderRows({ count, rowHeightClassName }) {
|
|
|
14174
14183
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
14175
14184
|
"div",
|
|
14176
14185
|
{
|
|
14177
|
-
className:
|
|
14186
|
+
className: _chunk23V5BSHDcjs.cn.call(void 0,
|
|
14187
|
+
"pointer-events-none relative overflow-hidden rounded-md border border-transparent",
|
|
14188
|
+
// The stated slot height belongs on the CARD, exactly as a real
|
|
14189
|
+
// row carries it — a real row with a sub-row is taller than its
|
|
14190
|
+
// cells, so reserving the cells' height here left every pad row
|
|
14191
|
+
// short by the sub-row.
|
|
14192
|
+
rowHeightClassName
|
|
14193
|
+
),
|
|
14178
14194
|
"aria-hidden": "true",
|
|
14179
14195
|
children: [
|
|
14180
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14196
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14197
|
+
"div",
|
|
14198
|
+
{
|
|
14199
|
+
className: _chunk23V5BSHDcjs.cn.call(void 0, "hidden py-0 md:flex", ROW_SHELL_CLASSES, rowHeightClassName ? "h-full" : ROW_HEIGHT_DESKTOP2)
|
|
14200
|
+
}
|
|
14201
|
+
),
|
|
14181
14202
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14182
14203
|
"div",
|
|
14183
14204
|
{
|
|
14184
14205
|
className: _chunk23V5BSHDcjs.cn.call(void 0,
|
|
14185
14206
|
"flex justify-start py-0 md:hidden",
|
|
14186
14207
|
ROW_SHELL_CLASSES,
|
|
14187
|
-
|
|
14208
|
+
rowHeightClassName ? "h-full" : ROW_HEIGHT_MOBILE2
|
|
14188
14209
|
)
|
|
14189
14210
|
}
|
|
14190
14211
|
)
|
|
@@ -15001,7 +15022,7 @@ function SearchInput({
|
|
|
15001
15022
|
/* @__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, {}) }),
|
|
15002
15023
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
|
|
15003
15024
|
visibleChips.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15004
|
-
|
|
15025
|
+
_chunkYLVPQNLOcjs.Tag,
|
|
15005
15026
|
{
|
|
15006
15027
|
variant: chipVariantToTagVariant(chip.variant),
|
|
15007
15028
|
label: chip.label,
|
|
@@ -15115,7 +15136,7 @@ function SearchInput({
|
|
|
15115
15136
|
}
|
|
15116
15137
|
),
|
|
15117
15138
|
/* @__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,
|
|
15118
|
-
|
|
15139
|
+
_chunkYLVPQNLOcjs.Tag,
|
|
15119
15140
|
{
|
|
15120
15141
|
variant: chipVariantToTagVariant(chip.variant),
|
|
15121
15142
|
label: chip.label,
|
|
@@ -15328,7 +15349,7 @@ function TagSearchInput({
|
|
|
15328
15349
|
/* @__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" }) }),
|
|
15329
15350
|
/* @__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: [
|
|
15330
15351
|
visibleTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15331
|
-
|
|
15352
|
+
_chunkYLVPQNLOcjs.Tag,
|
|
15332
15353
|
{
|
|
15333
15354
|
variant: "outline",
|
|
15334
15355
|
label: renderTag ? renderTag(tag) : tag.label,
|
|
@@ -15416,7 +15437,7 @@ function TagSearchInput({
|
|
|
15416
15437
|
"aria-hidden": "true",
|
|
15417
15438
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
15418
15439
|
children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15419
|
-
|
|
15440
|
+
_chunkYLVPQNLOcjs.Tag,
|
|
15420
15441
|
{
|
|
15421
15442
|
variant: "outline",
|
|
15422
15443
|
label: renderTag ? renderTag(tag) : tag.label,
|
|
@@ -16305,20 +16326,20 @@ function ColorPresetSelect({
|
|
|
16305
16326
|
...presets.map((p) => ({
|
|
16306
16327
|
id: p.key,
|
|
16307
16328
|
label: p.label,
|
|
16308
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16329
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ColorSwatch, { color: p.color }),
|
|
16309
16330
|
onClick: () => onChange({ color: p.color, preset: p.key })
|
|
16310
16331
|
})),
|
|
16311
16332
|
{
|
|
16312
16333
|
id: CUSTOM_PRESET_KEY,
|
|
16313
16334
|
label: "Custom",
|
|
16314
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16335
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ColorSwatch, { color: isCustom ? value : DEFAULT_CUSTOM_STATUS_COLOR }),
|
|
16315
16336
|
onClick: () => onChange({ color: value, preset: void 0 })
|
|
16316
16337
|
}
|
|
16317
16338
|
]
|
|
16318
16339
|
}
|
|
16319
16340
|
];
|
|
16320
16341
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16321
|
-
|
|
16342
|
+
_chunkYLVPQNLOcjs.ActionsMenuDropdown,
|
|
16322
16343
|
{
|
|
16323
16344
|
groups,
|
|
16324
16345
|
align: "start",
|
|
@@ -16328,7 +16349,7 @@ function ColorPresetSelect({
|
|
|
16328
16349
|
{
|
|
16329
16350
|
disabled,
|
|
16330
16351
|
"aria-label": `Color: ${displayLabel}`,
|
|
16331
|
-
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16352
|
+
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ColorSwatch, { color: displayColor }),
|
|
16332
16353
|
selectedLabel: displayLabel,
|
|
16333
16354
|
endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
|
|
16334
16355
|
className: _chunk23V5BSHDcjs.cn.call(void 0, "group", className)
|
|
@@ -16349,7 +16370,7 @@ function HexInputs({ value, onChange }) {
|
|
|
16349
16370
|
}
|
|
16350
16371
|
const commit = () => {
|
|
16351
16372
|
const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
|
|
16352
|
-
if (
|
|
16373
|
+
if (_chunkYLVPQNLOcjs.HEX_PATTERN.test(candidate)) onChange(candidate);
|
|
16353
16374
|
else setDraft(value);
|
|
16354
16375
|
};
|
|
16355
16376
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -16413,12 +16434,12 @@ function ChannelInput({
|
|
|
16413
16434
|
);
|
|
16414
16435
|
}
|
|
16415
16436
|
function RgbInputs({ value, onChange }) {
|
|
16416
|
-
const rgb = _nullishCoalesce(
|
|
16437
|
+
const rgb = _nullishCoalesce(_chunkYLVPQNLOcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
|
|
16417
16438
|
const update = (next) => {
|
|
16418
16439
|
const r = _nullishCoalesce(next.r, () => ( rgb.r));
|
|
16419
16440
|
const g = _nullishCoalesce(next.g, () => ( rgb.g));
|
|
16420
16441
|
const b = _nullishCoalesce(next.b, () => ( rgb.b));
|
|
16421
|
-
onChange(
|
|
16442
|
+
onChange(_chunkYLVPQNLOcjs.rgbToHex.call(void 0, r, g, b));
|
|
16422
16443
|
};
|
|
16423
16444
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16424
16445
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
|
|
@@ -16427,14 +16448,14 @@ function RgbInputs({ value, onChange }) {
|
|
|
16427
16448
|
] });
|
|
16428
16449
|
}
|
|
16429
16450
|
function HslInputs({ value, onChange }) {
|
|
16430
|
-
const rgb = _nullishCoalesce(
|
|
16431
|
-
const hsl =
|
|
16451
|
+
const rgb = _nullishCoalesce(_chunkYLVPQNLOcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
|
|
16452
|
+
const hsl = _chunkYLVPQNLOcjs.rgbToHsl.call(void 0, rgb.r, rgb.g, rgb.b);
|
|
16432
16453
|
const update = (next) => {
|
|
16433
16454
|
const h = _nullishCoalesce(next.h, () => ( hsl.h));
|
|
16434
16455
|
const s = _nullishCoalesce(next.s, () => ( hsl.s));
|
|
16435
16456
|
const l = _nullishCoalesce(next.l, () => ( hsl.l));
|
|
16436
|
-
const out =
|
|
16437
|
-
onChange(
|
|
16457
|
+
const out = _chunkYLVPQNLOcjs.hslToRgb.call(void 0, h, s, l);
|
|
16458
|
+
onChange(_chunkYLVPQNLOcjs.rgbToHex.call(void 0, out.r, out.g, out.b));
|
|
16438
16459
|
};
|
|
16439
16460
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16440
16461
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
|
|
@@ -16460,7 +16481,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16460
16481
|
{
|
|
16461
16482
|
disabled,
|
|
16462
16483
|
"aria-label": "Pick custom color",
|
|
16463
|
-
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16484
|
+
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ColorSwatch, { color: value }),
|
|
16464
16485
|
selectedLabel: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase", children: value }),
|
|
16465
16486
|
endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
|
|
16466
16487
|
className: _chunk23V5BSHDcjs.cn.call(void 0, "group", className)
|
|
@@ -16476,7 +16497,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16476
16497
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactcolorful.HexColorPicker, { color: value, onChange }),
|
|
16477
16498
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
16478
16499
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16479
|
-
|
|
16500
|
+
_chunkYLVPQNLOcjs.ActionsMenuDropdown,
|
|
16480
16501
|
{
|
|
16481
16502
|
groups: formatGroups,
|
|
16482
16503
|
align: "start",
|
|
@@ -16533,7 +16554,7 @@ function TicketStatusConfigRow({
|
|
|
16533
16554
|
const previewVariant = _nullishCoalesce(systemTagVariant, () => ( (isSystem ? void 0 : "primary")));
|
|
16534
16555
|
const fieldRowOffset = "mt-[calc(var(--font-line-space-h4-body)+0.25rem)]";
|
|
16535
16556
|
const chip = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16536
|
-
|
|
16557
|
+
_chunkYLVPQNLOcjs.TicketStatusTag,
|
|
16537
16558
|
{
|
|
16538
16559
|
status: statusKey,
|
|
16539
16560
|
label: name || " ",
|
|
@@ -16685,7 +16706,7 @@ function formatTestRunDuration(ms) {
|
|
|
16685
16706
|
var RESULT_COLUMN_MIN_WIDTH = 176;
|
|
16686
16707
|
var SKELETON_COLUMNS = 6;
|
|
16687
16708
|
function TestResultsSkeleton() {
|
|
16688
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16709
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
|
|
16689
16710
|
/* @__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}`)) }),
|
|
16690
16711
|
/* @__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}`)) }) })
|
|
16691
16712
|
] }) });
|
|
@@ -16720,7 +16741,7 @@ function TestResultsTable({ rows, loading }) {
|
|
|
16720
16741
|
if (loading) {
|
|
16721
16742
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TestResultsSkeleton, {});
|
|
16722
16743
|
}
|
|
16723
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16744
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.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: [
|
|
16724
16745
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Header, { className: "flex flex-col" }),
|
|
16725
16746
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Body, { loading: false })
|
|
16726
16747
|
] }) }) });
|
|
@@ -16780,7 +16801,7 @@ var TEST_RUN_STATUS_TAGS = {
|
|
|
16780
16801
|
function TestRunStatusStat({ status, className }) {
|
|
16781
16802
|
const tag = status === "idle" ? null : TEST_RUN_STATUS_TAGS[status];
|
|
16782
16803
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk23V5BSHDcjs.cn.call(void 0, "flex min-w-0 flex-col items-start justify-center gap-[var(--spacing-system-xxs)]", className), children: [
|
|
16783
|
-
tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16804
|
+
tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.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: "-" }),
|
|
16784
16805
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: "Status" })
|
|
16785
16806
|
] });
|
|
16786
16807
|
}
|
|
@@ -16823,7 +16844,7 @@ function useTestRunState(campaign) {
|
|
|
16823
16844
|
const firstError = isFinished && campaign.errors.length > 0 ? campaign.errors[0].error : null;
|
|
16824
16845
|
const status = isActive ? "running" : hasRun && isFinished ? firstError ? "error" : "success" : "idle";
|
|
16825
16846
|
const showTiming = hasRun && campaign.startedAt !== null && (campaign.isRunning || isFinished);
|
|
16826
|
-
const startedLabel = showTiming && campaign.startedAt ?
|
|
16847
|
+
const startedLabel = showTiming && campaign.startedAt ? _chunkYLVPQNLOcjs.formatTime.call(void 0, campaign.startedAt) : "00:00 PM";
|
|
16827
16848
|
const durationLabel = showTiming ? formatTestRunDuration(durationMs) : "00:00:00";
|
|
16828
16849
|
const displayRows = _react.useMemo.call(void 0,
|
|
16829
16850
|
() => campaign.results.map(
|
|
@@ -17161,7 +17182,7 @@ function TicketInfoSection({
|
|
|
17161
17182
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([device, 'optionalAccess', _392 => _392.name]) || "Unassigned", label: "Device", icon: _optionalChain([device, 'optionalAccess', _393 => _393.icon]), onClick: _optionalChain([device, 'optionalAccess', _394 => _394.onClick]) }),
|
|
17162
17183
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-4", children: [
|
|
17163
17184
|
(status || statusLabel) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17164
|
-
|
|
17185
|
+
_chunkYLVPQNLOcjs.TicketStatusTag,
|
|
17165
17186
|
{
|
|
17166
17187
|
status: _nullishCoalesce(status, () => ( "")),
|
|
17167
17188
|
label: statusLabel,
|
|
@@ -17200,9 +17221,9 @@ function TicketInfoSection({
|
|
|
17200
17221
|
expanded && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
17201
17222
|
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" }) }),
|
|
17202
17223
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
|
|
17203
|
-
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17224
|
+
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.SimpleMarkdownRenderer, { content: description }),
|
|
17204
17225
|
attachments && attachments.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketAttachmentsList, { attachments }) }),
|
|
17205
|
-
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,
|
|
17226
|
+
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, _chunkYLVPQNLOcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
|
|
17206
17227
|
(notes || onAddNote) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Notes", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17207
17228
|
TicketNotesSection,
|
|
17208
17229
|
{
|
|
@@ -17225,7 +17246,7 @@ function renderTicketStatusOption(option, isSelected) {
|
|
|
17225
17246
|
const { label, color } = option;
|
|
17226
17247
|
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: [
|
|
17227
17248
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
|
|
17228
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17249
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ColorSwatch, { color }),
|
|
17229
17250
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TruncateText, { className: "text-inherit", children: label }) })
|
|
17230
17251
|
] }),
|
|
17231
17252
|
isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
|
|
@@ -17270,9 +17291,9 @@ function TakeOverTicketModal({
|
|
|
17270
17291
|
if (!selectedStatusId || !assigneeId || isPending) return;
|
|
17271
17292
|
onConfirm({ statusId: selectedStatusId, assigneeId });
|
|
17272
17293
|
};
|
|
17273
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17294
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17274
17295
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17275
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17296
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalTitle, { children: "Take Over Ticket" }) }),
|
|
17276
17297
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
17277
17298
|
"The ticket ",
|
|
17278
17299
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
|
|
@@ -17287,7 +17308,7 @@ function TakeOverTicketModal({
|
|
|
17287
17308
|
value: selectedStatusId,
|
|
17288
17309
|
onChange: setStatusId,
|
|
17289
17310
|
placeholder: "Select Status",
|
|
17290
|
-
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17311
|
+
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
|
|
17291
17312
|
renderOption: renderTicketStatusOption
|
|
17292
17313
|
}
|
|
17293
17314
|
) }),
|
|
@@ -17314,7 +17335,7 @@ function TakeOverTicketModal({
|
|
|
17314
17335
|
}
|
|
17315
17336
|
) })
|
|
17316
17337
|
] }),
|
|
17317
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17338
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.ModalFooter, { children: [
|
|
17318
17339
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCJBSU3XBcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
17319
17340
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
17320
17341
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -17373,9 +17394,9 @@ function ReopenTicketModal({
|
|
|
17373
17394
|
reason: trimmedReason ? trimmedReason.slice(0, REASON_MAX_LENGTH) : null
|
|
17374
17395
|
});
|
|
17375
17396
|
};
|
|
17376
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17397
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17377
17398
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17378
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17399
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalTitle, { children: "Reopen Ticket" }) }),
|
|
17379
17400
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
17380
17401
|
"The ticket ",
|
|
17381
17402
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
|
|
@@ -17390,7 +17411,7 @@ function ReopenTicketModal({
|
|
|
17390
17411
|
value: selectedStatusId,
|
|
17391
17412
|
onChange: setStatusId,
|
|
17392
17413
|
placeholder: "Select Status",
|
|
17393
|
-
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17414
|
+
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
|
|
17394
17415
|
renderOption: renderTicketStatusOption
|
|
17395
17416
|
}
|
|
17396
17417
|
) }),
|
|
@@ -17428,7 +17449,7 @@ function ReopenTicketModal({
|
|
|
17428
17449
|
disabled: isPending
|
|
17429
17450
|
}
|
|
17430
17451
|
) }),
|
|
17431
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17452
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.ModalFooter, { children: [
|
|
17432
17453
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCJBSU3XBcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
17433
17454
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
17434
17455
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -17476,9 +17497,9 @@ function ReopenTicketRequestModal({
|
|
|
17476
17497
|
...showHandoffOption ? { handoffToTechnician: handoff } : {}
|
|
17477
17498
|
});
|
|
17478
17499
|
};
|
|
17479
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17500
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17480
17501
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17481
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17502
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ModalTitle, { children: "Reopen Ticket" }) }),
|
|
17482
17503
|
/* @__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." }),
|
|
17483
17504
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17484
17505
|
Textarea,
|
|
@@ -17502,7 +17523,7 @@ function ReopenTicketRequestModal({
|
|
|
17502
17523
|
disabled: isPending
|
|
17503
17524
|
}
|
|
17504
17525
|
),
|
|
17505
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17526
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.ModalFooter, { children: [
|
|
17506
17527
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCJBSU3XBcjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1", children: "Cancel" }),
|
|
17507
17528
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCJBSU3XBcjs.Button, { type: "button", variant: "accent", onClick: handleConfirm, loading: isPending, className: "flex-1", children: "Reopen Ticket" })
|
|
17508
17529
|
] })
|
|
@@ -19623,7 +19644,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
|
|
|
19623
19644
|
sandbox: "allow-scripts allow-same-origin allow-popups allow-presentation",
|
|
19624
19645
|
title: config.title,
|
|
19625
19646
|
loading: "eager",
|
|
19626
|
-
...
|
|
19647
|
+
..._chunkYLVPQNLOcjs.fetchPriorityProp.call(void 0, "high")
|
|
19627
19648
|
},
|
|
19628
19649
|
iframeKey
|
|
19629
19650
|
),
|
|
@@ -20473,7 +20494,7 @@ function MediaGalleryManager({
|
|
|
20473
20494
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video overflow-hidden rounded-lg bg-ods-bg", children: _chunkY6I2DGKCcjs.isVideoMedia.call(void 0, mediaItem) || mediaItem.media_type === "demo" ? (
|
|
20474
20495
|
// <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
|
|
20475
20496
|
// fit="cover" crops to the aspect-video cell.
|
|
20476
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20497
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Video, { kind: "file", url: mediaItem.media_url, fit: "cover", className: "h-full w-full" })
|
|
20477
20498
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20478
20499
|
_chunkWLSFBRT5cjs.next_image_default,
|
|
20479
20500
|
{
|
|
@@ -22724,9 +22745,9 @@ function PushButtonSelector({
|
|
|
22724
22745
|
option.id
|
|
22725
22746
|
);
|
|
22726
22747
|
if (option.disabled && option.disabledReason) {
|
|
22727
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
22728
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22729
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22748
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Tooltip, { children: [
|
|
22749
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipTrigger, { asChild: true, children: optionEl }),
|
|
22750
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
|
|
22730
22751
|
] }, option.id);
|
|
22731
22752
|
}
|
|
22732
22753
|
return optionEl;
|
|
@@ -22771,7 +22792,7 @@ function PushButtonSelector({
|
|
|
22771
22792
|
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
|
|
22772
22793
|
] }) : null
|
|
22773
22794
|
] });
|
|
22774
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22795
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 ${className}`, children: [
|
|
22775
22796
|
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
|
|
22776
22797
|
searchInput,
|
|
22777
22798
|
lazyLoad ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -22944,7 +22965,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
22944
22965
|
item.media_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video bg-ods-bg", children: _chunkY6I2DGKCcjs.isVideoMedia.call(void 0, item) || item.media_type === "demo" ? (
|
|
22945
22966
|
// <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
|
|
22946
22967
|
// fit="cover" crops to the aspect-video cell.
|
|
22947
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22968
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
|
|
22948
22969
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22949
22970
|
_chunkWLSFBRT5cjs.next_image_default,
|
|
22950
22971
|
{
|
|
@@ -23077,7 +23098,7 @@ var SelectButton = _react2.default.forwardRef(
|
|
|
23077
23098
|
}
|
|
23078
23099
|
)
|
|
23079
23100
|
] }),
|
|
23080
|
-
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23101
|
+
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Tag, { variant: tagVariant, className: "shrink-0", label: tag }),
|
|
23081
23102
|
selected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckCircleIcon, { className: "size-4 shrink-0 text-ods-accent md:size-6" })
|
|
23082
23103
|
]
|
|
23083
23104
|
}
|
|
@@ -23939,7 +23960,7 @@ function VideoBitesDisplay({
|
|
|
23939
23960
|
filterPublished = true,
|
|
23940
23961
|
showTitle = true
|
|
23941
23962
|
}) {
|
|
23942
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23963
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
|
|
23943
23964
|
}
|
|
23944
23965
|
|
|
23945
23966
|
// src/components/features/walkthrough-video.tsx
|
|
@@ -24008,7 +24029,7 @@ function WalkthroughVideo({
|
|
|
24008
24029
|
if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
|
|
24009
24030
|
};
|
|
24010
24031
|
}, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId]);
|
|
24011
|
-
const hydrated =
|
|
24032
|
+
const hydrated = _chunkYLVPQNLOcjs.useIsHydrated.call(void 0, );
|
|
24012
24033
|
const previewSuppressed = _react.useMemo.call(void 0, () => {
|
|
24013
24034
|
if (!hydrated) return false;
|
|
24014
24035
|
try {
|
|
@@ -24405,7 +24426,7 @@ function WalkthroughVideo({
|
|
|
24405
24426
|
},
|
|
24406
24427
|
children: [
|
|
24407
24428
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24408
|
-
|
|
24429
|
+
_chunkYLVPQNLOcjs.VideoHoverPreviewSurface,
|
|
24409
24430
|
{
|
|
24410
24431
|
url: video.mainVideoUrl || "",
|
|
24411
24432
|
posterUrl: video.posterUrl,
|
|
@@ -24428,7 +24449,7 @@ function WalkthroughVideo({
|
|
|
24428
24449
|
`card-${embedUrlKey}`
|
|
24429
24450
|
) }),
|
|
24430
24451
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24431
|
-
|
|
24452
|
+
_chunkYLVPQNLOcjs.CardHitLayer,
|
|
24432
24453
|
{
|
|
24433
24454
|
label: video.title ? `${label}: ${video.title}` : label,
|
|
24434
24455
|
onPointerDown: pausePreviewNow,
|
|
@@ -24437,7 +24458,7 @@ function WalkthroughVideo({
|
|
|
24437
24458
|
}
|
|
24438
24459
|
),
|
|
24439
24460
|
/* @__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: [
|
|
24440
|
-
presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY6I2DGKCcjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24461
|
+
presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkY6I2DGKCcjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.VideoPlayBadge, { size: "sm", className: "h-5 w-5 shrink-0" }),
|
|
24441
24462
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: summaryTitle || label })
|
|
24442
24463
|
] }),
|
|
24443
24464
|
showBigUnmute && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -24450,7 +24471,7 @@ function WalkthroughVideo({
|
|
|
24450
24471
|
onPointerDown: (e) => e.stopPropagation(),
|
|
24451
24472
|
onClick: onUnmuteOrPlay,
|
|
24452
24473
|
className: "absolute inset-0 z-30 m-auto hidden sm:inline-flex",
|
|
24453
|
-
children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24474
|
+
children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.VideoPlayBadge, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.VideoUnmuteGlyph, {})
|
|
24454
24475
|
}
|
|
24455
24476
|
),
|
|
24456
24477
|
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: [
|
|
@@ -24543,7 +24564,7 @@ function WalkthroughVideo({
|
|
|
24543
24564
|
children: [
|
|
24544
24565
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive2.Title, { className: "sr-only", children: summaryTitle || "Walkthrough video" }),
|
|
24545
24566
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24546
|
-
|
|
24567
|
+
_chunkYLVPQNLOcjs.Video,
|
|
24547
24568
|
{
|
|
24548
24569
|
kind: video.youtubeUrl ? "youtube" : "file",
|
|
24549
24570
|
url: video.youtubeUrl || video.mainVideoUrl,
|
|
@@ -24594,7 +24615,7 @@ function InlineWalkthroughVideo(props) {
|
|
|
24594
24615
|
var _reactquery = require('@tanstack/react-query');
|
|
24595
24616
|
function useWalkthroughVideo(opts) {
|
|
24596
24617
|
const { endpoint, initialData, enabled = true, transformCaptionsUrl } = opts;
|
|
24597
|
-
const captions =
|
|
24618
|
+
const captions = _chunkYLVPQNLOcjs.useCaptions.call(void 0, );
|
|
24598
24619
|
const query = _reactquery.useQuery.call(void 0, {
|
|
24599
24620
|
queryKey: ["walkthrough-video", endpoint],
|
|
24600
24621
|
enabled,
|
|
@@ -24792,7 +24813,7 @@ function VideoSourceSelector({
|
|
|
24792
24813
|
}
|
|
24793
24814
|
function DefaultVideoPreview({ videoUrl, onDelete, disabled }) {
|
|
24794
24815
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border", children: [
|
|
24795
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24816
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Video, { kind: "file", url: videoUrl }) }),
|
|
24796
24817
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24797
24818
|
"button",
|
|
24798
24819
|
{
|
|
@@ -25316,7 +25337,7 @@ function HighlightVideoSection({
|
|
|
25316
25337
|
// Default simple preview — the <Video> SSOT (MuxPlayer) plays
|
|
25317
25338
|
// MP4 and Mux HLS alike; aspect-video box reserves the height.
|
|
25318
25339
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border bg-black", children: [
|
|
25319
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25340
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
|
|
25320
25341
|
onDeleteHighlight && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
25321
25342
|
"button",
|
|
25322
25343
|
{
|
|
@@ -26052,7 +26073,7 @@ var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
|
|
|
26052
26073
|
] });
|
|
26053
26074
|
};
|
|
26054
26075
|
var CategorySection = ({ category, editMode, isExpanded, bulkLevel, onToggle, onBulkLevelChange, onPolicyPermissionChange }) => {
|
|
26055
|
-
const { innerRef, containerStyle } =
|
|
26076
|
+
const { innerRef, containerStyle } = _chunkYLVPQNLOcjs.useCollapsible.call(void 0, { expanded: isExpanded, durationMs: 300 });
|
|
26056
26077
|
const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
|
|
26057
26078
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
26058
26079
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -26220,7 +26241,7 @@ function WaitlistForm({
|
|
|
26220
26241
|
const { toast } = _chunkFKXDDJEQcjs.useToast.call(void 0, );
|
|
26221
26242
|
const { honeypotInputProps, getSignals, resetSignals } = _chunkFKXDDJEQcjs.useHumanitySignals.call(void 0, );
|
|
26222
26243
|
const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
|
|
26223
|
-
const isClient =
|
|
26244
|
+
const isClient = _chunkYLVPQNLOcjs.useIsHydrated.call(void 0, );
|
|
26224
26245
|
const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
|
|
26225
26246
|
const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
|
|
26226
26247
|
const isMailDomainGeneric = hasGenericEmailDomain(email);
|
|
@@ -27020,7 +27041,7 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
27020
27041
|
"data-state": open ? "open" : "closed",
|
|
27021
27042
|
className: _chunk23V5BSHDcjs.cn.call(void 0,
|
|
27022
27043
|
"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",
|
|
27023
|
-
|
|
27044
|
+
_chunkYLVPQNLOcjs.OVERLAY_BACKDROP_CLASS,
|
|
27024
27045
|
// Persist mode only: hold the fade-out's final (transparent) frame
|
|
27025
27046
|
// so the backdrop doesn't snap back to opacity 1 and dim the whole
|
|
27026
27047
|
// content area while the drawer is "closed" (see PERSIST_CLOSED_HOLD).
|
|
@@ -27096,11 +27117,11 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
27096
27117
|
}
|
|
27097
27118
|
);
|
|
27098
27119
|
AppLayoutDrawerContent.displayName = "AppLayoutDrawerContent";
|
|
27099
|
-
var AppLayoutDrawerHeader =
|
|
27100
|
-
var AppLayoutDrawerTitle =
|
|
27101
|
-
var AppLayoutDrawerDescription =
|
|
27102
|
-
var AppLayoutDrawerBody =
|
|
27103
|
-
var AppLayoutDrawerFooter =
|
|
27120
|
+
var AppLayoutDrawerHeader = _chunkYLVPQNLOcjs.DrawerHeader;
|
|
27121
|
+
var AppLayoutDrawerTitle = _chunkYLVPQNLOcjs.DrawerTitle;
|
|
27122
|
+
var AppLayoutDrawerDescription = _chunkYLVPQNLOcjs.DrawerDescription;
|
|
27123
|
+
var AppLayoutDrawerBody = _chunkYLVPQNLOcjs.DrawerBody;
|
|
27124
|
+
var AppLayoutDrawerFooter = _chunkYLVPQNLOcjs.DrawerFooter;
|
|
27104
27125
|
|
|
27105
27126
|
// src/components/features/notifications/notification-tile.tsx
|
|
27106
27127
|
|
|
@@ -27188,7 +27209,7 @@ function NotificationTile({
|
|
|
27188
27209
|
}
|
|
27189
27210
|
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk23V5BSHDcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkFKXDDJEQcjs.dotColorByVariant[accentVariant]) }))) }),
|
|
27190
27211
|
type ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk23V5BSHDcjs.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" }),
|
|
27191
|
-
!isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children:
|
|
27212
|
+
!isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkYLVPQNLOcjs.formatTicketRelativeTime.call(void 0, createdAtIso) }) : null,
|
|
27192
27213
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "relative size-4 shrink-0", children: [
|
|
27193
27214
|
{
|
|
27194
27215
|
active: isLive,
|
|
@@ -27285,7 +27306,7 @@ function NotificationDrawer({
|
|
|
27285
27306
|
const unreadNotifications = notifications.filter((n) => !n.read);
|
|
27286
27307
|
const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
27287
27308
|
/* @__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,
|
|
27288
|
-
|
|
27309
|
+
_chunkYLVPQNLOcjs.DrawerTitle,
|
|
27289
27310
|
{
|
|
27290
27311
|
hideClose: true,
|
|
27291
27312
|
className: "truncate",
|
|
@@ -27344,8 +27365,8 @@ function NotificationDrawer({
|
|
|
27344
27365
|
}
|
|
27345
27366
|
) });
|
|
27346
27367
|
}
|
|
27347
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27348
|
-
|
|
27368
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Drawer, { open: isOpen, onOpenChange: (v) => v ? open() : close(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27369
|
+
_chunkYLVPQNLOcjs.DrawerContent,
|
|
27349
27370
|
{
|
|
27350
27371
|
side: "right",
|
|
27351
27372
|
"aria-describedby": void 0,
|
|
@@ -27620,13 +27641,13 @@ function getApprovalMeta(notification) {
|
|
|
27620
27641
|
function resolutionToStatus(resolution) {
|
|
27621
27642
|
switch (typeof resolution === "string" ? resolution.toUpperCase() : void 0) {
|
|
27622
27643
|
case "APPROVED":
|
|
27623
|
-
return
|
|
27644
|
+
return _chunkYLVPQNLOcjs.APPROVAL_STATUS.APPROVED;
|
|
27624
27645
|
case "REJECTED":
|
|
27625
|
-
return
|
|
27646
|
+
return _chunkYLVPQNLOcjs.APPROVAL_STATUS.REJECTED;
|
|
27626
27647
|
case "CANCELLED":
|
|
27627
|
-
return
|
|
27648
|
+
return _chunkYLVPQNLOcjs.APPROVAL_STATUS.CANCELLED;
|
|
27628
27649
|
default:
|
|
27629
|
-
return
|
|
27650
|
+
return _chunkYLVPQNLOcjs.APPROVAL_STATUS.PENDING;
|
|
27630
27651
|
}
|
|
27631
27652
|
}
|
|
27632
27653
|
function approvalMetaToBatchData(approval) {
|
|
@@ -27666,7 +27687,7 @@ function ApprovalRequestNotificationTile({
|
|
|
27666
27687
|
const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _582 => _582.resolution]));
|
|
27667
27688
|
const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
|
|
27668
27689
|
const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
|
|
27669
|
-
const { innerRef, containerStyle } =
|
|
27690
|
+
const { innerRef, containerStyle } = _chunkYLVPQNLOcjs.useCollapsible.call(void 0, { expanded });
|
|
27670
27691
|
if (!approval || !batchData) return null;
|
|
27671
27692
|
const tileNotification = {
|
|
27672
27693
|
...notification,
|
|
@@ -27719,7 +27740,7 @@ function ApprovalRequestNotificationTile({
|
|
|
27719
27740
|
}
|
|
27720
27741
|
)
|
|
27721
27742
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
27722
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27743
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ApprovalStatusTag, { status }),
|
|
27723
27744
|
approval.resolvedByName ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: [
|
|
27724
27745
|
"by ",
|
|
27725
27746
|
approval.resolvedByName
|
|
@@ -27737,12 +27758,12 @@ function ApprovalRequestNotificationTile({
|
|
|
27737
27758
|
"aria-expanded": expanded,
|
|
27738
27759
|
"aria-label": toggleLabel,
|
|
27739
27760
|
className: "ml-auto w-6 shrink-0 px-0 md:w-8",
|
|
27740
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27761
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.ExpandChevron, { expanded })
|
|
27741
27762
|
}
|
|
27742
27763
|
)
|
|
27743
27764
|
] }),
|
|
27744
27765
|
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,
|
|
27745
|
-
|
|
27766
|
+
_chunkYLVPQNLOcjs.ApprovalBatchMessage,
|
|
27746
27767
|
{
|
|
27747
27768
|
data: batchData,
|
|
27748
27769
|
showExecutionStatus: false,
|
|
@@ -28073,7 +28094,7 @@ var STATUS_TAG_SKIN = "gap-[var(--spacing-system-xs)] font-mono font-medium uppe
|
|
|
28073
28094
|
function StatusTag({ status }) {
|
|
28074
28095
|
if (status === "tracking") {
|
|
28075
28096
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28076
|
-
|
|
28097
|
+
_chunkYLVPQNLOcjs.Tag,
|
|
28077
28098
|
{
|
|
28078
28099
|
variant: "success",
|
|
28079
28100
|
className: STATUS_TAG_SKIN,
|
|
@@ -28083,9 +28104,9 @@ function StatusTag({ status }) {
|
|
|
28083
28104
|
);
|
|
28084
28105
|
}
|
|
28085
28106
|
if (status === "paused") {
|
|
28086
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28107
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Tag, { variant: "warning", className: STATUS_TAG_SKIN, icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.PauseIcon, { className: "h-4 w-4" }), label: "Paused" });
|
|
28087
28108
|
}
|
|
28088
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28109
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Tag, { variant: "grey", className: STATUS_TAG_SKIN, label: "Ready to Track" });
|
|
28089
28110
|
}
|
|
28090
28111
|
function LastEntryRow({ entry, onClick }) {
|
|
28091
28112
|
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: [
|
|
@@ -28254,7 +28275,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
28254
28275
|
"data-state": isOpen ? "open" : "closed",
|
|
28255
28276
|
className: _chunk23V5BSHDcjs.cn.call(void 0,
|
|
28256
28277
|
layoutContainer ? "absolute inset-0 z-[102]" : "fixed inset-0 z-[1299]",
|
|
28257
|
-
|
|
28278
|
+
_chunkYLVPQNLOcjs.OVERLAY_BACKDROP_CLASS,
|
|
28258
28279
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
28259
28280
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0"
|
|
28260
28281
|
)
|
|
@@ -28408,7 +28429,7 @@ function BoardColumnHeader({
|
|
|
28408
28429
|
}) {
|
|
28409
28430
|
const count = _nullishCoalesce(column.total, () => ( column.tickets.length));
|
|
28410
28431
|
const tagStatus = _nullishCoalesce(column.statusKey, () => ( column.id));
|
|
28411
|
-
const useStatusVariant =
|
|
28432
|
+
const useStatusVariant = _chunkYLVPQNLOcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
|
|
28412
28433
|
const actionClass = "h-8 w-8 p-0 md:h-8 md:w-8";
|
|
28413
28434
|
if (collapsed) {
|
|
28414
28435
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
@@ -28424,7 +28445,7 @@ function BoardColumnHeader({
|
|
|
28424
28445
|
}
|
|
28425
28446
|
),
|
|
28426
28447
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28427
|
-
|
|
28448
|
+
_chunkYLVPQNLOcjs.TicketStatusTag,
|
|
28428
28449
|
{
|
|
28429
28450
|
status: tagStatus,
|
|
28430
28451
|
label: column.label,
|
|
@@ -28437,7 +28458,7 @@ function BoardColumnHeader({
|
|
|
28437
28458
|
}
|
|
28438
28459
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
28439
28460
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
28440
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28461
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
|
|
28441
28462
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h5", style: useStatusVariant ? void 0 : { color: column.color }, children: count })
|
|
28442
28463
|
] }),
|
|
28443
28464
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
@@ -28588,7 +28609,7 @@ function holdMoveDragEffect(element) {
|
|
|
28588
28609
|
|
|
28589
28610
|
function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
28590
28611
|
const [expanded, setExpanded] = _react.useState.call(void 0, false);
|
|
28591
|
-
const { innerRef, containerStyle } =
|
|
28612
|
+
const { innerRef, containerStyle } = _chunkYLVPQNLOcjs.useCollapsible.call(void 0, { expanded });
|
|
28592
28613
|
const isAdmin = pendingApproval.approvalType === "ADMIN";
|
|
28593
28614
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
|
|
28594
28615
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -28617,7 +28638,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
|
28617
28638
|
}
|
|
28618
28639
|
),
|
|
28619
28640
|
/* @__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,
|
|
28620
|
-
|
|
28641
|
+
_chunkYLVPQNLOcjs.ApprovalBatchMessage,
|
|
28621
28642
|
{
|
|
28622
28643
|
className: "mb-0",
|
|
28623
28644
|
data: {
|
|
@@ -28689,7 +28710,7 @@ var ACTIVITY_DEFAULT_LABEL = {
|
|
|
28689
28710
|
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";
|
|
28690
28711
|
function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
|
|
28691
28712
|
const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
|
|
28692
|
-
const newMessageTextColor = columnColor ?
|
|
28713
|
+
const newMessageTextColor = columnColor ? _chunkYLVPQNLOcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
|
|
28693
28714
|
const showDeviceRow = !!(_optionalChain([ticket, 'access', _618 => _618.deviceHostnames, 'optionalAccess', _619 => _619.length]) || ticket.organizationName);
|
|
28694
28715
|
const deviceText = [_optionalChain([ticket, 'access', _620 => _620.deviceHostnames, 'optionalAccess', _621 => _621.join, 'call', _622 => _622(", ")]), ticket.organizationName].filter(Boolean).join(", ");
|
|
28695
28716
|
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _623 => _623.assignees, 'optionalAccess', _624 => _624.length]) || renderAssignSlot);
|
|
@@ -28728,8 +28749,8 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28728
28749
|
] })
|
|
28729
28750
|
] }) : null
|
|
28730
28751
|
] }) : null;
|
|
28731
|
-
const timestampLabel = ticket.createdAt ?
|
|
28732
|
-
const tooltipLabel = ticket.createdAt ?
|
|
28752
|
+
const timestampLabel = ticket.createdAt ? _chunkYLVPQNLOcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
|
|
28753
|
+
const tooltipLabel = ticket.createdAt ? _chunkYLVPQNLOcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
|
|
28733
28754
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
28734
28755
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
|
|
28735
28756
|
/* @__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: [
|
|
@@ -28742,9 +28763,9 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28742
28763
|
rightSection
|
|
28743
28764
|
] }),
|
|
28744
28765
|
_optionalChain([ticket, 'access', _627 => _627.tags, 'optionalAccess', _628 => _628.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
|
|
28745
|
-
timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28746
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28747
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28766
|
+
timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkYLVPQNLOcjs.Tooltip, { children: [
|
|
28767
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
|
|
28768
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.TooltipContent, { children: tooltipLabel })
|
|
28748
28769
|
] }) }),
|
|
28749
28770
|
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: [
|
|
28750
28771
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.UserCheckIcon, { className: "size-4 shrink-0" }),
|
|
@@ -28764,7 +28785,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28764
28785
|
}
|
|
28765
28786
|
),
|
|
28766
28787
|
showNewMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28767
|
-
|
|
28788
|
+
_chunkYLVPQNLOcjs.Tag,
|
|
28768
28789
|
{
|
|
28769
28790
|
label: "New Message",
|
|
28770
28791
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.MessagesIcon, { size: 16, color: newMessageTextColor }),
|
|
@@ -28979,8 +29000,8 @@ function TicketTagRow({ tags }) {
|
|
|
28979
29000
|
const visible = tags.slice(0, MAX_VISIBLE_TAGS);
|
|
28980
29001
|
const hidden = tags.length - visible.length;
|
|
28981
29002
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 flex-wrap items-start gap-[var(--spacing-system-xxs)] overflow-clip", children: [
|
|
28982
|
-
visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28983
|
-
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29003
|
+
visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Tag, { variant: "outline", label: tag }, tag)),
|
|
29004
|
+
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYLVPQNLOcjs.Tag, { variant: "outline", label: `+${hidden}` })
|
|
28984
29005
|
] });
|
|
28985
29006
|
}
|
|
28986
29007
|
|
|
@@ -30656,4 +30677,4 @@ function SortableRow({
|
|
|
30656
30677
|
|
|
30657
30678
|
|
|
30658
30679
|
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.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; 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.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.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TitleContentBlock = TitleContentBlock; exports.TouchFriendlyTooltip = TouchFriendlyTooltip; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.PasswordInput = PasswordInput; exports.AccountDetailsFields = AccountDetailsFields; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.LabeledDivider = LabeledDivider; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SOCIAL_ICON_COMPONENTS = SOCIAL_ICON_COMPONENTS; exports.SocialIconRow = SocialIconRow; 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.DATA_TABLE_HEADER_LABEL_CLASS = DATA_TABLE_HEADER_LABEL_CLASS; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow; exports.LazyMount = LazyMount;
|
|
30659
|
-
//# sourceMappingURL=chunk-
|
|
30680
|
+
//# sourceMappingURL=chunk-UBRVIVY4.cjs.map
|