@flamingo-stack/openframe-frontend-core 0.0.749 → 0.0.751
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-45YRDD7W.cjs → chunk-4WNBVNGP.cjs} +13 -13
- package/dist/{chunk-SOPVUD2Y.cjs → chunk-53I4YHRT.cjs} +3 -3
- package/dist/{chunk-HOEVD6EN.cjs → chunk-5P7WBA2U.cjs} +4 -4
- package/dist/{chunk-KRAQEZPB.cjs → chunk-5WC535NJ.cjs} +17 -17
- package/dist/{chunk-SGL47BS2.cjs → chunk-77IKUBSH.cjs} +6 -6
- package/dist/{chunk-E3KFEOFA.cjs → chunk-CVBHB4OZ.cjs} +4 -4
- package/dist/{chunk-CXV7VBSI.cjs → chunk-ESRA7NUI.cjs} +41 -41
- package/dist/{chunk-2J2OBP4N.cjs → chunk-H52GKJ36.cjs} +9 -9
- package/dist/{chunk-G7SBHMRR.cjs → chunk-KHKPLOU4.cjs} +69 -39
- package/dist/{chunk-SECT4H34.cjs → chunk-LIGDPFDM.cjs} +227 -172
- package/dist/{chunk-LQT2ITMG.cjs → chunk-MJFTWHV6.cjs} +4 -4
- package/dist/{chunk-ZLF55RDR.cjs → chunk-MU7FFN6M.cjs} +34 -34
- package/dist/{chunk-OZLIKBKC.cjs → chunk-NOUROZYH.cjs} +13 -13
- package/dist/{chunk-GOFEOCQN.cjs → chunk-QOONZMSQ.cjs} +9 -9
- package/dist/{chunk-VEVIMDNK.cjs → chunk-RVLQHSID.cjs} +70 -70
- package/dist/{chunk-BN6NA5RM.cjs → chunk-SDOCZTST.cjs} +32 -32
- package/dist/{chunk-V3UJ6NDR.cjs → chunk-TPH4SRR2.cjs} +6 -6
- package/dist/{chunk-4FWURR3W.cjs → chunk-VUWPLQBY.cjs} +2 -2
- package/dist/{chunk-WZX26ODJ.cjs → chunk-X4LAMJHD.cjs} +54 -35
- package/dist/{cloud-tenants-2MYFHEYY.cjs → cloud-tenants-JDPC2DYF.cjs} +6 -6
- package/dist/components/case-studies/index.cjs +16 -16
- package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts +7 -5
- package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-jetstream-dialog-subscription.js +33 -14
- package/dist/components/chat/index.cjs +4 -4
- package/dist/components/chat/types/api.types.d.ts +27 -8
- package/dist/components/chat/types/api.types.d.ts.map +1 -1
- package/dist/components/chat/types/network.types.d.ts +2 -1
- package/dist/components/chat/types/network.types.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +7 -7
- package/dist/components/docs/index.cjs +10 -10
- package/dist/components/embeds/index.cjs +7 -7
- package/dist/components/faq/index.cjs +8 -8
- package/dist/components/features/auth/login-form.d.ts +34 -21
- package/dist/components/features/auth/login-form.d.ts.map +1 -1
- package/dist/components/features/auth/login-form.js +77 -39
- package/dist/components/features/auth/sso-providers.d.ts +7 -1
- package/dist/components/features/auth/sso-providers.d.ts.map +1 -1
- package/dist/components/features/auth/sso-providers.js +22 -4
- package/dist/components/features/index.cjs +6 -6
- package/dist/components/help-center-pages/index.cjs +67 -67
- package/dist/components/index.cjs +39 -39
- package/dist/components/meeting-scheduler/index.cjs +29 -29
- package/dist/components/navigation/index.cjs +9 -9
- package/dist/components/onboarding-guides/index.cjs +8 -8
- package/dist/components/product-demo/index.cjs +7 -7
- package/dist/components/tickets/index.cjs +11 -11
- package/dist/components/ui/index.cjs +6 -6
- package/dist/{devices-FVXAGKVX.cjs → devices-ADQWD37J.cjs} +7 -7
- package/dist/{embeddable-chat-SNYQSMS7.cjs → embeddable-chat-7YF2JMPS.cjs} +65 -65
- package/dist/hooks/index.cjs +3 -3
- package/dist/index.cjs +10 -10
- package/dist/{knowledge-ZL3ZHBSL.cjs → knowledge-TNS64EGK.cjs} +7 -7
- package/dist/{logs-KQCWDIOB.cjs → logs-754MDDE4.cjs} +14 -14
- package/dist/nats/index.cjs +2 -2
- package/dist/nats/nats.d.ts +33 -7
- package/dist/nats/nats.d.ts.map +1 -1
- package/dist/nats/nats.js +41 -11
- package/dist/{policies-ARDCZ3CT.cjs → policies-Q23DPIH6.cjs} +10 -10
- package/dist/{scripts-ZAMVWCY4.cjs → scripts-DCYLK2RZ.cjs} +11 -11
- package/dist/{software-update-6F7BIYS3.cjs → software-update-XCMGUIER.cjs} +9 -9
- package/package.json +1 -1
- package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +59 -23
- package/src/components/chat/types/api.types.ts +27 -8
- package/src/components/chat/types/network.types.ts +2 -1
- package/src/components/features/auth/login-form.tsx +121 -64
- package/src/components/features/auth/sso-providers.tsx +21 -0
- package/src/nats/nats.ts +91 -20
|
@@ -51,7 +51,7 @@ var _chunkDEY6XXGOcjs = require('./chunk-DEY6XXGO.cjs');
|
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
var
|
|
54
|
+
var _chunkVUWPLQBYcjs = require('./chunk-VUWPLQBY.cjs');
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
|
|
@@ -109,7 +109,7 @@ var _chunkYUMFVQINcjs = require('./chunk-YUMFVQIN.cjs');
|
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
|
|
112
|
-
var
|
|
112
|
+
var _chunkX4LAMJHDcjs = require('./chunk-X4LAMJHD.cjs');
|
|
113
113
|
|
|
114
114
|
|
|
115
115
|
|
|
@@ -131,7 +131,7 @@ var _chunkWZX26ODJcjs = require('./chunk-WZX26ODJ.cjs');
|
|
|
131
131
|
|
|
132
132
|
|
|
133
133
|
|
|
134
|
-
var
|
|
134
|
+
var _chunkTPH4SRR2cjs = require('./chunk-TPH4SRR2.cjs');
|
|
135
135
|
|
|
136
136
|
|
|
137
137
|
|
|
@@ -664,7 +664,7 @@ function ThemeProvider({ children, ...overrides }) {
|
|
|
664
664
|
var useTheme = _nextthemes.useTheme;
|
|
665
665
|
function useThemeToggle() {
|
|
666
666
|
const { resolvedTheme, theme, setTheme } = useTheme();
|
|
667
|
-
const mounted =
|
|
667
|
+
const mounted = _chunkTPH4SRR2cjs.useIsHydrated.call(void 0, );
|
|
668
668
|
const active = mounted ? resolvedTheme === "light" || theme === "light" ? "light" : "dark" : DEFAULT_THEME;
|
|
669
669
|
const setOdsTheme = _react.useCallback.call(void 0, (next) => setTheme(next), [setTheme]);
|
|
670
670
|
const toggle = _react.useCallback.call(void 0, () => setTheme(active === "dark" ? "light" : "dark"), [active, setTheme]);
|
|
@@ -2332,7 +2332,7 @@ function InfoCardFooter({ footer }) {
|
|
|
2332
2332
|
] });
|
|
2333
2333
|
}
|
|
2334
2334
|
function InfoCardValueRow({ label, value, showLabel, copyable, icon, copyAriaLabel }) {
|
|
2335
|
-
const { copy, copied } =
|
|
2335
|
+
const { copy, copied } = _chunkVUWPLQBYcjs.useCopyToClipboard.call(void 0, );
|
|
2336
2336
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 w-full items-center gap-[var(--spacing-system-xs)] self-stretch", children: [
|
|
2337
2337
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-primary text-h4", children: showLabel ? label : "" }),
|
|
2338
2338
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-divider" }),
|
|
@@ -4360,7 +4360,7 @@ function AdminFormDrawer({
|
|
|
4360
4360
|
"form",
|
|
4361
4361
|
{
|
|
4362
4362
|
id: formId,
|
|
4363
|
-
...
|
|
4363
|
+
..._chunkX4LAMJHDcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
|
|
4364
4364
|
className: "flex flex-col gap-[var(--spacing-system-lf)]",
|
|
4365
4365
|
onSubmit: (e) => {
|
|
4366
4366
|
e.preventDefault();
|
|
@@ -4467,7 +4467,7 @@ function AdminFormModal({
|
|
|
4467
4467
|
"form",
|
|
4468
4468
|
{
|
|
4469
4469
|
id: formId,
|
|
4470
|
-
...
|
|
4470
|
+
..._chunkX4LAMJHDcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
|
|
4471
4471
|
className: "flex min-h-0 flex-1 flex-col",
|
|
4472
4472
|
onSubmit: (e) => {
|
|
4473
4473
|
e.preventDefault();
|
|
@@ -5780,7 +5780,7 @@ function EmbedViewerFrame({
|
|
|
5780
5780
|
const controllerRef = _react.useRef.call(void 0, null);
|
|
5781
5781
|
_react.useEffect.call(void 0, () => {
|
|
5782
5782
|
if (!fullscreenControl) return void 0;
|
|
5783
|
-
const controller = new (0,
|
|
5783
|
+
const controller = new (0, _chunkX4LAMJHDcjs.FullscreenSwitchController)({
|
|
5784
5784
|
target: () => frameRef.current,
|
|
5785
5785
|
onFullscreenChange: setIsFullscreen
|
|
5786
5786
|
});
|
|
@@ -5874,7 +5874,7 @@ var KIND_HEADING = {
|
|
|
5874
5874
|
design: "Claude Design"
|
|
5875
5875
|
};
|
|
5876
5876
|
function ClaudeEmbed({ url, kind = "artifact", title, height, loading = "lazy" }) {
|
|
5877
|
-
const { src: mirrorSrc, status } =
|
|
5877
|
+
const { src: mirrorSrc, status } = _chunkVUWPLQBYcjs.useClaudeMirrorSrc.call(void 0, url);
|
|
5878
5878
|
const isProbing = status === "probing";
|
|
5879
5879
|
const embedUrl = isProbing ? null : _nullishCoalesce(mirrorSrc, () => ( _chunkW2RM764Dcjs.toClaudeEmbedUrl.call(void 0, url)));
|
|
5880
5880
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -6977,7 +6977,7 @@ var formatTimeAgo = (timestamp) => {
|
|
|
6977
6977
|
return `${Math.floor(diffSeconds / 86400)}d ago`;
|
|
6978
6978
|
};
|
|
6979
6979
|
function RedditEmbedClient({ url, maxWidth = 700, rel }) {
|
|
6980
|
-
const postLinkRel =
|
|
6980
|
+
const postLinkRel = _chunkTPH4SRR2cjs.renderedLinkRel.call(void 0, rel, true);
|
|
6981
6981
|
const { redditProxyUrl } = useRichMarkdownRuntime();
|
|
6982
6982
|
const [redditData, setRedditData] = _react.useState.call(void 0, null);
|
|
6983
6983
|
const [loading, setLoading] = _react.useState.call(void 0, true);
|
|
@@ -7309,7 +7309,7 @@ var UserIcon3 = () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { wid
|
|
|
7309
7309
|
] });
|
|
7310
7310
|
var XIcon = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2TEMEXDTcjs.XLogoIcon, { className: "h-5 w-5", color: "currentColor" });
|
|
7311
7311
|
function TwitterEmbedClient({ url, tweetId, maxWidth = 700, rel }) {
|
|
7312
|
-
const postLinkRel =
|
|
7312
|
+
const postLinkRel = _chunkTPH4SRR2cjs.renderedLinkRel.call(void 0, rel, true);
|
|
7313
7313
|
const { twitterProxyUrl } = useRichMarkdownRuntime();
|
|
7314
7314
|
const [tweetData, setTweetData] = _react.useState.call(void 0, null);
|
|
7315
7315
|
const [fetchLoading, setLoading] = _react.useState.call(void 0, true);
|
|
@@ -7511,7 +7511,7 @@ function buildRichEmbedOverrides({
|
|
|
7511
7511
|
ogEndpointPath,
|
|
7512
7512
|
textSizes
|
|
7513
7513
|
}) {
|
|
7514
|
-
const standard =
|
|
7514
|
+
const standard = _chunkTPH4SRR2cjs.buildStandardLeafRenderers.call(void 0, { textSizes });
|
|
7515
7515
|
return {
|
|
7516
7516
|
// Fence-language embeds (```youtube-embed etc.); everything else
|
|
7517
7517
|
// (mermaid, highlighted blocks, inline code) falls through to `standard`.
|
|
@@ -7647,13 +7647,13 @@ function buildRichEmbedOverrides({
|
|
|
7647
7647
|
// rich-markdown runtime (Supabase optimization on the hub, identity
|
|
7648
7648
|
// elsewhere). Guard against empty `![]()`.
|
|
7649
7649
|
img: ({ src, alt }) => {
|
|
7650
|
-
if (!
|
|
7650
|
+
if (!_chunkTPH4SRR2cjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7651
7651
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MarkdownImage, { src: src.trim(), alt });
|
|
7652
7652
|
},
|
|
7653
7653
|
// Raw <video> tags in stored content (blog publisher injection) route
|
|
7654
7654
|
// to the <Video> SSOT (MuxPlayer) so HLS manifests play everywhere.
|
|
7655
7655
|
video: ({ src, poster, className }) => {
|
|
7656
|
-
if (!
|
|
7656
|
+
if (!_chunkTPH4SRR2cjs.hasRenderableSrc.call(void 0, src)) return null;
|
|
7657
7657
|
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, _chunkOFO75R2Ocjs.Video, { kind: "file", url: src.trim(), poster: typeof poster === "string" ? poster : void 0 }) }) });
|
|
7658
7658
|
}
|
|
7659
7659
|
};
|
|
@@ -7762,7 +7762,7 @@ var processShortcodes = (content) => {
|
|
|
7762
7762
|
try {
|
|
7763
7763
|
const urlObj = new URL(url);
|
|
7764
7764
|
const hostname = urlObj.hostname.toLowerCase();
|
|
7765
|
-
const hostIs = (domain) =>
|
|
7765
|
+
const hostIs = (domain) => _chunkX4LAMJHDcjs.hostMatches.call(void 0, hostname, domain);
|
|
7766
7766
|
const isYouTubeVideo = hostIs("youtube.com") && urlObj.searchParams.has("v") || hostIs("youtu.be");
|
|
7767
7767
|
if (isYouTubeVideo || hostIs("reddit.com") || hostIs("twitter.com") || hostIs("x.com") || hostIs("figma.com")) {
|
|
7768
7768
|
return match;
|
|
@@ -7837,13 +7837,13 @@ var RichMarkdownInner = ({
|
|
|
7837
7837
|
},
|
|
7838
7838
|
[resolveLinkEndpointUrl, resolveSource]
|
|
7839
7839
|
);
|
|
7840
|
-
const textSizes = _react.useMemo.call(void 0, () =>
|
|
7840
|
+
const textSizes = _react.useMemo.call(void 0, () => _chunkTPH4SRR2cjs.resolveTextSizeConfig.call(void 0, "article"), []);
|
|
7841
7841
|
const componentOverrides = _react.useMemo.call(void 0,
|
|
7842
7842
|
() => buildRichEmbedOverrides({ ogApiBaseUrl, ogEndpointPath, textSizes }),
|
|
7843
7843
|
[ogApiBaseUrl, ogEndpointPath, textSizes]
|
|
7844
7844
|
);
|
|
7845
7845
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
7846
|
-
|
|
7846
|
+
_chunkTPH4SRR2cjs.MarkdownEngine,
|
|
7847
7847
|
{
|
|
7848
7848
|
content,
|
|
7849
7849
|
className,
|
|
@@ -7865,7 +7865,7 @@ var RichMarkdownRendererImpl = ({
|
|
|
7865
7865
|
className = "",
|
|
7866
7866
|
sectionIds,
|
|
7867
7867
|
onInternalLinkClick,
|
|
7868
|
-
brokenLinks =
|
|
7868
|
+
brokenLinks = _chunkTPH4SRR2cjs.NO_BROKEN_LINKS,
|
|
7869
7869
|
currentPath,
|
|
7870
7870
|
resolveSource = "openframe-docs",
|
|
7871
7871
|
resolveLinkEndpointUrl = "/api/docs/resolve-link",
|
|
@@ -8833,7 +8833,7 @@ function FilterModal({
|
|
|
8833
8833
|
const dateDefaultSort = _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _147 => _147.defaultSort]), () => ( "desc"));
|
|
8834
8834
|
const [draftDateSort, setDraftDateSort] = _react.useState.call(void 0, _nullishCoalesce(_optionalChain([dateFilter, 'optionalAccess', _148 => _148.sort]), () => ( dateDefaultSort)));
|
|
8835
8835
|
const [draftDateRange, setDraftDateRange] = _react.useState.call(void 0, _optionalChain([dateFilter, 'optionalAccess', _149 => _149.range]));
|
|
8836
|
-
const { scrollRef, fadeTop, fadeBottom, update: updateFade } =
|
|
8836
|
+
const { scrollRef, fadeTop, fadeBottom, update: updateFade } = _chunkTPH4SRR2cjs.useScrollFade.call(void 0, );
|
|
8837
8837
|
const seedKey = `${JSON.stringify(currentFilters)}|${JSON.stringify(_nullishCoalesce(selectedTags, () => ( [])))}`;
|
|
8838
8838
|
const seedSourceRef = _react.useRef.call(void 0, { currentFilters, selectedTags, dateFilter, dateDefaultSort });
|
|
8839
8839
|
_react.useEffect.call(void 0, () => {
|
|
@@ -8979,8 +8979,8 @@ function FilterModal({
|
|
|
8979
8979
|
] })
|
|
8980
8980
|
}
|
|
8981
8981
|
),
|
|
8982
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8983
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
8982
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTPH4SRR2cjs.ScrollFadeOverlay, { edge: "top", visible: fadeTop }),
|
|
8983
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTPH4SRR2cjs.ScrollFadeOverlay, { edge: "bottom", visible: fadeBottom })
|
|
8984
8984
|
] })
|
|
8985
8985
|
}
|
|
8986
8986
|
),
|
|
@@ -9459,7 +9459,7 @@ var BenefitCardGrid = ({ children, className = "", columns = 2 }) => {
|
|
|
9459
9459
|
|
|
9460
9460
|
|
|
9461
9461
|
function PlatformBrowseButton({ item }) {
|
|
9462
|
-
const linkProps =
|
|
9462
|
+
const linkProps = _chunkTPH4SRR2cjs.useNavLinkViaRuntime.call(void 0, { href: item.link, targetPlatform: item.targetPlatform });
|
|
9463
9463
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunk2QMBXGMQcjs.Button, { variant: "outline", linkProps, rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-4 w-4" }), children: [
|
|
9464
9464
|
"Browse ",
|
|
9465
9465
|
item.buttonText
|
|
@@ -9926,10 +9926,10 @@ var OSTypeBadge = ({
|
|
|
9926
9926
|
if (!osType) {
|
|
9927
9927
|
return labelOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk3ATAYP36cjs.cn.call(void 0, "text-ods-text-secondary", className), children: "Unknown" }) : null;
|
|
9928
9928
|
}
|
|
9929
|
-
const normalized =
|
|
9929
|
+
const normalized = _chunkX4LAMJHDcjs.normalizeOSType.call(void 0, osType);
|
|
9930
9930
|
if (!normalized && !labelOnly) return null;
|
|
9931
|
-
const label =
|
|
9932
|
-
const IconComponent =
|
|
9931
|
+
const label = _chunkX4LAMJHDcjs.getOSLabel.call(void 0, osType);
|
|
9932
|
+
const IconComponent = _chunkX4LAMJHDcjs.getOSIcon.call(void 0, osType);
|
|
9933
9933
|
if (iconOnly && IconComponent) {
|
|
9934
9934
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: _chunk3ATAYP36cjs.cn.call(void 0, iconSize, "text-ods-text-secondary", className) });
|
|
9935
9935
|
}
|
|
@@ -10170,7 +10170,7 @@ function ComplianceLogo({
|
|
|
10170
10170
|
fallback = null,
|
|
10171
10171
|
className
|
|
10172
10172
|
}) {
|
|
10173
|
-
const standard =
|
|
10173
|
+
const standard = _chunkX4LAMJHDcjs.complianceStandardForName.call(void 0, ...names);
|
|
10174
10174
|
if (!standard) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: fallback });
|
|
10175
10175
|
const Official = standard.logo ? COMPLIANCE_LOGOS[standard.logo] : null;
|
|
10176
10176
|
return Official ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -10913,7 +10913,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
|
|
|
10913
10913
|
}
|
|
10914
10914
|
function ServiceCardRowItem({ row }) {
|
|
10915
10915
|
const [revealed, setRevealed] = _react.useState.call(void 0, false);
|
|
10916
|
-
const { copy, copied } =
|
|
10916
|
+
const { copy, copied } = _chunkVUWPLQBYcjs.useCopyToClipboard.call(void 0, );
|
|
10917
10917
|
const { ref: valueRef, isTruncated: valueTruncated } = _chunkKTPR66EEcjs.useIsTruncated.call(void 0, row.value);
|
|
10918
10918
|
const actions = _react.useMemo.call(void 0,
|
|
10919
10919
|
() => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }),
|
|
@@ -11787,7 +11787,7 @@ function TableHeader({
|
|
|
11787
11787
|
onFilterChange
|
|
11788
11788
|
}
|
|
11789
11789
|
),
|
|
11790
|
-
column.hint ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11790
|
+
column.hint ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkX4LAMJHDcjs.InfoHint, { label: column.label, children: column.hint }) : null
|
|
11791
11791
|
] })
|
|
11792
11792
|
) : (
|
|
11793
11793
|
/* Non-filterable column — regular label with optional sort */
|
|
@@ -11813,7 +11813,7 @@ function TableHeader({
|
|
|
11813
11813
|
hint exists, so a hint-less header keeps its DOM. */
|
|
11814
11814
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-start gap-[var(--spacing-system-xxs)]", children: [
|
|
11815
11815
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: TABLE_HEADER_LABEL_CLASS, children: column.label }),
|
|
11816
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11816
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkX4LAMJHDcjs.InfoHint, { label: column.label, children: column.hint })
|
|
11817
11817
|
] })
|
|
11818
11818
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: TABLE_HEADER_LABEL_CLASS, children: column.label }),
|
|
11819
11819
|
getSortIcon(column)
|
|
@@ -13162,7 +13162,7 @@ function HeaderCell({ header, sort, onSortChange }) {
|
|
|
13162
13162
|
// child of the cell.
|
|
13163
13163
|
_optionalChain([meta, 'optionalAccess', _235 => _235.hint]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-[var(--spacing-system-xxs)]", children: [
|
|
13164
13164
|
filterTrigger,
|
|
13165
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13165
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkX4LAMJHDcjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
|
|
13166
13166
|
] }) : filterTrigger
|
|
13167
13167
|
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13168
13168
|
"div",
|
|
@@ -13187,7 +13187,7 @@ function HeaderCell({ header, sort, onSortChange }) {
|
|
|
13187
13187
|
// centred on the row.
|
|
13188
13188
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-start gap-[var(--spacing-system-xxs)]", children: [
|
|
13189
13189
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
|
|
13190
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13190
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkX4LAMJHDcjs.InfoHint, { label: resolveHeaderLabel(header), children: meta.hint })
|
|
13191
13191
|
] })
|
|
13192
13192
|
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
|
|
13193
13193
|
canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
|
|
@@ -13407,7 +13407,7 @@ function PhoneInput({
|
|
|
13407
13407
|
placeholder = "Phone Number (optional)",
|
|
13408
13408
|
onKeyDown
|
|
13409
13409
|
}) {
|
|
13410
|
-
const { priority, others } = _react.useMemo.call(void 0, () =>
|
|
13410
|
+
const { priority, others } = _react.useMemo.call(void 0, () => _chunkX4LAMJHDcjs.getCountryPhoneData.call(void 0, ), []);
|
|
13411
13411
|
const selectedCountry = _react.useMemo.call(void 0,
|
|
13412
13412
|
() => [...priority, ...others].find((c) => c.code === countryCode),
|
|
13413
13413
|
[countryCode, priority, others]
|
|
@@ -13422,7 +13422,7 @@ function PhoneInput({
|
|
|
13422
13422
|
_optionalChain([onValidationChange, 'optionalCall', _248 => _248(false)]);
|
|
13423
13423
|
return;
|
|
13424
13424
|
}
|
|
13425
|
-
const invalid = !
|
|
13425
|
+
const invalid = !_chunkX4LAMJHDcjs.validatePhoneNumber.call(void 0, phone, countryCode);
|
|
13426
13426
|
setIsInvalid(invalid);
|
|
13427
13427
|
_optionalChain([onValidationChange, 'optionalCall', _249 => _249(invalid)]);
|
|
13428
13428
|
},
|
|
@@ -14281,7 +14281,7 @@ function MarkdownLinkDialog({ isOpen, initial, editing, onSubmit, onRemove, onCl
|
|
|
14281
14281
|
),
|
|
14282
14282
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-xsf)]", children: [
|
|
14283
14283
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
14284
|
-
|
|
14284
|
+
_chunkTPH4SRR2cjs.TabSelector,
|
|
14285
14285
|
{
|
|
14286
14286
|
label: "Search engines",
|
|
14287
14287
|
value: choice,
|
|
@@ -14338,7 +14338,7 @@ function useMarkdownLinkCommand() {
|
|
|
14338
14338
|
buttonProps: { "aria-label": "Add or edit a link (ctrl + l)", title: "Add or edit a link (ctrl + l)" },
|
|
14339
14339
|
icon: command.icon,
|
|
14340
14340
|
execute: (state, api) => {
|
|
14341
|
-
const existing =
|
|
14341
|
+
const existing = _chunkTPH4SRR2cjs.findMarkdownLinkAt.call(void 0, state.text, state.selection.start, state.selection.end);
|
|
14342
14342
|
setPending(
|
|
14343
14343
|
existing ? {
|
|
14344
14344
|
api,
|
|
@@ -14369,7 +14369,7 @@ function useMarkdownLinkCommand() {
|
|
|
14369
14369
|
initial: _nullishCoalesce(_optionalChain([pending, 'optionalAccess', _306 => _306.initial]), () => ( EMPTY_LINK)),
|
|
14370
14370
|
editing: _nullishCoalesce(_optionalChain([pending, 'optionalAccess', _307 => _307.editing]), () => ( false)),
|
|
14371
14371
|
onSubmit: (link) => {
|
|
14372
|
-
if (pending) write(pending,
|
|
14372
|
+
if (pending) write(pending, _chunkTPH4SRR2cjs.formatMarkdownLink.call(void 0, link));
|
|
14373
14373
|
},
|
|
14374
14374
|
onRemove: () => {
|
|
14375
14375
|
if (pending) write(pending, pending.initial.text);
|
|
@@ -15680,7 +15680,7 @@ var SKELETON_COLUMNS = 6;
|
|
|
15680
15680
|
function TestResultsSkeleton({
|
|
15681
15681
|
region = true
|
|
15682
15682
|
} = {}) {
|
|
15683
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUGCRLRCTcjs.LoadingRegion, { label: "Loading the test results", announce: region, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15683
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUGCRLRCTcjs.LoadingRegion, { label: "Loading the test results", announce: region, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTPH4SRR2cjs.ScrollShadow, { axis: "horizontal", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-max min-w-full flex-col", children: [
|
|
15684
15684
|
/* @__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, _chunk2YXOD2KLcjs.UnifiedSkeleton, { className: "h-4 w-3/4 rounded-sm" }) }, `skeleton-header-${i}`)) }),
|
|
15685
15685
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "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)] content-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, _chunk2YXOD2KLcjs.UnifiedSkeleton, { className: "h-5 w-3/4 rounded-sm" }) }, `skeleton-cell-${i}`)) }) })
|
|
15686
15686
|
] }) }) });
|
|
@@ -15715,13 +15715,13 @@ function TestResultsTable({ rows, loading }) {
|
|
|
15715
15715
|
if (loading) {
|
|
15716
15716
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TestResultsSkeleton, {});
|
|
15717
15717
|
}
|
|
15718
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15718
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTPH4SRR2cjs.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: [
|
|
15719
15719
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Header, { className: "flex flex-col" }),
|
|
15720
15720
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, DataTable.Body, { loading: false })
|
|
15721
15721
|
] }) }) });
|
|
15722
15722
|
}
|
|
15723
15723
|
function TestRunErrorBanner({ error, className }) {
|
|
15724
|
-
const { copy } =
|
|
15724
|
+
const { copy } = _chunkVUWPLQBYcjs.useCopyToClipboard.call(void 0, { successDescription: "Error message copied to clipboard" });
|
|
15725
15725
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
15726
15726
|
"div",
|
|
15727
15727
|
{
|
|
@@ -16198,7 +16198,7 @@ function TicketInfoSection({
|
|
|
16198
16198
|
expanded && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
16199
16199
|
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" }) }),
|
|
16200
16200
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4 border-b border-ods-border bg-ods-bg p-4", children: [
|
|
16201
|
-
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16201
|
+
description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTPH4SRR2cjs.SimpleMarkdownRenderer, { content: description }),
|
|
16202
16202
|
attachments && attachments.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Attachments", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketAttachmentsList, { attachments }) }),
|
|
16203
16203
|
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, _chunkJHQNUWFMcjs.Tag, { label: tag, variant: "outline", className: "max-w-full" }, tag)) }) }),
|
|
16204
16204
|
(notes || onAddNote) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketDetailSection, { label: "Notes", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -16658,7 +16658,7 @@ function PhotoWall({ images, columns = 2, speed = 24, fadeColor, className, load
|
|
|
16658
16658
|
gap: COLUMN_GAP_PX
|
|
16659
16659
|
};
|
|
16660
16660
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: rootRef, "aria-hidden": "true", className: _chunk3ATAYP36cjs.cn.call(void 0, "grid overflow-hidden", className), style: gridStyle, children: columnsToDraw ? columnsToDraw.map((column, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16661
|
-
|
|
16661
|
+
_chunkTPH4SRR2cjs.MarqueeWall,
|
|
16662
16662
|
{
|
|
16663
16663
|
axis: "y",
|
|
16664
16664
|
reverse: index % 2 === 1,
|
|
@@ -17070,7 +17070,7 @@ var TRIAL_TERM_ICONS = {
|
|
|
17070
17070
|
};
|
|
17071
17071
|
var DEFAULT_TRIAL_TERMS = ["cancel", "length", "noContract"];
|
|
17072
17072
|
function trialBenefits(trialDays, terms = DEFAULT_TRIAL_TERMS) {
|
|
17073
|
-
const labels =
|
|
17073
|
+
const labels = _chunkX4LAMJHDcjs.trialLabels.call(void 0, trialDays);
|
|
17074
17074
|
return terms.flatMap((term) => {
|
|
17075
17075
|
const label = labels[term];
|
|
17076
17076
|
return label ? [{ icon: TRIAL_TERM_ICONS[term], label }] : [];
|
|
@@ -17310,7 +17310,7 @@ function SnapCarousel({
|
|
|
17310
17310
|
}, [count, slideStep]);
|
|
17311
17311
|
const canAutoAdvance = autoAdvanceMs > 0 && count > 1;
|
|
17312
17312
|
const playing = auto.playing && canAutoAdvance;
|
|
17313
|
-
const ranMs =
|
|
17313
|
+
const ranMs = _chunkVUWPLQBYcjs.useResumableTimeout.call(void 0, {
|
|
17314
17314
|
running: playing,
|
|
17315
17315
|
durationMs: autoAdvanceMs,
|
|
17316
17316
|
resetKey: index,
|
|
@@ -17671,10 +17671,10 @@ function AccountDetailsFields({
|
|
|
17671
17671
|
onKeyDown,
|
|
17672
17672
|
layout = "stacked"
|
|
17673
17673
|
}) {
|
|
17674
|
-
const firstNameErr =
|
|
17675
|
-
const lastNameErr =
|
|
17676
|
-
const passwordErr =
|
|
17677
|
-
const confirmErr =
|
|
17674
|
+
const firstNameErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _365 => _365.firstName]), firstName);
|
|
17675
|
+
const lastNameErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _366 => _366.lastName]), lastName);
|
|
17676
|
+
const passwordErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _367 => _367.password]), password);
|
|
17677
|
+
const confirmErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _368 => _368.confirmPassword]), confirmPassword);
|
|
17678
17678
|
const names = [
|
|
17679
17679
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17680
17680
|
_chunkHTRILBJDcjs.Input,
|
|
@@ -17908,12 +17908,13 @@ function SsoProviderButtons({
|
|
|
17908
17908
|
onSsoClick,
|
|
17909
17909
|
actionLabel = "Continue with",
|
|
17910
17910
|
disabled = false,
|
|
17911
|
-
enabledProviders
|
|
17911
|
+
enabledProviders,
|
|
17912
|
+
tag
|
|
17912
17913
|
}) {
|
|
17913
17914
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-[var(--spacing-system-l)]", children: providers.map((provider) => {
|
|
17914
17915
|
const meta = PROVIDER_META[provider];
|
|
17915
17916
|
const Icon = meta.Icon;
|
|
17916
|
-
return /* @__PURE__ */ _jsxruntime.
|
|
17917
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
17917
17918
|
_chunk2QMBXGMQcjs.Button,
|
|
17918
17919
|
{
|
|
17919
17920
|
type: "button",
|
|
@@ -17923,7 +17924,23 @@ function SsoProviderButtons({
|
|
|
17923
17924
|
className: "disabled:bg-ods-bg",
|
|
17924
17925
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: "h-5 w-5" }),
|
|
17925
17926
|
onClick: () => _optionalChain([onSsoClick, 'optionalCall', _369 => _369(provider)]),
|
|
17926
|
-
children:
|
|
17927
|
+
children: [
|
|
17928
|
+
`${actionLabel} ${meta.name}`,
|
|
17929
|
+
tag && // A child, not `rightIcon`: the Button lays its children out through a `contents` span,
|
|
17930
|
+
// so the badge is a flex item of the button itself and can give up width (`min-w-0`)
|
|
17931
|
+
// where a long organization name would otherwise push the label out of a phone-width
|
|
17932
|
+
// button. `block` over its inline-flex, because an ellipsis only renders on a block box.
|
|
17933
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
17934
|
+
_chunkOFO75R2Ocjs.StatusBadge,
|
|
17935
|
+
{
|
|
17936
|
+
text: tag,
|
|
17937
|
+
variant: "button",
|
|
17938
|
+
singleLine: true,
|
|
17939
|
+
title: tag,
|
|
17940
|
+
className: "block min-w-0 max-w-32 truncate"
|
|
17941
|
+
}
|
|
17942
|
+
)
|
|
17943
|
+
]
|
|
17927
17944
|
},
|
|
17928
17945
|
provider
|
|
17929
17946
|
);
|
|
@@ -18104,9 +18121,9 @@ function CreateOrganizationForm({
|
|
|
18104
18121
|
}) {
|
|
18105
18122
|
const hasSso = !!ssoProviders && ssoProviders.length > 0;
|
|
18106
18123
|
const fieldsDisabled = disabled || loading;
|
|
18107
|
-
const emailErr =
|
|
18108
|
-
const orgNameErr =
|
|
18109
|
-
const domainErr =
|
|
18124
|
+
const emailErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _370 => _370.email]), _nullishCoalesce(email, () => ( "")));
|
|
18125
|
+
const orgNameErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _371 => _371.organizationName]), organizationName);
|
|
18126
|
+
const domainErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _372 => _372.domain]), domain);
|
|
18110
18127
|
const handleKeyDown = (event) => {
|
|
18111
18128
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
18112
18129
|
onSubmit();
|
|
@@ -18296,6 +18313,7 @@ function LegalLinks({ termsUrl, privacyPolicyUrl }) {
|
|
|
18296
18313
|
|
|
18297
18314
|
// src/components/features/auth/login-form.tsx
|
|
18298
18315
|
|
|
18316
|
+
var ENTER_ANIMATION = "animate-in fade-in-0 slide-in-from-top-1 duration-200 ease-out motion-reduce:animate-none";
|
|
18299
18317
|
function LoginForm({
|
|
18300
18318
|
email,
|
|
18301
18319
|
onEmailChange,
|
|
@@ -18304,17 +18322,18 @@ function LoginForm({
|
|
|
18304
18322
|
disabled = false,
|
|
18305
18323
|
errors,
|
|
18306
18324
|
emailStatus,
|
|
18325
|
+
notice,
|
|
18307
18326
|
ssoProviders,
|
|
18308
18327
|
onSsoClick,
|
|
18309
18328
|
ssoDisabled = false,
|
|
18310
18329
|
ssoEnabledProviders,
|
|
18311
18330
|
ssoActionLabel = "Continue with",
|
|
18312
|
-
dividerLabel = "or continue with
|
|
18313
|
-
|
|
18314
|
-
noCustomSsoLabel = "No additional SSO configurations for this domain",
|
|
18331
|
+
dividerLabel = "or continue with",
|
|
18332
|
+
tenantMethods,
|
|
18315
18333
|
onSubmitClick,
|
|
18316
18334
|
submitLabel = "Continue",
|
|
18317
18335
|
submitDisabled = false,
|
|
18336
|
+
onEmailEnter,
|
|
18318
18337
|
title = "Login to OpenFrame",
|
|
18319
18338
|
subtitle = "Enter your email to access your organization.",
|
|
18320
18339
|
termsUrl,
|
|
@@ -18322,10 +18341,15 @@ function LoginForm({
|
|
|
18322
18341
|
className
|
|
18323
18342
|
}) {
|
|
18324
18343
|
const fieldDisabled = disabled || loading;
|
|
18325
|
-
const
|
|
18344
|
+
const providersDisabled = fieldDisabled || ssoDisabled;
|
|
18345
|
+
const emailErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _379 => _379.email]), email);
|
|
18326
18346
|
const handleKeyDown = (event) => {
|
|
18327
|
-
if (event.key !== "Enter" ||
|
|
18328
|
-
|
|
18347
|
+
if (event.key !== "Enter" || event.repeat || fieldDisabled) return;
|
|
18348
|
+
if (onSubmitClick) {
|
|
18349
|
+
if (!submitDisabled) onSubmitClick();
|
|
18350
|
+
return;
|
|
18351
|
+
}
|
|
18352
|
+
_optionalChain([onEmailEnter, 'optionalCall', _380 => _380()]);
|
|
18329
18353
|
};
|
|
18330
18354
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
18331
18355
|
"div",
|
|
@@ -18339,17 +18363,6 @@ function LoginForm({
|
|
|
18339
18363
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: _chunkOFO75R2Ocjs.accentSentenceMarks.call(void 0, title) }),
|
|
18340
18364
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
|
|
18341
18365
|
] }),
|
|
18342
|
-
ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18343
|
-
SsoProviderButtons,
|
|
18344
|
-
{
|
|
18345
|
-
providers: ssoProviders,
|
|
18346
|
-
onSsoClick,
|
|
18347
|
-
actionLabel: ssoActionLabel,
|
|
18348
|
-
disabled: disabled || loading || ssoDisabled,
|
|
18349
|
-
enabledProviders: ssoEnabledProviders
|
|
18350
|
-
}
|
|
18351
|
-
),
|
|
18352
|
-
ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel }),
|
|
18353
18366
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18354
18367
|
_chunkHTRILBJDcjs.Input,
|
|
18355
18368
|
{
|
|
@@ -18365,30 +18378,22 @@ function LoginForm({
|
|
|
18365
18378
|
onKeyDown: handleKeyDown
|
|
18366
18379
|
}
|
|
18367
18380
|
),
|
|
18368
|
-
|
|
18369
|
-
|
|
18381
|
+
notice && // Tokens are the design's: soft-grey surface, grey text and icon, the bold-body step, a 24px
|
|
18382
|
+
// icon, and 12/16 for the inset and the gap.
|
|
18383
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
18384
|
+
"div",
|
|
18370
18385
|
{
|
|
18371
|
-
|
|
18372
|
-
|
|
18373
|
-
|
|
18374
|
-
|
|
18386
|
+
role: "status",
|
|
18387
|
+
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
18388
|
+
"flex min-h-11 w-full items-center gap-[var(--spacing-system-m)] rounded-md bg-ods-bg-surface px-[var(--spacing-system-s)] py-[var(--spacing-system-s)] text-ods-text-secondary text-h3 md:min-h-12",
|
|
18389
|
+
ENTER_ANIMATION
|
|
18390
|
+
),
|
|
18391
|
+
children: [
|
|
18392
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7AAW6L5Ucjs.AlertTriangleIcon, { className: "h-6 w-6 shrink-0" }),
|
|
18393
|
+
notice
|
|
18394
|
+
]
|
|
18375
18395
|
}
|
|
18376
|
-
)
|
|
18377
|
-
// Same footprint as the button it stands in for, so nothing shifts when a tenant does
|
|
18378
|
-
// have options. Tokens are the design's: soft-grey surface, grey text and icon, the
|
|
18379
|
-
// bold-body step, a 24px icon, and 12/16 for the inset and the gap.
|
|
18380
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
18381
|
-
"div",
|
|
18382
|
-
{
|
|
18383
|
-
role: "status",
|
|
18384
|
-
className: "flex min-h-11 w-full items-center gap-[var(--spacing-system-m)] rounded-md bg-ods-bg-surface px-[var(--spacing-system-s)] py-[var(--spacing-system-s)] text-ods-text-secondary text-h3 md:min-h-12",
|
|
18385
|
-
children: [
|
|
18386
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7AAW6L5Ucjs.AlertTriangleIcon, { className: "h-6 w-6 shrink-0" }),
|
|
18387
|
-
noCustomSsoLabel
|
|
18388
|
-
]
|
|
18389
|
-
}
|
|
18390
|
-
)
|
|
18391
|
-
)),
|
|
18396
|
+
),
|
|
18392
18397
|
onSubmitClick && // Full width on a phone, half the row and right-aligned from `md` up, matching the design.
|
|
18393
18398
|
// The spacer, rather than a width on the button, keeps it flush with the fields' right edge.
|
|
18394
18399
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-l)]", children: [
|
|
@@ -18407,6 +18412,56 @@ function LoginForm({
|
|
|
18407
18412
|
}
|
|
18408
18413
|
)
|
|
18409
18414
|
] }),
|
|
18415
|
+
(tenantMethods || ssoProviders.length > 0) && // One block, so an organization's methods replace the generic set as a whole: the key mounts
|
|
18416
|
+
// it anew when they arrive, and every row of it eases in, not only the rows that are new.
|
|
18417
|
+
// Going back to the generic set swaps without a transition, as the prototype does.
|
|
18418
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
18419
|
+
"div",
|
|
18420
|
+
{
|
|
18421
|
+
role: "group",
|
|
18422
|
+
"aria-label": "Sign-in methods",
|
|
18423
|
+
className: _chunk3ATAYP36cjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-l)]", tenantMethods && ENTER_ANIMATION),
|
|
18424
|
+
children: [
|
|
18425
|
+
tenantMethods && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
18426
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: `Sign-in methods for ${tenantMethods.name || "your organization"}` }),
|
|
18427
|
+
tenantMethods.openframe && // Not configured with anyone's credentials, so it carries no tag.
|
|
18428
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18429
|
+
SsoProviderButtons,
|
|
18430
|
+
{
|
|
18431
|
+
providers: ["openframe"],
|
|
18432
|
+
onSsoClick,
|
|
18433
|
+
actionLabel: ssoActionLabel,
|
|
18434
|
+
disabled: providersDisabled
|
|
18435
|
+
}
|
|
18436
|
+
),
|
|
18437
|
+
tenantMethods.providers.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18438
|
+
SsoProviderButtons,
|
|
18439
|
+
{
|
|
18440
|
+
providers: tenantMethods.providers,
|
|
18441
|
+
onSsoClick,
|
|
18442
|
+
actionLabel: ssoActionLabel,
|
|
18443
|
+
disabled: providersDisabled,
|
|
18444
|
+
tag: tenantMethods.name
|
|
18445
|
+
}
|
|
18446
|
+
)
|
|
18447
|
+
] }),
|
|
18448
|
+
ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
18449
|
+
(!tenantMethods || tenantMethods.openframe || tenantMethods.providers.length > 0) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel }),
|
|
18450
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18451
|
+
SsoProviderButtons,
|
|
18452
|
+
{
|
|
18453
|
+
providers: ssoProviders,
|
|
18454
|
+
onSsoClick,
|
|
18455
|
+
actionLabel: ssoActionLabel,
|
|
18456
|
+
disabled: providersDisabled,
|
|
18457
|
+
enabledProviders: ssoEnabledProviders
|
|
18458
|
+
}
|
|
18459
|
+
)
|
|
18460
|
+
] })
|
|
18461
|
+
]
|
|
18462
|
+
},
|
|
18463
|
+
tenantMethods ? `tenant:${_nullishCoalesce(tenantMethods.name, () => ( ""))}` : "generic"
|
|
18464
|
+
),
|
|
18410
18465
|
termsUrl && privacyPolicyUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LegalLinks, { termsUrl, privacyPolicyUrl })
|
|
18411
18466
|
]
|
|
18412
18467
|
}
|
|
@@ -18464,8 +18519,8 @@ function OpenFrameSsoLoginForm({
|
|
|
18464
18519
|
className
|
|
18465
18520
|
}) {
|
|
18466
18521
|
const fieldsDisabled = disabled || loading;
|
|
18467
|
-
const emailErr =
|
|
18468
|
-
const passwordErr =
|
|
18522
|
+
const emailErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _383 => _383.email]), email);
|
|
18523
|
+
const passwordErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _384 => _384.password]), password);
|
|
18469
18524
|
const handleKeyDown = (event) => {
|
|
18470
18525
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
18471
18526
|
onSubmit();
|
|
@@ -18570,7 +18625,7 @@ function OpenFrameSsoSignUpForm({
|
|
|
18570
18625
|
className
|
|
18571
18626
|
}) {
|
|
18572
18627
|
const fieldsDisabled = disabled || loading;
|
|
18573
|
-
const emailErr =
|
|
18628
|
+
const emailErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _385 => _385.email]), email);
|
|
18574
18629
|
const handleKeyDown = (event) => {
|
|
18575
18630
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
18576
18631
|
onSubmit();
|
|
@@ -18675,8 +18730,8 @@ function PasswordResetForm({
|
|
|
18675
18730
|
className
|
|
18676
18731
|
}) {
|
|
18677
18732
|
const fieldsDisabled = disabled || loading;
|
|
18678
|
-
const passwordErr =
|
|
18679
|
-
const confirmErr =
|
|
18733
|
+
const passwordErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _386 => _386.password]), password);
|
|
18734
|
+
const confirmErr = _chunkVUWPLQBYcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _387 => _387.confirmPassword]), confirmPassword);
|
|
18680
18735
|
const handleKeyDown = (event) => {
|
|
18681
18736
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
18682
18737
|
onSubmit();
|
|
@@ -22211,14 +22266,14 @@ var MODEL_TOKEN_RATES_COPY = {
|
|
|
22211
22266
|
empty: "No token rates are in effect right now."
|
|
22212
22267
|
};
|
|
22213
22268
|
function providerMark(providerType, stated, className) {
|
|
22214
|
-
const Mark = _chunkKTPR66EEcjs.findIcon.call(void 0,
|
|
22269
|
+
const Mark = _chunkKTPR66EEcjs.findIcon.call(void 0, _chunkX4LAMJHDcjs.aiProvider.call(void 0, providerType, { icon: stated }).icon);
|
|
22215
22270
|
return Mark ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Mark, { className }) : void 0;
|
|
22216
22271
|
}
|
|
22217
22272
|
var PAD_X = "px-[var(--spacing-system-s)]";
|
|
22218
22273
|
var ROW = "flex items-center gap-[var(--spacing-system-s)]";
|
|
22219
22274
|
var NUMBER_CELL = "w-16 shrink-0 whitespace-nowrap text-right tabular-nums";
|
|
22220
22275
|
function useProviderGroup(rates) {
|
|
22221
|
-
const groups =
|
|
22276
|
+
const groups = _chunkX4LAMJHDcjs.groupTokenRatesByProvider.call(void 0, rates);
|
|
22222
22277
|
const [picked, setPicked] = _react.useState.call(void 0, null);
|
|
22223
22278
|
return { groups, group: _nullishCoalesce(groups.find((candidate) => candidate.providerType === picked), () => ( groups[0])), setPicked };
|
|
22224
22279
|
}
|
|
@@ -22229,7 +22284,7 @@ function ProviderTabs({
|
|
|
22229
22284
|
className
|
|
22230
22285
|
}) {
|
|
22231
22286
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
22232
|
-
|
|
22287
|
+
_chunkTPH4SRR2cjs.TabSelector,
|
|
22233
22288
|
{
|
|
22234
22289
|
variant: "secondary",
|
|
22235
22290
|
scrollable: true,
|
|
@@ -22237,7 +22292,7 @@ function ProviderTabs({
|
|
|
22237
22292
|
onValueChange,
|
|
22238
22293
|
items: groups.map((candidate) => ({
|
|
22239
22294
|
id: candidate.providerType,
|
|
22240
|
-
label:
|
|
22295
|
+
label: _chunkX4LAMJHDcjs.tokenRateProviderLabel.call(void 0, candidate.providerType, _optionalChain([candidate, 'access', _443 => _443.rates, 'access', _444 => _444[0], 'optionalAccess', _445 => _445.providerLabel])),
|
|
22241
22296
|
icon: providerMark(candidate.providerType, _optionalChain([candidate, 'access', _446 => _446.rates, 'access', _447 => _447[0], 'optionalAccess', _448 => _448.providerIcon]), "size-full")
|
|
22242
22297
|
})),
|
|
22243
22298
|
className
|
|
@@ -22338,8 +22393,8 @@ function ModelTokenRatesTable({ rates }) {
|
|
|
22338
22393
|
className: _chunk3ATAYP36cjs.cn.call(void 0, ROW, PAD_X, "py-[var(--spacing-system-xxs)] text-ods-text-primary text-h6"),
|
|
22339
22394
|
children: [
|
|
22340
22395
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "rowheader", className: "min-w-0 flex-1 truncate", children: rate.displayName || rate.modelName }),
|
|
22341
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children:
|
|
22342
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children:
|
|
22396
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkX4LAMJHDcjs.formatTokenRate.call(void 0, rate.inputTokenRate) }),
|
|
22397
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { role: "cell", className: NUMBER_CELL, children: _chunkX4LAMJHDcjs.formatTokenRate.call(void 0, rate.outputTokenRate) })
|
|
22343
22398
|
]
|
|
22344
22399
|
},
|
|
22345
22400
|
rate.modelName
|
|
@@ -22405,7 +22460,7 @@ function modelOption(rate) {
|
|
|
22405
22460
|
return {
|
|
22406
22461
|
label: rate.displayName || rate.modelName,
|
|
22407
22462
|
value: rate.modelName,
|
|
22408
|
-
description:
|
|
22463
|
+
description: _chunkX4LAMJHDcjs.tokenRateProviderLabel.call(void 0, rate.providerType, rate.providerLabel),
|
|
22409
22464
|
icon: providerMark(rate.providerType, rate.providerIcon, "size-full text-ods-text-secondary")
|
|
22410
22465
|
};
|
|
22411
22466
|
}
|
|
@@ -22459,8 +22514,8 @@ function ModelTokenExchange({
|
|
|
22459
22514
|
const [chosen, setChosen] = _react.useState.call(void 0, null);
|
|
22460
22515
|
const balance = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(chosen, () => ( defaultAmount)), () => ( _optionalChain([tokenPrice, 'optionalAccess', _449 => _449.tokens]))), () => ( MODEL_TOKEN_EXCHANGE_BALANCE));
|
|
22461
22516
|
const max = Math.max(amountRange.max, balance, ...presets.map((preset) => preset.tokens));
|
|
22462
|
-
const tokens =
|
|
22463
|
-
const cost =
|
|
22517
|
+
const tokens = _chunkX4LAMJHDcjs.formatTokenAmount.call(void 0, balance);
|
|
22518
|
+
const cost = _chunkX4LAMJHDcjs.tokenCost.call(void 0, balance, tokenPrice);
|
|
22464
22519
|
const balancePrice = cost === null ? null : _chunkJHQNUWFMcjs.formatPrice.call(void 0, cost);
|
|
22465
22520
|
const model = rate ? rate.displayName || rate.modelName : "";
|
|
22466
22521
|
const options = models.map(modelOption);
|
|
@@ -22502,7 +22557,7 @@ function ModelTokenExchange({
|
|
|
22502
22557
|
variant: preset.tokens === balance ? "accent" : "outline",
|
|
22503
22558
|
size: "small",
|
|
22504
22559
|
onClick: () => setChosen(preset.tokens),
|
|
22505
|
-
children: copy.buy.preset(
|
|
22560
|
+
children: copy.buy.preset(_chunkX4LAMJHDcjs.formatTokenAmount.call(void 0, preset.tokens), preset.label)
|
|
22506
22561
|
},
|
|
22507
22562
|
preset.label
|
|
22508
22563
|
)) })
|
|
@@ -22521,7 +22576,7 @@ function ModelTokenExchange({
|
|
|
22521
22576
|
const stated = _nullishCoalesce(models.find((option) => option.providerType === providerType), () => ( (_optionalChain([rate, 'optionalAccess', _450 => _450.providerType]) === providerType ? rate : null)));
|
|
22522
22577
|
return {
|
|
22523
22578
|
id: providerType,
|
|
22524
|
-
name:
|
|
22579
|
+
name: _chunkX4LAMJHDcjs.tokenRateProviderLabel.call(void 0, providerType, _optionalChain([stated, 'optionalAccess', _451 => _451.providerLabel])),
|
|
22525
22580
|
icon: providerMark(providerType, _optionalChain([stated, 'optionalAccess', _452 => _452.providerIcon]), "size-8 text-ods-text-secondary")
|
|
22526
22581
|
};
|
|
22527
22582
|
}),
|
|
@@ -22559,7 +22614,7 @@ function ModelTokenExchange({
|
|
|
22559
22614
|
{
|
|
22560
22615
|
size: "plain",
|
|
22561
22616
|
loading,
|
|
22562
|
-
figure:
|
|
22617
|
+
figure: _chunkX4LAMJHDcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _457 => _457.inputTokenRate])),
|
|
22563
22618
|
words: copy.charge.input
|
|
22564
22619
|
}
|
|
22565
22620
|
),
|
|
@@ -22568,7 +22623,7 @@ function ModelTokenExchange({
|
|
|
22568
22623
|
{
|
|
22569
22624
|
size: "plain",
|
|
22570
22625
|
loading,
|
|
22571
|
-
figure:
|
|
22626
|
+
figure: _chunkX4LAMJHDcjs.formatTokenRate.call(void 0, _optionalChain([rate, 'optionalAccess', _458 => _458.outputTokenRate])),
|
|
22572
22627
|
words: copy.charge.output
|
|
22573
22628
|
}
|
|
22574
22629
|
)
|
|
@@ -22580,9 +22635,9 @@ function ModelTokenExchange({
|
|
|
22580
22635
|
className: "mt-auto flex flex-col rounded-md border border-ods-accent bg-ods-bg p-[var(--spacing-system-mf)]",
|
|
22581
22636
|
children: [
|
|
22582
22637
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[2lh] text-ods-text-secondary text-h4", children: loading || !rate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2YXOD2KLcjs.UnifiedSkeleton, { as: "span", "aria-hidden": true, className: _chunk3ATAYP36cjs.cn.call(void 0, FIGURE_SKELETON_CLASS, "w-full max-w-xs") }) : copy.charge.so(_nullishCoalesce(balancePrice, () => ( copy.buy.tokens(tokens))), model) }),
|
|
22583
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] whitespace-nowrap tabular-nums text-ods-text-primary text-h1", children: loading || !rate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2YXOD2KLcjs.UnifiedSkeleton, { as: "span", "aria-hidden": true, className: _chunk3ATAYP36cjs.cn.call(void 0, FIGURE_SKELETON_CLASS, "w-40") }) :
|
|
22638
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] whitespace-nowrap tabular-nums text-ods-text-primary text-h1", children: loading || !rate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2YXOD2KLcjs.UnifiedSkeleton, { as: "span", "aria-hidden": true, className: _chunk3ATAYP36cjs.cn.call(void 0, FIGURE_SKELETON_CLASS, "w-40") }) : _chunkX4LAMJHDcjs.formatTokenAmount.call(void 0, _chunkX4LAMJHDcjs.tokensForBalance.call(void 0, balance, rate.inputTokenRate)) }),
|
|
22584
22639
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] text-ods-text-primary text-h3", children: copy.charge.read }),
|
|
22585
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] text-ods-text-secondary text-h4", children: loading || !rate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2YXOD2KLcjs.UnifiedSkeleton, { as: "span", "aria-hidden": true, className: _chunk3ATAYP36cjs.cn.call(void 0, FIGURE_SKELETON_CLASS, "w-48") }) : copy.charge.orWritten(
|
|
22640
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-h-[1lh] text-ods-text-secondary text-h4", children: loading || !rate ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2YXOD2KLcjs.UnifiedSkeleton, { as: "span", "aria-hidden": true, className: _chunk3ATAYP36cjs.cn.call(void 0, FIGURE_SKELETON_CLASS, "w-48") }) : copy.charge.orWritten(_chunkX4LAMJHDcjs.formatTokenAmount.call(void 0, _chunkX4LAMJHDcjs.tokensForBalance.call(void 0, balance, rate.outputTokenRate))) })
|
|
22586
22641
|
]
|
|
22587
22642
|
}
|
|
22588
22643
|
)
|
|
@@ -23080,14 +23135,14 @@ var ConfidenceBadge = ({
|
|
|
23080
23135
|
size = "sm",
|
|
23081
23136
|
className
|
|
23082
23137
|
}) => {
|
|
23083
|
-
const level =
|
|
23138
|
+
const level = _chunkX4LAMJHDcjs.getConfidenceLevel.call(void 0, confidence);
|
|
23084
23139
|
if (level === "none") {
|
|
23085
23140
|
return null;
|
|
23086
23141
|
}
|
|
23087
|
-
const label =
|
|
23088
|
-
const borderClass =
|
|
23089
|
-
const textClass =
|
|
23090
|
-
const bgClass =
|
|
23142
|
+
const label = _chunkX4LAMJHDcjs.getConfidenceLabel.call(void 0, confidence);
|
|
23143
|
+
const borderClass = _chunkX4LAMJHDcjs.getConfidenceBorderClass.call(void 0, confidence);
|
|
23144
|
+
const textClass = _chunkX4LAMJHDcjs.getConfidenceTextClass.call(void 0, confidence);
|
|
23145
|
+
const bgClass = _chunkX4LAMJHDcjs.getConfidenceBgClass.call(void 0, confidence);
|
|
23091
23146
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
23092
23147
|
"span",
|
|
23093
23148
|
{
|
|
@@ -23138,9 +23193,9 @@ function SEOEditorPreview({
|
|
|
23138
23193
|
const [isUploading, setIsUploading] = _react.useState.call(void 0, false);
|
|
23139
23194
|
const [fileInputRef, setFileInputRef] = _react.useState.call(void 0, null);
|
|
23140
23195
|
const seoTitleLength = (seoTitle || "").length;
|
|
23141
|
-
const seoTitleTooLong = seoTitleLength >
|
|
23196
|
+
const seoTitleTooLong = seoTitleLength > _chunkX4LAMJHDcjs.SEO_TITLE_MAX_LENGTH;
|
|
23142
23197
|
const seoDescriptionLength = (seoDescription || "").length;
|
|
23143
|
-
const seoDescriptionTooLong = seoDescriptionLength >
|
|
23198
|
+
const seoDescriptionTooLong = seoDescriptionLength > _chunkX4LAMJHDcjs.SEO_DESCRIPTION_MAX_LENGTH;
|
|
23144
23199
|
const displayTitle = seoTitle.trim() || title || "Untitled";
|
|
23145
23200
|
const displayDescription = seoDescription.trim() || summary || "No description";
|
|
23146
23201
|
const hasOgImage = ogImageUrl.trim();
|
|
@@ -23165,10 +23220,10 @@ function SEOEditorPreview({
|
|
|
23165
23220
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-lg:grid-cols-2", children: [
|
|
23166
23221
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
23167
23222
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23168
|
-
|
|
23223
|
+
_chunkX4LAMJHDcjs.Field,
|
|
23169
23224
|
{
|
|
23170
23225
|
label: "SEO Title",
|
|
23171
|
-
error: seoTitleTooLong ? `Too long: search engines may truncate this title (keep it under ${
|
|
23226
|
+
error: seoTitleTooLong ? `Too long: search engines may truncate this title (keep it under ${_chunkX4LAMJHDcjs.SEO_TITLE_MAX_LENGTH})` : null,
|
|
23172
23227
|
labelExtras: aiConfidenceSeoTitle !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
23173
23228
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, AIGeneratedBadge, {}),
|
|
23174
23229
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ConfidenceBadge, { confidence: aiConfidenceSeoTitle, showLabel: true, showPercentage: true, size: "sm" })
|
|
@@ -23183,7 +23238,7 @@ function SEOEditorPreview({
|
|
|
23183
23238
|
children: [
|
|
23184
23239
|
seoTitleLength,
|
|
23185
23240
|
"/",
|
|
23186
|
-
|
|
23241
|
+
_chunkX4LAMJHDcjs.SEO_TITLE_MAX_LENGTH
|
|
23187
23242
|
]
|
|
23188
23243
|
}
|
|
23189
23244
|
),
|
|
@@ -23194,7 +23249,7 @@ function SEOEditorPreview({
|
|
|
23194
23249
|
value: seoTitle || "",
|
|
23195
23250
|
onChange: (e) => onSeoTitleChange(e.target.value),
|
|
23196
23251
|
disabled,
|
|
23197
|
-
maxLength:
|
|
23252
|
+
maxLength: _chunkX4LAMJHDcjs.SEO_TITLE_MAX_LENGTH,
|
|
23198
23253
|
invalid: seoTitleTooLong,
|
|
23199
23254
|
placeholder: "Enter SEO meta title...",
|
|
23200
23255
|
className: "border-ods-border bg-ods-bg text-ods-text-primary"
|
|
@@ -23205,7 +23260,7 @@ function SEOEditorPreview({
|
|
|
23205
23260
|
!seoTitle && title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-accent text-h6", children: "Auto-populated from title" })
|
|
23206
23261
|
] }),
|
|
23207
23262
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23208
|
-
|
|
23263
|
+
_chunkX4LAMJHDcjs.Field,
|
|
23209
23264
|
{
|
|
23210
23265
|
label: "SEO Keywords",
|
|
23211
23266
|
labelExtras: aiConfidenceSeoKeywords !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -23237,10 +23292,10 @@ function SEOEditorPreview({
|
|
|
23237
23292
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-lg:grid-cols-2", children: [
|
|
23238
23293
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
|
|
23239
23294
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23240
|
-
|
|
23295
|
+
_chunkX4LAMJHDcjs.Field,
|
|
23241
23296
|
{
|
|
23242
23297
|
label: "SEO Description",
|
|
23243
|
-
error: seoDescriptionTooLong ? `Too long: search engines may truncate this description (keep it under ${
|
|
23298
|
+
error: seoDescriptionTooLong ? `Too long: search engines may truncate this description (keep it under ${_chunkX4LAMJHDcjs.SEO_DESCRIPTION_MAX_LENGTH})` : null,
|
|
23244
23299
|
labelExtras: aiConfidenceSeoDescription !== void 0 ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
23245
23300
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, AIGeneratedBadge, {}),
|
|
23246
23301
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -23263,7 +23318,7 @@ function SEOEditorPreview({
|
|
|
23263
23318
|
children: [
|
|
23264
23319
|
seoDescriptionLength,
|
|
23265
23320
|
"/",
|
|
23266
|
-
|
|
23321
|
+
_chunkX4LAMJHDcjs.SEO_DESCRIPTION_MAX_LENGTH
|
|
23267
23322
|
]
|
|
23268
23323
|
}
|
|
23269
23324
|
),
|
|
@@ -23274,7 +23329,7 @@ function SEOEditorPreview({
|
|
|
23274
23329
|
value: seoDescription || "",
|
|
23275
23330
|
onChange: (e) => onSeoDescriptionChange(e.target.value),
|
|
23276
23331
|
disabled,
|
|
23277
|
-
maxLength:
|
|
23332
|
+
maxLength: _chunkX4LAMJHDcjs.SEO_DESCRIPTION_MAX_LENGTH,
|
|
23278
23333
|
invalid: seoDescriptionTooLong,
|
|
23279
23334
|
placeholder: "Enter SEO meta description...",
|
|
23280
23335
|
className: _chunk3ATAYP36cjs.cn.call(void 0, "resize-none border-ods-border bg-ods-bg text-ods-text-primary", SEO_MEDIA_BOX_HEIGHT)
|
|
@@ -23427,7 +23482,7 @@ function socialIcon(platform) {
|
|
|
23427
23482
|
return _nullishCoalesce(_chunkKTPR66EEcjs.iconOf.call(void 0, SOCIAL_ICONS[platform]), () => ( void 0));
|
|
23428
23483
|
}
|
|
23429
23484
|
function renderSocialIcon(platform) {
|
|
23430
|
-
const key = _nullishCoalesce(
|
|
23485
|
+
const key = _nullishCoalesce(_chunkX4LAMJHDcjs.normalizeSocialPlatform.call(void 0, platform), () => ( "website"));
|
|
23431
23486
|
const icon = _nullishCoalesce(socialIcon(key), () => ( socialIcon("website")));
|
|
23432
23487
|
return icon ? _react.createElement.call(void 0, icon, { className: "h-5 w-5" }) : null;
|
|
23433
23488
|
}
|
|
@@ -23510,7 +23565,7 @@ function SocialLinksManager({
|
|
|
23510
23565
|
};
|
|
23511
23566
|
const getIcon = (link, platform) => {
|
|
23512
23567
|
const iconKey = _optionalChain([platform, 'optionalAccess', _468 => _468.icon_name]) || link.platform;
|
|
23513
|
-
const key =
|
|
23568
|
+
const key = _chunkX4LAMJHDcjs.normalizeSocialPlatform.call(void 0, iconKey);
|
|
23514
23569
|
if (!key) return null;
|
|
23515
23570
|
const icon = socialIcon(key);
|
|
23516
23571
|
return icon ? _react.createElement.call(void 0, icon, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
|
|
@@ -23920,7 +23975,7 @@ function VideoBitesDisplay({
|
|
|
23920
23975
|
filterPublished = true,
|
|
23921
23976
|
showTitle = true
|
|
23922
23977
|
}) {
|
|
23923
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
23978
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTPH4SRR2cjs.VideoBitesStrip, { bites, title, filterPublished, showTitle });
|
|
23924
23979
|
}
|
|
23925
23980
|
|
|
23926
23981
|
// src/components/features/walkthrough-video.tsx
|
|
@@ -23948,7 +24003,7 @@ function WalkthroughVideo({
|
|
|
23948
24003
|
onOpenChange,
|
|
23949
24004
|
defaultOpen,
|
|
23950
24005
|
defaultOpenPaused,
|
|
23951
|
-
deepLinkParam =
|
|
24006
|
+
deepLinkParam = _chunkX4LAMJHDcjs.WALKTHROUGH_OPEN_QUERY_PARAM,
|
|
23952
24007
|
autoPlayCard = false,
|
|
23953
24008
|
label = "Play Demo Video",
|
|
23954
24009
|
placement,
|
|
@@ -23964,7 +24019,7 @@ function WalkthroughVideo({
|
|
|
23964
24019
|
}) {
|
|
23965
24020
|
const inline = placement === "inline";
|
|
23966
24021
|
const dismissEnabled = dismissal !== false;
|
|
23967
|
-
const storageKey = dismissEnabled && dismissal.storageKey ||
|
|
24022
|
+
const storageKey = dismissEnabled && dismissal.storageKey || _chunkX4LAMJHDcjs.WALKTHROUGH_VIDEO_DISMISS_KEY;
|
|
23968
24023
|
const dismissalId = _optionalChain([video, 'optionalAccess', _474 => _474.id]) != null ? String(video.id) : "dismissed";
|
|
23969
24024
|
const [mounted, setMounted] = _react.useState.call(void 0, false);
|
|
23970
24025
|
const [dismissed, setDismissed] = _react.useState.call(void 0, false);
|
|
@@ -23976,7 +24031,7 @@ function WalkthroughVideo({
|
|
|
23976
24031
|
let delayElapsed = false;
|
|
23977
24032
|
let interacted = inline;
|
|
23978
24033
|
const reveal = () => {
|
|
23979
|
-
if (dismissEnabled &&
|
|
24034
|
+
if (dismissEnabled && _chunkX4LAMJHDcjs.isWalkthroughDismissed.call(void 0, storageKey, dismissalId)) {
|
|
23980
24035
|
setDismissed(true);
|
|
23981
24036
|
return;
|
|
23982
24037
|
}
|
|
@@ -24013,7 +24068,7 @@ function WalkthroughVideo({
|
|
|
24013
24068
|
if (idleHandle !== null && typeof cic === "function") cic(idleHandle);
|
|
24014
24069
|
};
|
|
24015
24070
|
}, [appearDelayMs, dismissEnabled, storageKey, dismissalId, hasVideo, videoId, inline]);
|
|
24016
|
-
const hydrated =
|
|
24071
|
+
const hydrated = _chunkTPH4SRR2cjs.useIsHydrated.call(void 0, );
|
|
24017
24072
|
const previewSuppressed = _react.useMemo.call(void 0, () => {
|
|
24018
24073
|
if (!hydrated) return false;
|
|
24019
24074
|
try {
|
|
@@ -24263,7 +24318,7 @@ function WalkthroughVideo({
|
|
|
24263
24318
|
(e) => {
|
|
24264
24319
|
e.stopPropagation();
|
|
24265
24320
|
pausePreviewNow();
|
|
24266
|
-
if (dismissEnabled)
|
|
24321
|
+
if (dismissEnabled) _chunkX4LAMJHDcjs.dismissWalkthrough.call(void 0, storageKey, dismissalId);
|
|
24267
24322
|
setDismissed(true);
|
|
24268
24323
|
},
|
|
24269
24324
|
[dismissEnabled, storageKey, dismissalId, pausePreviewNow]
|
|
@@ -24436,7 +24491,7 @@ function WalkthroughVideo({
|
|
|
24436
24491
|
`card-${embedUrlKey}`
|
|
24437
24492
|
) }),
|
|
24438
24493
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24439
|
-
|
|
24494
|
+
_chunkTPH4SRR2cjs.CardHitLayer,
|
|
24440
24495
|
{
|
|
24441
24496
|
label: video.title ? `${label}: ${video.title}` : label,
|
|
24442
24497
|
onPointerDown: pausePreviewNow,
|
|
@@ -24602,7 +24657,7 @@ function InlineWalkthroughVideo(props) {
|
|
|
24602
24657
|
var _reactquery = require('@tanstack/react-query');
|
|
24603
24658
|
function useWalkthroughVideo(opts) {
|
|
24604
24659
|
const { endpoint, initialData, enabled = true, transformCaptionsUrl } = opts;
|
|
24605
|
-
const captions =
|
|
24660
|
+
const captions = _chunkTPH4SRR2cjs.useCaptions.call(void 0, );
|
|
24606
24661
|
const query = _reactquery.useQuery.call(void 0, {
|
|
24607
24662
|
queryKey: ["walkthrough-video", endpoint],
|
|
24608
24663
|
enabled,
|
|
@@ -25351,7 +25406,7 @@ function HighlightConfigSection({
|
|
|
25351
25406
|
disabled = false,
|
|
25352
25407
|
className = ""
|
|
25353
25408
|
}) {
|
|
25354
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `space-y-3 rounded-lg border border-ods-border bg-ods-card p-4 ${className}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25409
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `space-y-3 rounded-lg border border-ods-border bg-ods-card p-4 ${className}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkX4LAMJHDcjs.Field, { label: "Target Duration", children: (f) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
25355
25410
|
_chunkALPRQ3ZXcjs.Select,
|
|
25356
25411
|
{
|
|
25357
25412
|
value: targetDurationSeconds.toString(),
|
|
@@ -25452,7 +25507,7 @@ var AIStatusIndicator = ({
|
|
|
25452
25507
|
}) => {
|
|
25453
25508
|
const config = statusConfig[status];
|
|
25454
25509
|
const displayText = message || config.label;
|
|
25455
|
-
const confidenceLabel = showConfidence && confidence !== void 0 ? `${
|
|
25510
|
+
const confidenceLabel = showConfidence && confidence !== void 0 ? `${_chunkX4LAMJHDcjs.getConfidenceLabel.call(void 0, confidence)} (${confidence}%)` : null;
|
|
25456
25511
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "inline-flex items-center gap-2 rounded-lg px-3 py-1.5", config.bgColor, className), children: [
|
|
25457
25512
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25458
25513
|
_chunkUNFCRSYIcjs.SparklesIcon,
|
|
@@ -25460,7 +25515,7 @@ var AIStatusIndicator = ({
|
|
|
25460
25515
|
size: 16,
|
|
25461
25516
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
25462
25517
|
status === "loading" && "animate-pulse",
|
|
25463
|
-
confidence !== void 0 && status === "success" ?
|
|
25518
|
+
confidence !== void 0 && status === "success" ? _chunkX4LAMJHDcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
|
|
25464
25519
|
)
|
|
25465
25520
|
}
|
|
25466
25521
|
),
|
|
@@ -25469,7 +25524,7 @@ var AIStatusIndicator = ({
|
|
|
25469
25524
|
{
|
|
25470
25525
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
25471
25526
|
"text-h6",
|
|
25472
|
-
confidence !== void 0 && status === "success" ?
|
|
25527
|
+
confidence !== void 0 && status === "success" ? _chunkX4LAMJHDcjs.getConfidenceTextClass.call(void 0, confidence) : config.color
|
|
25473
25528
|
),
|
|
25474
25529
|
children: displayText
|
|
25475
25530
|
}
|
|
@@ -25479,8 +25534,8 @@ var AIStatusIndicator = ({
|
|
|
25479
25534
|
{
|
|
25480
25535
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
25481
25536
|
"rounded-full border px-2 py-0.5 text-h6",
|
|
25482
|
-
|
|
25483
|
-
|
|
25537
|
+
_chunkX4LAMJHDcjs.getConfidenceBorderClass.call(void 0, confidence),
|
|
25538
|
+
_chunkX4LAMJHDcjs.getConfidenceTextClass.call(void 0, confidence)
|
|
25484
25539
|
),
|
|
25485
25540
|
children: confidenceLabel
|
|
25486
25541
|
}
|
|
@@ -26376,7 +26431,7 @@ function PoliciesTable({
|
|
|
26376
26431
|
cell: ({ row }) => row.original.href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26377
26432
|
_chunk2QMBXGMQcjs.Button,
|
|
26378
26433
|
{
|
|
26379
|
-
onClick:
|
|
26434
|
+
onClick: _chunkX4LAMJHDcjs.openInNewTab.call(void 0, row.original.href),
|
|
26380
26435
|
variant: "outline",
|
|
26381
26436
|
size: "icon",
|
|
26382
26437
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
|
|
@@ -26702,7 +26757,7 @@ function TenantsTableView({
|
|
|
26702
26757
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26703
26758
|
_chunk2QMBXGMQcjs.Button,
|
|
26704
26759
|
{
|
|
26705
|
-
onClick:
|
|
26760
|
+
onClick: _chunkX4LAMJHDcjs.openInNewTab.call(void 0, getHref(row.original)),
|
|
26706
26761
|
variant: "outline",
|
|
26707
26762
|
size: "icon",
|
|
26708
26763
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
|
|
@@ -26780,13 +26835,13 @@ function WaitlistForm({
|
|
|
26780
26835
|
const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
|
|
26781
26836
|
const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
|
|
26782
26837
|
const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
|
|
26783
|
-
const { toast } =
|
|
26784
|
-
const { honeypotInputProps, getSignals, resetSignals } =
|
|
26838
|
+
const { toast } = _chunkVUWPLQBYcjs.useToast.call(void 0, );
|
|
26839
|
+
const { honeypotInputProps, getSignals, resetSignals } = _chunkVUWPLQBYcjs.useHumanitySignals.call(void 0, );
|
|
26785
26840
|
const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
|
|
26786
|
-
const isClient =
|
|
26841
|
+
const isClient = _chunkTPH4SRR2cjs.useIsHydrated.call(void 0, );
|
|
26787
26842
|
const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
|
|
26788
26843
|
const [showConsentError, setShowConsentError] = _react.useState.call(void 0, false);
|
|
26789
|
-
const rescue =
|
|
26844
|
+
const rescue = _chunkVUWPLQBYcjs.useFormRescue.call(void 0, {
|
|
26790
26845
|
form: rescueForm,
|
|
26791
26846
|
// The phone is reported as filled only; its value never leaves the form early.
|
|
26792
26847
|
fieldNames: ["email", "phone"],
|
|
@@ -26798,7 +26853,7 @@ function WaitlistForm({
|
|
|
26798
26853
|
_react.useEffect.call(void 0, () => {
|
|
26799
26854
|
rescue.track({ email, phone }, null);
|
|
26800
26855
|
}, [email, phone, rescue]);
|
|
26801
|
-
const isMailDomainGeneric =
|
|
26856
|
+
const isMailDomainGeneric = _chunkX4LAMJHDcjs.hasGenericEmailDomain.call(void 0, email);
|
|
26802
26857
|
const [syncedDefaultEmail, setSyncedDefaultEmail] = _react.useState.call(void 0, defaultEmail);
|
|
26803
26858
|
if (syncedDefaultEmail !== defaultEmail) {
|
|
26804
26859
|
setSyncedDefaultEmail(defaultEmail);
|
|
@@ -26832,7 +26887,7 @@ function WaitlistForm({
|
|
|
26832
26887
|
setShowConsentError(true);
|
|
26833
26888
|
return;
|
|
26834
26889
|
}
|
|
26835
|
-
const finalPhone = phone ?
|
|
26890
|
+
const finalPhone = phone ? _chunkX4LAMJHDcjs.formatPhoneE164.call(void 0, phone, countryCode) : void 0;
|
|
26836
26891
|
try {
|
|
26837
26892
|
await onRegister(email, finalPhone, getSignals(), rescue.submitFields());
|
|
26838
26893
|
rescue.complete();
|
|
@@ -27555,7 +27610,7 @@ var typeColorByVariant = {
|
|
|
27555
27610
|
error: "text-ods-error"
|
|
27556
27611
|
};
|
|
27557
27612
|
var progressColorByVariant2 = {
|
|
27558
|
-
...
|
|
27613
|
+
..._chunkVUWPLQBYcjs.progressColorByVariant,
|
|
27559
27614
|
default: "bg-ods-accent",
|
|
27560
27615
|
info: "bg-ods-accent"
|
|
27561
27616
|
};
|
|
@@ -27632,7 +27687,7 @@ function NotificationTile({
|
|
|
27632
27687
|
height: 16,
|
|
27633
27688
|
unoptimized: true
|
|
27634
27689
|
}
|
|
27635
|
-
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk3ATAYP36cjs.cn.call(void 0, "size-1.5 rounded-full",
|
|
27690
|
+
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk3ATAYP36cjs.cn.call(void 0, "size-1.5 rounded-full", _chunkVUWPLQBYcjs.dotColorByVariant[accentVariant]) }))) }),
|
|
27636
27691
|
type ? lockscreen ? (
|
|
27637
27692
|
// A phone names the sender in plain words and never cuts them.
|
|
27638
27693
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "min-w-0 flex-1 break-words text-ods-text-secondary text-h6", children: type })
|
|
@@ -27940,7 +27995,7 @@ function ShowNotificationsToggleRow({ checked, onChange }) {
|
|
|
27940
27995
|
] });
|
|
27941
27996
|
}
|
|
27942
27997
|
function DesktopNotificationsToggleRow({ checked, onChange }) {
|
|
27943
|
-
const { supported, permission, request } =
|
|
27998
|
+
const { supported, permission, request } = _chunkVUWPLQBYcjs.useNotificationPermission.call(void 0, );
|
|
27944
27999
|
if (!supported) return null;
|
|
27945
28000
|
const blocked = permission === "denied";
|
|
27946
28001
|
const handleChange = async (value) => {
|
|
@@ -28948,7 +29003,7 @@ function getDeviceStatusConfig(status) {
|
|
|
28948
29003
|
}
|
|
28949
29004
|
}
|
|
28950
29005
|
function getDeviceOperatingSystem(osType) {
|
|
28951
|
-
return
|
|
29006
|
+
return _chunkX4LAMJHDcjs.getOSPlatformId.call(void 0, osType);
|
|
28952
29007
|
}
|
|
28953
29008
|
|
|
28954
29009
|
// src/components/features/devices/device-statuses.ts
|
|
@@ -30270,7 +30325,7 @@ function DevicesList({
|
|
|
30270
30325
|
const handleClearAll = _react.useCallback.call(void 0, () => patch({ search: "", tags: [] }), [patch]);
|
|
30271
30326
|
const narrowed = isNarrowed(narrowing);
|
|
30272
30327
|
const isEmptyState = !isLoading && !isPending && !narrowed && devices.length === 0;
|
|
30273
|
-
const { toolbarRef, containerStyle, stickyHeaderOffset: measuredOffset } =
|
|
30328
|
+
const { toolbarRef, containerStyle, stickyHeaderOffset: measuredOffset } = _chunkVUWPLQBYcjs.useStickyToolbar.call(void 0, );
|
|
30274
30329
|
const headerOffset = _nullishCoalesce(stickyHeaderOffset, () => ( (stickyToolbar ? measuredOffset : void 0)));
|
|
30275
30330
|
const actionsColumn = _react.useMemo.call(void 0, () => rowActions ? getDeviceActionsColumn(rowActions) : void 0, [rowActions]);
|
|
30276
30331
|
return (
|
|
@@ -30503,7 +30558,7 @@ function DevicesPanelView({
|
|
|
30503
30558
|
actionsVariant: "icon-buttons",
|
|
30504
30559
|
className,
|
|
30505
30560
|
selector: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30506
|
-
|
|
30561
|
+
_chunkTPH4SRR2cjs.TabSelector,
|
|
30507
30562
|
{
|
|
30508
30563
|
value: viewMode,
|
|
30509
30564
|
onValueChange: (value) => _optionalChain([onViewModeChange, 'optionalCall', _655 => _655(value)]),
|
|
@@ -31019,10 +31074,10 @@ var ToolBadge = ({
|
|
|
31019
31074
|
className,
|
|
31020
31075
|
iconClassName
|
|
31021
31076
|
}) => {
|
|
31022
|
-
const text = _nullishCoalesce(label, () => ( (toolType ?
|
|
31077
|
+
const text = _nullishCoalesce(label, () => ( (toolType ? _chunkX4LAMJHDcjs.getToolLabel.call(void 0, toolType) : "")));
|
|
31023
31078
|
const mark = _nullishCoalesce(icon, () => ( (toolType ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWI2OTGKCcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }) : null)));
|
|
31024
31079
|
const linked = (node, linkClassName) => href && targetPlatform ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31025
|
-
|
|
31080
|
+
_chunkTPH4SRR2cjs.NavLinkAnchorViaRuntime,
|
|
31026
31081
|
{
|
|
31027
31082
|
href,
|
|
31028
31083
|
targetPlatform,
|
|
@@ -31129,7 +31184,7 @@ function LogsTableView({
|
|
|
31129
31184
|
cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31130
31185
|
ToolBadge,
|
|
31131
31186
|
{
|
|
31132
|
-
toolType:
|
|
31187
|
+
toolType: _chunkX4LAMJHDcjs.normalizeToolTypeWithFallback.call(void 0, row.original.source.toolType),
|
|
31133
31188
|
iconClassName: "h-4 w-4 content-md:h-6 content-md:w-6"
|
|
31134
31189
|
}
|
|
31135
31190
|
),
|
|
@@ -31141,7 +31196,7 @@ function LogsTableView({
|
|
|
31141
31196
|
filter: {
|
|
31142
31197
|
options: _nullishCoalesce(_optionalChain([facets, 'optionalAccess', _663 => _663.toolTypes, 'access', _664 => _664.map, 'call', _665 => _665((toolType) => ({
|
|
31143
31198
|
id: toolType,
|
|
31144
|
-
label:
|
|
31199
|
+
label: _chunkX4LAMJHDcjs.toToolLabel.call(void 0, toolType),
|
|
31145
31200
|
value: toolType
|
|
31146
31201
|
}))]), () => ( []))
|
|
31147
31202
|
}
|
|
@@ -31199,7 +31254,7 @@ function LogsTableView({
|
|
|
31199
31254
|
cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31200
31255
|
_chunk2QMBXGMQcjs.Button,
|
|
31201
31256
|
{
|
|
31202
|
-
onClick: getLogHref ?
|
|
31257
|
+
onClick: getLogHref ? _chunkX4LAMJHDcjs.openInNewTab.call(void 0, getLogHref(row.original)) : void 0,
|
|
31203
31258
|
variant: "outline",
|
|
31204
31259
|
size: "icon",
|
|
31205
31260
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
|
|
@@ -31574,7 +31629,7 @@ function OpenInNewTabCell({ href }) {
|
|
|
31574
31629
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31575
31630
|
_chunk2QMBXGMQcjs.Button,
|
|
31576
31631
|
{
|
|
31577
|
-
onClick:
|
|
31632
|
+
onClick: _chunkX4LAMJHDcjs.openInNewTab.call(void 0, href),
|
|
31578
31633
|
variant: "outline",
|
|
31579
31634
|
size: "icon",
|
|
31580
31635
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
|
|
@@ -31723,9 +31778,9 @@ function ScriptSchedulesTable({
|
|
|
31723
31778
|
|
|
31724
31779
|
// src/components/features/scripts/shell-types.ts
|
|
31725
31780
|
var SCRIPT_SHELL_TYPES = [
|
|
31726
|
-
{ id:
|
|
31727
|
-
{ id:
|
|
31728
|
-
{ id:
|
|
31781
|
+
{ id: _chunkX4LAMJHDcjs.ShellTypeValues.POWERSHELL, label: "PowerShell", value: "powershell", icon: _chunkMCQY746Mcjs.PowershellLogoGreyIcon },
|
|
31782
|
+
{ id: _chunkX4LAMJHDcjs.ShellTypeValues.CMD, label: "CMD", value: "cmd", icon: _chunkNIVJEJSGcjs.TerminalSquareIcon },
|
|
31783
|
+
{ id: _chunkX4LAMJHDcjs.ShellTypeValues.BASH, label: "Bash", value: "bash", icon: _chunkTRUW6DDAcjs.TerminalIcon }
|
|
31729
31784
|
];
|
|
31730
31785
|
function scriptShellType(value) {
|
|
31731
31786
|
return SCRIPT_SHELL_TYPES.find((shell) => shell.value === value);
|
|
@@ -33158,7 +33213,7 @@ function ScheduleFormFields({
|
|
|
33158
33213
|
disabled = false,
|
|
33159
33214
|
renderScriptSearch,
|
|
33160
33215
|
timeReferenceGate = "off",
|
|
33161
|
-
platforms =
|
|
33216
|
+
platforms = _chunkX4LAMJHDcjs.OS_PLATFORMS,
|
|
33162
33217
|
comingSoonPlatforms = [],
|
|
33163
33218
|
getTimeSlots,
|
|
33164
33219
|
nameLayout = "stacked",
|
|
@@ -33304,7 +33359,7 @@ function ScheduleFormFields({
|
|
|
33304
33359
|
// src/components/features/scripts/schedule-form/schedule-script-search-field.tsx
|
|
33305
33360
|
|
|
33306
33361
|
function ScriptPlatformIcons({ platforms }) {
|
|
33307
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex shrink-0 items-center gap-0.5", children:
|
|
33362
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "inline-flex shrink-0 items-center gap-0.5", children: _chunkX4LAMJHDcjs.OS_PLATFORMS.filter((p) => platforms.includes(p.id)).map((p) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, p.icon, { className: "h-3.5 w-3.5 text-ods-text-secondary opacity-60" }, p.id)) });
|
|
33308
33363
|
}
|
|
33309
33364
|
function ScheduleScriptSearchField({
|
|
33310
33365
|
scriptId,
|
|
@@ -33377,7 +33432,7 @@ function getKnowledgeBaseOpenColumn(getHref) {
|
|
|
33377
33432
|
cell: ({ row }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-no-row-click": true, className: "pointer-events-auto flex items-center justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33378
33433
|
_chunk2QMBXGMQcjs.Button,
|
|
33379
33434
|
{
|
|
33380
|
-
onClick:
|
|
33435
|
+
onClick: _chunkX4LAMJHDcjs.openInNewTab.call(void 0, getHref(row.original)),
|
|
33381
33436
|
variant: "outline",
|
|
33382
33437
|
size: "icon",
|
|
33383
33438
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANTDIQKKcjs.ArrowRightUpIcon, { className: "h-5 w-5" }),
|
|
@@ -33625,13 +33680,13 @@ function ConversationCard({
|
|
|
33625
33680
|
),
|
|
33626
33681
|
style: tint,
|
|
33627
33682
|
children: [
|
|
33628
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33683
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkX4LAMJHDcjs.ChatTurn, { avatar: requester.avatar, name: requester.name, meta: requester.meta, time: requester.time, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "m-0 line-clamp-2 min-h-[2lh] text-ods-text-primary text-h3", title: request, children: [
|
|
33629
33684
|
"\u201C",
|
|
33630
33685
|
request,
|
|
33631
33686
|
"\u201D"
|
|
33632
33687
|
] }) }),
|
|
33633
33688
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
33634
|
-
|
|
33689
|
+
_chunkX4LAMJHDcjs.ChatTurn,
|
|
33635
33690
|
{
|
|
33636
33691
|
avatar: responder.avatar,
|
|
33637
33692
|
name: responder.name,
|