@flamingo-stack/openframe-frontend-core 0.0.198 → 0.0.199-snapshot.20260520170030

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.
Files changed (58) hide show
  1. package/dist/chunk-4CWSZPXH.cjs.map +1 -1
  2. package/dist/{chunk-332L6IO7.cjs → chunk-C3M6R6JH.cjs} +456 -194
  3. package/dist/chunk-C3M6R6JH.cjs.map +1 -0
  4. package/dist/chunk-OII2IERE.cjs.map +1 -1
  5. package/dist/chunk-UC43NICZ.cjs.map +1 -1
  6. package/dist/chunk-V2FNIPZJ.cjs.map +1 -1
  7. package/dist/chunk-VJTFBYVG.cjs.map +1 -1
  8. package/dist/chunk-VRHGVLSL.cjs.map +1 -1
  9. package/dist/chunk-WZW7C7TF.cjs.map +1 -1
  10. package/dist/chunk-XQFFGR6U.cjs.map +1 -1
  11. package/dist/{chunk-5URU5DHE.js → chunk-ZOM75JOY.js} +325 -63
  12. package/dist/chunk-ZOM75JOY.js.map +1 -0
  13. package/dist/components/chart.d.ts +14 -7
  14. package/dist/components/chart.d.ts.map +1 -1
  15. package/dist/components/features/index.cjs +2 -2
  16. package/dist/components/features/index.cjs.map +1 -1
  17. package/dist/components/features/index.js +1 -1
  18. package/dist/components/icons/index.cjs.map +1 -1
  19. package/dist/components/icons-v2-generated/index.cjs.map +1 -1
  20. package/dist/components/index.cjs +2 -2
  21. package/dist/components/index.cjs.map +1 -1
  22. package/dist/components/index.js +1 -1
  23. package/dist/components/navigation/index.cjs +2 -2
  24. package/dist/components/navigation/index.cjs.map +1 -1
  25. package/dist/components/navigation/index.js +1 -1
  26. package/dist/components/resizable.d.ts +1 -1
  27. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts +1 -1
  28. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
  29. package/dist/components/shared/product-release/product-release-card.d.ts +38 -2
  30. package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
  31. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  32. package/dist/components/toast/index.cjs.map +1 -1
  33. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  34. package/dist/components/ui/index.cjs +2 -2
  35. package/dist/components/ui/index.cjs.map +1 -1
  36. package/dist/components/ui/index.js +1 -1
  37. package/dist/components/ui/release-changelog-section.d.ts +7 -1
  38. package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
  39. package/dist/hooks/index.cjs.map +1 -1
  40. package/dist/index.cjs +2 -2
  41. package/dist/index.cjs.map +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/tailwind.config.cjs +7 -7
  44. package/dist/tailwind.config.cjs.map +1 -1
  45. package/dist/tailwind.config.js +7 -7
  46. package/dist/tailwind.config.js.map +1 -1
  47. package/dist/types/index.cjs.map +1 -1
  48. package/dist/types/index.js.map +1 -1
  49. package/dist/types/product-release.d.ts +12 -0
  50. package/dist/types/product-release.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/src/components/shared/product-release/product-release-card-skeleton.tsx +69 -1
  53. package/src/components/shared/product-release/product-release-card.tsx +334 -4
  54. package/src/components/shared/product-release/release-detail-page.tsx +8 -2
  55. package/src/components/ui/release-changelog-section.tsx +29 -2
  56. package/src/types/product-release.ts +12 -0
  57. package/dist/chunk-332L6IO7.cjs.map +0 -1
  58. package/dist/chunk-5URU5DHE.js.map +0 -1
