@flamingo-stack/openframe-frontend-core 0.0.584 → 0.0.585-snapshot.20260903083645
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-3ELW4VML.js → chunk-2Y5UT5VF.js} +3 -3
- package/dist/{chunk-YFZDIEVC.js → chunk-3HYHYKNL.js} +6 -6
- package/dist/{chunk-5CJKZHWO.js → chunk-3JVYM4ZN.js} +5 -5
- package/dist/{chunk-P2VRLSAP.cjs → chunk-3WR5R6H6.cjs} +21 -21
- package/dist/{chunk-P2VRLSAP.cjs.map → chunk-3WR5R6H6.cjs.map} +1 -1
- package/dist/{chunk-UCNEQKIT.cjs → chunk-4VZFJKPT.cjs} +5 -5
- package/dist/{chunk-UCNEQKIT.cjs.map → chunk-4VZFJKPT.cjs.map} +1 -1
- package/dist/{chunk-VEHZNQ77.cjs → chunk-5LUPIYPH.cjs} +30 -30
- package/dist/{chunk-VEHZNQ77.cjs.map → chunk-5LUPIYPH.cjs.map} +1 -1
- package/dist/{chunk-TLKHLGAB.js → chunk-5OIXAV4P.js} +3 -3
- package/dist/{chunk-LNKULR4V.js → chunk-6EZGJZVH.js} +2 -2
- package/dist/{chunk-JWKAJTNA.cjs → chunk-6ZNWY6WW.cjs} +28 -28
- package/dist/{chunk-JWKAJTNA.cjs.map → chunk-6ZNWY6WW.cjs.map} +1 -1
- package/dist/{chunk-QJR32JM2.cjs → chunk-A6ETQEWK.cjs} +615 -485
- package/dist/chunk-A6ETQEWK.cjs.map +1 -0
- package/dist/{chunk-JFKK3ZOA.cjs → chunk-BMORFCT2.cjs} +57 -57
- package/dist/{chunk-JFKK3ZOA.cjs.map → chunk-BMORFCT2.cjs.map} +1 -1
- package/dist/{chunk-33DHEEMP.cjs → chunk-C3MRLZUI.cjs} +33 -33
- package/dist/{chunk-33DHEEMP.cjs.map → chunk-C3MRLZUI.cjs.map} +1 -1
- package/dist/{chunk-XWBND4G5.js → chunk-D7YISHXC.js} +17 -2
- package/dist/{chunk-XWBND4G5.js.map → chunk-D7YISHXC.js.map} +1 -1
- package/dist/{chunk-EJKEDCTH.js → chunk-DQUEVRDU.js} +7 -7
- package/dist/{chunk-HCKEDTKJ.cjs → chunk-EAYMX22G.cjs} +15 -15
- package/dist/{chunk-HCKEDTKJ.cjs.map → chunk-EAYMX22G.cjs.map} +1 -1
- package/dist/{chunk-NNFQLTJ3.cjs → chunk-EMF64FWA.cjs} +31 -5
- package/dist/chunk-EMF64FWA.cjs.map +1 -0
- package/dist/{chunk-IKUSKKFZ.cjs → chunk-G45RGWHF.cjs} +159 -144
- package/dist/chunk-G45RGWHF.cjs.map +1 -0
- package/dist/{chunk-TOUD3AGK.js → chunk-KLWJRGNN.js} +5 -5
- package/dist/{chunk-MYEG5ZDT.js → chunk-L4WLYGB4.js} +3 -3
- package/dist/{chunk-VZSTL5VG.js → chunk-LV6CORVJ.js} +3 -3
- package/dist/{chunk-MEJFHD5N.cjs → chunk-M36XSGZV.cjs} +19 -19
- package/dist/{chunk-MEJFHD5N.cjs.map → chunk-M36XSGZV.cjs.map} +1 -1
- package/dist/{chunk-MCWAZ5XI.js → chunk-NFWAL6UV.js} +2 -2
- package/dist/{chunk-3ZA2OYRE.cjs → chunk-NISAGFEM.cjs} +3 -3
- package/dist/{chunk-3ZA2OYRE.cjs.map → chunk-NISAGFEM.cjs.map} +1 -1
- package/dist/{chunk-7X5TCK4R.cjs → chunk-NYLWMAHP.cjs} +10 -10
- package/dist/{chunk-7X5TCK4R.cjs.map → chunk-NYLWMAHP.cjs.map} +1 -1
- package/dist/{chunk-RURZ6QLN.js → chunk-OZNFPQT5.js} +3 -3
- package/dist/{chunk-VOAZU46B.cjs → chunk-P2CKLIOM.cjs} +80 -80
- package/dist/{chunk-VOAZU46B.cjs.map → chunk-P2CKLIOM.cjs.map} +1 -1
- package/dist/{chunk-KP6VJP36.js → chunk-PLMJVA2H.js} +4 -4
- package/dist/{chunk-JAJQ5P2Q.cjs → chunk-QZYYNBMI.cjs} +28 -28
- package/dist/{chunk-JAJQ5P2Q.cjs.map → chunk-QZYYNBMI.cjs.map} +1 -1
- package/dist/{chunk-4T5KOD3G.js → chunk-S7YXLZNG.js} +6 -6
- package/dist/{chunk-Q66AMADB.cjs → chunk-SSGM2NKA.cjs} +6 -6
- package/dist/{chunk-Q66AMADB.cjs.map → chunk-SSGM2NKA.cjs.map} +1 -1
- package/dist/{chunk-IIT5HWLY.cjs → chunk-V7ZJTUV2.cjs} +11 -11
- package/dist/{chunk-IIT5HWLY.cjs.map → chunk-V7ZJTUV2.cjs.map} +1 -1
- package/dist/{chunk-3LMYQGAJ.js → chunk-X7YSF6A3.js} +28 -2
- package/dist/chunk-X7YSF6A3.js.map +1 -0
- package/dist/{chunk-ZHUBNWEX.cjs → chunk-XMK24INA.cjs} +6 -6
- package/dist/{chunk-ZHUBNWEX.cjs.map → chunk-XMK24INA.cjs.map} +1 -1
- package/dist/{chunk-XPJKQ63S.js → chunk-XMTGLQSD.js} +3 -3
- package/dist/{chunk-6BJYPG2V.js → chunk-YEQAA6I4.js} +4 -4
- package/dist/{chunk-JVWRMLQZ.js → chunk-YYC7V7YC.js} +2059 -1929
- package/dist/chunk-YYC7V7YC.js.map +1 -0
- package/dist/components/case-studies/index.cjs +10 -10
- package/dist/components/case-studies/index.js +4 -4
- package/dist/components/chat/entity-cards/program-card.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +3 -3
- package/dist/components/chat/index.js +2 -2
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +8 -8
- package/dist/components/docs/index.js +7 -7
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +5 -5
- package/dist/components/faq/index.js +4 -4
- package/dist/components/features/auth/account-details-fields.d.ts +34 -0
- package/dist/components/features/auth/account-details-fields.d.ts.map +1 -0
- package/dist/components/features/auth/complete-account-form.d.ts.map +1 -1
- package/dist/components/features/auth/create-organization-form.d.ts +43 -6
- package/dist/components/features/auth/create-organization-form.d.ts.map +1 -1
- package/dist/components/features/auth/index.d.ts +2 -0
- package/dist/components/features/auth/index.d.ts.map +1 -1
- package/dist/components/features/auth/labeled-divider.d.ts +6 -0
- package/dist/components/features/auth/labeled-divider.d.ts.map +1 -0
- package/dist/components/features/auth/login-form.d.ts +32 -9
- package/dist/components/features/auth/login-form.d.ts.map +1 -1
- package/dist/components/features/auth/openframe-sso-signup-form.d.ts.map +1 -1
- package/dist/components/features/auth/sso-providers.d.ts +1 -1
- package/dist/components/features/auth/sso-providers.d.ts.map +1 -1
- package/dist/components/features/index.cjs +8 -4
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +7 -3
- package/dist/components/features/media-gallery-manager.d.ts.map +1 -1
- package/dist/components/features/push-button-selector.d.ts +9 -7
- package/dist/components/features/push-button-selector.d.ts.map +1 -1
- package/dist/components/features/release-media-manager.d.ts.map +1 -1
- package/dist/components/features/video.d.ts +8 -0
- package/dist/components/features/video.d.ts.map +1 -1
- package/dist/components/help-center-pages/index.cjs +24 -24
- package/dist/components/help-center-pages/index.js +15 -15
- package/dist/components/index.cjs +57 -51
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +21 -15
- package/dist/components/index.js.map +1 -1
- package/dist/components/loading/unified-skeleton.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +31 -31
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +7 -7
- package/dist/components/navigation/index.js +6 -6
- package/dist/components/onboarding-guides/index.cjs +7 -7
- package/dist/components/onboarding-guides/index.js +6 -6
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +8 -8
- package/dist/components/tickets/index.js +7 -7
- package/dist/components/ui/index.cjs +6 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +5 -3
- package/dist/components/ui/lazy-mount.d.ts +21 -0
- package/dist/components/ui/lazy-mount.d.ts.map +1 -0
- package/dist/index.cjs +24 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +23 -7
- package/dist/index.js.map +1 -1
- package/dist/types/marketing.d.ts +1 -1
- package/dist/types/marketing.d.ts.map +1 -1
- package/dist/utils/index.cjs +26 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +22 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/media-type.d.ts +26 -0
- package/dist/utils/media-type.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/chat/entity-cards/program-card.tsx +2 -2
- package/src/components/features/auth/account-details-fields.tsx +124 -0
- package/src/components/features/auth/complete-account-form.tsx +13 -52
- package/src/components/features/auth/create-organization-form.tsx +128 -38
- package/src/components/features/auth/index.ts +2 -0
- package/src/components/features/auth/labeled-divider.tsx +16 -0
- package/src/components/features/auth/login-form.tsx +102 -23
- package/src/components/features/auth/openframe-sso-signup-form.tsx +11 -43
- package/src/components/features/auth/sso-providers.tsx +3 -3
- package/src/components/features/media-gallery-manager.tsx +4 -3
- package/src/components/features/push-button-selector.tsx +15 -12
- package/src/components/features/release-media-manager.tsx +3 -2
- package/src/components/features/video.tsx +28 -0
- package/src/components/loading/__tests__/unified-skeleton.test.tsx +16 -0
- package/src/components/loading/unified-skeleton.tsx +5 -1
- package/src/components/ui/__tests__/lazy-mount.test.tsx +46 -0
- package/src/components/ui/index.ts +3 -0
- package/src/components/ui/lazy-mount.tsx +38 -0
- package/src/stories/auth/Login.stories.tsx +15 -5
- package/src/types/.marketing.md +0 -1
- package/src/types/marketing.ts +4 -2
- package/src/utils/__tests__/media-type.test.ts +30 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/media-type.ts +39 -0
- package/src/utils/vendor-media-stub.ts +7 -7
- package/dist/chunk-3LMYQGAJ.js.map +0 -1
- package/dist/chunk-IKUSKKFZ.cjs.map +0 -1
- package/dist/chunk-JVWRMLQZ.js.map +0 -1
- package/dist/chunk-NNFQLTJ3.cjs.map +0 -1
- package/dist/chunk-QJR32JM2.cjs.map +0 -1
- /package/dist/{chunk-3ELW4VML.js.map → chunk-2Y5UT5VF.js.map} +0 -0
- /package/dist/{chunk-YFZDIEVC.js.map → chunk-3HYHYKNL.js.map} +0 -0
- /package/dist/{chunk-5CJKZHWO.js.map → chunk-3JVYM4ZN.js.map} +0 -0
- /package/dist/{chunk-TLKHLGAB.js.map → chunk-5OIXAV4P.js.map} +0 -0
- /package/dist/{chunk-LNKULR4V.js.map → chunk-6EZGJZVH.js.map} +0 -0
- /package/dist/{chunk-EJKEDCTH.js.map → chunk-DQUEVRDU.js.map} +0 -0
- /package/dist/{chunk-TOUD3AGK.js.map → chunk-KLWJRGNN.js.map} +0 -0
- /package/dist/{chunk-MYEG5ZDT.js.map → chunk-L4WLYGB4.js.map} +0 -0
- /package/dist/{chunk-VZSTL5VG.js.map → chunk-LV6CORVJ.js.map} +0 -0
- /package/dist/{chunk-MCWAZ5XI.js.map → chunk-NFWAL6UV.js.map} +0 -0
- /package/dist/{chunk-RURZ6QLN.js.map → chunk-OZNFPQT5.js.map} +0 -0
- /package/dist/{chunk-KP6VJP36.js.map → chunk-PLMJVA2H.js.map} +0 -0
- /package/dist/{chunk-4T5KOD3G.js.map → chunk-S7YXLZNG.js.map} +0 -0
- /package/dist/{chunk-XPJKQ63S.js.map → chunk-XMTGLQSD.js.map} +0 -0
- /package/dist/{chunk-6BJYPG2V.js.map → chunk-YEQAA6I4.js.map} +0 -0
|
@@ -90,7 +90,9 @@ var _chunkIKDC3R7Vcjs = require('./chunk-IKDC3R7V.cjs');
|
|
|
90
90
|
|
|
91
91
|
|
|
92
92
|
|
|
93
|
-
var
|
|
93
|
+
var _chunkG45RGWHFcjs = require('./chunk-G45RGWHF.cjs');
|
|
94
|
+
|
|
95
|
+
|
|
94
96
|
|
|
95
97
|
|
|
96
98
|
|
|
@@ -201,6 +203,7 @@ var _chunkKZAAIUP5cjs = require('./chunk-KZAAIUP5.cjs');
|
|
|
201
203
|
|
|
202
204
|
|
|
203
205
|
|
|
206
|
+
|
|
204
207
|
|
|
205
208
|
|
|
206
209
|
var _chunkGSQM4PDRcjs = require('./chunk-GSQM4PDR.cjs');
|
|
@@ -216,7 +219,8 @@ var _chunkXQFFGR6Ucjs = require('./chunk-XQFFGR6U.cjs');
|
|
|
216
219
|
|
|
217
220
|
|
|
218
221
|
|
|
219
|
-
|
|
222
|
+
|
|
223
|
+
var _chunkEMF64FWAcjs = require('./chunk-EMF64FWA.cjs');
|
|
220
224
|
|
|
221
225
|
|
|
222
226
|
var _chunkWLSFBRT5cjs = require('./chunk-WLSFBRT5.cjs');
|
|
@@ -331,7 +335,7 @@ function ThemeProvider({ children, ...overrides }) {
|
|
|
331
335
|
var useTheme = _nextthemes.useTheme;
|
|
332
336
|
function useThemeToggle() {
|
|
333
337
|
const { resolvedTheme, theme, setTheme } = useTheme();
|
|
334
|
-
const mounted =
|
|
338
|
+
const mounted = _chunkG45RGWHFcjs.useIsHydrated.call(void 0, );
|
|
335
339
|
const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
|
|
336
340
|
const setOdsTheme = _react.useCallback.call(void 0, (next) => setTheme(next), [setTheme]);
|
|
337
341
|
const toggle = _react.useCallback.call(void 0, () => setTheme(active === "dark" ? "light" : "dark"), [active, setTheme]);
|
|
@@ -608,7 +612,7 @@ function TruncateText({
|
|
|
608
612
|
const { ref, isTruncated } = _chunkZI27ALYXcjs.useIsTruncated.call(void 0, children, { multiline: isMultiLine });
|
|
609
613
|
const clampClass = isMultiLine ? LINE_CLAMP_CLASS[lines] : "truncate block";
|
|
610
614
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
611
|
-
|
|
615
|
+
_chunkG45RGWHFcjs.FloatingTooltip,
|
|
612
616
|
{
|
|
613
617
|
content: _nullishCoalesce(tooltip, () => ( children)),
|
|
614
618
|
side,
|
|
@@ -910,7 +914,7 @@ function AutocompleteInner(props, ref) {
|
|
|
910
914
|
),
|
|
911
915
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2", children: [
|
|
912
916
|
multiple && visibleTags.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
913
|
-
|
|
917
|
+
_chunkG45RGWHFcjs.Tag,
|
|
914
918
|
{
|
|
915
919
|
variant: "outline",
|
|
916
920
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -1116,7 +1120,7 @@ function AutocompleteInner(props, ref) {
|
|
|
1116
1120
|
"aria-hidden": "true",
|
|
1117
1121
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
1118
1122
|
children: selectedOptions.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1119
|
-
|
|
1123
|
+
_chunkG45RGWHFcjs.Tag,
|
|
1120
1124
|
{
|
|
1121
1125
|
variant: "outline",
|
|
1122
1126
|
labelClassName: "max-w-[90px] truncate",
|
|
@@ -2500,7 +2504,7 @@ function InfoHint({ children, label, side = "top", className }) {
|
|
|
2500
2504
|
const describedById = _react.useId.call(void 0, );
|
|
2501
2505
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "inline-flex shrink-0 items-center", className), children: [
|
|
2502
2506
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2503
|
-
|
|
2507
|
+
_chunkG45RGWHFcjs.FloatingTooltip,
|
|
2504
2508
|
{
|
|
2505
2509
|
content: children,
|
|
2506
2510
|
side,
|
|
@@ -2594,7 +2598,7 @@ function Value2({ value, depth }) {
|
|
|
2594
2598
|
}
|
|
2595
2599
|
if (typeof value === "string") {
|
|
2596
2600
|
if (ISO_DATE.test(value)) {
|
|
2597
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children:
|
|
2601
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { title: value, className: "text-ods-text-secondary", children: _chunkG45RGWHFcjs.formatRelativeTime.call(void 0, value) });
|
|
2598
2602
|
}
|
|
2599
2603
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-pre-wrap text-ods-text-primary", children: value });
|
|
2600
2604
|
}
|
|
@@ -2989,7 +2993,7 @@ function CompactAssigneeDropdown({
|
|
|
2989
2993
|
value: o.value,
|
|
2990
2994
|
label: o.label,
|
|
2991
2995
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2992
|
-
|
|
2996
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
2993
2997
|
{
|
|
2994
2998
|
src: o.imageUrl,
|
|
2995
2999
|
alt: o.label,
|
|
@@ -3024,7 +3028,7 @@ function CompactAssigneeDropdown({
|
|
|
3024
3028
|
className
|
|
3025
3029
|
),
|
|
3026
3030
|
children: currentAssignee.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeletedUserAvatar, { size: "sm", accessibleLabel: `Deleted user: ${currentAssignee.name || currentAssignee.id}` }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3027
|
-
|
|
3031
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
3028
3032
|
{
|
|
3029
3033
|
src: currentAssignee.avatarSrc,
|
|
3030
3034
|
alt: currentAssignee.name,
|
|
@@ -3072,7 +3076,7 @@ function DefaultAssigneeDropdown({ currentAssignee, options, isLoading, onAssign
|
|
|
3072
3076
|
const opt = option;
|
|
3073
3077
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-sf)]", children: [
|
|
3074
3078
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3075
|
-
|
|
3079
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
3076
3080
|
{
|
|
3077
3081
|
src: opt.imageUrl,
|
|
3078
3082
|
alt: opt.label,
|
|
@@ -3107,7 +3111,7 @@ function DefaultAssigneeDropdown({ currentAssignee, options, isLoading, onAssign
|
|
|
3107
3111
|
accessibleLabel: `Deleted user: ${currentAssignee.name || currentAssignee.id}`
|
|
3108
3112
|
}
|
|
3109
3113
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3110
|
-
|
|
3114
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
3111
3115
|
{
|
|
3112
3116
|
src: currentAssignee.avatarSrc,
|
|
3113
3117
|
alt: currentAssignee.name,
|
|
@@ -3132,7 +3136,7 @@ function DefaultAssigneeDropdown({ currentAssignee, options, isLoading, onAssign
|
|
|
3132
3136
|
accessibleLabel: `Deleted user: ${currentAssignee.name || currentAssignee.id}`
|
|
3133
3137
|
}
|
|
3134
3138
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3135
|
-
|
|
3139
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
3136
3140
|
{
|
|
3137
3141
|
src: currentAssignee.avatarSrc,
|
|
3138
3142
|
alt: currentAssignee.name,
|
|
@@ -3206,7 +3210,7 @@ function TextValue({ value }) {
|
|
|
3206
3210
|
}
|
|
3207
3211
|
) : onClick ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick, title: text, className: interactiveClass, children: text }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-primary text-h4", title: text, children: text }),
|
|
3208
3212
|
hasImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3209
|
-
|
|
3213
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
3210
3214
|
{
|
|
3211
3215
|
src: imageSrc,
|
|
3212
3216
|
alt: text,
|
|
@@ -3226,7 +3230,7 @@ function RowValue({ value }) {
|
|
|
3226
3230
|
}
|
|
3227
3231
|
case "status": {
|
|
3228
3232
|
const { type: _type, ...props } = value;
|
|
3229
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3233
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TicketStatusTag, { ...props });
|
|
3230
3234
|
}
|
|
3231
3235
|
case "custom":
|
|
3232
3236
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: value.content });
|
|
@@ -4137,7 +4141,7 @@ function TagsManager({
|
|
|
4137
4141
|
}
|
|
4138
4142
|
),
|
|
4139
4143
|
selectedTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4140
|
-
|
|
4144
|
+
_chunkG45RGWHFcjs.Tag,
|
|
4141
4145
|
{
|
|
4142
4146
|
label: tag.name,
|
|
4143
4147
|
variant: "outline",
|
|
@@ -4682,10 +4686,10 @@ function useConfirm() {
|
|
|
4682
4686
|
},
|
|
4683
4687
|
[]
|
|
4684
4688
|
);
|
|
4685
|
-
const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4686
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4687
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4688
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4689
|
+
const dialog = pending ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen: open, onClose: () => decide(false), children: [
|
|
4690
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: pending.title }) }),
|
|
4691
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalContent, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: pending.body }) }),
|
|
4692
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: [
|
|
4689
4693
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", onClick: () => decide(false), children: "Cancel" }),
|
|
4690
4694
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "destructive", onClick: () => decide(true), children: "Confirm" })
|
|
4691
4695
|
] })
|
|
@@ -4743,9 +4747,9 @@ function AdminFormModal({
|
|
|
4743
4747
|
body: "Your edits have not been saved. Close and discard them?"
|
|
4744
4748
|
});
|
|
4745
4749
|
if (!isOpen) return null;
|
|
4746
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4747
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4748
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4750
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen: true, onClose: guardedClose, size: effectiveSize, children: [
|
|
4751
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: [
|
|
4752
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: title }),
|
|
4749
4753
|
subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: subtitle })
|
|
4750
4754
|
] }),
|
|
4751
4755
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -4769,7 +4773,7 @@ function AdminFormModal({
|
|
|
4769
4773
|
// a shrink-to-fit flex item pinned to the left of a 1400px panel).
|
|
4770
4774
|
// The placeholder owns its own layout and mirrors the column count so
|
|
4771
4775
|
// the modal doesn't visibly re-flow when the entity lands.
|
|
4772
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4776
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalContent, { children: loadingContent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-busy": "true", children: loadingContent }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
4773
4777
|
"div",
|
|
4774
4778
|
{
|
|
4775
4779
|
"aria-busy": "true",
|
|
@@ -4790,12 +4794,12 @@ function AdminFormModal({
|
|
|
4790
4794
|
]
|
|
4791
4795
|
}
|
|
4792
4796
|
) })
|
|
4793
|
-
) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4797
|
+
) : twoColumn ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTwoColumn, { left: leftColumn, right: rightColumn }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalContent, { className: contentClassName, children }),
|
|
4794
4798
|
error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { role: "alert", className: "shrink-0 text-ods-error text-h6", children: error })
|
|
4795
4799
|
]
|
|
4796
4800
|
}
|
|
4797
4801
|
),
|
|
4798
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4802
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center justify-between gap-[var(--spacing-system-xsf)]", children: [
|
|
4799
4803
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: footerExtras }),
|
|
4800
4804
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
4801
4805
|
footerStatus,
|
|
@@ -6893,7 +6897,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarouselImpl({
|
|
|
6893
6897
|
};
|
|
6894
6898
|
const displayImageSrc = (url) => transformImageSrc ? transformImageSrc(url) : url;
|
|
6895
6899
|
const renderVideo = (item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
6896
|
-
|
|
6900
|
+
_chunkG45RGWHFcjs.Video,
|
|
6897
6901
|
{
|
|
6898
6902
|
url: item.src,
|
|
6899
6903
|
poster: item.poster ? displayImageSrc(item.poster) : void 0,
|
|
@@ -7325,7 +7329,7 @@ function RedditEmbedClient({ url, maxWidth = 700 }) {
|
|
|
7325
7329
|
width: m.width,
|
|
7326
7330
|
height: m.height
|
|
7327
7331
|
}));
|
|
7328
|
-
const formatNumber2 =
|
|
7332
|
+
const formatNumber2 = _chunkEMF64FWAcjs.formatLargeNumber;
|
|
7329
7333
|
const truncateText = (text, maxLength = 600) => {
|
|
7330
7334
|
if (text.length <= maxLength) return text;
|
|
7331
7335
|
return text.slice(0, maxLength) + "...";
|
|
@@ -7617,7 +7621,7 @@ function buildRichEmbedOverrides({
|
|
|
7617
7621
|
ogEndpointPath,
|
|
7618
7622
|
textSizes
|
|
7619
7623
|
}) {
|
|
7620
|
-
const standard =
|
|
7624
|
+
const standard = _chunkG45RGWHFcjs.buildStandardLeafRenderers.call(void 0, { textSizes });
|
|
7621
7625
|
return {
|
|
7622
7626
|
// Fence-language embeds (```youtube-embed etc.); everything else
|
|
7623
7627
|
// (mermaid, highlighted blocks, inline code) falls through to `standard`.
|
|
@@ -7627,7 +7631,7 @@ function buildRichEmbedOverrides({
|
|
|
7627
7631
|
const language = match ? match[1] : "";
|
|
7628
7632
|
const fenceText = () => String(children).replace(/\n$/, "").trim();
|
|
7629
7633
|
if (language === "youtube-embed") {
|
|
7630
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7634
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "youtube", url: fenceText() });
|
|
7631
7635
|
}
|
|
7632
7636
|
if (language === "reddit-embed") {
|
|
7633
7637
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: fenceText() });
|
|
@@ -7668,7 +7672,7 @@ function buildRichEmbedOverrides({
|
|
|
7668
7672
|
"data-figma-url": figmaUrl
|
|
7669
7673
|
} = divProps;
|
|
7670
7674
|
if (className === "youtube-embed" && videoId) {
|
|
7671
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7675
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "youtube", url: videoId });
|
|
7672
7676
|
}
|
|
7673
7677
|
if (className === "reddit-embed" && postUrl) {
|
|
7674
7678
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RedditEmbedClient, { url: postUrl });
|
|
@@ -7753,14 +7757,14 @@ function buildRichEmbedOverrides({
|
|
|
7753
7757
|
// rich-markdown runtime (Supabase optimization on the hub, identity
|
|
7754
7758
|
// elsewhere). Guard against empty `![]()`.
|
|
7755
7759
|
img: ({ src, alt }) => {
|
|
7756
|
-
if (!
|
|
7760
|
+
if (!_chunkG45RGWHFcjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7757
7761
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownImage, { src: src.trim(), alt });
|
|
7758
7762
|
},
|
|
7759
7763
|
// Raw <video> tags in stored content (blog publisher injection) route
|
|
7760
7764
|
// to the <Video> SSOT (MuxPlayer) so HLS manifests play everywhere.
|
|
7761
7765
|
video: ({ src, poster, className }) => {
|
|
7762
|
-
if (!
|
|
7763
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `overflow-hidden ${className || "my-8 w-full rounded-lg"}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7766
|
+
if (!_chunkG45RGWHFcjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7767
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `overflow-hidden ${className || "my-8 w-full rounded-lg"}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
|
|
7764
7768
|
}
|
|
7765
7769
|
};
|
|
7766
7770
|
}
|
|
@@ -7943,13 +7947,13 @@ var RichMarkdownInner = ({
|
|
|
7943
7947
|
},
|
|
7944
7948
|
[resolveLinkEndpointUrl, resolveSource]
|
|
7945
7949
|
);
|
|
7946
|
-
const textSizes = _react.useMemo.call(void 0, () =>
|
|
7950
|
+
const textSizes = _react.useMemo.call(void 0, () => _chunkG45RGWHFcjs.resolveTextSizeConfig.call(void 0, "article"), []);
|
|
7947
7951
|
const componentOverrides = _react.useMemo.call(void 0,
|
|
7948
7952
|
() => buildRichEmbedOverrides({ ogApiBaseUrl, ogEndpointPath, textSizes }),
|
|
7949
7953
|
[ogApiBaseUrl, ogEndpointPath, textSizes]
|
|
7950
7954
|
);
|
|
7951
7955
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7952
|
-
|
|
7956
|
+
_chunkG45RGWHFcjs.MarkdownEngine,
|
|
7953
7957
|
{
|
|
7954
7958
|
content,
|
|
7955
7959
|
className,
|
|
@@ -7971,7 +7975,7 @@ var RichMarkdownRendererImpl = ({
|
|
|
7971
7975
|
className = "",
|
|
7972
7976
|
sectionIds,
|
|
7973
7977
|
onInternalLinkClick,
|
|
7974
|
-
brokenLinks =
|
|
7978
|
+
brokenLinks = _chunkG45RGWHFcjs.NO_BROKEN_LINKS,
|
|
7975
7979
|
currentPath,
|
|
7976
7980
|
resolveSource = "openframe-docs",
|
|
7977
7981
|
resolveLinkEndpointUrl = "/api/docs/resolve-link",
|
|
@@ -8544,7 +8548,7 @@ function FilterModal({
|
|
|
8544
8548
|
const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _161 => _161.defaultSort]), () => ( "desc"));
|
|
8545
8549
|
const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _162 => _162.sort]), () => ( dateDefaultSort)));
|
|
8546
8550
|
const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _163 => _163.range]));
|
|
8547
|
-
const { scrollRef, fadeTop, fadeBottom, update: updateFade } =
|
|
8551
|
+
const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkG45RGWHFcjs.useScrollFade.call(void 0, );
|
|
8548
8552
|
const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
|
|
8549
8553
|
const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
|
|
8550
8554
|
_react.useEffect.call(void 0, () => {
|
|
@@ -8589,10 +8593,10 @@ function FilterModal({
|
|
|
8589
8593
|
const hasFilterGroups = filterGroups.length > 0;
|
|
8590
8594
|
const hasTagFilter = !!tagFilterKeys && tagFilterKeys.length > 0 && !!onTagsChange;
|
|
8591
8595
|
const isEmpty = !isLoading && !hasSort && !hasFilterGroups && !hasTagFilter && !dateFilter;
|
|
8592
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8593
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8596
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen, onClose, className: _chunkPRPZBXWZcjs.cn.call(void 0, "max-h-[90vh] max-w-none", className), children: [
|
|
8597
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: title }) }),
|
|
8594
8598
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8595
|
-
|
|
8599
|
+
_chunkG45RGWHFcjs.ModalContent,
|
|
8596
8600
|
{
|
|
8597
8601
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
8598
8602
|
"flex min-h-0 flex-1 flex-col",
|
|
@@ -8684,12 +8688,12 @@ function FilterModal({
|
|
|
8684
8688
|
] })
|
|
8685
8689
|
}
|
|
8686
8690
|
),
|
|
8687
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8688
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8691
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
|
|
8692
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
|
|
8689
8693
|
] })
|
|
8690
8694
|
}
|
|
8691
8695
|
),
|
|
8692
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
8696
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: [
|
|
8693
8697
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "outline", className: "h-11 flex-1", onClick: handleReset, children: resetButtonText }),
|
|
8694
8698
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { variant: "accent", className: "h-11 flex-1", onClick: handleApply, children: applyButtonText })
|
|
8695
8699
|
] })
|
|
@@ -8733,9 +8737,9 @@ function actionToMenuItems(action, idx) {
|
|
|
8733
8737
|
function renderActionButton(action, opts = {}) {
|
|
8734
8738
|
const button = renderRawActionButton(action, opts);
|
|
8735
8739
|
if (!action.tooltip) return button;
|
|
8736
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8737
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8738
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8740
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { children: [
|
|
8741
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipTrigger, { asChild: true, children: button }),
|
|
8742
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { children: action.tooltip })
|
|
8739
8743
|
] }) });
|
|
8740
8744
|
}
|
|
8741
8745
|
function renderRawActionButton(action, opts = {}) {
|
|
@@ -8759,7 +8763,7 @@ function renderRawActionButton(action, opts = {}) {
|
|
|
8759
8763
|
}
|
|
8760
8764
|
if (action.submenu && action.submenu.length > 0) {
|
|
8761
8765
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8762
|
-
|
|
8766
|
+
_chunkG45RGWHFcjs.ActionsMenuDropdown,
|
|
8763
8767
|
{
|
|
8764
8768
|
groups: [{ items: action.submenu }],
|
|
8765
8769
|
customTrigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -8894,10 +8898,10 @@ function IconButtonsVariant({
|
|
|
8894
8898
|
selector,
|
|
8895
8899
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8896
8900
|
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton(action) }, actionKey(action, idx))),
|
|
8897
|
-
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8901
|
+
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ActionsMenuDropdown, { groups: menuActions })
|
|
8898
8902
|
] })
|
|
8899
8903
|
] }),
|
|
8900
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex md:hidden", className), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileTriggerSkeleton, {}) : useSingleActionMobile && singleAction ? renderActionButton(singleAction, { iconOnly: true }) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8904
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex md:hidden", className), children: loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileTriggerSkeleton, {}) : useSingleActionMobile && singleAction ? renderActionButton(singleAction, { iconOnly: true }) : hasMobileMenuItems ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ActionsMenuDropdown, { groups: mobileMenuGroups }) : null })
|
|
8901
8905
|
] });
|
|
8902
8906
|
}
|
|
8903
8907
|
function PrimaryButtonsVariant({
|
|
@@ -8935,7 +8939,7 @@ function MenuPrimaryVariant({
|
|
|
8935
8939
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "hidden items-center md:flex", ACTIONS_GAP, className), children: [
|
|
8936
8940
|
selector,
|
|
8937
8941
|
loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ActionSkeletons, { actions: desktopActions }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
8938
|
-
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8942
|
+
hasMenuActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ActionsMenuDropdown, { groups: menuActions }),
|
|
8939
8943
|
desktopActions.map((action, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderActionButton({ ...action, variant: action.variant || "accent" }) }, `desktop-${actionKey(action, idx)}`))
|
|
8940
8944
|
] })
|
|
8941
8945
|
] }),
|
|
@@ -8943,7 +8947,7 @@ function MenuPrimaryVariant({
|
|
|
8943
8947
|
// The selector rides into the menu as its header row: on mobile the
|
|
8944
8948
|
// title row has no room for it, and hiding it entirely (what
|
|
8945
8949
|
// `icon-buttons` does) would leave no way to switch views at all.
|
|
8946
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8950
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ActionsMenuDropdown, { groups: mobileMenuGroups, header: selector })
|
|
8947
8951
|
) : null })
|
|
8948
8952
|
] });
|
|
8949
8953
|
}
|
|
@@ -9237,7 +9241,7 @@ function EntityImage({ src, alt, fallbackText, className }) {
|
|
|
9237
9241
|
const [failedSrc, setFailedSrc] = _react2.default.useState(null);
|
|
9238
9242
|
const imageFailed = resolvedSrc !== void 0 && failedSrc === resolvedSrc;
|
|
9239
9243
|
const showFallback = imageFailed || !resolvedSrc;
|
|
9240
|
-
const initials =
|
|
9244
|
+
const initials = _chunkEMF64FWAcjs.getFirstLastInitials.call(void 0, _nullishCoalesce(fallbackText, () => ( alt)));
|
|
9241
9245
|
if (showFallback) {
|
|
9242
9246
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9243
9247
|
"div",
|
|
@@ -9346,7 +9350,7 @@ function TitleBlock({
|
|
|
9346
9350
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center", children: [
|
|
9347
9351
|
(loading || title) && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
|
|
9348
9352
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9349
|
-
|
|
9353
|
+
_chunkG45RGWHFcjs.FloatingTooltip,
|
|
9350
9354
|
{
|
|
9351
9355
|
content: title,
|
|
9352
9356
|
side: "bottom",
|
|
@@ -9363,12 +9367,12 @@ function TitleBlock({
|
|
|
9363
9367
|
}
|
|
9364
9368
|
),
|
|
9365
9369
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
9366
|
-
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9370
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { ref: titleRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClass, "text-ods-text-primary", titleOverflowClass), children: titleNode }) })),
|
|
9367
9371
|
hasSubtitleRow && /* The NBSP is a pure spacer, reached only in `'always'` mode: an
|
|
9368
9372
|
empty `p` collapses to zero height (its only content would be
|
|
9369
9373
|
collapsible whitespace), which is exactly the shift that mode
|
|
9370
9374
|
exists to prevent. Hidden from AT — it carries no meaning. */
|
|
9371
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9375
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.FloatingTooltip, { content: subtitle, side: "bottom", disabled: !subtitleTruncated, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9372
9376
|
"p",
|
|
9373
9377
|
{
|
|
9374
9378
|
ref: subtitleRef,
|
|
@@ -9379,7 +9383,7 @@ function TitleBlock({
|
|
|
9379
9383
|
) })
|
|
9380
9384
|
] })
|
|
9381
9385
|
] }) : title && (titleAdornment ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center gap-[var(--spacing-system-m)]", children: [
|
|
9382
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9386
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.FloatingTooltip, { content: title, side: "bottom", disabled: !titleTruncated, triggerClassName: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { ref: titleRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClass, "min-w-0 text-ods-text-primary", titleOverflowClass), children: title }) }),
|
|
9383
9387
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "shrink-0", children: titleAdornment })
|
|
9384
9388
|
] }) : (
|
|
9385
9389
|
/* This branch never had the single-line clamp, so text already
|
|
@@ -10806,7 +10810,7 @@ function lastPathSegment(url) {
|
|
|
10806
10810
|
function makeComposeContentUrl(opts) {
|
|
10807
10811
|
const suffixes = _nullishCoalesce(opts.suffixes, () => ( DEFAULT_CONTENT_SUFFIXES));
|
|
10808
10812
|
return ({ type: rawType, identifier, slug: slugHint, externalUrl, targetPlatform, platforms }) => {
|
|
10809
|
-
const type =
|
|
10813
|
+
const type = _chunkEMF64FWAcjs.canonicalContentRefType.call(void 0, rawType);
|
|
10810
10814
|
const override = opts.overrides && Object.prototype.hasOwnProperty.call(opts.overrides, type) ? opts.overrides[type] : void 0;
|
|
10811
10815
|
if (override) return { ...override(identifier), hostOverride: true };
|
|
10812
10816
|
const seg = _nullishCoalesce((Object.prototype.hasOwnProperty.call(suffixes, type) ? suffixes[type] : void 0), () => ( type));
|
|
@@ -10993,7 +10997,7 @@ function extractSections(markdown, options = {}) {
|
|
|
10993
10997
|
if (heading.level > opts.maxLevel) continue;
|
|
10994
10998
|
let title = heading.text;
|
|
10995
10999
|
if (opts.stripFormattingMarkers) {
|
|
10996
|
-
title =
|
|
11000
|
+
title = _chunkG45RGWHFcjs.stripInlineMarkdown.call(void 0, title).trim();
|
|
10997
11001
|
}
|
|
10998
11002
|
const baseId = _chunkZI27ALYXcjs.slugifyHeadingBase.call(void 0, opts.removeEmojis ? _chunkZI27ALYXcjs.stripHeadingEmojis.call(void 0, title) : title);
|
|
10999
11003
|
const cleanId = baseId || `section-${sections.length + 1}`;
|
|
@@ -11485,7 +11489,7 @@ function DashboardInfoCard({
|
|
|
11485
11489
|
const asTag = percentageDisplay === "tag" || percentageDisplay === "auto" && (progressVariant === "warning" || progressVariant === "error");
|
|
11486
11490
|
if (asTag) {
|
|
11487
11491
|
const tagVariant = progressVariant === "warning" || progressVariant === "error" ? progressVariant : progressVariant === "success" ? "success" : "grey";
|
|
11488
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11492
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: tagVariant, label: `${percentage}%` });
|
|
11489
11493
|
}
|
|
11490
11494
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: [
|
|
11491
11495
|
"(",
|
|
@@ -11539,7 +11543,7 @@ function DashboardInfoCard({
|
|
|
11539
11543
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "truncate text-ods-text-primary text-h3 md:text-h2", valueClassName), children: formattedValue }),
|
|
11540
11544
|
subValue && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h6", children: subValue }),
|
|
11541
11545
|
renderPercentage(),
|
|
11542
|
-
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11546
|
+
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.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 }) }) })
|
|
11543
11547
|
] })
|
|
11544
11548
|
] }),
|
|
11545
11549
|
renderProgress()
|
|
@@ -11722,7 +11726,7 @@ function DeviceCard({
|
|
|
11722
11726
|
] }),
|
|
11723
11727
|
(statusTag || device.lastSeen) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-center gap-2", children: [
|
|
11724
11728
|
statusTag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11725
|
-
|
|
11729
|
+
_chunkG45RGWHFcjs.Tag,
|
|
11726
11730
|
{
|
|
11727
11731
|
variant: statusTag.variant,
|
|
11728
11732
|
icon: statusTag.icon,
|
|
@@ -11736,7 +11740,7 @@ function DeviceCard({
|
|
|
11736
11740
|
formatLastSeen(device.lastSeen)
|
|
11737
11741
|
] })
|
|
11738
11742
|
] }),
|
|
11739
|
-
device.tags && device.tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full flex-wrap items-center gap-2", children: device.tags.map((tag, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11743
|
+
device.tags && device.tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full flex-wrap items-center gap-2", children: device.tags.map((tag, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: "outline", label: tag }, index)) })
|
|
11740
11744
|
]
|
|
11741
11745
|
}
|
|
11742
11746
|
);
|
|
@@ -11797,7 +11801,7 @@ function FeatureCardGrid({
|
|
|
11797
11801
|
if (allCardsHaveNoBorders) {
|
|
11798
11802
|
finalCardClassName = "bg-transparent p-0 overflow-visible border-0 shadow-none rounded-none";
|
|
11799
11803
|
}
|
|
11800
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11804
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.Card, { className: `${finalCardClassName} ${className}`, children: Array.from({ length: rows }, (_, rowIndex) => {
|
|
11801
11805
|
const startIndex = rowIndex * itemsPerRow;
|
|
11802
11806
|
const rowItems = items.slice(startIndex, startIndex + itemsPerRow);
|
|
11803
11807
|
const isLastRow = rowIndex === rows - 1;
|
|
@@ -11827,7 +11831,7 @@ function FeatureCardGrid({
|
|
|
11827
11831
|
item.icon && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start justify-between", children: [
|
|
11828
11832
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, item.icon, { size: 80, color: item.iconColor }),
|
|
11829
11833
|
item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11830
|
-
|
|
11834
|
+
_chunkEMF64FWAcjs.StatusBadge,
|
|
11831
11835
|
{
|
|
11832
11836
|
text: item.badge.text,
|
|
11833
11837
|
variant: item.badge.variant || "card",
|
|
@@ -11836,7 +11840,7 @@ function FeatureCardGrid({
|
|
|
11836
11840
|
)
|
|
11837
11841
|
] }),
|
|
11838
11842
|
!item.icon && item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-start justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11839
|
-
|
|
11843
|
+
_chunkEMF64FWAcjs.StatusBadge,
|
|
11840
11844
|
{
|
|
11841
11845
|
text: item.badge.text,
|
|
11842
11846
|
variant: item.badge.variant || "card",
|
|
@@ -11884,7 +11888,7 @@ function FeatureList({ items, className = "", iconBoxSize = 72 }) {
|
|
|
11884
11888
|
|
|
11885
11889
|
function SourceTooltip({ intro, sources, note, iconClassName, triggerAnchorProps }) {
|
|
11886
11890
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11887
|
-
|
|
11891
|
+
_chunkG45RGWHFcjs.FloatingTooltip,
|
|
11888
11892
|
{
|
|
11889
11893
|
as: "span",
|
|
11890
11894
|
side: "top",
|
|
@@ -12068,7 +12072,7 @@ function DropdownButton({
|
|
|
12068
12072
|
)
|
|
12069
12073
|
);
|
|
12070
12074
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12071
|
-
|
|
12075
|
+
_chunkG45RGWHFcjs.ActionsMenuDropdown,
|
|
12072
12076
|
{
|
|
12073
12077
|
groups: _nullishCoalesce(groups, () => ( [{ items: _nullishCoalesce(items, () => ( [])) }])),
|
|
12074
12078
|
open,
|
|
@@ -12306,7 +12310,7 @@ function ServiceCardRowItem({ row }) {
|
|
|
12306
12310
|
),
|
|
12307
12311
|
children: [
|
|
12308
12312
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12309
|
-
|
|
12313
|
+
_chunkG45RGWHFcjs.FloatingTooltip,
|
|
12310
12314
|
{
|
|
12311
12315
|
content: row.value,
|
|
12312
12316
|
side: "top",
|
|
@@ -12432,9 +12436,9 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
|
|
|
12432
12436
|
return next;
|
|
12433
12437
|
});
|
|
12434
12438
|
};
|
|
12435
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12439
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { open, onOpenChange: setOpen, children: [
|
|
12436
12440
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12437
|
-
|
|
12441
|
+
_chunkG45RGWHFcjs.TooltipTrigger,
|
|
12438
12442
|
{
|
|
12439
12443
|
asChild: true,
|
|
12440
12444
|
onPointerDown: (e) => {
|
|
@@ -12452,7 +12456,7 @@ function TouchFriendlyTooltip({ content, side = "left", children }) {
|
|
|
12452
12456
|
children
|
|
12453
12457
|
}
|
|
12454
12458
|
),
|
|
12455
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12459
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { side, className: "max-w-xs", children: content })
|
|
12456
12460
|
] }) });
|
|
12457
12461
|
}
|
|
12458
12462
|
|
|
@@ -13467,9 +13471,9 @@ function TruncatedHeaderCell({ value, width }) {
|
|
|
13467
13471
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
13468
13472
|
}
|
|
13469
13473
|
}, []);
|
|
13470
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13471
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13472
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13474
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
13475
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 items-center", style: { width, height: 48 }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: textRef, className: "truncate text-ods-text-secondary text-h5", children: value }) }) }),
|
|
13476
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { side: "bottom", className: "max-w-xs break-words", children: value })
|
|
13473
13477
|
] }) });
|
|
13474
13478
|
}
|
|
13475
13479
|
|
|
@@ -13522,9 +13526,9 @@ function TruncatedCell({ value, className }) {
|
|
|
13522
13526
|
setIsTruncated(el.scrollWidth > el.clientWidth);
|
|
13523
13527
|
}
|
|
13524
13528
|
}, []);
|
|
13525
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13526
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13527
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13529
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { delayDuration: 300, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { open: isTruncated ? void 0 : false, children: [
|
|
13530
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipTrigger, { asChild: true, onMouseEnter: checkTruncation, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: textRef, className: _chunkPRPZBXWZcjs.cn.call(void 0, "block truncate", className), children: value }) }),
|
|
13531
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { side: "top", className: "max-w-xs break-words", children: value })
|
|
13528
13532
|
] }) });
|
|
13529
13533
|
}
|
|
13530
13534
|
|
|
@@ -14808,7 +14812,7 @@ function SearchInput({
|
|
|
14808
14812
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex-shrink-0 text-ods-text-secondary transition-colors duration-200 group-has-[:focus]:text-ods-accent [&_svg]:size-4 md:[&_svg]:size-6", children: startAdornment !== void 0 ? startAdornment : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, {}) }),
|
|
14809
14813
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
|
|
14810
14814
|
visibleChips.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14811
|
-
|
|
14815
|
+
_chunkG45RGWHFcjs.Tag,
|
|
14812
14816
|
{
|
|
14813
14817
|
variant: chipVariantToTagVariant(chip.variant),
|
|
14814
14818
|
label: chip.label,
|
|
@@ -14922,7 +14926,7 @@ function SearchInput({
|
|
|
14922
14926
|
}
|
|
14923
14927
|
),
|
|
14924
14928
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: measureRef, "aria-hidden": "true", className: "pointer-events-none fixed -left-[9999px] top-0 flex gap-2", children: filterChips.map((chip) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14925
|
-
|
|
14929
|
+
_chunkG45RGWHFcjs.Tag,
|
|
14926
14930
|
{
|
|
14927
14931
|
variant: chipVariantToTagVariant(chip.variant),
|
|
14928
14932
|
label: chip.label,
|
|
@@ -15135,7 +15139,7 @@ function TagSearchInput({
|
|
|
15135
15139
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex shrink-0 items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "size-4 text-ods-text-secondary md:size-6" }) }),
|
|
15136
15140
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: middleRef, className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2", children: [
|
|
15137
15141
|
visibleTags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15138
|
-
|
|
15142
|
+
_chunkG45RGWHFcjs.Tag,
|
|
15139
15143
|
{
|
|
15140
15144
|
variant: "outline",
|
|
15141
15145
|
label: renderTag ? renderTag(tag) : tag.label,
|
|
@@ -15223,7 +15227,7 @@ function TagSearchInput({
|
|
|
15223
15227
|
"aria-hidden": "true",
|
|
15224
15228
|
className: "pointer-events-none invisible absolute left-0 top-0 -z-10 flex gap-2",
|
|
15225
15229
|
children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15226
|
-
|
|
15230
|
+
_chunkG45RGWHFcjs.Tag,
|
|
15227
15231
|
{
|
|
15228
15232
|
variant: "outline",
|
|
15229
15233
|
label: renderTag ? renderTag(tag) : tag.label,
|
|
@@ -16112,20 +16116,20 @@ function ColorPresetSelect({
|
|
|
16112
16116
|
...presets.map((p) => ({
|
|
16113
16117
|
id: p.key,
|
|
16114
16118
|
label: p.label,
|
|
16115
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16119
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: p.color }),
|
|
16116
16120
|
onClick: () => onChange({ color: p.color, preset: p.key })
|
|
16117
16121
|
})),
|
|
16118
16122
|
{
|
|
16119
16123
|
id: CUSTOM_PRESET_KEY,
|
|
16120
16124
|
label: "Custom",
|
|
16121
|
-
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16125
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: isCustom ? value : DEFAULT_CUSTOM_STATUS_COLOR }),
|
|
16122
16126
|
onClick: () => onChange({ color: value, preset: void 0 })
|
|
16123
16127
|
}
|
|
16124
16128
|
]
|
|
16125
16129
|
}
|
|
16126
16130
|
];
|
|
16127
16131
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16128
|
-
|
|
16132
|
+
_chunkG45RGWHFcjs.ActionsMenuDropdown,
|
|
16129
16133
|
{
|
|
16130
16134
|
groups,
|
|
16131
16135
|
align: "start",
|
|
@@ -16135,7 +16139,7 @@ function ColorPresetSelect({
|
|
|
16135
16139
|
{
|
|
16136
16140
|
disabled,
|
|
16137
16141
|
"aria-label": `Color: ${displayLabel}`,
|
|
16138
|
-
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16142
|
+
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: displayColor }),
|
|
16139
16143
|
selectedLabel: displayLabel,
|
|
16140
16144
|
endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
|
|
16141
16145
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
|
|
@@ -16156,7 +16160,7 @@ function HexInputs({ value, onChange }) {
|
|
|
16156
16160
|
}
|
|
16157
16161
|
const commit = () => {
|
|
16158
16162
|
const candidate = (draft.startsWith("#") ? draft : `#${draft}`).toLowerCase();
|
|
16159
|
-
if (
|
|
16163
|
+
if (_chunkG45RGWHFcjs.HEX_PATTERN.test(candidate)) onChange(candidate);
|
|
16160
16164
|
else setDraft(value);
|
|
16161
16165
|
};
|
|
16162
16166
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -16220,12 +16224,12 @@ function ChannelInput({
|
|
|
16220
16224
|
);
|
|
16221
16225
|
}
|
|
16222
16226
|
function RgbInputs({ value, onChange }) {
|
|
16223
|
-
const rgb = _nullishCoalesce(
|
|
16227
|
+
const rgb = _nullishCoalesce(_chunkG45RGWHFcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
|
|
16224
16228
|
const update = (next) => {
|
|
16225
16229
|
const r = _nullishCoalesce(next.r, () => ( rgb.r));
|
|
16226
16230
|
const g = _nullishCoalesce(next.g, () => ( rgb.g));
|
|
16227
16231
|
const b = _nullishCoalesce(next.b, () => ( rgb.b));
|
|
16228
|
-
onChange(
|
|
16232
|
+
onChange(_chunkG45RGWHFcjs.rgbToHex.call(void 0, r, g, b));
|
|
16229
16233
|
};
|
|
16230
16234
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16231
16235
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: rgb.r, min: 0, max: 255, ariaLabel: "Red", onCommit: (r) => update({ r }) }),
|
|
@@ -16234,14 +16238,14 @@ function RgbInputs({ value, onChange }) {
|
|
|
16234
16238
|
] });
|
|
16235
16239
|
}
|
|
16236
16240
|
function HslInputs({ value, onChange }) {
|
|
16237
|
-
const rgb = _nullishCoalesce(
|
|
16238
|
-
const hsl =
|
|
16241
|
+
const rgb = _nullishCoalesce(_chunkG45RGWHFcjs.hexToRgb.call(void 0, value), () => ( { r: 0, g: 0, b: 0 }));
|
|
16242
|
+
const hsl = _chunkG45RGWHFcjs.rgbToHsl.call(void 0, rgb.r, rgb.g, rgb.b);
|
|
16239
16243
|
const update = (next) => {
|
|
16240
16244
|
const h = _nullishCoalesce(next.h, () => ( hsl.h));
|
|
16241
16245
|
const s = _nullishCoalesce(next.s, () => ( hsl.s));
|
|
16242
16246
|
const l = _nullishCoalesce(next.l, () => ( hsl.l));
|
|
16243
|
-
const out =
|
|
16244
|
-
onChange(
|
|
16247
|
+
const out = _chunkG45RGWHFcjs.hslToRgb.call(void 0, h, s, l);
|
|
16248
|
+
onChange(_chunkG45RGWHFcjs.rgbToHex.call(void 0, out.r, out.g, out.b));
|
|
16245
16249
|
};
|
|
16246
16250
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16247
16251
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChannelInput, { value: hsl.h, min: 0, max: 360, ariaLabel: "Hue", onCommit: (h) => update({ h }) }),
|
|
@@ -16267,7 +16271,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16267
16271
|
{
|
|
16268
16272
|
disabled,
|
|
16269
16273
|
"aria-label": "Pick custom color",
|
|
16270
|
-
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16274
|
+
startIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: value }),
|
|
16271
16275
|
selectedLabel: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "uppercase", children: value }),
|
|
16272
16276
|
endIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TriggerChevron, {}),
|
|
16273
16277
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "group", className)
|
|
@@ -16283,7 +16287,7 @@ function ColorPickerInput({ value, onChange, disabled, className }) {
|
|
|
16283
16287
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactcolorful.HexColorPicker, { color: value, onChange }),
|
|
16284
16288
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
16285
16289
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16286
|
-
|
|
16290
|
+
_chunkG45RGWHFcjs.ActionsMenuDropdown,
|
|
16287
16291
|
{
|
|
16288
16292
|
groups: formatGroups,
|
|
16289
16293
|
align: "start",
|
|
@@ -16340,7 +16344,7 @@ function TicketStatusConfigRow({
|
|
|
16340
16344
|
const previewVariant = _nullishCoalesce(systemTagVariant, () => ( (isSystem ? void 0 : "primary")));
|
|
16341
16345
|
const fieldRowOffset = "mt-[calc(var(--font-line-space-h4-body)+0.25rem)]";
|
|
16342
16346
|
const chip = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16343
|
-
|
|
16347
|
+
_chunkG45RGWHFcjs.TicketStatusTag,
|
|
16344
16348
|
{
|
|
16345
16349
|
status: statusKey,
|
|
16346
16350
|
label: name || " ",
|
|
@@ -16492,7 +16496,7 @@ function formatTestRunDuration(ms) {
|
|
|
16492
16496
|
var RESULT_COLUMN_MIN_WIDTH = 176;
|
|
16493
16497
|
var SKELETON_COLUMNS = 6;
|
|
16494
16498
|
function TestResultsSkeleton() {
|
|
16495
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16499
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
|
|
16496
16500
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-mf)] px-[var(--spacing-system-mf)]", children: Array.from({ length: SKELETON_COLUMNS }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-[160px] shrink-0 items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 animate-pulse rounded-sm bg-ods-bg-surface" }) }, `skeleton-header-${i}`)) }),
|
|
16497
16501
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "animate-pulse overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[66px] items-center gap-[var(--spacing-system-mf)] px-[var(--spacing-system-mf)] md:h-[78px]", children: Array.from({ length: SKELETON_COLUMNS }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-[160px] shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-3/4 rounded-sm bg-ods-bg-surface" }) }, `skeleton-cell-${i}`)) }) })
|
|
16498
16502
|
] }) });
|
|
@@ -16527,7 +16531,7 @@ function TestResultsTable({ rows, loading }) {
|
|
|
16527
16531
|
if (loading) {
|
|
16528
16532
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TestResultsSkeleton, {});
|
|
16529
16533
|
}
|
|
16530
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16534
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.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: [
|
|
16531
16535
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Header, { className: "flex flex-col" }),
|
|
16532
16536
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Body, { loading: false })
|
|
16533
16537
|
] }) }) });
|
|
@@ -16587,7 +16591,7 @@ var TEST_RUN_STATUS_TAGS = {
|
|
|
16587
16591
|
function TestRunStatusStat({ status, className }) {
|
|
16588
16592
|
const tag = status === "idle" ? null : TEST_RUN_STATUS_TAGS[status];
|
|
16589
16593
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex min-w-0 flex-col items-start justify-center gap-[var(--spacing-system-xxs)]", className), children: [
|
|
16590
|
-
tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16594
|
+
tag ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.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: "-" }),
|
|
16591
16595
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: "Status" })
|
|
16592
16596
|
] });
|
|
16593
16597
|
}
|
|
@@ -16630,7 +16634,7 @@ function useTestRunState(campaign) {
|
|
|
16630
16634
|
const firstError = isFinished && campaign.errors.length > 0 ? campaign.errors[0].error : null;
|
|
16631
16635
|
const status = isActive ? "running" : hasRun && isFinished ? firstError ? "error" : "success" : "idle";
|
|
16632
16636
|
const showTiming = hasRun && campaign.startedAt !== null && (campaign.isRunning || isFinished);
|
|
16633
|
-
const startedLabel = showTiming && campaign.startedAt ?
|
|
16637
|
+
const startedLabel = showTiming && campaign.startedAt ? _chunkG45RGWHFcjs.formatTime.call(void 0, campaign.startedAt) : "00:00 PM";
|
|
16634
16638
|
const durationLabel = showTiming ? formatTestRunDuration(durationMs) : "00:00:00";
|
|
16635
16639
|
const displayRows = _react.useMemo.call(void 0,
|
|
16636
16640
|
() => campaign.results.map(
|
|
@@ -16669,7 +16673,7 @@ function TicketAttachmentsList({ attachments, className, size = "default" }) {
|
|
|
16669
16673
|
),
|
|
16670
16674
|
children: [
|
|
16671
16675
|
attachment.thumbnailSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16672
|
-
|
|
16676
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
16673
16677
|
{
|
|
16674
16678
|
src: attachment.thumbnailSrc,
|
|
16675
16679
|
alt: attachment.fileName,
|
|
@@ -16762,7 +16766,7 @@ function TicketNoteCard({ note, onEdit, onDelete, className }) {
|
|
|
16762
16766
|
};
|
|
16763
16767
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex items-start gap-4 rounded-[6px] p-3", "border border-ods-border bg-ods-card", className), children: [
|
|
16764
16768
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16765
|
-
|
|
16769
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
16766
16770
|
{
|
|
16767
16771
|
src: note.authorAvatar,
|
|
16768
16772
|
alt: note.authorName,
|
|
@@ -16938,7 +16942,7 @@ function TicketInfoSection({
|
|
|
16938
16942
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-2 items-center gap-4 border-b border-ods-border bg-ods-card px-4 py-3 lg:grid-cols-[1fr_1fr_1fr_auto]", children: [
|
|
16939
16943
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
16940
16944
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16941
|
-
|
|
16945
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
16942
16946
|
{
|
|
16943
16947
|
src: _optionalChain([organization, 'optionalAccess', _387 => _387.imageSrc]),
|
|
16944
16948
|
alt: _optionalChain([organization, 'optionalAccess', _388 => _388.name]),
|
|
@@ -16968,7 +16972,7 @@ function TicketInfoSection({
|
|
|
16968
16972
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: _optionalChain([device, 'optionalAccess', _391 => _391.name]) || "Unassigned", label: "Device", icon: _optionalChain([device, 'optionalAccess', _392 => _392.icon]), onClick: _optionalChain([device, 'optionalAccess', _393 => _393.onClick]) }),
|
|
16969
16973
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-4", children: [
|
|
16970
16974
|
(status || statusLabel) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16971
|
-
|
|
16975
|
+
_chunkG45RGWHFcjs.TicketStatusTag,
|
|
16972
16976
|
{
|
|
16973
16977
|
status: _nullishCoalesce(status, () => ( "")),
|
|
16974
16978
|
label: statusLabel,
|
|
@@ -17007,9 +17011,9 @@ function TicketInfoSection({
|
|
|
17007
17011
|
expanded && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
17008
17012
|
createdAt && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 items-center gap-4 border-b border-ods-border bg-ods-bg px-4 py-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell, { value: createdAt, label: "Created" }) }),
|
|
17009
17013
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
|
|
17010
|
-
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17014
|
+
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.SimpleMarkdownRenderer, { content: description }),
|
|
17011
17015
|
attachments && attachments.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketAttachmentsList, { attachments }) }),
|
|
17012
|
-
tags && tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Tags", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-wrap gap-2", children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17016
|
+
tags && tags.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Tags", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex min-w-0 flex-wrap gap-2", children: tags.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
|
|
17013
17017
|
(notes || onAddNote) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Notes", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17014
17018
|
TicketNotesSection,
|
|
17015
17019
|
{
|
|
@@ -17032,7 +17036,7 @@ function renderTicketStatusOption(option, isSelected) {
|
|
|
17032
17036
|
const { label, color } = option;
|
|
17033
17037
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-[var(--spacing-system-xs)]", children: [
|
|
17034
17038
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
|
|
17035
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17039
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color }),
|
|
17036
17040
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TruncateText, { className: "text-inherit", children: label }) })
|
|
17037
17041
|
] }),
|
|
17038
17042
|
isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
|
|
@@ -17042,7 +17046,7 @@ function renderTicketAssigneeOption(option, isSelected) {
|
|
|
17042
17046
|
const { label, imageUrl } = option;
|
|
17043
17047
|
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: [
|
|
17044
17048
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
|
|
17045
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17049
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.SquareAvatar, { src: imageUrl, alt: label, fallback: label, size: "sm", variant: "round" }),
|
|
17046
17050
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TruncateText, { className: "text-inherit", children: label }) })
|
|
17047
17051
|
] }),
|
|
17048
17052
|
isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
|
|
@@ -17077,9 +17081,9 @@ function TakeOverTicketModal({
|
|
|
17077
17081
|
if (!selectedStatusId || !assigneeId || isPending) return;
|
|
17078
17082
|
onConfirm({ statusId: selectedStatusId, assigneeId });
|
|
17079
17083
|
};
|
|
17080
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17084
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17081
17085
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17082
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17086
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: "Take Over Ticket" }) }),
|
|
17083
17087
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
17084
17088
|
"The ticket ",
|
|
17085
17089
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
|
|
@@ -17094,7 +17098,7 @@ function TakeOverTicketModal({
|
|
|
17094
17098
|
value: selectedStatusId,
|
|
17095
17099
|
onChange: setStatusId,
|
|
17096
17100
|
placeholder: "Select Status",
|
|
17097
|
-
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17101
|
+
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
|
|
17098
17102
|
renderOption: renderTicketStatusOption
|
|
17099
17103
|
}
|
|
17100
17104
|
) }),
|
|
@@ -17108,7 +17112,7 @@ function TakeOverTicketModal({
|
|
|
17108
17112
|
placeholder: "Select Technician",
|
|
17109
17113
|
loading: assigneesLoading,
|
|
17110
17114
|
startAdornment: selectedAssignee ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17111
|
-
|
|
17115
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
17112
17116
|
{
|
|
17113
17117
|
src: selectedAssignee.imageUrl,
|
|
17114
17118
|
alt: selectedAssignee.label,
|
|
@@ -17121,7 +17125,7 @@ function TakeOverTicketModal({
|
|
|
17121
17125
|
}
|
|
17122
17126
|
) })
|
|
17123
17127
|
] }),
|
|
17124
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17128
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: [
|
|
17125
17129
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
17126
17130
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
17127
17131
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -17180,9 +17184,9 @@ function ReopenTicketModal({
|
|
|
17180
17184
|
reason: trimmedReason ? trimmedReason.slice(0, REASON_MAX_LENGTH) : null
|
|
17181
17185
|
});
|
|
17182
17186
|
};
|
|
17183
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17187
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17184
17188
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17185
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17189
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: "Reopen Ticket" }) }),
|
|
17186
17190
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: [
|
|
17187
17191
|
"The ticket ",
|
|
17188
17192
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ticketRef }),
|
|
@@ -17197,7 +17201,7 @@ function ReopenTicketModal({
|
|
|
17197
17201
|
value: selectedStatusId,
|
|
17198
17202
|
onChange: setStatusId,
|
|
17199
17203
|
placeholder: "Select Status",
|
|
17200
|
-
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17204
|
+
startAdornment: selectedStatus ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ColorSwatch, { color: selectedStatus.color }) : void 0,
|
|
17201
17205
|
renderOption: renderTicketStatusOption
|
|
17202
17206
|
}
|
|
17203
17207
|
) }),
|
|
@@ -17211,7 +17215,7 @@ function ReopenTicketModal({
|
|
|
17211
17215
|
placeholder: "Select Technician",
|
|
17212
17216
|
loading: assigneesLoading,
|
|
17213
17217
|
startAdornment: selectedAssignee ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17214
|
-
|
|
17218
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
17215
17219
|
{
|
|
17216
17220
|
src: selectedAssignee.imageUrl,
|
|
17217
17221
|
alt: selectedAssignee.label,
|
|
@@ -17235,7 +17239,7 @@ function ReopenTicketModal({
|
|
|
17235
17239
|
disabled: isPending
|
|
17236
17240
|
}
|
|
17237
17241
|
) }),
|
|
17238
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17242
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: [
|
|
17239
17243
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1 md:hidden", children: "Cancel" }),
|
|
17240
17244
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
17241
17245
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -17283,9 +17287,9 @@ function ReopenTicketRequestModal({
|
|
|
17283
17287
|
...showHandoffOption ? { handoffToTechnician: handoff } : {}
|
|
17284
17288
|
});
|
|
17285
17289
|
};
|
|
17286
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17290
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Modal, { isOpen, onClose: isPending ? () => {
|
|
17287
17291
|
} : onClose, className: "text-left md:max-w-[600px]", children: [
|
|
17288
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17292
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalHeader, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ModalTitle, { children: "Reopen Ticket" }) }),
|
|
17289
17293
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: "This ticket will be reopened and the AI assistant will continue helping you." }),
|
|
17290
17294
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17291
17295
|
Textarea,
|
|
@@ -17309,7 +17313,7 @@ function ReopenTicketRequestModal({
|
|
|
17309
17313
|
disabled: isPending
|
|
17310
17314
|
}
|
|
17311
17315
|
),
|
|
17312
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17316
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.ModalFooter, { children: [
|
|
17313
17317
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "outline", onClick: onClose, disabled: isPending, className: "flex-1", children: "Cancel" }),
|
|
17314
17318
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYHNIPSG6cjs.Button, { type: "button", variant: "accent", onClick: handleConfirm, loading: isPending, className: "flex-1", children: "Reopen Ticket" })
|
|
17315
17319
|
] })
|
|
@@ -17348,6 +17352,19 @@ function FilterPillRow({
|
|
|
17348
17352
|
] });
|
|
17349
17353
|
}
|
|
17350
17354
|
|
|
17355
|
+
// src/components/ui/lazy-mount.tsx
|
|
17356
|
+
|
|
17357
|
+
function LazyMount({
|
|
17358
|
+
children,
|
|
17359
|
+
placeholder = null,
|
|
17360
|
+
className,
|
|
17361
|
+
style,
|
|
17362
|
+
rootMargin = _chunkZI27ALYXcjs.NEAR_VIEWPORT_ROOT_MARGIN
|
|
17363
|
+
}) {
|
|
17364
|
+
const { ref, isNear } = _chunkZI27ALYXcjs.useNearViewport.call(void 0, rootMargin);
|
|
17365
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className, style, children: isNear ? children : placeholder });
|
|
17366
|
+
}
|
|
17367
|
+
|
|
17351
17368
|
// src/components/features/array-entry-manager.tsx
|
|
17352
17369
|
|
|
17353
17370
|
function ArrayEntryManager({
|
|
@@ -17500,6 +17517,98 @@ function ArrayEntryManager({
|
|
|
17500
17517
|
] });
|
|
17501
17518
|
}
|
|
17502
17519
|
|
|
17520
|
+
// src/components/features/auth/account-details-fields.tsx
|
|
17521
|
+
|
|
17522
|
+
function AccountDetailsFields({
|
|
17523
|
+
firstName,
|
|
17524
|
+
lastName,
|
|
17525
|
+
password,
|
|
17526
|
+
confirmPassword,
|
|
17527
|
+
onFirstNameChange,
|
|
17528
|
+
onLastNameChange,
|
|
17529
|
+
onPasswordChange,
|
|
17530
|
+
onConfirmPasswordChange,
|
|
17531
|
+
errors,
|
|
17532
|
+
disabled = false,
|
|
17533
|
+
onKeyDown,
|
|
17534
|
+
layout = "stacked"
|
|
17535
|
+
}) {
|
|
17536
|
+
const firstNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _398 => _398.firstName]), firstName);
|
|
17537
|
+
const lastNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _399 => _399.lastName]), lastName);
|
|
17538
|
+
const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _400 => _400.password]), password);
|
|
17539
|
+
const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _401 => _401.confirmPassword]), confirmPassword);
|
|
17540
|
+
const names = [
|
|
17541
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17542
|
+
_chunkIKDC3R7Vcjs.Input,
|
|
17543
|
+
{
|
|
17544
|
+
label: "First Name",
|
|
17545
|
+
placeholder: "Enter First Name",
|
|
17546
|
+
value: firstName,
|
|
17547
|
+
error: firstNameErr.error,
|
|
17548
|
+
disabled,
|
|
17549
|
+
onBlur: firstNameErr.onBlur,
|
|
17550
|
+
onChange: (event) => onFirstNameChange(event.target.value),
|
|
17551
|
+
onKeyDown
|
|
17552
|
+
},
|
|
17553
|
+
"firstName"
|
|
17554
|
+
),
|
|
17555
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17556
|
+
_chunkIKDC3R7Vcjs.Input,
|
|
17557
|
+
{
|
|
17558
|
+
label: "Last Name",
|
|
17559
|
+
placeholder: "Enter Last Name",
|
|
17560
|
+
value: lastName,
|
|
17561
|
+
error: lastNameErr.error,
|
|
17562
|
+
disabled,
|
|
17563
|
+
onBlur: lastNameErr.onBlur,
|
|
17564
|
+
onChange: (event) => onLastNameChange(event.target.value),
|
|
17565
|
+
onKeyDown
|
|
17566
|
+
},
|
|
17567
|
+
"lastName"
|
|
17568
|
+
)
|
|
17569
|
+
];
|
|
17570
|
+
const passwords = [
|
|
17571
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17572
|
+
PasswordInput,
|
|
17573
|
+
{
|
|
17574
|
+
label: "Password",
|
|
17575
|
+
placeholder: "Enter Password",
|
|
17576
|
+
value: password,
|
|
17577
|
+
error: passwordErr.error,
|
|
17578
|
+
disabled,
|
|
17579
|
+
onBlur: passwordErr.onBlur,
|
|
17580
|
+
onChange: (event) => onPasswordChange(event.target.value),
|
|
17581
|
+
onKeyDown
|
|
17582
|
+
},
|
|
17583
|
+
"password"
|
|
17584
|
+
),
|
|
17585
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17586
|
+
PasswordInput,
|
|
17587
|
+
{
|
|
17588
|
+
label: "Confirm Password",
|
|
17589
|
+
placeholder: "Confirm Password",
|
|
17590
|
+
value: confirmPassword,
|
|
17591
|
+
error: confirmErr.error,
|
|
17592
|
+
disabled,
|
|
17593
|
+
onBlur: confirmErr.onBlur,
|
|
17594
|
+
onChange: (event) => onConfirmPasswordChange(event.target.value),
|
|
17595
|
+
onKeyDown
|
|
17596
|
+
},
|
|
17597
|
+
"confirmPassword"
|
|
17598
|
+
)
|
|
17599
|
+
];
|
|
17600
|
+
if (layout === "stacked") {
|
|
17601
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
17602
|
+
names,
|
|
17603
|
+
passwords
|
|
17604
|
+
] });
|
|
17605
|
+
}
|
|
17606
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
17607
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-[var(--spacing-system-l)]", children: names }),
|
|
17608
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-[var(--spacing-system-l)]", children: passwords })
|
|
17609
|
+
] });
|
|
17610
|
+
}
|
|
17611
|
+
|
|
17503
17612
|
// src/components/features/auth/auth-benefits-panel.tsx
|
|
17504
17613
|
|
|
17505
17614
|
var DEFAULT_TITLE = "The All-in-One Open Platform for MSPs";
|
|
@@ -17620,11 +17729,21 @@ function BackToLoginLink({ onClick, label = "Back to Login", className }) {
|
|
|
17620
17729
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick, className: _chunkPRPZBXWZcjs.cn.call(void 0, "text-ods-text-secondary underline text-h4", className), children: label });
|
|
17621
17730
|
}
|
|
17622
17731
|
|
|
17732
|
+
// src/components/features/auth/labeled-divider.tsx
|
|
17733
|
+
|
|
17734
|
+
function LabeledDivider({ label }) {
|
|
17735
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)]", children: [
|
|
17736
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" }),
|
|
17737
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: label }),
|
|
17738
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" })
|
|
17739
|
+
] });
|
|
17740
|
+
}
|
|
17741
|
+
|
|
17623
17742
|
// src/components/features/auth/sso-providers.tsx
|
|
17624
17743
|
|
|
17625
17744
|
var PROVIDER_META = {
|
|
17626
17745
|
openframe: {
|
|
17627
|
-
name: "OpenFrame
|
|
17746
|
+
name: "OpenFrame",
|
|
17628
17747
|
Icon: ({ className }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17629
17748
|
_chunk63QUMV72cjs.OpenFrameLogo,
|
|
17630
17749
|
{
|
|
@@ -17657,8 +17776,8 @@ function SsoProviderButtons({
|
|
|
17657
17776
|
disabled: disabled || (enabledProviders ? !enabledProviders.includes(provider) : false),
|
|
17658
17777
|
className: "disabled:bg-ods-bg",
|
|
17659
17778
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon2, { className: "h-5 w-5" }),
|
|
17660
|
-
onClick: () => _optionalChain([onSsoClick, 'optionalCall',
|
|
17661
|
-
children:
|
|
17779
|
+
onClick: () => _optionalChain([onSsoClick, 'optionalCall', _402 => _402(provider)]),
|
|
17780
|
+
children: `${actionLabel} ${meta.name}`
|
|
17662
17781
|
},
|
|
17663
17782
|
provider
|
|
17664
17783
|
);
|
|
@@ -17694,10 +17813,6 @@ function CompleteAccountForm({
|
|
|
17694
17813
|
children
|
|
17695
17814
|
}) {
|
|
17696
17815
|
const fieldsDisabled = disabled || loading;
|
|
17697
|
-
const firstNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _399 => _399.firstName]), firstName);
|
|
17698
|
-
const lastNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _400 => _400.lastName]), lastName);
|
|
17699
|
-
const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _401 => _401.password]), password);
|
|
17700
|
-
const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _402 => _402.confirmPassword]), confirmPassword);
|
|
17701
17816
|
const handleKeyDown = (event) => {
|
|
17702
17817
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
17703
17818
|
onSubmit();
|
|
@@ -17725,61 +17840,21 @@ function CompleteAccountForm({
|
|
|
17725
17840
|
disabled: fieldsDisabled
|
|
17726
17841
|
}
|
|
17727
17842
|
),
|
|
17728
|
-
/* @__PURE__ */ _jsxruntime.
|
|
17729
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" }),
|
|
17730
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: dividerLabel }),
|
|
17731
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" })
|
|
17732
|
-
] })
|
|
17843
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel })
|
|
17733
17844
|
] }),
|
|
17734
17845
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17735
|
-
|
|
17736
|
-
{
|
|
17737
|
-
label: "First Name",
|
|
17738
|
-
placeholder: "Enter First Name",
|
|
17739
|
-
value: firstName,
|
|
17740
|
-
error: firstNameErr.error,
|
|
17741
|
-
disabled: fieldsDisabled,
|
|
17742
|
-
onBlur: firstNameErr.onBlur,
|
|
17743
|
-
onChange: (event) => onFirstNameChange(event.target.value),
|
|
17744
|
-
onKeyDown: handleKeyDown
|
|
17745
|
-
}
|
|
17746
|
-
),
|
|
17747
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17748
|
-
_chunkIKDC3R7Vcjs.Input,
|
|
17749
|
-
{
|
|
17750
|
-
label: "Last Name",
|
|
17751
|
-
placeholder: "Enter Last Name",
|
|
17752
|
-
value: lastName,
|
|
17753
|
-
error: lastNameErr.error,
|
|
17754
|
-
disabled: fieldsDisabled,
|
|
17755
|
-
onBlur: lastNameErr.onBlur,
|
|
17756
|
-
onChange: (event) => onLastNameChange(event.target.value),
|
|
17757
|
-
onKeyDown: handleKeyDown
|
|
17758
|
-
}
|
|
17759
|
-
),
|
|
17760
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17761
|
-
PasswordInput,
|
|
17762
|
-
{
|
|
17763
|
-
label: "Password",
|
|
17764
|
-
placeholder: "Enter Password",
|
|
17765
|
-
value: password,
|
|
17766
|
-
error: passwordErr.error,
|
|
17767
|
-
disabled: fieldsDisabled,
|
|
17768
|
-
onBlur: passwordErr.onBlur,
|
|
17769
|
-
onChange: (event) => onPasswordChange(event.target.value),
|
|
17770
|
-
onKeyDown: handleKeyDown
|
|
17771
|
-
}
|
|
17772
|
-
),
|
|
17773
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17774
|
-
PasswordInput,
|
|
17846
|
+
AccountDetailsFields,
|
|
17775
17847
|
{
|
|
17776
|
-
|
|
17777
|
-
|
|
17778
|
-
|
|
17779
|
-
|
|
17848
|
+
firstName,
|
|
17849
|
+
lastName,
|
|
17850
|
+
password,
|
|
17851
|
+
confirmPassword,
|
|
17852
|
+
onFirstNameChange,
|
|
17853
|
+
onLastNameChange,
|
|
17854
|
+
onPasswordChange,
|
|
17855
|
+
onConfirmPasswordChange,
|
|
17856
|
+
errors,
|
|
17780
17857
|
disabled: fieldsDisabled,
|
|
17781
|
-
onBlur: confirmErr.onBlur,
|
|
17782
|
-
onChange: (event) => onConfirmPasswordChange(event.target.value),
|
|
17783
17858
|
onKeyDown: handleKeyDown
|
|
17784
17859
|
}
|
|
17785
17860
|
),
|
|
@@ -17863,11 +17938,25 @@ function CreateOrganizationForm({
|
|
|
17863
17938
|
onDomainChange,
|
|
17864
17939
|
onAgreedToTermsChange,
|
|
17865
17940
|
onSubmit,
|
|
17941
|
+
firstName = "",
|
|
17942
|
+
lastName = "",
|
|
17943
|
+
password = "",
|
|
17944
|
+
confirmPassword = "",
|
|
17945
|
+
onFirstNameChange,
|
|
17946
|
+
onLastNameChange,
|
|
17947
|
+
onPasswordChange,
|
|
17948
|
+
onConfirmPasswordChange,
|
|
17949
|
+
emailReadOnly = false,
|
|
17950
|
+
emailReadOnlyLabel = "Email",
|
|
17951
|
+
title = "Create Organization",
|
|
17952
|
+
subtitle = "Start your journey with OpenFrame.",
|
|
17866
17953
|
domainSuffix,
|
|
17867
17954
|
domainPlaceholder = "company-name",
|
|
17868
17955
|
termsUrl = "#",
|
|
17869
17956
|
privacyPolicyUrl = "#",
|
|
17870
17957
|
submitLabel = "Continue",
|
|
17958
|
+
onBack,
|
|
17959
|
+
backLabel = "Back",
|
|
17871
17960
|
submitDisabled = false,
|
|
17872
17961
|
loading = false,
|
|
17873
17962
|
disabled = false,
|
|
@@ -17884,11 +17973,11 @@ function CreateOrganizationForm({
|
|
|
17884
17973
|
}) {
|
|
17885
17974
|
const hasSso = !!ssoProviders && ssoProviders.length > 0;
|
|
17886
17975
|
const fieldsDisabled = disabled || loading;
|
|
17887
|
-
const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _403 => _403.email]), email);
|
|
17976
|
+
const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _403 => _403.email]), _nullishCoalesce(email, () => ( "")));
|
|
17888
17977
|
const orgNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _404 => _404.organizationName]), organizationName);
|
|
17889
17978
|
const domainErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _405 => _405.domain]), domain);
|
|
17890
17979
|
const handleKeyDown = (event) => {
|
|
17891
|
-
if (event.key === "Enter" && !fieldsDisabled) {
|
|
17980
|
+
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
17892
17981
|
onSubmit();
|
|
17893
17982
|
}
|
|
17894
17983
|
};
|
|
@@ -17901,10 +17990,10 @@ function CreateOrganizationForm({
|
|
|
17901
17990
|
),
|
|
17902
17991
|
children: [
|
|
17903
17992
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
|
|
17904
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children:
|
|
17905
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children:
|
|
17993
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: title }),
|
|
17994
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
|
|
17906
17995
|
] }),
|
|
17907
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17996
|
+
email === void 0 ? null : emailReadOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKDC3R7Vcjs.Input, { type: "email", label: emailReadOnlyLabel, value: email, readOnly: true, disabled: true }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17908
17997
|
_chunkIKDC3R7Vcjs.Input,
|
|
17909
17998
|
{
|
|
17910
17999
|
type: "email",
|
|
@@ -17915,7 +18004,7 @@ function CreateOrganizationForm({
|
|
|
17915
18004
|
errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _407 => _407.variant]),
|
|
17916
18005
|
disabled: fieldsDisabled,
|
|
17917
18006
|
onBlur: emailErr.onBlur,
|
|
17918
|
-
onChange: (event) => onEmailChange(event.target.value),
|
|
18007
|
+
onChange: (event) => _optionalChain([onEmailChange, 'optionalCall', _408 => _408(event.target.value)]),
|
|
17919
18008
|
onKeyDown: handleKeyDown
|
|
17920
18009
|
}
|
|
17921
18010
|
),
|
|
@@ -17939,8 +18028,8 @@ function CreateOrganizationForm({
|
|
|
17939
18028
|
label: "Domain",
|
|
17940
18029
|
placeholder: domainPlaceholder,
|
|
17941
18030
|
value: domain,
|
|
17942
|
-
error: _nullishCoalesce(domainErr.error, () => ( _optionalChain([domainStatus, 'optionalAccess',
|
|
17943
|
-
errorVariant: domainErr.error ? "error" : _optionalChain([domainStatus, 'optionalAccess',
|
|
18031
|
+
error: _nullishCoalesce(domainErr.error, () => ( _optionalChain([domainStatus, 'optionalAccess', _409 => _409.message]))),
|
|
18032
|
+
errorVariant: domainErr.error ? "error" : _optionalChain([domainStatus, 'optionalAccess', _410 => _410.variant]),
|
|
17944
18033
|
disabled: fieldsDisabled,
|
|
17945
18034
|
onBlur: domainErr.onBlur,
|
|
17946
18035
|
endAdornment: domainSuffix ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: domainSuffix }) : void 0,
|
|
@@ -17950,6 +18039,23 @@ function CreateOrganizationForm({
|
|
|
17950
18039
|
),
|
|
17951
18040
|
domainSlot && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-s)]", children: domainSlot })
|
|
17952
18041
|
] }),
|
|
18042
|
+
onFirstNameChange && onLastNameChange && onPasswordChange && onConfirmPasswordChange && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18043
|
+
AccountDetailsFields,
|
|
18044
|
+
{
|
|
18045
|
+
layout: "paired",
|
|
18046
|
+
firstName,
|
|
18047
|
+
lastName,
|
|
18048
|
+
password,
|
|
18049
|
+
confirmPassword,
|
|
18050
|
+
onFirstNameChange,
|
|
18051
|
+
onLastNameChange,
|
|
18052
|
+
onPasswordChange,
|
|
18053
|
+
onConfirmPasswordChange,
|
|
18054
|
+
errors,
|
|
18055
|
+
disabled: fieldsDisabled,
|
|
18056
|
+
onKeyDown: handleKeyDown
|
|
18057
|
+
}
|
|
18058
|
+
),
|
|
17953
18059
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17954
18060
|
CheckboxBlock,
|
|
17955
18061
|
{
|
|
@@ -17957,28 +18063,39 @@ function CreateOrganizationForm({
|
|
|
17957
18063
|
label: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TermsAgreementLabel, { termsUrl, privacyPolicyUrl }),
|
|
17958
18064
|
checked: agreedToTerms,
|
|
17959
18065
|
disabled: fieldsDisabled,
|
|
17960
|
-
error: _optionalChain([errors, 'optionalAccess',
|
|
18066
|
+
error: _optionalChain([errors, 'optionalAccess', _411 => _411.terms]),
|
|
17961
18067
|
onCheckedChange: onAgreedToTermsChange
|
|
17962
18068
|
}
|
|
17963
18069
|
),
|
|
17964
|
-
/* @__PURE__ */ _jsxruntime.
|
|
17965
|
-
|
|
17966
|
-
|
|
17967
|
-
|
|
17968
|
-
|
|
17969
|
-
|
|
17970
|
-
|
|
17971
|
-
|
|
17972
|
-
|
|
17973
|
-
|
|
17974
|
-
|
|
17975
|
-
|
|
18070
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-l)]", children: [
|
|
18071
|
+
onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18072
|
+
_chunkYHNIPSG6cjs.Button,
|
|
18073
|
+
{
|
|
18074
|
+
type: "button",
|
|
18075
|
+
variant: "transparent",
|
|
18076
|
+
fullWidth: true,
|
|
18077
|
+
className: "flex-1",
|
|
18078
|
+
disabled: fieldsDisabled,
|
|
18079
|
+
onClick: onBack,
|
|
18080
|
+
children: backLabel
|
|
18081
|
+
}
|
|
18082
|
+
),
|
|
18083
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18084
|
+
_chunkYHNIPSG6cjs.Button,
|
|
18085
|
+
{
|
|
18086
|
+
type: "button",
|
|
18087
|
+
variant: "accent",
|
|
18088
|
+
fullWidth: true,
|
|
18089
|
+
className: "flex-1",
|
|
18090
|
+
loading,
|
|
18091
|
+
disabled: disabled || submitDisabled,
|
|
18092
|
+
onClick: onSubmit,
|
|
18093
|
+
children: submitLabel
|
|
18094
|
+
}
|
|
18095
|
+
)
|
|
18096
|
+
] }),
|
|
17976
18097
|
hasSso && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
17977
|
-
/* @__PURE__ */ _jsxruntime.
|
|
17978
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" }),
|
|
17979
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: dividerLabel }),
|
|
17980
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" })
|
|
17981
|
-
] }),
|
|
18098
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel }),
|
|
17982
18099
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17983
18100
|
SsoProviderButtons,
|
|
17984
18101
|
{
|
|
@@ -18040,7 +18157,6 @@ function InviteLinkInvalidModal({
|
|
|
18040
18157
|
function LoginForm({
|
|
18041
18158
|
email,
|
|
18042
18159
|
onEmailChange,
|
|
18043
|
-
onSubmit,
|
|
18044
18160
|
emailPlaceholder = "username@mail.com",
|
|
18045
18161
|
loading = false,
|
|
18046
18162
|
disabled = false,
|
|
@@ -18051,14 +18167,21 @@ function LoginForm({
|
|
|
18051
18167
|
ssoDisabled = false,
|
|
18052
18168
|
ssoEnabledProviders,
|
|
18053
18169
|
ssoActionLabel = "Continue with",
|
|
18170
|
+
dividerLabel = "or continue with OpenFrame SSO",
|
|
18171
|
+
customSsoProviders,
|
|
18172
|
+
noCustomSsoLabel = "No additional SSO configurations for this domain",
|
|
18173
|
+
onSubmitClick,
|
|
18174
|
+
submitLabel = "Continue",
|
|
18175
|
+
submitDisabled = false,
|
|
18176
|
+
title = "Login to OpenFrame",
|
|
18177
|
+
subtitle = "Enter your email to access your organization.",
|
|
18054
18178
|
className
|
|
18055
18179
|
}) {
|
|
18056
18180
|
const fieldDisabled = disabled || loading;
|
|
18057
|
-
const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess',
|
|
18181
|
+
const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _412 => _412.email]), email);
|
|
18058
18182
|
const handleKeyDown = (event) => {
|
|
18059
|
-
if (event.key
|
|
18060
|
-
|
|
18061
|
-
}
|
|
18183
|
+
if (event.key !== "Enter" || fieldDisabled || submitDisabled) return;
|
|
18184
|
+
_optionalChain([onSubmitClick, 'optionalCall', _413 => _413()]);
|
|
18062
18185
|
};
|
|
18063
18186
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
18064
18187
|
"div",
|
|
@@ -18069,9 +18192,20 @@ function LoginForm({
|
|
|
18069
18192
|
),
|
|
18070
18193
|
children: [
|
|
18071
18194
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
|
|
18072
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children:
|
|
18073
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children:
|
|
18195
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: title }),
|
|
18196
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
|
|
18074
18197
|
] }),
|
|
18198
|
+
ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18199
|
+
SsoProviderButtons,
|
|
18200
|
+
{
|
|
18201
|
+
providers: ssoProviders,
|
|
18202
|
+
onSsoClick,
|
|
18203
|
+
actionLabel: ssoActionLabel,
|
|
18204
|
+
disabled: disabled || loading || ssoDisabled,
|
|
18205
|
+
enabledProviders: ssoEnabledProviders
|
|
18206
|
+
}
|
|
18207
|
+
),
|
|
18208
|
+
ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel }),
|
|
18075
18209
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18076
18210
|
_chunkIKDC3R7Vcjs.Input,
|
|
18077
18211
|
{
|
|
@@ -18079,24 +18213,56 @@ function LoginForm({
|
|
|
18079
18213
|
label: "Email",
|
|
18080
18214
|
placeholder: emailPlaceholder,
|
|
18081
18215
|
value: email,
|
|
18082
|
-
error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess',
|
|
18083
|
-
errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess',
|
|
18216
|
+
error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _414 => _414.message]))),
|
|
18217
|
+
errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _415 => _415.variant]),
|
|
18084
18218
|
disabled: fieldDisabled,
|
|
18085
18219
|
onBlur: emailErr.onBlur,
|
|
18086
18220
|
onChange: (event) => onEmailChange(event.target.value),
|
|
18087
18221
|
onKeyDown: handleKeyDown
|
|
18088
18222
|
}
|
|
18089
18223
|
),
|
|
18090
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18224
|
+
customSsoProviders && (customSsoProviders.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18091
18225
|
SsoProviderButtons,
|
|
18092
18226
|
{
|
|
18093
|
-
providers:
|
|
18227
|
+
providers: customSsoProviders,
|
|
18094
18228
|
onSsoClick,
|
|
18095
18229
|
actionLabel: ssoActionLabel,
|
|
18096
|
-
disabled: disabled || loading
|
|
18097
|
-
enabledProviders: ssoEnabledProviders
|
|
18230
|
+
disabled: disabled || loading
|
|
18098
18231
|
}
|
|
18099
|
-
)
|
|
18232
|
+
) : (
|
|
18233
|
+
// Same footprint as the button it stands in for, so nothing shifts when a tenant does
|
|
18234
|
+
// have options. Tokens are the design's: soft-grey surface, grey text and icon, the
|
|
18235
|
+
// bold-body step, a 24px icon, and 12/16 for the inset and the gap.
|
|
18236
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
18237
|
+
"div",
|
|
18238
|
+
{
|
|
18239
|
+
role: "status",
|
|
18240
|
+
className: "flex h-11 w-full items-center gap-[var(--spacing-system-m)] rounded-md bg-ods-bg-surface px-[var(--spacing-system-s)] text-ods-text-secondary text-h3 md:h-12",
|
|
18241
|
+
children: [
|
|
18242
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.AlertTriangleIcon, { className: "h-6 w-6 shrink-0" }),
|
|
18243
|
+
noCustomSsoLabel
|
|
18244
|
+
]
|
|
18245
|
+
}
|
|
18246
|
+
)
|
|
18247
|
+
)),
|
|
18248
|
+
onSubmitClick && // Full width on a phone, half the row and right-aligned from `md` up, matching the design.
|
|
18249
|
+
// The spacer, rather than a width on the button, keeps it flush with the fields' right edge.
|
|
18250
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-l)]", children: [
|
|
18251
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
|
|
18252
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18253
|
+
_chunkYHNIPSG6cjs.Button,
|
|
18254
|
+
{
|
|
18255
|
+
type: "button",
|
|
18256
|
+
variant: "accent",
|
|
18257
|
+
fullWidth: true,
|
|
18258
|
+
className: "md:flex-1",
|
|
18259
|
+
loading,
|
|
18260
|
+
disabled: submitDisabled || fieldDisabled,
|
|
18261
|
+
onClick: onSubmitClick,
|
|
18262
|
+
children: submitLabel
|
|
18263
|
+
}
|
|
18264
|
+
)
|
|
18265
|
+
] })
|
|
18100
18266
|
]
|
|
18101
18267
|
}
|
|
18102
18268
|
);
|
|
@@ -18126,8 +18292,8 @@ function OpenFrameSsoLoginForm({
|
|
|
18126
18292
|
className
|
|
18127
18293
|
}) {
|
|
18128
18294
|
const fieldsDisabled = disabled || loading;
|
|
18129
|
-
const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess',
|
|
18130
|
-
const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess',
|
|
18295
|
+
const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _416 => _416.email]), email);
|
|
18296
|
+
const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _417 => _417.password]), password);
|
|
18131
18297
|
const handleKeyDown = (event) => {
|
|
18132
18298
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
18133
18299
|
onSubmit();
|
|
@@ -18232,11 +18398,7 @@ function OpenFrameSsoSignUpForm({
|
|
|
18232
18398
|
className
|
|
18233
18399
|
}) {
|
|
18234
18400
|
const fieldsDisabled = disabled || loading;
|
|
18235
|
-
const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess',
|
|
18236
|
-
const firstNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _418 => _418.firstName]), firstName);
|
|
18237
|
-
const lastNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _419 => _419.lastName]), lastName);
|
|
18238
|
-
const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _420 => _420.password]), password);
|
|
18239
|
-
const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _421 => _421.confirmPassword]), confirmPassword);
|
|
18401
|
+
const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _418 => _418.email]), email);
|
|
18240
18402
|
const handleKeyDown = (event) => {
|
|
18241
18403
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
18242
18404
|
onSubmit();
|
|
@@ -18269,54 +18431,18 @@ function OpenFrameSsoSignUpForm({
|
|
|
18269
18431
|
}
|
|
18270
18432
|
),
|
|
18271
18433
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18272
|
-
|
|
18273
|
-
{
|
|
18274
|
-
label: "First Name",
|
|
18275
|
-
placeholder: "Enter First Name",
|
|
18276
|
-
value: firstName,
|
|
18277
|
-
error: firstNameErr.error,
|
|
18278
|
-
disabled: fieldsDisabled,
|
|
18279
|
-
onBlur: firstNameErr.onBlur,
|
|
18280
|
-
onChange: (event) => onFirstNameChange(event.target.value),
|
|
18281
|
-
onKeyDown: handleKeyDown
|
|
18282
|
-
}
|
|
18283
|
-
),
|
|
18284
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18285
|
-
_chunkIKDC3R7Vcjs.Input,
|
|
18286
|
-
{
|
|
18287
|
-
label: "Last Name",
|
|
18288
|
-
placeholder: "Enter Last Name",
|
|
18289
|
-
value: lastName,
|
|
18290
|
-
error: lastNameErr.error,
|
|
18291
|
-
disabled: fieldsDisabled,
|
|
18292
|
-
onBlur: lastNameErr.onBlur,
|
|
18293
|
-
onChange: (event) => onLastNameChange(event.target.value),
|
|
18294
|
-
onKeyDown: handleKeyDown
|
|
18295
|
-
}
|
|
18296
|
-
),
|
|
18297
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18298
|
-
PasswordInput,
|
|
18434
|
+
AccountDetailsFields,
|
|
18299
18435
|
{
|
|
18300
|
-
|
|
18301
|
-
|
|
18302
|
-
|
|
18303
|
-
|
|
18436
|
+
firstName,
|
|
18437
|
+
lastName,
|
|
18438
|
+
password,
|
|
18439
|
+
confirmPassword,
|
|
18440
|
+
onFirstNameChange,
|
|
18441
|
+
onLastNameChange,
|
|
18442
|
+
onPasswordChange,
|
|
18443
|
+
onConfirmPasswordChange,
|
|
18444
|
+
errors,
|
|
18304
18445
|
disabled: fieldsDisabled,
|
|
18305
|
-
onBlur: passwordErr.onBlur,
|
|
18306
|
-
onChange: (event) => onPasswordChange(event.target.value),
|
|
18307
|
-
onKeyDown: handleKeyDown
|
|
18308
|
-
}
|
|
18309
|
-
),
|
|
18310
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18311
|
-
PasswordInput,
|
|
18312
|
-
{
|
|
18313
|
-
label: "Confirm Password",
|
|
18314
|
-
placeholder: "Confirm Password",
|
|
18315
|
-
value: confirmPassword,
|
|
18316
|
-
error: confirmErr.error,
|
|
18317
|
-
disabled: fieldsDisabled,
|
|
18318
|
-
onBlur: confirmErr.onBlur,
|
|
18319
|
-
onChange: (event) => onConfirmPasswordChange(event.target.value),
|
|
18320
18446
|
onKeyDown: handleKeyDown
|
|
18321
18447
|
}
|
|
18322
18448
|
),
|
|
@@ -18377,8 +18503,8 @@ function PasswordResetForm({
|
|
|
18377
18503
|
className
|
|
18378
18504
|
}) {
|
|
18379
18505
|
const fieldsDisabled = disabled || loading;
|
|
18380
|
-
const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess',
|
|
18381
|
-
const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess',
|
|
18506
|
+
const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _419 => _419.password]), password);
|
|
18507
|
+
const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _420 => _420.confirmPassword]), confirmPassword);
|
|
18382
18508
|
const handleKeyDown = (event) => {
|
|
18383
18509
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
18384
18510
|
onSubmit();
|
|
@@ -18912,7 +19038,7 @@ function EntityTagBadges({ tags, basePath, max, className }) {
|
|
|
18912
19038
|
const label = (tag.name || "").toUpperCase();
|
|
18913
19039
|
if (basePath && tag.slug) {
|
|
18914
19040
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _link2.default, { href: `${basePath}?tags=${tag.slug}`, className: "inline-flex", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18915
|
-
|
|
19041
|
+
_chunkEMF64FWAcjs.StatusBadge,
|
|
18916
19042
|
{
|
|
18917
19043
|
text: label,
|
|
18918
19044
|
variant: "card",
|
|
@@ -18920,9 +19046,9 @@ function EntityTagBadges({ tags, basePath, max, className }) {
|
|
|
18920
19046
|
}
|
|
18921
19047
|
) }, key);
|
|
18922
19048
|
}
|
|
18923
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
19049
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.StatusBadge, { text: label, variant: "card", className: BADGE_CLASS }, key);
|
|
18924
19050
|
}),
|
|
18925
|
-
overflow2 > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
19051
|
+
overflow2 > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.StatusBadge, { text: `+${overflow2}`, variant: "card", className: `${BADGE_CLASS} text-ods-text-secondary` })
|
|
18926
19052
|
] });
|
|
18927
19053
|
}
|
|
18928
19054
|
|
|
@@ -18999,7 +19125,7 @@ var SectionButton = ({
|
|
|
18999
19125
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
19000
19126
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClasses, "whitespace-normal break-words text-h4"), children: section.title }),
|
|
19001
19127
|
section.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
19002
|
-
|
|
19128
|
+
_chunkEMF64FWAcjs.StatusBadge,
|
|
19003
19129
|
{
|
|
19004
19130
|
text: section.badge.text,
|
|
19005
19131
|
variant: section.badge.variant || "button",
|
|
@@ -19018,7 +19144,7 @@ var SectionButton = ({
|
|
|
19018
19144
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-wrap items-start gap-2", children: [
|
|
19019
19145
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, titleClasses, "text-h3"), style: { textAlign: "left" }, children: section.title }),
|
|
19020
19146
|
section.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
19021
|
-
|
|
19147
|
+
_chunkEMF64FWAcjs.StatusBadge,
|
|
19022
19148
|
{
|
|
19023
19149
|
text: section.badge.text,
|
|
19024
19150
|
variant: section.badge.variant || "button",
|
|
@@ -19089,10 +19215,10 @@ var getContentDimensions = (config) => {
|
|
|
19089
19215
|
const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
|
|
19090
19216
|
const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
|
|
19091
19217
|
const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
|
|
19092
|
-
const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess',
|
|
19093
|
-
const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess',
|
|
19094
|
-
const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess',
|
|
19095
|
-
const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess',
|
|
19218
|
+
const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _421 => _421.mobileContentDimensions, 'optionalAccess', _422 => _422.width]))), () => ( defaultMobile.width));
|
|
19219
|
+
const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _423 => _423.mobileContentDimensions, 'optionalAccess', _424 => _424.height]))), () => ( defaultMobile.height));
|
|
19220
|
+
const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _425 => _425.desktopContentDimensions, 'optionalAccess', _426 => _426.width]))), () => ( defaultDesktop.width));
|
|
19221
|
+
const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _427 => _427.desktopContentDimensions, 'optionalAccess', _428 => _428.height]))), () => ( defaultDesktop.height));
|
|
19096
19222
|
return {
|
|
19097
19223
|
mobile: { width: mobileWidth, height: mobileHeight },
|
|
19098
19224
|
desktop: { width: desktopWidth, height: desktopHeight }
|
|
@@ -19248,7 +19374,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
|
|
|
19248
19374
|
const contentDimensions = getContentDimensions(config);
|
|
19249
19375
|
const mobileHeight = contentDimensions.mobile.height;
|
|
19250
19376
|
const calculatedHeight = Math.max(mobileHeight + 100, 400);
|
|
19251
|
-
return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess',
|
|
19377
|
+
return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _429 => _429.innerHeight]) * 0.85 || 650)}px`;
|
|
19252
19378
|
})(),
|
|
19253
19379
|
minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
|
|
19254
19380
|
const contentDimensions = getContentDimensions(config);
|
|
@@ -19306,7 +19432,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
|
|
|
19306
19432
|
sandbox: "allow-scripts allow-same-origin allow-popups allow-presentation",
|
|
19307
19433
|
title: config.title,
|
|
19308
19434
|
loading: "eager",
|
|
19309
|
-
...
|
|
19435
|
+
..._chunkG45RGWHFcjs.fetchPriorityProp.call(void 0, "high")
|
|
19310
19436
|
},
|
|
19311
19437
|
iframeKey
|
|
19312
19438
|
),
|
|
@@ -19351,7 +19477,7 @@ var FigmaPrototypeViewer = ({
|
|
|
19351
19477
|
const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
|
|
19352
19478
|
const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
|
|
19353
19479
|
const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
|
|
19354
|
-
config.defaultSectionId || _optionalChain([config, 'access',
|
|
19480
|
+
config.defaultSectionId || _optionalChain([config, 'access', _430 => _430.sections, 'access', _431 => _431[0], 'optionalAccess', _432 => _432.id]) || ""
|
|
19355
19481
|
);
|
|
19356
19482
|
const activeSection = externalActiveSection || internalActiveSection;
|
|
19357
19483
|
const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
|
|
@@ -19449,19 +19575,19 @@ var FigmaPrototypeViewer = ({
|
|
|
19449
19575
|
setIframeState("READY");
|
|
19450
19576
|
break;
|
|
19451
19577
|
case "PRESENTED_NODE_CHANGED":
|
|
19452
|
-
if (_optionalChain([figmaEvent, 'access',
|
|
19578
|
+
if (_optionalChain([figmaEvent, 'access', _433 => _433.data, 'optionalAccess', _434 => _434.presentedNodeId])) {
|
|
19453
19579
|
setCurrentNodeId(figmaEvent.data.presentedNodeId);
|
|
19454
19580
|
if (!isNavigating) {
|
|
19455
19581
|
const matchingSection = configSections.find((s) => {
|
|
19456
|
-
const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access',
|
|
19457
|
-
const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access',
|
|
19582
|
+
const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _435 => _435.data, 'optionalAccess', _436 => _436.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _437 => _437.data, 'optionalAccess', _438 => _438.presentedNodeId]);
|
|
19583
|
+
const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _439 => _439.data, 'optionalAccess', _440 => _440.presentedNodeId]) || _optionalChain([s, 'access', _441 => _441.mobileStartingNodeId, 'optionalAccess', _442 => _442.replace, 'call', _443 => _443(":", "-")]) === _optionalChain([figmaEvent, 'access', _444 => _444.data, 'optionalAccess', _445 => _445.presentedNodeId]);
|
|
19458
19584
|
return desktopMatch || mobileMatch;
|
|
19459
19585
|
});
|
|
19460
19586
|
if (matchingSection && matchingSection.id !== activeSection) {
|
|
19461
19587
|
if (!externalActiveSection) {
|
|
19462
19588
|
setInternalActiveSection(matchingSection.id);
|
|
19463
19589
|
}
|
|
19464
|
-
_optionalChain([onSectionChange, 'optionalCall',
|
|
19590
|
+
_optionalChain([onSectionChange, 'optionalCall', _446 => _446(matchingSection.id)]);
|
|
19465
19591
|
}
|
|
19466
19592
|
}
|
|
19467
19593
|
}
|
|
@@ -19475,7 +19601,7 @@ var FigmaPrototypeViewer = ({
|
|
|
19475
19601
|
const navigateToSection = _react.useCallback.call(void 0,
|
|
19476
19602
|
(sectionId) => {
|
|
19477
19603
|
const section = config.sections.find((s) => s.id === sectionId);
|
|
19478
|
-
if (!section || !_optionalChain([iframeRef, 'access',
|
|
19604
|
+
if (!section || !_optionalChain([iframeRef, 'access', _447 => _447.current, 'optionalAccess', _448 => _448.contentWindow]) || !isInitialized) {
|
|
19479
19605
|
return;
|
|
19480
19606
|
}
|
|
19481
19607
|
setIsNavigating(true);
|
|
@@ -19483,7 +19609,7 @@ var FigmaPrototypeViewer = ({
|
|
|
19483
19609
|
if (!externalActiveSection) {
|
|
19484
19610
|
setInternalActiveSection(sectionId);
|
|
19485
19611
|
}
|
|
19486
|
-
_optionalChain([config, 'access',
|
|
19612
|
+
_optionalChain([config, 'access', _449 => _449.onSectionChange, 'optionalCall', _450 => _450(sectionId)]);
|
|
19487
19613
|
const command = {
|
|
19488
19614
|
type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
|
|
19489
19615
|
data: { nodeId }
|
|
@@ -19820,7 +19946,7 @@ var FiltersDropdown = ({
|
|
|
19820
19946
|
defaults[section.id] = section.defaultSelected || [];
|
|
19821
19947
|
});
|
|
19822
19948
|
setSelectedFilters(defaults);
|
|
19823
|
-
_optionalChain([onReset, 'optionalCall',
|
|
19949
|
+
_optionalChain([onReset, 'optionalCall', _451 => _451()]);
|
|
19824
19950
|
setIsOpen(false);
|
|
19825
19951
|
};
|
|
19826
19952
|
const handleApply = () => {
|
|
@@ -20069,7 +20195,7 @@ function MediaGalleryManager({
|
|
|
20069
20195
|
const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
|
|
20070
20196
|
const handleFileSelect = _react.useCallback.call(void 0,
|
|
20071
20197
|
async (event) => {
|
|
20072
|
-
const file = _optionalChain([event, 'access',
|
|
20198
|
+
const file = _optionalChain([event, 'access', _452 => _452.target, 'access', _453 => _453.files, 'optionalAccess', _454 => _454[0]]);
|
|
20073
20199
|
if (!file) return;
|
|
20074
20200
|
let mediaType;
|
|
20075
20201
|
if (file.type.startsWith("image/")) {
|
|
@@ -20132,7 +20258,7 @@ function MediaGalleryManager({
|
|
|
20132
20258
|
(mediaItem, index) => {
|
|
20133
20259
|
const isDeleting = deletingIndex === index;
|
|
20134
20260
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
20135
|
-
|
|
20261
|
+
_chunkEMF64FWAcjs.Card,
|
|
20136
20262
|
{
|
|
20137
20263
|
className: "group relative border-ods-border transition-colors hover:border-ods-accent/30",
|
|
20138
20264
|
draggable: true,
|
|
@@ -20153,10 +20279,10 @@ function MediaGalleryManager({
|
|
|
20153
20279
|
children: isDeleting ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-4 w-4 animate-spin text-ods-text-on-dark" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Trash2, { className: "h-4 w-4 text-ods-text-on-dark" })
|
|
20154
20280
|
}
|
|
20155
20281
|
) }),
|
|
20156
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video overflow-hidden rounded-lg bg-ods-bg", children:
|
|
20282
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video overflow-hidden rounded-lg bg-ods-bg", children: _chunkEMF64FWAcjs.isVideoMedia.call(void 0, mediaItem) || mediaItem.media_type === "demo" ? (
|
|
20157
20283
|
// <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
|
|
20158
20284
|
// fit="cover" crops to the aspect-video cell.
|
|
20159
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20285
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "file", url: mediaItem.media_url, fit: "cover", className: "h-full w-full" })
|
|
20160
20286
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20161
20287
|
_chunkWLSFBRT5cjs.next_image_default,
|
|
20162
20288
|
{
|
|
@@ -20169,7 +20295,7 @@ function MediaGalleryManager({
|
|
|
20169
20295
|
) }),
|
|
20170
20296
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-3", children: [
|
|
20171
20297
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-1 flex items-center gap-2", children: [
|
|
20172
|
-
|
|
20298
|
+
_chunkEMF64FWAcjs.isVideoMedia.call(void 0, mediaItem) || mediaItem.media_type === "demo" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-4 w-4 text-ods-text-secondary" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Image, { className: "h-4 w-4 text-ods-text-secondary" }),
|
|
20173
20299
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "capitalize text-ods-text-primary text-h6", children: mediaItem.media_type })
|
|
20174
20300
|
] }),
|
|
20175
20301
|
mediaItem.title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "truncate text-ods-text-secondary text-h6", children: mediaItem.title })
|
|
@@ -20194,7 +20320,7 @@ function MediaGalleryManager({
|
|
|
20194
20320
|
{
|
|
20195
20321
|
type: "button",
|
|
20196
20322
|
variant: "outline",
|
|
20197
|
-
onClick: () => _optionalChain([fileInputRef, 'access',
|
|
20323
|
+
onClick: () => _optionalChain([fileInputRef, 'access', _455 => _455.current, 'optionalAccess', _456 => _456.click, 'call', _457 => _457()]),
|
|
20198
20324
|
disabled: isUploading,
|
|
20199
20325
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
|
|
20200
20326
|
className: "font-bold text-h6",
|
|
@@ -20643,6 +20769,7 @@ function UnifiedSkeleton({
|
|
|
20643
20769
|
rectangular: "h-4"
|
|
20644
20770
|
};
|
|
20645
20771
|
const animationClasses = animate ? "animate-pulse motion-reduce:animate-none" : "";
|
|
20772
|
+
const sizedByAspect = /(?:^|\s)aspect-/.test(_nullishCoalesce(className, () => ( "")));
|
|
20646
20773
|
const style = {
|
|
20647
20774
|
width,
|
|
20648
20775
|
height
|
|
@@ -20653,7 +20780,7 @@ function UnifiedSkeleton({
|
|
|
20653
20780
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
20654
20781
|
baseClasses,
|
|
20655
20782
|
variantClasses[variant],
|
|
20656
|
-
!height && !style.height && defaultHeights[variant],
|
|
20783
|
+
!height && !style.height && !sizedByAspect && defaultHeights[variant],
|
|
20657
20784
|
!width && !style.width && variant !== "circular" && "w-full",
|
|
20658
20785
|
animationClasses,
|
|
20659
20786
|
className
|
|
@@ -22318,9 +22445,9 @@ function PushButtonSelector({
|
|
|
22318
22445
|
}) {
|
|
22319
22446
|
const scrollRef = _react.useRef.call(void 0, null);
|
|
22320
22447
|
const sentinelRef = _react.useRef.call(void 0, null);
|
|
22321
|
-
const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess',
|
|
22322
|
-
const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess',
|
|
22323
|
-
const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess',
|
|
22448
|
+
const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _458 => _458.hasMore]), () => ( false));
|
|
22449
|
+
const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _459 => _459.isFetchingMore]), () => ( false));
|
|
22450
|
+
const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _460 => _460.onLoadMore]);
|
|
22324
22451
|
const optionCount = options.length;
|
|
22325
22452
|
_react.useEffect.call(void 0, () => {
|
|
22326
22453
|
const sentinel = sentinelRef.current;
|
|
@@ -22406,9 +22533,9 @@ function PushButtonSelector({
|
|
|
22406
22533
|
option.id
|
|
22407
22534
|
);
|
|
22408
22535
|
if (option.disabled && option.disabledReason) {
|
|
22409
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
22410
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22411
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22536
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { children: [
|
|
22537
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipTrigger, { asChild: true, children: optionEl }),
|
|
22538
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
|
|
22412
22539
|
] }, option.id);
|
|
22413
22540
|
}
|
|
22414
22541
|
return optionEl;
|
|
@@ -22453,7 +22580,7 @@ function PushButtonSelector({
|
|
|
22453
22580
|
lazyLoad.isFetchingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "py-2 text-center text-ods-text-secondary text-h6", children: "Loading more\u2026" }) : null
|
|
22454
22581
|
] }) : null
|
|
22455
22582
|
] });
|
|
22456
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22583
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 ${className}`, children: [
|
|
22457
22584
|
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
|
|
22458
22585
|
searchInput,
|
|
22459
22586
|
lazyLoad ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -22491,7 +22618,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
22491
22618
|
const fileInputRef = _react.useRef.call(void 0, null);
|
|
22492
22619
|
const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
|
|
22493
22620
|
const handleFileSelect = async (event) => {
|
|
22494
|
-
const file = _optionalChain([event, 'access',
|
|
22621
|
+
const file = _optionalChain([event, 'access', _461 => _461.target, 'access', _462 => _462.files, 'optionalAccess', _463 => _463[0]]);
|
|
22495
22622
|
if (!file) return;
|
|
22496
22623
|
let mediaType;
|
|
22497
22624
|
if (file.type.startsWith("image/")) {
|
|
@@ -22573,7 +22700,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
22573
22700
|
{
|
|
22574
22701
|
type: "button",
|
|
22575
22702
|
variant: "outline",
|
|
22576
|
-
onClick: () => _optionalChain([fileInputRef, 'access',
|
|
22703
|
+
onClick: () => _optionalChain([fileInputRef, 'access', _464 => _464.current, 'optionalAccess', _465 => _465.click, 'call', _466 => _466()]),
|
|
22577
22704
|
disabled: uploadingIndex !== null,
|
|
22578
22705
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
|
|
22579
22706
|
className: "font-bold text-h6",
|
|
@@ -22623,10 +22750,10 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
|
|
|
22623
22750
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Trash2, { className: "h-4 w-4 text-ods-text-on-dark" })
|
|
22624
22751
|
}
|
|
22625
22752
|
) }),
|
|
22626
|
-
item.media_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video bg-ods-bg", children:
|
|
22753
|
+
item.media_url && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative aspect-video bg-ods-bg", children: _chunkEMF64FWAcjs.isVideoMedia.call(void 0, item) || item.media_type === "demo" ? (
|
|
22627
22754
|
// <Video> SSOT (MuxPlayer) — plays Mux HLS + MP4 alike;
|
|
22628
22755
|
// fit="cover" crops to the aspect-video cell.
|
|
22629
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22756
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "file", url: item.media_url, fit: "cover", className: "h-full w-full" })
|
|
22630
22757
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22631
22758
|
_chunkWLSFBRT5cjs.next_image_default,
|
|
22632
22759
|
{
|
|
@@ -22759,7 +22886,7 @@ var SelectButton = _react2.default.forwardRef(
|
|
|
22759
22886
|
}
|
|
22760
22887
|
)
|
|
22761
22888
|
] }),
|
|
22762
|
-
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22889
|
+
tag && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: tagVariant, className: "shrink-0", label: tag }),
|
|
22763
22890
|
selected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckCircleIcon, { className: "size-4 shrink-0 text-ods-accent md:size-6" })
|
|
22764
22891
|
]
|
|
22765
22892
|
}
|
|
@@ -22854,7 +22981,7 @@ function SEOEditorPreview({
|
|
|
22854
22981
|
const displayImage = hasOgImage || hasFeaturedImage;
|
|
22855
22982
|
const handleImageUpload = async (event) => {
|
|
22856
22983
|
if (!onOgImageUpload) return;
|
|
22857
|
-
const file = _optionalChain([event, 'access',
|
|
22984
|
+
const file = _optionalChain([event, 'access', _467 => _467.target, 'access', _468 => _468.files, 'optionalAccess', _469 => _469[0]]);
|
|
22858
22985
|
if (!file) return;
|
|
22859
22986
|
setIsUploading(true);
|
|
22860
22987
|
try {
|
|
@@ -23011,7 +23138,7 @@ function SEOEditorPreview({
|
|
|
23011
23138
|
type: "button",
|
|
23012
23139
|
variant: "outline",
|
|
23013
23140
|
size: "icon",
|
|
23014
|
-
onClick: () => _optionalChain([fileInputRef, 'optionalAccess',
|
|
23141
|
+
onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _470 => _470.click, 'call', _471 => _471()]),
|
|
23015
23142
|
disabled: disabled || isUploading,
|
|
23016
23143
|
className: "rounded-full bg-white text-black opacity-0 hover:bg-gray-100 group-hover:opacity-100",
|
|
23017
23144
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
|
|
@@ -23037,7 +23164,7 @@ function SEOEditorPreview({
|
|
|
23037
23164
|
SEO_MEDIA_BOX_HEIGHT,
|
|
23038
23165
|
"flex cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-ods-border bg-ods-bg-hover transition-colors hover:border-ods-accent"
|
|
23039
23166
|
),
|
|
23040
|
-
onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess',
|
|
23167
|
+
onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _472 => _472.click, 'call', _473 => _473()]),
|
|
23041
23168
|
children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
23042
23169
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "mb-2 h-8 w-8 text-ods-text-secondary" }),
|
|
23043
23170
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
|
|
@@ -23124,7 +23251,7 @@ function SocialLinksManager({
|
|
|
23124
23251
|
className = ""
|
|
23125
23252
|
}) {
|
|
23126
23253
|
const addLink = () => {
|
|
23127
|
-
const firstPlatform = _optionalChain([platforms, 'access',
|
|
23254
|
+
const firstPlatform = _optionalChain([platforms, 'access', _474 => _474[0], 'optionalAccess', _475 => _475.name]) || "website";
|
|
23128
23255
|
onChange([...links, { platform: firstPlatform, url: "" }]);
|
|
23129
23256
|
};
|
|
23130
23257
|
const removeLink = (index) => {
|
|
@@ -23136,7 +23263,7 @@ function SocialLinksManager({
|
|
|
23136
23263
|
onChange(updated);
|
|
23137
23264
|
};
|
|
23138
23265
|
const getIcon = (link, platform) => {
|
|
23139
|
-
const iconKey = _optionalChain([platform, 'optionalAccess',
|
|
23266
|
+
const iconKey = _optionalChain([platform, 'optionalAccess', _476 => _476.icon_name]) || link.platform;
|
|
23140
23267
|
const IconComponent = iconMap[iconKey];
|
|
23141
23268
|
return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
|
|
23142
23269
|
};
|
|
@@ -23158,7 +23285,7 @@ function SocialLinksManager({
|
|
|
23158
23285
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23159
23286
|
_chunkIKDC3R7Vcjs.Input,
|
|
23160
23287
|
{
|
|
23161
|
-
placeholder: _optionalChain([platform, 'optionalAccess',
|
|
23288
|
+
placeholder: _optionalChain([platform, 'optionalAccess', _477 => _477.placeholder]) || "Profile URL",
|
|
23162
23289
|
value: link.url,
|
|
23163
23290
|
onChange: (e) => updateLink(index, "url", e.target.value),
|
|
23164
23291
|
onKeyDown: (e) => {
|
|
@@ -23271,7 +23398,7 @@ var StartWithOpenFrameButton = _react.forwardRef.call(void 0,
|
|
|
23271
23398
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, modeClassName, className),
|
|
23272
23399
|
style: customStyle,
|
|
23273
23400
|
leftIcon: !loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk63QUMV72cjs.OpenFrameLogo, { className: "h-5 w-5", lowerPathColor: iconLowerPath, upperPathColor: iconUpperPath }) : void 0,
|
|
23274
|
-
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23401
|
+
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.StatusBadge, { text: "Beta", variant: "button", colorScheme: "yellow" }),
|
|
23275
23402
|
children
|
|
23276
23403
|
}
|
|
23277
23404
|
);
|
|
@@ -23541,11 +23668,11 @@ function WarningBlock({ title, icon = DEFAULT_ICON, children, className }) {
|
|
|
23541
23668
|
|
|
23542
23669
|
function VideoBitesDisplay({
|
|
23543
23670
|
bites,
|
|
23544
|
-
title =
|
|
23671
|
+
title = _chunkEMF64FWAcjs.DEFAULT_VIDEO_BITES_TITLE,
|
|
23545
23672
|
filterPublished = true,
|
|
23546
23673
|
showTitle = true
|
|
23547
23674
|
}) {
|
|
23548
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23675
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
|
|
23549
23676
|
}
|
|
23550
23677
|
|
|
23551
23678
|
// src/components/features/walkthrough-video.tsx
|
|
@@ -23554,8 +23681,8 @@ function VideoBitesDisplay({
|
|
|
23554
23681
|
|
|
23555
23682
|
var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
|
|
23556
23683
|
function theaterSeedFromLive(live, fallbackTime, fallbackMuted) {
|
|
23557
|
-
const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess',
|
|
23558
|
-
const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess',
|
|
23684
|
+
const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _478 => _478.getCurrentTime, 'call', _479 => _479()]), () => ( 0));
|
|
23685
|
+
const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _480 => _480.getDuration, 'call', _481 => _481()]), () => ( 0)), time);
|
|
23559
23686
|
return {
|
|
23560
23687
|
// At end -> start over, never rewind to an unrelated older anchor.
|
|
23561
23688
|
time: atEnd ? 0 : time > 0.5 ? time : fallbackTime,
|
|
@@ -23587,11 +23714,11 @@ function WalkthroughVideo({
|
|
|
23587
23714
|
const inline = placement === "inline";
|
|
23588
23715
|
const dismissEnabled = dismissal !== false;
|
|
23589
23716
|
const storageKey = dismissEnabled && dismissal.storageKey || WALKTHROUGH_VIDEO_DISMISS_KEY;
|
|
23590
|
-
const dismissalId = _optionalChain([video, 'optionalAccess',
|
|
23717
|
+
const dismissalId = _optionalChain([video, 'optionalAccess', _482 => _482.id]) != null ? String(video.id) : "dismissed";
|
|
23591
23718
|
const [mounted, setMounted] = _react.useState.call(void 0, false);
|
|
23592
23719
|
const [dismissed, setDismissed] = _react.useState.call(void 0, false);
|
|
23593
23720
|
const hasVideo = video != null;
|
|
23594
|
-
const videoId = _optionalChain([video, 'optionalAccess',
|
|
23721
|
+
const videoId = _optionalChain([video, 'optionalAccess', _483 => _483.id]);
|
|
23595
23722
|
_react.useEffect.call(void 0, () => {
|
|
23596
23723
|
let idleHandle = null;
|
|
23597
23724
|
if (!hasVideo) return void 0;
|
|
@@ -23614,13 +23741,13 @@ function WalkthroughVideo({
|
|
|
23614
23741
|
if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
|
|
23615
23742
|
};
|
|
23616
23743
|
}, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId]);
|
|
23617
|
-
const hydrated =
|
|
23744
|
+
const hydrated = _chunkG45RGWHFcjs.useIsHydrated.call(void 0, );
|
|
23618
23745
|
const previewSuppressed = _react.useMemo.call(void 0, () => {
|
|
23619
23746
|
if (!hydrated) return false;
|
|
23620
23747
|
try {
|
|
23621
|
-
const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access',
|
|
23748
|
+
const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _484 => _484.matchMedia, 'optionalCall', _485 => _485("(prefers-reduced-motion: reduce)"), 'access', _486 => _486.matches]), () => ( false));
|
|
23622
23749
|
const conn = navigator.connection;
|
|
23623
|
-
const saveData = _optionalChain([conn, 'optionalAccess',
|
|
23750
|
+
const saveData = _optionalChain([conn, 'optionalAccess', _487 => _487.saveData]) === true || _optionalChain([conn, 'optionalAccess', _488 => _488.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _489 => _489.effectiveType]) === "slow-2g";
|
|
23624
23751
|
return Boolean(reducedMotion || saveData);
|
|
23625
23752
|
} catch (e27) {
|
|
23626
23753
|
return false;
|
|
@@ -23653,18 +23780,18 @@ function WalkthroughVideo({
|
|
|
23653
23780
|
const [cardMuted, setCardMuted] = _react.useState.call(void 0, false);
|
|
23654
23781
|
const [cardPaused, setCardPaused] = _react.useState.call(void 0, false);
|
|
23655
23782
|
const [userMuted, setUserMuted] = _react.useState.call(void 0, false);
|
|
23656
|
-
const isYouTube = Boolean(_optionalChain([video, 'optionalAccess',
|
|
23783
|
+
const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _490 => _490.youtubeUrl]));
|
|
23657
23784
|
const resumeMode = !open && handoff !== null && !isYouTube;
|
|
23658
23785
|
const previewAllowed = !previewSuppressed && !isYouTube;
|
|
23659
23786
|
const footerFadeKey = `${mounted ? 1 : 0}|${inline ? 1 : 0}|${hideNearSelector}|${pathname}`;
|
|
23660
|
-
const footerHidden = _optionalChain([footerObservation, 'optionalAccess',
|
|
23787
|
+
const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _491 => _491.key]) === footerFadeKey && footerObservation.hidden;
|
|
23661
23788
|
_react.useEffect.call(void 0, () => {
|
|
23662
23789
|
if (!mounted) return void 0;
|
|
23663
23790
|
if (inline) return void 0;
|
|
23664
23791
|
const el = typeof document !== "undefined" ? document.querySelector(hideNearSelector) : null;
|
|
23665
23792
|
if (!el || typeof IntersectionObserver === "undefined") return void 0;
|
|
23666
23793
|
const io = new IntersectionObserver(
|
|
23667
|
-
(entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access',
|
|
23794
|
+
(entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _492 => _492[0], 'optionalAccess', _493 => _493.isIntersecting]), () => ( false)) }),
|
|
23668
23795
|
{ rootMargin: "0px 0px -40px 0px" }
|
|
23669
23796
|
);
|
|
23670
23797
|
io.observe(el);
|
|
@@ -23690,7 +23817,7 @@ function WalkthroughVideo({
|
|
|
23690
23817
|
if (!footerHidden) return;
|
|
23691
23818
|
const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
23692
23819
|
try {
|
|
23693
|
-
_optionalChain([h, 'optionalAccess',
|
|
23820
|
+
_optionalChain([h, 'optionalAccess', _494 => _494.pause, 'call', _495 => _495()]);
|
|
23694
23821
|
} catch (e29) {
|
|
23695
23822
|
}
|
|
23696
23823
|
}, [footerHidden, resumeMode, hovered]);
|
|
@@ -23709,30 +23836,30 @@ function WalkthroughVideo({
|
|
|
23709
23836
|
}, 400);
|
|
23710
23837
|
}
|
|
23711
23838
|
if (openProp === void 0) setOpenState(next);
|
|
23712
|
-
_optionalChain([onOpenChange, 'optionalCall',
|
|
23839
|
+
_optionalChain([onOpenChange, 'optionalCall', _496 => _496(next)]);
|
|
23713
23840
|
},
|
|
23714
23841
|
[openProp, onOpenChange]
|
|
23715
23842
|
);
|
|
23716
23843
|
const pausePreviewNow = _react.useCallback.call(void 0, () => {
|
|
23717
23844
|
const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
23718
23845
|
try {
|
|
23719
|
-
_optionalChain([h, 'optionalAccess',
|
|
23846
|
+
_optionalChain([h, 'optionalAccess', _497 => _497.pause, 'call', _498 => _498()]);
|
|
23720
23847
|
} catch (e30) {
|
|
23721
23848
|
}
|
|
23722
23849
|
setCardPaused(true);
|
|
23723
23850
|
}, [setCardPaused]);
|
|
23724
23851
|
const openTheater = _react.useCallback.call(void 0, () => {
|
|
23725
23852
|
const handleBeforePause = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
|
|
23726
|
-
const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess',
|
|
23853
|
+
const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _499 => _499.getPaused, 'call', _500 => _500()]) === false;
|
|
23727
23854
|
pausePreviewNow();
|
|
23728
23855
|
const liveHandle = _nullishCoalesce(resumeHandleRef.current, () => ( (cardModeRef.current === "preview" ? previewHandleRef.current : null)));
|
|
23729
|
-
const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess',
|
|
23730
|
-
const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess',
|
|
23856
|
+
const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _501 => _501.getCurrentTime, 'call', _502 => _502()]), () => ( 0));
|
|
23857
|
+
const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _503 => _503.getDuration, 'call', _504 => _504()]), () => ( 0));
|
|
23731
23858
|
const liveAtEnd = isAtEnd(liveDuration, liveTime);
|
|
23732
23859
|
const start = {
|
|
23733
23860
|
// At end -> start over. Falling back to `handoff.time` here would rewind
|
|
23734
23861
|
// to an unrelated older anchor (e.g. 3:20) instead of restarting.
|
|
23735
|
-
time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess',
|
|
23862
|
+
time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _505 => _505.time]), () => ( 0)),
|
|
23736
23863
|
// Live element wins over remembered intent (the theater's own chrome may
|
|
23737
23864
|
// have changed it) — EXCEPT when the element is muted only because
|
|
23738
23865
|
// autoplay policy forced it, which is not intent.
|
|
@@ -23760,7 +23887,7 @@ function WalkthroughVideo({
|
|
|
23760
23887
|
const selfDriven = selfDrivenFor === open;
|
|
23761
23888
|
if (openProp !== void 0 && !selfDriven) {
|
|
23762
23889
|
if (open) {
|
|
23763
|
-
setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess',
|
|
23890
|
+
setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _506 => _506.time]), () => ( 0)), userMuted));
|
|
23764
23891
|
setHovered(false);
|
|
23765
23892
|
setSuspended(false);
|
|
23766
23893
|
setHandoff(null);
|
|
@@ -23846,8 +23973,8 @@ function WalkthroughVideo({
|
|
|
23846
23973
|
});
|
|
23847
23974
|
_react.useEffect.call(void 0, () => {
|
|
23848
23975
|
if (resumeMode) {
|
|
23849
|
-
setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access',
|
|
23850
|
-
setCardPaused(_optionalChain([handoffRef, 'access',
|
|
23976
|
+
setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _507 => _507.current, 'optionalAccess', _508 => _508.muted]), () => ( false)));
|
|
23977
|
+
setCardPaused(_optionalChain([handoffRef, 'access', _509 => _509.current, 'optionalAccess', _510 => _510.playing]) === false);
|
|
23851
23978
|
}
|
|
23852
23979
|
}, [resumeMode]);
|
|
23853
23980
|
const [hoverSeeded, setHoverSeeded] = _react.useState.call(void 0, hovered);
|
|
@@ -23929,11 +24056,11 @@ function WalkthroughVideo({
|
|
|
23929
24056
|
},
|
|
23930
24057
|
[cardFallback.blocked, cardPaused, activeHandle, setCardPaused]
|
|
23931
24058
|
);
|
|
23932
|
-
const summaryTitle = _optionalChain([video, 'optionalAccess',
|
|
23933
|
-
const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess',
|
|
24059
|
+
const summaryTitle = _optionalChain([video, 'optionalAccess', _511 => _511.title]) || void 0;
|
|
24060
|
+
const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _512 => _512.presenterAvatarUrl]), () => ( null));
|
|
23934
24061
|
const embedUrlKey = _react.useMemo.call(void 0,
|
|
23935
|
-
() => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess',
|
|
23936
|
-
[_optionalChain([video, 'optionalAccess',
|
|
24062
|
+
() => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _513 => _513.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _514 => _514.youtubeUrl]), () => ( ""))}`,
|
|
24063
|
+
[_optionalChain([video, 'optionalAccess', _515 => _515.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _516 => _516.youtubeUrl])]
|
|
23937
24064
|
);
|
|
23938
24065
|
const cardActive = !open && previewAllowed && hovered && !resumeMode;
|
|
23939
24066
|
const cardMode = resumeMode ? "resume" : cardActive ? "preview" : "poster";
|
|
@@ -23992,7 +24119,7 @@ function WalkthroughVideo({
|
|
|
23992
24119
|
const el = e.target;
|
|
23993
24120
|
let keyboard = false;
|
|
23994
24121
|
try {
|
|
23995
|
-
keyboard = _nullishCoalesce(_optionalChain([el, 'access',
|
|
24122
|
+
keyboard = _nullishCoalesce(_optionalChain([el, 'access', _517 => _517.matches, 'optionalCall', _518 => _518(":focus-visible")]), () => ( false));
|
|
23996
24123
|
} catch (e35) {
|
|
23997
24124
|
keyboard = false;
|
|
23998
24125
|
}
|
|
@@ -24011,7 +24138,7 @@ function WalkthroughVideo({
|
|
|
24011
24138
|
},
|
|
24012
24139
|
children: [
|
|
24013
24140
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24014
|
-
|
|
24141
|
+
_chunkG45RGWHFcjs.VideoHoverPreviewSurface,
|
|
24015
24142
|
{
|
|
24016
24143
|
url: video.mainVideoUrl || "",
|
|
24017
24144
|
posterUrl: video.posterUrl,
|
|
@@ -24026,15 +24153,15 @@ function WalkthroughVideo({
|
|
|
24026
24153
|
previewHandleRef: cardMode === "resume" ? resumeHandleRef : previewHandleRef,
|
|
24027
24154
|
mutedIntent: userMuted,
|
|
24028
24155
|
continuation: cardMode === "resume",
|
|
24029
|
-
autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess',
|
|
24030
|
-
startTime: _optionalChain([resumeHandoff, 'optionalAccess',
|
|
24031
|
-
startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess',
|
|
24156
|
+
autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _519 => _519.playing]) !== false && !footerHidden,
|
|
24157
|
+
startTime: _optionalChain([resumeHandoff, 'optionalAccess', _520 => _520.time]),
|
|
24158
|
+
startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _521 => _521.muted]), () => ( false)),
|
|
24032
24159
|
onEnded: cardMode === "resume" ? () => setHandoff(null) : () => setCardPaused(true)
|
|
24033
24160
|
},
|
|
24034
24161
|
`card-${embedUrlKey}`
|
|
24035
24162
|
) }),
|
|
24036
24163
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24037
|
-
|
|
24164
|
+
_chunkG45RGWHFcjs.CardHitLayer,
|
|
24038
24165
|
{
|
|
24039
24166
|
label: video.title ? `${label}: ${video.title}` : label,
|
|
24040
24167
|
onPointerDown: pausePreviewNow,
|
|
@@ -24043,7 +24170,7 @@ function WalkthroughVideo({
|
|
|
24043
24170
|
}
|
|
24044
24171
|
),
|
|
24045
24172
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "pointer-events-none absolute bottom-[var(--spacing-system-xsf)] left-[var(--spacing-system-xsf)] z-20 flex max-w-[calc(100%-2*var(--spacing-system-xsf))] items-center gap-[var(--spacing-system-xsf)] rounded-full bg-ods-overlay py-[var(--spacing-system-xxs)] pl-[var(--spacing-system-xxs)] pr-[var(--spacing-system-sf)] text-ods-text-primary text-h6", children: [
|
|
24046
|
-
presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24173
|
+
presenterAvatarSrc ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.SquareAvatar, { src: presenterAvatarSrc, alt: "", sizePx: 20, variant: "round", className: "shrink-0 border-0" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.VideoPlayBadge, { size: "sm", className: "h-5 w-5 shrink-0" }),
|
|
24047
24174
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", children: summaryTitle || label })
|
|
24048
24175
|
] }),
|
|
24049
24176
|
showBigUnmute && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -24056,7 +24183,7 @@ function WalkthroughVideo({
|
|
|
24056
24183
|
onPointerDown: (e) => e.stopPropagation(),
|
|
24057
24184
|
onClick: onUnmuteOrPlay,
|
|
24058
24185
|
className: "absolute inset-0 z-30 m-auto hidden sm:inline-flex",
|
|
24059
|
-
children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24186
|
+
children: controlIsPlay ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.VideoPlayBadge, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.VideoUnmuteGlyph, {})
|
|
24060
24187
|
}
|
|
24061
24188
|
),
|
|
24062
24189
|
showPlaybackControls && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "absolute left-[var(--spacing-system-xsf)] top-[var(--spacing-system-xsf)] z-30 flex items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
@@ -24125,7 +24252,7 @@ function WalkthroughVideo({
|
|
|
24125
24252
|
{
|
|
24126
24253
|
onOpenAutoFocus: (e) => {
|
|
24127
24254
|
e.preventDefault();
|
|
24128
|
-
_optionalChain([closeButtonRef, 'access',
|
|
24255
|
+
_optionalChain([closeButtonRef, 'access', _522 => _522.current, 'optionalAccess', _523 => _523.focus, 'call', _524 => _524()]);
|
|
24129
24256
|
},
|
|
24130
24257
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
24131
24258
|
// PURE theater: just the video, centered on a dimmed backdrop.
|
|
@@ -24149,7 +24276,7 @@ function WalkthroughVideo({
|
|
|
24149
24276
|
children: [
|
|
24150
24277
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive2.Title, { className: "sr-only", children: summaryTitle || "Walkthrough video" }),
|
|
24151
24278
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24152
|
-
|
|
24279
|
+
_chunkG45RGWHFcjs.Video,
|
|
24153
24280
|
{
|
|
24154
24281
|
kind: video.youtubeUrl ? "youtube" : "file",
|
|
24155
24282
|
url: video.youtubeUrl || video.mainVideoUrl,
|
|
@@ -24200,7 +24327,7 @@ function InlineWalkthroughVideo(props) {
|
|
|
24200
24327
|
var _reactquery = require('@tanstack/react-query');
|
|
24201
24328
|
function useWalkthroughVideo(opts) {
|
|
24202
24329
|
const { endpoint, initialData, enabled = true, transformCaptionsUrl } = opts;
|
|
24203
|
-
const captions =
|
|
24330
|
+
const captions = _chunkG45RGWHFcjs.useCaptions.call(void 0, );
|
|
24204
24331
|
const query = _reactquery.useQuery.call(void 0, {
|
|
24205
24332
|
queryKey: ["walkthrough-video", endpoint],
|
|
24206
24333
|
enabled,
|
|
@@ -24219,14 +24346,14 @@ function useWalkthroughVideo(opts) {
|
|
|
24219
24346
|
if (res.status === 404) return null;
|
|
24220
24347
|
if (!res.ok) throw new Error(`Walkthrough video request failed (${res.status})`);
|
|
24221
24348
|
const body = await res.json();
|
|
24222
|
-
return _nullishCoalesce(_optionalChain([body, 'optionalAccess',
|
|
24349
|
+
return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _525 => _525.walkthroughVideo]), () => ( null));
|
|
24223
24350
|
},
|
|
24224
24351
|
// Per-observer transform — NEVER mutate the cached data. `select` also runs
|
|
24225
24352
|
// over `initialData`, so the SSR seed is rewritten too. Keeping the proxy
|
|
24226
24353
|
// rewrite here (not in queryFn) means a second consumer of the same
|
|
24227
24354
|
// endpoint can't inherit this observer's proxied captionsUrl from the cache.
|
|
24228
24355
|
select: (video) => {
|
|
24229
|
-
if (!_optionalChain([video, 'optionalAccess',
|
|
24356
|
+
if (!_optionalChain([video, 'optionalAccess', _526 => _526.captionsUrl])) return video;
|
|
24230
24357
|
if (transformCaptionsUrl && video.captionsUrl.startsWith("/")) {
|
|
24231
24358
|
return { ...video, captionsUrl: transformCaptionsUrl(video.captionsUrl) };
|
|
24232
24359
|
}
|
|
@@ -24273,7 +24400,7 @@ function VideoSourceSelector({
|
|
|
24273
24400
|
input.accept = "video/*";
|
|
24274
24401
|
input.onchange = async (e) => {
|
|
24275
24402
|
const target = e.target;
|
|
24276
|
-
const file = _optionalChain([target, 'access',
|
|
24403
|
+
const file = _optionalChain([target, 'access', _527 => _527.files, 'optionalAccess', _528 => _528[0]]);
|
|
24277
24404
|
if (!file) return;
|
|
24278
24405
|
setIsUploading(true);
|
|
24279
24406
|
setUploadProgress(0);
|
|
@@ -24398,7 +24525,7 @@ function VideoSourceSelector({
|
|
|
24398
24525
|
}
|
|
24399
24526
|
function DefaultVideoPreview({ videoUrl, onDelete, disabled }) {
|
|
24400
24527
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border", children: [
|
|
24401
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24528
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "file", url: videoUrl }) }),
|
|
24402
24529
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24403
24530
|
"button",
|
|
24404
24531
|
{
|
|
@@ -24449,7 +24576,7 @@ function SubtitlesEditor({
|
|
|
24449
24576
|
{
|
|
24450
24577
|
id,
|
|
24451
24578
|
value: subtitles || "",
|
|
24452
|
-
onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall',
|
|
24579
|
+
onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _529 => _529(e.target.value)]),
|
|
24453
24580
|
placeholder,
|
|
24454
24581
|
disabled: disabled || !onSubtitlesChange,
|
|
24455
24582
|
className: "h-full w-full resize-none border-0 bg-transparent p-4 text-ods-text-primary text-code placeholder:text-ods-text-secondary/50 focus:outline-none focus:ring-0",
|
|
@@ -24678,7 +24805,7 @@ var AIEnrichSection = ({
|
|
|
24678
24805
|
}) => {
|
|
24679
24806
|
const hasResults = status === "success" || status === "error";
|
|
24680
24807
|
const shouldDisable = disabled || !canEnrich;
|
|
24681
|
-
const unfilledFields = _optionalChain([requiredFields, 'optionalAccess',
|
|
24808
|
+
const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _530 => _530.filter, 'call', _531 => _531((f) => !f.isFilled)]) || [];
|
|
24682
24809
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24683
24810
|
"div",
|
|
24684
24811
|
{
|
|
@@ -24710,7 +24837,7 @@ var AIEnrichSection = ({
|
|
|
24710
24837
|
{
|
|
24711
24838
|
id: "ai-enrich-custom-instructions",
|
|
24712
24839
|
value: _nullishCoalesce(customInstructions, () => ( "")),
|
|
24713
|
-
onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall',
|
|
24840
|
+
onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _532 => _532(e.target.value)]),
|
|
24714
24841
|
placeholder: customInstructionsPlaceholder,
|
|
24715
24842
|
disabled: loading,
|
|
24716
24843
|
maxLength: customInstructionsMaxLength,
|
|
@@ -24832,7 +24959,7 @@ function HighlightVideoSection({
|
|
|
24832
24959
|
input.accept = "video/*";
|
|
24833
24960
|
input.onchange = async (e) => {
|
|
24834
24961
|
const target = e.target;
|
|
24835
|
-
const file = _optionalChain([target, 'access',
|
|
24962
|
+
const file = _optionalChain([target, 'access', _533 => _533.files, 'optionalAccess', _534 => _534[0]]);
|
|
24836
24963
|
if (!file) return;
|
|
24837
24964
|
setUploadError(null);
|
|
24838
24965
|
try {
|
|
@@ -24922,7 +25049,7 @@ function HighlightVideoSection({
|
|
|
24922
25049
|
// Default simple preview — the <Video> SSOT (MuxPlayer) plays
|
|
24923
25050
|
// MP4 and Mux HLS alike; aspect-video box reserves the height.
|
|
24924
25051
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative overflow-hidden rounded-lg border border-ods-border bg-black", children: [
|
|
24925
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25052
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "aspect-video max-h-[300px] w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Video, { kind: "file", url: highlightVideoUrl, poster: highlightVideoThumbnail || void 0 }) }),
|
|
24926
25053
|
onDeleteHighlight && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24927
25054
|
"button",
|
|
24928
25055
|
{
|
|
@@ -25259,7 +25386,7 @@ function HighlightVideoPreview({
|
|
|
25259
25386
|
input.accept = "video/*";
|
|
25260
25387
|
input.onchange = async (e) => {
|
|
25261
25388
|
const target = e.target;
|
|
25262
|
-
const file = _optionalChain([target, 'access',
|
|
25389
|
+
const file = _optionalChain([target, 'access', _535 => _535.files, 'optionalAccess', _536 => _536[0]]);
|
|
25263
25390
|
if (!file) return;
|
|
25264
25391
|
await onUpload(file);
|
|
25265
25392
|
};
|
|
@@ -25443,7 +25570,7 @@ function HighlightVideoCombinedSection({
|
|
|
25443
25570
|
input.accept = "video/*";
|
|
25444
25571
|
input.onchange = async (e) => {
|
|
25445
25572
|
const target = e.target;
|
|
25446
|
-
const file = _optionalChain([target, 'access',
|
|
25573
|
+
const file = _optionalChain([target, 'access', _537 => _537.files, 'optionalAccess', _538 => _538[0]]);
|
|
25447
25574
|
if (!file) return;
|
|
25448
25575
|
await onUpload(file);
|
|
25449
25576
|
};
|
|
@@ -25658,7 +25785,7 @@ var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
|
|
|
25658
25785
|
] });
|
|
25659
25786
|
};
|
|
25660
25787
|
var CategorySection = ({ category, editMode, isExpanded, bulkLevel, onToggle, onBulkLevelChange, onPolicyPermissionChange }) => {
|
|
25661
|
-
const { innerRef, containerStyle } =
|
|
25788
|
+
const { innerRef, containerStyle } = _chunkG45RGWHFcjs.useCollapsible.call(void 0, { expanded: isExpanded, durationMs: 300 });
|
|
25662
25789
|
const handleBulkChange = (level) => onBulkLevelChange(category.id, level);
|
|
25663
25790
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
25664
25791
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -25826,7 +25953,7 @@ function WaitlistForm({
|
|
|
25826
25953
|
const { toast } = _chunkLEISUAHFcjs.useToast.call(void 0, );
|
|
25827
25954
|
const { honeypotInputProps, getSignals, resetSignals } = _chunkLEISUAHFcjs.useHumanitySignals.call(void 0, );
|
|
25828
25955
|
const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
|
|
25829
|
-
const isClient =
|
|
25956
|
+
const isClient = _chunkG45RGWHFcjs.useIsHydrated.call(void 0, );
|
|
25830
25957
|
const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
|
|
25831
25958
|
const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
|
|
25832
25959
|
const isMailDomainGeneric = hasGenericEmailDomain(email);
|
|
@@ -26142,19 +26269,19 @@ function NotificationsProvider({
|
|
|
26142
26269
|
}, []);
|
|
26143
26270
|
const markRead = _react.useCallback.call(void 0, (id) => {
|
|
26144
26271
|
dispatch({ type: "markRead", id });
|
|
26145
|
-
void _optionalChain([actionsRef, 'access',
|
|
26272
|
+
void _optionalChain([actionsRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.onMarkRead, 'optionalCall', _541 => _541(id)]);
|
|
26146
26273
|
}, []);
|
|
26147
26274
|
const markAllRead = _react.useCallback.call(void 0, () => {
|
|
26148
26275
|
dispatch({ type: "markAllRead" });
|
|
26149
|
-
void _optionalChain([actionsRef, 'access',
|
|
26276
|
+
void _optionalChain([actionsRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.onMarkAllRead, 'optionalCall', _544 => _544()]);
|
|
26150
26277
|
}, []);
|
|
26151
26278
|
const markSettled = _react.useCallback.call(void 0, (id) => {
|
|
26152
26279
|
dispatch({ type: "markSettled", id });
|
|
26153
|
-
void _optionalChain([actionsRef, 'access',
|
|
26280
|
+
void _optionalChain([actionsRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.onMarkSettled, 'optionalCall', _547 => _547(id)]);
|
|
26154
26281
|
}, []);
|
|
26155
26282
|
const remove = _react.useCallback.call(void 0, (id) => {
|
|
26156
26283
|
dispatch({ type: "remove", id });
|
|
26157
|
-
void _optionalChain([actionsRef, 'access',
|
|
26284
|
+
void _optionalChain([actionsRef, 'access', _548 => _548.current, 'optionalAccess', _549 => _549.onRemove, 'optionalCall', _550 => _550(id)]);
|
|
26158
26285
|
}, []);
|
|
26159
26286
|
const clear = _react.useCallback.call(void 0, () => dispatch({ type: "clear" }), []);
|
|
26160
26287
|
const open = _react.useCallback.call(void 0, () => setIsOpen(true), []);
|
|
@@ -26163,14 +26290,14 @@ function NotificationsProvider({
|
|
|
26163
26290
|
const setShowPopups = _react.useCallback.call(void 0,
|
|
26164
26291
|
(value2) => {
|
|
26165
26292
|
setShowPopupsState(value2);
|
|
26166
|
-
_optionalChain([onShowPopupsChange, 'optionalCall',
|
|
26293
|
+
_optionalChain([onShowPopupsChange, 'optionalCall', _551 => _551(value2)]);
|
|
26167
26294
|
},
|
|
26168
26295
|
[onShowPopupsChange]
|
|
26169
26296
|
);
|
|
26170
26297
|
const setShowDesktopPopups = _react.useCallback.call(void 0,
|
|
26171
26298
|
(value2) => {
|
|
26172
26299
|
setShowDesktopPopupsState(value2);
|
|
26173
|
-
_optionalChain([onShowDesktopPopupsChange, 'optionalCall',
|
|
26300
|
+
_optionalChain([onShowDesktopPopupsChange, 'optionalCall', _552 => _552(value2)]);
|
|
26174
26301
|
},
|
|
26175
26302
|
[onShowDesktopPopupsChange]
|
|
26176
26303
|
);
|
|
@@ -26286,7 +26413,7 @@ var AppLayoutDrawerRoot = ({
|
|
|
26286
26413
|
const handleOpenChange = _react.useCallback.call(void 0,
|
|
26287
26414
|
(next) => {
|
|
26288
26415
|
if (!isControlled) setInternalOpen(next);
|
|
26289
|
-
_optionalChain([onOpenChange, 'optionalCall',
|
|
26416
|
+
_optionalChain([onOpenChange, 'optionalCall', _553 => _553(next)]);
|
|
26290
26417
|
},
|
|
26291
26418
|
[isControlled, onOpenChange]
|
|
26292
26419
|
);
|
|
@@ -26303,9 +26430,9 @@ var AppLayoutDrawerRoot = ({
|
|
|
26303
26430
|
}
|
|
26304
26431
|
}));
|
|
26305
26432
|
_react.useEffect.call(void 0, () => {
|
|
26306
|
-
if (open) _optionalChain([coordination, 'optionalAccess',
|
|
26433
|
+
if (open) _optionalChain([coordination, 'optionalAccess', _554 => _554.notifyDrawerDidOpen, 'call', _555 => _555(selfHandle)]);
|
|
26307
26434
|
}, [open, coordination, selfHandle]);
|
|
26308
|
-
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess',
|
|
26435
|
+
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _556 => _556.registerDrawer, 'call', _557 => _557(selfHandle)]), [coordination, selfHandle]);
|
|
26309
26436
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DrawerOpenContext.Provider, { value: open, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive3.Root, { ...rest, open, onOpenChange: handleOpenChange, modal, children }) });
|
|
26310
26437
|
};
|
|
26311
26438
|
AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
|
|
@@ -26630,7 +26757,7 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
26630
26757
|
"data-state": open ? "open" : "closed",
|
|
26631
26758
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
26632
26759
|
"absolute inset-0 z-[102] outline-none data-[state=closed]:pointer-events-none data-[state=open]:pointer-events-auto data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
26633
|
-
|
|
26760
|
+
_chunkG45RGWHFcjs.OVERLAY_BACKDROP_CLASS,
|
|
26634
26761
|
// Persist mode only: hold the fade-out's final (transparent) frame
|
|
26635
26762
|
// so the backdrop doesn't snap back to opacity 1 and dim the whole
|
|
26636
26763
|
// content area while the drawer is "closed" (see PERSIST_CLOSED_HOLD).
|
|
@@ -26658,10 +26785,10 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
26658
26785
|
),
|
|
26659
26786
|
style,
|
|
26660
26787
|
onInteractOutside: (event) => {
|
|
26661
|
-
_optionalChain([onInteractOutside, 'optionalCall',
|
|
26788
|
+
_optionalChain([onInteractOutside, 'optionalCall', _558 => _558(event)]);
|
|
26662
26789
|
if (event.defaultPrevented) return;
|
|
26663
26790
|
const target = event.target;
|
|
26664
|
-
const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess',
|
|
26791
|
+
const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _559 => _559.contains, 'call', _560 => _560(target)]);
|
|
26665
26792
|
if (!isInsideContainer) {
|
|
26666
26793
|
event.preventDefault();
|
|
26667
26794
|
return;
|
|
@@ -26706,11 +26833,11 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
|
|
|
26706
26833
|
}
|
|
26707
26834
|
);
|
|
26708
26835
|
AppLayoutDrawerContent.displayName = "AppLayoutDrawerContent";
|
|
26709
|
-
var AppLayoutDrawerHeader =
|
|
26710
|
-
var AppLayoutDrawerTitle =
|
|
26711
|
-
var AppLayoutDrawerDescription =
|
|
26712
|
-
var AppLayoutDrawerBody =
|
|
26713
|
-
var AppLayoutDrawerFooter =
|
|
26836
|
+
var AppLayoutDrawerHeader = _chunkG45RGWHFcjs.DrawerHeader;
|
|
26837
|
+
var AppLayoutDrawerTitle = _chunkG45RGWHFcjs.DrawerTitle;
|
|
26838
|
+
var AppLayoutDrawerDescription = _chunkG45RGWHFcjs.DrawerDescription;
|
|
26839
|
+
var AppLayoutDrawerBody = _chunkG45RGWHFcjs.DrawerBody;
|
|
26840
|
+
var AppLayoutDrawerFooter = _chunkG45RGWHFcjs.DrawerFooter;
|
|
26714
26841
|
|
|
26715
26842
|
// src/components/features/notifications/notification-tile.tsx
|
|
26716
26843
|
|
|
@@ -26764,7 +26891,7 @@ function NotificationTile({
|
|
|
26764
26891
|
if (!counting) return void 0;
|
|
26765
26892
|
const remaining = Math.max(0, liveDurationMs - initialElapsed);
|
|
26766
26893
|
const timer = window.setTimeout(() => {
|
|
26767
|
-
_optionalChain([onSettle, 'optionalCall',
|
|
26894
|
+
_optionalChain([onSettle, 'optionalCall', _561 => _561(id)]);
|
|
26768
26895
|
}, remaining);
|
|
26769
26896
|
return () => window.clearTimeout(timer);
|
|
26770
26897
|
}, [id, counting, initialElapsed, liveDurationMs, onSettle]);
|
|
@@ -26798,13 +26925,13 @@ function NotificationTile({
|
|
|
26798
26925
|
}
|
|
26799
26926
|
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "size-1.5 rounded-full", _chunkLEISUAHFcjs.dotColorByVariant[accentVariant]) }))) }),
|
|
26800
26927
|
type ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "min-w-0 flex-1 truncate text-h5", typeColorByVariant[accentVariant]), title: type, children: type }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 flex-1" }),
|
|
26801
|
-
!isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children:
|
|
26928
|
+
!isLive && createdAtIso ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { dateTime: createdAtIso, className: "shrink-0 whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkG45RGWHFcjs.formatTicketRelativeTime.call(void 0, createdAtIso) }) : null,
|
|
26802
26929
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "relative size-4 shrink-0", children: [
|
|
26803
26930
|
{
|
|
26804
26931
|
active: isLive,
|
|
26805
26932
|
label: "Dismiss notification",
|
|
26806
26933
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.XmarkIcon, { size: 16 }),
|
|
26807
|
-
onClick: () => _optionalChain([onSettle, 'optionalCall',
|
|
26934
|
+
onClick: () => _optionalChain([onSettle, 'optionalCall', _562 => _562(id)])
|
|
26808
26935
|
},
|
|
26809
26936
|
{
|
|
26810
26937
|
active: !isLive,
|
|
@@ -26895,7 +27022,7 @@ function NotificationDrawer({
|
|
|
26895
27022
|
const unreadNotifications = notifications.filter((n) => !n.read);
|
|
26896
27023
|
const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
26897
27024
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-m)] pt-[var(--spacing-system-m)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26898
|
-
|
|
27025
|
+
_chunkG45RGWHFcjs.DrawerTitle,
|
|
26899
27026
|
{
|
|
26900
27027
|
hideClose: true,
|
|
26901
27028
|
className: "truncate",
|
|
@@ -26954,8 +27081,8 @@ function NotificationDrawer({
|
|
|
26954
27081
|
}
|
|
26955
27082
|
) });
|
|
26956
27083
|
}
|
|
26957
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26958
|
-
|
|
27084
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Drawer, { open: isOpen, onOpenChange: (v) => v ? open() : close(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27085
|
+
_chunkG45RGWHFcjs.DrawerContent,
|
|
26959
27086
|
{
|
|
26960
27087
|
side: "right",
|
|
26961
27088
|
"aria-describedby": void 0,
|
|
@@ -26992,7 +27119,7 @@ function DrawerScrollList({
|
|
|
26992
27119
|
if (!sentinel || !root) return void 0;
|
|
26993
27120
|
const observer = new IntersectionObserver(
|
|
26994
27121
|
(entries) => {
|
|
26995
|
-
if (_optionalChain([entries, 'access',
|
|
27122
|
+
if (_optionalChain([entries, 'access', _563 => _563[0], 'optionalAccess', _564 => _564.isIntersecting])) _optionalChain([loadMoreRef, 'access', _565 => _565.current, 'optionalCall', _566 => _566()]);
|
|
26996
27123
|
},
|
|
26997
27124
|
{ root, rootMargin: loadMoreRootMargin }
|
|
26998
27125
|
);
|
|
@@ -27007,7 +27134,7 @@ function DrawerScrollList({
|
|
|
27007
27134
|
className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
|
|
27008
27135
|
children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
27009
27136
|
unreadNotifications.map((n) => {
|
|
27010
|
-
const custom = _optionalChain([renderTile, 'optionalCall',
|
|
27137
|
+
const custom = _optionalChain([renderTile, 'optionalCall', _567 => _567(n, { onComplete, onSettle, liveDurationMs })]);
|
|
27011
27138
|
if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
|
|
27012
27139
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27013
27140
|
NotificationTile,
|
|
@@ -27127,7 +27254,7 @@ function NotificationPopups({
|
|
|
27127
27254
|
}) {
|
|
27128
27255
|
const ctx = useOptionalNotifications();
|
|
27129
27256
|
const [now, setNow] = _react.useState.call(void 0, () => Date.now());
|
|
27130
|
-
const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess',
|
|
27257
|
+
const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _568 => _568.notifications, 'access', _569 => _569.some, 'call', _570 => _570((n) => !n.read && !n.settled)]));
|
|
27131
27258
|
_react.useEffect.call(void 0, () => {
|
|
27132
27259
|
if (!hasAgeingNotifications) return void 0;
|
|
27133
27260
|
const id = setInterval(() => setNow(Date.now()), 500);
|
|
@@ -27170,7 +27297,7 @@ function NotificationPopups({
|
|
|
27170
27297
|
className
|
|
27171
27298
|
),
|
|
27172
27299
|
children: live.map((n) => {
|
|
27173
|
-
const custom = _optionalChain([renderTile, 'optionalCall',
|
|
27300
|
+
const custom = _optionalChain([renderTile, 'optionalCall', _571 => _571(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
|
|
27174
27301
|
if (custom) {
|
|
27175
27302
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
|
|
27176
27303
|
}
|
|
@@ -27209,34 +27336,34 @@ function NotificationPopups({
|
|
|
27209
27336
|
// src/components/features/notifications/types.ts
|
|
27210
27337
|
var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
|
|
27211
27338
|
function isApprovalNotification(notification) {
|
|
27212
|
-
return _optionalChain([notification, 'access',
|
|
27339
|
+
return _optionalChain([notification, 'access', _572 => _572.meta, 'optionalAccess', _573 => _573.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
|
|
27213
27340
|
}
|
|
27214
27341
|
function getApprovalMeta(notification) {
|
|
27215
27342
|
if (!isApprovalNotification(notification)) return null;
|
|
27216
27343
|
const meta = notification.meta;
|
|
27217
|
-
const approvalRequestId = _optionalChain([meta, 'optionalAccess',
|
|
27218
|
-
const toolCalls = _optionalChain([meta, 'optionalAccess',
|
|
27344
|
+
const approvalRequestId = _optionalChain([meta, 'optionalAccess', _574 => _574.approvalRequestId]);
|
|
27345
|
+
const toolCalls = _optionalChain([meta, 'optionalAccess', _575 => _575.toolCalls]);
|
|
27219
27346
|
if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
|
|
27220
27347
|
return {
|
|
27221
27348
|
approvalRequestId,
|
|
27222
|
-
dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27223
|
-
ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27224
|
-
approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27225
|
-
resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27226
|
-
resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
27349
|
+
dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _576 => _576.dialogId]), () => ( null)),
|
|
27350
|
+
ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _577 => _577.ticketId]), () => ( null)),
|
|
27351
|
+
approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _578 => _578.approvalType]), () => ( null)),
|
|
27352
|
+
resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.resolution]), () => ( null)),
|
|
27353
|
+
resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _580 => _580.resolvedByName]), () => ( null)),
|
|
27227
27354
|
toolCalls
|
|
27228
27355
|
};
|
|
27229
27356
|
}
|
|
27230
27357
|
function resolutionToStatus(resolution) {
|
|
27231
27358
|
switch (typeof resolution === "string" ? resolution.toUpperCase() : void 0) {
|
|
27232
27359
|
case "APPROVED":
|
|
27233
|
-
return
|
|
27360
|
+
return _chunkG45RGWHFcjs.APPROVAL_STATUS.APPROVED;
|
|
27234
27361
|
case "REJECTED":
|
|
27235
|
-
return
|
|
27362
|
+
return _chunkG45RGWHFcjs.APPROVAL_STATUS.REJECTED;
|
|
27236
27363
|
case "CANCELLED":
|
|
27237
|
-
return
|
|
27364
|
+
return _chunkG45RGWHFcjs.APPROVAL_STATUS.CANCELLED;
|
|
27238
27365
|
default:
|
|
27239
|
-
return
|
|
27366
|
+
return _chunkG45RGWHFcjs.APPROVAL_STATUS.PENDING;
|
|
27240
27367
|
}
|
|
27241
27368
|
}
|
|
27242
27369
|
function approvalMetaToBatchData(approval) {
|
|
@@ -27273,10 +27400,10 @@ function ApprovalRequestNotificationTile({
|
|
|
27273
27400
|
const [processing, setProcessing] = _react.useState.call(void 0, false);
|
|
27274
27401
|
const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
|
|
27275
27402
|
const approval = getApprovalMeta(notification);
|
|
27276
|
-
const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess',
|
|
27403
|
+
const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _581 => _581.resolution]));
|
|
27277
27404
|
const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
|
|
27278
27405
|
const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
|
|
27279
|
-
const { innerRef, containerStyle } =
|
|
27406
|
+
const { innerRef, containerStyle } = _chunkG45RGWHFcjs.useCollapsible.call(void 0, { expanded });
|
|
27280
27407
|
if (!approval || !batchData) return null;
|
|
27281
27408
|
const tileNotification = {
|
|
27282
27409
|
...notification,
|
|
@@ -27329,7 +27456,7 @@ function ApprovalRequestNotificationTile({
|
|
|
27329
27456
|
}
|
|
27330
27457
|
)
|
|
27331
27458
|
] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
27332
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27459
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ApprovalStatusTag, { status }),
|
|
27333
27460
|
approval.resolvedByName ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "truncate text-ods-text-secondary text-h6", children: [
|
|
27334
27461
|
"by ",
|
|
27335
27462
|
approval.resolvedByName
|
|
@@ -27347,12 +27474,12 @@ function ApprovalRequestNotificationTile({
|
|
|
27347
27474
|
"aria-expanded": expanded,
|
|
27348
27475
|
"aria-label": toggleLabel,
|
|
27349
27476
|
className: "ml-auto w-6 shrink-0 px-0 md:w-8",
|
|
27350
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27477
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.ExpandChevron, { expanded })
|
|
27351
27478
|
}
|
|
27352
27479
|
)
|
|
27353
27480
|
] }),
|
|
27354
27481
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-t border-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27355
|
-
|
|
27482
|
+
_chunkG45RGWHFcjs.ApprovalBatchMessage,
|
|
27356
27483
|
{
|
|
27357
27484
|
data: batchData,
|
|
27358
27485
|
showExecutionStatus: false,
|
|
@@ -27420,7 +27547,7 @@ function renderCustomerOption(option, isSelected) {
|
|
|
27420
27547
|
const { label, imageUrl } = option;
|
|
27421
27548
|
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: [
|
|
27422
27549
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xs)]", children: [
|
|
27423
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27550
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEMF64FWAcjs.SquareAvatar, { src: imageUrl, alt: label, fallback: label, size: "sm", variant: "square" }),
|
|
27424
27551
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate", title: label, children: label })
|
|
27425
27552
|
] }),
|
|
27426
27553
|
isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.CheckIcon, { className: "text-ods-accent", size: 20 })
|
|
@@ -27504,7 +27631,7 @@ function TimeTrackerPanel({
|
|
|
27504
27631
|
}));
|
|
27505
27632
|
const selectedCustomer = customerAutocompleteOptions.find((o) => o.value === selectedCustomerId);
|
|
27506
27633
|
const customerStartAdornment = selectedCustomer ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27507
|
-
|
|
27634
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
27508
27635
|
{
|
|
27509
27636
|
src: selectedCustomer.imageUrl,
|
|
27510
27637
|
alt: selectedCustomer.label,
|
|
@@ -27595,7 +27722,7 @@ function TimeTrackerPanel({
|
|
|
27595
27722
|
error: showFieldError ? "Required if no notes added" : void 0,
|
|
27596
27723
|
disableClientFilter: !!onTicketSearch,
|
|
27597
27724
|
onInputChange: (value, reason) => {
|
|
27598
|
-
if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall',
|
|
27725
|
+
if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _582 => _582(value)]);
|
|
27599
27726
|
}
|
|
27600
27727
|
}
|
|
27601
27728
|
),
|
|
@@ -27610,7 +27737,7 @@ function TimeTrackerPanel({
|
|
|
27610
27737
|
disabled: customerLocked,
|
|
27611
27738
|
disableClientFilter: !!onCustomerSearch,
|
|
27612
27739
|
onInputChange: (value, reason) => {
|
|
27613
|
-
if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall',
|
|
27740
|
+
if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _583 => _583(value)]);
|
|
27614
27741
|
},
|
|
27615
27742
|
startAdornment: customerStartAdornment,
|
|
27616
27743
|
renderOption: renderCustomerOption
|
|
@@ -27683,7 +27810,7 @@ var STATUS_TAG_SKIN = "gap-[var(--spacing-system-xs)] font-mono font-medium uppe
|
|
|
27683
27810
|
function StatusTag({ status }) {
|
|
27684
27811
|
if (status === "tracking") {
|
|
27685
27812
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27686
|
-
|
|
27813
|
+
_chunkG45RGWHFcjs.Tag,
|
|
27687
27814
|
{
|
|
27688
27815
|
variant: "success",
|
|
27689
27816
|
className: STATUS_TAG_SKIN,
|
|
@@ -27693,9 +27820,9 @@ function StatusTag({ status }) {
|
|
|
27693
27820
|
);
|
|
27694
27821
|
}
|
|
27695
27822
|
if (status === "paused") {
|
|
27696
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27823
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: "warning", className: STATUS_TAG_SKIN, icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.PauseIcon, { className: "h-4 w-4" }), label: "Paused" });
|
|
27697
27824
|
}
|
|
27698
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
27825
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: "grey", className: STATUS_TAG_SKIN, label: "Ready to Track" });
|
|
27699
27826
|
}
|
|
27700
27827
|
function LastEntryRow({ entry, onClick }) {
|
|
27701
27828
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-m)] border-b border-ods-border bg-ods-bg px-[var(--spacing-system-m)] py-[var(--spacing-system-sf)] last:border-b-0", children: [
|
|
@@ -27712,7 +27839,7 @@ function LastEntryRow({ entry, onClick }) {
|
|
|
27712
27839
|
{
|
|
27713
27840
|
variant: "outline",
|
|
27714
27841
|
size: "icon",
|
|
27715
|
-
onClick: () => _optionalChain([onClick, 'optionalCall',
|
|
27842
|
+
onClick: () => _optionalChain([onClick, 'optionalCall', _584 => _584(entry)]),
|
|
27716
27843
|
disabled: !onClick,
|
|
27717
27844
|
"aria-label": `Open entry: ${entry.title}`,
|
|
27718
27845
|
className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
|
|
@@ -27796,28 +27923,28 @@ function HeaderButton({
|
|
|
27796
27923
|
function TimeTrackerHeaderButton({ className, disabled }) {
|
|
27797
27924
|
const ctx = useOptionalTimeTracker();
|
|
27798
27925
|
const elapsedLabel = useTrackerClock({
|
|
27799
|
-
status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
27800
|
-
runningSince: _optionalChain([ctx, 'optionalAccess',
|
|
27801
|
-
accumulatedMs: _optionalChain([ctx, 'optionalAccess',
|
|
27926
|
+
status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _585 => _585.status]), () => ( "ready")),
|
|
27927
|
+
runningSince: _optionalChain([ctx, 'optionalAccess', _586 => _586.runningSince]),
|
|
27928
|
+
accumulatedMs: _optionalChain([ctx, 'optionalAccess', _587 => _587.accumulatedMs])
|
|
27802
27929
|
});
|
|
27803
27930
|
const layoutContainer = useAppLayoutDrawerContainer();
|
|
27804
27931
|
const coordination = useAppLayoutDrawerCoordination();
|
|
27805
|
-
const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess',
|
|
27932
|
+
const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _588 => _588.isOpen]), () => ( false));
|
|
27806
27933
|
const isOpenRef = _react.useRef.call(void 0, isOpen);
|
|
27807
|
-
const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess',
|
|
27934
|
+
const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _589 => _589.close]));
|
|
27808
27935
|
_react.useEffect.call(void 0, () => {
|
|
27809
27936
|
isOpenRef.current = isOpen;
|
|
27810
|
-
closeRef.current = _optionalChain([ctx, 'optionalAccess',
|
|
27937
|
+
closeRef.current = _optionalChain([ctx, 'optionalAccess', _590 => _590.close]);
|
|
27811
27938
|
});
|
|
27812
27939
|
const [selfHandle] = _react.useState.call(void 0, () => ({
|
|
27813
27940
|
close: () => {
|
|
27814
|
-
if (isOpenRef.current) _optionalChain([closeRef, 'access',
|
|
27941
|
+
if (isOpenRef.current) _optionalChain([closeRef, 'access', _591 => _591.current, 'optionalCall', _592 => _592()]);
|
|
27815
27942
|
}
|
|
27816
27943
|
}));
|
|
27817
27944
|
_react.useEffect.call(void 0, () => {
|
|
27818
|
-
if (isOpen) _optionalChain([coordination, 'optionalAccess',
|
|
27945
|
+
if (isOpen) _optionalChain([coordination, 'optionalAccess', _593 => _593.notifyDrawerDidOpen, 'call', _594 => _594(selfHandle)]);
|
|
27819
27946
|
}, [isOpen, coordination, selfHandle]);
|
|
27820
|
-
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess',
|
|
27947
|
+
_react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _595 => _595.registerDrawer, 'call', _596 => _596(selfHandle)]), [coordination, selfHandle]);
|
|
27821
27948
|
if (!ctx) return null;
|
|
27822
27949
|
const { open, close, status } = ctx;
|
|
27823
27950
|
const isPaused = status === "paused";
|
|
@@ -27864,7 +27991,7 @@ function TimeTrackerHeaderButton({ className, disabled }) {
|
|
|
27864
27991
|
"data-state": isOpen ? "open" : "closed",
|
|
27865
27992
|
className: _chunkPRPZBXWZcjs.cn.call(void 0,
|
|
27866
27993
|
layoutContainer ? "absolute inset-0 z-[102]" : "fixed inset-0 z-[1299]",
|
|
27867
|
-
|
|
27994
|
+
_chunkG45RGWHFcjs.OVERLAY_BACKDROP_CLASS,
|
|
27868
27995
|
"data-[state=open]:animate-in data-[state=open]:fade-in-0",
|
|
27869
27996
|
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0"
|
|
27870
27997
|
)
|
|
@@ -27949,7 +28076,7 @@ function autoScrollAncestors(element) {
|
|
|
27949
28076
|
|
|
27950
28077
|
// src/components/features/board/aim.ts
|
|
27951
28078
|
var _closestedge = require('@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge');
|
|
27952
|
-
var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access',
|
|
28079
|
+
var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access', _597 => _597.find, 'call', _598 => _598((c) => c.id === columnId), 'optionalAccess', _599 => _599.tickets]), () => ( []))).filter((t) => t.id !== ticketId);
|
|
27953
28080
|
function laneOf(columns, ticketId) {
|
|
27954
28081
|
return _nullishCoalesce(columns.find((c) => c.tickets.some((t) => t.id === ticketId)), () => ( null));
|
|
27955
28082
|
}
|
|
@@ -27993,11 +28120,11 @@ function aimToChange(columns, ticketId, aim) {
|
|
|
27993
28120
|
const lane = laneOf(columns, ticketId);
|
|
27994
28121
|
if (!lane) return null;
|
|
27995
28122
|
const others = othersIn(columns, aim.columnId, ticketId);
|
|
27996
|
-
const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access',
|
|
27997
|
-
const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access',
|
|
28123
|
+
const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _600 => _600[aim.index - 1], 'optionalAccess', _601 => _601.id]), () => ( null));
|
|
28124
|
+
const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _602 => _602[aim.index], 'optionalAccess', _603 => _603.id]), () => ( null));
|
|
27998
28125
|
if (lane.id === aim.columnId) {
|
|
27999
28126
|
const currentIndex = lane.tickets.findIndex((t) => t.id === ticketId);
|
|
28000
|
-
if ((_nullishCoalesce(_optionalChain([lane, 'access',
|
|
28127
|
+
if ((_nullishCoalesce(_optionalChain([lane, 'access', _604 => _604.tickets, 'access', _605 => _605[currentIndex - 1], 'optionalAccess', _606 => _606.id]), () => ( null))) === afterTicketId) return null;
|
|
28001
28128
|
}
|
|
28002
28129
|
return { ticketId, fromColumnId: lane.id, toColumnId: aim.columnId, afterTicketId, beforeTicketId };
|
|
28003
28130
|
}
|
|
@@ -28018,7 +28145,7 @@ function BoardColumnHeader({
|
|
|
28018
28145
|
}) {
|
|
28019
28146
|
const count = _nullishCoalesce(column.total, () => ( column.tickets.length));
|
|
28020
28147
|
const tagStatus = _nullishCoalesce(column.statusKey, () => ( column.id));
|
|
28021
|
-
const useStatusVariant =
|
|
28148
|
+
const useStatusVariant = _chunkG45RGWHFcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
|
|
28022
28149
|
const actionClass = "h-8 w-8 p-0 md:h-8 md:w-8";
|
|
28023
28150
|
if (collapsed) {
|
|
28024
28151
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
@@ -28034,7 +28161,7 @@ function BoardColumnHeader({
|
|
|
28034
28161
|
}
|
|
28035
28162
|
),
|
|
28036
28163
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28037
|
-
|
|
28164
|
+
_chunkG45RGWHFcjs.TicketStatusTag,
|
|
28038
28165
|
{
|
|
28039
28166
|
status: tagStatus,
|
|
28040
28167
|
label: column.label,
|
|
@@ -28047,7 +28174,7 @@ function BoardColumnHeader({
|
|
|
28047
28174
|
}
|
|
28048
28175
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
28049
28176
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
28050
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28177
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
|
|
28051
28178
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h5", style: useStatusVariant ? void 0 : { color: column.color }, children: count })
|
|
28052
28179
|
] }),
|
|
28053
28180
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
@@ -28198,7 +28325,7 @@ function holdMoveDragEffect(element) {
|
|
|
28198
28325
|
|
|
28199
28326
|
function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
28200
28327
|
const [expanded, setExpanded] = _react.useState.call(void 0, false);
|
|
28201
|
-
const { innerRef, containerStyle } =
|
|
28328
|
+
const { innerRef, containerStyle } = _chunkG45RGWHFcjs.useCollapsible.call(void 0, { expanded });
|
|
28202
28329
|
const isAdmin = pendingApproval.approvalType === "ADMIN";
|
|
28203
28330
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
|
|
28204
28331
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -28227,7 +28354,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
|
|
|
28227
28354
|
}
|
|
28228
28355
|
),
|
|
28229
28356
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, className: "pt-[var(--spacing-system-xs)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28230
|
-
|
|
28357
|
+
_chunkG45RGWHFcjs.ApprovalBatchMessage,
|
|
28231
28358
|
{
|
|
28232
28359
|
className: "mb-0",
|
|
28233
28360
|
data: {
|
|
@@ -28268,14 +28395,14 @@ function useIsLanding(ticketId) {
|
|
|
28268
28395
|
return _react.useContext.call(void 0, LandingCardContext) === ticketId;
|
|
28269
28396
|
}
|
|
28270
28397
|
function hasMoveSettled(columns, move) {
|
|
28271
|
-
const tickets = _optionalChain([columns, 'access',
|
|
28398
|
+
const tickets = _optionalChain([columns, 'access', _607 => _607.find, 'call', _608 => _608((c) => c.id === move.toColumnId), 'optionalAccess', _609 => _609.tickets]);
|
|
28272
28399
|
if (!tickets) return false;
|
|
28273
28400
|
const index = tickets.findIndex((t) => t.id === move.ticketId);
|
|
28274
28401
|
if (index < 0) return false;
|
|
28275
28402
|
if (move.fromColumnId === move.toColumnId) {
|
|
28276
|
-
return (_nullishCoalesce(_optionalChain([tickets, 'access',
|
|
28403
|
+
return (_nullishCoalesce(_optionalChain([tickets, 'access', _610 => _610[index - 1], 'optionalAccess', _611 => _611.id]), () => ( null))) === move.afterTicketId;
|
|
28277
28404
|
}
|
|
28278
|
-
return !_optionalChain([columns, 'access',
|
|
28405
|
+
return !_optionalChain([columns, 'access', _612 => _612.find, 'call', _613 => _613((c) => c.id === move.fromColumnId), 'optionalAccess', _614 => _614.tickets, 'access', _615 => _615.some, 'call', _616 => _616((t) => t.id === move.ticketId)]);
|
|
28279
28406
|
}
|
|
28280
28407
|
|
|
28281
28408
|
// src/components/features/board/ticket-card.tsx
|
|
@@ -28299,10 +28426,10 @@ var ACTIVITY_DEFAULT_LABEL = {
|
|
|
28299
28426
|
var TICKET_CARD_SHELL = "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left";
|
|
28300
28427
|
function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
|
|
28301
28428
|
const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
|
|
28302
|
-
const newMessageTextColor = columnColor ?
|
|
28303
|
-
const showDeviceRow = !!(_optionalChain([ticket, 'access',
|
|
28304
|
-
const deviceText = [_optionalChain([ticket, 'access',
|
|
28305
|
-
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access',
|
|
28429
|
+
const newMessageTextColor = columnColor ? _chunkG45RGWHFcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
|
|
28430
|
+
const showDeviceRow = !!(_optionalChain([ticket, 'access', _617 => _617.deviceHostnames, 'optionalAccess', _618 => _618.length]) || ticket.organizationName);
|
|
28431
|
+
const deviceText = [_optionalChain([ticket, 'access', _619 => _619.deviceHostnames, 'optionalAccess', _620 => _620.join, 'call', _621 => _621(", ")]), ticket.organizationName].filter(Boolean).join(", ");
|
|
28432
|
+
const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _622 => _622.assignees, 'optionalAccess', _623 => _623.length]) || renderAssignSlot);
|
|
28306
28433
|
const rightSection = hasRightSection ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
|
|
28307
28434
|
ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28308
28435
|
_chunkGSQM4PDRcjs.Flag02Icon,
|
|
@@ -28311,7 +28438,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28311
28438
|
"aria-label": `Priority: ${ticket.priority}`
|
|
28312
28439
|
}
|
|
28313
28440
|
),
|
|
28314
|
-
renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access',
|
|
28441
|
+
renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _624 => _624.assignees, 'optionalAccess', _625 => _625.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
|
|
28315
28442
|
ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map(
|
|
28316
28443
|
(a) => a.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28317
28444
|
DeletedUserAvatar,
|
|
@@ -28321,7 +28448,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28321
28448
|
},
|
|
28322
28449
|
a.id
|
|
28323
28450
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28324
|
-
|
|
28451
|
+
_chunkEMF64FWAcjs.SquareAvatar,
|
|
28325
28452
|
{
|
|
28326
28453
|
src: a.avatarUrl,
|
|
28327
28454
|
alt: _nullishCoalesce(_nullishCoalesce(a.name, () => ( a.initials)), () => ( a.id)),
|
|
@@ -28338,8 +28465,8 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28338
28465
|
] })
|
|
28339
28466
|
] }) : null
|
|
28340
28467
|
] }) : null;
|
|
28341
|
-
const timestampLabel = ticket.createdAt ?
|
|
28342
|
-
const tooltipLabel = ticket.createdAt ?
|
|
28468
|
+
const timestampLabel = ticket.createdAt ? _chunkG45RGWHFcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
|
|
28469
|
+
const tooltipLabel = ticket.createdAt ? _chunkG45RGWHFcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
|
|
28343
28470
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
28344
28471
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-sf)]", children: [
|
|
28345
28472
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-[var(--spacing-system-zero)]", title: ticket.title, children: [
|
|
@@ -28351,10 +28478,10 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28351
28478
|
] }),
|
|
28352
28479
|
rightSection
|
|
28353
28480
|
] }),
|
|
28354
|
-
_optionalChain([ticket, 'access',
|
|
28355
|
-
timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28356
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28357
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28481
|
+
_optionalChain([ticket, 'access', _626 => _626.tags, 'optionalAccess', _627 => _627.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
|
|
28482
|
+
timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { children: [
|
|
28483
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
|
|
28484
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { children: tooltipLabel })
|
|
28358
28485
|
] }) }),
|
|
28359
28486
|
ticket.escalatedByUser && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xxs)] text-ods-open-yellow text-h6", children: [
|
|
28360
28487
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.UserCheckIcon, { className: "size-4 shrink-0" }),
|
|
@@ -28374,7 +28501,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
|
|
|
28374
28501
|
}
|
|
28375
28502
|
),
|
|
28376
28503
|
showNewMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28377
|
-
|
|
28504
|
+
_chunkG45RGWHFcjs.Tag,
|
|
28378
28505
|
{
|
|
28379
28506
|
label: "New Message",
|
|
28380
28507
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.MessagesIcon, { size: 16, color: newMessageTextColor }),
|
|
@@ -28418,7 +28545,7 @@ var TicketCard = _react.memo.call(void 0, function TicketCardImpl({
|
|
|
28418
28545
|
const isLanding = useIsLanding(ticket.id);
|
|
28419
28546
|
const aim = useDropAim();
|
|
28420
28547
|
const closestEdge = aim && aim.columnId === columnId && aim.ticketId === ticket.id ? aim.edge : null;
|
|
28421
|
-
const isSource = isDragging || _optionalChain([aim, 'optionalAccess',
|
|
28548
|
+
const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _628 => _628.ticket, 'access', _629 => _629.id]) === ticket.id;
|
|
28422
28549
|
const lift = useBoardLift();
|
|
28423
28550
|
const handleKeyDown = (e) => {
|
|
28424
28551
|
if (e.key !== " " || dragDisabled || !lift) return;
|
|
@@ -28589,8 +28716,8 @@ function TicketTagRow({ tags }) {
|
|
|
28589
28716
|
const visible = tags.slice(0, MAX_VISIBLE_TAGS);
|
|
28590
28717
|
const hidden = tags.length - visible.length;
|
|
28591
28718
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 flex-wrap items-start gap-[var(--spacing-system-xxs)] overflow-clip", children: [
|
|
28592
|
-
visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28593
|
-
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
28719
|
+
visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: "outline", label: tag }, tag)),
|
|
28720
|
+
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.Tag, { variant: "outline", label: `+${hidden}` })
|
|
28594
28721
|
] });
|
|
28595
28722
|
}
|
|
28596
28723
|
|
|
@@ -28671,7 +28798,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
|
|
|
28671
28798
|
// large ones like the only thing that did.
|
|
28672
28799
|
getData: ({ input, element: lane, source }) => {
|
|
28673
28800
|
const nearest = nearestCardIn(lane, input.clientY, String(source.data.ticketId));
|
|
28674
|
-
const ticketId = _optionalChain([nearest, 'optionalAccess',
|
|
28801
|
+
const ticketId = _optionalChain([nearest, 'optionalAccess', _630 => _630.dataset, 'access', _631 => _631.ticketId]);
|
|
28675
28802
|
if (!nearest || !ticketId) return { type: "column", columnId: column.id };
|
|
28676
28803
|
return _closestedge.attachClosestEdge.call(void 0,
|
|
28677
28804
|
{ type: "ticket", ticketId, columnId: column.id },
|
|
@@ -28683,7 +28810,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
|
|
|
28683
28810
|
onDrop: () => setIsOver(false)
|
|
28684
28811
|
});
|
|
28685
28812
|
}, [column.id, column.dropDisabled, column.allowedFromColumns, collapsed, touchMode]);
|
|
28686
|
-
const handleToggleCollapse = _react.useCallback.call(void 0, () => _optionalChain([onToggleCollapse, 'optionalCall',
|
|
28813
|
+
const handleToggleCollapse = _react.useCallback.call(void 0, () => _optionalChain([onToggleCollapse, 'optionalCall', _632 => _632(column.id)]), [onToggleCollapse, column.id]);
|
|
28687
28814
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
28688
28815
|
"div",
|
|
28689
28816
|
{
|
|
@@ -28762,7 +28889,7 @@ function ColumnBody({
|
|
|
28762
28889
|
const observer = new IntersectionObserver(
|
|
28763
28890
|
(entries) => {
|
|
28764
28891
|
if (entries.some((e) => e.isIntersecting)) {
|
|
28765
|
-
_optionalChain([loadMoreRef, 'access',
|
|
28892
|
+
_optionalChain([loadMoreRef, 'access', _633 => _633.current, 'optionalCall', _634 => _634(columnIdRef.current)]);
|
|
28766
28893
|
}
|
|
28767
28894
|
},
|
|
28768
28895
|
{ root, rootMargin: loadMoreRootMargin }
|
|
@@ -28787,7 +28914,7 @@ function ColumnBody({
|
|
|
28787
28914
|
ticket: t,
|
|
28788
28915
|
columnId: column.id,
|
|
28789
28916
|
columnColor: column.color,
|
|
28790
|
-
href: _optionalChain([getTicketHref, 'optionalCall',
|
|
28917
|
+
href: _optionalChain([getTicketHref, 'optionalCall', _635 => _635(t.id)]),
|
|
28791
28918
|
renderAssignSlot,
|
|
28792
28919
|
onApprove,
|
|
28793
28920
|
onReject,
|
|
@@ -28963,7 +29090,7 @@ function DragBoard({
|
|
|
28963
29090
|
const [landing, setLanding] = _react.useState.call(void 0, null);
|
|
28964
29091
|
const landingTimer = _react.useRef.call(void 0, null);
|
|
28965
29092
|
const pointRef = _react.useRef.call(void 0, { x: 0, y: 0 });
|
|
28966
|
-
const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access',
|
|
29093
|
+
const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access', _636 => _636.find, 'call', _637 => _637((c) => c.id === columnId), 'optionalAccess', _638 => _638.label]), () => ( columnId)), [view]);
|
|
28967
29094
|
const acceptsLifted = _react.useCallback.call(void 0,
|
|
28968
29095
|
(fromColumnId) => (column) => {
|
|
28969
29096
|
if (column.dropDisabled || collapsed[column.id]) return false;
|
|
@@ -28977,7 +29104,7 @@ function DragBoard({
|
|
|
28977
29104
|
const start = initialAim(view, ticketId);
|
|
28978
29105
|
if (!start) return;
|
|
28979
29106
|
setLifted({ ticketId, aim: start });
|
|
28980
|
-
const title = _nullishCoalesce(_optionalChain([laneOf, 'call',
|
|
29107
|
+
const title = _nullishCoalesce(_optionalChain([laneOf, 'call', _639 => _639(view, ticketId), 'optionalAccess', _640 => _640.tickets, 'access', _641 => _641.find, 'call', _642 => _642((t) => t.id === ticketId), 'optionalAccess', _643 => _643.title]), () => ( "Ticket"));
|
|
28981
29108
|
setAnnouncement(`${title} lifted. Use the arrow keys to move it, space to drop it, escape to put it back.`);
|
|
28982
29109
|
},
|
|
28983
29110
|
[view]
|
|
@@ -29002,11 +29129,11 @@ function DragBoard({
|
|
|
29002
29129
|
const walk = _react.useCallback.call(void 0,
|
|
29003
29130
|
(key) => {
|
|
29004
29131
|
if (!lifted) return;
|
|
29005
|
-
const from = _nullishCoalesce(_optionalChain([laneOf, 'call',
|
|
29132
|
+
const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _644 => _644(view, lifted.ticketId), 'optionalAccess', _645 => _645.id]), () => ( lifted.aim.columnId));
|
|
29006
29133
|
const next = moveAim(view, lifted.ticketId, lifted.aim, key, acceptsLifted(from));
|
|
29007
29134
|
if (next === lifted.aim) return;
|
|
29008
29135
|
setLifted({ ...lifted, aim: next });
|
|
29009
|
-
const total = (_nullishCoalesce(_optionalChain([view, 'access',
|
|
29136
|
+
const total = (_nullishCoalesce(_optionalChain([view, 'access', _646 => _646.find, 'call', _647 => _647((c) => c.id === next.columnId), 'optionalAccess', _648 => _648.tickets]), () => ( []))).filter(
|
|
29010
29137
|
(t) => t.id !== lifted.ticketId
|
|
29011
29138
|
).length;
|
|
29012
29139
|
setAnnouncement(`${laneLabel(next.columnId)}, position ${next.index + 1} of ${total + 1}.`);
|
|
@@ -29033,11 +29160,11 @@ function DragBoard({
|
|
|
29033
29160
|
}, [lifted, drop, walk]);
|
|
29034
29161
|
_react.useEffect.call(void 0, () => {
|
|
29035
29162
|
if (!lifted) return;
|
|
29036
|
-
_optionalChain([boardRef, 'access',
|
|
29163
|
+
_optionalChain([boardRef, 'access', _649 => _649.current, 'optionalAccess', _650 => _650.querySelector, 'call', _651 => _651(`[${DROP_LINE_ATTRIBUTE}]`), 'optionalAccess', _652 => _652.scrollIntoView, 'call', _653 => _653({ block: "nearest", inline: "nearest" })]);
|
|
29037
29164
|
}, [lifted]);
|
|
29038
29165
|
const keyboardAim = _react.useMemo.call(void 0, () => {
|
|
29039
29166
|
if (!lifted) return null;
|
|
29040
|
-
const ticket = _optionalChain([laneOf, 'call',
|
|
29167
|
+
const ticket = _optionalChain([laneOf, 'call', _654 => _654(view, lifted.ticketId), 'optionalAccess', _655 => _655.tickets, 'access', _656 => _656.find, 'call', _657 => _657((t) => t.id === lifted.ticketId)]);
|
|
29041
29168
|
if (!ticket) return null;
|
|
29042
29169
|
const anchor = aimToChange(view, lifted.ticketId, lifted.aim) ? aimAnchor(view, lifted.ticketId, lifted.aim) : { ticketId: null, edge: null };
|
|
29043
29170
|
return { columnId: lifted.aim.columnId, ...anchor, ticket };
|
|
@@ -29059,7 +29186,7 @@ function DragBoard({
|
|
|
29059
29186
|
return { columnId: slot.columnId, ...anchor, ticket };
|
|
29060
29187
|
};
|
|
29061
29188
|
const aimAt = (source, targets) => {
|
|
29062
|
-
const next = readAim(source, _optionalChain([targets, 'access',
|
|
29189
|
+
const next = readAim(source, _optionalChain([targets, 'access', _658 => _658[0], 'optionalAccess', _659 => _659.data]));
|
|
29063
29190
|
setAim((prev) => isSameAim(prev, next) ? prev : next);
|
|
29064
29191
|
};
|
|
29065
29192
|
return _combine.combine.call(void 0,
|
|
@@ -29088,7 +29215,7 @@ function DragBoard({
|
|
|
29088
29215
|
setLanding(null);
|
|
29089
29216
|
dragGeometry.current = {
|
|
29090
29217
|
ticket,
|
|
29091
|
-
columnColor: _optionalChain([columnsRef, 'access',
|
|
29218
|
+
columnColor: _optionalChain([columnsRef, 'access', _660 => _660.current, 'access', _661 => _661.find, 'call', _662 => _662((c) => c.id === source.data.columnId), 'optionalAccess', _663 => _663.color]),
|
|
29092
29219
|
width: rect.width,
|
|
29093
29220
|
grabX: clientX - rect.left,
|
|
29094
29221
|
grabY: clientY - rect.top
|
|
@@ -29105,7 +29232,7 @@ function DragBoard({
|
|
|
29105
29232
|
setAim(null);
|
|
29106
29233
|
const change = resolveBoardDrop(columnsRef.current, {
|
|
29107
29234
|
source: source.data,
|
|
29108
|
-
target: _optionalChain([location, 'access',
|
|
29235
|
+
target: _optionalChain([location, 'access', _664 => _664.current, 'access', _665 => _665.dropTargets, 'access', _666 => _666[0], 'optionalAccess', _667 => _667.data])
|
|
29109
29236
|
});
|
|
29110
29237
|
if (!change) return;
|
|
29111
29238
|
setPendingMove({
|
|
@@ -29138,7 +29265,7 @@ function DragBoard({
|
|
|
29138
29265
|
return void 0;
|
|
29139
29266
|
}
|
|
29140
29267
|
const to = card.getBoundingClientRect();
|
|
29141
|
-
const lane = _optionalChain([nearestScrollableAncestor, 'call',
|
|
29268
|
+
const lane = _optionalChain([nearestScrollableAncestor, 'call', _668 => _668(card), 'optionalAccess', _669 => _669.getBoundingClientRect, 'call', _670 => _670()]);
|
|
29142
29269
|
if (lane && (to.top < lane.top || to.bottom > lane.bottom)) {
|
|
29143
29270
|
finish();
|
|
29144
29271
|
return void 0;
|
|
@@ -29197,8 +29324,8 @@ function DragBoard({
|
|
|
29197
29324
|
children: view.map((column, i) => {
|
|
29198
29325
|
const prev = view[i - 1];
|
|
29199
29326
|
const next = view[i + 1];
|
|
29200
|
-
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess',
|
|
29201
|
-
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess',
|
|
29327
|
+
const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _671 => _671.system]));
|
|
29328
|
+
const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _672 => _672.system]));
|
|
29202
29329
|
const showGap = i > 0 && !joinLeft;
|
|
29203
29330
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
|
|
29204
29331
|
showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
|
|
@@ -29378,13 +29505,13 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
29378
29505
|
const [flipTick, setFlipTick] = _react.useState.call(void 0, 0);
|
|
29379
29506
|
const flipTimer = _react.useRef.call(void 0, null);
|
|
29380
29507
|
const readItems = _react.useCallback.call(void 0,
|
|
29381
|
-
() => [..._nullishCoalesce(_optionalChain([listRef, 'access',
|
|
29508
|
+
() => [..._nullishCoalesce(_optionalChain([listRef, 'access', _673 => _673.current, 'optionalAccess', _674 => _674.querySelectorAll, 'call', _675 => _675(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
|
|
29382
29509
|
[]
|
|
29383
29510
|
);
|
|
29384
29511
|
const reorder = _react.useCallback.call(void 0,
|
|
29385
29512
|
(from, to) => {
|
|
29386
29513
|
if (from === to) return;
|
|
29387
|
-
const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access',
|
|
29514
|
+
const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _676 => _676.current, 'optionalCall', _677 => _677(from)]), () => ( "Item"));
|
|
29388
29515
|
setAnnouncement(`${label} moved to position ${to + 1} of ${readItems().length}.`);
|
|
29389
29516
|
onReorderRef.current(from, to);
|
|
29390
29517
|
},
|
|
@@ -29472,7 +29599,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
|
|
|
29472
29599
|
moving.push(item);
|
|
29473
29600
|
}
|
|
29474
29601
|
if (moving.length === 0) return;
|
|
29475
|
-
void _optionalChain([listRef, 'access',
|
|
29602
|
+
void _optionalChain([listRef, 'access', _678 => _678.current, 'optionalAccess', _679 => _679.offsetHeight]);
|
|
29476
29603
|
for (const item of moving) {
|
|
29477
29604
|
item.style.transition = `transform ${DROP_MS2}ms ${EASING}`;
|
|
29478
29605
|
item.style.transform = "";
|
|
@@ -29509,8 +29636,8 @@ function SortableMoveButtons({ index, count, label, className }) {
|
|
|
29509
29636
|
if (to < 0 || to >= count) return;
|
|
29510
29637
|
reorder(index, to);
|
|
29511
29638
|
requestAnimationFrame(() => {
|
|
29512
|
-
if (step === -1 && to === 0) _optionalChain([downRef, 'access',
|
|
29513
|
-
if (step === 1 && to === count - 1) _optionalChain([upRef, 'access',
|
|
29639
|
+
if (step === -1 && to === 0) _optionalChain([downRef, 'access', _680 => _680.current, 'optionalAccess', _681 => _681.focus, 'call', _682 => _682()]);
|
|
29640
|
+
if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _683 => _683.current, 'optionalAccess', _684 => _684.focus, 'call', _685 => _685()]);
|
|
29514
29641
|
});
|
|
29515
29642
|
};
|
|
29516
29643
|
const subject = _nullishCoalesce(label, () => ( "item"));
|
|
@@ -29558,7 +29685,7 @@ function useSortableItem() {
|
|
|
29558
29685
|
const [handle, setHandle] = _react.useState.call(void 0, null);
|
|
29559
29686
|
const [isDragging, setIsDragging] = _react.useState.call(void 0, false);
|
|
29560
29687
|
const itemRef = _react.useCallback.call(void 0, (node) => {
|
|
29561
|
-
_optionalChain([node, 'optionalAccess',
|
|
29688
|
+
_optionalChain([node, 'optionalAccess', _686 => _686.setAttribute, 'call', _687 => _687(SORTABLE_ITEM_ATTRIBUTE, "")]);
|
|
29562
29689
|
setItem(node);
|
|
29563
29690
|
}, []);
|
|
29564
29691
|
_react.useEffect.call(void 0, () => {
|
|
@@ -29588,7 +29715,7 @@ function useSortableItem() {
|
|
|
29588
29715
|
if (from < 0 || to < 0 || to >= items.length) return;
|
|
29589
29716
|
event.preventDefault();
|
|
29590
29717
|
reorder(from, to);
|
|
29591
|
-
requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess',
|
|
29718
|
+
requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _688 => _688.focus, 'call', _689 => _689()]));
|
|
29592
29719
|
},
|
|
29593
29720
|
[inert, readItems, reorder, handle]
|
|
29594
29721
|
);
|
|
@@ -29610,7 +29737,7 @@ function TicketStatusConfigList({
|
|
|
29610
29737
|
onReorder,
|
|
29611
29738
|
getItemLabel,
|
|
29612
29739
|
className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className),
|
|
29613
|
-
children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall',
|
|
29740
|
+
children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _690 => _690(index)]), children: (args) => renderRow(item, args) }, item.id))
|
|
29614
29741
|
}
|
|
29615
29742
|
);
|
|
29616
29743
|
}
|
|
@@ -30246,5 +30373,8 @@ function SortableRow({
|
|
|
30246
30373
|
|
|
30247
30374
|
|
|
30248
30375
|
|
|
30249
|
-
exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.HiddenTagsPopup = HiddenTagsPopup; exports.TruncateText = TruncateText; exports.Autocomplete = Autocomplete; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.FullscreenSwitchController = FullscreenSwitchController; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.StatusIndicator = StatusIndicator; exports.BackButton = BackButton; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TitleContentBlock = TitleContentBlock; exports.TouchFriendlyTooltip = TouchFriendlyTooltip; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.COMPACT_ROW_MIN_HEIGHT_PX = COMPACT_ROW_MIN_HEIGHT_PX; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.DataTableEmpty = DataTableEmpty; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow;
|
|
30250
|
-
|
|
30376
|
+
|
|
30377
|
+
|
|
30378
|
+
|
|
30379
|
+
exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.HiddenTagsPopup = HiddenTagsPopup; exports.TruncateText = TruncateText; exports.Autocomplete = Autocomplete; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.FullscreenSwitchController = FullscreenSwitchController; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.StatusIndicator = StatusIndicator; exports.BackButton = BackButton; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TitleContentBlock = TitleContentBlock; exports.TouchFriendlyTooltip = TouchFriendlyTooltip; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.PasswordInput = PasswordInput; exports.AccountDetailsFields = AccountDetailsFields; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.LabeledDivider = LabeledDivider; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.COMPACT_ROW_MIN_HEIGHT_PX = COMPACT_ROW_MIN_HEIGHT_PX; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.DataTableEmpty = DataTableEmpty; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow; exports.LazyMount = LazyMount;
|
|
30380
|
+
//# sourceMappingURL=chunk-A6ETQEWK.cjs.map
|