@flamingo-stack/openframe-frontend-core 0.0.206 → 0.0.207-snapshot.20260526023528
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-4XLJWX2N.js +12 -0
- package/dist/chunk-4XLJWX2N.js.map +1 -0
- package/dist/{chunk-OLTGB32E.js → chunk-6WMMLMKM.js} +2857 -2045
- package/dist/chunk-6WMMLMKM.js.map +1 -0
- package/dist/chunk-VFKQMAUF.cjs +12 -0
- package/dist/chunk-VFKQMAUF.cjs.map +1 -0
- package/dist/{chunk-YGOJIDL5.cjs → chunk-WYLNTZZ7.cjs} +1343 -531
- package/dist/chunk-WYLNTZZ7.cjs.map +1 -0
- package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +3 -2
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +2 -1
- package/dist/components/chat/types/api.types.d.ts +17 -1
- package/dist/components/chat/types/api.types.d.ts.map +1 -1
- package/dist/components/features/index.cjs +3 -2
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +2 -1
- package/dist/components/index.cjs +21 -2
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +20 -1
- package/dist/components/navigation/index.cjs +3 -2
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +2 -1
- package/dist/components/shared/delivery/delivery-lists.d.ts +16 -0
- package/dist/components/shared/delivery/delivery-lists.d.ts.map +1 -0
- package/dist/components/shared/delivery/delivery-table.d.ts +12 -0
- package/dist/components/shared/delivery/delivery-table.d.ts.map +1 -0
- package/dist/components/shared/delivery/index.d.ts +3 -0
- package/dist/components/shared/delivery/index.d.ts.map +1 -0
- package/dist/components/shared/dev-section/dev-section-page.d.ts +31 -0
- package/dist/components/shared/dev-section/dev-section-page.d.ts.map +1 -0
- package/dist/components/shared/dev-section/dev-section-view.d.ts +34 -0
- package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -0
- package/dist/components/shared/dev-section/index.d.ts +3 -0
- package/dist/components/shared/dev-section/index.d.ts.map +1 -0
- package/dist/components/shared/legal-document/index.d.ts +10 -0
- package/dist/components/shared/legal-document/index.d.ts.map +1 -0
- package/dist/components/shared/legal-document/legal-document-page.d.ts +66 -0
- package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -0
- package/dist/components/shared/legal-document/use-legal-docs.d.ts +40 -0
- package/dist/components/shared/legal-document/use-legal-docs.d.ts.map +1 -0
- package/dist/components/shared/product-release/index.d.ts +2 -1
- package/dist/components/shared/product-release/index.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts +11 -7
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/shared/roadmap/index.d.ts +18 -0
- package/dist/components/shared/roadmap/index.d.ts.map +1 -0
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +24 -0
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -0
- package/dist/components/shared/roadmap/roadmap-grid.d.ts +18 -0
- package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -0
- package/dist/components/shared/roadmap/use-roadmap-voting.d.ts +25 -0
- package/dist/components/shared/roadmap/use-roadmap-voting.d.ts.map +1 -0
- package/dist/components/ui/index.cjs +3 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +2 -1
- package/dist/components/ui/release-changelog-section.d.ts +13 -2
- package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
- package/dist/embed-shims/index.cjs +1 -6
- package/dist/embed-shims/index.cjs.map +1 -1
- package/dist/embed-shims/index.js +1 -6
- package/dist/embed-shims/index.js.map +1 -1
- package/dist/index.cjs +13 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +12 -1
- package/dist/types/delivery.d.ts +49 -0
- package/dist/types/delivery.d.ts.map +1 -0
- package/dist/types/index.cjs +13 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +12 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/dev-sections/index.d.ts +11 -0
- package/dist/utils/dev-sections/index.d.ts.map +1 -0
- package/dist/utils/dev-sections/openframe-dev-sections.d.ts +209 -0
- package/dist/utils/dev-sections/openframe-dev-sections.d.ts.map +1 -0
- package/dist/utils/index.cjs +82 -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 +81 -2
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/hooks/use-realtime-chunk-processor.ts +53 -6
- package/src/components/chat/types/api.types.ts +23 -1
- package/src/components/index.ts +8 -0
- package/src/components/shared/delivery/delivery-lists.tsx +199 -0
- package/src/components/shared/delivery/delivery-table.tsx +174 -0
- package/src/components/shared/delivery/index.ts +9 -0
- package/src/components/shared/dev-section/dev-section-page.tsx +72 -0
- package/src/components/shared/dev-section/dev-section-view.tsx +129 -0
- package/src/components/shared/dev-section/index.ts +2 -0
- package/src/components/shared/legal-document/index.ts +19 -0
- package/src/components/shared/legal-document/legal-document-page.tsx +178 -0
- package/src/components/shared/legal-document/use-legal-docs.ts +123 -0
- package/src/components/shared/product-release/index.ts +14 -3
- package/src/components/shared/product-release/release-detail-page.tsx +45 -7
- package/src/components/shared/roadmap/index.ts +23 -0
- package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +74 -0
- package/src/components/shared/roadmap/roadmap-grid.tsx +106 -0
- package/src/components/shared/roadmap/use-roadmap-voting.ts +163 -0
- package/src/components/ui/release-changelog-section.tsx +113 -32
- package/src/types/delivery.ts +54 -0
- package/src/types/index.ts +1 -0
- package/src/utils/dev-sections/index.ts +17 -0
- package/src/utils/dev-sections/openframe-dev-sections.ts +148 -0
- package/src/utils/index.ts +6 -1
- package/dist/chunk-OLTGB32E.js.map +0 -1
- package/dist/chunk-YGOJIDL5.cjs.map +0 -1
|
@@ -10263,6 +10263,159 @@ function clickupTaskUrl(externalId) {
|
|
|
10263
10263
|
return `${CLICKUP_APP_BASE}/t/${externalId}`;
|
|
10264
10264
|
}
|
|
10265
10265
|
|
|
10266
|
+
// src/utils/dev-sections/openframe-dev-sections.ts
|
|
10267
|
+
|
|
10268
|
+
|
|
10269
|
+
// src/types/announcement.ts
|
|
10270
|
+
var AVAILABLE_SVG_ICONS = [
|
|
10271
|
+
// OpenFrame Logo Options
|
|
10272
|
+
{ name: "openframe-logo", label: "OpenFrame Logo", component: null },
|
|
10273
|
+
// Platform Logos
|
|
10274
|
+
{ name: "openmsp-logo", label: "OpenMSP Logo", component: null },
|
|
10275
|
+
{ name: "flamingo-logo", label: "Flamingo Logo", component: null },
|
|
10276
|
+
// Lucide Icons
|
|
10277
|
+
{ name: "megaphone", label: "Megaphone", component: null },
|
|
10278
|
+
{ name: "bell", label: "Bell", component: null },
|
|
10279
|
+
{ name: "info", label: "Information", component: null },
|
|
10280
|
+
{ name: "star", label: "Star", component: null },
|
|
10281
|
+
{ name: "rocket", label: "Rocket", component: null },
|
|
10282
|
+
{ name: "package", label: "Package", component: null }
|
|
10283
|
+
];
|
|
10284
|
+
|
|
10285
|
+
// src/types/product-release.ts
|
|
10286
|
+
var releaseTypeOptions = [
|
|
10287
|
+
{ value: "major", label: "Major Release", description: "Breaking changes, new architecture", color: "red" },
|
|
10288
|
+
{ value: "minor", label: "Minor Release", description: "New features, backward compatible", color: "blue" },
|
|
10289
|
+
{ value: "patch", label: "Patch Release", description: "Bug fixes only", color: "green" },
|
|
10290
|
+
{ value: "beta", label: "Beta Release", description: "Pre-release testing version", color: "yellow" },
|
|
10291
|
+
{ value: "alpha", label: "Alpha Release", description: "Early testing version", color: "orange" }
|
|
10292
|
+
];
|
|
10293
|
+
var releaseStatusOptions = [
|
|
10294
|
+
{ value: "alpha", label: "Alpha", description: "Early development, unstable", color: "orange" },
|
|
10295
|
+
{ value: "beta", label: "Beta", description: "Feature complete, testing", color: "yellow" },
|
|
10296
|
+
{ value: "stable", label: "Stable", description: "Production ready", color: "green" },
|
|
10297
|
+
{ value: "deprecated", label: "Deprecated", description: "No longer supported", color: "gray" }
|
|
10298
|
+
];
|
|
10299
|
+
var changelogLabels = {
|
|
10300
|
+
features_added: "Features Added",
|
|
10301
|
+
bugs_fixed: "Bugs Fixed",
|
|
10302
|
+
improvements: "Improvements",
|
|
10303
|
+
breaking_changes: "Breaking Changes"
|
|
10304
|
+
};
|
|
10305
|
+
var SEMVER_REGEX = /^\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/;
|
|
10306
|
+
|
|
10307
|
+
// src/types/delivery.ts
|
|
10308
|
+
var TASK_TYPE_LABELS = {
|
|
10309
|
+
Request: "ENHANCEMENT",
|
|
10310
|
+
Bug: "BUG-FIX"
|
|
10311
|
+
};
|
|
10312
|
+
var TASK_TYPE_TEXT_COLORS = {
|
|
10313
|
+
Request: "",
|
|
10314
|
+
// Default white/grey
|
|
10315
|
+
Bug: "text-[var(--ods-attention-red-error)]"
|
|
10316
|
+
};
|
|
10317
|
+
|
|
10318
|
+
// src/types/tmcg.ts
|
|
10319
|
+
var TMCG_ROLES = {
|
|
10320
|
+
FOUNDER: "founder",
|
|
10321
|
+
ORGANIZER: "organizer",
|
|
10322
|
+
MEMBER: "member",
|
|
10323
|
+
CONTRIBUTOR: "contributor",
|
|
10324
|
+
SPEAKER: "speaker",
|
|
10325
|
+
MENTOR: "mentor"
|
|
10326
|
+
};
|
|
10327
|
+
var TMCG_ROLE_DISPLAY_NAMES = {
|
|
10328
|
+
[TMCG_ROLES.FOUNDER]: "Founder",
|
|
10329
|
+
[TMCG_ROLES.ORGANIZER]: "Organizer",
|
|
10330
|
+
[TMCG_ROLES.MEMBER]: "Member",
|
|
10331
|
+
[TMCG_ROLES.CONTRIBUTOR]: "Contributor",
|
|
10332
|
+
[TMCG_ROLES.SPEAKER]: "Speaker",
|
|
10333
|
+
[TMCG_ROLES.MENTOR]: "Mentor"
|
|
10334
|
+
};
|
|
10335
|
+
var TMCG_SOCIAL_PLATFORMS = {
|
|
10336
|
+
linkedin: "LinkedIn",
|
|
10337
|
+
twitter: "Twitter",
|
|
10338
|
+
github: "GitHub",
|
|
10339
|
+
website: "Website",
|
|
10340
|
+
youtube: "YouTube",
|
|
10341
|
+
instagram: "Instagram",
|
|
10342
|
+
facebook: "Facebook",
|
|
10343
|
+
discord: "Discord",
|
|
10344
|
+
telegram: "Telegram",
|
|
10345
|
+
slack: "Slack"
|
|
10346
|
+
};
|
|
10347
|
+
|
|
10348
|
+
// src/utils/dev-sections/openframe-dev-sections.ts
|
|
10349
|
+
var ROADMAP_STATUS_OPTIONS = [
|
|
10350
|
+
{ value: "all", label: "All" },
|
|
10351
|
+
{ value: "completed", label: "Completed" },
|
|
10352
|
+
{ value: "in_progress", label: "In Progress" }
|
|
10353
|
+
];
|
|
10354
|
+
var DELIVERY_TASK_TYPE_OPTIONS = [
|
|
10355
|
+
{ value: "all", label: "All" },
|
|
10356
|
+
{ value: "Bug", label: "Bug-fix" },
|
|
10357
|
+
{ value: "Request", label: "Enhancement" }
|
|
10358
|
+
];
|
|
10359
|
+
var OPENFRAME_DEV_SECTIONS = {
|
|
10360
|
+
roadmap: {
|
|
10361
|
+
href: "/roadmap",
|
|
10362
|
+
icon: _lucidereact.Map,
|
|
10363
|
+
navigator: {
|
|
10364
|
+
title: "Development Roadmap",
|
|
10365
|
+
description: "What we're building next \u2014 vote on upcoming features."
|
|
10366
|
+
},
|
|
10367
|
+
hero: {
|
|
10368
|
+
title: "Development Roadmap",
|
|
10369
|
+
description: "See what's in flight, what's planned, and what's up for community vote. The entire OpenFrame roadmap is public."
|
|
10370
|
+
},
|
|
10371
|
+
search: { placeholder: "Search roadmap items...", paramKey: "search" },
|
|
10372
|
+
filter: { label: "Status", paramKey: "status", defaultValue: "all", options: ROADMAP_STATUS_OPTIONS }
|
|
10373
|
+
},
|
|
10374
|
+
delivery: {
|
|
10375
|
+
href: "/bug-fixes-and-enhancements",
|
|
10376
|
+
icon: _lucidereact.Wrench,
|
|
10377
|
+
navigator: {
|
|
10378
|
+
title: "Bug-fixes & Enhancements",
|
|
10379
|
+
description: "Recently shipped fixes and improvements."
|
|
10380
|
+
},
|
|
10381
|
+
hero: {
|
|
10382
|
+
title: "Bug-fixes & Enhancements",
|
|
10383
|
+
description: "A running log of fixes and improvements shipping into OpenFrame \u2014 recently completed and actively in progress."
|
|
10384
|
+
},
|
|
10385
|
+
search: { placeholder: "Search tasks...", paramKey: "search" },
|
|
10386
|
+
filter: { label: "Type", paramKey: "task_type", defaultValue: "all", options: DELIVERY_TASK_TYPE_OPTIONS }
|
|
10387
|
+
},
|
|
10388
|
+
releases: {
|
|
10389
|
+
href: "/releases",
|
|
10390
|
+
icon: _lucidereact.Rocket,
|
|
10391
|
+
navigator: {
|
|
10392
|
+
title: "Product Releases",
|
|
10393
|
+
description: "Version history and release notes."
|
|
10394
|
+
},
|
|
10395
|
+
hero: {
|
|
10396
|
+
title: "Product Releases",
|
|
10397
|
+
description: "Version notes, change summaries, and stability tier (alpha / beta / stable) for every OpenFrame release."
|
|
10398
|
+
},
|
|
10399
|
+
search: { placeholder: "Search releases...", paramKey: "search" },
|
|
10400
|
+
filter: { label: "Status", paramKey: "release_status", defaultValue: "all", options: releaseStatusOptions }
|
|
10401
|
+
},
|
|
10402
|
+
onboarding: {
|
|
10403
|
+
href: "/onboarding-guides",
|
|
10404
|
+
icon: _lucidereact.GraduationCap,
|
|
10405
|
+
navigator: {
|
|
10406
|
+
title: "Onboarding Guides",
|
|
10407
|
+
description: "Step-by-step product walkthroughs."
|
|
10408
|
+
},
|
|
10409
|
+
// `hero` / `search` / `filter` are intentionally inert here —
|
|
10410
|
+
// /onboarding-guides is owned by OnboardingGuidesCatalogView, not
|
|
10411
|
+
// DevSectionView. This entry exists ONLY to drive the homepage
|
|
10412
|
+
// navigator card so all 4 cards stay in one registry.
|
|
10413
|
+
hero: { title: "", description: "" },
|
|
10414
|
+
search: null,
|
|
10415
|
+
filter: null
|
|
10416
|
+
}
|
|
10417
|
+
};
|
|
10418
|
+
|
|
10266
10419
|
// src/components/providers/dynamic-theme-provider.tsx
|
|
10267
10420
|
|
|
10268
10421
|
|
|
@@ -24530,6 +24683,7 @@ function OnboardingWalkthrough({
|
|
|
24530
24683
|
|
|
24531
24684
|
// src/components/shared/product-release/release-detail-page.tsx
|
|
24532
24685
|
_chunkWBR7H6E3cjs.init_next_link.call(void 0, );
|
|
24686
|
+
_chunkG7UE6RKVcjs.init_next_navigation.call(void 0, );
|
|
24533
24687
|
|
|
24534
24688
|
|
|
24535
24689
|
// src/components/layout/article-detail-layout.tsx
|
|
@@ -24547,10 +24701,36 @@ function ArticleDetailLayout({ children, schemas }) {
|
|
|
24547
24701
|
] });
|
|
24548
24702
|
}
|
|
24549
24703
|
|
|
24704
|
+
// src/components/layout/back-button.tsx
|
|
24705
|
+
_chunk664KA5FIcjs.init_cn.call(void 0, );
|
|
24706
|
+
|
|
24707
|
+
function BackButton({ label = "Back", className, type = "button", ...props }) {
|
|
24708
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24709
|
+
"button",
|
|
24710
|
+
{
|
|
24711
|
+
type,
|
|
24712
|
+
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
24713
|
+
"group inline-flex items-center justify-center self-start rounded-md",
|
|
24714
|
+
"gap-[var(--spacing-system-xsf)] py-[var(--spacing-system-sf)]",
|
|
24715
|
+
"text-ods-text-secondary hover:text-ods-text-primary",
|
|
24716
|
+
"transition-colors duration-200",
|
|
24717
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
|
|
24718
|
+
className
|
|
24719
|
+
),
|
|
24720
|
+
...props,
|
|
24721
|
+
children: [
|
|
24722
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02LeftIcon, { className: "size-6 shrink-0" }),
|
|
24723
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4", children: label })
|
|
24724
|
+
]
|
|
24725
|
+
}
|
|
24726
|
+
);
|
|
24727
|
+
}
|
|
24728
|
+
|
|
24550
24729
|
// src/components/ui/release-changelog-section.tsx
|
|
24551
24730
|
|
|
24552
24731
|
|
|
24553
24732
|
|
|
24733
|
+
var PREVIEW_COLLAPSED_HEIGHT = 120;
|
|
24554
24734
|
function ReleaseChangelogSection({
|
|
24555
24735
|
title,
|
|
24556
24736
|
entries,
|
|
@@ -24558,11 +24738,19 @@ function ReleaseChangelogSection({
|
|
|
24558
24738
|
hideTitle = false,
|
|
24559
24739
|
collapsible = false,
|
|
24560
24740
|
defaultCollapsed = true,
|
|
24741
|
+
previewFirst = false,
|
|
24561
24742
|
icon,
|
|
24562
24743
|
SimpleMarkdownRenderer: SimpleMarkdownRenderer2
|
|
24563
24744
|
}) {
|
|
24564
24745
|
const [collapsed, setCollapsed] = _react.useState.call(void 0, collapsible ? defaultCollapsed : false);
|
|
24746
|
+
const [previewExpanded, setPreviewExpanded] = _react.useState.call(void 0, false);
|
|
24747
|
+
const previewContentRef = _react.useRef.call(void 0, null);
|
|
24748
|
+
_react.useEffect.call(void 0, () => {
|
|
24749
|
+
setPreviewExpanded(false);
|
|
24750
|
+
}, [entries.length]);
|
|
24565
24751
|
if (!entries || entries.length === 0) return null;
|
|
24752
|
+
const inPreviewMode = previewFirst && !collapsible;
|
|
24753
|
+
const previewNeedsFade = inPreviewMode && entries.length > 1;
|
|
24566
24754
|
const showEntries = !collapsible || !collapsed;
|
|
24567
24755
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
24568
24756
|
!hideTitle && (collapsible ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -24590,25 +24778,67 @@ function ReleaseChangelogSection({
|
|
|
24590
24778
|
title,
|
|
24591
24779
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Badge, { variant: "secondary", className: "ml-2", children: entries.length })
|
|
24592
24780
|
] })),
|
|
24593
|
-
showEntries &&
|
|
24594
|
-
/*
|
|
24595
|
-
|
|
24596
|
-
|
|
24597
|
-
|
|
24598
|
-
|
|
24599
|
-
(
|
|
24600
|
-
|
|
24601
|
-
|
|
24602
|
-
|
|
24603
|
-
|
|
24604
|
-
|
|
24605
|
-
|
|
24606
|
-
|
|
24607
|
-
|
|
24608
|
-
|
|
24609
|
-
|
|
24781
|
+
showEntries && (inPreviewMode ? (
|
|
24782
|
+
/* Preview-first mode: render the list in a height-clamped +
|
|
24783
|
+
mask-faded wrapper. The CSS mask creates the soft fade-out
|
|
24784
|
+
at the bottom of the collapsed region; the inline maxHeight
|
|
24785
|
+
+ transition animate the open/close. When `previewExpanded`
|
|
24786
|
+
flips, the wrapper falls back to its natural scrollHeight
|
|
24787
|
+
(or 2000px on first render before the ref measures). */
|
|
24788
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative", children: [
|
|
24789
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24790
|
+
"div",
|
|
24791
|
+
{
|
|
24792
|
+
ref: previewContentRef,
|
|
24793
|
+
className: "overflow-hidden transition-[max-height] duration-500",
|
|
24794
|
+
style: {
|
|
24795
|
+
transitionTimingFunction: "cubic-bezier(0.33, 1, 0.68, 1)",
|
|
24796
|
+
maxHeight: previewExpanded || !previewNeedsFade ? _nullishCoalesce(_optionalChain([previewContentRef, 'access', _490 => _490.current, 'optionalAccess', _491 => _491.scrollHeight]), () => ( 2e3)) : PREVIEW_COLLAPSED_HEIGHT,
|
|
24797
|
+
...previewNeedsFade && !previewExpanded ? {
|
|
24798
|
+
maskImage: "linear-gradient(to bottom, black 30%, transparent 100%)",
|
|
24799
|
+
WebkitMaskImage: "linear-gradient(to bottom, black 30%, transparent 100%)"
|
|
24800
|
+
} : {}
|
|
24801
|
+
},
|
|
24802
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChangelogEntryList, { entries, SimpleMarkdownRenderer: SimpleMarkdownRenderer2 })
|
|
24803
|
+
}
|
|
24804
|
+
),
|
|
24805
|
+
previewNeedsFade && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
24806
|
+
"button",
|
|
24807
|
+
{
|
|
24808
|
+
type: "button",
|
|
24809
|
+
onClick: () => setPreviewExpanded(!previewExpanded),
|
|
24810
|
+
className: "mt-4 flex items-center gap-1.5 text-sm text-ods-text-secondary hover:text-ods-accent transition-colors duration-200",
|
|
24811
|
+
children: [
|
|
24812
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: previewExpanded ? "Show less" : `Show ${entries.length - 1} more` }),
|
|
24813
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24814
|
+
_lucidereact.ChevronDown,
|
|
24815
|
+
{
|
|
24816
|
+
className: `w-3.5 h-3.5 transition-transform duration-300 ${previewExpanded ? "rotate-180" : ""}`
|
|
24817
|
+
}
|
|
24818
|
+
)
|
|
24819
|
+
]
|
|
24820
|
+
}
|
|
24821
|
+
)
|
|
24822
|
+
] })
|
|
24823
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChangelogEntryList, { entries, SimpleMarkdownRenderer: SimpleMarkdownRenderer2 }))
|
|
24610
24824
|
] });
|
|
24611
24825
|
}
|
|
24826
|
+
function ChangelogEntryList({
|
|
24827
|
+
entries,
|
|
24828
|
+
SimpleMarkdownRenderer: SimpleMarkdownRenderer2
|
|
24829
|
+
}) {
|
|
24830
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "ul", { className: "space-y-6", children: entries.map((entry, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { className: "border-l-2 border-ods-border pl-4 ml-0", children: [
|
|
24831
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 text-ods-text-primary mb-2", children: entry.title }),
|
|
24832
|
+
entry.description && /* Entry description — body text matches the main release
|
|
24833
|
+
summary at the SAME 14/18px responsive `text-h4` scale.
|
|
24834
|
+
The `SimpleMarkdownRenderer` forces its own `<p>` typography
|
|
24835
|
+
which would override `text-h4` on `lg+` viewports and
|
|
24836
|
+
inflate the changelog body to 20px. The `[&_p]:!` overrides
|
|
24837
|
+
pin every descendant `<p>` back to the h4 responsive tokens
|
|
24838
|
+
so the breakpoints stay aligned with the rest of the page. */
|
|
24839
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-h4 text-ods-text-primary [&_p]:!text-[length:var(--font-size-h4-body)] [&_p]:!leading-[var(--font-line-space-h4-body)] [&_p]:!font-medium", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SimpleMarkdownRenderer2, { content: entry.description }) })
|
|
24840
|
+
] }, index)) });
|
|
24841
|
+
}
|
|
24612
24842
|
|
|
24613
24843
|
// src/components/shared/product-release/release-detail-page.tsx
|
|
24614
24844
|
|
|
@@ -24639,7 +24869,7 @@ var SecondaryAction = ({ action }) => {
|
|
|
24639
24869
|
e.preventDefault();
|
|
24640
24870
|
return;
|
|
24641
24871
|
}
|
|
24642
|
-
_optionalChain([action, 'access',
|
|
24872
|
+
_optionalChain([action, 'access', _492 => _492.onClick, 'optionalCall', _493 => _493()]);
|
|
24643
24873
|
},
|
|
24644
24874
|
[action]
|
|
24645
24875
|
);
|
|
@@ -24680,13 +24910,13 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
24680
24910
|
const activate = _react.useCallback.call(void 0, () => {
|
|
24681
24911
|
if (item.disabled) return;
|
|
24682
24912
|
if (item.type === "checkbox") {
|
|
24683
|
-
_optionalChain([item, 'access',
|
|
24684
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
24913
|
+
_optionalChain([item, 'access', _494 => _494.onClick, 'optionalCall', _495 => _495()]);
|
|
24914
|
+
_optionalChain([onItemClick, 'optionalCall', _496 => _496(item)]);
|
|
24685
24915
|
return;
|
|
24686
24916
|
}
|
|
24687
24917
|
if (item.type === "submenu") return;
|
|
24688
|
-
_optionalChain([item, 'access',
|
|
24689
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
24918
|
+
_optionalChain([item, 'access', _497 => _497.onClick, 'optionalCall', _498 => _498()]);
|
|
24919
|
+
_optionalChain([onItemClick, 'optionalCall', _499 => _499(item)]);
|
|
24690
24920
|
}, [item, onItemClick]);
|
|
24691
24921
|
const handleClick = _react.useCallback.call(void 0,
|
|
24692
24922
|
(e) => {
|
|
@@ -24712,8 +24942,8 @@ var MenuItem = ({ item, onItemClick }) => {
|
|
|
24712
24942
|
e.stopPropagation();
|
|
24713
24943
|
return;
|
|
24714
24944
|
}
|
|
24715
|
-
_optionalChain([item, 'access',
|
|
24716
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
24945
|
+
_optionalChain([item, 'access', _500 => _500.onClick, 'optionalCall', _501 => _501()]);
|
|
24946
|
+
_optionalChain([onItemClick, 'optionalCall', _502 => _502(item)]);
|
|
24717
24947
|
},
|
|
24718
24948
|
[item, onItemClick]
|
|
24719
24949
|
);
|
|
@@ -24868,7 +25098,7 @@ var ActionsMenuDropdown = ({
|
|
|
24868
25098
|
const [open, setOpen] = _react.useState.call(void 0, false);
|
|
24869
25099
|
const handleItemClick = _react.useCallback.call(void 0,
|
|
24870
25100
|
(item) => {
|
|
24871
|
-
_optionalChain([onItemClick, 'optionalCall',
|
|
25101
|
+
_optionalChain([onItemClick, 'optionalCall', _503 => _503(item)]);
|
|
24872
25102
|
if (item.type !== "checkbox" && item.type !== "submenu") {
|
|
24873
25103
|
setOpen(false);
|
|
24874
25104
|
}
|
|
@@ -25039,7 +25269,7 @@ function IconButtonsVariant({
|
|
|
25039
25269
|
}) {
|
|
25040
25270
|
const desktopActions = actions.filter((a) => !a.showOnlyMobile);
|
|
25041
25271
|
const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
|
|
25042
|
-
const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access',
|
|
25272
|
+
const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _504 => _504[0], 'access', _505 => _505.submenu, 'optionalAccess', _506 => _506.length]);
|
|
25043
25273
|
const singleAction = isSingleAction ? actions[0] : null;
|
|
25044
25274
|
const useSingleActionMobile = isSingleAction && !hasMenuActions;
|
|
25045
25275
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -25111,31 +25341,6 @@ function usePageActionsBottomPadding(variant) {
|
|
|
25111
25341
|
return variant === "primary-buttons" || variant === "menu-primary" ? "pb-40 md:pb-0" : "";
|
|
25112
25342
|
}
|
|
25113
25343
|
|
|
25114
|
-
// src/components/layout/back-button.tsx
|
|
25115
|
-
_chunk664KA5FIcjs.init_cn.call(void 0, );
|
|
25116
|
-
|
|
25117
|
-
function BackButton({ label = "Back", className, type = "button", ...props }) {
|
|
25118
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
25119
|
-
"button",
|
|
25120
|
-
{
|
|
25121
|
-
type,
|
|
25122
|
-
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
25123
|
-
"group inline-flex items-center justify-center self-start rounded-md",
|
|
25124
|
-
"gap-[var(--spacing-system-xsf)] py-[var(--spacing-system-sf)]",
|
|
25125
|
-
"text-ods-text-secondary hover:text-ods-text-primary",
|
|
25126
|
-
"transition-colors duration-200",
|
|
25127
|
-
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus",
|
|
25128
|
-
className
|
|
25129
|
-
),
|
|
25130
|
-
...props,
|
|
25131
|
-
children: [
|
|
25132
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Chevron02LeftIcon, { className: "size-6 shrink-0" }),
|
|
25133
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4", children: label })
|
|
25134
|
-
]
|
|
25135
|
-
}
|
|
25136
|
-
);
|
|
25137
|
-
}
|
|
25138
|
-
|
|
25139
25344
|
// src/components/layout/page-container.tsx
|
|
25140
25345
|
|
|
25141
25346
|
function isAdvancedProps(props) {
|
|
@@ -25384,12 +25589,17 @@ function ReleaseDetailPage({
|
|
|
25384
25589
|
VideoSection,
|
|
25385
25590
|
VideoDisplaySection,
|
|
25386
25591
|
roadmapApiEndpoint = "/api/roadmap",
|
|
25387
|
-
deliveryApiEndpoint = "/api/delivery"
|
|
25592
|
+
deliveryApiEndpoint = "/api/delivery",
|
|
25593
|
+
backButton
|
|
25388
25594
|
}) {
|
|
25595
|
+
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
25389
25596
|
const { data: fetchedRelease, error, isLoading } = useRelease(initialData ? void 0 : slug);
|
|
25390
25597
|
const release = initialData || fetchedRelease;
|
|
25391
25598
|
const [galleryOpen, setGalleryOpen] = _react.useState.call(void 0, false);
|
|
25392
25599
|
const [galleryIndex, setGalleryIndex] = _react.useState.call(void 0, 0);
|
|
25600
|
+
const showBackButton = backButton !== false;
|
|
25601
|
+
const backLabel = _nullishCoalesce((backButton ? backButton.label : void 0), () => ( "Back to home"));
|
|
25602
|
+
const backHref = _nullishCoalesce((backButton ? backButton.href : void 0), () => ( "/"));
|
|
25393
25603
|
const [roadmapTasks, setRoadmapTasks] = _react.useState.call(void 0, []);
|
|
25394
25604
|
const [deliveryData, setDeliveryData] = _react.useState.call(void 0, null);
|
|
25395
25605
|
const [roadmapLoading, setRoadmapLoading] = _react.useState.call(void 0, false);
|
|
@@ -25458,6 +25668,14 @@ function ReleaseDetailPage({
|
|
|
25458
25668
|
const bugFixed = release.bugs_fixed;
|
|
25459
25669
|
const improvements = release.improvements;
|
|
25460
25670
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, ArticleDetailLayout, { children: [
|
|
25671
|
+
showBackButton && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25672
|
+
BackButton,
|
|
25673
|
+
{
|
|
25674
|
+
label: backLabel,
|
|
25675
|
+
onClick: () => router.push(backHref),
|
|
25676
|
+
className: "hidden md:inline-flex mb-4"
|
|
25677
|
+
}
|
|
25678
|
+
),
|
|
25461
25679
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6 md:space-y-8", children: [
|
|
25462
25680
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col md:flex-row md:items-end gap-4 w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col gap-2", children: [
|
|
25463
25681
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary", children: releaseTitle }),
|
|
@@ -25466,14 +25684,14 @@ function ReleaseDetailPage({
|
|
|
25466
25684
|
releaseVersion
|
|
25467
25685
|
] })
|
|
25468
25686
|
] }) }),
|
|
25469
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess',
|
|
25687
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _507 => _507.map, 'call', _508 => _508((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25470
25688
|
StatusBadge,
|
|
25471
25689
|
{
|
|
25472
|
-
text: (tag.name || _optionalChain([tag, 'access',
|
|
25690
|
+
text: (tag.name || _optionalChain([tag, 'access', _509 => _509.blog_tags, 'optionalAccess', _510 => _510.name]) || "").toUpperCase(),
|
|
25473
25691
|
variant: "card",
|
|
25474
25692
|
className: "bg-ods-card border border-ods-border"
|
|
25475
25693
|
},
|
|
25476
|
-
tag.id || _optionalChain([tag, 'access',
|
|
25694
|
+
tag.id || _optionalChain([tag, 'access', _511 => _511.blog_tags, 'optionalAccess', _512 => _512.id])
|
|
25477
25695
|
))]) }),
|
|
25478
25696
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-4 border border-ods-border rounded-md overflow-hidden w-full", children: [
|
|
25479
25697
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border-b md:border-b-0 md:border-r border-ods-border p-4 flex flex-col gap-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
|
|
@@ -25492,15 +25710,15 @@ function ReleaseDetailPage({
|
|
|
25492
25710
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25493
25711
|
SquareAvatar,
|
|
25494
25712
|
{
|
|
25495
|
-
src: _optionalChain([author, 'optionalAccess',
|
|
25496
|
-
alt: _optionalChain([author, 'optionalAccess',
|
|
25497
|
-
fallback: nameInitials(_optionalChain([author, 'optionalAccess',
|
|
25713
|
+
src: _optionalChain([author, 'optionalAccess', _513 => _513.avatar_url]) || "",
|
|
25714
|
+
alt: _optionalChain([author, 'optionalAccess', _514 => _514.full_name]) || "Author",
|
|
25715
|
+
fallback: nameInitials(_optionalChain([author, 'optionalAccess', _515 => _515.full_name]) || "Unknown", ""),
|
|
25498
25716
|
size: "md",
|
|
25499
25717
|
variant: "round"
|
|
25500
25718
|
}
|
|
25501
25719
|
),
|
|
25502
25720
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
|
|
25503
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", title: _optionalChain([author, 'optionalAccess',
|
|
25721
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", title: _optionalChain([author, 'optionalAccess', _516 => _516.full_name]) || "Unknown Author", children: _optionalChain([author, 'optionalAccess', _517 => _517.full_name]) || "Unknown Author" }),
|
|
25504
25722
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
|
|
25505
25723
|
] })
|
|
25506
25724
|
] })
|
|
@@ -25531,8 +25749,8 @@ function ReleaseDetailPage({
|
|
|
25531
25749
|
videoBites,
|
|
25532
25750
|
bitesTitle: "Video Clips",
|
|
25533
25751
|
filterPublishedBites: true,
|
|
25534
|
-
srtContent: _optionalChain([release, 'optionalAccess',
|
|
25535
|
-
captionsUrl: _optionalChain([release, 'optionalAccess',
|
|
25752
|
+
srtContent: _optionalChain([release, 'optionalAccess', _518 => _518.srt_content]),
|
|
25753
|
+
captionsUrl: _optionalChain([release, 'optionalAccess', _519 => _519.captionsUrl])
|
|
25536
25754
|
}
|
|
25537
25755
|
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
25538
25756
|
youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -25548,8 +25766,8 @@ function ReleaseDetailPage({
|
|
|
25548
25766
|
Video,
|
|
25549
25767
|
{
|
|
25550
25768
|
url: mainVideoUrl,
|
|
25551
|
-
srtContent: _optionalChain([release, 'optionalAccess',
|
|
25552
|
-
captionsUrl: _optionalChain([release, 'optionalAccess',
|
|
25769
|
+
srtContent: _optionalChain([release, 'optionalAccess', _520 => _520.srt_content]),
|
|
25770
|
+
captionsUrl: _optionalChain([release, 'optionalAccess', _521 => _521.captionsUrl]),
|
|
25553
25771
|
layout: "centered"
|
|
25554
25772
|
}
|
|
25555
25773
|
),
|
|
@@ -25587,6 +25805,7 @@ function ReleaseDetailPage({
|
|
|
25587
25805
|
title: "Features Added",
|
|
25588
25806
|
entries: featuresAdded || [],
|
|
25589
25807
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "h-6 w-6" }),
|
|
25808
|
+
previewFirst: true,
|
|
25590
25809
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
25591
25810
|
}
|
|
25592
25811
|
),
|
|
@@ -25596,6 +25815,7 @@ function ReleaseDetailPage({
|
|
|
25596
25815
|
title: "Bugs Fixed",
|
|
25597
25816
|
entries: bugFixed || [],
|
|
25598
25817
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wrench, { className: "h-6 w-6" }),
|
|
25818
|
+
previewFirst: true,
|
|
25599
25819
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
25600
25820
|
}
|
|
25601
25821
|
),
|
|
@@ -25605,6 +25825,7 @@ function ReleaseDetailPage({
|
|
|
25605
25825
|
title: "Improvements",
|
|
25606
25826
|
entries: improvements || [],
|
|
25607
25827
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TrendingUp, { className: "h-6 w-6" }),
|
|
25828
|
+
previewFirst: true,
|
|
25608
25829
|
SimpleMarkdownRenderer: MarkdownRenderer
|
|
25609
25830
|
}
|
|
25610
25831
|
),
|
|
@@ -25643,7 +25864,7 @@ function ReleaseDetailPage({
|
|
|
25643
25864
|
}
|
|
25644
25865
|
)
|
|
25645
25866
|
] }),
|
|
25646
|
-
(_optionalChain([githubReleases, 'optionalAccess',
|
|
25867
|
+
(_optionalChain([githubReleases, 'optionalAccess', _522 => _522.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _523 => _523.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
|
|
25647
25868
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
|
|
25648
25869
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Card, { className: "bg-ods-card border-ods-border p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
25649
25870
|
githubReleases && githubReleases.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: githubReleases.map((ghRelease) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-1", children: [
|
|
@@ -25672,7 +25893,7 @@ function ReleaseDetailPage({
|
|
|
25672
25893
|
{
|
|
25673
25894
|
href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
|
|
25674
25895
|
className: "text-h4 text-[#ffc008] hover:underline",
|
|
25675
|
-
children: _optionalChain([path, 'access',
|
|
25896
|
+
children: _optionalChain([path, 'access', _524 => _524.replace, 'call', _525 => _525(/^\//, ""), 'access', _526 => _526.split, 'call', _527 => _527("/"), 'access', _528 => _528.pop, 'call', _529 => _529(), 'optionalAccess', _530 => _530.replace, 'call', _531 => _531(/-/g, " ")]) || "View Article"
|
|
25676
25897
|
}
|
|
25677
25898
|
),
|
|
25678
25899
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
|
|
@@ -25727,6 +25948,753 @@ function ReleaseDetailSkeleton() {
|
|
|
25727
25948
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
|
|
25728
25949
|
}
|
|
25729
25950
|
|
|
25951
|
+
// src/components/shared/dev-section/dev-section-view.tsx
|
|
25952
|
+
|
|
25953
|
+
|
|
25954
|
+
function DevSectionView({ sectionKey, hero, children }) {
|
|
25955
|
+
const section = OPENFRAME_DEV_SECTIONS[sectionKey];
|
|
25956
|
+
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
25957
|
+
const pathname = _chunkG7UE6RKVcjs.usePathname.call(void 0, );
|
|
25958
|
+
const searchParams = _chunkG7UE6RKVcjs.useSearchParams.call(void 0, );
|
|
25959
|
+
const search = section.search;
|
|
25960
|
+
const filter = section.filter;
|
|
25961
|
+
const currentSearch = search ? searchParams.get(search.paramKey) || "" : "";
|
|
25962
|
+
const currentFilterValue = filter ? searchParams.get(filter.paramKey) || filter.defaultValue : "";
|
|
25963
|
+
const [searchValue, setSearchValue] = _react.useState.call(void 0, () => currentSearch);
|
|
25964
|
+
_react.useEffect.call(void 0, () => {
|
|
25965
|
+
setSearchValue(currentSearch);
|
|
25966
|
+
}, [currentSearch]);
|
|
25967
|
+
const handleSearchSubmit = (value) => {
|
|
25968
|
+
if (!search) return;
|
|
25969
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
25970
|
+
if (value.trim()) params.set(search.paramKey, value.trim());
|
|
25971
|
+
else params.delete(search.paramKey);
|
|
25972
|
+
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
25973
|
+
};
|
|
25974
|
+
const handleFilterChange = (value) => {
|
|
25975
|
+
if (!filter) return;
|
|
25976
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
25977
|
+
if (value === filter.defaultValue) params.delete(filter.paramKey);
|
|
25978
|
+
else params.set(filter.paramKey, value);
|
|
25979
|
+
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
25980
|
+
};
|
|
25981
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full flex flex-col gap-10", children: [
|
|
25982
|
+
hero ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
25983
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h1", { className: "text-h1 tracking-[-1.12px] text-ods-text-primary flex items-center gap-3", children: [
|
|
25984
|
+
hero.icon,
|
|
25985
|
+
section.hero.title
|
|
25986
|
+
] }),
|
|
25987
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[18px] leading-[28px] text-ods-text-secondary max-w-3xl", children: hero.description })
|
|
25988
|
+
] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-between w-full", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: "font-['Azeret_Mono'] font-semibold text-[32px] md:text-[40px] lg:text-[48px] leading-[40px] md:leading-[48px] lg:leading-[56px] text-ods-text-primary tracking-[-0.64px] md:tracking-[-0.8px] lg:tracking-[-0.96px]", children: [
|
|
25989
|
+
section.hero.title,
|
|
25990
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ":" })
|
|
25991
|
+
] }) }),
|
|
25992
|
+
(search || filter) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
25993
|
+
search && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
25994
|
+
SearchInput,
|
|
25995
|
+
{
|
|
25996
|
+
showDropdown: false,
|
|
25997
|
+
placeholder: search.placeholder,
|
|
25998
|
+
value: searchValue,
|
|
25999
|
+
onChange: setSearchValue,
|
|
26000
|
+
onSubmit: handleSearchSubmit
|
|
26001
|
+
}
|
|
26002
|
+
),
|
|
26003
|
+
filter && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26004
|
+
StatusFilterComponent,
|
|
26005
|
+
{
|
|
26006
|
+
selectedStatus: currentFilterValue,
|
|
26007
|
+
onStatusChange: handleFilterChange,
|
|
26008
|
+
statusOptions: [...filter.options]
|
|
26009
|
+
}
|
|
26010
|
+
)
|
|
26011
|
+
] }),
|
|
26012
|
+
children
|
|
26013
|
+
] });
|
|
26014
|
+
}
|
|
26015
|
+
|
|
26016
|
+
// src/components/shared/dev-section/dev-section-page.tsx
|
|
26017
|
+
_chunkG7UE6RKVcjs.init_next_navigation.call(void 0, );
|
|
26018
|
+
|
|
26019
|
+
var SECTION_HERO_ICON_CLASS = "h-10 w-10 text-ods-accent";
|
|
26020
|
+
function DevSectionPage({ sectionKey, children, backButton }) {
|
|
26021
|
+
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
26022
|
+
const section = OPENFRAME_DEV_SECTIONS[sectionKey];
|
|
26023
|
+
const Icon2 = section.icon;
|
|
26024
|
+
const backCfg = backButton === false ? void 0 : {
|
|
26025
|
+
label: _nullishCoalesce((backButton ? backButton.label : void 0), () => ( "Back to home")),
|
|
26026
|
+
onClick: () => router.push(_nullishCoalesce((backButton ? backButton.href : void 0), () => ( "/")))
|
|
26027
|
+
};
|
|
26028
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageShell, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageLayout, { backButton: backCfg, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26029
|
+
DevSectionView,
|
|
26030
|
+
{
|
|
26031
|
+
sectionKey,
|
|
26032
|
+
hero: {
|
|
26033
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon2, { className: SECTION_HERO_ICON_CLASS }),
|
|
26034
|
+
description: section.hero.description
|
|
26035
|
+
},
|
|
26036
|
+
children
|
|
26037
|
+
}
|
|
26038
|
+
) }) });
|
|
26039
|
+
}
|
|
26040
|
+
|
|
26041
|
+
// src/components/shared/roadmap/roadmap-grid.tsx
|
|
26042
|
+
|
|
26043
|
+
|
|
26044
|
+
// src/components/shared/roadmap/use-roadmap-voting.ts
|
|
26045
|
+
|
|
26046
|
+
var DEFAULT_VOTE_ENDPOINT = "/api/roadmap/vote";
|
|
26047
|
+
var DEFAULT_STORAGE_KEY = "roadmap_votes_v1";
|
|
26048
|
+
function useRoadmapVoting(options = {}) {
|
|
26049
|
+
const voteApiEndpoint = _nullishCoalesce(options.voteApiEndpoint, () => ( DEFAULT_VOTE_ENDPOINT));
|
|
26050
|
+
const storageKey = _nullishCoalesce(options.storageKey, () => ( DEFAULT_STORAGE_KEY));
|
|
26051
|
+
const [votes, setVotes] = _react.useState.call(void 0, {});
|
|
26052
|
+
const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
|
|
26053
|
+
_react.useEffect.call(void 0, () => {
|
|
26054
|
+
setIsLoading(true);
|
|
26055
|
+
setVotes({});
|
|
26056
|
+
try {
|
|
26057
|
+
const stored = localStorage.getItem(storageKey);
|
|
26058
|
+
if (stored) {
|
|
26059
|
+
setVotes(JSON.parse(stored));
|
|
26060
|
+
}
|
|
26061
|
+
} catch (error) {
|
|
26062
|
+
console.error("[Voting] Error loading votes from localStorage:", error);
|
|
26063
|
+
} finally {
|
|
26064
|
+
setIsLoading(false);
|
|
26065
|
+
}
|
|
26066
|
+
}, [storageKey]);
|
|
26067
|
+
_react.useEffect.call(void 0, () => {
|
|
26068
|
+
if (!isLoading) {
|
|
26069
|
+
try {
|
|
26070
|
+
localStorage.setItem(storageKey, JSON.stringify(votes));
|
|
26071
|
+
} catch (error) {
|
|
26072
|
+
console.error("[Voting] Error saving votes to localStorage:", error);
|
|
26073
|
+
}
|
|
26074
|
+
}
|
|
26075
|
+
}, [votes, isLoading, storageKey]);
|
|
26076
|
+
const getVote = _react.useCallback.call(void 0,
|
|
26077
|
+
(taskId) => {
|
|
26078
|
+
return votes[taskId] || null;
|
|
26079
|
+
},
|
|
26080
|
+
[votes]
|
|
26081
|
+
);
|
|
26082
|
+
const toggleVote = _react.useCallback.call(void 0,
|
|
26083
|
+
async (taskId, voteType) => {
|
|
26084
|
+
const currentVote = votes[taskId];
|
|
26085
|
+
let newVote = null;
|
|
26086
|
+
let action = "add";
|
|
26087
|
+
if (currentVote === voteType) {
|
|
26088
|
+
newVote = null;
|
|
26089
|
+
action = "remove";
|
|
26090
|
+
} else {
|
|
26091
|
+
if (currentVote) {
|
|
26092
|
+
await fetch(voteApiEndpoint, {
|
|
26093
|
+
method: "POST",
|
|
26094
|
+
headers: { "Content-Type": "application/json" },
|
|
26095
|
+
body: JSON.stringify({
|
|
26096
|
+
taskId,
|
|
26097
|
+
voteType: currentVote,
|
|
26098
|
+
action: "remove"
|
|
26099
|
+
})
|
|
26100
|
+
}).catch((err) => console.error("[Voting] Error removing opposite vote:", err));
|
|
26101
|
+
}
|
|
26102
|
+
newVote = voteType;
|
|
26103
|
+
action = "add";
|
|
26104
|
+
}
|
|
26105
|
+
setVotes((prev) => ({
|
|
26106
|
+
...prev,
|
|
26107
|
+
[taskId]: newVote
|
|
26108
|
+
}));
|
|
26109
|
+
try {
|
|
26110
|
+
const response = await fetch(voteApiEndpoint, {
|
|
26111
|
+
method: "POST",
|
|
26112
|
+
headers: { "Content-Type": "application/json" },
|
|
26113
|
+
body: JSON.stringify({ taskId, voteType, action })
|
|
26114
|
+
});
|
|
26115
|
+
if (!response.ok) {
|
|
26116
|
+
throw new Error("Vote API request failed");
|
|
26117
|
+
}
|
|
26118
|
+
return { success: true, newVote, action };
|
|
26119
|
+
} catch (error) {
|
|
26120
|
+
console.error("[Voting] API error:", error);
|
|
26121
|
+
setVotes((prev) => ({
|
|
26122
|
+
...prev,
|
|
26123
|
+
[taskId]: currentVote
|
|
26124
|
+
}));
|
|
26125
|
+
return { success: false, newVote: currentVote, action };
|
|
26126
|
+
}
|
|
26127
|
+
},
|
|
26128
|
+
[votes, voteApiEndpoint]
|
|
26129
|
+
);
|
|
26130
|
+
const clearVotes = _react.useCallback.call(void 0, () => {
|
|
26131
|
+
setVotes({});
|
|
26132
|
+
localStorage.removeItem(storageKey);
|
|
26133
|
+
}, [storageKey]);
|
|
26134
|
+
return {
|
|
26135
|
+
votes,
|
|
26136
|
+
isLoading,
|
|
26137
|
+
getVote,
|
|
26138
|
+
toggleVote,
|
|
26139
|
+
clearVotes
|
|
26140
|
+
};
|
|
26141
|
+
}
|
|
26142
|
+
|
|
26143
|
+
// src/components/shared/roadmap/roadmap-grid.tsx
|
|
26144
|
+
|
|
26145
|
+
var DEFAULT_BUILD_REFRESH_URL = (taskId) => `/api/roadmap/${taskId}`;
|
|
26146
|
+
function RoadmapGrid({
|
|
26147
|
+
items,
|
|
26148
|
+
onItemUpdate,
|
|
26149
|
+
showLeftMargin = true,
|
|
26150
|
+
buildRefreshUrl = DEFAULT_BUILD_REFRESH_URL,
|
|
26151
|
+
votingOptions
|
|
26152
|
+
}) {
|
|
26153
|
+
const { getVote, toggleVote } = useRoadmapVoting(votingOptions);
|
|
26154
|
+
const [votingTasks, setVotingTasks] = _react.useState.call(void 0, /* @__PURE__ */ new Set());
|
|
26155
|
+
const handleVote = async (taskId, voteType) => {
|
|
26156
|
+
if (votingTasks.has(taskId)) return;
|
|
26157
|
+
setVotingTasks((prev) => new Set(prev).add(taskId));
|
|
26158
|
+
try {
|
|
26159
|
+
const result = await toggleVote(taskId, voteType);
|
|
26160
|
+
if (result.success) {
|
|
26161
|
+
const response = await fetch(buildRefreshUrl(taskId));
|
|
26162
|
+
if (response.ok) {
|
|
26163
|
+
const data = await response.json();
|
|
26164
|
+
if (data.item && onItemUpdate) {
|
|
26165
|
+
onItemUpdate(data.item);
|
|
26166
|
+
}
|
|
26167
|
+
}
|
|
26168
|
+
}
|
|
26169
|
+
} finally {
|
|
26170
|
+
setVotingTasks((prev) => {
|
|
26171
|
+
const next = new Set(prev);
|
|
26172
|
+
next.delete(taskId);
|
|
26173
|
+
return next;
|
|
26174
|
+
});
|
|
26175
|
+
}
|
|
26176
|
+
};
|
|
26177
|
+
if (items.length === 0) {
|
|
26178
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26179
|
+
EmptyState3,
|
|
26180
|
+
{
|
|
26181
|
+
type: "generic",
|
|
26182
|
+
title: "No roadmap items",
|
|
26183
|
+
description: "Check back soon for upcoming features and improvements!"
|
|
26184
|
+
}
|
|
26185
|
+
);
|
|
26186
|
+
}
|
|
26187
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: items.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26188
|
+
RoadmapCard,
|
|
26189
|
+
{
|
|
26190
|
+
item,
|
|
26191
|
+
userVote: getVote(item.id),
|
|
26192
|
+
onVote: (voteType) => handleVote(item.id, voteType),
|
|
26193
|
+
isVoting: votingTasks.has(item.id)
|
|
26194
|
+
},
|
|
26195
|
+
item.id
|
|
26196
|
+
)) });
|
|
26197
|
+
}
|
|
26198
|
+
|
|
26199
|
+
// src/components/shared/roadmap/roadmap-grid-skeleton.tsx
|
|
26200
|
+
|
|
26201
|
+
function RoadmapCardSkeleton() {
|
|
26202
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[24px] flex flex-col gap-[16px] min-h-[340px] relative", children: [
|
|
26203
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute top-[24px] right-[24px]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] w-[80px] bg-ods-border rounded animate-pulse" }) }),
|
|
26204
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[16px] pr-[120px]", children: [
|
|
26205
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-[80px] h-[80px] bg-ods-border rounded-lg flex-shrink-0 animate-pulse" }),
|
|
26206
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col gap-1", children: [
|
|
26207
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[24px] w-full bg-ods-border rounded animate-pulse" }) }),
|
|
26208
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[14px] w-1/2 bg-ods-border rounded animate-pulse" }) })
|
|
26209
|
+
] })
|
|
26210
|
+
] }),
|
|
26211
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-2", children: [
|
|
26212
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
|
|
26213
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[24px] bg-ods-border rounded animate-pulse" }),
|
|
26214
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[24px] w-4/5 bg-ods-border rounded animate-pulse" })
|
|
26215
|
+
] }) }),
|
|
26216
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1" }),
|
|
26217
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
|
|
26218
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[48px] w-[120px] bg-ods-border rounded animate-pulse" }),
|
|
26219
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" })
|
|
26220
|
+
] })
|
|
26221
|
+
] });
|
|
26222
|
+
}
|
|
26223
|
+
function RoadmapGridSkeleton({ count = 4, showLeftMargin = true }) {
|
|
26224
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `grid grid-cols-1 md:grid-cols-2 gap-6 ${showLeftMargin ? "md:ml-[120px]" : ""}`, children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapCardSkeleton, {}, i)) });
|
|
26225
|
+
}
|
|
26226
|
+
|
|
26227
|
+
// src/components/shared/delivery/delivery-lists.tsx
|
|
26228
|
+
|
|
26229
|
+
|
|
26230
|
+
// src/components/shared/delivery/delivery-table.tsx
|
|
26231
|
+
|
|
26232
|
+
function getRelativeTime(timestamp) {
|
|
26233
|
+
const now = Date.now();
|
|
26234
|
+
const diff = now - timestamp;
|
|
26235
|
+
const days = Math.floor(diff / (1e3 * 60 * 60 * 24));
|
|
26236
|
+
const weeks = Math.floor(days / 7);
|
|
26237
|
+
const months = Math.floor(days / 30);
|
|
26238
|
+
if (months > 0) {
|
|
26239
|
+
return months === 1 ? "last month" : `${months} months ago`;
|
|
26240
|
+
}
|
|
26241
|
+
if (weeks > 0) {
|
|
26242
|
+
return weeks === 1 ? "last week" : `${weeks} weeks ago`;
|
|
26243
|
+
}
|
|
26244
|
+
if (days > 0) {
|
|
26245
|
+
return days === 1 ? "yesterday" : `${days} days ago`;
|
|
26246
|
+
}
|
|
26247
|
+
return "today";
|
|
26248
|
+
}
|
|
26249
|
+
function SkeletonRow() {
|
|
26250
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border last:border-b-0 p-[12px] md:p-[16px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full", children: [
|
|
26251
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]", children: [
|
|
26252
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[24px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }) }),
|
|
26253
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-1/2" }) }),
|
|
26254
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-1", children: [
|
|
26255
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
|
|
26256
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-full" }),
|
|
26257
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[20px] bg-ods-border rounded animate-pulse w-2/3" })
|
|
26258
|
+
] }) })
|
|
26259
|
+
] }),
|
|
26260
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-shrink-0 self-start flex flex-col gap-2", children: [
|
|
26261
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[32px] w-[100px] bg-ods-border rounded animate-pulse" }),
|
|
26262
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[32px] w-[120px] bg-ods-border rounded animate-pulse" })
|
|
26263
|
+
] })
|
|
26264
|
+
] }) });
|
|
26265
|
+
}
|
|
26266
|
+
function DeliveryTable({ items, isLoading = false }) {
|
|
26267
|
+
if (isLoading) {
|
|
26268
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonRow, {}, i)) }) });
|
|
26269
|
+
}
|
|
26270
|
+
if (items.length === 0) {
|
|
26271
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] p-[40px] text-center w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-[14px] font-['DM_Sans'] font-medium", children: "No tasks available" }) });
|
|
26272
|
+
}
|
|
26273
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-card border border-ods-border rounded-[6px] overflow-hidden w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: items.map((item, index) => {
|
|
26274
|
+
const taskType = item.taskType;
|
|
26275
|
+
const typeBadgeLabel = TASK_TYPE_LABELS[taskType] || "TASK";
|
|
26276
|
+
const typeBadgeTextColor = TASK_TYPE_TEXT_COLORS[taskType] || "";
|
|
26277
|
+
const statusBadgeScheme = getStatusColorScheme(item.status);
|
|
26278
|
+
const relativeTime = getRelativeTime(item.dateUpdated);
|
|
26279
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26280
|
+
"div",
|
|
26281
|
+
{
|
|
26282
|
+
className: `border-b border-ods-border last:border-b-0 p-[12px] md:p-[16px] ${index === 0 ? "" : ""}`,
|
|
26283
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row items-start justify-between gap-[12px] md:gap-[16px] w-full", children: [
|
|
26284
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 w-full md:w-auto flex flex-col gap-[12px] md:gap-[16px]", children: [
|
|
26285
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[24px] md:min-h-[24px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-text-primary tracking-[-0.36px] flex-1 line-clamp-2 md:truncate break-words", children: item.title }) }),
|
|
26286
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h5 text-ods-text-secondary uppercase tracking-[-0.28px] truncate", children: [
|
|
26287
|
+
"ACTIVE ",
|
|
26288
|
+
relativeTime,
|
|
26289
|
+
item.listNames.length > 0 ? `, ${item.listNames.join(", ")}` : "",
|
|
26290
|
+
", ",
|
|
26291
|
+
item.id
|
|
26292
|
+
] }) }),
|
|
26293
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[72px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-secondary line-clamp-3 break-words", children: item.description || "No description provided" }) })
|
|
26294
|
+
] }),
|
|
26295
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-shrink-0 self-start flex flex-col gap-2", children: [
|
|
26296
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26297
|
+
StatusBadge,
|
|
26298
|
+
{
|
|
26299
|
+
text: item.status.toUpperCase(),
|
|
26300
|
+
colorScheme: statusBadgeScheme,
|
|
26301
|
+
variant: "card",
|
|
26302
|
+
className: "border border-ods-border"
|
|
26303
|
+
}
|
|
26304
|
+
),
|
|
26305
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26306
|
+
StatusBadge,
|
|
26307
|
+
{
|
|
26308
|
+
text: typeBadgeLabel,
|
|
26309
|
+
variant: "card",
|
|
26310
|
+
className: `border border-ods-border ${typeBadgeTextColor}`
|
|
26311
|
+
}
|
|
26312
|
+
)
|
|
26313
|
+
] })
|
|
26314
|
+
] })
|
|
26315
|
+
},
|
|
26316
|
+
item.id
|
|
26317
|
+
);
|
|
26318
|
+
}) }) });
|
|
26319
|
+
}
|
|
26320
|
+
|
|
26321
|
+
// src/components/ui/error-state.tsx
|
|
26322
|
+
_chunkKUZGEA7Ucjs.init_button2.call(void 0, );
|
|
26323
|
+
_chunk664KA5FIcjs.init_cn.call(void 0, );
|
|
26324
|
+
|
|
26325
|
+
|
|
26326
|
+
function ErrorState({
|
|
26327
|
+
title = "Error",
|
|
26328
|
+
message: message2,
|
|
26329
|
+
variant = "error",
|
|
26330
|
+
showIcon = true,
|
|
26331
|
+
showRetry = false,
|
|
26332
|
+
showHome = false,
|
|
26333
|
+
onRetry,
|
|
26334
|
+
onHome,
|
|
26335
|
+
className,
|
|
26336
|
+
containerClassName
|
|
26337
|
+
}) {
|
|
26338
|
+
const getVariantStyles = () => {
|
|
26339
|
+
switch (variant) {
|
|
26340
|
+
case "error":
|
|
26341
|
+
return {
|
|
26342
|
+
bg: "bg-ods-attention-red-error/20",
|
|
26343
|
+
border: "border-ods-attention-red-error",
|
|
26344
|
+
text: "text-ods-attention-red-error",
|
|
26345
|
+
icon: "text-ods-attention-red-error"
|
|
26346
|
+
};
|
|
26347
|
+
case "warning":
|
|
26348
|
+
return {
|
|
26349
|
+
bg: "bg-ods-attention-yellow-warning/20",
|
|
26350
|
+
border: "border-ods-attention-yellow-warning",
|
|
26351
|
+
text: "text-ods-attention-yellow-warning",
|
|
26352
|
+
icon: "text-ods-attention-yellow-warning"
|
|
26353
|
+
};
|
|
26354
|
+
case "info":
|
|
26355
|
+
return {
|
|
26356
|
+
bg: "bg-ods-bg-surface",
|
|
26357
|
+
border: "border-ods-border",
|
|
26358
|
+
text: "text-ods-text-secondary",
|
|
26359
|
+
icon: "text-ods-text-secondary"
|
|
26360
|
+
};
|
|
26361
|
+
}
|
|
26362
|
+
};
|
|
26363
|
+
const styles = getVariantStyles();
|
|
26364
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "p-6", containerClassName), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
26365
|
+
"rounded-lg p-4 border",
|
|
26366
|
+
styles.bg,
|
|
26367
|
+
styles.border,
|
|
26368
|
+
className
|
|
26369
|
+
), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-3", children: [
|
|
26370
|
+
showIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: _chunk664KA5FIcjs.cn.call(void 0, "h-5 w-5 mt-0.5 flex-shrink-0", styles.icon) }),
|
|
26371
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
|
|
26372
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunk664KA5FIcjs.cn.call(void 0, "font-semibold mb-1", styles.text), children: title }),
|
|
26373
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk664KA5FIcjs.cn.call(void 0, "text-sm", styles.text), children: message2 }),
|
|
26374
|
+
(showRetry || showHome) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 mt-3", children: [
|
|
26375
|
+
showRetry && onRetry && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26376
|
+
_chunkKUZGEA7Ucjs.Button,
|
|
26377
|
+
{
|
|
26378
|
+
onClick: onRetry,
|
|
26379
|
+
variant: "outline",
|
|
26380
|
+
size: "small-legacy",
|
|
26381
|
+
className: "h-8",
|
|
26382
|
+
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.RefreshCw, { className: "h-4 w-4" }),
|
|
26383
|
+
children: "Try Again"
|
|
26384
|
+
}
|
|
26385
|
+
),
|
|
26386
|
+
showHome && onHome && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26387
|
+
_chunkKUZGEA7Ucjs.Button,
|
|
26388
|
+
{
|
|
26389
|
+
onClick: onHome,
|
|
26390
|
+
variant: "outline",
|
|
26391
|
+
size: "small-legacy",
|
|
26392
|
+
className: "h-8",
|
|
26393
|
+
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Home, { className: "h-4 w-4" }),
|
|
26394
|
+
children: "Go Home"
|
|
26395
|
+
}
|
|
26396
|
+
)
|
|
26397
|
+
] })
|
|
26398
|
+
] })
|
|
26399
|
+
] }) }) });
|
|
26400
|
+
}
|
|
26401
|
+
function PageError({ message: message2, onRetry, onHome }) {
|
|
26402
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26403
|
+
ErrorState,
|
|
26404
|
+
{
|
|
26405
|
+
title: "Page Error",
|
|
26406
|
+
message: message2,
|
|
26407
|
+
variant: "error",
|
|
26408
|
+
showRetry: !!onRetry,
|
|
26409
|
+
showHome: !!onHome,
|
|
26410
|
+
onRetry,
|
|
26411
|
+
onHome
|
|
26412
|
+
}
|
|
26413
|
+
);
|
|
26414
|
+
}
|
|
26415
|
+
function LoadError({ message: message2, onRetry }) {
|
|
26416
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26417
|
+
ErrorState,
|
|
26418
|
+
{
|
|
26419
|
+
title: "Loading Error",
|
|
26420
|
+
message: message2,
|
|
26421
|
+
variant: "error",
|
|
26422
|
+
showRetry: !!onRetry,
|
|
26423
|
+
onRetry
|
|
26424
|
+
}
|
|
26425
|
+
);
|
|
26426
|
+
}
|
|
26427
|
+
function NotFoundError({ message: message2 = "The requested item was not found", onHome }) {
|
|
26428
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26429
|
+
ErrorState,
|
|
26430
|
+
{
|
|
26431
|
+
title: "Not Found",
|
|
26432
|
+
message: message2,
|
|
26433
|
+
variant: "warning",
|
|
26434
|
+
showHome: !!onHome,
|
|
26435
|
+
onHome
|
|
26436
|
+
}
|
|
26437
|
+
);
|
|
26438
|
+
}
|
|
26439
|
+
|
|
26440
|
+
// src/components/shared/delivery/delivery-lists.tsx
|
|
26441
|
+
|
|
26442
|
+
var DEFAULT_COMPLETED_ENDPOINT = "/api/delivery/completed";
|
|
26443
|
+
var DEFAULT_IN_PROGRESS_ENDPOINT = "/api/delivery/in-progress";
|
|
26444
|
+
var DEFAULT_SEARCH_PARAM_KEY = "search";
|
|
26445
|
+
var DEFAULT_TASK_TYPE_PARAM_KEY = "task_type";
|
|
26446
|
+
function DeliveryLists({
|
|
26447
|
+
completedApiEndpoint = DEFAULT_COMPLETED_ENDPOINT,
|
|
26448
|
+
inProgressApiEndpoint = DEFAULT_IN_PROGRESS_ENDPOINT,
|
|
26449
|
+
searchParamKey = DEFAULT_SEARCH_PARAM_KEY,
|
|
26450
|
+
taskTypeParamKey = DEFAULT_TASK_TYPE_PARAM_KEY
|
|
26451
|
+
} = {}) {
|
|
26452
|
+
const searchParams = _chunkG7UE6RKVcjs.useSearchParams.call(void 0, );
|
|
26453
|
+
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
26454
|
+
const pathname = _chunkG7UE6RKVcjs.usePathname.call(void 0, );
|
|
26455
|
+
const [data, setData] = _react.useState.call(void 0, null);
|
|
26456
|
+
const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
|
|
26457
|
+
const [error, setError] = _react.useState.call(void 0, null);
|
|
26458
|
+
const searchQuery = searchParams.get(searchParamKey) || "";
|
|
26459
|
+
const taskTypeFilter = searchParams.get(taskTypeParamKey) || "all";
|
|
26460
|
+
_react.useEffect.call(void 0, () => {
|
|
26461
|
+
async function fetchDeliveryData() {
|
|
26462
|
+
try {
|
|
26463
|
+
setIsLoading(true);
|
|
26464
|
+
setError(null);
|
|
26465
|
+
const params = new URLSearchParams();
|
|
26466
|
+
if (searchQuery) {
|
|
26467
|
+
params.set(searchParamKey, searchQuery);
|
|
26468
|
+
}
|
|
26469
|
+
if (taskTypeFilter && taskTypeFilter !== "all") {
|
|
26470
|
+
params.set(taskTypeParamKey, taskTypeFilter);
|
|
26471
|
+
}
|
|
26472
|
+
const queryString = params.toString();
|
|
26473
|
+
const queryParam = queryString ? `?${queryString}` : "";
|
|
26474
|
+
const [completedResponse, inProgressResponse] = await Promise.all([
|
|
26475
|
+
fetch(`${completedApiEndpoint}${queryParam}`),
|
|
26476
|
+
fetch(`${inProgressApiEndpoint}${queryParam}`)
|
|
26477
|
+
]);
|
|
26478
|
+
if (!completedResponse.ok || !inProgressResponse.ok) {
|
|
26479
|
+
throw new Error("Failed to fetch delivery items");
|
|
26480
|
+
}
|
|
26481
|
+
const [completedResult, inProgressResult] = await Promise.all([
|
|
26482
|
+
completedResponse.json(),
|
|
26483
|
+
inProgressResponse.json()
|
|
26484
|
+
]);
|
|
26485
|
+
setData({
|
|
26486
|
+
completed: completedResult.items || [],
|
|
26487
|
+
inProgress: inProgressResult.items || []
|
|
26488
|
+
});
|
|
26489
|
+
} catch (err) {
|
|
26490
|
+
console.error("Error fetching delivery items:", err);
|
|
26491
|
+
setError("Failed to load delivery items. Please try again later.");
|
|
26492
|
+
} finally {
|
|
26493
|
+
setIsLoading(false);
|
|
26494
|
+
}
|
|
26495
|
+
}
|
|
26496
|
+
fetchDeliveryData();
|
|
26497
|
+
}, [searchQuery, taskTypeFilter, completedApiEndpoint, inProgressApiEndpoint, searchParamKey, taskTypeParamKey]);
|
|
26498
|
+
const filteredCompleted = _optionalChain([data, 'optionalAccess', _532 => _532.completed]) || [];
|
|
26499
|
+
const filteredInProgress = _optionalChain([data, 'optionalAccess', _533 => _533.inProgress]) || [];
|
|
26500
|
+
const showCompleted = true;
|
|
26501
|
+
const showInProgress = true;
|
|
26502
|
+
const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
|
|
26503
|
+
const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
|
|
26504
|
+
if (error) {
|
|
26505
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadError, { message: error, onRetry: () => window.location.reload() }) });
|
|
26506
|
+
}
|
|
26507
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full flex flex-col gap-[40px]", children: [
|
|
26508
|
+
!isLoading && !hasResults && (hasActiveFilters ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26509
|
+
EmptyState3,
|
|
26510
|
+
{
|
|
26511
|
+
type: "search",
|
|
26512
|
+
title: "No tasks found",
|
|
26513
|
+
description: "No tasks match your current filters. Try adjusting your search or status filter.",
|
|
26514
|
+
showCTA: true,
|
|
26515
|
+
ctaText: "Reset Filters",
|
|
26516
|
+
onCtaClick: () => {
|
|
26517
|
+
const params = new URLSearchParams(searchParams.toString());
|
|
26518
|
+
params.delete(searchParamKey);
|
|
26519
|
+
params.delete(taskTypeParamKey);
|
|
26520
|
+
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
26521
|
+
}
|
|
26522
|
+
}
|
|
26523
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26524
|
+
EmptyState3,
|
|
26525
|
+
{
|
|
26526
|
+
type: "generic",
|
|
26527
|
+
title: "No tasks available",
|
|
26528
|
+
description: "Check back soon for upcoming tasks!",
|
|
26529
|
+
showCTA: false
|
|
26530
|
+
}
|
|
26531
|
+
)),
|
|
26532
|
+
showCompleted && (hasResults || isLoading) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full", children: [
|
|
26533
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
|
|
26534
|
+
"Recently Completed",
|
|
26535
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ":" })
|
|
26536
|
+
] }),
|
|
26537
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26538
|
+
DeliveryTable,
|
|
26539
|
+
{
|
|
26540
|
+
items: filteredCompleted,
|
|
26541
|
+
isLoading
|
|
26542
|
+
}
|
|
26543
|
+
)
|
|
26544
|
+
] }),
|
|
26545
|
+
showInProgress && (hasResults || isLoading) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full", children: [
|
|
26546
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h3", { className: "text-h2 text-ods-text-primary tracking-[-0.48px] md:tracking-[-0.56px] lg:tracking-[-0.64px] mb-4", children: [
|
|
26547
|
+
"Active Tasks",
|
|
26548
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: ":" })
|
|
26549
|
+
] }),
|
|
26550
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26551
|
+
DeliveryTable,
|
|
26552
|
+
{
|
|
26553
|
+
items: filteredInProgress,
|
|
26554
|
+
isLoading
|
|
26555
|
+
}
|
|
26556
|
+
)
|
|
26557
|
+
] })
|
|
26558
|
+
] });
|
|
26559
|
+
}
|
|
26560
|
+
|
|
26561
|
+
// src/components/shared/legal-document/legal-document-page.tsx
|
|
26562
|
+
_chunkG7UE6RKVcjs.init_next_navigation.call(void 0, );
|
|
26563
|
+
|
|
26564
|
+
// src/components/shared/legal-document/use-legal-docs.ts
|
|
26565
|
+
|
|
26566
|
+
function useLegalDocs(docType, options = {}) {
|
|
26567
|
+
const { initialData = null, apiEndpoint } = options;
|
|
26568
|
+
const effectiveEndpoint = _nullishCoalesce(apiEndpoint, () => ( `/api/legal/${docType}`));
|
|
26569
|
+
const [data, setData] = _react.useState.call(void 0, _nullishCoalesce(initialData, () => ( null)));
|
|
26570
|
+
const [isLoading, setIsLoading] = _react.useState.call(void 0, !initialData);
|
|
26571
|
+
const [error, setError] = _react.useState.call(void 0, null);
|
|
26572
|
+
const fetchDocument = _react.useCallback.call(void 0, async () => {
|
|
26573
|
+
try {
|
|
26574
|
+
setIsLoading(true);
|
|
26575
|
+
setError(null);
|
|
26576
|
+
const response = await fetch(effectiveEndpoint);
|
|
26577
|
+
if (!response.ok) {
|
|
26578
|
+
throw new Error(
|
|
26579
|
+
`Failed to fetch ${docType} document: ${response.status} ${response.statusText}`
|
|
26580
|
+
);
|
|
26581
|
+
}
|
|
26582
|
+
const result = await response.json();
|
|
26583
|
+
if (!result.content) {
|
|
26584
|
+
throw new Error(`${docType} document content is empty`);
|
|
26585
|
+
}
|
|
26586
|
+
setData(result);
|
|
26587
|
+
} catch (err) {
|
|
26588
|
+
const errorMessage = err instanceof Error ? err.message : "Unknown error occurred";
|
|
26589
|
+
console.error(`Error fetching ${docType} document:`, err);
|
|
26590
|
+
setError(errorMessage);
|
|
26591
|
+
} finally {
|
|
26592
|
+
setIsLoading(false);
|
|
26593
|
+
}
|
|
26594
|
+
}, [docType, effectiveEndpoint]);
|
|
26595
|
+
_react.useEffect.call(void 0, () => {
|
|
26596
|
+
setData(_nullishCoalesce(initialData, () => ( null)));
|
|
26597
|
+
setError(null);
|
|
26598
|
+
setIsLoading(!initialData);
|
|
26599
|
+
}, [docType, initialData]);
|
|
26600
|
+
_react.useEffect.call(void 0, () => {
|
|
26601
|
+
if (initialData) return;
|
|
26602
|
+
fetchDocument();
|
|
26603
|
+
}, [fetchDocument, initialData]);
|
|
26604
|
+
const refetch = () => {
|
|
26605
|
+
fetchDocument();
|
|
26606
|
+
};
|
|
26607
|
+
return {
|
|
26608
|
+
data,
|
|
26609
|
+
isLoading,
|
|
26610
|
+
error,
|
|
26611
|
+
refetch
|
|
26612
|
+
};
|
|
26613
|
+
}
|
|
26614
|
+
|
|
26615
|
+
// src/components/shared/legal-document/legal-document-page.tsx
|
|
26616
|
+
|
|
26617
|
+
function LegalDocumentPage({
|
|
26618
|
+
docType,
|
|
26619
|
+
title,
|
|
26620
|
+
fallbackDescription,
|
|
26621
|
+
contactEmail,
|
|
26622
|
+
errorContactPrompt,
|
|
26623
|
+
errorTitle,
|
|
26624
|
+
emptyStateMessage,
|
|
26625
|
+
initialData = null,
|
|
26626
|
+
initialLastUpdatedLabel = null,
|
|
26627
|
+
apiEndpoint,
|
|
26628
|
+
MarkdownRenderer = SimpleMarkdownRenderer,
|
|
26629
|
+
backButton
|
|
26630
|
+
}) {
|
|
26631
|
+
const router = _chunkG7UE6RKVcjs.useRouter.call(void 0, );
|
|
26632
|
+
const { data, isLoading, error } = useLegalDocs(docType, { initialData, apiEndpoint });
|
|
26633
|
+
const backCfg = backButton === false ? void 0 : {
|
|
26634
|
+
label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _534 => _534.label]), () => ( "Back to home")),
|
|
26635
|
+
onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _535 => _535.href]), () => ( "/")))
|
|
26636
|
+
};
|
|
26637
|
+
const fallbackLastUpdatedLabel = _optionalChain([data, 'optionalAccess', _536 => _536.lastSynced]) != null ? formatLegalDate(data.lastSynced) : null;
|
|
26638
|
+
const effectiveLastUpdatedLabel = _nullishCoalesce(initialLastUpdatedLabel, () => ( fallbackLastUpdatedLabel));
|
|
26639
|
+
const customTitle = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4", children: [
|
|
26640
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h1", { className: "font-['Azeret_Mono'] text-[32px] md:text-[40px] lg:text-[48px] font-semibold leading-[1em] tracking-[-0.02em] text-ods-text-primary", children: [
|
|
26641
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: title }),
|
|
26642
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: "." })
|
|
26643
|
+
] }),
|
|
26644
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "font-['DM_Sans'] text-base md:text-lg text-ods-text-secondary max-w-2xl", children: [
|
|
26645
|
+
effectiveLastUpdatedLabel ? `Last Updated: ${effectiveLastUpdatedLabel}` : fallbackDescription,
|
|
26646
|
+
_optionalChain([data, 'optionalAccess', _537 => _537.sourceFile]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "block text-sm mt-1 opacity-75", children: [
|
|
26647
|
+
"Source: ",
|
|
26648
|
+
data.sourceFile
|
|
26649
|
+
] })
|
|
26650
|
+
] })
|
|
26651
|
+
] });
|
|
26652
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PageShell, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, PageLayout, { backButton: backCfg, children: [
|
|
26653
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-4", children: customTitle }),
|
|
26654
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col lg:flex-row gap-6 lg:gap-10 items-start flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "article", { className: "space-y-2", children: isLoading ? (
|
|
26655
|
+
// Loading skeleton matching Knowledge Hub pattern
|
|
26656
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6", children: [
|
|
26657
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 bg-ods-skeleton rounded-lg w-3/4 animate-pulse" }),
|
|
26658
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
26659
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
26660
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
26661
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 bg-ods-skeleton rounded w-5/6 animate-pulse" })
|
|
26662
|
+
] }),
|
|
26663
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-32 bg-ods-card border border-ods-border rounded-lg animate-pulse" }),
|
|
26664
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
26665
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 bg-ods-skeleton rounded w-full animate-pulse" }),
|
|
26666
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 bg-ods-skeleton rounded w-4/5 animate-pulse" })
|
|
26667
|
+
] })
|
|
26668
|
+
] })
|
|
26669
|
+
) : error ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center space-y-4", children: [
|
|
26670
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-red-900/20 border border-red-700 rounded-lg p-6", children: [
|
|
26671
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-red-400 mb-2", children: errorTitle }),
|
|
26672
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-red-300 text-sm", children: error })
|
|
26673
|
+
] }),
|
|
26674
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-ods-text-secondary", children: [
|
|
26675
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { children: errorContactPrompt }),
|
|
26676
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail })
|
|
26677
|
+
] })
|
|
26678
|
+
] }) : data ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26679
|
+
MarkdownRenderer,
|
|
26680
|
+
{
|
|
26681
|
+
content: data.content,
|
|
26682
|
+
sectionIds: data.sections || [],
|
|
26683
|
+
demoteMarkdownH1ToH2: true
|
|
26684
|
+
}
|
|
26685
|
+
) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center text-ods-text-secondary py-16", children: [
|
|
26686
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xl", children: emptyStateMessage }),
|
|
26687
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "mt-2", children: [
|
|
26688
|
+
"Please contact",
|
|
26689
|
+
" ",
|
|
26690
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href: `mailto:${contactEmail}`, className: "text-ods-accent hover:underline", children: contactEmail }),
|
|
26691
|
+
" ",
|
|
26692
|
+
"for more information."
|
|
26693
|
+
] })
|
|
26694
|
+
] }) }) }) }) })
|
|
26695
|
+
] }) });
|
|
26696
|
+
}
|
|
26697
|
+
|
|
25730
26698
|
// src/components/ui/info-card.tsx
|
|
25731
26699
|
|
|
25732
26700
|
function InfoCard({ data, className = "" }) {
|
|
@@ -26320,7 +27288,7 @@ function TagsManager({
|
|
|
26320
27288
|
const name = search.trim();
|
|
26321
27289
|
if (!name) return;
|
|
26322
27290
|
const result = await onCreateTag(name);
|
|
26323
|
-
if (_optionalChain([result, 'optionalAccess',
|
|
27291
|
+
if (_optionalChain([result, 'optionalAccess', _538 => _538.id])) {
|
|
26324
27292
|
onChange([...selectedIds, result.id]);
|
|
26325
27293
|
setSearch("");
|
|
26326
27294
|
}
|
|
@@ -26328,7 +27296,7 @@ function TagsManager({
|
|
|
26328
27296
|
const startEdit = React71.useCallback((id, name) => {
|
|
26329
27297
|
setEditingId(id);
|
|
26330
27298
|
setEditingName(name);
|
|
26331
|
-
setTimeout(() => _optionalChain([editInputRef, 'access',
|
|
27299
|
+
setTimeout(() => _optionalChain([editInputRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.focus, 'call', _541 => _541()]), 0);
|
|
26332
27300
|
}, []);
|
|
26333
27301
|
const confirmEdit = React71.useCallback(async () => {
|
|
26334
27302
|
if (!onUpdateTag || !editingId || !editingName.trim()) return;
|
|
@@ -26355,7 +27323,7 @@ function TagsManager({
|
|
|
26355
27323
|
e.stopPropagation();
|
|
26356
27324
|
onChange([]);
|
|
26357
27325
|
setSearch("");
|
|
26358
|
-
_optionalChain([inputRef, 'access',
|
|
27326
|
+
_optionalChain([inputRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.focus, 'call', _544 => _544()]);
|
|
26359
27327
|
},
|
|
26360
27328
|
[onChange]
|
|
26361
27329
|
);
|
|
@@ -26454,10 +27422,10 @@ function TagsManager({
|
|
|
26454
27422
|
align: "start",
|
|
26455
27423
|
onOpenAutoFocus: (e) => {
|
|
26456
27424
|
e.preventDefault();
|
|
26457
|
-
_optionalChain([inputRef, 'access',
|
|
27425
|
+
_optionalChain([inputRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.focus, 'call', _547 => _547()]);
|
|
26458
27426
|
},
|
|
26459
27427
|
onInteractOutside: (e) => {
|
|
26460
|
-
if (_optionalChain([containerRef, 'access',
|
|
27428
|
+
if (_optionalChain([containerRef, 'access', _548 => _548.current, 'optionalAccess', _549 => _549.contains, 'call', _550 => _550(e.target)])) {
|
|
26461
27429
|
e.preventDefault();
|
|
26462
27430
|
}
|
|
26463
27431
|
},
|
|
@@ -27561,19 +28529,19 @@ function TabNavigation({
|
|
|
27561
28529
|
const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
|
|
27562
28530
|
const getInitialTab = () => {
|
|
27563
28531
|
if (isUrlSyncEnabled) {
|
|
27564
|
-
const fromUrl = _optionalChain([searchParams, 'optionalAccess',
|
|
28532
|
+
const fromUrl = _optionalChain([searchParams, 'optionalAccess', _551 => _551.get, 'call', _552 => _552(paramName)]) || "";
|
|
27565
28533
|
if (validTabIds.has(fromUrl)) {
|
|
27566
28534
|
return fromUrl;
|
|
27567
28535
|
}
|
|
27568
28536
|
}
|
|
27569
|
-
return defaultTab || _optionalChain([tabs, 'access',
|
|
28537
|
+
return defaultTab || _optionalChain([tabs, 'access', _553 => _553[0], 'optionalAccess', _554 => _554.id]) || "";
|
|
27570
28538
|
};
|
|
27571
28539
|
const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
|
|
27572
28540
|
const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
|
|
27573
28541
|
_react.useEffect.call(void 0, () => {
|
|
27574
28542
|
if (!isUrlSyncEnabled) return;
|
|
27575
|
-
const fromUrl = _optionalChain([searchParams, 'optionalAccess',
|
|
27576
|
-
const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access',
|
|
28543
|
+
const fromUrl = _optionalChain([searchParams, 'optionalAccess', _555 => _555.get, 'call', _556 => _556(paramName)]) || "";
|
|
28544
|
+
const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _557 => _557[0], 'optionalAccess', _558 => _558.id]) || "";
|
|
27577
28545
|
if (nextTab !== internalActiveTab) {
|
|
27578
28546
|
setInternalActiveTab(nextTab);
|
|
27579
28547
|
}
|
|
@@ -27581,13 +28549,13 @@ function TabNavigation({
|
|
|
27581
28549
|
const handleTabChange = (tabId) => {
|
|
27582
28550
|
if (isUrlSyncEnabled) {
|
|
27583
28551
|
setInternalActiveTab(tabId);
|
|
27584
|
-
const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess',
|
|
28552
|
+
const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _559 => _559.toString, 'call', _560 => _560()]));
|
|
27585
28553
|
params.set(paramName, tabId);
|
|
27586
28554
|
const method = replaceState ? "replace" : "push";
|
|
27587
28555
|
router[method](`${pathname}?${params.toString()}`);
|
|
27588
|
-
_optionalChain([controlledOnTabChange, 'optionalCall',
|
|
28556
|
+
_optionalChain([controlledOnTabChange, 'optionalCall', _561 => _561(tabId)]);
|
|
27589
28557
|
} else {
|
|
27590
|
-
_optionalChain([controlledOnTabChange, 'optionalCall',
|
|
28558
|
+
_optionalChain([controlledOnTabChange, 'optionalCall', _562 => _562(tabId)]);
|
|
27591
28559
|
}
|
|
27592
28560
|
};
|
|
27593
28561
|
const scrollRef = _react.useRef.call(void 0, null);
|
|
@@ -27675,7 +28643,7 @@ function TabNavigation({
|
|
|
27675
28643
|
var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
|
|
27676
28644
|
var getTabComponent = (tabs, tabId) => {
|
|
27677
28645
|
const tab = getTabById(tabs, tabId);
|
|
27678
|
-
return _optionalChain([tab, 'optionalAccess',
|
|
28646
|
+
return _optionalChain([tab, 'optionalAccess', _563 => _563.component]) || null;
|
|
27679
28647
|
};
|
|
27680
28648
|
|
|
27681
28649
|
// src/components/ui/alert.tsx
|
|
@@ -28116,16 +29084,16 @@ function FilterModal({
|
|
|
28116
29084
|
};
|
|
28117
29085
|
const handleReset = () => {
|
|
28118
29086
|
onFilterChange({});
|
|
28119
|
-
_optionalChain([onTagsChange, 'optionalCall',
|
|
29087
|
+
_optionalChain([onTagsChange, 'optionalCall', _564 => _564([])]);
|
|
28120
29088
|
onClose();
|
|
28121
29089
|
};
|
|
28122
29090
|
const handleApply = () => {
|
|
28123
29091
|
onFilterChange(selectedFilters);
|
|
28124
|
-
_optionalChain([onTagsChange, 'optionalCall',
|
|
29092
|
+
_optionalChain([onTagsChange, 'optionalCall', _565 => _565(pendingTags)]);
|
|
28125
29093
|
onClose();
|
|
28126
29094
|
};
|
|
28127
29095
|
const getColumnDirection = (columnKey) => {
|
|
28128
|
-
return _optionalChain([sortConfig, 'optionalAccess',
|
|
29096
|
+
return _optionalChain([sortConfig, 'optionalAccess', _566 => _566.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
|
|
28129
29097
|
};
|
|
28130
29098
|
const hasSort = !!sortConfig && sortConfig.columns.length > 0;
|
|
28131
29099
|
const hasFilterGroups = filterGroups.length > 0;
|
|
@@ -28174,7 +29142,7 @@ function FilterModal({
|
|
|
28174
29142
|
{
|
|
28175
29143
|
column,
|
|
28176
29144
|
currentDirection: getColumnDirection(column.key),
|
|
28177
|
-
onSort: (direction) => _optionalChain([onSort, 'optionalCall',
|
|
29145
|
+
onSort: (direction) => _optionalChain([onSort, 'optionalCall', _567 => _567(column.key, direction)]),
|
|
28178
29146
|
onClear: onSortClear ? () => onSortClear(column.key) : void 0
|
|
28179
29147
|
},
|
|
28180
29148
|
column.key
|
|
@@ -29093,26 +30061,26 @@ function DeviceCard({
|
|
|
29093
30061
|
] }),
|
|
29094
30062
|
device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", title: device.organization, children: device.organization })
|
|
29095
30063
|
] }),
|
|
29096
|
-
_optionalChain([actions, 'access',
|
|
30064
|
+
_optionalChain([actions, 'access', _568 => _568.moreButton, 'optionalAccess', _569 => _569.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29097
30065
|
"div",
|
|
29098
30066
|
{
|
|
29099
30067
|
className: "flex items-center justify-center p-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
|
|
29100
30068
|
onClick: (e) => {
|
|
29101
30069
|
e.stopPropagation();
|
|
29102
|
-
_optionalChain([actions, 'access',
|
|
30070
|
+
_optionalChain([actions, 'access', _570 => _570.moreButton, 'optionalAccess', _571 => _571.onClick, 'optionalCall', _572 => _572()]);
|
|
29103
30071
|
},
|
|
29104
30072
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
|
|
29105
30073
|
}
|
|
29106
30074
|
),
|
|
29107
|
-
_optionalChain([actions, 'access',
|
|
29108
|
-
_optionalChain([actions, 'access',
|
|
30075
|
+
_optionalChain([actions, 'access', _573 => _573.detailsButton, 'optionalAccess', _574 => _574.visible]) !== false && _optionalChain([actions, 'access', _575 => _575.detailsButton, 'optionalAccess', _576 => _576.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
|
|
30076
|
+
_optionalChain([actions, 'access', _577 => _577.customActions, 'optionalAccess', _578 => _578.map, 'call', _579 => _579(
|
|
29109
30077
|
(action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
29110
30078
|
"div",
|
|
29111
30079
|
{
|
|
29112
30080
|
className: "flex items-center justify-center px-4 py-3 rounded-[6px] shrink-0 border border-ods-border cursor-pointer hover:bg-ods-bg-hover transition-colors",
|
|
29113
30081
|
onClick: (e) => {
|
|
29114
30082
|
e.stopPropagation();
|
|
29115
|
-
_optionalChain([action, 'access',
|
|
30083
|
+
_optionalChain([action, 'access', _580 => _580.onClick, 'optionalCall', _581 => _581()]);
|
|
29116
30084
|
},
|
|
29117
30085
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
|
|
29118
30086
|
},
|
|
@@ -29545,7 +30513,7 @@ function MoreActionsMenu({
|
|
|
29545
30513
|
] });
|
|
29546
30514
|
const handleActivate = (e) => {
|
|
29547
30515
|
e.stopPropagation();
|
|
29548
|
-
if (!item.disabled) _optionalChain([item, 'access',
|
|
30516
|
+
if (!item.disabled) _optionalChain([item, 'access', _582 => _582.onClick, 'optionalCall', _583 => _583()]);
|
|
29549
30517
|
};
|
|
29550
30518
|
if (item.href) {
|
|
29551
30519
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -29675,7 +30643,7 @@ function OrganizationCard({
|
|
|
29675
30643
|
const handleActionClick = (e) => {
|
|
29676
30644
|
e.preventDefault();
|
|
29677
30645
|
e.stopPropagation();
|
|
29678
|
-
_optionalChain([actionButton, 'optionalAccess',
|
|
30646
|
+
_optionalChain([actionButton, 'optionalAccess', _584 => _584.onClick, 'call', _585 => _585(organization, e)]);
|
|
29679
30647
|
};
|
|
29680
30648
|
const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
29681
30649
|
"div",
|
|
@@ -29828,7 +30796,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
|
|
|
29828
30796
|
onKeyDown: (e) => {
|
|
29829
30797
|
if (e.key === "Enter" || e.key === " ") {
|
|
29830
30798
|
e.preventDefault();
|
|
29831
|
-
_optionalChain([onClick, 'optionalCall',
|
|
30799
|
+
_optionalChain([onClick, 'optionalCall', _586 => _586()]);
|
|
29832
30800
|
}
|
|
29833
30801
|
},
|
|
29834
30802
|
children: [
|
|
@@ -29929,7 +30897,7 @@ var LogsList = React96.forwardRef(({
|
|
|
29929
30897
|
log,
|
|
29930
30898
|
isLast: index === logs.length - 1,
|
|
29931
30899
|
showConnector,
|
|
29932
|
-
onClick: () => _optionalChain([onLogClick, 'optionalCall',
|
|
30900
|
+
onClick: () => _optionalChain([onLogClick, 'optionalCall', _587 => _587(log)])
|
|
29933
30901
|
},
|
|
29934
30902
|
log.id
|
|
29935
30903
|
))
|
|
@@ -29940,74 +30908,6 @@ var LogsList = React96.forwardRef(({
|
|
|
29940
30908
|
});
|
|
29941
30909
|
LogsList.displayName = "LogsList";
|
|
29942
30910
|
|
|
29943
|
-
// src/types/announcement.ts
|
|
29944
|
-
var AVAILABLE_SVG_ICONS = [
|
|
29945
|
-
// OpenFrame Logo Options
|
|
29946
|
-
{ name: "openframe-logo", label: "OpenFrame Logo", component: null },
|
|
29947
|
-
// Platform Logos
|
|
29948
|
-
{ name: "openmsp-logo", label: "OpenMSP Logo", component: null },
|
|
29949
|
-
{ name: "flamingo-logo", label: "Flamingo Logo", component: null },
|
|
29950
|
-
// Lucide Icons
|
|
29951
|
-
{ name: "megaphone", label: "Megaphone", component: null },
|
|
29952
|
-
{ name: "bell", label: "Bell", component: null },
|
|
29953
|
-
{ name: "info", label: "Information", component: null },
|
|
29954
|
-
{ name: "star", label: "Star", component: null },
|
|
29955
|
-
{ name: "rocket", label: "Rocket", component: null },
|
|
29956
|
-
{ name: "package", label: "Package", component: null }
|
|
29957
|
-
];
|
|
29958
|
-
|
|
29959
|
-
// src/types/product-release.ts
|
|
29960
|
-
var releaseTypeOptions = [
|
|
29961
|
-
{ value: "major", label: "Major Release", description: "Breaking changes, new architecture", color: "red" },
|
|
29962
|
-
{ value: "minor", label: "Minor Release", description: "New features, backward compatible", color: "blue" },
|
|
29963
|
-
{ value: "patch", label: "Patch Release", description: "Bug fixes only", color: "green" },
|
|
29964
|
-
{ value: "beta", label: "Beta Release", description: "Pre-release testing version", color: "yellow" },
|
|
29965
|
-
{ value: "alpha", label: "Alpha Release", description: "Early testing version", color: "orange" }
|
|
29966
|
-
];
|
|
29967
|
-
var releaseStatusOptions = [
|
|
29968
|
-
{ value: "alpha", label: "Alpha", description: "Early development, unstable", color: "orange" },
|
|
29969
|
-
{ value: "beta", label: "Beta", description: "Feature complete, testing", color: "yellow" },
|
|
29970
|
-
{ value: "stable", label: "Stable", description: "Production ready", color: "green" },
|
|
29971
|
-
{ value: "deprecated", label: "Deprecated", description: "No longer supported", color: "gray" }
|
|
29972
|
-
];
|
|
29973
|
-
var changelogLabels = {
|
|
29974
|
-
features_added: "Features Added",
|
|
29975
|
-
bugs_fixed: "Bugs Fixed",
|
|
29976
|
-
improvements: "Improvements",
|
|
29977
|
-
breaking_changes: "Breaking Changes"
|
|
29978
|
-
};
|
|
29979
|
-
var SEMVER_REGEX = /^\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?(\+[a-zA-Z0-9.-]+)?$/;
|
|
29980
|
-
|
|
29981
|
-
// src/types/tmcg.ts
|
|
29982
|
-
var TMCG_ROLES = {
|
|
29983
|
-
FOUNDER: "founder",
|
|
29984
|
-
ORGANIZER: "organizer",
|
|
29985
|
-
MEMBER: "member",
|
|
29986
|
-
CONTRIBUTOR: "contributor",
|
|
29987
|
-
SPEAKER: "speaker",
|
|
29988
|
-
MENTOR: "mentor"
|
|
29989
|
-
};
|
|
29990
|
-
var TMCG_ROLE_DISPLAY_NAMES = {
|
|
29991
|
-
[TMCG_ROLES.FOUNDER]: "Founder",
|
|
29992
|
-
[TMCG_ROLES.ORGANIZER]: "Organizer",
|
|
29993
|
-
[TMCG_ROLES.MEMBER]: "Member",
|
|
29994
|
-
[TMCG_ROLES.CONTRIBUTOR]: "Contributor",
|
|
29995
|
-
[TMCG_ROLES.SPEAKER]: "Speaker",
|
|
29996
|
-
[TMCG_ROLES.MENTOR]: "Mentor"
|
|
29997
|
-
};
|
|
29998
|
-
var TMCG_SOCIAL_PLATFORMS = {
|
|
29999
|
-
linkedin: "LinkedIn",
|
|
30000
|
-
twitter: "Twitter",
|
|
30001
|
-
github: "GitHub",
|
|
30002
|
-
website: "Website",
|
|
30003
|
-
youtube: "YouTube",
|
|
30004
|
-
instagram: "Instagram",
|
|
30005
|
-
facebook: "Facebook",
|
|
30006
|
-
discord: "Discord",
|
|
30007
|
-
telegram: "Telegram",
|
|
30008
|
-
slack: "Slack"
|
|
30009
|
-
};
|
|
30010
|
-
|
|
30011
30911
|
// src/assets/index.ts
|
|
30012
30912
|
var assets = {};
|
|
30013
30913
|
|
|
@@ -30184,125 +31084,6 @@ var TooltipContent = React98.forwardRef(({ className, sideOffset = 4, ...props }
|
|
|
30184
31084
|
) }));
|
|
30185
31085
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
30186
31086
|
|
|
30187
|
-
// src/components/ui/error-state.tsx
|
|
30188
|
-
_chunkKUZGEA7Ucjs.init_button2.call(void 0, );
|
|
30189
|
-
_chunk664KA5FIcjs.init_cn.call(void 0, );
|
|
30190
|
-
|
|
30191
|
-
|
|
30192
|
-
function ErrorState({
|
|
30193
|
-
title = "Error",
|
|
30194
|
-
message: message2,
|
|
30195
|
-
variant = "error",
|
|
30196
|
-
showIcon = true,
|
|
30197
|
-
showRetry = false,
|
|
30198
|
-
showHome = false,
|
|
30199
|
-
onRetry,
|
|
30200
|
-
onHome,
|
|
30201
|
-
className,
|
|
30202
|
-
containerClassName
|
|
30203
|
-
}) {
|
|
30204
|
-
const getVariantStyles = () => {
|
|
30205
|
-
switch (variant) {
|
|
30206
|
-
case "error":
|
|
30207
|
-
return {
|
|
30208
|
-
bg: "bg-ods-attention-red-error/20",
|
|
30209
|
-
border: "border-ods-attention-red-error",
|
|
30210
|
-
text: "text-ods-attention-red-error",
|
|
30211
|
-
icon: "text-ods-attention-red-error"
|
|
30212
|
-
};
|
|
30213
|
-
case "warning":
|
|
30214
|
-
return {
|
|
30215
|
-
bg: "bg-ods-attention-yellow-warning/20",
|
|
30216
|
-
border: "border-ods-attention-yellow-warning",
|
|
30217
|
-
text: "text-ods-attention-yellow-warning",
|
|
30218
|
-
icon: "text-ods-attention-yellow-warning"
|
|
30219
|
-
};
|
|
30220
|
-
case "info":
|
|
30221
|
-
return {
|
|
30222
|
-
bg: "bg-ods-bg-surface",
|
|
30223
|
-
border: "border-ods-border",
|
|
30224
|
-
text: "text-ods-text-secondary",
|
|
30225
|
-
icon: "text-ods-text-secondary"
|
|
30226
|
-
};
|
|
30227
|
-
}
|
|
30228
|
-
};
|
|
30229
|
-
const styles = getVariantStyles();
|
|
30230
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "p-6", containerClassName), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
30231
|
-
"rounded-lg p-4 border",
|
|
30232
|
-
styles.bg,
|
|
30233
|
-
styles.border,
|
|
30234
|
-
className
|
|
30235
|
-
), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-3", children: [
|
|
30236
|
-
showIcon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: _chunk664KA5FIcjs.cn.call(void 0, "h-5 w-5 mt-0.5 flex-shrink-0", styles.icon) }),
|
|
30237
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
|
|
30238
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: _chunk664KA5FIcjs.cn.call(void 0, "font-semibold mb-1", styles.text), children: title }),
|
|
30239
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunk664KA5FIcjs.cn.call(void 0, "text-sm", styles.text), children: message2 }),
|
|
30240
|
-
(showRetry || showHome) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 mt-3", children: [
|
|
30241
|
-
showRetry && onRetry && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30242
|
-
_chunkKUZGEA7Ucjs.Button,
|
|
30243
|
-
{
|
|
30244
|
-
onClick: onRetry,
|
|
30245
|
-
variant: "outline",
|
|
30246
|
-
size: "small-legacy",
|
|
30247
|
-
className: "h-8",
|
|
30248
|
-
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.RefreshCw, { className: "h-4 w-4" }),
|
|
30249
|
-
children: "Try Again"
|
|
30250
|
-
}
|
|
30251
|
-
),
|
|
30252
|
-
showHome && onHome && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30253
|
-
_chunkKUZGEA7Ucjs.Button,
|
|
30254
|
-
{
|
|
30255
|
-
onClick: onHome,
|
|
30256
|
-
variant: "outline",
|
|
30257
|
-
size: "small-legacy",
|
|
30258
|
-
className: "h-8",
|
|
30259
|
-
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Home, { className: "h-4 w-4" }),
|
|
30260
|
-
children: "Go Home"
|
|
30261
|
-
}
|
|
30262
|
-
)
|
|
30263
|
-
] })
|
|
30264
|
-
] })
|
|
30265
|
-
] }) }) });
|
|
30266
|
-
}
|
|
30267
|
-
function PageError({ message: message2, onRetry, onHome }) {
|
|
30268
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30269
|
-
ErrorState,
|
|
30270
|
-
{
|
|
30271
|
-
title: "Page Error",
|
|
30272
|
-
message: message2,
|
|
30273
|
-
variant: "error",
|
|
30274
|
-
showRetry: !!onRetry,
|
|
30275
|
-
showHome: !!onHome,
|
|
30276
|
-
onRetry,
|
|
30277
|
-
onHome
|
|
30278
|
-
}
|
|
30279
|
-
);
|
|
30280
|
-
}
|
|
30281
|
-
function LoadError({ message: message2, onRetry }) {
|
|
30282
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30283
|
-
ErrorState,
|
|
30284
|
-
{
|
|
30285
|
-
title: "Loading Error",
|
|
30286
|
-
message: message2,
|
|
30287
|
-
variant: "error",
|
|
30288
|
-
showRetry: !!onRetry,
|
|
30289
|
-
onRetry
|
|
30290
|
-
}
|
|
30291
|
-
);
|
|
30292
|
-
}
|
|
30293
|
-
function NotFoundError({ message: message2 = "The requested item was not found", onHome }) {
|
|
30294
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30295
|
-
ErrorState,
|
|
30296
|
-
{
|
|
30297
|
-
title: "Not Found",
|
|
30298
|
-
message: message2,
|
|
30299
|
-
variant: "warning",
|
|
30300
|
-
showHome: !!onHome,
|
|
30301
|
-
onHome
|
|
30302
|
-
}
|
|
30303
|
-
);
|
|
30304
|
-
}
|
|
30305
|
-
|
|
30306
31087
|
// src/components/ui/content-loader.tsx
|
|
30307
31088
|
_chunk664KA5FIcjs.init_cn.call(void 0, );
|
|
30308
31089
|
|
|
@@ -30518,7 +31299,7 @@ function CursorPaginationSimple({
|
|
|
30518
31299
|
{
|
|
30519
31300
|
variant: "transparent",
|
|
30520
31301
|
size: "icon",
|
|
30521
|
-
onClick: () => _optionalChain([onPrevious, 'optionalCall',
|
|
31302
|
+
onClick: () => _optionalChain([onPrevious, 'optionalCall', _588 => _588("")]),
|
|
30522
31303
|
disabled: !hasPreviousPage || loading,
|
|
30523
31304
|
className: "h-8 w-8",
|
|
30524
31305
|
leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
|
|
@@ -30530,7 +31311,7 @@ function CursorPaginationSimple({
|
|
|
30530
31311
|
{
|
|
30531
31312
|
variant: "transparent",
|
|
30532
31313
|
size: "icon",
|
|
30533
|
-
onClick: () => _optionalChain([onNext, 'optionalCall',
|
|
31314
|
+
onClick: () => _optionalChain([onNext, 'optionalCall', _589 => _589("")]),
|
|
30534
31315
|
disabled: !hasNextPage || loading,
|
|
30535
31316
|
className: "h-8 w-8",
|
|
30536
31317
|
rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
|
|
@@ -30590,7 +31371,7 @@ function TableColumnFilterDropdown({
|
|
|
30590
31371
|
placement = "bottom-start",
|
|
30591
31372
|
dropdownClassName = "min-w-[240px]"
|
|
30592
31373
|
}) {
|
|
30593
|
-
const activeCount = _optionalChain([filters, 'optionalAccess',
|
|
31374
|
+
const activeCount = _optionalChain([filters, 'optionalAccess', _590 => _590[columnKey], 'optionalAccess', _591 => _591.length]) || 0;
|
|
30594
31375
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30595
31376
|
FiltersDropdown,
|
|
30596
31377
|
{
|
|
@@ -30633,7 +31414,7 @@ function TableColumnFilterDropdown({
|
|
|
30633
31414
|
delete newFilters[columnKey];
|
|
30634
31415
|
onFilterChange(newFilters);
|
|
30635
31416
|
},
|
|
30636
|
-
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess',
|
|
31417
|
+
currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _592 => _592[columnKey]]) || [] },
|
|
30637
31418
|
placement,
|
|
30638
31419
|
dropdownClassName
|
|
30639
31420
|
}
|
|
@@ -30930,7 +31711,7 @@ function TableRow({
|
|
|
30930
31711
|
const keys = column.key.split(".");
|
|
30931
31712
|
let value = item;
|
|
30932
31713
|
for (const key of keys) {
|
|
30933
|
-
value = _optionalChain([value, 'optionalAccess',
|
|
31714
|
+
value = _optionalChain([value, 'optionalAccess', _593 => _593[key]]);
|
|
30934
31715
|
}
|
|
30935
31716
|
if (value === null || value === void 0) {
|
|
30936
31717
|
return "-";
|
|
@@ -31000,7 +31781,7 @@ function TableRow({
|
|
|
31000
31781
|
// src/components/ui/table/table.tsx
|
|
31001
31782
|
|
|
31002
31783
|
function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
|
|
31003
|
-
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess',
|
|
31784
|
+
const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _594 => _594.length])) || Boolean(renderRowActions);
|
|
31004
31785
|
const result = [...columns];
|
|
31005
31786
|
if (hasActions) {
|
|
31006
31787
|
const actionsColumn = {
|
|
@@ -31094,7 +31875,7 @@ function Table({
|
|
|
31094
31875
|
return rowKey(item);
|
|
31095
31876
|
}
|
|
31096
31877
|
const key = item[rowKey];
|
|
31097
|
-
return _optionalChain([key, 'optionalAccess',
|
|
31878
|
+
return _optionalChain([key, 'optionalAccess', _595 => _595.toString, 'call', _596 => _596()]) || index.toString();
|
|
31098
31879
|
};
|
|
31099
31880
|
const getRowClassName = (item, index) => {
|
|
31100
31881
|
if (typeof rowClassName === "function") {
|
|
@@ -31128,23 +31909,23 @@ function Table({
|
|
|
31128
31909
|
const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
|
|
31129
31910
|
const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
|
|
31130
31911
|
const sentinelRef = _react.useRef.call(void 0, null);
|
|
31131
|
-
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess',
|
|
31132
|
-
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess',
|
|
31912
|
+
const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _597 => _597.onLoadMore]));
|
|
31913
|
+
onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _598 => _598.onLoadMore]);
|
|
31133
31914
|
_react.useEffect.call(void 0, () => {
|
|
31134
|
-
if (!_optionalChain([infiniteScroll, 'optionalAccess',
|
|
31915
|
+
if (!_optionalChain([infiniteScroll, 'optionalAccess', _599 => _599.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
|
|
31135
31916
|
const sentinel = sentinelRef.current;
|
|
31136
31917
|
if (!sentinel) return;
|
|
31137
31918
|
const observer = new IntersectionObserver(
|
|
31138
31919
|
(entries) => {
|
|
31139
|
-
if (_optionalChain([entries, 'access',
|
|
31140
|
-
_optionalChain([onLoadMoreRef, 'access',
|
|
31920
|
+
if (_optionalChain([entries, 'access', _600 => _600[0], 'optionalAccess', _601 => _601.isIntersecting])) {
|
|
31921
|
+
_optionalChain([onLoadMoreRef, 'access', _602 => _602.current, 'optionalCall', _603 => _603()]);
|
|
31141
31922
|
}
|
|
31142
31923
|
},
|
|
31143
31924
|
{ rootMargin: "200px" }
|
|
31144
31925
|
);
|
|
31145
31926
|
observer.observe(sentinel);
|
|
31146
31927
|
return () => observer.disconnect();
|
|
31147
|
-
}, [_optionalChain([infiniteScroll, 'optionalAccess',
|
|
31928
|
+
}, [_optionalChain([infiniteScroll, 'optionalAccess', _604 => _604.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _605 => _605.isFetchingNextPage])]);
|
|
31148
31929
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
|
|
31149
31930
|
showToolbar && bulkActions && selectedRows.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between bg-ods-card border border-ods-border rounded-[6px] p-3 mb-2", children: [
|
|
31150
31931
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
|
|
@@ -31215,7 +31996,7 @@ function Table({
|
|
|
31215
31996
|
},
|
|
31216
31997
|
getRowKey(item, index)
|
|
31217
31998
|
)),
|
|
31218
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
31999
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _606 => _606.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31219
32000
|
TableCardSkeleton,
|
|
31220
32001
|
{
|
|
31221
32002
|
columns,
|
|
@@ -31224,7 +32005,7 @@ function Table({
|
|
|
31224
32005
|
hasChevron: Boolean(rowHref)
|
|
31225
32006
|
}
|
|
31226
32007
|
),
|
|
31227
|
-
_optionalChain([infiniteScroll, 'optionalAccess',
|
|
32008
|
+
_optionalChain([infiniteScroll, 'optionalAccess', _607 => _607.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
|
|
31228
32009
|
!infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
31229
32010
|
"div",
|
|
31230
32011
|
{
|
|
@@ -31582,7 +32363,7 @@ function QueryReportTable({
|
|
|
31582
32363
|
);
|
|
31583
32364
|
const handleExport = () => {
|
|
31584
32365
|
exportToCSV(data, columns, exportFilename);
|
|
31585
|
-
_optionalChain([onExport, 'optionalCall',
|
|
32366
|
+
_optionalChain([onExport, 'optionalCall', _608 => _608()]);
|
|
31586
32367
|
};
|
|
31587
32368
|
const tableMinWidth = columns.length * (columnWidth + 16);
|
|
31588
32369
|
const {
|
|
@@ -31755,7 +32536,7 @@ function DataTableColumnFilter({
|
|
|
31755
32536
|
align = "left"
|
|
31756
32537
|
}) {
|
|
31757
32538
|
const currentValue = column.getFilterValue();
|
|
31758
|
-
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess',
|
|
32539
|
+
const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _609 => _609.length]), () => ( 0));
|
|
31759
32540
|
const sections = _react.useMemo.call(void 0,
|
|
31760
32541
|
() => [
|
|
31761
32542
|
{
|
|
@@ -31835,7 +32616,7 @@ function DataTableHeader({
|
|
|
31835
32616
|
const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
|
|
31836
32617
|
if (header.isPlaceholder) return false;
|
|
31837
32618
|
if (isLgUp) return true;
|
|
31838
|
-
return Boolean(_optionalChain([header, 'access',
|
|
32619
|
+
return Boolean(_optionalChain([header, 'access', _610 => _610.column, 'access', _611 => _611.columnDef, 'access', _612 => _612.meta, 'optionalAccess', _613 => _613.filter]));
|
|
31839
32620
|
});
|
|
31840
32621
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31841
32622
|
"div",
|
|
@@ -31865,20 +32646,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
|
|
|
31865
32646
|
if (header.isPlaceholder) return null;
|
|
31866
32647
|
const column = header.column;
|
|
31867
32648
|
const meta = column.columnDef.meta;
|
|
31868
|
-
const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess',
|
|
31869
|
-
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess',
|
|
31870
|
-
const canSort = _optionalChain([meta, 'optionalAccess',
|
|
31871
|
-
const sortDir = _optionalChain([sort, 'optionalAccess',
|
|
32649
|
+
const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _614 => _614.filter]));
|
|
32650
|
+
const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _615 => _615.align]), () => ( "left"));
|
|
32651
|
+
const canSort = _optionalChain([meta, 'optionalAccess', _616 => _616.sortable]) === true;
|
|
32652
|
+
const sortDir = _optionalChain([sort, 'optionalAccess', _617 => _617.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
|
|
31872
32653
|
if (!isLgUp && !hasFilter) return null;
|
|
31873
32654
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31874
32655
|
"div",
|
|
31875
32656
|
{
|
|
31876
32657
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
31877
32658
|
"flex items-stretch",
|
|
31878
|
-
isLgUp && (_optionalChain([meta, 'optionalAccess',
|
|
31879
|
-
_optionalChain([meta, 'optionalAccess',
|
|
32659
|
+
isLgUp && (_optionalChain([meta, 'optionalAccess', _618 => _618.width]) || "flex-1 min-w-0"),
|
|
32660
|
+
_optionalChain([meta, 'optionalAccess', _619 => _619.headerClassName]),
|
|
31880
32661
|
// Don't apply hide classes if column is filterable on tablet (keep filter accessible)
|
|
31881
|
-
!(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess',
|
|
32662
|
+
!(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _620 => _620.hideAt]))
|
|
31882
32663
|
),
|
|
31883
32664
|
children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31884
32665
|
DataTableColumnFilter,
|
|
@@ -31897,7 +32678,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
|
|
|
31897
32678
|
isLgUp && alignJustify(align),
|
|
31898
32679
|
canSort && "group cursor-pointer"
|
|
31899
32680
|
),
|
|
31900
|
-
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall',
|
|
32681
|
+
onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _621 => _621(column.id)]) : void 0,
|
|
31901
32682
|
children: [
|
|
31902
32683
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
|
|
31903
32684
|
canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
|
|
@@ -31981,7 +32762,7 @@ function DataTableSkeleton({
|
|
|
31981
32762
|
}) {
|
|
31982
32763
|
const table = useDataTableContext();
|
|
31983
32764
|
const columns = table.getVisibleFlatColumns();
|
|
31984
|
-
const firstColumnId = _optionalChain([columns, 'access',
|
|
32765
|
+
const firstColumnId = _optionalChain([columns, 'access', _622 => _622[0], 'optionalAccess', _623 => _623.id]);
|
|
31985
32766
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
31986
32767
|
"div",
|
|
31987
32768
|
{
|
|
@@ -32005,7 +32786,7 @@ function DataTableSkeleton({
|
|
|
32005
32786
|
{
|
|
32006
32787
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
32007
32788
|
"flex flex-col justify-center shrink-0",
|
|
32008
|
-
_optionalChain([meta, 'optionalAccess',
|
|
32789
|
+
_optionalChain([meta, 'optionalAccess', _624 => _624.width]) || "flex-1"
|
|
32009
32790
|
),
|
|
32010
32791
|
children: [
|
|
32011
32792
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
|
|
@@ -32051,7 +32832,7 @@ function DataTableRowImpl({
|
|
|
32051
32832
|
const handleClick = _react.useCallback.call(void 0,
|
|
32052
32833
|
(e) => {
|
|
32053
32834
|
const target = e.target;
|
|
32054
|
-
if (!_optionalChain([containerRef, 'access',
|
|
32835
|
+
if (!_optionalChain([containerRef, 'access', _625 => _625.current, 'optionalAccess', _626 => _626.contains, 'call', _627 => _627(target)])) {
|
|
32055
32836
|
if (isLinkMode) e.preventDefault();
|
|
32056
32837
|
return;
|
|
32057
32838
|
}
|
|
@@ -32059,7 +32840,7 @@ function DataTableRowImpl({
|
|
|
32059
32840
|
if (isLinkMode) e.preventDefault();
|
|
32060
32841
|
return;
|
|
32061
32842
|
}
|
|
32062
|
-
_optionalChain([onClick, 'optionalCall',
|
|
32843
|
+
_optionalChain([onClick, 'optionalCall', _628 => _628(row.original)]);
|
|
32063
32844
|
},
|
|
32064
32845
|
[onClick, row.original, isLinkMode]
|
|
32065
32846
|
);
|
|
@@ -32082,10 +32863,10 @@ function DataTableRowImpl({
|
|
|
32082
32863
|
{
|
|
32083
32864
|
className: _chunk664KA5FIcjs.cn.call(void 0,
|
|
32084
32865
|
"flex flex-col overflow-hidden",
|
|
32085
|
-
alignJustify(_optionalChain([meta, 'optionalAccess',
|
|
32086
|
-
_optionalChain([meta, 'optionalAccess',
|
|
32087
|
-
_optionalChain([meta, 'optionalAccess',
|
|
32088
|
-
getHideClasses2(_optionalChain([meta, 'optionalAccess',
|
|
32866
|
+
alignJustify(_optionalChain([meta, 'optionalAccess', _629 => _629.align])),
|
|
32867
|
+
_optionalChain([meta, 'optionalAccess', _630 => _630.width]) || "flex-1 min-w-0",
|
|
32868
|
+
_optionalChain([meta, 'optionalAccess', _631 => _631.cellClassName]),
|
|
32869
|
+
getHideClasses2(_optionalChain([meta, 'optionalAccess', _632 => _632.hideAt]))
|
|
32089
32870
|
),
|
|
32090
32871
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
|
|
32091
32872
|
},
|
|
@@ -32150,7 +32931,7 @@ function DataTableBody({
|
|
|
32150
32931
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk664KA5FIcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
|
|
32151
32932
|
rows.map((row, index) => {
|
|
32152
32933
|
const item = row.original;
|
|
32153
|
-
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall',
|
|
32934
|
+
const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _633 => _633(item)]), () => ( void 0));
|
|
32154
32935
|
const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
|
|
32155
32936
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
32156
32937
|
DataTableRow,
|
|
@@ -32214,7 +32995,7 @@ function DataTableInfiniteFooter({
|
|
|
32214
32995
|
if (!sentinel) return;
|
|
32215
32996
|
const observer = new IntersectionObserver(
|
|
32216
32997
|
(entries) => {
|
|
32217
|
-
if (_optionalChain([entries, 'access',
|
|
32998
|
+
if (_optionalChain([entries, 'access', _634 => _634[0], 'optionalAccess', _635 => _635.isIntersecting])) onLoadMoreRef.current();
|
|
32218
32999
|
},
|
|
32219
33000
|
{ rootMargin }
|
|
32220
33001
|
);
|
|
@@ -32262,7 +33043,7 @@ function DataTableRowCount({
|
|
|
32262
33043
|
const table = useDataTableContext();
|
|
32263
33044
|
const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
|
|
32264
33045
|
if (hideWhenEmpty && count === 0) return null;
|
|
32265
|
-
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall',
|
|
33046
|
+
const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _636 => _636(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
|
|
32266
33047
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
32267
33048
|
"span",
|
|
32268
33049
|
{
|
|
@@ -32418,7 +33199,7 @@ function SearchInput({
|
|
|
32418
33199
|
if (!showHiddenTags) return;
|
|
32419
33200
|
const handleClick = (e) => {
|
|
32420
33201
|
const target = e.target;
|
|
32421
|
-
if (!_optionalChain([hiddenTagsRef, 'access',
|
|
33202
|
+
if (!_optionalChain([hiddenTagsRef, 'access', _637 => _637.current, 'optionalAccess', _638 => _638.contains, 'call', _639 => _639(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _640 => _640.current, 'optionalAccess', _641 => _641.contains, 'call', _642 => _642(target)])) {
|
|
32422
33203
|
setShowHiddenTags(false);
|
|
32423
33204
|
}
|
|
32424
33205
|
};
|
|
@@ -32466,10 +33247,10 @@ function SearchInput({
|
|
|
32466
33247
|
} else {
|
|
32467
33248
|
setInternalValue("");
|
|
32468
33249
|
}
|
|
32469
|
-
_optionalChain([inputRef, 'access',
|
|
33250
|
+
_optionalChain([inputRef, 'access', _643 => _643.current, 'optionalAccess', _644 => _644.focus, 'call', _645 => _645()]);
|
|
32470
33251
|
};
|
|
32471
33252
|
const handleResultClick = (result, e) => {
|
|
32472
|
-
_optionalChain([onResultSelect, 'optionalCall',
|
|
33253
|
+
_optionalChain([onResultSelect, 'optionalCall', _646 => _646(
|
|
32473
33254
|
result,
|
|
32474
33255
|
e ? {
|
|
32475
33256
|
metaKey: e.metaKey,
|
|
@@ -32501,7 +33282,7 @@ function SearchInput({
|
|
|
32501
33282
|
if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
|
|
32502
33283
|
handleResultClick(flatResults[highlightedIndex]);
|
|
32503
33284
|
} else {
|
|
32504
|
-
_optionalChain([onSubmit, 'optionalCall',
|
|
33285
|
+
_optionalChain([onSubmit, 'optionalCall', _647 => _647(currentValue)]);
|
|
32505
33286
|
}
|
|
32506
33287
|
break;
|
|
32507
33288
|
case "Escape":
|
|
@@ -32579,7 +33360,7 @@ function SearchInput({
|
|
|
32579
33360
|
dropdownVisible && "!border-ods-accent"
|
|
32580
33361
|
),
|
|
32581
33362
|
onClick: () => {
|
|
32582
|
-
_optionalChain([inputRef, 'access',
|
|
33363
|
+
_optionalChain([inputRef, 'access', _648 => _648.current, 'optionalAccess', _649 => _649.focus, 'call', _650 => _650()]);
|
|
32583
33364
|
setIsOpen(true);
|
|
32584
33365
|
},
|
|
32585
33366
|
children: [
|
|
@@ -32663,10 +33444,10 @@ function SearchInput({
|
|
|
32663
33444
|
align: "start",
|
|
32664
33445
|
onOpenAutoFocus: (e) => {
|
|
32665
33446
|
e.preventDefault();
|
|
32666
|
-
_optionalChain([inputRef, 'access',
|
|
33447
|
+
_optionalChain([inputRef, 'access', _651 => _651.current, 'optionalAccess', _652 => _652.focus, 'call', _653 => _653()]);
|
|
32667
33448
|
},
|
|
32668
33449
|
onInteractOutside: (e) => {
|
|
32669
|
-
if (_optionalChain([containerRef, 'access',
|
|
33450
|
+
if (_optionalChain([containerRef, 'access', _654 => _654.current, 'optionalAccess', _655 => _655.contains, 'call', _656 => _656(e.target)])) {
|
|
32670
33451
|
e.preventDefault();
|
|
32671
33452
|
}
|
|
32672
33453
|
},
|
|
@@ -32683,10 +33464,10 @@ function SearchInput({
|
|
|
32683
33464
|
ref: hiddenTagsPopupRef,
|
|
32684
33465
|
items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
|
|
32685
33466
|
style: {
|
|
32686
|
-
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access',
|
|
33467
|
+
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _657 => _657.current, 'optionalAccess', _658 => _658.getBoundingClientRect, 'call', _659 => _659(), 'access', _660 => _660.left]), () => ( 0))) : 0
|
|
32687
33468
|
},
|
|
32688
33469
|
onRemove: (value2) => {
|
|
32689
|
-
_optionalChain([onFilterRemove, 'optionalCall',
|
|
33470
|
+
_optionalChain([onFilterRemove, 'optionalCall', _661 => _661(value2)]);
|
|
32690
33471
|
if (hiddenCount <= 1) setShowHiddenTags(false);
|
|
32691
33472
|
}
|
|
32692
33473
|
}
|
|
@@ -32737,7 +33518,7 @@ function FilterListItem({
|
|
|
32737
33518
|
}) {
|
|
32738
33519
|
const handleToggle = () => {
|
|
32739
33520
|
if (disabled) return;
|
|
32740
|
-
_optionalChain([onToggle, 'optionalCall',
|
|
33521
|
+
_optionalChain([onToggle, 'optionalCall', _662 => _662(!selected)]);
|
|
32741
33522
|
};
|
|
32742
33523
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
32743
33524
|
"div",
|
|
@@ -32784,7 +33565,7 @@ function FilterListItem({
|
|
|
32784
33565
|
CheckboxPrimitive4.Root,
|
|
32785
33566
|
{
|
|
32786
33567
|
checked: selected,
|
|
32787
|
-
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall',
|
|
33568
|
+
onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _663 => _663(c === true)]),
|
|
32788
33569
|
onClick: (e) => e.stopPropagation(),
|
|
32789
33570
|
disabled,
|
|
32790
33571
|
"aria-label": title,
|
|
@@ -32883,7 +33664,7 @@ function TagSearchInput({
|
|
|
32883
33664
|
if (!showHiddenTags) return;
|
|
32884
33665
|
const handleClick = (e) => {
|
|
32885
33666
|
const target = e.target;
|
|
32886
|
-
if (!_optionalChain([hiddenTagsRef, 'access',
|
|
33667
|
+
if (!_optionalChain([hiddenTagsRef, 'access', _664 => _664.current, 'optionalAccess', _665 => _665.contains, 'call', _666 => _666(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _667 => _667.current, 'optionalAccess', _668 => _668.contains, 'call', _669 => _669(target)])) {
|
|
32887
33668
|
setShowHiddenTags(false);
|
|
32888
33669
|
}
|
|
32889
33670
|
};
|
|
@@ -32899,13 +33680,13 @@ function TagSearchInput({
|
|
|
32899
33680
|
e.preventDefault();
|
|
32900
33681
|
onSubmit(searchValue);
|
|
32901
33682
|
}
|
|
32902
|
-
_optionalChain([onKeyDown, 'optionalCall',
|
|
33683
|
+
_optionalChain([onKeyDown, 'optionalCall', _670 => _670(e)]);
|
|
32903
33684
|
};
|
|
32904
33685
|
const handleClearAll = (e) => {
|
|
32905
33686
|
e.stopPropagation();
|
|
32906
33687
|
e.preventDefault();
|
|
32907
|
-
_optionalChain([onClearAll, 'optionalCall',
|
|
32908
|
-
_optionalChain([inputRef, 'access',
|
|
33688
|
+
_optionalChain([onClearAll, 'optionalCall', _671 => _671()]);
|
|
33689
|
+
_optionalChain([inputRef, 'access', _672 => _672.current, 'optionalAccess', _673 => _673.focus, 'call', _674 => _674()]);
|
|
32909
33690
|
};
|
|
32910
33691
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
|
|
32911
33692
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -32922,7 +33703,7 @@ function TagSearchInput({
|
|
|
32922
33703
|
className
|
|
32923
33704
|
),
|
|
32924
33705
|
onClick: () => {
|
|
32925
|
-
if (!disabled) _optionalChain([inputRef, 'access',
|
|
33706
|
+
if (!disabled) _optionalChain([inputRef, 'access', _675 => _675.current, 'optionalAccess', _676 => _676.focus, 'call', _677 => _677()]);
|
|
32926
33707
|
},
|
|
32927
33708
|
children: [
|
|
32928
33709
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 flex items-center pl-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.SearchIcon, { className: "text-ods-text-secondary size-4 md:size-6" }) }),
|
|
@@ -32994,7 +33775,7 @@ function TagSearchInput({
|
|
|
32994
33775
|
items: hiddenTags,
|
|
32995
33776
|
disabled,
|
|
32996
33777
|
style: {
|
|
32997
|
-
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access',
|
|
33778
|
+
left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _678 => _678.current, 'optionalAccess', _679 => _679.getBoundingClientRect, 'call', _680 => _680(), 'access', _681 => _681.left]), () => ( 0))) : 0
|
|
32998
33779
|
},
|
|
32999
33780
|
onRemove: (value) => {
|
|
33000
33781
|
onTagRemove(value);
|
|
@@ -33095,7 +33876,7 @@ function MarkdownEditor({
|
|
|
33095
33876
|
const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
|
|
33096
33877
|
_react.useEffect.call(void 0, () => {
|
|
33097
33878
|
Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
|
|
33098
|
-
if (_optionalChain([mod, 'access',
|
|
33879
|
+
if (_optionalChain([mod, 'access', _682 => _682.commands, 'optionalAccess', _683 => _683.getExtraCommands])) {
|
|
33099
33880
|
setDefaultExtraCommands(mod.commands.getExtraCommands());
|
|
33100
33881
|
}
|
|
33101
33882
|
});
|
|
@@ -33129,7 +33910,7 @@ function MarkdownEditor({
|
|
|
33129
33910
|
const isImage = file.type.startsWith("image/");
|
|
33130
33911
|
const markdown = isImage ? `` : `[${file.name}](${url})`;
|
|
33131
33912
|
insertTextAtCursor(markdown);
|
|
33132
|
-
_optionalChain([onFileUploaded, 'optionalCall',
|
|
33913
|
+
_optionalChain([onFileUploaded, 'optionalCall', _684 => _684(url, file.name)]);
|
|
33133
33914
|
} catch (error) {
|
|
33134
33915
|
console.error("File upload failed:", error);
|
|
33135
33916
|
setUploadProgress("Upload failed. Please try again.");
|
|
@@ -33142,7 +33923,7 @@ function MarkdownEditor({
|
|
|
33142
33923
|
);
|
|
33143
33924
|
const handleFileInputChange = _react.useCallback.call(void 0,
|
|
33144
33925
|
(e) => {
|
|
33145
|
-
const file = _optionalChain([e, 'access',
|
|
33926
|
+
const file = _optionalChain([e, 'access', _685 => _685.target, 'access', _686 => _686.files, 'optionalAccess', _687 => _687[0]]);
|
|
33146
33927
|
if (file) {
|
|
33147
33928
|
handleFileUpload(file);
|
|
33148
33929
|
e.target.value = "";
|
|
@@ -33153,7 +33934,7 @@ function MarkdownEditor({
|
|
|
33153
33934
|
const handlePaste = _react.useCallback.call(void 0,
|
|
33154
33935
|
(e) => {
|
|
33155
33936
|
if (!onUploadFile) return;
|
|
33156
|
-
const items = _optionalChain([e, 'access',
|
|
33937
|
+
const items = _optionalChain([e, 'access', _688 => _688.clipboardData, 'optionalAccess', _689 => _689.items]);
|
|
33157
33938
|
if (!items) return;
|
|
33158
33939
|
for (const item of items) {
|
|
33159
33940
|
if (item.type.startsWith("image/")) {
|
|
@@ -33178,7 +33959,7 @@ function MarkdownEditor({
|
|
|
33178
33959
|
buttonProps: { "aria-label": "Upload file", title: "Upload file" },
|
|
33179
33960
|
icon: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "w-3 h-3" }),
|
|
33180
33961
|
execute: () => {
|
|
33181
|
-
_optionalChain([fileInputRef, 'access',
|
|
33962
|
+
_optionalChain([fileInputRef, 'access', _690 => _690.current, 'optionalAccess', _691 => _691.click, 'call', _692 => _692()]);
|
|
33182
33963
|
}
|
|
33183
33964
|
} : null;
|
|
33184
33965
|
const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
|
|
@@ -33190,7 +33971,7 @@ function MarkdownEditor({
|
|
|
33190
33971
|
const EDGE_ZONE = 60;
|
|
33191
33972
|
const MAX_SCROLL_SPEED = 15;
|
|
33192
33973
|
const findScrollParent = _react.useCallback.call(void 0, (el) => {
|
|
33193
|
-
let node = _optionalChain([el, 'optionalAccess',
|
|
33974
|
+
let node = _optionalChain([el, 'optionalAccess', _693 => _693.parentElement]);
|
|
33194
33975
|
while (node && node !== document.documentElement) {
|
|
33195
33976
|
const { overflowY } = window.getComputedStyle(node);
|
|
33196
33977
|
if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
|
|
@@ -33333,7 +34114,7 @@ function matchesAccept(file, accept) {
|
|
|
33333
34114
|
});
|
|
33334
34115
|
}
|
|
33335
34116
|
function dragHasFiles(e) {
|
|
33336
|
-
const types = _optionalChain([e, 'access',
|
|
34117
|
+
const types = _optionalChain([e, 'access', _694 => _694.dataTransfer, 'optionalAccess', _695 => _695.types]);
|
|
33337
34118
|
if (!types) return false;
|
|
33338
34119
|
for (let i = 0; i < types.length; i++) {
|
|
33339
34120
|
if (types[i] === "Files") return true;
|
|
@@ -33428,7 +34209,7 @@ function FileUpload({
|
|
|
33428
34209
|
e.stopPropagation();
|
|
33429
34210
|
setDragActive(false);
|
|
33430
34211
|
if (disabled) return;
|
|
33431
|
-
if (_optionalChain([e, 'access',
|
|
34212
|
+
if (_optionalChain([e, 'access', _696 => _696.dataTransfer, 'access', _697 => _697.files, 'optionalAccess', _698 => _698.length])) {
|
|
33432
34213
|
handleFiles(e.dataTransfer.files);
|
|
33433
34214
|
}
|
|
33434
34215
|
};
|
|
@@ -33456,7 +34237,7 @@ function FileUpload({
|
|
|
33456
34237
|
e.preventDefault();
|
|
33457
34238
|
dragCounter = 0;
|
|
33458
34239
|
setDragActive(false);
|
|
33459
|
-
if (_optionalChain([e, 'access',
|
|
34240
|
+
if (_optionalChain([e, 'access', _699 => _699.dataTransfer, 'optionalAccess', _700 => _700.files, 'optionalAccess', _701 => _701.length])) {
|
|
33460
34241
|
handleFilesRef.current(e.dataTransfer.files);
|
|
33461
34242
|
}
|
|
33462
34243
|
};
|
|
@@ -33478,7 +34259,7 @@ function FileUpload({
|
|
|
33478
34259
|
};
|
|
33479
34260
|
}, [acceptWindowDrops, disabled]);
|
|
33480
34261
|
const handleFileSelect = (e) => {
|
|
33481
|
-
if (_optionalChain([e, 'access',
|
|
34262
|
+
if (_optionalChain([e, 'access', _702 => _702.target, 'access', _703 => _703.files, 'optionalAccess', _704 => _704.length])) {
|
|
33482
34263
|
handleFiles(e.target.files);
|
|
33483
34264
|
}
|
|
33484
34265
|
};
|
|
@@ -33495,7 +34276,7 @@ function FileUpload({
|
|
|
33495
34276
|
};
|
|
33496
34277
|
const openDialog = async () => {
|
|
33497
34278
|
if (disabled) return;
|
|
33498
|
-
_optionalChain([fileInputRef, 'access',
|
|
34279
|
+
_optionalChain([fileInputRef, 'access', _705 => _705.current, 'optionalAccess', _706 => _706.click, 'call', _707 => _707()]);
|
|
33499
34280
|
};
|
|
33500
34281
|
const displayError = error || validationError || void 0;
|
|
33501
34282
|
const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
|
|
@@ -33573,7 +34354,7 @@ function FileUpload({
|
|
|
33573
34354
|
"button",
|
|
33574
34355
|
{
|
|
33575
34356
|
type: "button",
|
|
33576
|
-
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall',
|
|
34357
|
+
onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _708 => _708(entry.id)]),
|
|
33577
34358
|
className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
|
|
33578
34359
|
"aria-label": `Remove ${entry.fileName}`,
|
|
33579
34360
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
|
|
@@ -33696,7 +34477,7 @@ function ImageUploader({
|
|
|
33696
34477
|
onChange(file);
|
|
33697
34478
|
};
|
|
33698
34479
|
const handleFileSelect = (e) => {
|
|
33699
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
34480
|
+
validateAndEmit(_optionalChain([e, 'access', _709 => _709.target, 'access', _710 => _710.files, 'optionalAccess', _711 => _711[0]]));
|
|
33700
34481
|
if (inputRef.current) inputRef.current.value = "";
|
|
33701
34482
|
};
|
|
33702
34483
|
const handleDrag = (e) => {
|
|
@@ -33711,11 +34492,11 @@ function ImageUploader({
|
|
|
33711
34492
|
e.stopPropagation();
|
|
33712
34493
|
setDragActive(false);
|
|
33713
34494
|
if (!interactive) return;
|
|
33714
|
-
validateAndEmit(_optionalChain([e, 'access',
|
|
34495
|
+
validateAndEmit(_optionalChain([e, 'access', _712 => _712.dataTransfer, 'access', _713 => _713.files, 'optionalAccess', _714 => _714[0]]));
|
|
33715
34496
|
};
|
|
33716
34497
|
const openDialog = () => {
|
|
33717
34498
|
if (!interactive) return;
|
|
33718
|
-
_optionalChain([inputRef, 'access',
|
|
34499
|
+
_optionalChain([inputRef, 'access', _715 => _715.current, 'optionalAccess', _716 => _716.click, 'call', _717 => _717()]);
|
|
33719
34500
|
};
|
|
33720
34501
|
const handleRootKeyDown = (e) => {
|
|
33721
34502
|
if (hasImage || !interactive) return;
|
|
@@ -33872,7 +34653,7 @@ function CompactAssigneeDropdown({
|
|
|
33872
34653
|
return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
|
|
33873
34654
|
}, [filtered, currentAssignee]);
|
|
33874
34655
|
const handleSelect = (userId) => {
|
|
33875
|
-
const next = _optionalChain([currentAssignee, 'optionalAccess',
|
|
34656
|
+
const next = _optionalChain([currentAssignee, 'optionalAccess', _718 => _718.id]) === userId ? null : userId;
|
|
33876
34657
|
onAssign(next);
|
|
33877
34658
|
setIsOpen(false);
|
|
33878
34659
|
};
|
|
@@ -33937,7 +34718,7 @@ function CompactAssigneeDropdown({
|
|
|
33937
34718
|
}
|
|
33938
34719
|
) }),
|
|
33939
34720
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "max-h-80 overflow-y-auto py-[var(--spacing-system-xs)]", role: "listbox", children: isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "Loading\u2026" }) : orderedOptions.length === 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "px-[var(--spacing-system-sf)] py-[var(--spacing-system-s)] text-h5 text-ods-text-secondary", children: "No users found" }) : orderedOptions.map((opt) => {
|
|
33940
|
-
const isCurrent = _optionalChain([currentAssignee, 'optionalAccess',
|
|
34721
|
+
const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _719 => _719.id]) === opt.value;
|
|
33941
34722
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
33942
34723
|
"button",
|
|
33943
34724
|
{
|
|
@@ -34006,7 +34787,7 @@ function DefaultAssigneeDropdown({
|
|
|
34006
34787
|
Autocomplete,
|
|
34007
34788
|
{
|
|
34008
34789
|
options,
|
|
34009
|
-
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess',
|
|
34790
|
+
value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _720 => _720.id]), () => ( null)),
|
|
34010
34791
|
onChange: (val) => {
|
|
34011
34792
|
onAssign(val);
|
|
34012
34793
|
setIsEditing(false);
|
|
@@ -34372,14 +35153,14 @@ function TicketInfoSection({
|
|
|
34372
35153
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
34373
35154
|
SquareAvatar,
|
|
34374
35155
|
{
|
|
34375
|
-
src: _optionalChain([organization, 'optionalAccess',
|
|
34376
|
-
alt: _optionalChain([organization, 'optionalAccess',
|
|
34377
|
-
fallback: _optionalChain([organization, 'optionalAccess',
|
|
35156
|
+
src: _optionalChain([organization, 'optionalAccess', _721 => _721.imageSrc]),
|
|
35157
|
+
alt: _optionalChain([organization, 'optionalAccess', _722 => _722.name]),
|
|
35158
|
+
fallback: _optionalChain([organization, 'optionalAccess', _723 => _723.name]) || "Org",
|
|
34378
35159
|
size: "md",
|
|
34379
35160
|
className: "shrink-0"
|
|
34380
35161
|
}
|
|
34381
35162
|
),
|
|
34382
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess',
|
|
35163
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _724 => _724.name]) || "Unassigned", label: "Organization" })
|
|
34383
35164
|
] }),
|
|
34384
35165
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
34385
35166
|
AssigneeDropdown,
|
|
@@ -34400,10 +35181,10 @@ function TicketInfoSection({
|
|
|
34400
35181
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
34401
35182
|
InfoCell2,
|
|
34402
35183
|
{
|
|
34403
|
-
value: _optionalChain([device, 'optionalAccess',
|
|
35184
|
+
value: _optionalChain([device, 'optionalAccess', _725 => _725.name]) || "Unassigned",
|
|
34404
35185
|
label: "Device",
|
|
34405
|
-
icon: _optionalChain([device, 'optionalAccess',
|
|
34406
|
-
onClick: _optionalChain([device, 'optionalAccess',
|
|
35186
|
+
icon: _optionalChain([device, 'optionalAccess', _726 => _726.icon]),
|
|
35187
|
+
onClick: _optionalChain([device, 'optionalAccess', _727 => _727.onClick])
|
|
34407
35188
|
}
|
|
34408
35189
|
),
|
|
34409
35190
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
|
|
@@ -34632,7 +35413,7 @@ function TaskTypeIcon({ customItemId, className = "h-5 w-5" }) {
|
|
|
34632
35413
|
|
|
34633
35414
|
// src/components/chat/entity-cards/roadmap-card.tsx
|
|
34634
35415
|
|
|
34635
|
-
function
|
|
35416
|
+
function RoadmapCardSkeleton2({ size = "default" }) {
|
|
34636
35417
|
if (size === "sm") {
|
|
34637
35418
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_SKELETON_OUTER, children: [
|
|
34638
35419
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "block h-12 w-12 aspect-square shrink-0 self-start rounded-md bg-ods-bg border border-ods-border p-1.5" }),
|
|
@@ -34689,7 +35470,7 @@ function RoadmapCard({
|
|
|
34689
35470
|
const compactHref = safeHref(_nullishCoalesce(href, () => ( null)));
|
|
34690
35471
|
const hasVotes = (_nullishCoalesce(item.upvotes, () => ( 0))) > 0 || (_nullishCoalesce(item.downvotes, () => ( 0))) > 0;
|
|
34691
35472
|
const hasFigma = !!item.figmaUrl;
|
|
34692
|
-
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access',
|
|
35473
|
+
const hasScreenshots = (_nullishCoalesce(_optionalChain([item, 'access', _728 => _728.screenshots, 'optionalAccess', _729 => _729.length]), () => ( 0))) > 0;
|
|
34693
35474
|
const typeLabel = getTaskTypeLabel(item.customItemId);
|
|
34694
35475
|
const useTypeIcon = cardType === "internal_task" || !iconSrc && item.customItemId != null;
|
|
34695
35476
|
const body = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -34708,7 +35489,7 @@ function RoadmapCard({
|
|
|
34708
35489
|
unoptimized: true,
|
|
34709
35490
|
className: "h-8 w-8 object-contain"
|
|
34710
35491
|
}
|
|
34711
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
35492
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[10px] font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _730 => _730.title, 'optionalAccess', _731 => _731.substring, 'call', _732 => _732(0, 2)]) || "??" })
|
|
34712
35493
|
}
|
|
34713
35494
|
),
|
|
34714
35495
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -34783,7 +35564,7 @@ function RoadmapCard({
|
|
|
34783
35564
|
unoptimized: true,
|
|
34784
35565
|
className: "object-contain p-1"
|
|
34785
35566
|
}
|
|
34786
|
-
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access',
|
|
35567
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-xs font-medium uppercase text-ods-text-secondary", children: _optionalChain([item, 'access', _733 => _733.title, 'optionalAccess', _734 => _734.substring, 'call', _735 => _735(0, 2)]) || "??" }) }),
|
|
34787
35568
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
34788
35569
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[48px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-h3 text-ods-text-primary tracking-[-0.36px] flex-1 line-clamp-2", children: item.title }) }),
|
|
34789
35570
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[20px] flex items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-h5 text-ods-text-secondary uppercase tracking-[-0.28px] truncate", children: [
|
|
@@ -35290,7 +36071,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
|
35290
36071
|
] }) : null,
|
|
35291
36072
|
item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-[13px] leading-5 text-ods-text-secondary", children: item.preview }) }) : null
|
|
35292
36073
|
] }),
|
|
35293
|
-
_optionalChain([anchorProps, 'optionalAccess',
|
|
36074
|
+
_optionalChain([anchorProps, 'optionalAccess', _736 => _736.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex shrink-0 items-center self-start h-5 text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-3.5 h-3.5" }) }) : null
|
|
35294
36075
|
] });
|
|
35295
36076
|
if (!anchorProps) {
|
|
35296
36077
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
@@ -35360,7 +36141,7 @@ function getDefaultOptions() {
|
|
|
35360
36141
|
// node_modules/date-fns/startOfWeek.mjs
|
|
35361
36142
|
function startOfWeek(date, options) {
|
|
35362
36143
|
const defaultOptions2 = getDefaultOptions();
|
|
35363
|
-
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36144
|
+
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _737 => _737.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _738 => _738.locale, 'optionalAccess', _739 => _739.options, 'optionalAccess', _740 => _740.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _741 => _741.locale, 'optionalAccess', _742 => _742.options, 'optionalAccess', _743 => _743.weekStartsOn]))), () => ( 0));
|
|
35364
36145
|
const _date = toDate(date);
|
|
35365
36146
|
const day = _date.getDay();
|
|
35366
36147
|
const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
|
@@ -35535,7 +36316,7 @@ var formatDistance = (token, count, options) => {
|
|
|
35535
36316
|
} else {
|
|
35536
36317
|
result = tokenValue.other.replace("{{count}}", count.toString());
|
|
35537
36318
|
}
|
|
35538
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
36319
|
+
if (_optionalChain([options, 'optionalAccess', _744 => _744.addSuffix])) {
|
|
35539
36320
|
if (options.comparison && options.comparison > 0) {
|
|
35540
36321
|
return "in " + result;
|
|
35541
36322
|
} else {
|
|
@@ -35602,15 +36383,15 @@ var formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale
|
|
|
35602
36383
|
// node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
|
|
35603
36384
|
function buildLocalizeFn(args) {
|
|
35604
36385
|
return (value, options) => {
|
|
35605
|
-
const context = _optionalChain([options, 'optionalAccess',
|
|
36386
|
+
const context = _optionalChain([options, 'optionalAccess', _745 => _745.context]) ? String(options.context) : "standalone";
|
|
35606
36387
|
let valuesArray;
|
|
35607
36388
|
if (context === "formatting" && args.formattingValues) {
|
|
35608
36389
|
const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
|
|
35609
|
-
const width = _optionalChain([options, 'optionalAccess',
|
|
36390
|
+
const width = _optionalChain([options, 'optionalAccess', _746 => _746.width]) ? String(options.width) : defaultWidth;
|
|
35610
36391
|
valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
|
|
35611
36392
|
} else {
|
|
35612
36393
|
const defaultWidth = args.defaultWidth;
|
|
35613
|
-
const width = _optionalChain([options, 'optionalAccess',
|
|
36394
|
+
const width = _optionalChain([options, 'optionalAccess', _747 => _747.width]) ? String(options.width) : args.defaultWidth;
|
|
35614
36395
|
valuesArray = args.values[width] || args.values[defaultWidth];
|
|
35615
36396
|
}
|
|
35616
36397
|
const index = args.argumentCallback ? args.argumentCallback(value) : value;
|
|
@@ -35990,7 +36771,7 @@ function getWeekYear(date, options) {
|
|
|
35990
36771
|
const _date = toDate(date);
|
|
35991
36772
|
const year = _date.getFullYear();
|
|
35992
36773
|
const defaultOptions2 = getDefaultOptions();
|
|
35993
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36774
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _748 => _748.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _749 => _749.locale, 'optionalAccess', _750 => _750.options, 'optionalAccess', _751 => _751.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _752 => _752.locale, 'optionalAccess', _753 => _753.options, 'optionalAccess', _754 => _754.firstWeekContainsDate]))), () => ( 1));
|
|
35994
36775
|
const firstWeekOfNextYear = constructFrom(date, 0);
|
|
35995
36776
|
firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
|
|
35996
36777
|
firstWeekOfNextYear.setHours(0, 0, 0, 0);
|
|
@@ -36011,7 +36792,7 @@ function getWeekYear(date, options) {
|
|
|
36011
36792
|
// node_modules/date-fns/startOfWeekYear.mjs
|
|
36012
36793
|
function startOfWeekYear(date, options) {
|
|
36013
36794
|
const defaultOptions2 = getDefaultOptions();
|
|
36014
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36795
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _755 => _755.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _756 => _756.locale, 'optionalAccess', _757 => _757.options, 'optionalAccess', _758 => _758.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _759 => _759.locale, 'optionalAccess', _760 => _760.options, 'optionalAccess', _761 => _761.firstWeekContainsDate]))), () => ( 1));
|
|
36015
36796
|
const year = getWeekYear(date, options);
|
|
36016
36797
|
const firstWeek = constructFrom(date, 0);
|
|
36017
36798
|
firstWeek.setFullYear(year, 0, firstWeekContainsDate);
|
|
@@ -36826,9 +37607,9 @@ var doubleQuoteRegExp = /''/g;
|
|
|
36826
37607
|
var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
|
|
36827
37608
|
function format(date, formatStr, options) {
|
|
36828
37609
|
const defaultOptions2 = getDefaultOptions();
|
|
36829
|
-
const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36830
|
-
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
36831
|
-
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
37610
|
+
const locale = _nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _762 => _762.locale]), () => ( defaultOptions2.locale)), () => ( enUS));
|
|
37611
|
+
const firstWeekContainsDate = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _763 => _763.firstWeekContainsDate]), () => ( _optionalChain([options, 'optionalAccess', _764 => _764.locale, 'optionalAccess', _765 => _765.options, 'optionalAccess', _766 => _766.firstWeekContainsDate]))), () => ( defaultOptions2.firstWeekContainsDate)), () => ( _optionalChain([defaultOptions2, 'access', _767 => _767.locale, 'optionalAccess', _768 => _768.options, 'optionalAccess', _769 => _769.firstWeekContainsDate]))), () => ( 1));
|
|
37612
|
+
const weekStartsOn = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'optionalAccess', _770 => _770.weekStartsOn]), () => ( _optionalChain([options, 'optionalAccess', _771 => _771.locale, 'optionalAccess', _772 => _772.options, 'optionalAccess', _773 => _773.weekStartsOn]))), () => ( defaultOptions2.weekStartsOn)), () => ( _optionalChain([defaultOptions2, 'access', _774 => _774.locale, 'optionalAccess', _775 => _775.options, 'optionalAccess', _776 => _776.weekStartsOn]))), () => ( 0));
|
|
36832
37613
|
const originalDate = toDate(date);
|
|
36833
37614
|
if (!isValid(originalDate)) {
|
|
36834
37615
|
throw new RangeError("Invalid time value");
|
|
@@ -36869,7 +37650,7 @@ function format(date, formatStr, options) {
|
|
|
36869
37650
|
return parts.map((part) => {
|
|
36870
37651
|
if (!part.isToken) return part.value;
|
|
36871
37652
|
const token = part.value;
|
|
36872
|
-
if (!_optionalChain([options, 'optionalAccess',
|
|
37653
|
+
if (!_optionalChain([options, 'optionalAccess', _777 => _777.useAdditionalWeekYearTokens]) && isProtectedWeekYearToken(token) || !_optionalChain([options, 'optionalAccess', _778 => _778.useAdditionalDayOfYearTokens]) && isProtectedDayOfYearToken(token)) {
|
|
36873
37654
|
warnOrThrowProtectedError(token, formatStr, String(date));
|
|
36874
37655
|
}
|
|
36875
37656
|
const formatter = formatters[token[0]];
|
|
@@ -37035,7 +37816,7 @@ function ProgramCard({
|
|
|
37035
37816
|
const dur = formatDurationFromRange(w.start_at, w.end_at);
|
|
37036
37817
|
typeMeta = dur ? `${time} \xB7 ${dur}` : time;
|
|
37037
37818
|
}
|
|
37038
|
-
const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access',
|
|
37819
|
+
const subtitleParts = [itemDate2, typeMeta, _optionalChain([config, 'access', _779 => _779.labels, 'optionalAccess', _780 => _780.singular])].filter(
|
|
37039
37820
|
(s) => typeof s === "string" && s.length > 0
|
|
37040
37821
|
);
|
|
37041
37822
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "a", { href, target, rel, className: _chunk664KA5FIcjs.cn.call(void 0, COMPACT_CARD_OUTER, className), children: [
|
|
@@ -37192,7 +37973,7 @@ function ProgramCard({
|
|
|
37192
37973
|
|
|
37193
37974
|
|
|
37194
37975
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
37195
|
-
const goalsCount = _optionalChain([campaign, 'access',
|
|
37976
|
+
const goalsCount = _optionalChain([campaign, 'access', _781 => _781.goals, 'optionalAccess', _782 => _782.length]) || 0;
|
|
37196
37977
|
const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
37197
37978
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
|
|
37198
37979
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -37487,11 +38268,11 @@ function HubspotTicketChatCard({
|
|
|
37487
38268
|
chatRef,
|
|
37488
38269
|
isNewTab
|
|
37489
38270
|
}) {
|
|
37490
|
-
const status = typeof _optionalChain([chatRef, 'access',
|
|
37491
|
-
const statusLabel = typeof _optionalChain([chatRef, 'access',
|
|
37492
|
-
const priority = typeof _optionalChain([chatRef, 'access',
|
|
37493
|
-
const customerCompany = typeof _optionalChain([chatRef, 'access',
|
|
37494
|
-
const customerEmail = typeof _optionalChain([chatRef, 'access',
|
|
38271
|
+
const status = typeof _optionalChain([chatRef, 'access', _783 => _783.metadata, 'optionalAccess', _784 => _784.status]) === "string" ? chatRef.metadata.status : void 0;
|
|
38272
|
+
const statusLabel = typeof _optionalChain([chatRef, 'access', _785 => _785.metadata, 'optionalAccess', _786 => _786.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
|
|
38273
|
+
const priority = typeof _optionalChain([chatRef, 'access', _787 => _787.metadata, 'optionalAccess', _788 => _788.priority]) === "string" ? chatRef.metadata.priority : void 0;
|
|
38274
|
+
const customerCompany = typeof _optionalChain([chatRef, 'access', _789 => _789.metadata, 'optionalAccess', _790 => _790.customerCompany]) === "string" ? chatRef.metadata.customerCompany : void 0;
|
|
38275
|
+
const customerEmail = typeof _optionalChain([chatRef, 'access', _791 => _791.metadata, 'optionalAccess', _792 => _792.customerEmail]) === "string" ? chatRef.metadata.customerEmail : void 0;
|
|
37495
38276
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37496
38277
|
HubspotTicketCard,
|
|
37497
38278
|
{
|
|
@@ -37513,7 +38294,7 @@ function HubspotTicketChatCard({
|
|
|
37513
38294
|
);
|
|
37514
38295
|
}
|
|
37515
38296
|
function SlackChatCard({ chatRef, isNewTab }) {
|
|
37516
|
-
const channelName = typeof _optionalChain([chatRef, 'access',
|
|
38297
|
+
const channelName = typeof _optionalChain([chatRef, 'access', _793 => _793.metadata, 'optionalAccess', _794 => _794.channelName]) === "string" ? chatRef.metadata.channelName : void 0;
|
|
37517
38298
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37518
38299
|
SlackMessageCard,
|
|
37519
38300
|
{
|
|
@@ -37536,7 +38317,7 @@ function DataRoomDocChatCard({
|
|
|
37536
38317
|
chipBasePlatform,
|
|
37537
38318
|
isNewTab
|
|
37538
38319
|
}) {
|
|
37539
|
-
const path = typeof _optionalChain([chatRef, 'access',
|
|
38320
|
+
const path = typeof _optionalChain([chatRef, 'access', _795 => _795.metadata, 'optionalAccess', _796 => _796.path]) === "string" ? chatRef.metadata.path : void 0;
|
|
37540
38321
|
const badgeText = chatRef.sourceRepo ? getSourceLabel(chatRef.sourceRepo) : "Document";
|
|
37541
38322
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37542
38323
|
DataRoomDocCard,
|
|
@@ -37562,8 +38343,8 @@ function GenericFinancialChatCard({
|
|
|
37562
38343
|
scheme,
|
|
37563
38344
|
isNewTab
|
|
37564
38345
|
}) {
|
|
37565
|
-
const facts = Array.isArray(_optionalChain([chatRef, 'access',
|
|
37566
|
-
const subtitle = typeof _optionalChain([chatRef, 'access',
|
|
38346
|
+
const facts = Array.isArray(_optionalChain([chatRef, 'access', _797 => _797.metadata, 'optionalAccess', _798 => _798.facts])) ? chatRef.metadata.facts : null;
|
|
38347
|
+
const subtitle = typeof _optionalChain([chatRef, 'access', _799 => _799.metadata, 'optionalAccess', _800 => _800.subtitle]) === "string" ? chatRef.metadata.subtitle : null;
|
|
37567
38348
|
const anchorProps = buildAnchorProps(
|
|
37568
38349
|
chatRef.url,
|
|
37569
38350
|
isNewTab
|
|
@@ -37725,7 +38506,7 @@ function programRegistryEntries() {
|
|
|
37725
38506
|
contentRefType: cfg.contentRefType,
|
|
37726
38507
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProgramCardSkeleton, { size: "sm" }),
|
|
37727
38508
|
render: (item, chatRef, opts) => {
|
|
37728
|
-
const config = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
38509
|
+
const config = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _801 => _801.extras, 'optionalAccess', _802 => _802.programConfigs, 'optionalAccess', _803 => _803[cfg.configKey]]), () => ( DEFAULT_PROGRAM_CONFIGS[cfg.configKey]));
|
|
37729
38510
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37730
38511
|
ProgramCard,
|
|
37731
38512
|
{
|
|
@@ -37762,7 +38543,7 @@ function roadmapRegistryEntries() {
|
|
|
37762
38543
|
mode: "fetch",
|
|
37763
38544
|
label: cfg.label,
|
|
37764
38545
|
contentRefType: cfg.contentRefType,
|
|
37765
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
38546
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapCardSkeleton2, { size: "sm" }),
|
|
37766
38547
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37767
38548
|
RoadmapCard,
|
|
37768
38549
|
{
|
|
@@ -37811,8 +38592,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37811
38592
|
DataRoomDocChatCard,
|
|
37812
38593
|
{
|
|
37813
38594
|
chatRef,
|
|
37814
|
-
baseRoute: _optionalChain([opts, 'optionalAccess',
|
|
37815
|
-
chipBasePlatform: _optionalChain([opts, 'optionalAccess',
|
|
38595
|
+
baseRoute: _optionalChain([opts, 'optionalAccess', _804 => _804.baseRoute]),
|
|
38596
|
+
chipBasePlatform: _optionalChain([opts, 'optionalAccess', _805 => _805.chipBasePlatform]),
|
|
37816
38597
|
isNewTab: opts.isNewTab
|
|
37817
38598
|
}
|
|
37818
38599
|
)
|
|
@@ -37824,8 +38605,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37824
38605
|
DataRoomDocChatCard,
|
|
37825
38606
|
{
|
|
37826
38607
|
chatRef,
|
|
37827
|
-
baseRoute: _optionalChain([opts, 'optionalAccess',
|
|
37828
|
-
chipBasePlatform: _optionalChain([opts, 'optionalAccess',
|
|
38608
|
+
baseRoute: _optionalChain([opts, 'optionalAccess', _806 => _806.baseRoute]),
|
|
38609
|
+
chipBasePlatform: _optionalChain([opts, 'optionalAccess', _807 => _807.chipBasePlatform]),
|
|
37829
38610
|
isNewTab: opts.isNewTab
|
|
37830
38611
|
}
|
|
37831
38612
|
)
|
|
@@ -37851,7 +38632,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37851
38632
|
href: _nullishCoalesce(chatRef.url, () => ( "")),
|
|
37852
38633
|
targetPlatform: _nullishCoalesce(chatRef.targetPlatform, () => ( null)),
|
|
37853
38634
|
...newTabAnchorAttrs(opts.isNewTab),
|
|
37854
|
-
hasEmbeddedVideo: _optionalChain([chatRef, 'access',
|
|
38635
|
+
hasEmbeddedVideo: _optionalChain([chatRef, 'access', _808 => _808.metadata, 'optionalAccess', _809 => _809.hasEmbeddedVideo]) === true
|
|
37855
38636
|
}
|
|
37856
38637
|
)
|
|
37857
38638
|
},
|
|
@@ -37893,7 +38674,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37893
38674
|
contentRefType: "product_release",
|
|
37894
38675
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
|
|
37895
38676
|
render: (item, chatRef, opts) => {
|
|
37896
|
-
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
38677
|
+
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _810 => _810.extras, 'optionalAccess', _811 => _811.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
|
|
37897
38678
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37898
38679
|
ProductReleaseChatCard,
|
|
37899
38680
|
{
|
|
@@ -37946,7 +38727,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
37946
38727
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
|
|
37947
38728
|
// No public viewer — synthesize the hub-internal admin URL post-fetch
|
|
37948
38729
|
// so the wrapper + isNewTab computation see the actual destination.
|
|
37949
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
38730
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _812 => _812.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
|
|
37950
38731
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37951
38732
|
CampaignChatCard,
|
|
37952
38733
|
{
|
|
@@ -37970,12 +38751,12 @@ function ChatCardNavWrap({
|
|
|
37970
38751
|
const onClickCapture = (e) => {
|
|
37971
38752
|
if (!href) return;
|
|
37972
38753
|
const targetEl = e.target;
|
|
37973
|
-
if (_optionalChain([targetEl, 'optionalAccess',
|
|
37974
|
-
if (!_optionalChain([targetEl, 'optionalAccess',
|
|
38754
|
+
if (_optionalChain([targetEl, 'optionalAccess', _813 => _813.closest, 'optionalCall', _814 => _814("button")])) return;
|
|
38755
|
+
if (!_optionalChain([targetEl, 'optionalAccess', _815 => _815.closest, 'optionalCall', _816 => _816("a")])) return;
|
|
37975
38756
|
const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform });
|
|
37976
38757
|
if (!handled) return;
|
|
37977
38758
|
e.stopPropagation();
|
|
37978
|
-
if (!isNewTab && _optionalChain([panel, 'optionalAccess',
|
|
38759
|
+
if (!isNewTab && _optionalChain([panel, 'optionalAccess', _817 => _817.closeChat])) panel.closeChat();
|
|
37979
38760
|
};
|
|
37980
38761
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
|
|
37981
38762
|
}
|
|
@@ -37997,7 +38778,7 @@ function ChatCardLoader({
|
|
|
37997
38778
|
title: chatRef.title,
|
|
37998
38779
|
externalUrl: chatRef.url,
|
|
37999
38780
|
targetPlatform: chatRef.targetPlatform,
|
|
38000
|
-
path: typeof _optionalChain([chatRef, 'access',
|
|
38781
|
+
path: typeof _optionalChain([chatRef, 'access', _818 => _818.metadata, 'optionalAccess', _819 => _819.path]) === "string" ? chatRef.metadata.path : null
|
|
38001
38782
|
},
|
|
38002
38783
|
{
|
|
38003
38784
|
baseRoute,
|
|
@@ -38015,7 +38796,7 @@ function ChatCardLoader({
|
|
|
38015
38796
|
const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
|
|
38016
38797
|
const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
|
|
38017
38798
|
const { item, isLoading } = useChatCardItem(
|
|
38018
|
-
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess',
|
|
38799
|
+
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _820 => _820.contentRefType]), () => ( "")),
|
|
38019
38800
|
fetchEntry ? resolvedChatRef.id : ""
|
|
38020
38801
|
);
|
|
38021
38802
|
if (!entry) return null;
|
|
@@ -38025,7 +38806,7 @@ function ChatCardLoader({
|
|
|
38025
38806
|
} : resolvedChatRef;
|
|
38026
38807
|
const isNewTab = computeIsNewTab(runtime, finalChatRef.url, _nullishCoalesce(finalChatRef.targetPlatform, () => ( null)));
|
|
38027
38808
|
const renderOpts = { baseRoute, chipBasePlatform, extras, isNewTab };
|
|
38028
|
-
const path = typeof _optionalChain([finalChatRef, 'access',
|
|
38809
|
+
const path = typeof _optionalChain([finalChatRef, 'access', _821 => _821.metadata, 'optionalAccess', _822 => _822.path]) === "string" ? finalChatRef.metadata.path : null;
|
|
38029
38810
|
const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
38030
38811
|
ChatCardNavWrap,
|
|
38031
38812
|
{
|
|
@@ -38507,7 +39288,7 @@ function useJetStreamDialogSubscription({
|
|
|
38507
39288
|
const hadConnectionBeforeRef = _react.useRef.call(void 0, false);
|
|
38508
39289
|
const acquireClient = _react.useCallback.call(void 0,
|
|
38509
39290
|
(url) => {
|
|
38510
|
-
if (_optionalChain([shared, 'optionalAccess',
|
|
39291
|
+
if (_optionalChain([shared, 'optionalAccess', _823 => _823.wsUrl]) !== url) {
|
|
38511
39292
|
if (shared) {
|
|
38512
39293
|
if (shared.closeTimer) clearTimeout(shared.closeTimer);
|
|
38513
39294
|
const old = shared;
|
|
@@ -38609,7 +39390,7 @@ function useJetStreamDialogSubscription({
|
|
|
38609
39390
|
if (closed) return;
|
|
38610
39391
|
if (shared !== sharedConn) return;
|
|
38611
39392
|
try {
|
|
38612
|
-
await _optionalChain([onBeforeReconnectRef, 'access',
|
|
39393
|
+
await _optionalChain([onBeforeReconnectRef, 'access', _824 => _824.current, 'optionalCall', _825 => _825()]);
|
|
38613
39394
|
} catch (e21) {
|
|
38614
39395
|
}
|
|
38615
39396
|
if (closed) return;
|
|
@@ -38642,7 +39423,7 @@ function useJetStreamDialogSubscription({
|
|
|
38642
39423
|
}
|
|
38643
39424
|
hadConnectionBeforeRef.current = true;
|
|
38644
39425
|
retryAttempt = 0;
|
|
38645
|
-
_optionalChain([onConnectRef, 'access',
|
|
39426
|
+
_optionalChain([onConnectRef, 'access', _826 => _826.current, 'optionalCall', _827 => _827()]);
|
|
38646
39427
|
}
|
|
38647
39428
|
if (event.status === "error") {
|
|
38648
39429
|
console.warn("[JetStream] NATS protocol error:", event.data);
|
|
@@ -38658,7 +39439,7 @@ function useJetStreamDialogSubscription({
|
|
|
38658
39439
|
}
|
|
38659
39440
|
subscriptionRef.current = null;
|
|
38660
39441
|
}
|
|
38661
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
39442
|
+
_optionalChain([onDisconnectRef, 'access', _828 => _828.current, 'optionalCall', _829 => _829()]);
|
|
38662
39443
|
scheduleRetry();
|
|
38663
39444
|
}
|
|
38664
39445
|
});
|
|
@@ -38674,7 +39455,7 @@ function useJetStreamDialogSubscription({
|
|
|
38674
39455
|
sharedConn.connectPromise = null;
|
|
38675
39456
|
if (!closed) {
|
|
38676
39457
|
setIsConnected(false);
|
|
38677
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
39458
|
+
_optionalChain([onDisconnectRef, 'access', _830 => _830.current, 'optionalCall', _831 => _831()]);
|
|
38678
39459
|
scheduleRetry();
|
|
38679
39460
|
}
|
|
38680
39461
|
}
|
|
@@ -38765,7 +39546,7 @@ function useJetStreamDialogSubscription({
|
|
|
38765
39546
|
}
|
|
38766
39547
|
subscriptionRef.current = handle;
|
|
38767
39548
|
setIsSubscribed(true);
|
|
38768
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
39549
|
+
_optionalChain([onSubscribedRef, 'access', _832 => _832.current, 'optionalCall', _833 => _833()]);
|
|
38769
39550
|
} catch (e29) {
|
|
38770
39551
|
if (!cancelled) {
|
|
38771
39552
|
setIsSubscribed(false);
|
|
@@ -38843,7 +39624,7 @@ function useNatsDialogSubscription({
|
|
|
38843
39624
|
reconnectionBackoffRef.current = reconnectionBackoff;
|
|
38844
39625
|
}, [reconnectionBackoff]);
|
|
38845
39626
|
const acquireClient = _react.useCallback.call(void 0, (url) => {
|
|
38846
|
-
if (_optionalChain([shared2, 'optionalAccess',
|
|
39627
|
+
if (_optionalChain([shared2, 'optionalAccess', _834 => _834.wsUrl]) !== url) {
|
|
38847
39628
|
if (shared2) {
|
|
38848
39629
|
shared2.closeTimer && clearTimeout(shared2.closeTimer);
|
|
38849
39630
|
const old = shared2;
|
|
@@ -38934,7 +39715,7 @@ function useNatsDialogSubscription({
|
|
|
38934
39715
|
if (closed) return;
|
|
38935
39716
|
if (shared2 !== sharedConn) return;
|
|
38936
39717
|
try {
|
|
38937
|
-
await _optionalChain([onBeforeReconnectRef, 'access',
|
|
39718
|
+
await _optionalChain([onBeforeReconnectRef, 'access', _835 => _835.current, 'optionalCall', _836 => _836()]);
|
|
38938
39719
|
} catch (e31) {
|
|
38939
39720
|
}
|
|
38940
39721
|
if (closed) return;
|
|
@@ -38967,22 +39748,22 @@ function useNatsDialogSubscription({
|
|
|
38967
39748
|
}
|
|
38968
39749
|
hadConnectionBeforeRef.current = true;
|
|
38969
39750
|
retryAttempt = 0;
|
|
38970
|
-
_optionalChain([onConnectRef, 'access',
|
|
39751
|
+
_optionalChain([onConnectRef, 'access', _837 => _837.current, 'optionalCall', _838 => _838()]);
|
|
38971
39752
|
}
|
|
38972
39753
|
if (disconnected) {
|
|
38973
39754
|
setIsConnected(false);
|
|
38974
39755
|
setIsSubscribed(false);
|
|
38975
39756
|
subscriptionRefs.current.forEach((sub) => {
|
|
38976
39757
|
try {
|
|
38977
|
-
_optionalChain([sub, 'optionalAccess',
|
|
39758
|
+
_optionalChain([sub, 'optionalAccess', _839 => _839.unsubscribe, 'call', _840 => _840()]);
|
|
38978
39759
|
} catch (e33) {
|
|
38979
39760
|
}
|
|
38980
39761
|
});
|
|
38981
39762
|
subscriptionRefs.current.clear();
|
|
38982
39763
|
lastSubscribedDialogIdRef.current = null;
|
|
38983
|
-
_optionalChain([abortControllerRef, 'access',
|
|
39764
|
+
_optionalChain([abortControllerRef, 'access', _841 => _841.current, 'optionalAccess', _842 => _842.abort, 'call', _843 => _843()]);
|
|
38984
39765
|
abortControllerRef.current = null;
|
|
38985
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
39766
|
+
_optionalChain([onDisconnectRef, 'access', _844 => _844.current, 'optionalCall', _845 => _845()]);
|
|
38986
39767
|
scheduleRetry();
|
|
38987
39768
|
}
|
|
38988
39769
|
});
|
|
@@ -38998,7 +39779,7 @@ function useNatsDialogSubscription({
|
|
|
38998
39779
|
sharedConn.connectPromise = null;
|
|
38999
39780
|
if (!closed) {
|
|
39000
39781
|
setIsConnected(false);
|
|
39001
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
39782
|
+
_optionalChain([onDisconnectRef, 'access', _846 => _846.current, 'optionalCall', _847 => _847()]);
|
|
39002
39783
|
scheduleRetry();
|
|
39003
39784
|
}
|
|
39004
39785
|
}
|
|
@@ -39014,7 +39795,7 @@ function useNatsDialogSubscription({
|
|
|
39014
39795
|
}
|
|
39015
39796
|
subscriptionRefs.current.forEach((sub) => {
|
|
39016
39797
|
try {
|
|
39017
|
-
_optionalChain([sub, 'optionalAccess',
|
|
39798
|
+
_optionalChain([sub, 'optionalAccess', _848 => _848.unsubscribe, 'call', _849 => _849()]);
|
|
39018
39799
|
} catch (e35) {
|
|
39019
39800
|
}
|
|
39020
39801
|
});
|
|
@@ -39042,13 +39823,13 @@ function useNatsDialogSubscription({
|
|
|
39042
39823
|
setIsSubscribed(false);
|
|
39043
39824
|
subscriptionRefs.current.forEach((sub) => {
|
|
39044
39825
|
try {
|
|
39045
|
-
_optionalChain([sub, 'optionalAccess',
|
|
39826
|
+
_optionalChain([sub, 'optionalAccess', _850 => _850.unsubscribe, 'call', _851 => _851()]);
|
|
39046
39827
|
} catch (e36) {
|
|
39047
39828
|
}
|
|
39048
39829
|
});
|
|
39049
39830
|
subscriptionRefs.current.clear();
|
|
39050
39831
|
lastSubscribedDialogIdRef.current = null;
|
|
39051
|
-
_optionalChain([abortControllerRef, 'access',
|
|
39832
|
+
_optionalChain([abortControllerRef, 'access', _852 => _852.current, 'optionalAccess', _853 => _853.abort, 'call', _854 => _854()]);
|
|
39052
39833
|
abortControllerRef.current = null;
|
|
39053
39834
|
}
|
|
39054
39835
|
return;
|
|
@@ -39060,12 +39841,12 @@ function useNatsDialogSubscription({
|
|
|
39060
39841
|
if (subscriptionRefs.current.size > 0) {
|
|
39061
39842
|
subscriptionRefs.current.forEach((sub) => {
|
|
39062
39843
|
try {
|
|
39063
|
-
_optionalChain([sub, 'optionalAccess',
|
|
39844
|
+
_optionalChain([sub, 'optionalAccess', _855 => _855.unsubscribe, 'call', _856 => _856()]);
|
|
39064
39845
|
} catch (e37) {
|
|
39065
39846
|
}
|
|
39066
39847
|
});
|
|
39067
39848
|
subscriptionRefs.current.clear();
|
|
39068
|
-
_optionalChain([abortControllerRef, 'access',
|
|
39849
|
+
_optionalChain([abortControllerRef, 'access', _857 => _857.current, 'optionalAccess', _858 => _858.abort, 'call', _859 => _859()]);
|
|
39069
39850
|
}
|
|
39070
39851
|
abortControllerRef.current = new AbortController();
|
|
39071
39852
|
const abort = abortControllerRef.current;
|
|
@@ -39097,7 +39878,7 @@ function useNatsDialogSubscription({
|
|
|
39097
39878
|
});
|
|
39098
39879
|
lastSubscribedDialogIdRef.current = dialogId;
|
|
39099
39880
|
setIsSubscribed(true);
|
|
39100
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
39881
|
+
_optionalChain([onSubscribedRef, 'access', _860 => _860.current, 'optionalCall', _861 => _861()]);
|
|
39101
39882
|
};
|
|
39102
39883
|
if (isConnectedRef.current) {
|
|
39103
39884
|
createSubscriptions();
|
|
@@ -39107,7 +39888,7 @@ function useNatsDialogSubscription({
|
|
|
39107
39888
|
abort.abort();
|
|
39108
39889
|
subscriptionRefs.current.forEach((sub) => {
|
|
39109
39890
|
try {
|
|
39110
|
-
_optionalChain([sub, 'optionalAccess',
|
|
39891
|
+
_optionalChain([sub, 'optionalAccess', _862 => _862.unsubscribe, 'call', _863 => _863()]);
|
|
39111
39892
|
} catch (e39) {
|
|
39112
39893
|
}
|
|
39113
39894
|
});
|
|
@@ -39148,7 +39929,7 @@ function useNatsDialogSubscription({
|
|
|
39148
39929
|
});
|
|
39149
39930
|
lastSubscribedDialogIdRef.current = dialogId2;
|
|
39150
39931
|
setIsSubscribed(true);
|
|
39151
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
39932
|
+
_optionalChain([onSubscribedRef, 'access', _864 => _864.current, 'optionalCall', _865 => _865()]);
|
|
39152
39933
|
} else if (subscriptionRefs.current.size > 0) {
|
|
39153
39934
|
setIsSubscribed(true);
|
|
39154
39935
|
}
|
|
@@ -39156,10 +39937,10 @@ function useNatsDialogSubscription({
|
|
|
39156
39937
|
return { isConnected, isSubscribed, reconnectionCount };
|
|
39157
39938
|
}
|
|
39158
39939
|
function buildNatsWsUrl(apiBaseUrl, options) {
|
|
39159
|
-
const path = _optionalChain([options, 'optionalAccess',
|
|
39940
|
+
const path = _optionalChain([options, 'optionalAccess', _866 => _866.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
|
|
39160
39941
|
const u = new URL(path, apiBaseUrl);
|
|
39161
39942
|
u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
|
|
39162
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
39943
|
+
if (_optionalChain([options, 'optionalAccess', _867 => _867.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _868 => _868.token])) {
|
|
39163
39944
|
u.searchParams.set("authorization", options.token);
|
|
39164
39945
|
}
|
|
39165
39946
|
return u.toString();
|
|
@@ -39475,8 +40256,8 @@ var MessageSegmentAccumulator = class {
|
|
|
39475
40256
|
type: "tool_execution",
|
|
39476
40257
|
data: {
|
|
39477
40258
|
...toolData,
|
|
39478
|
-
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
39479
|
-
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess',
|
|
40259
|
+
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _869 => _869.data, 'access', _870 => _870.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _871 => _871.toolTitle]))),
|
|
40260
|
+
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _872 => _872.parameters])
|
|
39480
40261
|
}
|
|
39481
40262
|
};
|
|
39482
40263
|
if (existingIndex !== -1) {
|
|
@@ -39500,8 +40281,8 @@ var MessageSegmentAccumulator = class {
|
|
|
39500
40281
|
if (seg.type !== "approval_batch") return seg;
|
|
39501
40282
|
const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
|
|
39502
40283
|
if (!hasCall) return seg;
|
|
39503
|
-
const prev = _optionalChain([seg, 'access',
|
|
39504
|
-
const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess',
|
|
40284
|
+
const prev = _optionalChain([seg, 'access', _873 => _873.data, 'access', _874 => _874.executions, 'optionalAccess', _875 => _875[execId]]);
|
|
40285
|
+
const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _876 => _876.result]), success: _optionalChain([prev, 'optionalAccess', _877 => _877.success]) };
|
|
39505
40286
|
matched = true;
|
|
39506
40287
|
return {
|
|
39507
40288
|
...seg,
|
|
@@ -39621,10 +40402,10 @@ var MessageSegmentAccumulator = class {
|
|
|
39621
40402
|
const segment = {
|
|
39622
40403
|
type: "approval_request",
|
|
39623
40404
|
data: {
|
|
39624
|
-
command: _optionalChain([pendingApproval, 'optionalAccess',
|
|
39625
|
-
explanation: _optionalChain([pendingApproval, 'optionalAccess',
|
|
40405
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _878 => _878.command]) || "",
|
|
40406
|
+
explanation: _optionalChain([pendingApproval, 'optionalAccess', _879 => _879.explanation]),
|
|
39626
40407
|
requestId,
|
|
39627
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
40408
|
+
approvalType: _optionalChain([pendingApproval, 'optionalAccess', _880 => _880.approvalType]) || approvalType
|
|
39628
40409
|
},
|
|
39629
40410
|
status,
|
|
39630
40411
|
onApprove: this.callbacks.onApprove,
|
|
@@ -39812,13 +40593,15 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39812
40593
|
if (initialState.escalatedApprovals) {
|
|
39813
40594
|
pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
|
|
39814
40595
|
initialState.escalatedApprovals.forEach((data, requestId) => {
|
|
39815
|
-
_optionalChain([callbacks, 'access',
|
|
40596
|
+
_optionalChain([callbacks, 'access', _881 => _881.onEscalatedApproval, 'optionalCall', _882 => _882(requestId, data)]);
|
|
39816
40597
|
});
|
|
39817
40598
|
}
|
|
40599
|
+
hasEverStreamedRef.current = true;
|
|
39818
40600
|
hasInitializedWithData.current = true;
|
|
39819
40601
|
}
|
|
39820
40602
|
}, [initialState, callbacks]);
|
|
39821
40603
|
const isInStreamRef = _react.useRef.call(void 0, false);
|
|
40604
|
+
const hasEverStreamedRef = _react.useRef.call(void 0, false);
|
|
39822
40605
|
const pendingEscalatedRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
|
|
39823
40606
|
const processChunk = _react.useCallback.call(void 0,
|
|
39824
40607
|
(chunk) => {
|
|
@@ -39831,30 +40614,43 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39831
40614
|
switch (action.action) {
|
|
39832
40615
|
case "message_start":
|
|
39833
40616
|
isInStreamRef.current = true;
|
|
39834
|
-
|
|
40617
|
+
hasEverStreamedRef.current = true;
|
|
40618
|
+
_optionalChain([callbacks, 'access', _883 => _883.onStreamStart, 'optionalCall', _884 => _884()]);
|
|
39835
40619
|
accumulator.resetSegments();
|
|
39836
40620
|
break;
|
|
39837
40621
|
case "message_end":
|
|
39838
40622
|
isInStreamRef.current = false;
|
|
39839
|
-
_optionalChain([callbacks, 'access',
|
|
40623
|
+
_optionalChain([callbacks, 'access', _885 => _885.onStreamEnd, 'optionalCall', _886 => _886()]);
|
|
39840
40624
|
accumulator.resetSegments();
|
|
39841
40625
|
break;
|
|
39842
40626
|
case "metadata":
|
|
39843
|
-
_optionalChain([callbacks, 'access',
|
|
40627
|
+
_optionalChain([callbacks, 'access', _887 => _887.onMetadata, 'optionalCall', _888 => _888(action)]);
|
|
39844
40628
|
break;
|
|
39845
40629
|
case "text": {
|
|
39846
40630
|
const segments = accumulator.appendText(action.text);
|
|
39847
|
-
|
|
40631
|
+
if (isInStreamRef.current || !hasEverStreamedRef.current) {
|
|
40632
|
+
_optionalChain([callbacks, 'access', _889 => _889.onSegmentsUpdate, 'optionalCall', _890 => _890(segments)]);
|
|
40633
|
+
} else {
|
|
40634
|
+
_optionalChain([callbacks, 'access', _891 => _891.onSegmentsUpdate, 'optionalCall', _892 => _892([{ type: "text", text: action.text }], { append: true })]);
|
|
40635
|
+
}
|
|
39848
40636
|
break;
|
|
39849
40637
|
}
|
|
39850
40638
|
case "thinking": {
|
|
39851
40639
|
const segments = accumulator.appendThinking(action.text);
|
|
39852
|
-
|
|
40640
|
+
if (isInStreamRef.current || !hasEverStreamedRef.current) {
|
|
40641
|
+
_optionalChain([callbacks, 'access', _893 => _893.onSegmentsUpdate, 'optionalCall', _894 => _894(segments)]);
|
|
40642
|
+
} else {
|
|
40643
|
+
_optionalChain([callbacks, 'access', _895 => _895.onSegmentsUpdate, 'optionalCall', _896 => _896([{ type: "thinking", text: action.text }], { append: true })]);
|
|
40644
|
+
}
|
|
39853
40645
|
break;
|
|
39854
40646
|
}
|
|
39855
40647
|
case "tool_execution": {
|
|
40648
|
+
if (!isInStreamRef.current && callbacks.onToolExecuted) {
|
|
40649
|
+
callbacks.onToolExecuted(action.segment);
|
|
40650
|
+
break;
|
|
40651
|
+
}
|
|
39856
40652
|
const segments = accumulator.addToolExecution(action.segment);
|
|
39857
|
-
_optionalChain([callbacks, 'access',
|
|
40653
|
+
_optionalChain([callbacks, 'access', _897 => _897.onSegmentsUpdate, 'optionalCall', _898 => _898(segments)]);
|
|
39858
40654
|
break;
|
|
39859
40655
|
}
|
|
39860
40656
|
case "approval_request": {
|
|
@@ -39868,10 +40664,10 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39868
40664
|
approvalType,
|
|
39869
40665
|
status
|
|
39870
40666
|
);
|
|
39871
|
-
_optionalChain([callbacks, 'access',
|
|
40667
|
+
_optionalChain([callbacks, 'access', _899 => _899.onSegmentsUpdate, 'optionalCall', _900 => _900(segments)]);
|
|
39872
40668
|
} else {
|
|
39873
40669
|
pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
|
|
39874
|
-
_optionalChain([callbacks, 'access',
|
|
40670
|
+
_optionalChain([callbacks, 'access', _901 => _901.onEscalatedApproval, 'optionalCall', _902 => _902(requestId, { command, explanation, approvalType })]);
|
|
39875
40671
|
}
|
|
39876
40672
|
break;
|
|
39877
40673
|
}
|
|
@@ -39883,20 +40679,20 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39883
40679
|
const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
|
|
39884
40680
|
pendingEscalatedRef.current.set(requestId, {
|
|
39885
40681
|
command: summary,
|
|
39886
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
40682
|
+
explanation: _optionalChain([required, 'optionalAccess', _903 => _903.toolExplanation]),
|
|
39887
40683
|
approvalType,
|
|
39888
40684
|
toolCalls
|
|
39889
40685
|
});
|
|
39890
|
-
_optionalChain([callbacks, 'access',
|
|
40686
|
+
_optionalChain([callbacks, 'access', _904 => _904.onEscalatedApproval, 'optionalCall', _905 => _905(requestId, {
|
|
39891
40687
|
command: summary,
|
|
39892
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
40688
|
+
explanation: _optionalChain([required, 'optionalAccess', _906 => _906.toolExplanation]),
|
|
39893
40689
|
approvalType
|
|
39894
40690
|
})]);
|
|
39895
40691
|
break;
|
|
39896
40692
|
}
|
|
39897
40693
|
if (batchApprovalsEnabled) {
|
|
39898
40694
|
const segments2 = accumulator.addApprovalBatch(requestId, approvalType, toolCalls, status);
|
|
39899
|
-
_optionalChain([callbacks, 'access',
|
|
40695
|
+
_optionalChain([callbacks, 'access', _907 => _907.onSegmentsUpdate, 'optionalCall', _908 => _908(segments2)]);
|
|
39900
40696
|
break;
|
|
39901
40697
|
}
|
|
39902
40698
|
let segments = accumulator.getSegments();
|
|
@@ -39910,7 +40706,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39910
40706
|
status
|
|
39911
40707
|
);
|
|
39912
40708
|
}
|
|
39913
|
-
_optionalChain([callbacks, 'access',
|
|
40709
|
+
_optionalChain([callbacks, 'access', _909 => _909.onSegmentsUpdate, 'optionalCall', _910 => _910(segments)]);
|
|
39914
40710
|
break;
|
|
39915
40711
|
}
|
|
39916
40712
|
case "approval_result": {
|
|
@@ -39919,7 +40715,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39919
40715
|
const status = approved ? "approved" : "rejected";
|
|
39920
40716
|
if (escalatedData) {
|
|
39921
40717
|
pendingEscalatedRef.current.delete(requestId);
|
|
39922
|
-
_optionalChain([callbacks, 'access',
|
|
40718
|
+
_optionalChain([callbacks, 'access', _911 => _911.onEscalatedApprovalResult, 'optionalCall', _912 => _912(requestId, approved, {
|
|
39923
40719
|
command: escalatedData.command,
|
|
39924
40720
|
explanation: escalatedData.explanation,
|
|
39925
40721
|
approvalType: escalatedData.approvalType
|
|
@@ -39932,7 +40728,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39932
40728
|
escalatedData.toolCalls,
|
|
39933
40729
|
status
|
|
39934
40730
|
);
|
|
39935
|
-
_optionalChain([callbacks, 'access',
|
|
40731
|
+
_optionalChain([callbacks, 'access', _913 => _913.onSegmentsUpdate, 'optionalCall', _914 => _914(segments)]);
|
|
39936
40732
|
} else {
|
|
39937
40733
|
let segments = accumulator.getSegments();
|
|
39938
40734
|
for (const call of escalatedData.toolCalls) {
|
|
@@ -39945,7 +40741,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39945
40741
|
status
|
|
39946
40742
|
);
|
|
39947
40743
|
}
|
|
39948
|
-
_optionalChain([callbacks, 'access',
|
|
40744
|
+
_optionalChain([callbacks, 'access', _915 => _915.onSegmentsUpdate, 'optionalCall', _916 => _916(segments)]);
|
|
39949
40745
|
}
|
|
39950
40746
|
} else {
|
|
39951
40747
|
const segments = accumulator.addApprovalRequest(
|
|
@@ -39955,63 +40751,65 @@ function useRealtimeChunkProcessor(options) {
|
|
|
39955
40751
|
escalatedData.approvalType,
|
|
39956
40752
|
status
|
|
39957
40753
|
);
|
|
39958
|
-
_optionalChain([callbacks, 'access',
|
|
40754
|
+
_optionalChain([callbacks, 'access', _917 => _917.onSegmentsUpdate, 'optionalCall', _918 => _918(segments)]);
|
|
39959
40755
|
}
|
|
39960
40756
|
} else {
|
|
39961
|
-
|
|
39962
|
-
|
|
40757
|
+
accumulator.updateApprovalStatus(requestId, status);
|
|
40758
|
+
if (!callbacks.onApprovalResolved) {
|
|
40759
|
+
_optionalChain([callbacks, 'access', _919 => _919.onSegmentsUpdate, 'optionalCall', _920 => _920(accumulator.getSegments())]);
|
|
40760
|
+
}
|
|
39963
40761
|
}
|
|
39964
|
-
|
|
40762
|
+
_optionalChain([callbacks, 'access', _921 => _921.onApprovalResolved, 'optionalCall', _922 => _922(requestId, status, approvalType)]);
|
|
39965
40763
|
break;
|
|
39966
40764
|
}
|
|
39967
40765
|
case "error": {
|
|
39968
40766
|
let message2;
|
|
39969
|
-
if ("details" in action && _optionalChain([action, 'optionalAccess',
|
|
40767
|
+
if ("details" in action && _optionalChain([action, 'optionalAccess', _923 => _923.details])) {
|
|
39970
40768
|
try {
|
|
39971
|
-
message2 = _optionalChain([JSON, 'access',
|
|
40769
|
+
message2 = _optionalChain([JSON, 'access', _924 => _924.parse, 'call', _925 => _925(action.details), 'optionalAccess', _926 => _926.error, 'optionalAccess', _927 => _927.message]);
|
|
39972
40770
|
} catch (e41) {
|
|
39973
40771
|
message2 = action.details;
|
|
39974
40772
|
}
|
|
39975
40773
|
}
|
|
39976
40774
|
const segments = accumulator.addError(action.error, message2);
|
|
39977
|
-
_optionalChain([callbacks, 'access',
|
|
39978
|
-
_optionalChain([callbacks, 'access',
|
|
40775
|
+
_optionalChain([callbacks, 'access', _928 => _928.onSegmentsUpdate, 'optionalCall', _929 => _929(segments)]);
|
|
40776
|
+
_optionalChain([callbacks, 'access', _930 => _930.onError, 'optionalCall', _931 => _931(action.error, message2)]);
|
|
39979
40777
|
break;
|
|
39980
40778
|
}
|
|
39981
40779
|
case "system": {
|
|
39982
|
-
_optionalChain([callbacks, 'access',
|
|
40780
|
+
_optionalChain([callbacks, 'access', _932 => _932.onSystemMessage, 'optionalCall', _933 => _933(action.text)]);
|
|
39983
40781
|
break;
|
|
39984
40782
|
}
|
|
39985
40783
|
case "direct_message": {
|
|
39986
|
-
_optionalChain([callbacks, 'access',
|
|
40784
|
+
_optionalChain([callbacks, 'access', _934 => _934.onDirectMessage, 'optionalCall', _935 => _935(action.text, {
|
|
39987
40785
|
ownerType: action.ownerType,
|
|
39988
40786
|
displayName: action.displayName
|
|
39989
40787
|
})]);
|
|
39990
40788
|
break;
|
|
39991
40789
|
}
|
|
39992
40790
|
case "message_request":
|
|
39993
|
-
_optionalChain([callbacks, 'access',
|
|
40791
|
+
_optionalChain([callbacks, 'access', _936 => _936.onUserMessage, 'optionalCall', _937 => _937(action.text, {
|
|
39994
40792
|
ownerType: action.ownerType,
|
|
39995
40793
|
displayName: action.displayName
|
|
39996
40794
|
})]);
|
|
39997
40795
|
break;
|
|
39998
40796
|
case "token_usage":
|
|
39999
|
-
_optionalChain([callbacks, 'access',
|
|
40797
|
+
_optionalChain([callbacks, 'access', _938 => _938.onTokenUsage, 'optionalCall', _939 => _939(action.data)]);
|
|
40000
40798
|
break;
|
|
40001
40799
|
case "context_compaction_start": {
|
|
40002
40800
|
const standalone = !isInStreamRef.current;
|
|
40003
40801
|
const segments = accumulator.addContextCompaction();
|
|
40004
|
-
_optionalChain([callbacks, 'access',
|
|
40802
|
+
_optionalChain([callbacks, 'access', _940 => _940.onSegmentsUpdate, 'optionalCall', _941 => _941(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
|
|
40005
40803
|
break;
|
|
40006
40804
|
}
|
|
40007
40805
|
case "context_compaction_end": {
|
|
40008
40806
|
const standalone = !isInStreamRef.current;
|
|
40009
40807
|
const segments = accumulator.completeContextCompaction(action.summary);
|
|
40010
|
-
_optionalChain([callbacks, 'access',
|
|
40808
|
+
_optionalChain([callbacks, 'access', _942 => _942.onSegmentsUpdate, 'optionalCall', _943 => _943(segments, standalone ? { append: true, isCompacting: true } : void 0)]);
|
|
40011
40809
|
break;
|
|
40012
40810
|
}
|
|
40013
40811
|
case "dialog_closed":
|
|
40014
|
-
_optionalChain([callbacks, 'access',
|
|
40812
|
+
_optionalChain([callbacks, 'access', _944 => _944.onDialogClosed, 'optionalCall', _945 => _945()]);
|
|
40015
40813
|
break;
|
|
40016
40814
|
default:
|
|
40017
40815
|
break;
|
|
@@ -40071,7 +40869,7 @@ function useSlashCommands(prefix, commandsUrl) {
|
|
|
40071
40869
|
const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
|
|
40072
40870
|
if (!cancelled) setCommands(next);
|
|
40073
40871
|
} catch (err) {
|
|
40074
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
40872
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _946 => _946.name]) !== "AbortError") {
|
|
40075
40873
|
console.warn("[use-slash-commands] fetch failed:", err);
|
|
40076
40874
|
}
|
|
40077
40875
|
} finally {
|
|
@@ -40104,7 +40902,7 @@ function createLocalStorageAdapter(options) {
|
|
|
40104
40902
|
const tag = _nullishCoalesce(options.logTag, () => ( "[local-storage]"));
|
|
40105
40903
|
const backend = _nullishCoalesce(options.backend, () => ( "local"));
|
|
40106
40904
|
const resolveKey = () => {
|
|
40107
|
-
const ns = _optionalChain([options, 'access',
|
|
40905
|
+
const ns = _optionalChain([options, 'access', _947 => _947.namespace, 'optionalCall', _948 => _948()]);
|
|
40108
40906
|
return ns ? `${ns}.${options.key}` : options.key;
|
|
40109
40907
|
};
|
|
40110
40908
|
return {
|
|
@@ -40185,7 +40983,7 @@ function getChatProxyAuth() {
|
|
|
40185
40983
|
}
|
|
40186
40984
|
function getPersistedProxyEmail() {
|
|
40187
40985
|
const persisted = adapter.load();
|
|
40188
|
-
return _nullishCoalesce(_optionalChain([persisted, 'optionalAccess',
|
|
40986
|
+
return _nullishCoalesce(_optionalChain([persisted, 'optionalAccess', _949 => _949.email, 'access', _950 => _950.trim, 'call', _951 => _951(), 'access', _952 => _952.toLowerCase, 'call', _953 => _953()]), () => ( null));
|
|
40189
40987
|
}
|
|
40190
40988
|
function setChatProxyAuth(value) {
|
|
40191
40989
|
adapter.save({
|
|
@@ -40202,15 +41000,15 @@ function clearChatProxyAuth() {
|
|
|
40202
41000
|
function applyProxyAuth(url, baseHeaders = { "Content-Type": "application/json" }) {
|
|
40203
41001
|
const auth = getChatProxyAuth();
|
|
40204
41002
|
const headers = { ...baseHeaders };
|
|
40205
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
41003
|
+
if (_optionalChain([auth, 'optionalAccess', _954 => _954.secret])) {
|
|
40206
41004
|
headers.Authorization = `Bearer ${auth.secret}`;
|
|
40207
41005
|
}
|
|
40208
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
41006
|
+
if (_optionalChain([auth, 'optionalAccess', _955 => _955.email])) {
|
|
40209
41007
|
headers["X-Chat-Act-As"] = auth.email;
|
|
40210
41008
|
}
|
|
40211
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
40212
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
40213
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
41009
|
+
if (_optionalChain([auth, 'optionalAccess', _956 => _956.firstName])) headers["X-Chat-First-Name"] = auth.firstName;
|
|
41010
|
+
if (_optionalChain([auth, 'optionalAccess', _957 => _957.lastName])) headers["X-Chat-Last-Name"] = auth.lastName;
|
|
41011
|
+
if (_optionalChain([auth, 'optionalAccess', _958 => _958.avatarUrl])) headers["X-Chat-Avatar-Url"] = auth.avatarUrl;
|
|
40214
41012
|
return { url, headers };
|
|
40215
41013
|
}
|
|
40216
41014
|
|
|
@@ -40248,7 +41046,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
|
|
|
40248
41046
|
var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
|
|
40249
41047
|
function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
40250
41048
|
return new Promise((resolve, reject) => {
|
|
40251
|
-
if (_optionalChain([signal, 'optionalAccess',
|
|
41049
|
+
if (_optionalChain([signal, 'optionalAccess', _959 => _959.aborted])) {
|
|
40252
41050
|
reject(new Error("Upload cancelled"));
|
|
40253
41051
|
return;
|
|
40254
41052
|
}
|
|
@@ -40262,7 +41060,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
40262
41060
|
xhr.removeEventListener("error", handleError);
|
|
40263
41061
|
xhr.removeEventListener("abort", handleAbort);
|
|
40264
41062
|
xhr.removeEventListener("timeout", handleTimeout);
|
|
40265
|
-
_optionalChain([signal, 'optionalAccess',
|
|
41063
|
+
_optionalChain([signal, 'optionalAccess', _960 => _960.removeEventListener, 'call', _961 => _961("abort", handleSignalAbort)]);
|
|
40266
41064
|
if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
|
|
40267
41065
|
};
|
|
40268
41066
|
const handleProgress = (event) => {
|
|
@@ -40298,7 +41096,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
40298
41096
|
const handleSignalAbort = () => {
|
|
40299
41097
|
xhr.abort();
|
|
40300
41098
|
};
|
|
40301
|
-
_optionalChain([signal, 'optionalAccess',
|
|
41099
|
+
_optionalChain([signal, 'optionalAccess', _962 => _962.addEventListener, 'call', _963 => _963("abort", handleSignalAbort, { once: true })]);
|
|
40302
41100
|
xhr.upload.addEventListener("progress", handleProgress);
|
|
40303
41101
|
xhr.addEventListener("load", handleLoad);
|
|
40304
41102
|
xhr.addEventListener("error", handleError);
|
|
@@ -40342,12 +41140,12 @@ function useChatAttachments() {
|
|
|
40342
41140
|
try {
|
|
40343
41141
|
sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
|
|
40344
41142
|
} catch (err) {
|
|
40345
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
41143
|
+
if (_optionalChain([ctrl, 'optionalAccess', _964 => _964.signal, 'access', _965 => _965.aborted])) return;
|
|
40346
41144
|
throw new Error(
|
|
40347
41145
|
`Could not read file content: ${err instanceof Error ? err.message : String(err)}`
|
|
40348
41146
|
);
|
|
40349
41147
|
}
|
|
40350
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
41148
|
+
if (_optionalChain([ctrl, 'optionalAccess', _966 => _966.signal, 'access', _967 => _967.aborted])) return;
|
|
40351
41149
|
if (!sniffed) {
|
|
40352
41150
|
throw new Error("Unrecognized file format");
|
|
40353
41151
|
}
|
|
@@ -40361,7 +41159,7 @@ function useChatAttachments() {
|
|
|
40361
41159
|
const urlResp = await chatAuthedFetch(uploadUrlEndpoint, {
|
|
40362
41160
|
method: "POST",
|
|
40363
41161
|
headers: { "Content-Type": "application/json" },
|
|
40364
|
-
signal: _optionalChain([ctrl, 'optionalAccess',
|
|
41162
|
+
signal: _optionalChain([ctrl, 'optionalAccess', _968 => _968.signal]),
|
|
40365
41163
|
body: JSON.stringify({
|
|
40366
41164
|
fileName: att.file.name,
|
|
40367
41165
|
// Pass the SNIFFED MIME (not `file.type`, which can be a
|
|
@@ -40387,9 +41185,9 @@ function useChatAttachments() {
|
|
|
40387
41185
|
(pct) => {
|
|
40388
41186
|
updateOne(att.id, { progress: pct });
|
|
40389
41187
|
},
|
|
40390
|
-
_optionalChain([ctrl, 'optionalAccess',
|
|
41188
|
+
_optionalChain([ctrl, 'optionalAccess', _969 => _969.signal])
|
|
40391
41189
|
);
|
|
40392
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
41190
|
+
if (_optionalChain([ctrl, 'optionalAccess', _970 => _970.signal, 'access', _971 => _971.aborted])) return;
|
|
40393
41191
|
updateOne(att.id, {
|
|
40394
41192
|
status: "ready",
|
|
40395
41193
|
progress: 100,
|
|
@@ -40397,7 +41195,7 @@ function useChatAttachments() {
|
|
|
40397
41195
|
viewToken: mintData.viewToken
|
|
40398
41196
|
});
|
|
40399
41197
|
} catch (err) {
|
|
40400
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
41198
|
+
if (_optionalChain([ctrl, 'optionalAccess', _972 => _972.signal, 'access', _973 => _973.aborted])) return;
|
|
40401
41199
|
const message2 = err instanceof Error ? err.message : String(err);
|
|
40402
41200
|
updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
|
|
40403
41201
|
} finally {
|
|
@@ -40548,7 +41346,7 @@ var ANON_DEFAULTS = {
|
|
|
40548
41346
|
function useChatIdentity() {
|
|
40549
41347
|
const runtime = _chunk6RZYJICVcjs.useRequiredChatRuntime.call(void 0, );
|
|
40550
41348
|
const url = runtime.endpoints.chatIdentityUrl;
|
|
40551
|
-
const proxyEmail = _nullishCoalesce(_optionalChain([getChatProxyAuth, 'call',
|
|
41349
|
+
const proxyEmail = _nullishCoalesce(_optionalChain([getChatProxyAuth, 'call', _974 => _974(), 'optionalAccess', _975 => _975.email]), () => ( null));
|
|
40552
41350
|
const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
|
|
40553
41351
|
const [isLoading, setIsLoading] = _react.useState.call(void 0, true);
|
|
40554
41352
|
_react.useEffect.call(void 0, () => {
|
|
@@ -40625,7 +41423,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
|
40625
41423
|
yield chunk;
|
|
40626
41424
|
}
|
|
40627
41425
|
} catch (err) {
|
|
40628
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
41426
|
+
if (_optionalChain([err, 'optionalAccess', _976 => _976.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
40629
41427
|
return;
|
|
40630
41428
|
}
|
|
40631
41429
|
const errorMessage = err instanceof Error ? err.message : "An error occurred";
|
|
@@ -40676,7 +41474,7 @@ function useChat({
|
|
|
40676
41474
|
const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
|
|
40677
41475
|
onMessagesChangeRef.current = onMessagesChange;
|
|
40678
41476
|
_react.useEffect.call(void 0, () => {
|
|
40679
|
-
_optionalChain([onMessagesChangeRef, 'access',
|
|
41477
|
+
_optionalChain([onMessagesChangeRef, 'access', _977 => _977.current, 'optionalCall', _978 => _978(messages)]);
|
|
40680
41478
|
}, [messages]);
|
|
40681
41479
|
const {
|
|
40682
41480
|
streamMessage,
|
|
@@ -40713,7 +41511,7 @@ function useChat({
|
|
|
40713
41511
|
name: "You",
|
|
40714
41512
|
content: text,
|
|
40715
41513
|
timestamp: /* @__PURE__ */ new Date(),
|
|
40716
|
-
..._optionalChain([options, 'optionalAccess',
|
|
41514
|
+
..._optionalChain([options, 'optionalAccess', _979 => _979.hidden]) ? { hidden: true } : {}
|
|
40717
41515
|
};
|
|
40718
41516
|
addMessage(userMessage);
|
|
40719
41517
|
setIsTyping(true);
|
|
@@ -40775,7 +41573,7 @@ function useChat({
|
|
|
40775
41573
|
currentTextSegment = "";
|
|
40776
41574
|
}
|
|
40777
41575
|
const seg = segment;
|
|
40778
|
-
const proposalId = _optionalChain([seg, 'access',
|
|
41576
|
+
const proposalId = _optionalChain([seg, 'access', _980 => _980.data, 'optionalAccess', _981 => _981.requestId]);
|
|
40779
41577
|
const updateApprovalMessage = (transform) => {
|
|
40780
41578
|
setMessages((prev) => {
|
|
40781
41579
|
for (let i = prev.length - 1; i >= 0; i--) {
|
|
@@ -40784,7 +41582,7 @@ function useChat({
|
|
|
40784
41582
|
if (!Array.isArray(m.content)) continue;
|
|
40785
41583
|
const segments = m.content;
|
|
40786
41584
|
const hasMatch = segments.some(
|
|
40787
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
41585
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _982 => _982.data, 'optionalAccess', _983 => _983.requestId]) === proposalId
|
|
40788
41586
|
);
|
|
40789
41587
|
if (!hasMatch) continue;
|
|
40790
41588
|
const next = [...prev];
|
|
@@ -40826,11 +41624,11 @@ function useChat({
|
|
|
40826
41624
|
if (!Array.isArray(m.content)) continue;
|
|
40827
41625
|
const segments = m.content;
|
|
40828
41626
|
const hasMatch = segments.some(
|
|
40829
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
41627
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _984 => _984.data, 'optionalAccess', _985 => _985.requestId]) === decision.proposalId
|
|
40830
41628
|
);
|
|
40831
41629
|
if (!hasMatch) continue;
|
|
40832
41630
|
const flipped = segments.map(
|
|
40833
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
41631
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _986 => _986.data, 'optionalAccess', _987 => _987.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
|
|
40834
41632
|
);
|
|
40835
41633
|
const next = [...prev];
|
|
40836
41634
|
next[i] = { ...m, content: flipped };
|
|
@@ -40992,8 +41790,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
40992
41790
|
})),
|
|
40993
41791
|
{ role: "user", content: message2 }
|
|
40994
41792
|
];
|
|
40995
|
-
const targetPath = _optionalChain([extra, 'optionalAccess',
|
|
40996
|
-
const requestBody = _optionalChain([extra, 'optionalAccess',
|
|
41793
|
+
const targetPath = _optionalChain([extra, 'optionalAccess', _988 => _988.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
|
|
41794
|
+
const requestBody = _optionalChain([extra, 'optionalAccess', _989 => _989.approvalAction]) ? {
|
|
40997
41795
|
proposal_id: extra.approvalAction.proposalId,
|
|
40998
41796
|
action: extra.approvalAction.action,
|
|
40999
41797
|
messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
|
|
@@ -41002,8 +41800,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
41002
41800
|
}))
|
|
41003
41801
|
} : {
|
|
41004
41802
|
messages: apiMessages,
|
|
41005
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
41006
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
41803
|
+
..._optionalChain([extra, 'optionalAccess', _990 => _990.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
|
|
41804
|
+
..._optionalChain([extra, 'optionalAccess', _991 => _991.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
|
|
41007
41805
|
};
|
|
41008
41806
|
const response = await chatAuthedFetch(targetPath, {
|
|
41009
41807
|
method: "POST",
|
|
@@ -41013,7 +41811,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
41013
41811
|
if (!response.ok) {
|
|
41014
41812
|
throw new Error(`Chat request failed: ${response.status}`);
|
|
41015
41813
|
}
|
|
41016
|
-
const reader = _optionalChain([response, 'access',
|
|
41814
|
+
const reader = _optionalChain([response, 'access', _992 => _992.body, 'optionalAccess', _993 => _993.getReader, 'call', _994 => _994()]);
|
|
41017
41815
|
if (!reader) throw new Error("No response body");
|
|
41018
41816
|
const decoder = new TextDecoder();
|
|
41019
41817
|
let buffer = "";
|
|
@@ -41096,7 +41894,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
41096
41894
|
const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
|
|
41097
41895
|
const result = _nullishCoalesce(meta.result, () => ( null));
|
|
41098
41896
|
const card = _nullishCoalesce(meta.card, () => ( null));
|
|
41099
|
-
if (_optionalChain([card, 'optionalAccess',
|
|
41897
|
+
if (_optionalChain([card, 'optionalAccess', _995 => _995.ref, 'optionalAccess', _996 => _996.id]) && _optionalChain([card, 'optionalAccess', _997 => _997.type])) {
|
|
41100
41898
|
const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
|
|
41101
41899
|
const key = buildChatRefKey(card.type, card.ref.id);
|
|
41102
41900
|
refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
|
|
@@ -41109,8 +41907,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
41109
41907
|
willAutoContinue: meta.willAutoContinue === true,
|
|
41110
41908
|
...toolName ? { toolName } : {},
|
|
41111
41909
|
...result ? { result } : {},
|
|
41112
|
-
..._optionalChain([card, 'optionalAccess',
|
|
41113
|
-
..._optionalChain([card, 'optionalAccess',
|
|
41910
|
+
..._optionalChain([card, 'optionalAccess', _998 => _998.marker]) ? { marker: card.marker } : {},
|
|
41911
|
+
..._optionalChain([card, 'optionalAccess', _999 => _999.ref]) ? { cardRef: card.ref } : {},
|
|
41114
41912
|
...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
|
|
41115
41913
|
proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
|
|
41116
41914
|
};
|
|
@@ -41228,7 +42026,7 @@ var CHAT_STORAGE_VERSION = 1;
|
|
|
41228
42026
|
var chatStorageKey = (source) => {
|
|
41229
42027
|
const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
|
|
41230
42028
|
const auth = getChatProxyAuth();
|
|
41231
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
42029
|
+
if (_optionalChain([auth, 'optionalAccess', _1000 => _1000.email])) {
|
|
41232
42030
|
return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
|
|
41233
42031
|
}
|
|
41234
42032
|
return base;
|
|
@@ -41287,7 +42085,7 @@ function useEmbeddedChat(options) {
|
|
|
41287
42085
|
"[useEmbeddedChat] runtime.source is required \u2014 got empty string. Wire `source` on your <ChatRuntimeContext.Provider value={...}>. Hub default: <HubRuntimeProvider source={currentPlatform()}>; embedded apps: pass your own platform/tenant identifier."
|
|
41288
42086
|
);
|
|
41289
42087
|
}
|
|
41290
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
42088
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1001 => _1001.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
41291
42089
|
const persistedRef = _react.useRef.call(void 0, null);
|
|
41292
42090
|
if (persistedRef.current === null) {
|
|
41293
42091
|
pruneStaleChatStorage(source);
|
|
@@ -41355,7 +42153,7 @@ function useEmbeddedChat(options) {
|
|
|
41355
42153
|
}
|
|
41356
42154
|
setCmdIdByTableId(map);
|
|
41357
42155
|
}).catch((err) => {
|
|
41358
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
42156
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _1002 => _1002.name]) !== "AbortError") {
|
|
41359
42157
|
console.warn(
|
|
41360
42158
|
"[useEmbeddedChat] failed to fetch slash commands for displayRef:",
|
|
41361
42159
|
err
|
|
@@ -41408,7 +42206,7 @@ function useEmbeddedChat(options) {
|
|
|
41408
42206
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
41409
42207
|
sources = sourcesMapRef.current.get(lookupIdx);
|
|
41410
42208
|
chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
|
|
41411
|
-
scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access',
|
|
42209
|
+
scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1003 => _1003.current, 'access', _1004 => _1004.get, 'call', _1005 => _1005(lookupIdx), 'optionalAccess', _1006 => _1006.scrollAnchor]), () => ( void 0));
|
|
41412
42210
|
}
|
|
41413
42211
|
return {
|
|
41414
42212
|
id: m.id,
|
|
@@ -41445,7 +42243,7 @@ function useEmbeddedChat(options) {
|
|
|
41445
42243
|
);
|
|
41446
42244
|
return;
|
|
41447
42245
|
}
|
|
41448
|
-
const refSlug = typeof _optionalChain([reference, 'access',
|
|
42246
|
+
const refSlug = typeof _optionalChain([reference, 'access', _1007 => _1007.metadata, 'optionalAccess', _1008 => _1008.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
|
|
41449
42247
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
41450
42248
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
41451
42249
|
const text = `/${cmdId} display "${escaped}"`;
|
|
@@ -41517,18 +42315,18 @@ function useEmbeddedChat(options) {
|
|
|
41517
42315
|
clearMessages,
|
|
41518
42316
|
streamingPhase,
|
|
41519
42317
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
41520
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
41521
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
41522
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
42318
|
+
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1009 => _1009.provider]), () => ( null)),
|
|
42319
|
+
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1010 => _1010.modelLabel]), () => ( null)),
|
|
42320
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1011 => _1011.contextWindowMaxTokens]), () => ( null)),
|
|
41523
42321
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
41524
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
42322
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1012 => _1012.inputTokens]), () => ( null)),
|
|
41525
42323
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
41526
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
42324
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1013 => _1013.outputTokens]), () => ( null)),
|
|
41527
42325
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
41528
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
42326
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1014 => _1014.cacheHitRatePct]), () => ( null)),
|
|
41529
42327
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
41530
42328
|
* token counts). null until the trailing usage frame lands. */
|
|
41531
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
42329
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1015 => _1015.breakdown]), () => ( null))
|
|
41532
42330
|
};
|
|
41533
42331
|
}
|
|
41534
42332
|
|
|
@@ -41544,12 +42342,12 @@ function useProxiedImageUrl(url) {
|
|
|
41544
42342
|
|
|
41545
42343
|
// src/components/chat/utils/process-historical-messages.ts
|
|
41546
42344
|
function getOwnerDisplayName(owner) {
|
|
41547
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
42345
|
+
if (_optionalChain([owner, 'optionalAccess', _1016 => _1016.type]) === OWNER_TYPE.ADMIN && owner.user) {
|
|
41548
42346
|
const { firstName, lastName } = owner.user;
|
|
41549
42347
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
41550
42348
|
if (name) return name;
|
|
41551
42349
|
}
|
|
41552
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
42350
|
+
return _optionalChain([owner, 'optionalAccess', _1017 => _1017.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
41553
42351
|
}
|
|
41554
42352
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
41555
42353
|
messageDataArray.forEach((data) => {
|
|
@@ -41612,10 +42410,10 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
41612
42410
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
41613
42411
|
return;
|
|
41614
42412
|
}
|
|
41615
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
42413
|
+
const isUserMessage = _optionalChain([msg, 'access', _1018 => _1018.owner, 'optionalAccess', _1019 => _1019.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1020 => _1020.owner, 'optionalAccess', _1021 => _1021.type]) === OWNER_TYPE.ADMIN;
|
|
41616
42414
|
if (isUserMessage) {
|
|
41617
42415
|
flushAssistantMessage();
|
|
41618
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
42416
|
+
const userAuthorType = _optionalChain([msg, 'access', _1022 => _1022.owner, 'optionalAccess', _1023 => _1023.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
41619
42417
|
messageDataArray.forEach((data) => {
|
|
41620
42418
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
41621
42419
|
processedMessages.push({
|
|
@@ -41639,7 +42437,7 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
41639
42437
|
});
|
|
41640
42438
|
const nextMsg = messages[index + 1];
|
|
41641
42439
|
const isLastMessage = index === messages.length - 1;
|
|
41642
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
42440
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1024 => _1024.owner, 'optionalAccess', _1025 => _1025.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1026 => _1026.owner, 'optionalAccess', _1027 => _1027.type]) === OWNER_TYPE.ADMIN);
|
|
41643
42441
|
if (isLastMessage || nextIsFromUser) {
|
|
41644
42442
|
flushAssistantMessage();
|
|
41645
42443
|
}
|
|
@@ -41749,7 +42547,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
41749
42547
|
}
|
|
41750
42548
|
}
|
|
41751
42549
|
} else {
|
|
41752
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
42550
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1028 => _1028.set, 'call', _1029 => _1029(data.approvalRequestId, {
|
|
41753
42551
|
command: data.command || "",
|
|
41754
42552
|
explanation: data.explanation,
|
|
41755
42553
|
approvalType,
|
|
@@ -41762,8 +42560,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
41762
42560
|
if ("approvalRequestId" in data && data.approvalRequestId) {
|
|
41763
42561
|
const existingStatus = approvalStatuses[data.approvalRequestId];
|
|
41764
42562
|
const status = existingStatus || (data.approved ? "approved" : "rejected");
|
|
41765
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
41766
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
42563
|
+
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1030 => _1030.get, 'call', _1031 => _1031(data.approvalRequestId)]);
|
|
42564
|
+
if (_optionalChain([escalatedData, 'optionalAccess', _1032 => _1032.toolCalls]) && escalatedData.toolCalls.length > 0) {
|
|
41767
42565
|
if (batchApprovalsEnabled) {
|
|
41768
42566
|
accumulator.addApprovalBatch(
|
|
41769
42567
|
data.approvalRequestId,
|
|
@@ -41783,7 +42581,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
41783
42581
|
);
|
|
41784
42582
|
}
|
|
41785
42583
|
}
|
|
41786
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
42584
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1033 => _1033.delete, 'call', _1034 => _1034(data.approvalRequestId)]);
|
|
41787
42585
|
break;
|
|
41788
42586
|
}
|
|
41789
42587
|
if (escalatedData) {
|
|
@@ -41792,7 +42590,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
41792
42590
|
explanation: escalatedData.explanation,
|
|
41793
42591
|
approvalType: escalatedData.approvalType
|
|
41794
42592
|
});
|
|
41795
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
42593
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1035 => _1035.delete, 'call', _1036 => _1036(data.approvalRequestId)]);
|
|
41796
42594
|
}
|
|
41797
42595
|
const before = accumulator.getSegments();
|
|
41798
42596
|
const after = accumulator.updateApprovalStatus(data.approvalRequestId, status);
|
|
@@ -41808,9 +42606,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
41808
42606
|
case MESSAGE_TYPE.ERROR:
|
|
41809
42607
|
if ("error" in data) {
|
|
41810
42608
|
let message2;
|
|
41811
|
-
if ("details" in data && _optionalChain([data, 'optionalAccess',
|
|
42609
|
+
if ("details" in data && _optionalChain([data, 'optionalAccess', _1037 => _1037.details])) {
|
|
41812
42610
|
try {
|
|
41813
|
-
message2 = _optionalChain([JSON, 'access',
|
|
42611
|
+
message2 = _optionalChain([JSON, 'access', _1038 => _1038.parse, 'call', _1039 => _1039(data.details), 'optionalAccess', _1040 => _1040.error, 'optionalAccess', _1041 => _1041.message]);
|
|
41814
42612
|
} catch (e49) {
|
|
41815
42613
|
message2 = data.details;
|
|
41816
42614
|
}
|
|
@@ -41893,10 +42691,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
41893
42691
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
41894
42692
|
return;
|
|
41895
42693
|
}
|
|
41896
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
42694
|
+
const isUserMessage = _optionalChain([msg, 'access', _1042 => _1042.owner, 'optionalAccess', _1043 => _1043.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1044 => _1044.owner, 'optionalAccess', _1045 => _1045.type]) === OWNER_TYPE.ADMIN;
|
|
41897
42695
|
if (isUserMessage) {
|
|
41898
42696
|
flushAssistantMessage();
|
|
41899
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
42697
|
+
const userAuthorType = _optionalChain([msg, 'access', _1046 => _1046.owner, 'optionalAccess', _1047 => _1047.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
41900
42698
|
messageDataArray.forEach((data) => {
|
|
41901
42699
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
41902
42700
|
processedMessages.push({
|
|
@@ -41920,7 +42718,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
41920
42718
|
});
|
|
41921
42719
|
const nextMsg = messages[index + 1];
|
|
41922
42720
|
const isLastMessage = index === messages.length - 1;
|
|
41923
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
42721
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1048 => _1048.owner, 'optionalAccess', _1049 => _1049.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1050 => _1050.owner, 'optionalAccess', _1051 => _1051.type]) === OWNER_TYPE.ADMIN);
|
|
41924
42722
|
if (isLastMessage || nextIsFromUser) {
|
|
41925
42723
|
flushAssistantMessage();
|
|
41926
42724
|
}
|
|
@@ -41980,7 +42778,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
41980
42778
|
break;
|
|
41981
42779
|
case "approval_batch": {
|
|
41982
42780
|
const allDone = !!segment.data.executions && segment.data.toolCalls.every(
|
|
41983
|
-
(c) => _optionalChain([segment, 'access',
|
|
42781
|
+
(c) => _optionalChain([segment, 'access', _1052 => _1052.data, 'access', _1053 => _1053.executions, 'optionalAccess', _1054 => _1054[c.toolExecutionRequestId], 'optionalAccess', _1055 => _1055.status]) === "done"
|
|
41984
42782
|
);
|
|
41985
42783
|
if (segment.status !== "rejected" && !allDone) {
|
|
41986
42784
|
hasIncompleteState = true;
|
|
@@ -42024,7 +42822,7 @@ function chatChipClass({ tone, density = "chip", extra }) {
|
|
|
42024
42822
|
|
|
42025
42823
|
// node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
|
|
42026
42824
|
|
|
42027
|
-
var useLayoutEffect22 = _optionalChain([globalThis, 'optionalAccess',
|
|
42825
|
+
var useLayoutEffect22 = _optionalChain([globalThis, 'optionalAccess', _1056 => _1056.document]) ? React114.useLayoutEffect : () => {
|
|
42028
42826
|
};
|
|
42029
42827
|
|
|
42030
42828
|
// node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
|
|
@@ -42062,7 +42860,7 @@ function useControllableState({
|
|
|
42062
42860
|
if (isControlled) {
|
|
42063
42861
|
const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
|
|
42064
42862
|
if (value2 !== prop) {
|
|
42065
|
-
_optionalChain([onChangeRef, 'access',
|
|
42863
|
+
_optionalChain([onChangeRef, 'access', _1057 => _1057.current, 'optionalCall', _1058 => _1058(value2)]);
|
|
42066
42864
|
}
|
|
42067
42865
|
} else {
|
|
42068
42866
|
setUncontrolledProp(nextValue);
|
|
@@ -42084,7 +42882,7 @@ function useUncontrolledState({
|
|
|
42084
42882
|
}, [onChange]);
|
|
42085
42883
|
React115.useEffect(() => {
|
|
42086
42884
|
if (prevValueRef.current !== value) {
|
|
42087
|
-
_optionalChain([onChangeRef, 'access',
|
|
42885
|
+
_optionalChain([onChangeRef, 'access', _1059 => _1059.current, 'optionalCall', _1060 => _1060(value)]);
|
|
42088
42886
|
prevValueRef.current = value;
|
|
42089
42887
|
}
|
|
42090
42888
|
}, [value, prevValueRef]);
|
|
@@ -42497,7 +43295,7 @@ function EmbeddableChatInner({
|
|
|
42497
43295
|
setCommandsById(map);
|
|
42498
43296
|
setCommandsLoaded(true);
|
|
42499
43297
|
}).catch((err) => {
|
|
42500
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
43298
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _1061 => _1061.name]) !== "AbortError") {
|
|
42501
43299
|
console.warn("[embeddable-chat] failed to fetch slash commands:", err);
|
|
42502
43300
|
setCommandsLoaded(true);
|
|
42503
43301
|
}
|
|
@@ -42525,7 +43323,7 @@ function EmbeddableChatInner({
|
|
|
42525
43323
|
_react.useEffect.call(void 0, () => {
|
|
42526
43324
|
if (!isOpen) setAnimationRest(false);
|
|
42527
43325
|
}, [isOpen]);
|
|
42528
|
-
const userName = _optionalChain([identityUser, 'optionalAccess',
|
|
43326
|
+
const userName = _optionalChain([identityUser, 'optionalAccess', _1062 => _1062.firstName, 'optionalAccess', _1063 => _1063.trim, 'call', _1064 => _1064()]) || _optionalChain([identityUser, 'optionalAccess', _1065 => _1065.name, 'optionalAccess', _1066 => _1066.split, 'call', _1067 => _1067(" "), 'access', _1068 => _1068[0], 'optionalAccess', _1069 => _1069.trim, 'call', _1070 => _1070()]) || void 0;
|
|
42529
43327
|
const {
|
|
42530
43328
|
messages: rawMessages,
|
|
42531
43329
|
isLoading: chatLoading,
|
|
@@ -42641,9 +43439,9 @@ function EmbeddableChatInner({
|
|
|
42641
43439
|
const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
|
|
42642
43440
|
const lastSources = _react.useMemo.call(void 0, () => {
|
|
42643
43441
|
if (chatLoading) return void 0;
|
|
42644
|
-
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
43442
|
+
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1071 => _1071.sources]);
|
|
42645
43443
|
if (!sources || sources.length === 0) return void 0;
|
|
42646
|
-
const content = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
43444
|
+
const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1072 => _1072.content]) || "";
|
|
42647
43445
|
const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
|
|
42648
43446
|
(m) => parseInt(m[1], 10)
|
|
42649
43447
|
);
|
|
@@ -43689,5 +44487,19 @@ function EmbeddableChatInner({
|
|
|
43689
44487
|
|
|
43690
44488
|
|
|
43691
44489
|
|
|
43692
|
-
exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; 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.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; 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.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; 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.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.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.getStatusColorScheme = getStatusColorScheme; exports.clickupTaskUrl = clickupTaskUrl; exports.isCrossOriginUrl = isCrossOriginUrl; exports.fetchPriorityProp = fetchPriorityProp; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.SquareAvatar = SquareAvatar; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.InteractiveCard = InteractiveCard; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.ImageGalleryModal = ImageGalleryModal; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.useChatCardItem = useChatCardItem; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.getChatProxyAuth = getChatProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setChatProxyAuth = setChatProxyAuth; exports.clearChatProxyAuth = clearChatProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.chatAuthedFetch = chatAuthedFetch; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.useEmbeddedChat = useEmbeddedChat; exports.useProxiedImageUrl = useProxiedImageUrl; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.HoverDropdown = HoverDropdown; exports.EmbeddableChat = EmbeddableChat; 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.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; 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.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState3; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; 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.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.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup2; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; 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.Modal = Modal2; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal3; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader3; exports.ModalTitle2 = ModalTitle3; exports.ModalFooter2 = ModalFooter2; exports.Separator = Separator3; 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.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; 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.TableHeader = TableHeader; exports.TableCell = TableCell; 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.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; 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.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.assets = assets;
|
|
43693
|
-
|
|
44490
|
+
|
|
44491
|
+
|
|
44492
|
+
|
|
44493
|
+
|
|
44494
|
+
|
|
44495
|
+
|
|
44496
|
+
|
|
44497
|
+
|
|
44498
|
+
|
|
44499
|
+
|
|
44500
|
+
|
|
44501
|
+
|
|
44502
|
+
|
|
44503
|
+
|
|
44504
|
+
exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; 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.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; 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.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; 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.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.DESIGN_PALETTE = DESIGN_PALETTE; exports.hexToRgb = hexToRgb; exports.getContrastRatio = getContrastRatio; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.getStatusColorScheme = getStatusColorScheme; exports.clickupTaskUrl = clickupTaskUrl; exports.isCrossOriginUrl = isCrossOriginUrl; exports.fetchPriorityProp = fetchPriorityProp; 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.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.SquareAvatar = SquareAvatar; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.Textarea = Textarea; exports.ChatTypingIndicator = ChatTypingIndicator; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_DISPLAY_GRID_CLASS = RATIO_DISPLAY_GRID_CLASS; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesDisplay = VideoBitesDisplay; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.InteractiveCard = InteractiveCard; exports.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.ImageGalleryModal = ImageGalleryModal; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton2; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.useChatCardItem = useChatCardItem; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.getChatProxyAuth = getChatProxyAuth; exports.getPersistedProxyEmail = getPersistedProxyEmail; exports.setChatProxyAuth = setChatProxyAuth; exports.clearChatProxyAuth = clearChatProxyAuth; exports.applyProxyAuth = applyProxyAuth; exports.chatAuthedFetch = chatAuthedFetch; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.useEmbeddedChat = useEmbeddedChat; exports.useProxiedImageUrl = useProxiedImageUrl; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.HoverDropdown = HoverDropdown; exports.EmbeddableChat = EmbeddableChat; 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.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.Progress = Progress; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; 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.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Switch = Switch; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.Header = Header; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderButton = HeaderButton; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.AnnouncementBar = AnnouncementBar; exports.VendorIcon = VendorIcon; exports.CategoriesCart = CategoriesCart; exports.CategoryCard = CategoryCard; exports.VendorDisplayButton = VendorDisplayButton; exports.setRealAuthHook = setRealAuthHook; exports.useAuth = useAuth; exports.AuthProvider = AuthProvider; exports.CommentCard = CommentCard; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.EmptyState = EmptyState3; exports.ChevronButton = ChevronButton; exports.FaqAccordion = FaqAccordion; exports.FilterChip = FilterChip; exports.SocialIconRow = SocialIconRow; exports.Footer = Footer; exports.useUnifiedFiltering = useUnifiedFiltering; exports.vendorFilterConfig = vendorFilterConfig; exports.blogFilterConfig = blogFilterConfig; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.UnifiedPagination = UnifiedPagination; exports.FooterWaitlistButton = FooterWaitlistButton; exports.HeroImageUploader = HeroImageUploader; exports.ResponsiveIconsBlock = ResponsiveIconsBlock; exports.Slider = Slider; exports.ImageCropper = ImageCropper; exports.MediaCarousel = MediaCarousel; exports.MetricValue = MetricValue; exports.MSPDisplay = MSPDisplay; exports.PersistentFilterControls = PersistentFilterControls; exports.PersistentSearchContainer = PersistentSearchContainer; exports.PersistentSidebar = PersistentSidebar; exports.PersistentMobileDropdown = PersistentMobileDropdown; exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper; exports.PRICING_STYLES = PRICING_STYLES; exports.PricingDisplay = PricingDisplay; exports.formatPricingForDisplay = formatPricingForDisplay; exports.ResultsCount = ResultsCount; exports.VendorTag = VendorTag; exports.SelectionSourceBadge = SelectionSourceBadge; exports.UserDisplay = UserDisplay; 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.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.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.VendorPageSkeleton = VendorPageSkeleton; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon3; exports.XCircleIcon = XCircleIcon; exports.YesNoDisplay = YesNoDisplay; exports.evaluateFeatureValue = evaluateFeatureValue; exports.MadeWithLove = MadeWithLove; exports.DateTimePicker = DateTimePicker; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.DetailPageSkeleton = DetailPageSkeleton; exports.ReleaseDetailPage = ReleaseDetailPage; exports.ReleaseDetailSkeleton = ReleaseDetailSkeleton; exports.DevSectionView = DevSectionView; exports.DevSectionPage = DevSectionPage; exports.useRoadmapVoting = useRoadmapVoting; exports.RoadmapGrid = RoadmapGrid; exports.RoadmapGridSkeleton = RoadmapGridSkeleton; exports.DeliveryTable = DeliveryTable; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.DeliveryLists = DeliveryLists; exports.useLegalDocs = useLegalDocs; exports.LegalDocumentPage = LegalDocumentPage; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.ProgressBar = ProgressBar; exports.RadioGroup = RadioGroup2; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; 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.Modal = Modal2; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal3; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader3; exports.ModalTitle2 = ModalTitle3; exports.ModalFooter2 = ModalFooter2; exports.Separator = Separator3; 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.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.StatusIndicator = StatusIndicator; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.CircularProgress = CircularProgress; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.MoreActionsMenu = MoreActionsMenu; exports.DropdownButton = DropdownButton; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; 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.TableHeader = TableHeader; exports.TableCell = TableCell; 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.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; 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.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
|
|
44505
|
+
//# sourceMappingURL=chunk-WYLNTZZ7.cjs.map
|