@@ -17264,9 +17264,19 @@ function OnboardingWalkthrough({
17264
17264
  }
17265
17265
 
17266
17266
  // src/components/shared/product-release/product-release-card.tsx
17267
+
17267
17268
  _chunkUC43NICZcjs.init_cn.call(void 0, );
17268
17269
 
17269
17270
 
17271
+
17272
+
17273
+
17274
+
17275
+
17276
+
17277
+
17278
+
17279
+
17270
17280
  function ProductReleaseCard({
17271
17281
  title,
17272
17282
  summary,
@@ -17275,8 +17285,181 @@ function ProductReleaseCard({
17275
17285
  onClick,
17276
17286
  anchorProps,
17277
17287
  className,
17278
- size = "default"
17288
+ size = "default",
17289
+ coverImage,
17290
+ hasVideoCover,
17291
+ releaseType,
17292
+ releaseStatus,
17293
+ releaseTypeBadgeColor,
17294
+ viewCount,
17295
+ author,
17296
+ changelogCounts
17279
17297
  }) {
17298
+ if (size === "catalog") {
17299
+ const totalChangelog = (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _437 => _437.features]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _438 => _438.fixes]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _439 => _439.improvements]), () => ( 0))) + (_nullishCoalesce(_optionalChain([changelogCounts, 'optionalAccess', _440 => _440.breaking]), () => ( 0)));
17300
+ const valueCells = [];
17301
+ if (releaseType && releaseTypeBadgeColor) {
17302
+ valueCells.push({
17303
+ value: releaseType.toUpperCase(),
17304
+ label: "Type",
17305
+ uppercase: true,
17306
+ colorScheme: releaseTypeBadgeColor
17307
+ });
17308
+ }
17309
+ if (releaseStatus) {
17310
+ valueCells.push({
17311
+ value: releaseStatus.toUpperCase(),
17312
+ label: "Status",
17313
+ uppercase: true
17314
+ });
17315
+ }
17316
+ if (formattedDate) {
17317
+ valueCells.push({
17318
+ value: formattedDate,
17319
+ label: "Released",
17320
+ uppercase: false
17321
+ });
17322
+ }
17323
+ const hasAuthorCell = !!_optionalChain([author, 'optionalAccess', _441 => _441.full_name]);
17324
+ const totalCells = valueCells.length + (hasAuthorCell ? 1 : 0);
17325
+ const gridColsClass = totalCells >= 4 ? "md:grid-cols-4" : totalCells === 3 ? "md:grid-cols-3" : totalCells === 2 ? "md:grid-cols-2" : "md:grid-cols-1";
17326
+ const dividerClass = "border-b md:border-b-0 md:border-r border-ods-border";
17327
+ const frameClass = _chunkUC43NICZcjs.cn.call(void 0,
17328
+ "group bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden",
17329
+ "flex flex-col p-6 gap-4",
17330
+ "transition-all duration-300 ease-out transform hover:translate-y-[-2px]",
17331
+ "hover:border-ods-accent hover:shadow-lg hover:shadow-ods-accent/[0.08]",
17332
+ "focus:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-2 focus-visible:ring-offset-ods-bg",
17333
+ "no-underline",
17334
+ className
17335
+ );
17336
+ const innerLayout = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17337
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
17338
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative rounded-lg overflow-hidden w-full aspect-[16/9] bg-ods-bg", children: [
17339
+ coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17340
+ _image2.default,
17341
+ {
17342
+ src: coverImage,
17343
+ alt: title,
17344
+ fill: true,
17345
+ sizes: "(max-width: 768px) 100vw, 256px",
17346
+ className: "object-cover",
17347
+ unoptimized: true
17348
+ }
17349
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Package, { className: "w-8 h-8" }) }),
17350
+ hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Play, { className: "w-10 h-10 text-white", fill: "white" }) })
17351
+ ] }) }),
17352
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
17353
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-3 mb-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "font-mono font-semibold text-lg text-ods-text-primary truncate", children: [
17354
+ "v",
17355
+ version
17356
+ ] }) }),
17357
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "font-['Azeret_Mono'] font-semibold text-xl md:text-2xl text-ods-text-primary leading-tight line-clamp-2 mb-3", children: title }),
17358
+ summary && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] text-sm md:text-base text-ods-text-secondary leading-relaxed line-clamp-4 flex-1", children: summary })
17359
+ ] })
17360
+ ] }),
17361
+ totalChangelog > 0 && changelogCounts && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "border-t border-ods-border pt-3 flex flex-wrap items-center gap-x-4 gap-y-1.5 font-['DM_Sans'] text-sm text-ods-text-secondary", children: [
17362
+ changelogCounts.features > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5", children: [
17363
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "w-3.5 h-3.5" }),
17364
+ changelogCounts.features,
17365
+ " ",
17366
+ changelogCounts.features === 1 ? "feature" : "features"
17367
+ ] }),
17368
+ changelogCounts.fixes > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5", children: [
17369
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wrench, { className: "w-3.5 h-3.5" }),
17370
+ changelogCounts.fixes,
17371
+ " ",
17372
+ changelogCounts.fixes === 1 ? "fix" : "fixes"
17373
+ ] }),
17374
+ changelogCounts.improvements > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5", children: [
17375
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TrendingUp, { className: "w-3.5 h-3.5" }),
17376
+ changelogCounts.improvements,
17377
+ " ",
17378
+ changelogCounts.improvements === 1 ? "improvement" : "improvements"
17379
+ ] }),
17380
+ changelogCounts.breaking > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "inline-flex items-center gap-1.5 text-[var(--ods-attention-yellow-warning)]", children: [
17381
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "w-3.5 h-3.5" }),
17382
+ changelogCounts.breaking,
17383
+ " breaking"
17384
+ ] })
17385
+ ] }),
17386
+ totalCells > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
17387
+ "div",
17388
+ {
17389
+ className: _chunkUC43NICZcjs.cn.call(void 0,
17390
+ "grid grid-cols-1",
17391
+ gridColsClass,
17392
+ "border border-ods-border rounded-md overflow-hidden w-full"
17393
+ ),
17394
+ children: [
17395
+ valueCells.map((cell, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17396
+ "div",
17397
+ {
17398
+ className: _chunkUC43NICZcjs.cn.call(void 0,
17399
+ "bg-ods-card p-4 flex flex-col gap-3",
17400
+ // Last value cell skips the trailing divider when no
17401
+ // author cell follows; otherwise every value cell gets it.
17402
+ (i < valueCells.length - 1 || hasAuthorCell) && dividerClass
17403
+ ),
17404
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
17405
+ cell.colorScheme ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17406
+ StatusBadge,
17407
+ {
17408
+ text: cell.value,
17409
+ variant: "card",
17410
+ colorScheme: cell.colorScheme,
17411
+ singleLine: true,
17412
+ className: "self-start"
17413
+ }
17414
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary", children: cell.uppercase ? cell.value.toLocaleUpperCase() : cell.value }),
17415
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: cell.label })
17416
+ ] })
17417
+ },
17418
+ `${cell.label}-${i}`
17419
+ )),
17420
+ hasAuthorCell && author && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
17421
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17422
+ SquareAvatar,
17423
+ {
17424
+ src: _nullishCoalesce(author.avatar_url, () => ( void 0)),
17425
+ alt: author.full_name,
17426
+ fallback: author.full_name.charAt(0).toUpperCase(),
17427
+ size: "md",
17428
+ variant: "round"
17429
+ }
17430
+ ),
17431
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
17432
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: author.full_name }),
17433
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: author.job_title || "Author" })
17434
+ ] })
17435
+ ] })
17436
+ ]
17437
+ }
17438
+ ),
17439
+ typeof viewCount === "number" && viewCount > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5 text-xs text-ods-text-secondary", children: [
17440
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Eye, { className: "w-3.5 h-3.5" }),
17441
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
17442
+ viewCount.toLocaleString(),
17443
+ " views"
17444
+ ] })
17445
+ ] })
17446
+ ] });
17447
+ if (anchorProps) {
17448
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...anchorProps, className: frameClass, "aria-label": `Open ${title}`, children: innerLayout });
17449
+ }
17450
+ if (onClick) {
17451
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveCard, { clickable: true, onClick, className: frameClass, children: innerLayout });
17452
+ }
17453
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17454
+ "div",
17455
+ {
17456
+ className: _chunkUC43NICZcjs.cn.call(void 0,
17457
+ frameClass.replace("hover:border-ods-accent", "").replace("hover:translate-y-[-2px]", "")
17458
+ ),
17459
+ children: innerLayout
17460
+ }
17461
+ );
17462
+ }
17280
17463
  if (size === "sm") {
17281
17464
  const handleKey = (e) => {
17282
17465
  if (!onClick) return;
@@ -17303,7 +17486,20 @@ function ProductReleaseCard({
17303
17486
  className
17304
17487
  );
17305
17488
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17306
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-14 w-14 aspect-square shrink-0 self-start items-center justify-center rounded-md bg-ods-bg text-ods-accent", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Package, { className: "h-5 w-5" }) }),
17489
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative flex h-14 w-14 aspect-square shrink-0 self-start items-center justify-center overflow-hidden rounded-md bg-ods-bg text-ods-accent", children: [
17490
+ coverImage ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17491
+ _image2.default,
17492
+ {
17493
+ src: coverImage,
17494
+ alt: title,
17495
+ fill: true,
17496
+ sizes: "56px",
17497
+ className: "object-contain",
17498
+ unoptimized: true
17499
+ }
17500
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Package, { className: "h-5 w-5" }),
17501
+ hasVideoCover && coverImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Play, { className: "h-4 w-4 text-white", fill: "white" }) })
17502
+ ] }),
17307
17503
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 flex-1 flex-col gap-0.5 min-h-14", children: [
17308
17504
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-2 min-w-0 h-5", children: [
17309
17505
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-sm font-semibold leading-5 text-ods-text-primary min-w-0", children: title }),
@@ -17400,6 +17596,52 @@ function ProductReleaseCard({
17400
17596
  _chunkUC43NICZcjs.init_cn.call(void 0, );
17401
17597
 
17402
17598
  function ProductReleaseCardSkeleton({ className, size = "default" }) {
17599
+ if (size === "catalog") {
17600
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
17601
+ "div",
17602
+ {
17603
+ className: _chunkUC43NICZcjs.cn.call(void 0,
17604
+ "bg-ods-system-greys-black border border-ods-border rounded-lg overflow-hidden",
17605
+ "flex flex-col p-6 gap-4",
17606
+ "animate-pulse",
17607
+ className
17608
+ ),
17609
+ children: [
17610
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col md:flex-row gap-4 md:gap-6", children: [
17611
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full md:w-[256px] aspect-[16/9] bg-ods-bg rounded-lg flex-shrink-0" }),
17612
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
17613
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-20 bg-ods-bg rounded mb-3" }),
17614
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-7 w-3/4 bg-ods-bg rounded mb-2" }),
17615
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-7 w-1/2 bg-ods-bg rounded mb-3" }),
17616
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-full bg-ods-bg/60 rounded mb-1" }),
17617
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-5/6 bg-ods-bg/60 rounded" })
17618
+ ] })
17619
+ ] }),
17620
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-t border-ods-border pt-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-2/3 bg-ods-bg/60 rounded" }) }),
17621
+ /* @__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: [
17622
+ [0, 1, 2].map((i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17623
+ "div",
17624
+ {
17625
+ className: "bg-ods-card p-4 flex flex-col gap-3 border-b md:border-b-0 md:border-r border-ods-border",
17626
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
17627
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 bg-ods-bg rounded" }),
17628
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-16 bg-ods-bg/60 rounded" })
17629
+ ] })
17630
+ },
17631
+ `cell-${i}`
17632
+ )),
17633
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card p-4 flex items-center gap-3", children: [
17634
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 rounded-full bg-ods-bg shrink-0" }),
17635
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
17636
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 bg-ods-bg rounded" }),
17637
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-1/2 bg-ods-bg/60 rounded" })
17638
+ ] })
17639
+ ] })
17640
+ ] })
17641
+ ]
17642
+ }
17643
+ );
17644
+ }
17403
17645
  if (size === "sm") {
17404
17646
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
17405
17647
  "span",
@@ -17517,6 +17759,7 @@ function ReleaseChangelogSection({
17517
17759
  hideTitle = false,
17518
17760
  collapsible = false,
17519
17761
  defaultCollapsed = true,
17762
+ icon,
17520
17763
  SimpleMarkdownRenderer: SimpleMarkdownRenderer2
17521
17764
  }) {
17522
17765
  const [collapsed, setCollapsed] = _react.useState.call(void 0, collapsible ? defaultCollapsed : false);
@@ -17531,6 +17774,7 @@ function ReleaseChangelogSection({
17531
17774
  className: "flex items-center justify-between w-full cursor-pointer",
17532
17775
  children: [
17533
17776
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: `flex items-center gap-2 text-2xl font-bold ${isBreaking ? "text-red-500" : "text-ods-text-primary"}`, children: [
17777
+ icon,
17534
17778
  title,
17535
17779
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Badge, { variant: "secondary", className: "ml-2", children: entries.length })
17536
17780
  ] }),
@@ -17543,12 +17787,26 @@ function ReleaseChangelogSection({
17543
17787
  ]
17544
17788
  }
17545
17789
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h2", { className: `flex items-center gap-2 text-2xl font-bold ${isBreaking ? "text-red-500" : "text-ods-text-primary"}`, children: [
17790
+ icon,
17546
17791
  title,
17547
17792
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Badge, { variant: "secondary", className: "ml-2", children: entries.length })
17548
17793
  ] })),
17549
17794
  showEntries && /* @__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: [
17550
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-semibold text-[20px] leading-[24px] text-ods-text-primary mb-2", children: entry.title }),
17551
- entry.description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "[&_p]:!font-['DM_Sans'] [&_p]:!font-medium [&_p]:!text-[18px] [&_p]:!leading-[24px] [&_p]:!text-ods-text-primary [&_p]:!my-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SimpleMarkdownRenderer2, { content: entry.description }) })
17795
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 text-ods-text-primary mb-2", children: entry.title }),
17796
+ entry.description && /* Entry description body text matches the main release
17797
+ summary (release-detail-page.tsx:321) at the SAME 14/18px
17798
+ responsive `text-h4` scale. The `SimpleMarkdownRenderer`
17799
+ forces its own `<p>` typography
17800
+ (`text-[16px] md:text-[18px] lg:text-[20px]`) which
17801
+ overrides the wrapper's `text-h4` on `lg+` viewports and
17802
+ inflates the changelog body to 20px — larger than the
17803
+ main summary AND larger than the entry title.
17804
+ The `[&_p]:!` overrides pin every descendant `<p>` back
17805
+ to the h4 responsive tokens (`var(--font-size-h4-body)`
17806
+ + `var(--font-line-space-h4-body)`) — same variables
17807
+ `text-h4` itself uses, so the responsive breakpoints
17808
+ stay aligned with the rest of the page. */
17809
+ /* @__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 }) })
17552
17810
  ] }, index)) })
17553
17811
  ] });
17554
17812
  }
@@ -17704,7 +17962,7 @@ var SecondaryAction = ({ action }) => {
17704
17962
  e.preventDefault();
17705
17963
  return;
17706
17964
  }
17707
- _optionalChain([action, 'access', _437 => _437.onClick, 'optionalCall', _438 => _438()]);
17965
+ _optionalChain([action, 'access', _442 => _442.onClick, 'optionalCall', _443 => _443()]);
17708
17966
  },
17709
17967
  [action]
17710
17968
  );
@@ -17745,13 +18003,13 @@ var MenuItem = ({ item, onItemClick }) => {
17745
18003
  const activate = _react.useCallback.call(void 0, () => {
17746
18004
  if (item.disabled) return;
17747
18005
  if (item.type === "checkbox") {
17748
- _optionalChain([item, 'access', _439 => _439.onClick, 'optionalCall', _440 => _440()]);
17749
- _optionalChain([onItemClick, 'optionalCall', _441 => _441(item)]);
18006
+ _optionalChain([item, 'access', _444 => _444.onClick, 'optionalCall', _445 => _445()]);
18007
+ _optionalChain([onItemClick, 'optionalCall', _446 => _446(item)]);
17750
18008
  return;
17751
18009
  }
17752
18010
  if (item.type === "submenu") return;
17753
- _optionalChain([item, 'access', _442 => _442.onClick, 'optionalCall', _443 => _443()]);
17754
- _optionalChain([onItemClick, 'optionalCall', _444 => _444(item)]);
18011
+ _optionalChain([item, 'access', _447 => _447.onClick, 'optionalCall', _448 => _448()]);
18012
+ _optionalChain([onItemClick, 'optionalCall', _449 => _449(item)]);
17755
18013
  }, [item, onItemClick]);
17756
18014
  const handleClick = _react.useCallback.call(void 0,
17757
18015
  (e) => {
@@ -17777,8 +18035,8 @@ var MenuItem = ({ item, onItemClick }) => {
17777
18035
  e.stopPropagation();
17778
18036
  return;
17779
18037
  }
17780
- _optionalChain([item, 'access', _445 => _445.onClick, 'optionalCall', _446 => _446()]);
17781
- _optionalChain([onItemClick, 'optionalCall', _447 => _447(item)]);
18038
+ _optionalChain([item, 'access', _450 => _450.onClick, 'optionalCall', _451 => _451()]);
18039
+ _optionalChain([onItemClick, 'optionalCall', _452 => _452(item)]);
17782
18040
  },
17783
18041
  [item, onItemClick]
17784
18042
  );
@@ -17933,7 +18191,7 @@ var ActionsMenuDropdown = ({
17933
18191
  const [open, setOpen] = _react.useState.call(void 0, false);
17934
18192
  const handleItemClick = _react.useCallback.call(void 0,
17935
18193
  (item) => {
17936
- _optionalChain([onItemClick, 'optionalCall', _448 => _448(item)]);
18194
+ _optionalChain([onItemClick, 'optionalCall', _453 => _453(item)]);
17937
18195
  if (item.type !== "checkbox" && item.type !== "submenu") {
17938
18196
  setOpen(false);
17939
18197
  }
@@ -18104,7 +18362,7 @@ function IconButtonsVariant({
18104
18362
  }) {
18105
18363
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
18106
18364
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
18107
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _449 => _449[0], 'access', _450 => _450.submenu, 'optionalAccess', _451 => _451.length]);
18365
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _454 => _454[0], 'access', _455 => _455.submenu, 'optionalAccess', _456 => _456.length]);
18108
18366
  const singleAction = isSingleAction ? actions[0] : null;
18109
18367
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
18110
18368
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -18534,14 +18792,14 @@ function ReleaseDetailPage({
18534
18792
  releaseVersion
18535
18793
  ] })
18536
18794
  ] }) }),
18537
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _452 => _452.map, 'call', _453 => _453((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18795
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _457 => _457.map, 'call', _458 => _458((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18538
18796
  StatusBadge,
18539
18797
  {
18540
- text: (tag.name || _optionalChain([tag, 'access', _454 => _454.blog_tags, 'optionalAccess', _455 => _455.name]) || "").toUpperCase(),
18798
+ text: (tag.name || _optionalChain([tag, 'access', _459 => _459.blog_tags, 'optionalAccess', _460 => _460.name]) || "").toUpperCase(),
18541
18799
  variant: "card",
18542
18800
  className: "bg-ods-card border border-ods-border"
18543
18801
  },
18544
- tag.id || _optionalChain([tag, 'access', _456 => _456.blog_tags, 'optionalAccess', _457 => _457.id])
18802
+ tag.id || _optionalChain([tag, 'access', _461 => _461.blog_tags, 'optionalAccess', _462 => _462.id])
18545
18803
  ))]) }),
18546
18804
  /* @__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: [
18547
18805
  /* @__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: [
@@ -18560,15 +18818,15 @@ function ReleaseDetailPage({
18560
18818
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18561
18819
  SquareAvatar,
18562
18820
  {
18563
- src: _optionalChain([author, 'optionalAccess', _458 => _458.avatar_url]) || "",
18564
- alt: _optionalChain([author, 'optionalAccess', _459 => _459.full_name]) || "Author",
18565
- fallback: getInitials4(_optionalChain([author, 'optionalAccess', _460 => _460.full_name]) || "Unknown"),
18821
+ src: _optionalChain([author, 'optionalAccess', _463 => _463.avatar_url]) || "",
18822
+ alt: _optionalChain([author, 'optionalAccess', _464 => _464.full_name]) || "Author",
18823
+ fallback: getInitials4(_optionalChain([author, 'optionalAccess', _465 => _465.full_name]) || "Unknown"),
18566
18824
  size: "md",
18567
18825
  variant: "round"
18568
18826
  }
18569
18827
  ),
18570
18828
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
18571
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _461 => _461.full_name]) || "Unknown Author" }),
18829
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _466 => _466.full_name]) || "Unknown Author" }),
18572
18830
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
18573
18831
  ] })
18574
18832
  ] })
@@ -18599,8 +18857,8 @@ function ReleaseDetailPage({
18599
18857
  videoBites,
18600
18858
  bitesTitle: "Video Clips",
18601
18859
  filterPublishedBites: true,
18602
- srtContent: _optionalChain([release, 'optionalAccess', _462 => _462.srt_content]),
18603
- captionsUrl: _optionalChain([release, 'optionalAccess', _463 => _463.captionsUrl])
18860
+ srtContent: _optionalChain([release, 'optionalAccess', _467 => _467.srt_content]),
18861
+ captionsUrl: _optionalChain([release, 'optionalAccess', _468 => _468.captionsUrl])
18604
18862
  }
18605
18863
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
18606
18864
  youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -18616,8 +18874,8 @@ function ReleaseDetailPage({
18616
18874
  Video2,
18617
18875
  {
18618
18876
  url: mainVideoUrl,
18619
- srtContent: _optionalChain([release, 'optionalAccess', _464 => _464.srt_content]),
18620
- captionsUrl: _optionalChain([release, 'optionalAccess', _465 => _465.captionsUrl]),
18877
+ srtContent: _optionalChain([release, 'optionalAccess', _469 => _469.srt_content]),
18878
+ captionsUrl: _optionalChain([release, 'optionalAccess', _470 => _470.captionsUrl]),
18621
18879
  layout: "centered"
18622
18880
  }
18623
18881
  ),
@@ -18645,6 +18903,7 @@ function ReleaseDetailPage({
18645
18903
  entries: breakingChanges || [],
18646
18904
  isBreaking: true,
18647
18905
  hideTitle: true,
18906
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.AlertTriangle, { className: "h-6 w-6" }),
18648
18907
  SimpleMarkdownRenderer: MarkdownRenderer
18649
18908
  }
18650
18909
  ),
@@ -18653,6 +18912,7 @@ function ReleaseDetailPage({
18653
18912
  {
18654
18913
  title: "Features Added",
18655
18914
  entries: featuresAdded || [],
18915
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Sparkles, { className: "h-6 w-6" }),
18656
18916
  SimpleMarkdownRenderer: MarkdownRenderer
18657
18917
  }
18658
18918
  ),
@@ -18661,6 +18921,7 @@ function ReleaseDetailPage({
18661
18921
  {
18662
18922
  title: "Bugs Fixed",
18663
18923
  entries: bugFixed || [],
18924
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Wrench, { className: "h-6 w-6" }),
18664
18925
  SimpleMarkdownRenderer: MarkdownRenderer
18665
18926
  }
18666
18927
  ),
@@ -18669,6 +18930,7 @@ function ReleaseDetailPage({
18669
18930
  {
18670
18931
  title: "Improvements",
18671
18932
  entries: improvements || [],
18933
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TrendingUp, { className: "h-6 w-6" }),
18672
18934
  SimpleMarkdownRenderer: MarkdownRenderer
18673
18935
  }
18674
18936
  ),
@@ -18707,7 +18969,7 @@ function ReleaseDetailPage({
18707
18969
  }
18708
18970
  )
18709
18971
  ] }),
18710
- (_optionalChain([githubReleases, 'optionalAccess', _466 => _466.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _467 => _467.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18972
+ (_optionalChain([githubReleases, 'optionalAccess', _471 => _471.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _472 => _472.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
18711
18973
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
18712
18974
  /* @__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: [
18713
18975
  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: [
@@ -18736,7 +18998,7 @@ function ReleaseDetailPage({
18736
18998
  {
18737
18999
  href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
18738
19000
  className: "text-h4 text-[#ffc008] hover:underline",
18739
- children: _optionalChain([path, 'access', _468 => _468.replace, 'call', _469 => _469(/^\//, ""), 'access', _470 => _470.split, 'call', _471 => _471("/"), 'access', _472 => _472.pop, 'call', _473 => _473(), 'optionalAccess', _474 => _474.replace, 'call', _475 => _475(/-/g, " ")]) || "View Article"
19001
+ children: _optionalChain([path, 'access', _473 => _473.replace, 'call', _474 => _474(/^\//, ""), 'access', _475 => _475.split, 'call', _476 => _476("/"), 'access', _477 => _477.pop, 'call', _478 => _478(), 'optionalAccess', _479 => _479.replace, 'call', _480 => _480(/-/g, " ")]) || "View Article"
18740
19002
  }
18741
19003
  ),
18742
19004
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
@@ -19382,7 +19644,7 @@ function TagsManager({
19382
19644
  const name = search.trim();
19383
19645
  if (!name) return;
19384
19646
  const result = await onCreateTag(name);
19385
- if (_optionalChain([result, 'optionalAccess', _476 => _476.id])) {
19647
+ if (_optionalChain([result, 'optionalAccess', _481 => _481.id])) {
19386
19648
  onChange([...selectedIds, result.id]);
19387
19649
  setSearch("");
19388
19650
  }
@@ -19390,7 +19652,7 @@ function TagsManager({
19390
19652
  const startEdit = React55.useCallback((id, name) => {
19391
19653
  setEditingId(id);
19392
19654
  setEditingName(name);
19393
- setTimeout(() => _optionalChain([editInputRef, 'access', _477 => _477.current, 'optionalAccess', _478 => _478.focus, 'call', _479 => _479()]), 0);
19655
+ setTimeout(() => _optionalChain([editInputRef, 'access', _482 => _482.current, 'optionalAccess', _483 => _483.focus, 'call', _484 => _484()]), 0);
19394
19656
  }, []);
19395
19657
  const confirmEdit = React55.useCallback(async () => {
19396
19658
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -19417,7 +19679,7 @@ function TagsManager({
19417
19679
  e.stopPropagation();
19418
19680
  onChange([]);
19419
19681
  setSearch("");
19420
- _optionalChain([inputRef, 'access', _480 => _480.current, 'optionalAccess', _481 => _481.focus, 'call', _482 => _482()]);
19682
+ _optionalChain([inputRef, 'access', _485 => _485.current, 'optionalAccess', _486 => _486.focus, 'call', _487 => _487()]);
19421
19683
  },
19422
19684
  [onChange]
19423
19685
  );
@@ -19516,10 +19778,10 @@ function TagsManager({
19516
19778
  align: "start",
19517
19779
  onOpenAutoFocus: (e) => {
19518
19780
  e.preventDefault();
19519
- _optionalChain([inputRef, 'access', _483 => _483.current, 'optionalAccess', _484 => _484.focus, 'call', _485 => _485()]);
19781
+ _optionalChain([inputRef, 'access', _488 => _488.current, 'optionalAccess', _489 => _489.focus, 'call', _490 => _490()]);
19520
19782
  },
19521
19783
  onInteractOutside: (e) => {
19522
- if (_optionalChain([containerRef, 'access', _486 => _486.current, 'optionalAccess', _487 => _487.contains, 'call', _488 => _488(e.target)])) {
19784
+ if (_optionalChain([containerRef, 'access', _491 => _491.current, 'optionalAccess', _492 => _492.contains, 'call', _493 => _493(e.target)])) {
19523
19785
  e.preventDefault();
19524
19786
  }
19525
19787
  },
@@ -20623,19 +20885,19 @@ function TabNavigation({
20623
20885
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
20624
20886
  const getInitialTab = () => {
20625
20887
  if (isUrlSyncEnabled) {
20626
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _489 => _489.get, 'call', _490 => _490(paramName)]) || "";
20888
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _494 => _494.get, 'call', _495 => _495(paramName)]) || "";
20627
20889
  if (validTabIds.has(fromUrl)) {
20628
20890
  return fromUrl;
20629
20891
  }
20630
20892
  }
20631
- return defaultTab || _optionalChain([tabs, 'access', _491 => _491[0], 'optionalAccess', _492 => _492.id]) || "";
20893
+ return defaultTab || _optionalChain([tabs, 'access', _496 => _496[0], 'optionalAccess', _497 => _497.id]) || "";
20632
20894
  };
20633
20895
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
20634
20896
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
20635
20897
  _react.useEffect.call(void 0, () => {
20636
20898
  if (!isUrlSyncEnabled) return;
20637
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _493 => _493.get, 'call', _494 => _494(paramName)]) || "";
20638
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _495 => _495[0], 'optionalAccess', _496 => _496.id]) || "";
20899
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _498 => _498.get, 'call', _499 => _499(paramName)]) || "";
20900
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _500 => _500[0], 'optionalAccess', _501 => _501.id]) || "";
20639
20901
  if (nextTab !== internalActiveTab) {
20640
20902
  setInternalActiveTab(nextTab);
20641
20903
  }
@@ -20643,13 +20905,13 @@ function TabNavigation({
20643
20905
  const handleTabChange = (tabId) => {
20644
20906
  if (isUrlSyncEnabled) {
20645
20907
  setInternalActiveTab(tabId);
20646
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _497 => _497.toString, 'call', _498 => _498()]));
20908
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _502 => _502.toString, 'call', _503 => _503()]));
20647
20909
  params.set(paramName, tabId);
20648
20910
  const method = replaceState ? "replace" : "push";
20649
20911
  router[method](`${pathname}?${params.toString()}`);
20650
- _optionalChain([controlledOnTabChange, 'optionalCall', _499 => _499(tabId)]);
20912
+ _optionalChain([controlledOnTabChange, 'optionalCall', _504 => _504(tabId)]);
20651
20913
  } else {
20652
- _optionalChain([controlledOnTabChange, 'optionalCall', _500 => _500(tabId)]);
20914
+ _optionalChain([controlledOnTabChange, 'optionalCall', _505 => _505(tabId)]);
20653
20915
  }
20654
20916
  };
20655
20917
  const scrollRef = _react.useRef.call(void 0, null);
@@ -20737,7 +20999,7 @@ function TabNavigation({
20737
20999
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
20738
21000
  var getTabComponent = (tabs, tabId) => {
20739
21001
  const tab = getTabById(tabs, tabId);
20740
- return _optionalChain([tab, 'optionalAccess', _501 => _501.component]) || null;
21002
+ return _optionalChain([tab, 'optionalAccess', _506 => _506.component]) || null;
20741
21003
  };
20742
21004
 
20743
21005
  // src/components/ui/alert.tsx
@@ -21074,16 +21336,16 @@ function FilterModal({
21074
21336
  };
21075
21337
  const handleReset = () => {
21076
21338
  onFilterChange({});
21077
- _optionalChain([onTagsChange, 'optionalCall', _502 => _502([])]);
21339
+ _optionalChain([onTagsChange, 'optionalCall', _507 => _507([])]);
21078
21340
  onClose();
21079
21341
  };
21080
21342
  const handleApply = () => {
21081
21343
  onFilterChange(selectedFilters);
21082
- _optionalChain([onTagsChange, 'optionalCall', _503 => _503(pendingTags)]);
21344
+ _optionalChain([onTagsChange, 'optionalCall', _508 => _508(pendingTags)]);
21083
21345
  onClose();
21084
21346
  };
21085
21347
  const getColumnDirection = (columnKey) => {
21086
- return _optionalChain([sortConfig, 'optionalAccess', _504 => _504.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
21348
+ return _optionalChain([sortConfig, 'optionalAccess', _509 => _509.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
21087
21349
  };
21088
21350
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
21089
21351
  const hasFilterGroups = filterGroups.length > 0;
@@ -21132,7 +21394,7 @@ function FilterModal({
21132
21394
  {
21133
21395
  column,
21134
21396
  currentDirection: getColumnDirection(column.key),
21135
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _505 => _505(column.key, direction)]),
21397
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _510 => _510(column.key, direction)]),
21136
21398
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
21137
21399
  },
21138
21400
  column.key
@@ -21298,9 +21560,9 @@ function TitleBlock({
21298
21560
  const [imageFailed, setImageFailed] = React37.default.useState(false);
21299
21561
  React37.default.useEffect(() => {
21300
21562
  setImageFailed(false);
21301
- }, [_optionalChain([image, 'optionalAccess', _506 => _506.src])]);
21563
+ }, [_optionalChain([image, 'optionalAccess', _511 => _511.src])]);
21302
21564
  const showImageFallback = !!image && (imageFailed || !image.src);
21303
- const initials = getInitials3(_optionalChain([image, 'optionalAccess', _507 => _507.alt]) || title);
21565
+ const initials = getInitials3(_optionalChain([image, 'optionalAccess', _512 => _512.alt]) || title);
21304
21566
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21305
21567
  "div",
21306
21568
  {
@@ -22096,26 +22358,26 @@ function DeviceCard({
22096
22358
  ] }),
22097
22359
  device.organization && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary truncate", children: device.organization })
22098
22360
  ] }),
22099
- _optionalChain([actions, 'access', _508 => _508.moreButton, 'optionalAccess', _509 => _509.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22361
+ _optionalChain([actions, 'access', _513 => _513.moreButton, 'optionalAccess', _514 => _514.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22100
22362
  "div",
22101
22363
  {
22102
22364
  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",
22103
22365
  onClick: (e) => {
22104
22366
  e.stopPropagation();
22105
- _optionalChain([actions, 'access', _510 => _510.moreButton, 'optionalAccess', _511 => _511.onClick, 'optionalCall', _512 => _512()]);
22367
+ _optionalChain([actions, 'access', _515 => _515.moreButton, 'optionalAccess', _516 => _516.onClick, 'optionalCall', _517 => _517()]);
22106
22368
  },
22107
22369
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJTFBYVGcjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
22108
22370
  }
22109
22371
  ),
22110
- _optionalChain([actions, 'access', _513 => _513.detailsButton, 'optionalAccess', _514 => _514.visible]) !== false && _optionalChain([actions, 'access', _515 => _515.detailsButton, 'optionalAccess', _516 => _516.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22111
- _optionalChain([actions, 'access', _517 => _517.customActions, 'optionalAccess', _518 => _518.map, 'call', _519 => _519(
22372
+ _optionalChain([actions, 'access', _518 => _518.detailsButton, 'optionalAccess', _519 => _519.visible]) !== false && _optionalChain([actions, 'access', _520 => _520.detailsButton, 'optionalAccess', _521 => _521.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
22373
+ _optionalChain([actions, 'access', _522 => _522.customActions, 'optionalAccess', _523 => _523.map, 'call', _524 => _524(
22112
22374
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22113
22375
  "div",
22114
22376
  {
22115
22377
  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",
22116
22378
  onClick: (e) => {
22117
22379
  e.stopPropagation();
22118
- _optionalChain([action, 'access', _520 => _520.onClick, 'optionalCall', _521 => _521()]);
22380
+ _optionalChain([action, 'access', _525 => _525.onClick, 'optionalCall', _526 => _526()]);
22119
22381
  },
22120
22382
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
22121
22383
  },
@@ -22474,7 +22736,7 @@ function MoreActionsMenu({
22474
22736
  ] });
22475
22737
  const handleActivate = (e) => {
22476
22738
  e.stopPropagation();
22477
- if (!item.disabled) _optionalChain([item, 'access', _522 => _522.onClick, 'optionalCall', _523 => _523()]);
22739
+ if (!item.disabled) _optionalChain([item, 'access', _527 => _527.onClick, 'optionalCall', _528 => _528()]);
22478
22740
  };
22479
22741
  if (item.href) {
22480
22742
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -22624,7 +22886,7 @@ function OrganizationIcon({
22624
22886
  backgroundStyle = "dark"
22625
22887
  }) {
22626
22888
  const { width, height } = imageSizeMap2[size];
22627
- const initials = _optionalChain([organizationName, 'optionalAccess', _524 => _524.substring, 'call', _525 => _525(0, 2)]) || "??";
22889
+ const initials = _optionalChain([organizationName, 'optionalAccess', _529 => _529.substring, 'call', _530 => _530(0, 2)]) || "??";
22628
22890
  const containerClasses = _chunkUC43NICZcjs.cn.call(void 0,
22629
22891
  sizeClasses3[size],
22630
22892
  "rounded-lg flex items-center justify-center flex-shrink-0 relative",
@@ -22675,7 +22937,7 @@ function OrganizationCard({
22675
22937
  const handleActionClick = (e) => {
22676
22938
  e.preventDefault();
22677
22939
  e.stopPropagation();
22678
- _optionalChain([actionButton, 'optionalAccess', _526 => _526.onClick, 'call', _527 => _527(organization, e)]);
22940
+ _optionalChain([actionButton, 'optionalAccess', _531 => _531.onClick, 'call', _532 => _532(organization, e)]);
22679
22941
  };
22680
22942
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22681
22943
  "div",
@@ -22832,7 +23094,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
22832
23094
  onKeyDown: (e) => {
22833
23095
  if (e.key === "Enter" || e.key === " ") {
22834
23096
  e.preventDefault();
22835
- _optionalChain([onClick, 'optionalCall', _528 => _528()]);
23097
+ _optionalChain([onClick, 'optionalCall', _533 => _533()]);
22836
23098
  }
22837
23099
  },
22838
23100
  children: [
@@ -22933,7 +23195,7 @@ var LogsList = React79.forwardRef(({
22933
23195
  log,
22934
23196
  isLast: index === logs.length - 1,
22935
23197
  showConnector,
22936
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _529 => _529(log)])
23198
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _534 => _534(log)])
22937
23199
  },
22938
23200
  log.id
22939
23201
  ))
@@ -23522,7 +23784,7 @@ function CursorPaginationSimple({
23522
23784
  {
23523
23785
  variant: "transparent",
23524
23786
  size: "icon",
23525
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _530 => _530("")]),
23787
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _535 => _535("")]),
23526
23788
  disabled: !hasPreviousPage || loading,
23527
23789
  className: "h-8 w-8",
23528
23790
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -23534,7 +23796,7 @@ function CursorPaginationSimple({
23534
23796
  {
23535
23797
  variant: "transparent",
23536
23798
  size: "icon",
23537
- onClick: () => _optionalChain([onNext, 'optionalCall', _531 => _531("")]),
23799
+ onClick: () => _optionalChain([onNext, 'optionalCall', _536 => _536("")]),
23538
23800
  disabled: !hasNextPage || loading,
23539
23801
  className: "h-8 w-8",
23540
23802
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -23594,7 +23856,7 @@ function TableColumnFilterDropdown({
23594
23856
  placement = "bottom-start",
23595
23857
  dropdownClassName = "min-w-[240px]"
23596
23858
  }) {
23597
- const activeCount = _optionalChain([filters, 'optionalAccess', _532 => _532[columnKey], 'optionalAccess', _533 => _533.length]) || 0;
23859
+ const activeCount = _optionalChain([filters, 'optionalAccess', _537 => _537[columnKey], 'optionalAccess', _538 => _538.length]) || 0;
23598
23860
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23599
23861
  FiltersDropdown,
23600
23862
  {
@@ -23637,7 +23899,7 @@ function TableColumnFilterDropdown({
23637
23899
  delete newFilters[columnKey];
23638
23900
  onFilterChange(newFilters);
23639
23901
  },
23640
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _534 => _534[columnKey]]) || [] },
23902
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _539 => _539[columnKey]]) || [] },
23641
23903
  placement,
23642
23904
  dropdownClassName
23643
23905
  }
@@ -23934,7 +24196,7 @@ function TableRow({
23934
24196
  const keys = column.key.split(".");
23935
24197
  let value = item;
23936
24198
  for (const key of keys) {
23937
- value = _optionalChain([value, 'optionalAccess', _535 => _535[key]]);
24199
+ value = _optionalChain([value, 'optionalAccess', _540 => _540[key]]);
23938
24200
  }
23939
24201
  if (value === null || value === void 0) {
23940
24202
  return "-";
@@ -24004,7 +24266,7 @@ function TableRow({
24004
24266
  // src/components/ui/table/table.tsx
24005
24267
 
24006
24268
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
24007
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _536 => _536.length])) || Boolean(renderRowActions);
24269
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _541 => _541.length])) || Boolean(renderRowActions);
24008
24270
  const result = [...columns];
24009
24271
  if (hasActions) {
24010
24272
  const actionsColumn = {
@@ -24098,7 +24360,7 @@ function Table({
24098
24360
  return rowKey(item);
24099
24361
  }
24100
24362
  const key = item[rowKey];
24101
- return _optionalChain([key, 'optionalAccess', _537 => _537.toString, 'call', _538 => _538()]) || index.toString();
24363
+ return _optionalChain([key, 'optionalAccess', _542 => _542.toString, 'call', _543 => _543()]) || index.toString();
24102
24364
  };
24103
24365
  const getRowClassName = (item, index) => {
24104
24366
  if (typeof rowClassName === "function") {
@@ -24132,23 +24394,23 @@ function Table({
24132
24394
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
24133
24395
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
24134
24396
  const sentinelRef = _react.useRef.call(void 0, null);
24135
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _539 => _539.onLoadMore]));
24136
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _540 => _540.onLoadMore]);
24397
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _544 => _544.onLoadMore]));
24398
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _545 => _545.onLoadMore]);
24137
24399
  _react.useEffect.call(void 0, () => {
24138
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _541 => _541.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
24400
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _546 => _546.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
24139
24401
  const sentinel = sentinelRef.current;
24140
24402
  if (!sentinel) return;
24141
24403
  const observer = new IntersectionObserver(
24142
24404
  (entries) => {
24143
- if (_optionalChain([entries, 'access', _542 => _542[0], 'optionalAccess', _543 => _543.isIntersecting])) {
24144
- _optionalChain([onLoadMoreRef, 'access', _544 => _544.current, 'optionalCall', _545 => _545()]);
24405
+ if (_optionalChain([entries, 'access', _547 => _547[0], 'optionalAccess', _548 => _548.isIntersecting])) {
24406
+ _optionalChain([onLoadMoreRef, 'access', _549 => _549.current, 'optionalCall', _550 => _550()]);
24145
24407
  }
24146
24408
  },
24147
24409
  { rootMargin: "200px" }
24148
24410
  );
24149
24411
  observer.observe(sentinel);
24150
24412
  return () => observer.disconnect();
24151
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _546 => _546.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _547 => _547.isFetchingNextPage])]);
24413
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _551 => _551.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _552 => _552.isFetchingNextPage])]);
24152
24414
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
24153
24415
  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: [
24154
24416
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -24219,7 +24481,7 @@ function Table({
24219
24481
  },
24220
24482
  getRowKey(item, index)
24221
24483
  )),
24222
- _optionalChain([infiniteScroll, 'optionalAccess', _548 => _548.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24484
+ _optionalChain([infiniteScroll, 'optionalAccess', _553 => _553.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24223
24485
  TableCardSkeleton,
24224
24486
  {
24225
24487
  columns,
@@ -24228,7 +24490,7 @@ function Table({
24228
24490
  hasChevron: Boolean(rowHref)
24229
24491
  }
24230
24492
  ),
24231
- _optionalChain([infiniteScroll, 'optionalAccess', _549 => _549.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
24493
+ _optionalChain([infiniteScroll, 'optionalAccess', _554 => _554.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
24232
24494
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24233
24495
  "div",
24234
24496
  {
@@ -24586,7 +24848,7 @@ function QueryReportTable({
24586
24848
  );
24587
24849
  const handleExport = () => {
24588
24850
  exportToCSV(data, columns, exportFilename);
24589
- _optionalChain([onExport, 'optionalCall', _550 => _550()]);
24851
+ _optionalChain([onExport, 'optionalCall', _555 => _555()]);
24590
24852
  };
24591
24853
  const tableMinWidth = columns.length * (columnWidth + 16);
24592
24854
  const {
@@ -24759,7 +25021,7 @@ function DataTableColumnFilter({
24759
25021
  align = "left"
24760
25022
  }) {
24761
25023
  const currentValue = column.getFilterValue();
24762
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _551 => _551.length]), () => ( 0));
25024
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _556 => _556.length]), () => ( 0));
24763
25025
  const sections = _react.useMemo.call(void 0,
24764
25026
  () => [
24765
25027
  {
@@ -24839,7 +25101,7 @@ function DataTableHeader({
24839
25101
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
24840
25102
  if (header.isPlaceholder) return false;
24841
25103
  if (isLgUp) return true;
24842
- return Boolean(_optionalChain([header, 'access', _552 => _552.column, 'access', _553 => _553.columnDef, 'access', _554 => _554.meta, 'optionalAccess', _555 => _555.filter]));
25104
+ return Boolean(_optionalChain([header, 'access', _557 => _557.column, 'access', _558 => _558.columnDef, 'access', _559 => _559.meta, 'optionalAccess', _560 => _560.filter]));
24843
25105
  });
24844
25106
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24845
25107
  "div",
@@ -24869,20 +25131,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24869
25131
  if (header.isPlaceholder) return null;
24870
25132
  const column = header.column;
24871
25133
  const meta = column.columnDef.meta;
24872
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _556 => _556.filter]));
24873
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _557 => _557.align]), () => ( "left"));
24874
- const canSort = _optionalChain([meta, 'optionalAccess', _558 => _558.sortable]) === true;
24875
- const sortDir = _optionalChain([sort, 'optionalAccess', _559 => _559.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
25134
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _561 => _561.filter]));
25135
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _562 => _562.align]), () => ( "left"));
25136
+ const canSort = _optionalChain([meta, 'optionalAccess', _563 => _563.sortable]) === true;
25137
+ const sortDir = _optionalChain([sort, 'optionalAccess', _564 => _564.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24876
25138
  if (!isLgUp && !hasFilter) return null;
24877
25139
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24878
25140
  "div",
24879
25141
  {
24880
25142
  className: _chunkUC43NICZcjs.cn.call(void 0,
24881
25143
  "flex items-stretch",
24882
- isLgUp && (_optionalChain([meta, 'optionalAccess', _560 => _560.width]) || "flex-1 min-w-0"),
24883
- _optionalChain([meta, 'optionalAccess', _561 => _561.headerClassName]),
25144
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _565 => _565.width]) || "flex-1 min-w-0"),
25145
+ _optionalChain([meta, 'optionalAccess', _566 => _566.headerClassName]),
24884
25146
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
24885
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _562 => _562.hideAt]))
25147
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _567 => _567.hideAt]))
24886
25148
  ),
24887
25149
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24888
25150
  DataTableColumnFilter,
@@ -24901,7 +25163,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24901
25163
  isLgUp && alignJustify(align),
24902
25164
  canSort && "group cursor-pointer"
24903
25165
  ),
24904
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _563 => _563(column.id)]) : void 0,
25166
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _568 => _568(column.id)]) : void 0,
24905
25167
  children: [
24906
25168
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
24907
25169
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -24985,7 +25247,7 @@ function DataTableSkeleton({
24985
25247
  }) {
24986
25248
  const table = useDataTableContext();
24987
25249
  const columns = table.getVisibleFlatColumns();
24988
- const firstColumnId = _optionalChain([columns, 'access', _564 => _564[0], 'optionalAccess', _565 => _565.id]);
25250
+ const firstColumnId = _optionalChain([columns, 'access', _569 => _569[0], 'optionalAccess', _570 => _570.id]);
24989
25251
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24990
25252
  "div",
24991
25253
  {
@@ -25009,7 +25271,7 @@ function DataTableSkeleton({
25009
25271
  {
25010
25272
  className: _chunkUC43NICZcjs.cn.call(void 0,
25011
25273
  "flex flex-col justify-center shrink-0",
25012
- _optionalChain([meta, 'optionalAccess', _566 => _566.width]) || "flex-1"
25274
+ _optionalChain([meta, 'optionalAccess', _571 => _571.width]) || "flex-1"
25013
25275
  ),
25014
25276
  children: [
25015
25277
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -25055,7 +25317,7 @@ function DataTableRowImpl({
25055
25317
  (e) => {
25056
25318
  const target = e.target;
25057
25319
  if (target.closest("[data-no-row-click]")) return;
25058
- _optionalChain([onClick, 'optionalCall', _567 => _567(row.original)]);
25320
+ _optionalChain([onClick, 'optionalCall', _572 => _572(row.original)]);
25059
25321
  },
25060
25322
  [onClick, row.original]
25061
25323
  );
@@ -25093,10 +25355,10 @@ function DataTableRowImpl({
25093
25355
  {
25094
25356
  className: _chunkUC43NICZcjs.cn.call(void 0,
25095
25357
  "flex flex-col overflow-hidden",
25096
- alignJustify(_optionalChain([meta, 'optionalAccess', _568 => _568.align])),
25097
- _optionalChain([meta, 'optionalAccess', _569 => _569.width]) || "flex-1 min-w-0",
25098
- _optionalChain([meta, 'optionalAccess', _570 => _570.cellClassName]),
25099
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _571 => _571.hideAt]))
25358
+ alignJustify(_optionalChain([meta, 'optionalAccess', _573 => _573.align])),
25359
+ _optionalChain([meta, 'optionalAccess', _574 => _574.width]) || "flex-1 min-w-0",
25360
+ _optionalChain([meta, 'optionalAccess', _575 => _575.cellClassName]),
25361
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _576 => _576.hideAt]))
25100
25362
  ),
25101
25363
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
25102
25364
  },
@@ -25142,7 +25404,7 @@ function DataTableBody({
25142
25404
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkUC43NICZcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
25143
25405
  rows.map((row, index) => {
25144
25406
  const item = row.original;
25145
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _572 => _572(item)]), () => ( void 0));
25407
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _577 => _577(item)]), () => ( void 0));
25146
25408
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
25147
25409
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25148
25410
  DataTableRow,
@@ -25206,7 +25468,7 @@ function DataTableInfiniteFooter({
25206
25468
  if (!sentinel) return;
25207
25469
  const observer = new IntersectionObserver(
25208
25470
  (entries) => {
25209
- if (_optionalChain([entries, 'access', _573 => _573[0], 'optionalAccess', _574 => _574.isIntersecting])) onLoadMoreRef.current();
25471
+ if (_optionalChain([entries, 'access', _578 => _578[0], 'optionalAccess', _579 => _579.isIntersecting])) onLoadMoreRef.current();
25210
25472
  },
25211
25473
  { rootMargin }
25212
25474
  );
@@ -25254,7 +25516,7 @@ function DataTableRowCount({
25254
25516
  const table = useDataTableContext();
25255
25517
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
25256
25518
  if (hideWhenEmpty && count === 0) return null;
25257
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _575 => _575(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
25519
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _580 => _580(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
25258
25520
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25259
25521
  "span",
25260
25522
  {
@@ -25348,12 +25610,12 @@ function PhoneInput({
25348
25610
  const runValidation = _react.useCallback.call(void 0, (phone) => {
25349
25611
  if (!phone || digitCount(phone) === 0) {
25350
25612
  setIsInvalid(false);
25351
- _optionalChain([onValidationChange, 'optionalCall', _576 => _576(false)]);
25613
+ _optionalChain([onValidationChange, 'optionalCall', _581 => _581(false)]);
25352
25614
  return;
25353
25615
  }
25354
25616
  const invalid = !validatePhoneNumber(phone, countryCode);
25355
25617
  setIsInvalid(invalid);
25356
- _optionalChain([onValidationChange, 'optionalCall', _577 => _577(invalid)]);
25618
+ _optionalChain([onValidationChange, 'optionalCall', _582 => _582(invalid)]);
25357
25619
  }, [countryCode, digitCount, onValidationChange]);
25358
25620
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
25359
25621
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -25402,7 +25664,7 @@ function PhoneInput({
25402
25664
  debouncedValidation(val);
25403
25665
  } else if (digitCount(val) === 0) {
25404
25666
  setIsInvalid(false);
25405
- _optionalChain([onValidationChange, 'optionalCall', _578 => _578(false)]);
25667
+ _optionalChain([onValidationChange, 'optionalCall', _583 => _583(false)]);
25406
25668
  }
25407
25669
  }
25408
25670
  },
@@ -25509,7 +25771,7 @@ function SearchInput({
25509
25771
  if (!showHiddenTags) return;
25510
25772
  const handleClick = (e) => {
25511
25773
  const target = e.target;
25512
- if (!_optionalChain([hiddenTagsRef, 'access', _579 => _579.current, 'optionalAccess', _580 => _580.contains, 'call', _581 => _581(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _582 => _582.current, 'optionalAccess', _583 => _583.contains, 'call', _584 => _584(target)])) {
25774
+ if (!_optionalChain([hiddenTagsRef, 'access', _584 => _584.current, 'optionalAccess', _585 => _585.contains, 'call', _586 => _586(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _587 => _587.current, 'optionalAccess', _588 => _588.contains, 'call', _589 => _589(target)])) {
25513
25775
  setShowHiddenTags(false);
25514
25776
  }
25515
25777
  };
@@ -25557,10 +25819,10 @@ function SearchInput({
25557
25819
  } else {
25558
25820
  setInternalValue("");
25559
25821
  }
25560
- _optionalChain([inputRef, 'access', _585 => _585.current, 'optionalAccess', _586 => _586.focus, 'call', _587 => _587()]);
25822
+ _optionalChain([inputRef, 'access', _590 => _590.current, 'optionalAccess', _591 => _591.focus, 'call', _592 => _592()]);
25561
25823
  };
25562
25824
  const handleResultClick = (result, e) => {
25563
- _optionalChain([onResultSelect, 'optionalCall', _588 => _588(
25825
+ _optionalChain([onResultSelect, 'optionalCall', _593 => _593(
25564
25826
  result,
25565
25827
  e ? {
25566
25828
  metaKey: e.metaKey,
@@ -25592,7 +25854,7 @@ function SearchInput({
25592
25854
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
25593
25855
  handleResultClick(flatResults[highlightedIndex]);
25594
25856
  } else {
25595
- _optionalChain([onSubmit, 'optionalCall', _589 => _589(currentValue)]);
25857
+ _optionalChain([onSubmit, 'optionalCall', _594 => _594(currentValue)]);
25596
25858
  }
25597
25859
  break;
25598
25860
  case "Escape":
@@ -25670,7 +25932,7 @@ function SearchInput({
25670
25932
  dropdownVisible && "!border-ods-accent"
25671
25933
  ),
25672
25934
  onClick: () => {
25673
- _optionalChain([inputRef, 'access', _590 => _590.current, 'optionalAccess', _591 => _591.focus, 'call', _592 => _592()]);
25935
+ _optionalChain([inputRef, 'access', _595 => _595.current, 'optionalAccess', _596 => _596.focus, 'call', _597 => _597()]);
25674
25936
  setIsOpen(true);
25675
25937
  },
25676
25938
  children: [
@@ -25754,10 +26016,10 @@ function SearchInput({
25754
26016
  align: "start",
25755
26017
  onOpenAutoFocus: (e) => {
25756
26018
  e.preventDefault();
25757
- _optionalChain([inputRef, 'access', _593 => _593.current, 'optionalAccess', _594 => _594.focus, 'call', _595 => _595()]);
26019
+ _optionalChain([inputRef, 'access', _598 => _598.current, 'optionalAccess', _599 => _599.focus, 'call', _600 => _600()]);
25758
26020
  },
25759
26021
  onInteractOutside: (e) => {
25760
- if (_optionalChain([containerRef, 'access', _596 => _596.current, 'optionalAccess', _597 => _597.contains, 'call', _598 => _598(e.target)])) {
26022
+ if (_optionalChain([containerRef, 'access', _601 => _601.current, 'optionalAccess', _602 => _602.contains, 'call', _603 => _603(e.target)])) {
25761
26023
  e.preventDefault();
25762
26024
  }
25763
26025
  },
@@ -25774,10 +26036,10 @@ function SearchInput({
25774
26036
  ref: hiddenTagsPopupRef,
25775
26037
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
25776
26038
  style: {
25777
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _599 => _599.current, 'optionalAccess', _600 => _600.getBoundingClientRect, 'call', _601 => _601(), 'access', _602 => _602.left]), () => ( 0))) : 0
26039
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _604 => _604.current, 'optionalAccess', _605 => _605.getBoundingClientRect, 'call', _606 => _606(), 'access', _607 => _607.left]), () => ( 0))) : 0
25778
26040
  },
25779
26041
  onRemove: (value2) => {
25780
- _optionalChain([onFilterRemove, 'optionalCall', _603 => _603(value2)]);
26042
+ _optionalChain([onFilterRemove, 'optionalCall', _608 => _608(value2)]);
25781
26043
  if (hiddenCount <= 1) setShowHiddenTags(false);
25782
26044
  }
25783
26045
  }
@@ -25828,7 +26090,7 @@ function FilterListItem({
25828
26090
  }) {
25829
26091
  const handleToggle = () => {
25830
26092
  if (disabled) return;
25831
- _optionalChain([onToggle, 'optionalCall', _604 => _604(!selected)]);
26093
+ _optionalChain([onToggle, 'optionalCall', _609 => _609(!selected)]);
25832
26094
  };
25833
26095
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
25834
26096
  "div",
@@ -25875,7 +26137,7 @@ function FilterListItem({
25875
26137
  CheckboxPrimitive4.Root,
25876
26138
  {
25877
26139
  checked: selected,
25878
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _605 => _605(c === true)]),
26140
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _610 => _610(c === true)]),
25879
26141
  onClick: (e) => e.stopPropagation(),
25880
26142
  disabled,
25881
26143
  "aria-label": title,
@@ -25974,7 +26236,7 @@ function TagSearchInput({
25974
26236
  if (!showHiddenTags) return;
25975
26237
  const handleClick = (e) => {
25976
26238
  const target = e.target;
25977
- if (!_optionalChain([hiddenTagsRef, 'access', _606 => _606.current, 'optionalAccess', _607 => _607.contains, 'call', _608 => _608(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _609 => _609.current, 'optionalAccess', _610 => _610.contains, 'call', _611 => _611(target)])) {
26239
+ if (!_optionalChain([hiddenTagsRef, 'access', _611 => _611.current, 'optionalAccess', _612 => _612.contains, 'call', _613 => _613(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _614 => _614.current, 'optionalAccess', _615 => _615.contains, 'call', _616 => _616(target)])) {
25978
26240
  setShowHiddenTags(false);
25979
26241
  }
25980
26242
  };
@@ -25990,13 +26252,13 @@ function TagSearchInput({
25990
26252
  e.preventDefault();
25991
26253
  onSubmit(searchValue);
25992
26254
  }
25993
- _optionalChain([onKeyDown, 'optionalCall', _612 => _612(e)]);
26255
+ _optionalChain([onKeyDown, 'optionalCall', _617 => _617(e)]);
25994
26256
  };
25995
26257
  const handleClearAll = (e) => {
25996
26258
  e.stopPropagation();
25997
26259
  e.preventDefault();
25998
- _optionalChain([onClearAll, 'optionalCall', _613 => _613()]);
25999
- _optionalChain([inputRef, 'access', _614 => _614.current, 'optionalAccess', _615 => _615.focus, 'call', _616 => _616()]);
26260
+ _optionalChain([onClearAll, 'optionalCall', _618 => _618()]);
26261
+ _optionalChain([inputRef, 'access', _619 => _619.current, 'optionalAccess', _620 => _620.focus, 'call', _621 => _621()]);
26000
26262
  };
26001
26263
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
26002
26264
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -26013,7 +26275,7 @@ function TagSearchInput({
26013
26275
  className
26014
26276
  ),
26015
26277
  onClick: () => {
26016
- if (!disabled) _optionalChain([inputRef, 'access', _617 => _617.current, 'optionalAccess', _618 => _618.focus, 'call', _619 => _619()]);
26278
+ if (!disabled) _optionalChain([inputRef, 'access', _622 => _622.current, 'optionalAccess', _623 => _623.focus, 'call', _624 => _624()]);
26017
26279
  },
26018
26280
  children: [
26019
26281
  /* @__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" }) }),
@@ -26085,7 +26347,7 @@ function TagSearchInput({
26085
26347
  items: hiddenTags,
26086
26348
  disabled,
26087
26349
  style: {
26088
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _620 => _620.current, 'optionalAccess', _621 => _621.getBoundingClientRect, 'call', _622 => _622(), 'access', _623 => _623.left]), () => ( 0))) : 0
26350
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _625 => _625.current, 'optionalAccess', _626 => _626.getBoundingClientRect, 'call', _627 => _627(), 'access', _628 => _628.left]), () => ( 0))) : 0
26089
26351
  },
26090
26352
  onRemove: (value) => {
26091
26353
  onTagRemove(value);
@@ -26187,7 +26449,7 @@ function MarkdownEditor({
26187
26449
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
26188
26450
  _react.useEffect.call(void 0, () => {
26189
26451
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
26190
- if (_optionalChain([mod, 'access', _624 => _624.commands, 'optionalAccess', _625 => _625.getExtraCommands])) {
26452
+ if (_optionalChain([mod, 'access', _629 => _629.commands, 'optionalAccess', _630 => _630.getExtraCommands])) {
26191
26453
  setDefaultExtraCommands(mod.commands.getExtraCommands());
26192
26454
  }
26193
26455
  });
@@ -26221,7 +26483,7 @@ function MarkdownEditor({
26221
26483
  const isImage = file.type.startsWith("image/");
26222
26484
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
26223
26485
  insertTextAtCursor(markdown);
26224
- _optionalChain([onFileUploaded, 'optionalCall', _626 => _626(url, file.name)]);
26486
+ _optionalChain([onFileUploaded, 'optionalCall', _631 => _631(url, file.name)]);
26225
26487
  } catch (error) {
26226
26488
  console.error("File upload failed:", error);
26227
26489
  setUploadProgress("Upload failed. Please try again.");
@@ -26234,7 +26496,7 @@ function MarkdownEditor({
26234
26496
  );
26235
26497
  const handleFileInputChange = _react.useCallback.call(void 0,
26236
26498
  (e) => {
26237
- const file = _optionalChain([e, 'access', _627 => _627.target, 'access', _628 => _628.files, 'optionalAccess', _629 => _629[0]]);
26499
+ const file = _optionalChain([e, 'access', _632 => _632.target, 'access', _633 => _633.files, 'optionalAccess', _634 => _634[0]]);
26238
26500
  if (file) {
26239
26501
  handleFileUpload(file);
26240
26502
  e.target.value = "";
@@ -26245,7 +26507,7 @@ function MarkdownEditor({
26245
26507
  const handlePaste = _react.useCallback.call(void 0,
26246
26508
  (e) => {
26247
26509
  if (!onUploadFile) return;
26248
- const items = _optionalChain([e, 'access', _630 => _630.clipboardData, 'optionalAccess', _631 => _631.items]);
26510
+ const items = _optionalChain([e, 'access', _635 => _635.clipboardData, 'optionalAccess', _636 => _636.items]);
26249
26511
  if (!items) return;
26250
26512
  for (const item of items) {
26251
26513
  if (item.type.startsWith("image/")) {
@@ -26270,7 +26532,7 @@ function MarkdownEditor({
26270
26532
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
26271
26533
  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" }),
26272
26534
  execute: () => {
26273
- _optionalChain([fileInputRef, 'access', _632 => _632.current, 'optionalAccess', _633 => _633.click, 'call', _634 => _634()]);
26535
+ _optionalChain([fileInputRef, 'access', _637 => _637.current, 'optionalAccess', _638 => _638.click, 'call', _639 => _639()]);
26274
26536
  }
26275
26537
  } : null;
26276
26538
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -26282,7 +26544,7 @@ function MarkdownEditor({
26282
26544
  const EDGE_ZONE = 60;
26283
26545
  const MAX_SCROLL_SPEED = 15;
26284
26546
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
26285
- let node = _optionalChain([el, 'optionalAccess', _635 => _635.parentElement]);
26547
+ let node = _optionalChain([el, 'optionalAccess', _640 => _640.parentElement]);
26286
26548
  while (node && node !== document.documentElement) {
26287
26549
  const { overflowY } = window.getComputedStyle(node);
26288
26550
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -26425,7 +26687,7 @@ function matchesAccept(file, accept) {
26425
26687
  });
26426
26688
  }
26427
26689
  function dragHasFiles(e) {
26428
- const types = _optionalChain([e, 'access', _636 => _636.dataTransfer, 'optionalAccess', _637 => _637.types]);
26690
+ const types = _optionalChain([e, 'access', _641 => _641.dataTransfer, 'optionalAccess', _642 => _642.types]);
26429
26691
  if (!types) return false;
26430
26692
  for (let i = 0; i < types.length; i++) {
26431
26693
  if (types[i] === "Files") return true;
@@ -26520,7 +26782,7 @@ function FileUpload({
26520
26782
  e.stopPropagation();
26521
26783
  setDragActive(false);
26522
26784
  if (disabled) return;
26523
- if (_optionalChain([e, 'access', _638 => _638.dataTransfer, 'access', _639 => _639.files, 'optionalAccess', _640 => _640.length])) {
26785
+ if (_optionalChain([e, 'access', _643 => _643.dataTransfer, 'access', _644 => _644.files, 'optionalAccess', _645 => _645.length])) {
26524
26786
  handleFiles(e.dataTransfer.files);
26525
26787
  }
26526
26788
  };
@@ -26548,7 +26810,7 @@ function FileUpload({
26548
26810
  e.preventDefault();
26549
26811
  dragCounter = 0;
26550
26812
  setDragActive(false);
26551
- if (_optionalChain([e, 'access', _641 => _641.dataTransfer, 'optionalAccess', _642 => _642.files, 'optionalAccess', _643 => _643.length])) {
26813
+ if (_optionalChain([e, 'access', _646 => _646.dataTransfer, 'optionalAccess', _647 => _647.files, 'optionalAccess', _648 => _648.length])) {
26552
26814
  handleFilesRef.current(e.dataTransfer.files);
26553
26815
  }
26554
26816
  };
@@ -26570,7 +26832,7 @@ function FileUpload({
26570
26832
  };
26571
26833
  }, [acceptWindowDrops, disabled]);
26572
26834
  const handleFileSelect = (e) => {
26573
- if (_optionalChain([e, 'access', _644 => _644.target, 'access', _645 => _645.files, 'optionalAccess', _646 => _646.length])) {
26835
+ if (_optionalChain([e, 'access', _649 => _649.target, 'access', _650 => _650.files, 'optionalAccess', _651 => _651.length])) {
26574
26836
  handleFiles(e.target.files);
26575
26837
  }
26576
26838
  };
@@ -26587,7 +26849,7 @@ function FileUpload({
26587
26849
  };
26588
26850
  const openDialog = async () => {
26589
26851
  if (disabled) return;
26590
- _optionalChain([fileInputRef, 'access', _647 => _647.current, 'optionalAccess', _648 => _648.click, 'call', _649 => _649()]);
26852
+ _optionalChain([fileInputRef, 'access', _652 => _652.current, 'optionalAccess', _653 => _653.click, 'call', _654 => _654()]);
26591
26853
  };
26592
26854
  const displayError = error || validationError || void 0;
26593
26855
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -26665,7 +26927,7 @@ function FileUpload({
26665
26927
  "button",
26666
26928
  {
26667
26929
  type: "button",
26668
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _650 => _650(entry.id)]),
26930
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _655 => _655(entry.id)]),
26669
26931
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
26670
26932
  "aria-label": `Remove ${entry.fileName}`,
26671
26933
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -26788,7 +27050,7 @@ function ImageUploader({
26788
27050
  onChange(file);
26789
27051
  };
26790
27052
  const handleFileSelect = (e) => {
26791
- validateAndEmit(_optionalChain([e, 'access', _651 => _651.target, 'access', _652 => _652.files, 'optionalAccess', _653 => _653[0]]));
27053
+ validateAndEmit(_optionalChain([e, 'access', _656 => _656.target, 'access', _657 => _657.files, 'optionalAccess', _658 => _658[0]]));
26792
27054
  if (inputRef.current) inputRef.current.value = "";
26793
27055
  };
26794
27056
  const handleDrag = (e) => {
@@ -26803,11 +27065,11 @@ function ImageUploader({
26803
27065
  e.stopPropagation();
26804
27066
  setDragActive(false);
26805
27067
  if (!interactive) return;
26806
- validateAndEmit(_optionalChain([e, 'access', _654 => _654.dataTransfer, 'access', _655 => _655.files, 'optionalAccess', _656 => _656[0]]));
27068
+ validateAndEmit(_optionalChain([e, 'access', _659 => _659.dataTransfer, 'access', _660 => _660.files, 'optionalAccess', _661 => _661[0]]));
26807
27069
  };
26808
27070
  const openDialog = () => {
26809
27071
  if (!interactive) return;
26810
- _optionalChain([inputRef, 'access', _657 => _657.current, 'optionalAccess', _658 => _658.click, 'call', _659 => _659()]);
27072
+ _optionalChain([inputRef, 'access', _662 => _662.current, 'optionalAccess', _663 => _663.click, 'call', _664 => _664()]);
26811
27073
  };
26812
27074
  const handleRootKeyDown = (e) => {
26813
27075
  if (hasImage || !interactive) return;
@@ -26964,7 +27226,7 @@ function CompactAssigneeDropdown({
26964
27226
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
26965
27227
  }, [filtered, currentAssignee]);
26966
27228
  const handleSelect = (userId) => {
26967
- const next = _optionalChain([currentAssignee, 'optionalAccess', _660 => _660.id]) === userId ? null : userId;
27229
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _665 => _665.id]) === userId ? null : userId;
26968
27230
  onAssign(next);
26969
27231
  setIsOpen(false);
26970
27232
  };
@@ -27029,7 +27291,7 @@ function CompactAssigneeDropdown({
27029
27291
  }
27030
27292
  ) }),
27031
27293
  /* @__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) => {
27032
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _661 => _661.id]) === opt.value;
27294
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _666 => _666.id]) === opt.value;
27033
27295
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
27034
27296
  "button",
27035
27297
  {
@@ -27098,7 +27360,7 @@ function DefaultAssigneeDropdown({
27098
27360
  Autocomplete,
27099
27361
  {
27100
27362
  options,
27101
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _662 => _662.id]), () => ( null)),
27363
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _667 => _667.id]), () => ( null)),
27102
27364
  onChange: (val) => {
27103
27365
  onAssign(val);
27104
27366
  setIsEditing(false);
@@ -27456,14 +27718,14 @@ function TicketInfoSection({
27456
27718
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27457
27719
  SquareAvatar,
27458
27720
  {
27459
- src: _optionalChain([organization, 'optionalAccess', _663 => _663.imageSrc]),
27460
- alt: _optionalChain([organization, 'optionalAccess', _664 => _664.name]),
27461
- fallback: _optionalChain([organization, 'optionalAccess', _665 => _665.name]) || "Org",
27721
+ src: _optionalChain([organization, 'optionalAccess', _668 => _668.imageSrc]),
27722
+ alt: _optionalChain([organization, 'optionalAccess', _669 => _669.name]),
27723
+ fallback: _optionalChain([organization, 'optionalAccess', _670 => _670.name]) || "Org",
27462
27724
  size: "md",
27463
27725
  className: "shrink-0"
27464
27726
  }
27465
27727
  ),
27466
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _666 => _666.name]) || "Unassigned", label: "Organization" })
27728
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _671 => _671.name]) || "Unassigned", label: "Organization" })
27467
27729
  ] }),
27468
27730
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27469
27731
  AssigneeDropdown,
@@ -27484,10 +27746,10 @@ function TicketInfoSection({
27484
27746
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27485
27747
  InfoCell2,
27486
27748
  {
27487
- value: _optionalChain([device, 'optionalAccess', _667 => _667.name]) || "Unassigned",
27749
+ value: _optionalChain([device, 'optionalAccess', _672 => _672.name]) || "Unassigned",
27488
27750
  label: "Device",
27489
- icon: _optionalChain([device, 'optionalAccess', _668 => _668.icon]),
27490
- onClick: _optionalChain([device, 'optionalAccess', _669 => _669.onClick])
27751
+ icon: _optionalChain([device, 'optionalAccess', _673 => _673.icon]),
27752
+ onClick: _optionalChain([device, 'optionalAccess', _674 => _674.onClick])
27491
27753
  }
27492
27754
  ),
27493
27755
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -28246,10 +28508,10 @@ var getContentDimensions = (config) => {
28246
28508
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
28247
28509
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
28248
28510
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
28249
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _670 => _670.mobileContentDimensions, 'optionalAccess', _671 => _671.width]))), () => ( defaultMobile.width));
28250
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _672 => _672.mobileContentDimensions, 'optionalAccess', _673 => _673.height]))), () => ( defaultMobile.height));
28251
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _674 => _674.desktopContentDimensions, 'optionalAccess', _675 => _675.width]))), () => ( defaultDesktop.width));
28252
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _676 => _676.desktopContentDimensions, 'optionalAccess', _677 => _677.height]))), () => ( defaultDesktop.height));
28511
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _675 => _675.mobileContentDimensions, 'optionalAccess', _676 => _676.width]))), () => ( defaultMobile.width));
28512
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _677 => _677.mobileContentDimensions, 'optionalAccess', _678 => _678.height]))), () => ( defaultMobile.height));
28513
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _679 => _679.desktopContentDimensions, 'optionalAccess', _680 => _680.width]))), () => ( defaultDesktop.width));
28514
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _681 => _681.desktopContentDimensions, 'optionalAccess', _682 => _682.height]))), () => ( defaultDesktop.height));
28253
28515
  return {
28254
28516
  mobile: { width: mobileWidth, height: mobileHeight },
28255
28517
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -28383,7 +28645,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
28383
28645
  const contentDimensions = getContentDimensions(config);
28384
28646
  const mobileHeight = contentDimensions.mobile.height;
28385
28647
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
28386
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _678 => _678.innerHeight]) * 0.85 || 650)}px`;
28648
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _683 => _683.innerHeight]) * 0.85 || 650)}px`;
28387
28649
  })(),
28388
28650
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
28389
28651
  const contentDimensions = getContentDimensions(config);
@@ -28488,7 +28750,7 @@ var FigmaPrototypeViewer = ({
28488
28750
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
28489
28751
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
28490
28752
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
28491
- config.defaultSectionId || _optionalChain([config, 'access', _679 => _679.sections, 'access', _680 => _680[0], 'optionalAccess', _681 => _681.id]) || ""
28753
+ config.defaultSectionId || _optionalChain([config, 'access', _684 => _684.sections, 'access', _685 => _685[0], 'optionalAccess', _686 => _686.id]) || ""
28492
28754
  );
28493
28755
  const activeSection = externalActiveSection || internalActiveSection;
28494
28756
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -28578,7 +28840,7 @@ var FigmaPrototypeViewer = ({
28578
28840
  const handleMessage = (event) => {
28579
28841
  if (event.origin !== "https://www.figma.com") return;
28580
28842
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
28581
- if (_optionalChain([event, 'access', _682 => _682.data, 'optionalAccess', _683 => _683.type]) && validEvents.includes(event.data.type)) {
28843
+ if (_optionalChain([event, 'access', _687 => _687.data, 'optionalAccess', _688 => _688.type]) && validEvents.includes(event.data.type)) {
28582
28844
  const figmaEvent = event.data;
28583
28845
  console.log("[Figma Event]", figmaEvent.type, viewMode);
28584
28846
  switch (figmaEvent.type) {
@@ -28588,19 +28850,19 @@ var FigmaPrototypeViewer = ({
28588
28850
  setIframeState("READY");
28589
28851
  break;
28590
28852
  case "PRESENTED_NODE_CHANGED":
28591
- if (_optionalChain([figmaEvent, 'access', _684 => _684.data, 'optionalAccess', _685 => _685.presentedNodeId])) {
28853
+ if (_optionalChain([figmaEvent, 'access', _689 => _689.data, 'optionalAccess', _690 => _690.presentedNodeId])) {
28592
28854
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
28593
28855
  if (!isNavigating) {
28594
28856
  const matchingSection = config.sections.find((s) => {
28595
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _686 => _686.data, 'optionalAccess', _687 => _687.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _688 => _688.data, 'optionalAccess', _689 => _689.presentedNodeId]);
28596
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _690 => _690.data, 'optionalAccess', _691 => _691.presentedNodeId]) || _optionalChain([s, 'access', _692 => _692.mobileStartingNodeId, 'optionalAccess', _693 => _693.replace, 'call', _694 => _694(":", "-")]) === _optionalChain([figmaEvent, 'access', _695 => _695.data, 'optionalAccess', _696 => _696.presentedNodeId]);
28857
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _691 => _691.data, 'optionalAccess', _692 => _692.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _693 => _693.data, 'optionalAccess', _694 => _694.presentedNodeId]);
28858
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _695 => _695.data, 'optionalAccess', _696 => _696.presentedNodeId]) || _optionalChain([s, 'access', _697 => _697.mobileStartingNodeId, 'optionalAccess', _698 => _698.replace, 'call', _699 => _699(":", "-")]) === _optionalChain([figmaEvent, 'access', _700 => _700.data, 'optionalAccess', _701 => _701.presentedNodeId]);
28597
28859
  return desktopMatch || mobileMatch;
28598
28860
  });
28599
28861
  if (matchingSection && matchingSection.id !== activeSection) {
28600
28862
  if (!externalActiveSection) {
28601
28863
  setInternalActiveSection(matchingSection.id);
28602
28864
  }
28603
- _optionalChain([config, 'access', _697 => _697.onSectionChange, 'optionalCall', _698 => _698(matchingSection.id)]);
28865
+ _optionalChain([config, 'access', _702 => _702.onSectionChange, 'optionalCall', _703 => _703(matchingSection.id)]);
28604
28866
  }
28605
28867
  }
28606
28868
  }
@@ -28613,7 +28875,7 @@ var FigmaPrototypeViewer = ({
28613
28875
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
28614
28876
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
28615
28877
  const section = config.sections.find((s) => s.id === sectionId);
28616
- if (!section || !_optionalChain([iframeRef, 'access', _699 => _699.current, 'optionalAccess', _700 => _700.contentWindow]) || !isInitialized) {
28878
+ if (!section || !_optionalChain([iframeRef, 'access', _704 => _704.current, 'optionalAccess', _705 => _705.contentWindow]) || !isInitialized) {
28617
28879
  return;
28618
28880
  }
28619
28881
  setIsNavigating(true);
@@ -28621,7 +28883,7 @@ var FigmaPrototypeViewer = ({
28621
28883
  if (!externalActiveSection) {
28622
28884
  setInternalActiveSection(sectionId);
28623
28885
  }
28624
- _optionalChain([config, 'access', _701 => _701.onSectionChange, 'optionalCall', _702 => _702(sectionId)]);
28886
+ _optionalChain([config, 'access', _706 => _706.onSectionChange, 'optionalCall', _707 => _707(sectionId)]);
28625
28887
  const command = {
28626
28888
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
28627
28889
  data: { nodeId }
@@ -28941,7 +29203,7 @@ var FiltersDropdown = ({
28941
29203
  defaults[section.id] = section.defaultSelected || [];
28942
29204
  });
28943
29205
  setSelectedFilters(defaults);
28944
- _optionalChain([onReset, 'optionalCall', _703 => _703()]);
29206
+ _optionalChain([onReset, 'optionalCall', _708 => _708()]);
28945
29207
  setIsOpen(false);
28946
29208
  };
28947
29209
  const handleApply = () => {
@@ -29235,7 +29497,7 @@ function MediaGalleryManager({
29235
29497
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
29236
29498
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
29237
29499
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
29238
- const file = _optionalChain([event, 'access', _704 => _704.target, 'access', _705 => _705.files, 'optionalAccess', _706 => _706[0]]);
29500
+ const file = _optionalChain([event, 'access', _709 => _709.target, 'access', _710 => _710.files, 'optionalAccess', _711 => _711[0]]);
29239
29501
  if (!file) return;
29240
29502
  let mediaType;
29241
29503
  if (file.type.startsWith("image/")) {
@@ -29350,7 +29612,7 @@ function MediaGalleryManager({
29350
29612
  {
29351
29613
  type: "button",
29352
29614
  variant: "outline",
29353
- onClick: () => _optionalChain([fileInputRef, 'access', _707 => _707.current, 'optionalAccess', _708 => _708.click, 'call', _709 => _709()]),
29615
+ onClick: () => _optionalChain([fileInputRef, 'access', _712 => _712.current, 'optionalAccess', _713 => _713.click, 'call', _714 => _714()]),
29354
29616
  disabled: isUploading,
29355
29617
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
29356
29618
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -30135,7 +30397,7 @@ function ReleaseMediaManager({
30135
30397
  const fileInputRef = _react.useRef.call(void 0, null);
30136
30398
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
30137
30399
  const handleFileSelect = async (event) => {
30138
- const file = _optionalChain([event, 'access', _710 => _710.target, 'access', _711 => _711.files, 'optionalAccess', _712 => _712[0]]);
30400
+ const file = _optionalChain([event, 'access', _715 => _715.target, 'access', _716 => _716.files, 'optionalAccess', _717 => _717[0]]);
30139
30401
  if (!file) return;
30140
30402
  let mediaType;
30141
30403
  if (file.type.startsWith("image/")) {
@@ -30215,7 +30477,7 @@ function ReleaseMediaManager({
30215
30477
  {
30216
30478
  type: "button",
30217
30479
  variant: "outline",
30218
- onClick: () => _optionalChain([fileInputRef, 'access', _713 => _713.current, 'optionalAccess', _714 => _714.click, 'call', _715 => _715()]),
30480
+ onClick: () => _optionalChain([fileInputRef, 'access', _718 => _718.current, 'optionalAccess', _719 => _719.click, 'call', _720 => _720()]),
30219
30481
  disabled: uploadingIndex !== null,
30220
30482
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
30221
30483
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -30428,7 +30690,7 @@ function SEOEditorPreview({
30428
30690
  const displayImage = hasOgImage || hasFeaturedImage;
30429
30691
  const handleImageUpload = async (event) => {
30430
30692
  if (!onOgImageUpload) return;
30431
- const file = _optionalChain([event, 'access', _716 => _716.target, 'access', _717 => _717.files, 'optionalAccess', _718 => _718[0]]);
30693
+ const file = _optionalChain([event, 'access', _721 => _721.target, 'access', _722 => _722.files, 'optionalAccess', _723 => _723[0]]);
30432
30694
  if (!file) return;
30433
30695
  setIsUploading(true);
30434
30696
  try {
@@ -30559,7 +30821,7 @@ function SEOEditorPreview({
30559
30821
  type: "button",
30560
30822
  variant: "outline",
30561
30823
  size: "icon",
30562
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _719 => _719.click, 'call', _720 => _720()]),
30824
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _724 => _724.click, 'call', _725 => _725()]),
30563
30825
  disabled: disabled || isUploading,
30564
30826
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
30565
30827
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -30582,7 +30844,7 @@ function SEOEditorPreview({
30582
30844
  "div",
30583
30845
  {
30584
30846
  className: "h-full min-h-[280px] border-2 border-dashed border-ods-border rounded-lg flex flex-col items-center justify-center cursor-pointer hover:border-ods-accent transition-colors bg-ods-bg-hover",
30585
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _721 => _721.click, 'call', _722 => _722()]),
30847
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _726 => _726.click, 'call', _727 => _727()]),
30586
30848
  children: isUploading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Loader2, { className: "h-8 w-8 animate-spin text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
30587
30849
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
30588
30850
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-sm text-ods-text-secondary font-['DM_Sans']", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -30667,7 +30929,7 @@ function SocialLinksManager({
30667
30929
  className = ""
30668
30930
  }) {
30669
30931
  const addLink = () => {
30670
- const firstPlatform = _optionalChain([platforms, 'access', _723 => _723[0], 'optionalAccess', _724 => _724.name]) || "website";
30932
+ const firstPlatform = _optionalChain([platforms, 'access', _728 => _728[0], 'optionalAccess', _729 => _729.name]) || "website";
30671
30933
  onChange([...links, { platform: firstPlatform, url: "" }]);
30672
30934
  };
30673
30935
  const removeLink = (index) => {
@@ -30679,7 +30941,7 @@ function SocialLinksManager({
30679
30941
  onChange(updated);
30680
30942
  };
30681
30943
  const getIcon = (link, platform) => {
30682
- const iconKey = _optionalChain([platform, 'optionalAccess', _725 => _725.icon_name]) || link.platform;
30944
+ const iconKey = _optionalChain([platform, 'optionalAccess', _730 => _730.icon_name]) || link.platform;
30683
30945
  const IconComponent = iconMap[iconKey];
30684
30946
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
30685
30947
  };
@@ -30704,7 +30966,7 @@ function SocialLinksManager({
30704
30966
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30705
30967
  _chunkV2FNIPZJcjs.Input,
30706
30968
  {
30707
- placeholder: _optionalChain([platform, 'optionalAccess', _726 => _726.placeholder]) || "Profile URL",
30969
+ placeholder: _optionalChain([platform, 'optionalAccess', _731 => _731.placeholder]) || "Profile URL",
30708
30970
  value: link.url,
30709
30971
  onChange: (e) => updateLink(index, "url", e.target.value),
30710
30972
  onKeyDown: (e) => {
@@ -31081,7 +31343,7 @@ function VideoSourceSelector({
31081
31343
  input.accept = "video/*";
31082
31344
  input.onchange = async (e) => {
31083
31345
  const target = e.target;
31084
- const file = _optionalChain([target, 'access', _727 => _727.files, 'optionalAccess', _728 => _728[0]]);
31346
+ const file = _optionalChain([target, 'access', _732 => _732.files, 'optionalAccess', _733 => _733[0]]);
31085
31347
  if (!file) return;
31086
31348
  setIsUploading(true);
31087
31349
  setUploadProgress(0);
@@ -31411,7 +31673,7 @@ function TranscriptSummaryEditor({
31411
31673
  {
31412
31674
  id: "subtitles",
31413
31675
  value: subtitles || "",
31414
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _729 => _729(e.target.value)]),
31676
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _734 => _734(e.target.value)]),
31415
31677
  placeholder: subtitlesPlaceholder,
31416
31678
  disabled: disabled || !onSubtitlesChange,
31417
31679
  className: "h-full w-full resize-none border-0 bg-transparent text-ods-text-primary placeholder:text-ods-text-secondary/50 focus:ring-0 focus:outline-none p-4 font-mono text-sm",
@@ -31564,7 +31826,7 @@ var AIEnrichSection = ({
31564
31826
  }) => {
31565
31827
  const hasResults = status === "success" || status === "error";
31566
31828
  const shouldDisable = disabled || !canEnrich;
31567
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _730 => _730.filter, 'call', _731 => _731((f) => !f.isFilled)]) || [];
31829
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _735 => _735.filter, 'call', _736 => _736((f) => !f.isFilled)]) || [];
31568
31830
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
31569
31831
  "div",
31570
31832
  {
@@ -31602,7 +31864,7 @@ var AIEnrichSection = ({
31602
31864
  {
31603
31865
  id: "ai-enrich-custom-instructions",
31604
31866
  value: _nullishCoalesce(customInstructions, () => ( "")),
31605
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _732 => _732(e.target.value)]),
31867
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _737 => _737(e.target.value)]),
31606
31868
  placeholder: customInstructionsPlaceholder,
31607
31869
  disabled: loading,
31608
31870
  maxLength: customInstructionsMaxLength,
@@ -31731,7 +31993,7 @@ function HighlightVideoSection({
31731
31993
  input.accept = "video/*";
31732
31994
  input.onchange = async (e) => {
31733
31995
  const target = e.target;
31734
- const file = _optionalChain([target, 'access', _733 => _733.files, 'optionalAccess', _734 => _734[0]]);
31996
+ const file = _optionalChain([target, 'access', _738 => _738.files, 'optionalAccess', _739 => _739[0]]);
31735
31997
  if (!file) return;
31736
31998
  setUploadError(null);
31737
31999
  try {
@@ -32233,7 +32495,7 @@ function HighlightVideoPreview({
32233
32495
  input.accept = "video/*";
32234
32496
  input.onchange = async (e) => {
32235
32497
  const target = e.target;
32236
- const file = _optionalChain([target, 'access', _735 => _735.files, 'optionalAccess', _736 => _736[0]]);
32498
+ const file = _optionalChain([target, 'access', _740 => _740.files, 'optionalAccess', _741 => _741[0]]);
32237
32499
  if (!file) return;
32238
32500
  await onUpload(file);
32239
32501
  };
@@ -32420,7 +32682,7 @@ function HighlightVideoCombinedSection({
32420
32682
  input.accept = "video/*";
32421
32683
  input.onchange = async (e) => {
32422
32684
  const target = e.target;
32423
- const file = _optionalChain([target, 'access', _737 => _737.files, 'optionalAccess', _738 => _738[0]]);
32685
+ const file = _optionalChain([target, 'access', _742 => _742.files, 'optionalAccess', _743 => _743[0]]);
32424
32686
  if (!file) return;
32425
32687
  await onUpload(file);
32426
32688
  };
@@ -32717,7 +32979,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
32717
32979
  return editMode ? "Set Global Permission" : "";
32718
32980
  }
32719
32981
  const option = approvalLevelOptions.find((opt) => opt.value === level);
32720
- return _optionalChain([option, 'optionalAccess', _739 => _739.label]) || level;
32982
+ return _optionalChain([option, 'optionalAccess', _744 => _744.label]) || level;
32721
32983
  };
32722
32984
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
32723
32985
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-bg border-b border-ods-border flex gap-4 items-center px-4 py-3", children: [
@@ -33249,15 +33511,15 @@ function TicketCard({
33249
33511
  transform: _utilities.CSS.Transform.toString(sortable.transform),
33250
33512
  transition: sortable.transition
33251
33513
  };
33252
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _740 => _740.deviceHostnames, 'optionalAccess', _741 => _741.length]) || ticket.organizationName);
33514
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _745 => _745.deviceHostnames, 'optionalAccess', _746 => _746.length]) || ticket.organizationName);
33253
33515
  const deviceText = [
33254
- _optionalChain([ticket, 'access', _742 => _742.deviceHostnames, 'optionalAccess', _743 => _743.join, 'call', _744 => _744(", ")]),
33516
+ _optionalChain([ticket, 'access', _747 => _747.deviceHostnames, 'optionalAccess', _748 => _748.join, 'call', _749 => _749(", ")]),
33255
33517
  ticket.organizationName
33256
33518
  ].filter(Boolean).join(", ");
33257
33519
  const handleClick = (e) => {
33258
33520
  if (sortable.isDragging) e.preventDefault();
33259
33521
  };
33260
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _745 => _745.assignees, 'optionalAccess', _746 => _746.length]) || renderAssignSlot);
33522
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _750 => _750.assignees, 'optionalAccess', _751 => _751.length]) || renderAssignSlot);
33261
33523
  const rightSection = hasRightSection ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex shrink-0 items-center gap-[var(--spacing-system-xsf)]", children: [
33262
33524
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33263
33525
  _chunkVJTFBYVGcjs.Flag02Icon,
@@ -33266,7 +33528,7 @@ function TicketCard({
33266
33528
  "aria-label": `Priority: ${ticket.priority}`
33267
33529
  }
33268
33530
  ),
33269
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _747 => _747.assignees, 'optionalAccess', _748 => _748.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
33531
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _752 => _752.assignees, 'optionalAccess', _753 => _753.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
33270
33532
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33271
33533
  SquareAvatar,
33272
33534
  {
@@ -33295,7 +33557,7 @@ function TicketCard({
33295
33557
  ] }),
33296
33558
  rightSection
33297
33559
  ] }),
33298
- _optionalChain([ticket, 'access', _749 => _749.tags, 'optionalAccess', _750 => _750.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
33560
+ _optionalChain([ticket, 'access', _754 => _754.tags, 'optionalAccess', _755 => _755.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
33299
33561
  ] });
33300
33562
  const cardClasses = _chunkUC43NICZcjs.cn.call(void 0,
33301
33563
  "relative flex flex-col gap-[var(--spacing-system-sf)] rounded-md border border-ods-border bg-ods-bg p-[var(--spacing-system-sf)] select-none text-left",
@@ -33468,7 +33730,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33468
33730
  const observer = new IntersectionObserver(
33469
33731
  (entries) => {
33470
33732
  if (entries.some((e) => e.isIntersecting)) {
33471
- _optionalChain([loadMoreRef, 'access', _751 => _751.current, 'optionalCall', _752 => _752(columnIdRef.current)]);
33733
+ _optionalChain([loadMoreRef, 'access', _756 => _756.current, 'optionalCall', _757 => _757(columnIdRef.current)]);
33472
33734
  }
33473
33735
  },
33474
33736
  { root, rootMargin: loadMoreRootMargin }
@@ -33497,7 +33759,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
33497
33759
  {
33498
33760
  ticket: t,
33499
33761
  columnId: column.id,
33500
- href: _optionalChain([getTicketHref, 'optionalCall', _753 => _753(t.id)]),
33762
+ href: _optionalChain([getTicketHref, 'optionalCall', _758 => _758(t.id)]),
33501
33763
  renderAssignSlot,
33502
33764
  dragDisabled: column.dragDisabled
33503
33765
  },
@@ -33592,17 +33854,17 @@ function Board({
33592
33854
  const pointer = _core.pointerWithin.call(void 0, args);
33593
33855
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
33594
33856
  const ticketHit = intersections.find(
33595
- (c) => _optionalChain([c, 'access', _754 => _754.data, 'optionalAccess', _755 => _755.droppableContainer, 'optionalAccess', _756 => _756.data, 'optionalAccess', _757 => _757.current, 'optionalAccess', _758 => _758.type]) === "ticket"
33857
+ (c) => _optionalChain([c, 'access', _759 => _759.data, 'optionalAccess', _760 => _760.droppableContainer, 'optionalAccess', _761 => _761.data, 'optionalAccess', _762 => _762.current, 'optionalAccess', _763 => _763.type]) === "ticket"
33596
33858
  );
33597
33859
  if (ticketHit) return [ticketHit];
33598
33860
  const columnHit = intersections.find(
33599
- (c) => _optionalChain([c, 'access', _759 => _759.data, 'optionalAccess', _760 => _760.droppableContainer, 'optionalAccess', _761 => _761.data, 'optionalAccess', _762 => _762.current, 'optionalAccess', _763 => _763.type]) === "column"
33861
+ (c) => _optionalChain([c, 'access', _764 => _764.data, 'optionalAccess', _765 => _765.droppableContainer, 'optionalAccess', _766 => _766.data, 'optionalAccess', _767 => _767.current, 'optionalAccess', _768 => _768.type]) === "column"
33600
33862
  );
33601
33863
  if (columnHit) {
33602
- const columnId = _optionalChain([columnHit, 'access', _764 => _764.data, 'optionalAccess', _765 => _765.droppableContainer, 'optionalAccess', _766 => _766.data, 'optionalAccess', _767 => _767.current, 'optionalAccess', _768 => _768.columnId]);
33864
+ const columnId = _optionalChain([columnHit, 'access', _769 => _769.data, 'optionalAccess', _770 => _770.droppableContainer, 'optionalAccess', _771 => _771.data, 'optionalAccess', _772 => _772.current, 'optionalAccess', _773 => _773.columnId]);
33603
33865
  const ticketsInColumn = args.droppableContainers.filter((c) => {
33604
33866
  const d = c.data.current;
33605
- return _optionalChain([d, 'optionalAccess', _769 => _769.type]) === "ticket" && d.columnId === columnId;
33867
+ return _optionalChain([d, 'optionalAccess', _774 => _774.type]) === "ticket" && d.columnId === columnId;
33606
33868
  });
33607
33869
  if (ticketsInColumn.length > 0) {
33608
33870
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -33627,20 +33889,20 @@ function Board({
33627
33889
  const overId = String(over.id);
33628
33890
  if (activeId === overId) return;
33629
33891
  const overData = over.data.current;
33630
- const fromColumnId = _optionalChain([locate, 'call', _770 => _770(items, activeId), 'optionalAccess', _771 => _771.columnId]);
33631
- const toColumnId = _optionalChain([overData, 'optionalAccess', _772 => _772.columnId]);
33892
+ const fromColumnId = _optionalChain([locate, 'call', _775 => _775(items, activeId), 'optionalAccess', _776 => _776.columnId]);
33893
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _777 => _777.columnId]);
33632
33894
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
33633
33895
  const origin = dragOriginRef.current;
33634
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _773 => _773.fromColumnId]) === toColumnId;
33896
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _778 => _778.fromColumnId]) === toColumnId;
33635
33897
  const targetCol = items.find((c) => c.id === toColumnId);
33636
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _774 => _774.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33637
- if (_optionalChain([targetCol, 'optionalAccess', _775 => _775.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33898
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _779 => _779.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33899
+ if (_optionalChain([targetCol, 'optionalAccess', _780 => _780.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33638
33900
  setItems((prev) => {
33639
33901
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
33640
33902
  const toCol = prev.find((c) => c.id === toColumnId);
33641
33903
  if (fromIndex < 0 || !toCol) return prev;
33642
33904
  let toIndex;
33643
- if (_optionalChain([overData, 'optionalAccess', _776 => _776.type]) === "column") {
33905
+ if (_optionalChain([overData, 'optionalAccess', _781 => _781.type]) === "column") {
33644
33906
  toIndex = toCol.tickets.length;
33645
33907
  } else {
33646
33908
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -33682,14 +33944,14 @@ function Board({
33682
33944
  const toColumnId = located.columnId;
33683
33945
  const isCrossColumn = origin.fromColumnId !== toColumnId;
33684
33946
  const targetCol = items.find((c) => c.id === toColumnId);
33685
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _777 => _777.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _778 => _778.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33947
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _782 => _782.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _783 => _783.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33686
33948
  setItems(columns);
33687
33949
  return;
33688
33950
  }
33689
33951
  let finalIndex = located.index;
33690
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _779 => _779.find, 'call', _780 => _780((c) => c.id === toColumnId), 'optionalAccess', _781 => _781.tickets]), () => ( []));
33952
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _784 => _784.find, 'call', _785 => _785((c) => c.id === toColumnId), 'optionalAccess', _786 => _786.tickets]), () => ( []));
33691
33953
  const overData = over.data.current;
33692
- if (_optionalChain([overData, 'optionalAccess', _782 => _782.type]) === "ticket") {
33954
+ if (_optionalChain([overData, 'optionalAccess', _787 => _787.type]) === "ticket") {
33693
33955
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
33694
33956
  if (overIndex >= 0 && overIndex !== located.index) {
33695
33957
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -33709,8 +33971,8 @@ function Board({
33709
33971
  ticketId: origin.ticketId,
33710
33972
  fromColumnId: origin.fromColumnId,
33711
33973
  toColumnId,
33712
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _783 => _783[finalIndex - 1], 'optionalAccess', _784 => _784.id]), () => ( null)),
33713
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _785 => _785[finalIndex + 1], 'optionalAccess', _786 => _786.id]), () => ( null))
33974
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _788 => _788[finalIndex - 1], 'optionalAccess', _789 => _789.id]), () => ( null)),
33975
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _790 => _790[finalIndex + 1], 'optionalAccess', _791 => _791.id]), () => ( null))
33714
33976
  });
33715
33977
  };
33716
33978
  const handleDragCancel = () => {
@@ -33739,8 +34001,8 @@ function Board({
33739
34001
  children: items.map((column, i) => {
33740
34002
  const prev = items[i - 1];
33741
34003
  const next = items[i + 1];
33742
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _787 => _787.system]));
33743
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _788 => _788.system]));
34004
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _792 => _792.system]));
34005
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _793 => _793.system]));
33744
34006
  const showGap = i > 0 && !joinLeft;
33745
34007
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React102.Fragment, { children: [
33746
34008
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -33798,7 +34060,7 @@ function locate(cols, ticketId) {
33798
34060
  return null;
33799
34061
  }
33800
34062
  function findIndexInColumn(cols, columnId, ticketId) {
33801
- return _nullishCoalesce(_optionalChain([cols, 'access', _789 => _789.find, 'call', _790 => _790((c) => c.id === columnId), 'optionalAccess', _791 => _791.tickets, 'access', _792 => _792.findIndex, 'call', _793 => _793((t) => t.id === ticketId)]), () => ( -1));
34063
+ return _nullishCoalesce(_optionalChain([cols, 'access', _794 => _794.find, 'call', _795 => _795((c) => c.id === columnId), 'optionalAccess', _796 => _796.tickets, 'access', _797 => _797.findIndex, 'call', _798 => _798((t) => t.id === ticketId)]), () => ( -1));
33802
34064
  }
33803
34065
 
33804
34066
  // src/components/features/board/types.ts
@@ -34465,4 +34727,4 @@ function canonicalize(status) {
34465
34727
 
34466
34728
 
34467
34729
  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.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.validateAccessCode = validateAccessCode; exports.consumeAccessCode = consumeAccessCode; exports.validateAndConsumeAccessCode = validateAndConsumeAccessCode; exports.useAccessCodeIntegration = useAccessCodeIntegration; 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.formatRelativeTime = formatRelativeTime; 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.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.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; 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.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.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.NETWORK_CONFIG = NETWORK_CONFIG; 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.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; 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.statusBadgeVariants = statusBadgeVariants; exports.StatusBadge = StatusBadge; 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.OrganizationIcon = OrganizationIcon; 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.PlatformBadge = PlatformBadge; 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 = EmptyState2; 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.InteractiveCard = InteractiveCard; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.ImageGalleryModal = ImageGalleryModal; 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 = RadioGroup; 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 = Modal; exports.ModalContent = ModalContent; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; exports.Modal2 = Modal2; exports.ModalContent2 = ModalContent2; exports.ModalHeader2 = ModalHeader2; exports.ModalTitle2 = ModalTitle2; exports.ModalFooter2 = ModalFooter2; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.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.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.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;
34468
- //# sourceMappingURL=chunk-332L6IO7.cjs.map
34730
+ //# sourceMappingURL=chunk-C3M6R6JH.cjs.map