@flamingo-stack/openframe-frontend-core 0.0.182 → 0.0.183-snapshot.20260514223203

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.
@@ -123,6 +123,7 @@ var _chunkOFAYLG6Dcjs = require('./chunk-OFAYLG6D.cjs');
123
123
 
124
124
 
125
125
 
126
+
126
127
 
127
128
 
128
129
  var _chunkTMD5LDX4cjs = require('./chunk-TMD5LDX4.cjs');
@@ -13245,7 +13246,7 @@ function FilePlayer({
13245
13246
  playsInline: true,
13246
13247
  muted,
13247
13248
  preferCmcd: "header",
13248
- accentColor: "var(--ods-accent)",
13249
+ accentColor: "var(--ods-accent, var(--color-accent-primary))",
13249
13250
  className,
13250
13251
  style: { width: "100%", height: "100%" },
13251
13252
  children: captionsUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -13272,6 +13273,10 @@ function YouTubeFacade({
13272
13273
  if (!videoId) return null;
13273
13274
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, YouTubeFacadeInner, { videoId, title, priority, className, minimalControls });
13274
13275
  }
13276
+ var YT_NOCOOKIE_ORIGIN = "https://www.youtube-nocookie.com";
13277
+ var YT_STATE_ENDED = 0;
13278
+ var YT_STATE_PLAYING = 1;
13279
+ var YT_PLAYING_BLUR_DELAY_MS = 1e3;
13275
13280
  function YouTubeFacadeInner({
13276
13281
  videoId,
13277
13282
  title,
@@ -13280,49 +13285,79 @@ function YouTubeFacadeInner({
13280
13285
  minimalControls
13281
13286
  }) {
13282
13287
  const [activated, setActivated] = _react.useState.call(void 0, false);
13283
- const wrapperRef = _react.useRef.call(void 0, null);
13284
- const embedParams = new URLSearchParams({
13285
- autoplay: "1",
13286
- rel: "0",
13287
- modestbranding: "1",
13288
- playsinline: "1"
13289
- });
13290
- if (minimalControls) {
13291
- embedParams.set("controls", "0");
13292
- embedParams.set("showinfo", "0");
13293
- embedParams.set("fs", "0");
13294
- embedParams.set("iv_load_policy", "3");
13295
- embedParams.set("cc_load_policy", "0");
13296
- embedParams.set("disablekb", "1");
13297
- }
13298
- const embedUrl = `https://www.youtube-nocookie.com/embed/${videoId}?${embedParams.toString()}`;
13299
- const posterJpg = `https://i.ytimg.com/vi/${videoId}/mqdefault.jpg`;
13300
- const posterWebp = `https://i.ytimg.com/vi_webp/${videoId}/mqdefault.webp`;
13301
- _react.useEffect.call(void 0, () => {
13302
- if (!activated) return;
13303
- function handleOutsideClick(event) {
13304
- const target = event.target;
13305
- if (!target) return;
13306
- if (_optionalChain([wrapperRef, 'access', _384 => _384.current, 'optionalAccess', _385 => _385.contains, 'call', _386 => _386(target)])) return;
13307
- setActivated(false);
13288
+ const iframeRef = _react.useRef.call(void 0, null);
13289
+ const { embedUrl, posterJpg, posterWebp } = _react.useMemo.call(void 0, () => {
13290
+ const params = new URLSearchParams({
13291
+ autoplay: "1",
13292
+ rel: "0",
13293
+ modestbranding: "1",
13294
+ playsinline: "1",
13295
+ enablejsapi: "1"
13296
+ });
13297
+ if (minimalControls) {
13298
+ params.set("controls", "0");
13299
+ params.set("fs", "0");
13300
+ params.set("iv_load_policy", "3");
13301
+ params.set("cc_load_policy", "0");
13302
+ params.set("disablekb", "1");
13308
13303
  }
13309
- document.addEventListener("pointerdown", handleOutsideClick);
13310
- return () => document.removeEventListener("pointerdown", handleOutsideClick);
13311
- }, [activated]);
13304
+ return {
13305
+ embedUrl: `${YT_NOCOOKIE_ORIGIN}/embed/${videoId}?${params.toString()}`,
13306
+ posterJpg: `https://i.ytimg.com/vi/${videoId}/mqdefault.jpg`,
13307
+ posterWebp: `https://i.ytimg.com/vi_webp/${videoId}/mqdefault.webp`
13308
+ };
13309
+ }, [videoId, minimalControls]);
13312
13310
  _react.useEffect.call(void 0, () => {
13313
13311
  if (!activated) return;
13314
- function handleEscape(event) {
13315
- if (event.key === "Escape") setActivated(false);
13312
+ const iframe = iframeRef.current;
13313
+ if (!iframe) return;
13314
+ function subscribe() {
13315
+ _optionalChain([iframe, 'optionalAccess', _384 => _384.contentWindow, 'optionalAccess', _385 => _385.postMessage, 'call', _386 => _386(
13316
+ '{"event":"listening"}',
13317
+ YT_NOCOOKIE_ORIGIN
13318
+ )]);
13319
+ }
13320
+ iframe.addEventListener("load", subscribe);
13321
+ subscribe();
13322
+ let blurTimer = null;
13323
+ function handleMessage(event) {
13324
+ if (event.origin !== YT_NOCOOKIE_ORIGIN) return;
13325
+ if (typeof event.data !== "string") return;
13326
+ let payload = null;
13327
+ try {
13328
+ payload = JSON.parse(event.data);
13329
+ } catch (e24) {
13330
+ return;
13331
+ }
13332
+ if (!payload || payload.event !== "infoDelivery") return;
13333
+ const state = _optionalChain([payload, 'access', _387 => _387.info, 'optionalAccess', _388 => _388.playerState]);
13334
+ if (typeof state !== "number") return;
13335
+ if (state === YT_STATE_PLAYING) {
13336
+ if (blurTimer !== null) return;
13337
+ blurTimer = setTimeout(() => {
13338
+ blurTimer = null;
13339
+ _optionalChain([iframeRef, 'access', _389 => _389.current, 'optionalAccess', _390 => _390.blur, 'call', _391 => _391()]);
13340
+ }, YT_PLAYING_BLUR_DELAY_MS);
13341
+ return;
13342
+ }
13343
+ if (state === YT_STATE_ENDED) {
13344
+ setActivated(false);
13345
+ }
13316
13346
  }
13317
- document.addEventListener("keydown", handleEscape);
13318
- return () => document.removeEventListener("keydown", handleEscape);
13347
+ window.addEventListener("message", handleMessage);
13348
+ return () => {
13349
+ iframe.removeEventListener("load", subscribe);
13350
+ window.removeEventListener("message", handleMessage);
13351
+ if (blurTimer !== null) clearTimeout(blurTimer);
13352
+ };
13319
13353
  }, [activated]);
13320
13354
  const wrapperClass = `relative w-full ${_nullishCoalesce(className, () => ( ""))}`;
13321
13355
  const wrapperStyle = { paddingBottom: "56.25%" };
13322
13356
  if (activated) {
13323
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: wrapperRef, className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13357
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13324
13358
  "iframe",
13325
13359
  {
13360
+ ref: iframeRef,
13326
13361
  src: embedUrl,
13327
13362
  allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
13328
13363
  allowFullScreen: true,
@@ -13331,7 +13366,7 @@ function YouTubeFacadeInner({
13331
13366
  }
13332
13367
  ) });
13333
13368
  }
13334
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: wrapperRef, className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13369
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: wrapperClass, style: wrapperStyle, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13335
13370
  "button",
13336
13371
  {
13337
13372
  type: "button",
@@ -13353,7 +13388,7 @@ function YouTubeFacadeInner({
13353
13388
  }
13354
13389
  )
13355
13390
  ] }),
13356
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-ods-bg-inverse bg-opacity-20 transition-opacity duration-200 group-hover:bg-opacity-30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex items-center justify-center w-16 h-16 rounded-full bg-ods-accent text-ods-text-on-accent shadow-lg transition-transform duration-200 group-hover:scale-110", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { width: 24, height: 24, fill: "currentColor", viewBox: "0 0 24 24", className: "ml-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "polygon", { points: "5,3 19,12 5,21" }) }) }) })
13391
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-ods-bg-inverse bg-opacity-20 transition-opacity duration-200 group-hover:bg-opacity-30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex items-center justify-center w-16 h-16 rounded-full bg-ods-accent text-ods-text-on-accent shadow-lg transition-transform duration-200 group-hover:scale-110", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.PlayIcon, { size: 24, color: "currentColor", className: "ml-1" }) }) })
13357
13392
  ]
13358
13393
  }
13359
13394
  ) });
@@ -13500,7 +13535,7 @@ var MediaCarousel = _react.memo.call(void 0, function MediaCarousel2({
13500
13535
  loading: "lazy"
13501
13536
  }
13502
13537
  ),
13503
- (item.type === "video" || item.type === "youtube") && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-black/70 rounded-full p-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", { width: "12", height: "12", fill: "white", viewBox: "0 0 24 24", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", { d: "M8 5v14l11-7z" }) }) }) }),
13538
+ (item.type === "video" || item.type === "youtube") && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute inset-0 flex items-center justify-center bg-black/30", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-black/70 rounded-full p-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.PlayIcon, { size: 12, color: "white" }) }) }),
13504
13539
  isActive && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute bottom-1 right-1 w-2 h-2 bg-[#FFC008] rounded-full" })
13505
13540
  ]
13506
13541
  },
@@ -13954,8 +13989,8 @@ function PricingDisplay({
13954
13989
  }
13955
13990
  if (pricingArray.length === 1) {
13956
13991
  const item = pricingArray[0];
13957
- const price = _optionalChain([item, 'access', _387 => _387.ranges, 'optionalAccess', _388 => _388[0], 'optionalAccess', _389 => _389.min]) || 0;
13958
- const unit = _optionalChain([item, 'access', _390 => _390.ranges, 'optionalAccess', _391 => _391[0], 'optionalAccess', _392 => _392.unit]);
13992
+ const price = _optionalChain([item, 'access', _392 => _392.ranges, 'optionalAccess', _393 => _393[0], 'optionalAccess', _394 => _394.min]) || 0;
13993
+ const unit = _optionalChain([item, 'access', _395 => _395.ranges, 'optionalAccess', _396 => _396[0], 'optionalAccess', _397 => _397.unit]);
13959
13994
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
13960
13995
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: formatPriceValue(price, styleConfig.showTildePrefix) }),
13961
13996
  unit && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
@@ -13964,11 +13999,11 @@ function PricingDisplay({
13964
13999
  ] })
13965
14000
  ] });
13966
14001
  }
13967
- const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _393 => _393.ranges, 'optionalAccess', _394 => _394[0], 'optionalAccess', _395 => _395.min]) || 0, styleConfig.showTildePrefix));
13968
- const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _396 => _396.ranges, 'optionalAccess', _397 => _397[0], 'optionalAccess', _398 => _398.unit]));
14002
+ const priceValues = pricingArray.map((item) => formatPriceValue(_optionalChain([item, 'access', _398 => _398.ranges, 'optionalAccess', _399 => _399[0], 'optionalAccess', _400 => _400.min]) || 0, styleConfig.showTildePrefix));
14003
+ const itemWithUnit = pricingArray.find((item) => _optionalChain([item, 'access', _401 => _401.ranges, 'optionalAccess', _402 => _402[0], 'optionalAccess', _403 => _403.unit]));
13969
14004
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.fontFamily} ${className}`, children: [
13970
14005
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${styleConfig.priceTextColor} ${styleConfig.priceTextSize}`, children: priceValues.join(" | ") }),
13971
- itemWithUnit && _optionalChain([itemWithUnit, 'access', _399 => _399.ranges, 'optionalAccess', _400 => _400[0], 'optionalAccess', _401 => _401.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
14006
+ itemWithUnit && _optionalChain([itemWithUnit, 'access', _404 => _404.ranges, 'optionalAccess', _405 => _405[0], 'optionalAccess', _406 => _406.unit]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: `${styleConfig.secondaryTextColor} ${styleConfig.secondaryTextSize}`, children: [
13972
14007
  "/",
13973
14008
  itemWithUnit.ranges[0].unit
13974
14009
  ] })
@@ -14166,7 +14201,7 @@ function VendorTag({
14166
14201
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-4 h-4 bg-ods-accent rounded-sm flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-[#1A1A1A] text-[8px] font-bold", children: "\u2605" }) })
14167
14202
  };
14168
14203
  case "classification":
14169
- const classificationType = _optionalChain([text, 'optionalAccess', _402 => _402.toLowerCase, 'call', _403 => _403()]);
14204
+ const classificationType = _optionalChain([text, 'optionalAccess', _407 => _407.toLowerCase, 'call', _408 => _408()]);
14170
14205
  if (classificationType === "open_source") {
14171
14206
  return {
14172
14207
  text: "Open Source",
@@ -14220,7 +14255,7 @@ function SelectionSourceBadge({ source, hidden = false }) {
14220
14255
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
14221
14256
  VendorTag,
14222
14257
  {
14223
- type: _optionalChain([source, 'optionalAccess', _404 => _404.toLowerCase, 'call', _405 => _405()]),
14258
+ type: _optionalChain([source, 'optionalAccess', _409 => _409.toLowerCase, 'call', _410 => _410()]),
14224
14259
  size: "sm",
14225
14260
  hidden
14226
14261
  },
@@ -16340,12 +16375,12 @@ function OnboardingWalkthrough({
16340
16375
  }
16341
16376
  }, [state.completedSteps, markComplete]);
16342
16377
  const handleStepSkip = (step) => {
16343
- _optionalChain([step, 'access', _406 => _406.onSkip, 'optionalCall', _407 => _407()]);
16378
+ _optionalChain([step, 'access', _411 => _411.onSkip, 'optionalCall', _412 => _412()]);
16344
16379
  markSkipped(step.id);
16345
16380
  };
16346
16381
  const handleDismiss = () => {
16347
16382
  dismissOnboarding();
16348
- _optionalChain([onDismiss, 'optionalCall', _408 => _408()]);
16383
+ _optionalChain([onDismiss, 'optionalCall', _413 => _413()]);
16349
16384
  };
16350
16385
  if (state.dismissed) {
16351
16386
  return null;
@@ -16790,7 +16825,7 @@ var SecondaryAction = ({ action }) => {
16790
16825
  e.preventDefault();
16791
16826
  return;
16792
16827
  }
16793
- _optionalChain([action, 'access', _409 => _409.onClick, 'optionalCall', _410 => _410()]);
16828
+ _optionalChain([action, 'access', _414 => _414.onClick, 'optionalCall', _415 => _415()]);
16794
16829
  },
16795
16830
  [action]
16796
16831
  );
@@ -16831,13 +16866,13 @@ var MenuItem = ({ item, onItemClick }) => {
16831
16866
  const activate = _react.useCallback.call(void 0, () => {
16832
16867
  if (item.disabled) return;
16833
16868
  if (item.type === "checkbox") {
16834
- _optionalChain([item, 'access', _411 => _411.onClick, 'optionalCall', _412 => _412()]);
16835
- _optionalChain([onItemClick, 'optionalCall', _413 => _413(item)]);
16869
+ _optionalChain([item, 'access', _416 => _416.onClick, 'optionalCall', _417 => _417()]);
16870
+ _optionalChain([onItemClick, 'optionalCall', _418 => _418(item)]);
16836
16871
  return;
16837
16872
  }
16838
16873
  if (item.type === "submenu") return;
16839
- _optionalChain([item, 'access', _414 => _414.onClick, 'optionalCall', _415 => _415()]);
16840
- _optionalChain([onItemClick, 'optionalCall', _416 => _416(item)]);
16874
+ _optionalChain([item, 'access', _419 => _419.onClick, 'optionalCall', _420 => _420()]);
16875
+ _optionalChain([onItemClick, 'optionalCall', _421 => _421(item)]);
16841
16876
  }, [item, onItemClick]);
16842
16877
  const handleClick = _react.useCallback.call(void 0,
16843
16878
  (e) => {
@@ -16863,8 +16898,8 @@ var MenuItem = ({ item, onItemClick }) => {
16863
16898
  e.stopPropagation();
16864
16899
  return;
16865
16900
  }
16866
- _optionalChain([item, 'access', _417 => _417.onClick, 'optionalCall', _418 => _418()]);
16867
- _optionalChain([onItemClick, 'optionalCall', _419 => _419(item)]);
16901
+ _optionalChain([item, 'access', _422 => _422.onClick, 'optionalCall', _423 => _423()]);
16902
+ _optionalChain([onItemClick, 'optionalCall', _424 => _424(item)]);
16868
16903
  },
16869
16904
  [item, onItemClick]
16870
16905
  );
@@ -17019,7 +17054,7 @@ var ActionsMenuDropdown = ({
17019
17054
  const [open, setOpen] = _react.useState.call(void 0, false);
17020
17055
  const handleItemClick = _react.useCallback.call(void 0,
17021
17056
  (item) => {
17022
- _optionalChain([onItemClick, 'optionalCall', _420 => _420(item)]);
17057
+ _optionalChain([onItemClick, 'optionalCall', _425 => _425(item)]);
17023
17058
  if (item.type !== "checkbox" && item.type !== "submenu") {
17024
17059
  setOpen(false);
17025
17060
  }
@@ -17190,7 +17225,7 @@ function IconButtonsVariant({
17190
17225
  }) {
17191
17226
  const desktopActions = actions.filter((a) => !a.showOnlyMobile);
17192
17227
  const hasMenuActions = !!menuActions && menuActions.some((g) => g.items.length > 0);
17193
- const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _421 => _421[0], 'access', _422 => _422.submenu, 'optionalAccess', _423 => _423.length]);
17228
+ const isSingleAction = actions.length === 1 && !_optionalChain([actions, 'access', _426 => _426[0], 'access', _427 => _427.submenu, 'optionalAccess', _428 => _428.length]);
17194
17229
  const singleAction = isSingleAction ? actions[0] : null;
17195
17230
  const useSingleActionMobile = isSingleAction && !hasMenuActions;
17196
17231
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
@@ -17620,14 +17655,14 @@ function ReleaseDetailPage({
17620
17655
  releaseVersion
17621
17656
  ] })
17622
17657
  ] }) }),
17623
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _424 => _424.map, 'call', _425 => _425((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17658
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2 w-full", children: _optionalChain([blogTags, 'optionalAccess', _429 => _429.map, 'call', _430 => _430((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17624
17659
  StatusBadge,
17625
17660
  {
17626
- text: (tag.name || _optionalChain([tag, 'access', _426 => _426.blog_tags, 'optionalAccess', _427 => _427.name]) || "").toUpperCase(),
17661
+ text: (tag.name || _optionalChain([tag, 'access', _431 => _431.blog_tags, 'optionalAccess', _432 => _432.name]) || "").toUpperCase(),
17627
17662
  variant: "card",
17628
17663
  className: "bg-ods-card border border-ods-border"
17629
17664
  },
17630
- tag.id || _optionalChain([tag, 'access', _428 => _428.blog_tags, 'optionalAccess', _429 => _429.id])
17665
+ tag.id || _optionalChain([tag, 'access', _433 => _433.blog_tags, 'optionalAccess', _434 => _434.id])
17631
17666
  ))]) }),
17632
17667
  /* @__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: [
17633
17668
  /* @__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: [
@@ -17646,15 +17681,15 @@ function ReleaseDetailPage({
17646
17681
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17647
17682
  SquareAvatar,
17648
17683
  {
17649
- src: _optionalChain([author, 'optionalAccess', _430 => _430.avatar_url]) || "",
17650
- alt: _optionalChain([author, 'optionalAccess', _431 => _431.full_name]) || "Author",
17651
- fallback: getInitials4(_optionalChain([author, 'optionalAccess', _432 => _432.full_name]) || "Unknown"),
17684
+ src: _optionalChain([author, 'optionalAccess', _435 => _435.avatar_url]) || "",
17685
+ alt: _optionalChain([author, 'optionalAccess', _436 => _436.full_name]) || "Author",
17686
+ fallback: getInitials4(_optionalChain([author, 'optionalAccess', _437 => _437.full_name]) || "Unknown"),
17652
17687
  size: "md",
17653
17688
  variant: "round"
17654
17689
  }
17655
17690
  ),
17656
17691
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0 flex-1 min-w-0", children: [
17657
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _433 => _433.full_name]) || "Unknown Author" }),
17692
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h3 tracking-[-0.36px] text-ods-text-primary truncate", children: _optionalChain([author, 'optionalAccess', _438 => _438.full_name]) || "Unknown Author" }),
17658
17693
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[14px] leading-[20px] text-ods-text-secondary", children: "Author" })
17659
17694
  ] })
17660
17695
  ] })
@@ -17685,8 +17720,8 @@ function ReleaseDetailPage({
17685
17720
  videoBites,
17686
17721
  bitesTitle: "Video Clips",
17687
17722
  filterPublishedBites: true,
17688
- srtContent: _optionalChain([release, 'optionalAccess', _434 => _434.srt_content]),
17689
- captionsUrl: _optionalChain([release, 'optionalAccess', _435 => _435.captionsUrl])
17723
+ srtContent: _optionalChain([release, 'optionalAccess', _439 => _439.srt_content]),
17724
+ captionsUrl: _optionalChain([release, 'optionalAccess', _440 => _440.captionsUrl])
17690
17725
  }
17691
17726
  ) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17692
17727
  youtubeUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -17702,8 +17737,8 @@ function ReleaseDetailPage({
17702
17737
  Video2,
17703
17738
  {
17704
17739
  url: mainVideoUrl,
17705
- srtContent: _optionalChain([release, 'optionalAccess', _436 => _436.srt_content]),
17706
- captionsUrl: _optionalChain([release, 'optionalAccess', _437 => _437.captionsUrl]),
17740
+ srtContent: _optionalChain([release, 'optionalAccess', _441 => _441.srt_content]),
17741
+ captionsUrl: _optionalChain([release, 'optionalAccess', _442 => _442.captionsUrl]),
17707
17742
  layout: "centered"
17708
17743
  }
17709
17744
  ),
@@ -17793,7 +17828,7 @@ function ReleaseDetailPage({
17793
17828
  }
17794
17829
  )
17795
17830
  ] }),
17796
- (_optionalChain([githubReleases, 'optionalAccess', _438 => _438.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _439 => _439.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
17831
+ (_optionalChain([githubReleases, 'optionalAccess', _443 => _443.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _444 => _444.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1 w-full", children: [
17797
17832
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 tracking-[-0.28px] text-ods-text-secondary", children: "Related Links" }),
17798
17833
  /* @__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: [
17799
17834
  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: [
@@ -17822,7 +17857,7 @@ function ReleaseDetailPage({
17822
17857
  {
17823
17858
  href: path.startsWith("http") ? path : `/knowledge-base${path.startsWith("/") ? "" : "/"}${path}`,
17824
17859
  className: "text-h4 text-[#ffc008] hover:underline",
17825
- children: _optionalChain([path, 'access', _440 => _440.replace, 'call', _441 => _441(/^\//, ""), 'access', _442 => _442.split, 'call', _443 => _443("/"), 'access', _444 => _444.pop, 'call', _445 => _445(), 'optionalAccess', _446 => _446.replace, 'call', _447 => _447(/-/g, " ")]) || "View Article"
17860
+ children: _optionalChain([path, 'access', _445 => _445.replace, 'call', _446 => _446(/^\//, ""), 'access', _447 => _447.split, 'call', _448 => _448("/"), 'access', _449 => _449.pop, 'call', _450 => _450(), 'optionalAccess', _451 => _451.replace, 'call', _452 => _452(/-/g, " ")]) || "View Article"
17826
17861
  }
17827
17862
  ),
17828
17863
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-6 w-6 text-[#ffc008] shrink-0" })
@@ -18468,7 +18503,7 @@ function TagsManager({
18468
18503
  const name = search.trim();
18469
18504
  if (!name) return;
18470
18505
  const result = await onCreateTag(name);
18471
- if (_optionalChain([result, 'optionalAccess', _448 => _448.id])) {
18506
+ if (_optionalChain([result, 'optionalAccess', _453 => _453.id])) {
18472
18507
  onChange([...selectedIds, result.id]);
18473
18508
  setSearch("");
18474
18509
  }
@@ -18476,7 +18511,7 @@ function TagsManager({
18476
18511
  const startEdit = React52.useCallback((id, name) => {
18477
18512
  setEditingId(id);
18478
18513
  setEditingName(name);
18479
- setTimeout(() => _optionalChain([editInputRef, 'access', _449 => _449.current, 'optionalAccess', _450 => _450.focus, 'call', _451 => _451()]), 0);
18514
+ setTimeout(() => _optionalChain([editInputRef, 'access', _454 => _454.current, 'optionalAccess', _455 => _455.focus, 'call', _456 => _456()]), 0);
18480
18515
  }, []);
18481
18516
  const confirmEdit = React52.useCallback(async () => {
18482
18517
  if (!onUpdateTag || !editingId || !editingName.trim()) return;
@@ -18503,7 +18538,7 @@ function TagsManager({
18503
18538
  e.stopPropagation();
18504
18539
  onChange([]);
18505
18540
  setSearch("");
18506
- _optionalChain([inputRef, 'access', _452 => _452.current, 'optionalAccess', _453 => _453.focus, 'call', _454 => _454()]);
18541
+ _optionalChain([inputRef, 'access', _457 => _457.current, 'optionalAccess', _458 => _458.focus, 'call', _459 => _459()]);
18507
18542
  },
18508
18543
  [onChange]
18509
18544
  );
@@ -18602,10 +18637,10 @@ function TagsManager({
18602
18637
  align: "start",
18603
18638
  onOpenAutoFocus: (e) => {
18604
18639
  e.preventDefault();
18605
- _optionalChain([inputRef, 'access', _455 => _455.current, 'optionalAccess', _456 => _456.focus, 'call', _457 => _457()]);
18640
+ _optionalChain([inputRef, 'access', _460 => _460.current, 'optionalAccess', _461 => _461.focus, 'call', _462 => _462()]);
18606
18641
  },
18607
18642
  onInteractOutside: (e) => {
18608
- if (_optionalChain([containerRef, 'access', _458 => _458.current, 'optionalAccess', _459 => _459.contains, 'call', _460 => _460(e.target)])) {
18643
+ if (_optionalChain([containerRef, 'access', _463 => _463.current, 'optionalAccess', _464 => _464.contains, 'call', _465 => _465(e.target)])) {
18609
18644
  e.preventDefault();
18610
18645
  }
18611
18646
  },
@@ -19752,19 +19787,19 @@ function TabNavigation({
19752
19787
  const validTabIds = _react.useMemo.call(void 0, () => new Set(tabs.map((t) => t.id)), [tabs]);
19753
19788
  const getInitialTab = () => {
19754
19789
  if (isUrlSyncEnabled) {
19755
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _461 => _461.get, 'call', _462 => _462(paramName)]) || "";
19790
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _466 => _466.get, 'call', _467 => _467(paramName)]) || "";
19756
19791
  if (validTabIds.has(fromUrl)) {
19757
19792
  return fromUrl;
19758
19793
  }
19759
19794
  }
19760
- return defaultTab || _optionalChain([tabs, 'access', _463 => _463[0], 'optionalAccess', _464 => _464.id]) || "";
19795
+ return defaultTab || _optionalChain([tabs, 'access', _468 => _468[0], 'optionalAccess', _469 => _469.id]) || "";
19761
19796
  };
19762
19797
  const [internalActiveTab, setInternalActiveTab] = _react.useState.call(void 0, getInitialTab);
19763
19798
  const activeTab = isUrlSyncEnabled ? internalActiveTab : controlledActiveTab || "";
19764
19799
  _react.useEffect.call(void 0, () => {
19765
19800
  if (!isUrlSyncEnabled) return;
19766
- const fromUrl = _optionalChain([searchParams, 'optionalAccess', _465 => _465.get, 'call', _466 => _466(paramName)]) || "";
19767
- const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _467 => _467[0], 'optionalAccess', _468 => _468.id]) || "";
19801
+ const fromUrl = _optionalChain([searchParams, 'optionalAccess', _470 => _470.get, 'call', _471 => _471(paramName)]) || "";
19802
+ const nextTab = validTabIds.has(fromUrl) ? fromUrl : defaultTab || _optionalChain([tabs, 'access', _472 => _472[0], 'optionalAccess', _473 => _473.id]) || "";
19768
19803
  if (nextTab !== internalActiveTab) {
19769
19804
  setInternalActiveTab(nextTab);
19770
19805
  }
@@ -19772,13 +19807,13 @@ function TabNavigation({
19772
19807
  const handleTabChange = (tabId) => {
19773
19808
  if (isUrlSyncEnabled) {
19774
19809
  setInternalActiveTab(tabId);
19775
- const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _469 => _469.toString, 'call', _470 => _470()]));
19810
+ const params = new URLSearchParams(_optionalChain([searchParams, 'optionalAccess', _474 => _474.toString, 'call', _475 => _475()]));
19776
19811
  params.set(paramName, tabId);
19777
19812
  const method = replaceState ? "replace" : "push";
19778
19813
  router[method](`${pathname}?${params.toString()}`);
19779
- _optionalChain([controlledOnTabChange, 'optionalCall', _471 => _471(tabId)]);
19814
+ _optionalChain([controlledOnTabChange, 'optionalCall', _476 => _476(tabId)]);
19780
19815
  } else {
19781
- _optionalChain([controlledOnTabChange, 'optionalCall', _472 => _472(tabId)]);
19816
+ _optionalChain([controlledOnTabChange, 'optionalCall', _477 => _477(tabId)]);
19782
19817
  }
19783
19818
  };
19784
19819
  const scrollRef = _react.useRef.call(void 0, null);
@@ -19866,7 +19901,7 @@ function TabNavigation({
19866
19901
  var getTabById = (tabs, tabId) => tabs.find((tab) => tab.id === tabId);
19867
19902
  var getTabComponent = (tabs, tabId) => {
19868
19903
  const tab = getTabById(tabs, tabId);
19869
- return _optionalChain([tab, 'optionalAccess', _473 => _473.component]) || null;
19904
+ return _optionalChain([tab, 'optionalAccess', _478 => _478.component]) || null;
19870
19905
  };
19871
19906
 
19872
19907
  // src/components/ui/alert.tsx
@@ -20203,16 +20238,16 @@ function FilterModal({
20203
20238
  };
20204
20239
  const handleReset = () => {
20205
20240
  onFilterChange({});
20206
- _optionalChain([onTagsChange, 'optionalCall', _474 => _474([])]);
20241
+ _optionalChain([onTagsChange, 'optionalCall', _479 => _479([])]);
20207
20242
  onClose();
20208
20243
  };
20209
20244
  const handleApply = () => {
20210
20245
  onFilterChange(selectedFilters);
20211
- _optionalChain([onTagsChange, 'optionalCall', _475 => _475(pendingTags)]);
20246
+ _optionalChain([onTagsChange, 'optionalCall', _480 => _480(pendingTags)]);
20212
20247
  onClose();
20213
20248
  };
20214
20249
  const getColumnDirection = (columnKey) => {
20215
- return _optionalChain([sortConfig, 'optionalAccess', _476 => _476.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
20250
+ return _optionalChain([sortConfig, 'optionalAccess', _481 => _481.sortBy]) === columnKey ? sortConfig.sortDirection : void 0;
20216
20251
  };
20217
20252
  const hasSort = !!sortConfig && sortConfig.columns.length > 0;
20218
20253
  const hasFilterGroups = filterGroups.length > 0;
@@ -20261,7 +20296,7 @@ function FilterModal({
20261
20296
  {
20262
20297
  column,
20263
20298
  currentDirection: getColumnDirection(column.key),
20264
- onSort: (direction) => _optionalChain([onSort, 'optionalCall', _477 => _477(column.key, direction)]),
20299
+ onSort: (direction) => _optionalChain([onSort, 'optionalCall', _482 => _482(column.key, direction)]),
20265
20300
  onClear: onSortClear ? () => onSortClear(column.key) : void 0
20266
20301
  },
20267
20302
  column.key
@@ -20427,9 +20462,9 @@ function TitleBlock({
20427
20462
  const [imageFailed, setImageFailed] = React33.default.useState(false);
20428
20463
  React33.default.useEffect(() => {
20429
20464
  setImageFailed(false);
20430
- }, [_optionalChain([image, 'optionalAccess', _478 => _478.src])]);
20465
+ }, [_optionalChain([image, 'optionalAccess', _483 => _483.src])]);
20431
20466
  const showImageFallback = !!image && (imageFailed || !image.src);
20432
- const initials = getInitials3(_optionalChain([image, 'optionalAccess', _479 => _479.alt]) || title);
20467
+ const initials = getInitials3(_optionalChain([image, 'optionalAccess', _484 => _484.alt]) || title);
20433
20468
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20434
20469
  "div",
20435
20470
  {
@@ -21225,26 +21260,26 @@ function DeviceCard({
21225
21260
  ] }),
21226
21261
  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 })
21227
21262
  ] }),
21228
- _optionalChain([actions, 'access', _480 => _480.moreButton, 'optionalAccess', _481 => _481.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21263
+ _optionalChain([actions, 'access', _485 => _485.moreButton, 'optionalAccess', _486 => _486.visible]) !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21229
21264
  "div",
21230
21265
  {
21231
21266
  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",
21232
21267
  onClick: (e) => {
21233
21268
  e.stopPropagation();
21234
- _optionalChain([actions, 'access', _482 => _482.moreButton, 'optionalAccess', _483 => _483.onClick, 'optionalCall', _484 => _484()]);
21269
+ _optionalChain([actions, 'access', _487 => _487.moreButton, 'optionalAccess', _488 => _488.onClick, 'optionalCall', _489 => _489()]);
21235
21270
  },
21236
21271
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTMD5LDX4cjs.Ellipsis01Icon, { className: "text-ods-text-primary" })
21237
21272
  }
21238
21273
  ),
21239
- _optionalChain([actions, 'access', _485 => _485.detailsButton, 'optionalAccess', _486 => _486.visible]) !== false && _optionalChain([actions, 'access', _487 => _487.detailsButton, 'optionalAccess', _488 => _488.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
21240
- _optionalChain([actions, 'access', _489 => _489.customActions, 'optionalAccess', _490 => _490.map, 'call', _491 => _491(
21274
+ _optionalChain([actions, 'access', _490 => _490.detailsButton, 'optionalAccess', _491 => _491.visible]) !== false && _optionalChain([actions, 'access', _492 => _492.detailsButton, 'optionalAccess', _493 => _493.component]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0", onClick: (e) => e.stopPropagation(), children: actions.detailsButton.component }),
21275
+ _optionalChain([actions, 'access', _494 => _494.customActions, 'optionalAccess', _495 => _495.map, 'call', _496 => _496(
21241
21276
  (action, index) => action.visible !== false && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21242
21277
  "div",
21243
21278
  {
21244
21279
  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",
21245
21280
  onClick: (e) => {
21246
21281
  e.stopPropagation();
21247
- _optionalChain([action, 'access', _492 => _492.onClick, 'optionalCall', _493 => _493()]);
21282
+ _optionalChain([action, 'access', _497 => _497.onClick, 'optionalCall', _498 => _498()]);
21248
21283
  },
21249
21284
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h3 text-ods-text-primary text-nowrap tracking-[-0.36px]", children: action.label })
21250
21285
  },
@@ -21603,7 +21638,7 @@ function MoreActionsMenu({
21603
21638
  ] });
21604
21639
  const handleActivate = (e) => {
21605
21640
  e.stopPropagation();
21606
- if (!item.disabled) _optionalChain([item, 'access', _494 => _494.onClick, 'optionalCall', _495 => _495()]);
21641
+ if (!item.disabled) _optionalChain([item, 'access', _499 => _499.onClick, 'optionalCall', _500 => _500()]);
21607
21642
  };
21608
21643
  if (item.href) {
21609
21644
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -21753,7 +21788,7 @@ function OrganizationIcon({
21753
21788
  backgroundStyle = "dark"
21754
21789
  }) {
21755
21790
  const { width, height } = imageSizeMap2[size];
21756
- const initials = _optionalChain([organizationName, 'optionalAccess', _496 => _496.substring, 'call', _497 => _497(0, 2)]) || "??";
21791
+ const initials = _optionalChain([organizationName, 'optionalAccess', _501 => _501.substring, 'call', _502 => _502(0, 2)]) || "??";
21757
21792
  const containerClasses = _chunkOFAYLG6Dcjs.cn.call(void 0,
21758
21793
  sizeClasses3[size],
21759
21794
  "rounded-lg flex items-center justify-center flex-shrink-0 relative",
@@ -21804,7 +21839,7 @@ function OrganizationCard({
21804
21839
  const handleActionClick = (e) => {
21805
21840
  e.preventDefault();
21806
21841
  e.stopPropagation();
21807
- _optionalChain([actionButton, 'optionalAccess', _498 => _498.onClick, 'call', _499 => _499(organization, e)]);
21842
+ _optionalChain([actionButton, 'optionalAccess', _503 => _503.onClick, 'call', _504 => _504(organization, e)]);
21808
21843
  };
21809
21844
  const card = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21810
21845
  "div",
@@ -21961,7 +21996,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
21961
21996
  onKeyDown: (e) => {
21962
21997
  if (e.key === "Enter" || e.key === " ") {
21963
21998
  e.preventDefault();
21964
- _optionalChain([onClick, 'optionalCall', _500 => _500()]);
21999
+ _optionalChain([onClick, 'optionalCall', _505 => _505()]);
21965
22000
  }
21966
22001
  },
21967
22002
  children: [
@@ -22062,7 +22097,7 @@ var LogsList = React77.forwardRef(({
22062
22097
  log,
22063
22098
  isLast: index === logs.length - 1,
22064
22099
  showConnector,
22065
- onClick: () => _optionalChain([onLogClick, 'optionalCall', _501 => _501(log)])
22100
+ onClick: () => _optionalChain([onLogClick, 'optionalCall', _506 => _506(log)])
22066
22101
  },
22067
22102
  log.id
22068
22103
  ))
@@ -22651,7 +22686,7 @@ function CursorPaginationSimple({
22651
22686
  {
22652
22687
  variant: "transparent",
22653
22688
  size: "icon",
22654
- onClick: () => _optionalChain([onPrevious, 'optionalCall', _502 => _502("")]),
22689
+ onClick: () => _optionalChain([onPrevious, 'optionalCall', _507 => _507("")]),
22655
22690
  disabled: !hasPreviousPage || loading,
22656
22691
  className: "h-8 w-8",
22657
22692
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { className: "h-4 w-4" }),
@@ -22663,7 +22698,7 @@ function CursorPaginationSimple({
22663
22698
  {
22664
22699
  variant: "transparent",
22665
22700
  size: "icon",
22666
- onClick: () => _optionalChain([onNext, 'optionalCall', _503 => _503("")]),
22701
+ onClick: () => _optionalChain([onNext, 'optionalCall', _508 => _508("")]),
22667
22702
  disabled: !hasNextPage || loading,
22668
22703
  className: "h-8 w-8",
22669
22704
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { className: "h-4 w-4" }),
@@ -22723,7 +22758,7 @@ function TableColumnFilterDropdown({
22723
22758
  placement = "bottom-start",
22724
22759
  dropdownClassName = "min-w-[240px]"
22725
22760
  }) {
22726
- const activeCount = _optionalChain([filters, 'optionalAccess', _504 => _504[columnKey], 'optionalAccess', _505 => _505.length]) || 0;
22761
+ const activeCount = _optionalChain([filters, 'optionalAccess', _509 => _509[columnKey], 'optionalAccess', _510 => _510.length]) || 0;
22727
22762
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22728
22763
  FiltersDropdown,
22729
22764
  {
@@ -22766,7 +22801,7 @@ function TableColumnFilterDropdown({
22766
22801
  delete newFilters[columnKey];
22767
22802
  onFilterChange(newFilters);
22768
22803
  },
22769
- currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _506 => _506[columnKey]]) || [] },
22804
+ currentFilters: { [columnKey]: _optionalChain([filters, 'optionalAccess', _511 => _511[columnKey]]) || [] },
22770
22805
  placement,
22771
22806
  dropdownClassName
22772
22807
  }
@@ -23063,7 +23098,7 @@ function TableRow({
23063
23098
  const keys = column.key.split(".");
23064
23099
  let value = item;
23065
23100
  for (const key of keys) {
23066
- value = _optionalChain([value, 'optionalAccess', _507 => _507[key]]);
23101
+ value = _optionalChain([value, 'optionalAccess', _512 => _512[key]]);
23067
23102
  }
23068
23103
  if (value === null || value === void 0) {
23069
23104
  return "-";
@@ -23133,7 +23168,7 @@ function TableRow({
23133
23168
  // src/components/ui/table/table.tsx
23134
23169
 
23135
23170
  function injectSyntheticColumns(columns, rowActions, renderRowActions, rowHref) {
23136
- const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _508 => _508.length])) || Boolean(renderRowActions);
23171
+ const hasActions = Boolean(_optionalChain([rowActions, 'optionalAccess', _513 => _513.length])) || Boolean(renderRowActions);
23137
23172
  const result = [...columns];
23138
23173
  if (hasActions) {
23139
23174
  const actionsColumn = {
@@ -23227,7 +23262,7 @@ function Table({
23227
23262
  return rowKey(item);
23228
23263
  }
23229
23264
  const key = item[rowKey];
23230
- return _optionalChain([key, 'optionalAccess', _509 => _509.toString, 'call', _510 => _510()]) || index.toString();
23265
+ return _optionalChain([key, 'optionalAccess', _514 => _514.toString, 'call', _515 => _515()]) || index.toString();
23231
23266
  };
23232
23267
  const getRowClassName = (item, index) => {
23233
23268
  if (typeof rowClassName === "function") {
@@ -23261,23 +23296,23 @@ function Table({
23261
23296
  const allSelected = selectedRows.length > 0 && selectedRows.length === data.length;
23262
23297
  const someSelected = selectedRows.length > 0 && selectedRows.length < data.length;
23263
23298
  const sentinelRef = _react.useRef.call(void 0, null);
23264
- const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _511 => _511.onLoadMore]));
23265
- onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _512 => _512.onLoadMore]);
23299
+ const onLoadMoreRef = _react.useRef.call(void 0, _optionalChain([infiniteScroll, 'optionalAccess', _516 => _516.onLoadMore]));
23300
+ onLoadMoreRef.current = _optionalChain([infiniteScroll, 'optionalAccess', _517 => _517.onLoadMore]);
23266
23301
  _react.useEffect.call(void 0, () => {
23267
- if (!_optionalChain([infiniteScroll, 'optionalAccess', _513 => _513.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
23302
+ if (!_optionalChain([infiniteScroll, 'optionalAccess', _518 => _518.hasNextPage]) || infiniteScroll.isFetchingNextPage) return;
23268
23303
  const sentinel = sentinelRef.current;
23269
23304
  if (!sentinel) return;
23270
23305
  const observer = new IntersectionObserver(
23271
23306
  (entries) => {
23272
- if (_optionalChain([entries, 'access', _514 => _514[0], 'optionalAccess', _515 => _515.isIntersecting])) {
23273
- _optionalChain([onLoadMoreRef, 'access', _516 => _516.current, 'optionalCall', _517 => _517()]);
23307
+ if (_optionalChain([entries, 'access', _519 => _519[0], 'optionalAccess', _520 => _520.isIntersecting])) {
23308
+ _optionalChain([onLoadMoreRef, 'access', _521 => _521.current, 'optionalCall', _522 => _522()]);
23274
23309
  }
23275
23310
  },
23276
23311
  { rootMargin: "200px" }
23277
23312
  );
23278
23313
  observer.observe(sentinel);
23279
23314
  return () => observer.disconnect();
23280
- }, [_optionalChain([infiniteScroll, 'optionalAccess', _518 => _518.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _519 => _519.isFetchingNextPage])]);
23315
+ }, [_optionalChain([infiniteScroll, 'optionalAccess', _523 => _523.hasNextPage]), _optionalChain([infiniteScroll, 'optionalAccess', _524 => _524.isFetchingNextPage])]);
23281
23316
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col gap-1 w-full", containerClassName), children: [
23282
23317
  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: [
23283
23318
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-text-secondary text-sm", children: [
@@ -23348,7 +23383,7 @@ function Table({
23348
23383
  },
23349
23384
  getRowKey(item, index)
23350
23385
  )),
23351
- _optionalChain([infiniteScroll, 'optionalAccess', _520 => _520.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23386
+ _optionalChain([infiniteScroll, 'optionalAccess', _525 => _525.isFetchingNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23352
23387
  TableCardSkeleton,
23353
23388
  {
23354
23389
  columns,
@@ -23357,7 +23392,7 @@ function Table({
23357
23392
  hasChevron: Boolean(rowHref)
23358
23393
  }
23359
23394
  ),
23360
- _optionalChain([infiniteScroll, 'optionalAccess', _521 => _521.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
23395
+ _optionalChain([infiniteScroll, 'optionalAccess', _526 => _526.hasNextPage]) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef, className: "h-1", "aria-hidden": "true" }),
23361
23396
  !infiniteScroll && Array.from({ length: Math.max(0, skeletonRows - data.length) }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
23362
23397
  "div",
23363
23398
  {
@@ -23715,7 +23750,7 @@ function QueryReportTable({
23715
23750
  );
23716
23751
  const handleExport = () => {
23717
23752
  exportToCSV(data, columns, exportFilename);
23718
- _optionalChain([onExport, 'optionalCall', _522 => _522()]);
23753
+ _optionalChain([onExport, 'optionalCall', _527 => _527()]);
23719
23754
  };
23720
23755
  const tableMinWidth = columns.length * (columnWidth + 16);
23721
23756
  const {
@@ -23888,7 +23923,7 @@ function DataTableColumnFilter({
23888
23923
  align = "left"
23889
23924
  }) {
23890
23925
  const currentValue = column.getFilterValue();
23891
- const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _523 => _523.length]), () => ( 0));
23926
+ const activeCount = _nullishCoalesce(_optionalChain([currentValue, 'optionalAccess', _528 => _528.length]), () => ( 0));
23892
23927
  const sections = _react.useMemo.call(void 0,
23893
23928
  () => [
23894
23929
  {
@@ -23968,7 +24003,7 @@ function DataTableHeader({
23968
24003
  const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
23969
24004
  if (header.isPlaceholder) return false;
23970
24005
  if (isLgUp) return true;
23971
- return Boolean(_optionalChain([header, 'access', _524 => _524.column, 'access', _525 => _525.columnDef, 'access', _526 => _526.meta, 'optionalAccess', _527 => _527.filter]));
24006
+ return Boolean(_optionalChain([header, 'access', _529 => _529.column, 'access', _530 => _530.columnDef, 'access', _531 => _531.meta, 'optionalAccess', _532 => _532.filter]));
23972
24007
  });
23973
24008
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23974
24009
  "div",
@@ -23998,20 +24033,20 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
23998
24033
  if (header.isPlaceholder) return null;
23999
24034
  const column = header.column;
24000
24035
  const meta = column.columnDef.meta;
24001
- const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _528 => _528.filter]));
24002
- const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _529 => _529.align]), () => ( "left"));
24003
- const canSort = _optionalChain([meta, 'optionalAccess', _530 => _530.sortable]) === true;
24004
- const sortDir = _optionalChain([sort, 'optionalAccess', _531 => _531.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24036
+ const hasFilter = Boolean(_optionalChain([meta, 'optionalAccess', _533 => _533.filter]));
24037
+ const align = _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _534 => _534.align]), () => ( "left"));
24038
+ const canSort = _optionalChain([meta, 'optionalAccess', _535 => _535.sortable]) === true;
24039
+ const sortDir = _optionalChain([sort, 'optionalAccess', _536 => _536.id]) === column.id ? sort.desc ? "desc" : "asc" : false;
24005
24040
  if (!isLgUp && !hasFilter) return null;
24006
24041
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24007
24042
  "div",
24008
24043
  {
24009
24044
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24010
24045
  "flex items-stretch",
24011
- isLgUp && (_optionalChain([meta, 'optionalAccess', _532 => _532.width]) || "flex-1 min-w-0"),
24012
- _optionalChain([meta, 'optionalAccess', _533 => _533.headerClassName]),
24046
+ isLgUp && (_optionalChain([meta, 'optionalAccess', _537 => _537.width]) || "flex-1 min-w-0"),
24047
+ _optionalChain([meta, 'optionalAccess', _538 => _538.headerClassName]),
24013
24048
  // Don't apply hide classes if column is filterable on tablet (keep filter accessible)
24014
- !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _534 => _534.hideAt]))
24049
+ !(hasFilter && !isLgUp) && getHideClasses2(_optionalChain([meta, 'optionalAccess', _539 => _539.hideAt]))
24015
24050
  ),
24016
24051
  children: hasFilter ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24017
24052
  DataTableColumnFilter,
@@ -24030,7 +24065,7 @@ function HeaderCell({ header, isLgUp, sort, onSortChange }) {
24030
24065
  isLgUp && alignJustify(align),
24031
24066
  canSort && "group cursor-pointer"
24032
24067
  ),
24033
- onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _535 => _535(column.id)]) : void 0,
24068
+ onClick: canSort ? () => _optionalChain([onSortChange, 'optionalCall', _540 => _540(column.id)]) : void 0,
24034
24069
  children: [
24035
24070
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderLabel, { header }),
24036
24071
  canSort && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortIcon, { sorted: sortDir })
@@ -24114,7 +24149,7 @@ function DataTableSkeleton({
24114
24149
  }) {
24115
24150
  const table = useDataTableContext();
24116
24151
  const columns = table.getVisibleFlatColumns();
24117
- const firstColumnId = _optionalChain([columns, 'access', _536 => _536[0], 'optionalAccess', _537 => _537.id]);
24152
+ const firstColumnId = _optionalChain([columns, 'access', _541 => _541[0], 'optionalAccess', _542 => _542.id]);
24118
24153
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: Array.from({ length: rows }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24119
24154
  "div",
24120
24155
  {
@@ -24138,7 +24173,7 @@ function DataTableSkeleton({
24138
24173
  {
24139
24174
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24140
24175
  "flex flex-col justify-center shrink-0",
24141
- _optionalChain([meta, 'optionalAccess', _538 => _538.width]) || "flex-1"
24176
+ _optionalChain([meta, 'optionalAccess', _543 => _543.width]) || "flex-1"
24142
24177
  ),
24143
24178
  children: [
24144
24179
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 bg-ods-bg-surface rounded-sm w-3/4 mb-[var(--spacing-system-xxs)]" }),
@@ -24184,7 +24219,7 @@ function DataTableRowImpl({
24184
24219
  (e) => {
24185
24220
  const target = e.target;
24186
24221
  if (target.closest("[data-no-row-click]")) return;
24187
- _optionalChain([onClick, 'optionalCall', _539 => _539(row.original)]);
24222
+ _optionalChain([onClick, 'optionalCall', _544 => _544(row.original)]);
24188
24223
  },
24189
24224
  [onClick, row.original]
24190
24225
  );
@@ -24222,10 +24257,10 @@ function DataTableRowImpl({
24222
24257
  {
24223
24258
  className: _chunkOFAYLG6Dcjs.cn.call(void 0,
24224
24259
  "flex flex-col overflow-hidden",
24225
- alignJustify(_optionalChain([meta, 'optionalAccess', _540 => _540.align])),
24226
- _optionalChain([meta, 'optionalAccess', _541 => _541.width]) || "flex-1 min-w-0",
24227
- _optionalChain([meta, 'optionalAccess', _542 => _542.cellClassName]),
24228
- getHideClasses2(_optionalChain([meta, 'optionalAccess', _543 => _543.hideAt]))
24260
+ alignJustify(_optionalChain([meta, 'optionalAccess', _545 => _545.align])),
24261
+ _optionalChain([meta, 'optionalAccess', _546 => _546.width]) || "flex-1 min-w-0",
24262
+ _optionalChain([meta, 'optionalAccess', _547 => _547.cellClassName]),
24263
+ getHideClasses2(_optionalChain([meta, 'optionalAccess', _548 => _548.hideAt]))
24229
24264
  ),
24230
24265
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CellContent, { children: _reacttable.flexRender.call(void 0, cell.column.columnDef.cell, cell.getContext()) })
24231
24266
  },
@@ -24271,7 +24306,7 @@ function DataTableBody({
24271
24306
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex flex-col gap-[var(--spacing-system-xsf)] w-full", className), children: [
24272
24307
  rows.map((row, index) => {
24273
24308
  const item = row.original;
24274
- const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _544 => _544(item)]), () => ( void 0));
24309
+ const href = _nullishCoalesce(_optionalChain([rowHref, 'optionalCall', _549 => _549(item)]), () => ( void 0));
24275
24310
  const cls = typeof rowClassName === "function" ? rowClassName(item, index) : rowClassName;
24276
24311
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
24277
24312
  DataTableRow,
@@ -24335,7 +24370,7 @@ function DataTableInfiniteFooter({
24335
24370
  if (!sentinel) return;
24336
24371
  const observer = new IntersectionObserver(
24337
24372
  (entries) => {
24338
- if (_optionalChain([entries, 'access', _545 => _545[0], 'optionalAccess', _546 => _546.isIntersecting])) onLoadMoreRef.current();
24373
+ if (_optionalChain([entries, 'access', _550 => _550[0], 'optionalAccess', _551 => _551.isIntersecting])) onLoadMoreRef.current();
24339
24374
  },
24340
24375
  { rootMargin }
24341
24376
  );
@@ -24383,7 +24418,7 @@ function DataTableRowCount({
24383
24418
  const table = useDataTableContext();
24384
24419
  const count = _nullishCoalesce(totalCount, () => ( table.getRowModel().rows.length));
24385
24420
  if (hideWhenEmpty && count === 0) return null;
24386
- const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _547 => _547(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
24421
+ const label = _nullishCoalesce(_optionalChain([pluralize, 'optionalCall', _552 => _552(count, itemName)]), () => ( (count === 1 ? itemName : `${itemName}s`)));
24387
24422
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24388
24423
  "span",
24389
24424
  {
@@ -24477,12 +24512,12 @@ function PhoneInput({
24477
24512
  const runValidation = _react.useCallback.call(void 0, (phone) => {
24478
24513
  if (!phone || digitCount(phone) === 0) {
24479
24514
  setIsInvalid(false);
24480
- _optionalChain([onValidationChange, 'optionalCall', _548 => _548(false)]);
24515
+ _optionalChain([onValidationChange, 'optionalCall', _553 => _553(false)]);
24481
24516
  return;
24482
24517
  }
24483
24518
  const invalid = !validatePhoneNumber(phone, countryCode);
24484
24519
  setIsInvalid(invalid);
24485
- _optionalChain([onValidationChange, 'optionalCall', _549 => _549(invalid)]);
24520
+ _optionalChain([onValidationChange, 'optionalCall', _554 => _554(invalid)]);
24486
24521
  }, [countryCode, digitCount, onValidationChange]);
24487
24522
  const debouncedValidation = _react.useCallback.call(void 0, (phone) => {
24488
24523
  if (debounceRef.current) clearTimeout(debounceRef.current);
@@ -24531,7 +24566,7 @@ function PhoneInput({
24531
24566
  debouncedValidation(val);
24532
24567
  } else if (digitCount(val) === 0) {
24533
24568
  setIsInvalid(false);
24534
- _optionalChain([onValidationChange, 'optionalCall', _550 => _550(false)]);
24569
+ _optionalChain([onValidationChange, 'optionalCall', _555 => _555(false)]);
24535
24570
  }
24536
24571
  }
24537
24572
  },
@@ -24638,7 +24673,7 @@ function SearchInput({
24638
24673
  if (!showHiddenTags) return;
24639
24674
  const handleClick = (e) => {
24640
24675
  const target = e.target;
24641
- if (!_optionalChain([hiddenTagsRef, 'access', _551 => _551.current, 'optionalAccess', _552 => _552.contains, 'call', _553 => _553(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _554 => _554.current, 'optionalAccess', _555 => _555.contains, 'call', _556 => _556(target)])) {
24676
+ if (!_optionalChain([hiddenTagsRef, 'access', _556 => _556.current, 'optionalAccess', _557 => _557.contains, 'call', _558 => _558(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _559 => _559.current, 'optionalAccess', _560 => _560.contains, 'call', _561 => _561(target)])) {
24642
24677
  setShowHiddenTags(false);
24643
24678
  }
24644
24679
  };
@@ -24686,10 +24721,10 @@ function SearchInput({
24686
24721
  } else {
24687
24722
  setInternalValue("");
24688
24723
  }
24689
- _optionalChain([inputRef, 'access', _557 => _557.current, 'optionalAccess', _558 => _558.focus, 'call', _559 => _559()]);
24724
+ _optionalChain([inputRef, 'access', _562 => _562.current, 'optionalAccess', _563 => _563.focus, 'call', _564 => _564()]);
24690
24725
  };
24691
24726
  const handleResultClick = (result) => {
24692
- _optionalChain([onResultSelect, 'optionalCall', _560 => _560(result)]);
24727
+ _optionalChain([onResultSelect, 'optionalCall', _565 => _565(result)]);
24693
24728
  setIsOpen(false);
24694
24729
  };
24695
24730
  const handleKeyDown = (e) => {
@@ -24712,7 +24747,7 @@ function SearchInput({
24712
24747
  if (highlightedIndex >= 0 && flatResults[highlightedIndex]) {
24713
24748
  handleResultClick(flatResults[highlightedIndex]);
24714
24749
  } else {
24715
- _optionalChain([onSubmit, 'optionalCall', _561 => _561(currentValue)]);
24750
+ _optionalChain([onSubmit, 'optionalCall', _566 => _566(currentValue)]);
24716
24751
  }
24717
24752
  break;
24718
24753
  case "Escape":
@@ -24790,7 +24825,7 @@ function SearchInput({
24790
24825
  dropdownVisible && "!border-ods-accent"
24791
24826
  ),
24792
24827
  onClick: () => {
24793
- _optionalChain([inputRef, 'access', _562 => _562.current, 'optionalAccess', _563 => _563.focus, 'call', _564 => _564()]);
24828
+ _optionalChain([inputRef, 'access', _567 => _567.current, 'optionalAccess', _568 => _568.focus, 'call', _569 => _569()]);
24794
24829
  setIsOpen(true);
24795
24830
  },
24796
24831
  children: [
@@ -24874,10 +24909,10 @@ function SearchInput({
24874
24909
  align: "start",
24875
24910
  onOpenAutoFocus: (e) => {
24876
24911
  e.preventDefault();
24877
- _optionalChain([inputRef, 'access', _565 => _565.current, 'optionalAccess', _566 => _566.focus, 'call', _567 => _567()]);
24912
+ _optionalChain([inputRef, 'access', _570 => _570.current, 'optionalAccess', _571 => _571.focus, 'call', _572 => _572()]);
24878
24913
  },
24879
24914
  onInteractOutside: (e) => {
24880
- if (_optionalChain([containerRef, 'access', _568 => _568.current, 'optionalAccess', _569 => _569.contains, 'call', _570 => _570(e.target)])) {
24915
+ if (_optionalChain([containerRef, 'access', _573 => _573.current, 'optionalAccess', _574 => _574.contains, 'call', _575 => _575(e.target)])) {
24881
24916
  e.preventDefault();
24882
24917
  }
24883
24918
  },
@@ -24894,10 +24929,10 @@ function SearchInput({
24894
24929
  ref: hiddenTagsPopupRef,
24895
24930
  items: hiddenChips.map((chip) => ({ label: chip.label, value: chip.id })),
24896
24931
  style: {
24897
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _571 => _571.current, 'optionalAccess', _572 => _572.getBoundingClientRect, 'call', _573 => _573(), 'access', _574 => _574.left]), () => ( 0))) : 0
24932
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([containerRef, 'access', _576 => _576.current, 'optionalAccess', _577 => _577.getBoundingClientRect, 'call', _578 => _578(), 'access', _579 => _579.left]), () => ( 0))) : 0
24898
24933
  },
24899
24934
  onRemove: (value2) => {
24900
- _optionalChain([onFilterRemove, 'optionalCall', _575 => _575(value2)]);
24935
+ _optionalChain([onFilterRemove, 'optionalCall', _580 => _580(value2)]);
24901
24936
  if (hiddenCount <= 1) setShowHiddenTags(false);
24902
24937
  }
24903
24938
  }
@@ -24948,7 +24983,7 @@ function FilterListItem({
24948
24983
  }) {
24949
24984
  const handleToggle = () => {
24950
24985
  if (disabled) return;
24951
- _optionalChain([onToggle, 'optionalCall', _576 => _576(!selected)]);
24986
+ _optionalChain([onToggle, 'optionalCall', _581 => _581(!selected)]);
24952
24987
  };
24953
24988
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24954
24989
  "div",
@@ -24995,7 +25030,7 @@ function FilterListItem({
24995
25030
  CheckboxPrimitive4.Root,
24996
25031
  {
24997
25032
  checked: selected,
24998
- onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _577 => _577(c === true)]),
25033
+ onCheckedChange: (c) => _optionalChain([onToggle, 'optionalCall', _582 => _582(c === true)]),
24999
25034
  onClick: (e) => e.stopPropagation(),
25000
25035
  disabled,
25001
25036
  "aria-label": title,
@@ -25094,7 +25129,7 @@ function TagSearchInput({
25094
25129
  if (!showHiddenTags) return;
25095
25130
  const handleClick = (e) => {
25096
25131
  const target = e.target;
25097
- if (!_optionalChain([hiddenTagsRef, 'access', _578 => _578.current, 'optionalAccess', _579 => _579.contains, 'call', _580 => _580(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _581 => _581.current, 'optionalAccess', _582 => _582.contains, 'call', _583 => _583(target)])) {
25132
+ if (!_optionalChain([hiddenTagsRef, 'access', _583 => _583.current, 'optionalAccess', _584 => _584.contains, 'call', _585 => _585(target)]) && !_optionalChain([hiddenTagsPopupRef, 'access', _586 => _586.current, 'optionalAccess', _587 => _587.contains, 'call', _588 => _588(target)])) {
25098
25133
  setShowHiddenTags(false);
25099
25134
  }
25100
25135
  };
@@ -25110,13 +25145,13 @@ function TagSearchInput({
25110
25145
  e.preventDefault();
25111
25146
  onSubmit(searchValue);
25112
25147
  }
25113
- _optionalChain([onKeyDown, 'optionalCall', _584 => _584(e)]);
25148
+ _optionalChain([onKeyDown, 'optionalCall', _589 => _589(e)]);
25114
25149
  };
25115
25150
  const handleClearAll = (e) => {
25116
25151
  e.stopPropagation();
25117
25152
  e.preventDefault();
25118
- _optionalChain([onClearAll, 'optionalCall', _585 => _585()]);
25119
- _optionalChain([inputRef, 'access', _586 => _586.current, 'optionalAccess', _587 => _587.focus, 'call', _588 => _588()]);
25153
+ _optionalChain([onClearAll, 'optionalCall', _590 => _590()]);
25154
+ _optionalChain([inputRef, 'access', _591 => _591.current, 'optionalAccess', _592 => _592.focus, 'call', _593 => _593()]);
25120
25155
  };
25121
25156
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: wrapperRef, className: "relative", children: [
25122
25157
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -25133,7 +25168,7 @@ function TagSearchInput({
25133
25168
  className
25134
25169
  ),
25135
25170
  onClick: () => {
25136
- if (!disabled) _optionalChain([inputRef, 'access', _589 => _589.current, 'optionalAccess', _590 => _590.focus, 'call', _591 => _591()]);
25171
+ if (!disabled) _optionalChain([inputRef, 'access', _594 => _594.current, 'optionalAccess', _595 => _595.focus, 'call', _596 => _596()]);
25137
25172
  },
25138
25173
  children: [
25139
25174
  /* @__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" }) }),
@@ -25205,7 +25240,7 @@ function TagSearchInput({
25205
25240
  items: hiddenTags,
25206
25241
  disabled,
25207
25242
  style: {
25208
- left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _592 => _592.current, 'optionalAccess', _593 => _593.getBoundingClientRect, 'call', _594 => _594(), 'access', _595 => _595.left]), () => ( 0))) : 0
25243
+ left: badgeRef.current ? badgeRef.current.getBoundingClientRect().left - (_nullishCoalesce(_optionalChain([wrapperRef, 'access', _597 => _597.current, 'optionalAccess', _598 => _598.getBoundingClientRect, 'call', _599 => _599(), 'access', _600 => _600.left]), () => ( 0))) : 0
25209
25244
  },
25210
25245
  onRemove: (value) => {
25211
25246
  onTagRemove(value);
@@ -25307,7 +25342,7 @@ function MarkdownEditor({
25307
25342
  const [defaultExtraCommands, setDefaultExtraCommands] = _react.useState.call(void 0, []);
25308
25343
  _react.useEffect.call(void 0, () => {
25309
25344
  Promise.resolve().then(() => _interopRequireWildcard(require("@uiw/react-md-editor"))).then((mod) => {
25310
- if (_optionalChain([mod, 'access', _596 => _596.commands, 'optionalAccess', _597 => _597.getExtraCommands])) {
25345
+ if (_optionalChain([mod, 'access', _601 => _601.commands, 'optionalAccess', _602 => _602.getExtraCommands])) {
25311
25346
  setDefaultExtraCommands(mod.commands.getExtraCommands());
25312
25347
  }
25313
25348
  });
@@ -25341,7 +25376,7 @@ function MarkdownEditor({
25341
25376
  const isImage = file.type.startsWith("image/");
25342
25377
  const markdown = isImage ? `![${file.name}](${url})` : `[${file.name}](${url})`;
25343
25378
  insertTextAtCursor(markdown);
25344
- _optionalChain([onFileUploaded, 'optionalCall', _598 => _598(url, file.name)]);
25379
+ _optionalChain([onFileUploaded, 'optionalCall', _603 => _603(url, file.name)]);
25345
25380
  } catch (error) {
25346
25381
  console.error("File upload failed:", error);
25347
25382
  setUploadProgress("Upload failed. Please try again.");
@@ -25354,7 +25389,7 @@ function MarkdownEditor({
25354
25389
  );
25355
25390
  const handleFileInputChange = _react.useCallback.call(void 0,
25356
25391
  (e) => {
25357
- const file = _optionalChain([e, 'access', _599 => _599.target, 'access', _600 => _600.files, 'optionalAccess', _601 => _601[0]]);
25392
+ const file = _optionalChain([e, 'access', _604 => _604.target, 'access', _605 => _605.files, 'optionalAccess', _606 => _606[0]]);
25358
25393
  if (file) {
25359
25394
  handleFileUpload(file);
25360
25395
  e.target.value = "";
@@ -25365,7 +25400,7 @@ function MarkdownEditor({
25365
25400
  const handlePaste = _react.useCallback.call(void 0,
25366
25401
  (e) => {
25367
25402
  if (!onUploadFile) return;
25368
- const items = _optionalChain([e, 'access', _602 => _602.clipboardData, 'optionalAccess', _603 => _603.items]);
25403
+ const items = _optionalChain([e, 'access', _607 => _607.clipboardData, 'optionalAccess', _608 => _608.items]);
25369
25404
  if (!items) return;
25370
25405
  for (const item of items) {
25371
25406
  if (item.type.startsWith("image/")) {
@@ -25390,7 +25425,7 @@ function MarkdownEditor({
25390
25425
  buttonProps: { "aria-label": "Upload file", title: "Upload file" },
25391
25426
  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" }),
25392
25427
  execute: () => {
25393
- _optionalChain([fileInputRef, 'access', _604 => _604.current, 'optionalAccess', _605 => _605.click, 'call', _606 => _606()]);
25428
+ _optionalChain([fileInputRef, 'access', _609 => _609.current, 'optionalAccess', _610 => _610.click, 'call', _611 => _611()]);
25394
25429
  }
25395
25430
  } : null;
25396
25431
  const extraCommands = uploadCommand ? [...defaultExtraCommands, uploadCommand] : defaultExtraCommands;
@@ -25402,7 +25437,7 @@ function MarkdownEditor({
25402
25437
  const EDGE_ZONE = 60;
25403
25438
  const MAX_SCROLL_SPEED = 15;
25404
25439
  const findScrollParent = _react.useCallback.call(void 0, (el) => {
25405
- let node = _optionalChain([el, 'optionalAccess', _607 => _607.parentElement]);
25440
+ let node = _optionalChain([el, 'optionalAccess', _612 => _612.parentElement]);
25406
25441
  while (node && node !== document.documentElement) {
25407
25442
  const { overflowY } = window.getComputedStyle(node);
25408
25443
  if ((overflowY === "auto" || overflowY === "scroll") && node.scrollHeight > node.clientHeight) {
@@ -25545,7 +25580,7 @@ function matchesAccept(file, accept) {
25545
25580
  });
25546
25581
  }
25547
25582
  function dragHasFiles(e) {
25548
- const types = _optionalChain([e, 'access', _608 => _608.dataTransfer, 'optionalAccess', _609 => _609.types]);
25583
+ const types = _optionalChain([e, 'access', _613 => _613.dataTransfer, 'optionalAccess', _614 => _614.types]);
25549
25584
  if (!types) return false;
25550
25585
  for (let i = 0; i < types.length; i++) {
25551
25586
  if (types[i] === "Files") return true;
@@ -25640,7 +25675,7 @@ function FileUpload({
25640
25675
  e.stopPropagation();
25641
25676
  setDragActive(false);
25642
25677
  if (disabled) return;
25643
- if (_optionalChain([e, 'access', _610 => _610.dataTransfer, 'access', _611 => _611.files, 'optionalAccess', _612 => _612.length])) {
25678
+ if (_optionalChain([e, 'access', _615 => _615.dataTransfer, 'access', _616 => _616.files, 'optionalAccess', _617 => _617.length])) {
25644
25679
  handleFiles(e.dataTransfer.files);
25645
25680
  }
25646
25681
  };
@@ -25668,7 +25703,7 @@ function FileUpload({
25668
25703
  e.preventDefault();
25669
25704
  dragCounter = 0;
25670
25705
  setDragActive(false);
25671
- if (_optionalChain([e, 'access', _613 => _613.dataTransfer, 'optionalAccess', _614 => _614.files, 'optionalAccess', _615 => _615.length])) {
25706
+ if (_optionalChain([e, 'access', _618 => _618.dataTransfer, 'optionalAccess', _619 => _619.files, 'optionalAccess', _620 => _620.length])) {
25672
25707
  handleFilesRef.current(e.dataTransfer.files);
25673
25708
  }
25674
25709
  };
@@ -25690,7 +25725,7 @@ function FileUpload({
25690
25725
  };
25691
25726
  }, [acceptWindowDrops, disabled]);
25692
25727
  const handleFileSelect = (e) => {
25693
- if (_optionalChain([e, 'access', _616 => _616.target, 'access', _617 => _617.files, 'optionalAccess', _618 => _618.length])) {
25728
+ if (_optionalChain([e, 'access', _621 => _621.target, 'access', _622 => _622.files, 'optionalAccess', _623 => _623.length])) {
25694
25729
  handleFiles(e.target.files);
25695
25730
  }
25696
25731
  };
@@ -25707,7 +25742,7 @@ function FileUpload({
25707
25742
  };
25708
25743
  const openDialog = async () => {
25709
25744
  if (disabled) return;
25710
- _optionalChain([fileInputRef, 'access', _619 => _619.current, 'optionalAccess', _620 => _620.click, 'call', _621 => _621()]);
25745
+ _optionalChain([fileInputRef, 'access', _624 => _624.current, 'optionalAccess', _625 => _625.click, 'call', _626 => _626()]);
25711
25746
  };
25712
25747
  const displayError = error || validationError || void 0;
25713
25748
  const hasFiles = isManaged ? managedFiles.length > 0 : files.length > 0;
@@ -25785,7 +25820,7 @@ function FileUpload({
25785
25820
  "button",
25786
25821
  {
25787
25822
  type: "button",
25788
- onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _622 => _622(entry.id)]),
25823
+ onClick: () => _optionalChain([onRemoveManagedFile, 'optionalCall', _627 => _627(entry.id)]),
25789
25824
  className: "shrink-0 p-1 rounded hover:bg-ods-bg transition-colors",
25790
25825
  "aria-label": `Remove ${entry.fileName}`,
25791
25826
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.X, { className: "size-4 text-ods-text-secondary" })
@@ -25908,7 +25943,7 @@ function ImageUploader({
25908
25943
  onChange(file);
25909
25944
  };
25910
25945
  const handleFileSelect = (e) => {
25911
- validateAndEmit(_optionalChain([e, 'access', _623 => _623.target, 'access', _624 => _624.files, 'optionalAccess', _625 => _625[0]]));
25946
+ validateAndEmit(_optionalChain([e, 'access', _628 => _628.target, 'access', _629 => _629.files, 'optionalAccess', _630 => _630[0]]));
25912
25947
  if (inputRef.current) inputRef.current.value = "";
25913
25948
  };
25914
25949
  const handleDrag = (e) => {
@@ -25923,11 +25958,11 @@ function ImageUploader({
25923
25958
  e.stopPropagation();
25924
25959
  setDragActive(false);
25925
25960
  if (!interactive) return;
25926
- validateAndEmit(_optionalChain([e, 'access', _626 => _626.dataTransfer, 'access', _627 => _627.files, 'optionalAccess', _628 => _628[0]]));
25961
+ validateAndEmit(_optionalChain([e, 'access', _631 => _631.dataTransfer, 'access', _632 => _632.files, 'optionalAccess', _633 => _633[0]]));
25927
25962
  };
25928
25963
  const openDialog = () => {
25929
25964
  if (!interactive) return;
25930
- _optionalChain([inputRef, 'access', _629 => _629.current, 'optionalAccess', _630 => _630.click, 'call', _631 => _631()]);
25965
+ _optionalChain([inputRef, 'access', _634 => _634.current, 'optionalAccess', _635 => _635.click, 'call', _636 => _636()]);
25931
25966
  };
25932
25967
  const handleRootKeyDown = (e) => {
25933
25968
  if (hasImage || !interactive) return;
@@ -26084,7 +26119,7 @@ function CompactAssigneeDropdown({
26084
26119
  return [current, ...filtered.filter((o) => o.value !== currentAssignee.id)];
26085
26120
  }, [filtered, currentAssignee]);
26086
26121
  const handleSelect = (userId) => {
26087
- const next = _optionalChain([currentAssignee, 'optionalAccess', _632 => _632.id]) === userId ? null : userId;
26122
+ const next = _optionalChain([currentAssignee, 'optionalAccess', _637 => _637.id]) === userId ? null : userId;
26088
26123
  onAssign(next);
26089
26124
  setIsOpen(false);
26090
26125
  };
@@ -26149,7 +26184,7 @@ function CompactAssigneeDropdown({
26149
26184
  }
26150
26185
  ) }),
26151
26186
  /* @__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) => {
26152
- const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _633 => _633.id]) === opt.value;
26187
+ const isCurrent = _optionalChain([currentAssignee, 'optionalAccess', _638 => _638.id]) === opt.value;
26153
26188
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26154
26189
  "button",
26155
26190
  {
@@ -26218,7 +26253,7 @@ function DefaultAssigneeDropdown({
26218
26253
  Autocomplete,
26219
26254
  {
26220
26255
  options,
26221
- value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _634 => _634.id]), () => ( null)),
26256
+ value: _nullishCoalesce(_optionalChain([currentAssignee, 'optionalAccess', _639 => _639.id]), () => ( null)),
26222
26257
  onChange: (val) => {
26223
26258
  onAssign(val);
26224
26259
  setIsEditing(false);
@@ -26576,14 +26611,14 @@ function TicketInfoSection({
26576
26611
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26577
26612
  SquareAvatar,
26578
26613
  {
26579
- src: _optionalChain([organization, 'optionalAccess', _635 => _635.imageSrc]),
26580
- alt: _optionalChain([organization, 'optionalAccess', _636 => _636.name]),
26581
- fallback: _optionalChain([organization, 'optionalAccess', _637 => _637.name]) || "Org",
26614
+ src: _optionalChain([organization, 'optionalAccess', _640 => _640.imageSrc]),
26615
+ alt: _optionalChain([organization, 'optionalAccess', _641 => _641.name]),
26616
+ fallback: _optionalChain([organization, 'optionalAccess', _642 => _642.name]) || "Org",
26582
26617
  size: "md",
26583
26618
  className: "shrink-0"
26584
26619
  }
26585
26620
  ),
26586
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _638 => _638.name]) || "Unassigned", label: "Organization" })
26621
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InfoCell2, { value: _optionalChain([organization, 'optionalAccess', _643 => _643.name]) || "Unassigned", label: "Organization" })
26587
26622
  ] }),
26588
26623
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0", children: assigned ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26589
26624
  AssigneeDropdown,
@@ -26604,10 +26639,10 @@ function TicketInfoSection({
26604
26639
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26605
26640
  InfoCell2,
26606
26641
  {
26607
- value: _optionalChain([device, 'optionalAccess', _639 => _639.name]) || "Unassigned",
26642
+ value: _optionalChain([device, 'optionalAccess', _644 => _644.name]) || "Unassigned",
26608
26643
  label: "Device",
26609
- icon: _optionalChain([device, 'optionalAccess', _640 => _640.icon]),
26610
- onClick: _optionalChain([device, 'optionalAccess', _641 => _641.onClick])
26644
+ icon: _optionalChain([device, 'optionalAccess', _645 => _645.icon]),
26645
+ onClick: _optionalChain([device, 'optionalAccess', _646 => _646.onClick])
26611
26646
  }
26612
26647
  ),
26613
26648
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 min-w-0", children: [
@@ -27366,10 +27401,10 @@ var getContentDimensions = (config) => {
27366
27401
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
27367
27402
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
27368
27403
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
27369
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _642 => _642.mobileContentDimensions, 'optionalAccess', _643 => _643.width]))), () => ( defaultMobile.width));
27370
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _644 => _644.mobileContentDimensions, 'optionalAccess', _645 => _645.height]))), () => ( defaultMobile.height));
27371
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _646 => _646.desktopContentDimensions, 'optionalAccess', _647 => _647.width]))), () => ( defaultDesktop.width));
27372
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _648 => _648.desktopContentDimensions, 'optionalAccess', _649 => _649.height]))), () => ( defaultDesktop.height));
27404
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _647 => _647.mobileContentDimensions, 'optionalAccess', _648 => _648.width]))), () => ( defaultMobile.width));
27405
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _649 => _649.mobileContentDimensions, 'optionalAccess', _650 => _650.height]))), () => ( defaultMobile.height));
27406
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _651 => _651.desktopContentDimensions, 'optionalAccess', _652 => _652.width]))), () => ( defaultDesktop.width));
27407
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _653 => _653.desktopContentDimensions, 'optionalAccess', _654 => _654.height]))), () => ( defaultDesktop.height));
27373
27408
  return {
27374
27409
  mobile: { width: mobileWidth, height: mobileHeight },
27375
27410
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -27503,7 +27538,7 @@ function renderUnifiedUI(state, handlers, config, iframeRef) {
27503
27538
  const contentDimensions = getContentDimensions(config);
27504
27539
  const mobileHeight = contentDimensions.mobile.height;
27505
27540
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
27506
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _650 => _650.innerHeight]) * 0.85 || 650)}px`;
27541
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _655 => _655.innerHeight]) * 0.85 || 650)}px`;
27507
27542
  })(),
27508
27543
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
27509
27544
  const contentDimensions = getContentDimensions(config);
@@ -27608,7 +27643,7 @@ var FigmaPrototypeViewer = ({
27608
27643
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
27609
27644
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
27610
27645
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
27611
- config.defaultSectionId || _optionalChain([config, 'access', _651 => _651.sections, 'access', _652 => _652[0], 'optionalAccess', _653 => _653.id]) || ""
27646
+ config.defaultSectionId || _optionalChain([config, 'access', _656 => _656.sections, 'access', _657 => _657[0], 'optionalAccess', _658 => _658.id]) || ""
27612
27647
  );
27613
27648
  const activeSection = externalActiveSection || internalActiveSection;
27614
27649
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -27698,7 +27733,7 @@ var FigmaPrototypeViewer = ({
27698
27733
  const handleMessage = (event) => {
27699
27734
  if (event.origin !== "https://www.figma.com") return;
27700
27735
  const validEvents = ["INITIAL_LOAD", "NEW_STATE", "PRESENTED_NODE_CHANGED"];
27701
- if (_optionalChain([event, 'access', _654 => _654.data, 'optionalAccess', _655 => _655.type]) && validEvents.includes(event.data.type)) {
27736
+ if (_optionalChain([event, 'access', _659 => _659.data, 'optionalAccess', _660 => _660.type]) && validEvents.includes(event.data.type)) {
27702
27737
  const figmaEvent = event.data;
27703
27738
  console.log("[Figma Event]", figmaEvent.type, viewMode);
27704
27739
  switch (figmaEvent.type) {
@@ -27708,19 +27743,19 @@ var FigmaPrototypeViewer = ({
27708
27743
  setIframeState("READY");
27709
27744
  break;
27710
27745
  case "PRESENTED_NODE_CHANGED":
27711
- if (_optionalChain([figmaEvent, 'access', _656 => _656.data, 'optionalAccess', _657 => _657.presentedNodeId])) {
27746
+ if (_optionalChain([figmaEvent, 'access', _661 => _661.data, 'optionalAccess', _662 => _662.presentedNodeId])) {
27712
27747
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
27713
27748
  if (!isNavigating) {
27714
27749
  const matchingSection = config.sections.find((s) => {
27715
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _658 => _658.data, 'optionalAccess', _659 => _659.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _660 => _660.data, 'optionalAccess', _661 => _661.presentedNodeId]);
27716
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _662 => _662.data, 'optionalAccess', _663 => _663.presentedNodeId]) || _optionalChain([s, 'access', _664 => _664.mobileStartingNodeId, 'optionalAccess', _665 => _665.replace, 'call', _666 => _666(":", "-")]) === _optionalChain([figmaEvent, 'access', _667 => _667.data, 'optionalAccess', _668 => _668.presentedNodeId]);
27750
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _663 => _663.data, 'optionalAccess', _664 => _664.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _665 => _665.data, 'optionalAccess', _666 => _666.presentedNodeId]);
27751
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _667 => _667.data, 'optionalAccess', _668 => _668.presentedNodeId]) || _optionalChain([s, 'access', _669 => _669.mobileStartingNodeId, 'optionalAccess', _670 => _670.replace, 'call', _671 => _671(":", "-")]) === _optionalChain([figmaEvent, 'access', _672 => _672.data, 'optionalAccess', _673 => _673.presentedNodeId]);
27717
27752
  return desktopMatch || mobileMatch;
27718
27753
  });
27719
27754
  if (matchingSection && matchingSection.id !== activeSection) {
27720
27755
  if (!externalActiveSection) {
27721
27756
  setInternalActiveSection(matchingSection.id);
27722
27757
  }
27723
- _optionalChain([config, 'access', _669 => _669.onSectionChange, 'optionalCall', _670 => _670(matchingSection.id)]);
27758
+ _optionalChain([config, 'access', _674 => _674.onSectionChange, 'optionalCall', _675 => _675(matchingSection.id)]);
27724
27759
  }
27725
27760
  }
27726
27761
  }
@@ -27733,7 +27768,7 @@ var FigmaPrototypeViewer = ({
27733
27768
  }, [config.sections, activeSection, isNavigating, externalActiveSection, config.onSectionChange, viewMode]);
27734
27769
  const navigateToSection = _react.useCallback.call(void 0, (sectionId) => {
27735
27770
  const section = config.sections.find((s) => s.id === sectionId);
27736
- if (!section || !_optionalChain([iframeRef, 'access', _671 => _671.current, 'optionalAccess', _672 => _672.contentWindow]) || !isInitialized) {
27771
+ if (!section || !_optionalChain([iframeRef, 'access', _676 => _676.current, 'optionalAccess', _677 => _677.contentWindow]) || !isInitialized) {
27737
27772
  return;
27738
27773
  }
27739
27774
  setIsNavigating(true);
@@ -27741,7 +27776,7 @@ var FigmaPrototypeViewer = ({
27741
27776
  if (!externalActiveSection) {
27742
27777
  setInternalActiveSection(sectionId);
27743
27778
  }
27744
- _optionalChain([config, 'access', _673 => _673.onSectionChange, 'optionalCall', _674 => _674(sectionId)]);
27779
+ _optionalChain([config, 'access', _678 => _678.onSectionChange, 'optionalCall', _679 => _679(sectionId)]);
27745
27780
  const command = {
27746
27781
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
27747
27782
  data: { nodeId }
@@ -28061,7 +28096,7 @@ var FiltersDropdown = ({
28061
28096
  defaults[section.id] = section.defaultSelected || [];
28062
28097
  });
28063
28098
  setSelectedFilters(defaults);
28064
- _optionalChain([onReset, 'optionalCall', _675 => _675()]);
28099
+ _optionalChain([onReset, 'optionalCall', _680 => _680()]);
28065
28100
  setIsOpen(false);
28066
28101
  };
28067
28102
  const handleApply = () => {
@@ -28355,7 +28390,7 @@ function MediaGalleryManager({
28355
28390
  const [deletingIndex, setDeletingIndex] = _react.useState.call(void 0, null);
28356
28391
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
28357
28392
  const handleFileSelect = _react.useCallback.call(void 0, async (event) => {
28358
- const file = _optionalChain([event, 'access', _676 => _676.target, 'access', _677 => _677.files, 'optionalAccess', _678 => _678[0]]);
28393
+ const file = _optionalChain([event, 'access', _681 => _681.target, 'access', _682 => _682.files, 'optionalAccess', _683 => _683[0]]);
28359
28394
  if (!file) return;
28360
28395
  let mediaType;
28361
28396
  if (file.type.startsWith("image/")) {
@@ -28470,7 +28505,7 @@ function MediaGalleryManager({
28470
28505
  {
28471
28506
  type: "button",
28472
28507
  variant: "outline",
28473
- onClick: () => _optionalChain([fileInputRef, 'access', _679 => _679.current, 'optionalAccess', _680 => _680.click, 'call', _681 => _681()]),
28508
+ onClick: () => _optionalChain([fileInputRef, 'access', _684 => _684.current, 'optionalAccess', _685 => _685.click, 'call', _686 => _686()]),
28474
28509
  disabled: isUploading,
28475
28510
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
28476
28511
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -29255,7 +29290,7 @@ function ReleaseMediaManager({
29255
29290
  const fileInputRef = _react.useRef.call(void 0, null);
29256
29291
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
29257
29292
  const handleFileSelect = async (event) => {
29258
- const file = _optionalChain([event, 'access', _682 => _682.target, 'access', _683 => _683.files, 'optionalAccess', _684 => _684[0]]);
29293
+ const file = _optionalChain([event, 'access', _687 => _687.target, 'access', _688 => _688.files, 'optionalAccess', _689 => _689[0]]);
29259
29294
  if (!file) return;
29260
29295
  let mediaType;
29261
29296
  if (file.type.startsWith("image/")) {
@@ -29335,7 +29370,7 @@ function ReleaseMediaManager({
29335
29370
  {
29336
29371
  type: "button",
29337
29372
  variant: "outline",
29338
- onClick: () => _optionalChain([fileInputRef, 'access', _685 => _685.current, 'optionalAccess', _686 => _686.click, 'call', _687 => _687()]),
29373
+ onClick: () => _optionalChain([fileInputRef, 'access', _690 => _690.current, 'optionalAccess', _691 => _691.click, 'call', _692 => _692()]),
29339
29374
  disabled: uploadingIndex !== null,
29340
29375
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
29341
29376
  className: "font-['DM_Sans'] text-[16px] font-bold",
@@ -29548,7 +29583,7 @@ function SEOEditorPreview({
29548
29583
  const displayImage = hasOgImage || hasFeaturedImage;
29549
29584
  const handleImageUpload = async (event) => {
29550
29585
  if (!onOgImageUpload) return;
29551
- const file = _optionalChain([event, 'access', _688 => _688.target, 'access', _689 => _689.files, 'optionalAccess', _690 => _690[0]]);
29586
+ const file = _optionalChain([event, 'access', _693 => _693.target, 'access', _694 => _694.files, 'optionalAccess', _695 => _695[0]]);
29552
29587
  if (!file) return;
29553
29588
  setIsUploading(true);
29554
29589
  try {
@@ -29679,7 +29714,7 @@ function SEOEditorPreview({
29679
29714
  type: "button",
29680
29715
  variant: "outline",
29681
29716
  size: "icon",
29682
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _691 => _691.click, 'call', _692 => _692()]),
29717
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _696 => _696.click, 'call', _697 => _697()]),
29683
29718
  disabled: disabled || isUploading,
29684
29719
  className: "bg-white text-black hover:bg-gray-100 rounded-full opacity-0 group-hover:opacity-100",
29685
29720
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -29702,7 +29737,7 @@ function SEOEditorPreview({
29702
29737
  "div",
29703
29738
  {
29704
29739
  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",
29705
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _693 => _693.click, 'call', _694 => _694()]),
29740
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _698 => _698.click, 'call', _699 => _699()]),
29706
29741
  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: [
29707
29742
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-8 w-8 text-ods-text-secondary mb-2" }),
29708
29743
  /* @__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" })
@@ -29787,7 +29822,7 @@ function SocialLinksManager({
29787
29822
  className = ""
29788
29823
  }) {
29789
29824
  const addLink = () => {
29790
- const firstPlatform = _optionalChain([platforms, 'access', _695 => _695[0], 'optionalAccess', _696 => _696.name]) || "website";
29825
+ const firstPlatform = _optionalChain([platforms, 'access', _700 => _700[0], 'optionalAccess', _701 => _701.name]) || "website";
29791
29826
  onChange([...links, { platform: firstPlatform, url: "" }]);
29792
29827
  };
29793
29828
  const removeLink = (index) => {
@@ -29799,7 +29834,7 @@ function SocialLinksManager({
29799
29834
  onChange(updated);
29800
29835
  };
29801
29836
  const getIcon = (link, platform) => {
29802
- const iconKey = _optionalChain([platform, 'optionalAccess', _697 => _697.icon_name]) || link.platform;
29837
+ const iconKey = _optionalChain([platform, 'optionalAccess', _702 => _702.icon_name]) || link.platform;
29803
29838
  const IconComponent = iconMap[iconKey];
29804
29839
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "w-5 h-5 text-ods-text-secondary" }) : null;
29805
29840
  };
@@ -29824,7 +29859,7 @@ function SocialLinksManager({
29824
29859
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
29825
29860
  _chunkBJTOSUT4cjs.Input,
29826
29861
  {
29827
- placeholder: _optionalChain([platform, 'optionalAccess', _698 => _698.placeholder]) || "Profile URL",
29862
+ placeholder: _optionalChain([platform, 'optionalAccess', _703 => _703.placeholder]) || "Profile URL",
29828
29863
  value: link.url,
29829
29864
  onChange: (e) => updateLink(index, "url", e.target.value),
29830
29865
  onKeyDown: (e) => {
@@ -30426,8 +30461,8 @@ function VideoSourceSelector({
30426
30461
  onVideoSourceTypeChange,
30427
30462
  youtubeUrl,
30428
30463
  onYoutubeUrlChange,
30429
- uploadedVideoUrl,
30430
- onUploadedVideoUrlChange,
30464
+ mainVideoUrl,
30465
+ onMainVideoUrlChange,
30431
30466
  onUploadVideo,
30432
30467
  showAIBadge = true,
30433
30468
  isAIGenerated = false,
@@ -30453,7 +30488,7 @@ function VideoSourceSelector({
30453
30488
  input.accept = "video/*";
30454
30489
  input.onchange = async (e) => {
30455
30490
  const target = e.target;
30456
- const file = _optionalChain([target, 'access', _699 => _699.files, 'optionalAccess', _700 => _700[0]]);
30491
+ const file = _optionalChain([target, 'access', _704 => _704.files, 'optionalAccess', _705 => _705[0]]);
30457
30492
  if (!file) return;
30458
30493
  setIsUploading(true);
30459
30494
  setUploadProgress(0);
@@ -30465,7 +30500,7 @@ function VideoSourceSelector({
30465
30500
  });
30466
30501
  setUploadProgress(100);
30467
30502
  setUploadMessage("Upload complete!");
30468
- onUploadedVideoUrlChange(url);
30503
+ onMainVideoUrlChange(url);
30469
30504
  } catch (err) {
30470
30505
  setUploadError(err instanceof Error ? err.message : "Failed to upload video");
30471
30506
  } finally {
@@ -30477,10 +30512,10 @@ function VideoSourceSelector({
30477
30512
  }
30478
30513
  };
30479
30514
  input.click();
30480
- }, [onUploadVideo, onUploadedVideoUrlChange]);
30515
+ }, [onUploadVideo, onMainVideoUrlChange]);
30481
30516
  const handleDeleteVideo = _react.useCallback.call(void 0, () => {
30482
- onUploadedVideoUrlChange("");
30483
- }, [onUploadedVideoUrlChange]);
30517
+ onMainVideoUrlChange("");
30518
+ }, [onMainVideoUrlChange]);
30484
30519
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 p-6 bg-ods-card border border-ods-border rounded-lg ${className}`, children: [
30485
30520
  showTitle && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "h3", { className: "font-['Azeret_Mono'] text-[18px] font-semibold uppercase text-ods-text-primary flex items-center gap-2", children: [
30486
30521
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Video, { className: "h-5 w-5" }),
@@ -30571,10 +30606,10 @@ function VideoSourceSelector({
30571
30606
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-xs text-ods-text-secondary", children: uploadMessage })
30572
30607
  ] }),
30573
30608
  uploadError && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-ods-attention-red-error mb-3", children: uploadError }),
30574
- uploadedVideoUrl ? VideoPreviewComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30609
+ mainVideoUrl ? VideoPreviewComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30575
30610
  VideoPreviewComponent,
30576
30611
  {
30577
- videoUrl: uploadedVideoUrl,
30612
+ videoUrl: mainVideoUrl,
30578
30613
  onDelete: handleDeleteVideo,
30579
30614
  isAIGenerated
30580
30615
  }
@@ -30584,7 +30619,7 @@ function VideoSourceSelector({
30584
30619
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
30585
30620
  "video",
30586
30621
  {
30587
- src: uploadedVideoUrl,
30622
+ src: mainVideoUrl,
30588
30623
  className: "w-full h-auto max-h-[300px] object-contain bg-black",
30589
30624
  controls: true
30590
30625
  }
@@ -30783,7 +30818,7 @@ function TranscriptSummaryEditor({
30783
30818
  {
30784
30819
  id: "subtitles",
30785
30820
  value: subtitles || "",
30786
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _701 => _701(e.target.value)]),
30821
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _706 => _706(e.target.value)]),
30787
30822
  placeholder: subtitlesPlaceholder,
30788
30823
  disabled: disabled || !onSubtitlesChange,
30789
30824
  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",
@@ -30936,7 +30971,7 @@ var AIEnrichSection = ({
30936
30971
  }) => {
30937
30972
  const hasResults = status === "success" || status === "error";
30938
30973
  const shouldDisable = disabled || !canEnrich;
30939
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _702 => _702.filter, 'call', _703 => _703((f) => !f.isFilled)]) || [];
30974
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _707 => _707.filter, 'call', _708 => _708((f) => !f.isFilled)]) || [];
30940
30975
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
30941
30976
  "div",
30942
30977
  {
@@ -30974,7 +31009,7 @@ var AIEnrichSection = ({
30974
31009
  {
30975
31010
  id: "ai-enrich-custom-instructions",
30976
31011
  value: _nullishCoalesce(customInstructions, () => ( "")),
30977
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _704 => _704(e.target.value)]),
31012
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _709 => _709(e.target.value)]),
30978
31013
  placeholder: customInstructionsPlaceholder,
30979
31014
  disabled: loading,
30980
31015
  maxLength: customInstructionsMaxLength,
@@ -31103,7 +31138,7 @@ function HighlightVideoSection({
31103
31138
  input.accept = "video/*";
31104
31139
  input.onchange = async (e) => {
31105
31140
  const target = e.target;
31106
- const file = _optionalChain([target, 'access', _705 => _705.files, 'optionalAccess', _706 => _706[0]]);
31141
+ const file = _optionalChain([target, 'access', _710 => _710.files, 'optionalAccess', _711 => _711[0]]);
31107
31142
  if (!file) return;
31108
31143
  setUploadError(null);
31109
31144
  try {
@@ -31605,7 +31640,7 @@ function HighlightVideoPreview({
31605
31640
  input.accept = "video/*";
31606
31641
  input.onchange = async (e) => {
31607
31642
  const target = e.target;
31608
- const file = _optionalChain([target, 'access', _707 => _707.files, 'optionalAccess', _708 => _708[0]]);
31643
+ const file = _optionalChain([target, 'access', _712 => _712.files, 'optionalAccess', _713 => _713[0]]);
31609
31644
  if (!file) return;
31610
31645
  await onUpload(file);
31611
31646
  };
@@ -31792,7 +31827,7 @@ function HighlightVideoCombinedSection({
31792
31827
  input.accept = "video/*";
31793
31828
  input.onchange = async (e) => {
31794
31829
  const target = e.target;
31795
- const file = _optionalChain([target, 'access', _709 => _709.files, 'optionalAccess', _710 => _710[0]]);
31830
+ const file = _optionalChain([target, 'access', _714 => _714.files, 'optionalAccess', _715 => _715[0]]);
31796
31831
  if (!file) return;
31797
31832
  await onUpload(file);
31798
31833
  };
@@ -32089,7 +32124,7 @@ var getApprovalLevelLabel = (level, editMode = false) => {
32089
32124
  return editMode ? "Set Global Permission" : "";
32090
32125
  }
32091
32126
  const option = approvalLevelOptions.find((opt) => opt.value === level);
32092
- return _optionalChain([option, 'optionalAccess', _711 => _711.label]) || level;
32127
+ return _optionalChain([option, 'optionalAccess', _716 => _716.label]) || level;
32093
32128
  };
32094
32129
  var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
32095
32130
  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: [
@@ -32341,7 +32376,7 @@ function WaitlistForm({
32341
32376
  const finalPhone = phone ? formatPhoneE164(phone, countryCode) : void 0;
32342
32377
  try {
32343
32378
  await onRegister(email, finalPhone);
32344
- } catch (e24) {
32379
+ } catch (e25) {
32345
32380
  }
32346
32381
  };
32347
32382
  if (!isClient) {
@@ -32621,15 +32656,15 @@ function TicketCard({
32621
32656
  transform: _utilities.CSS.Transform.toString(sortable.transform),
32622
32657
  transition: sortable.transition
32623
32658
  };
32624
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _712 => _712.deviceHostnames, 'optionalAccess', _713 => _713.length]) || ticket.organizationName);
32659
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _717 => _717.deviceHostnames, 'optionalAccess', _718 => _718.length]) || ticket.organizationName);
32625
32660
  const deviceText = [
32626
- _optionalChain([ticket, 'access', _714 => _714.deviceHostnames, 'optionalAccess', _715 => _715.join, 'call', _716 => _716(", ")]),
32661
+ _optionalChain([ticket, 'access', _719 => _719.deviceHostnames, 'optionalAccess', _720 => _720.join, 'call', _721 => _721(", ")]),
32627
32662
  ticket.organizationName
32628
32663
  ].filter(Boolean).join(", ");
32629
32664
  const handleClick = (e) => {
32630
32665
  if (sortable.isDragging) e.preventDefault();
32631
32666
  };
32632
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _717 => _717.assignees, 'optionalAccess', _718 => _718.length]) || renderAssignSlot);
32667
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _722 => _722.assignees, 'optionalAccess', _723 => _723.length]) || renderAssignSlot);
32633
32668
  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: [
32634
32669
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32635
32670
  _chunkTMD5LDX4cjs.Flag02Icon,
@@ -32638,7 +32673,7 @@ function TicketCard({
32638
32673
  "aria-label": `Priority: ${ticket.priority}`
32639
32674
  }
32640
32675
  ),
32641
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _719 => _719.assignees, 'optionalAccess', _720 => _720.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
32676
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _724 => _724.assignees, 'optionalAccess', _725 => _725.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
32642
32677
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map((a) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32643
32678
  SquareAvatar,
32644
32679
  {
@@ -32667,7 +32702,7 @@ function TicketCard({
32667
32702
  ] }),
32668
32703
  rightSection
32669
32704
  ] }),
32670
- _optionalChain([ticket, 'access', _721 => _721.tags, 'optionalAccess', _722 => _722.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
32705
+ _optionalChain([ticket, 'access', _726 => _726.tags, 'optionalAccess', _727 => _727.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null
32671
32706
  ] });
32672
32707
  const cardClasses = _chunkOFAYLG6Dcjs.cn.call(void 0,
32673
32708
  "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",
@@ -32827,7 +32862,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
32827
32862
  const observer = new IntersectionObserver(
32828
32863
  (entries) => {
32829
32864
  if (entries.some((e) => e.isIntersecting)) {
32830
- _optionalChain([loadMoreRef, 'access', _723 => _723.current, 'optionalCall', _724 => _724(columnIdRef.current)]);
32865
+ _optionalChain([loadMoreRef, 'access', _728 => _728.current, 'optionalCall', _729 => _729(columnIdRef.current)]);
32831
32866
  }
32832
32867
  },
32833
32868
  { root, rootMargin: loadMoreRootMargin }
@@ -32856,7 +32891,7 @@ function ColumnBody({ column, getTicketHref, renderAssignSlot, onLoadMore, loadM
32856
32891
  {
32857
32892
  ticket: t,
32858
32893
  columnId: column.id,
32859
- href: _optionalChain([getTicketHref, 'optionalCall', _725 => _725(t.id)]),
32894
+ href: _optionalChain([getTicketHref, 'optionalCall', _730 => _730(t.id)]),
32860
32895
  renderAssignSlot,
32861
32896
  dragDisabled: column.dragDisabled
32862
32897
  },
@@ -32939,17 +32974,17 @@ function Board({
32939
32974
  const pointer = _core.pointerWithin.call(void 0, args);
32940
32975
  const intersections = pointer.length > 0 ? pointer : _core.rectIntersection.call(void 0, args);
32941
32976
  const ticketHit = intersections.find(
32942
- (c) => _optionalChain([c, 'access', _726 => _726.data, 'optionalAccess', _727 => _727.droppableContainer, 'optionalAccess', _728 => _728.data, 'optionalAccess', _729 => _729.current, 'optionalAccess', _730 => _730.type]) === "ticket"
32977
+ (c) => _optionalChain([c, 'access', _731 => _731.data, 'optionalAccess', _732 => _732.droppableContainer, 'optionalAccess', _733 => _733.data, 'optionalAccess', _734 => _734.current, 'optionalAccess', _735 => _735.type]) === "ticket"
32943
32978
  );
32944
32979
  if (ticketHit) return [ticketHit];
32945
32980
  const columnHit = intersections.find(
32946
- (c) => _optionalChain([c, 'access', _731 => _731.data, 'optionalAccess', _732 => _732.droppableContainer, 'optionalAccess', _733 => _733.data, 'optionalAccess', _734 => _734.current, 'optionalAccess', _735 => _735.type]) === "column"
32981
+ (c) => _optionalChain([c, 'access', _736 => _736.data, 'optionalAccess', _737 => _737.droppableContainer, 'optionalAccess', _738 => _738.data, 'optionalAccess', _739 => _739.current, 'optionalAccess', _740 => _740.type]) === "column"
32947
32982
  );
32948
32983
  if (columnHit) {
32949
- const columnId = _optionalChain([columnHit, 'access', _736 => _736.data, 'optionalAccess', _737 => _737.droppableContainer, 'optionalAccess', _738 => _738.data, 'optionalAccess', _739 => _739.current, 'optionalAccess', _740 => _740.columnId]);
32984
+ const columnId = _optionalChain([columnHit, 'access', _741 => _741.data, 'optionalAccess', _742 => _742.droppableContainer, 'optionalAccess', _743 => _743.data, 'optionalAccess', _744 => _744.current, 'optionalAccess', _745 => _745.columnId]);
32950
32985
  const ticketsInColumn = args.droppableContainers.filter((c) => {
32951
32986
  const d = c.data.current;
32952
- return _optionalChain([d, 'optionalAccess', _741 => _741.type]) === "ticket" && d.columnId === columnId;
32987
+ return _optionalChain([d, 'optionalAccess', _746 => _746.type]) === "ticket" && d.columnId === columnId;
32953
32988
  });
32954
32989
  if (ticketsInColumn.length > 0) {
32955
32990
  const closest = _core.closestCorners.call(void 0, { ...args, droppableContainers: ticketsInColumn });
@@ -32974,20 +33009,20 @@ function Board({
32974
33009
  const overId = String(over.id);
32975
33010
  if (activeId === overId) return;
32976
33011
  const overData = over.data.current;
32977
- const fromColumnId = _optionalChain([locate, 'call', _742 => _742(items, activeId), 'optionalAccess', _743 => _743.columnId]);
32978
- const toColumnId = _optionalChain([overData, 'optionalAccess', _744 => _744.columnId]);
33012
+ const fromColumnId = _optionalChain([locate, 'call', _747 => _747(items, activeId), 'optionalAccess', _748 => _748.columnId]);
33013
+ const toColumnId = _optionalChain([overData, 'optionalAccess', _749 => _749.columnId]);
32979
33014
  if (!fromColumnId || !toColumnId || fromColumnId === toColumnId) return;
32980
33015
  const origin = dragOriginRef.current;
32981
- const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _745 => _745.fromColumnId]) === toColumnId;
33016
+ const isReturnToOrigin = _optionalChain([origin, 'optionalAccess', _750 => _750.fromColumnId]) === toColumnId;
32982
33017
  const targetCol = items.find((c) => c.id === toColumnId);
32983
- const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _746 => _746.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
32984
- if (_optionalChain([targetCol, 'optionalAccess', _747 => _747.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
33018
+ const blockedBySource = !isReturnToOrigin && !!_optionalChain([targetCol, 'optionalAccess', _751 => _751.allowedFromColumns]) && !!origin && !targetCol.allowedFromColumns.includes(origin.fromColumnId);
33019
+ if (_optionalChain([targetCol, 'optionalAccess', _752 => _752.dropDisabled]) && !isReturnToOrigin || blockedBySource) return;
32985
33020
  setItems((prev) => {
32986
33021
  const fromIndex = findIndexInColumn(prev, fromColumnId, activeId);
32987
33022
  const toCol = prev.find((c) => c.id === toColumnId);
32988
33023
  if (fromIndex < 0 || !toCol) return prev;
32989
33024
  let toIndex;
32990
- if (_optionalChain([overData, 'optionalAccess', _748 => _748.type]) === "column") {
33025
+ if (_optionalChain([overData, 'optionalAccess', _753 => _753.type]) === "column") {
32991
33026
  toIndex = toCol.tickets.length;
32992
33027
  } else {
32993
33028
  const overIndex = toCol.tickets.findIndex((t) => t.id === overId);
@@ -33029,14 +33064,14 @@ function Board({
33029
33064
  const toColumnId = located.columnId;
33030
33065
  const isCrossColumn = origin.fromColumnId !== toColumnId;
33031
33066
  const targetCol = items.find((c) => c.id === toColumnId);
33032
- if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _749 => _749.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _750 => _750.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33067
+ if (isCrossColumn && (_optionalChain([targetCol, 'optionalAccess', _754 => _754.dropDisabled]) || _optionalChain([targetCol, 'optionalAccess', _755 => _755.allowedFromColumns]) && !targetCol.allowedFromColumns.includes(origin.fromColumnId))) {
33033
33068
  setItems(columns);
33034
33069
  return;
33035
33070
  }
33036
33071
  let finalIndex = located.index;
33037
- let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _751 => _751.find, 'call', _752 => _752((c) => c.id === toColumnId), 'optionalAccess', _753 => _753.tickets]), () => ( []));
33072
+ let finalColumnTickets = _nullishCoalesce(_optionalChain([items, 'access', _756 => _756.find, 'call', _757 => _757((c) => c.id === toColumnId), 'optionalAccess', _758 => _758.tickets]), () => ( []));
33038
33073
  const overData = over.data.current;
33039
- if (_optionalChain([overData, 'optionalAccess', _754 => _754.type]) === "ticket") {
33074
+ if (_optionalChain([overData, 'optionalAccess', _759 => _759.type]) === "ticket") {
33040
33075
  const overIndex = findIndexInColumn(items, toColumnId, String(over.id));
33041
33076
  if (overIndex >= 0 && overIndex !== located.index) {
33042
33077
  finalColumnTickets = _sortable.arrayMove.call(void 0, finalColumnTickets, located.index, overIndex);
@@ -33056,8 +33091,8 @@ function Board({
33056
33091
  ticketId: origin.ticketId,
33057
33092
  fromColumnId: origin.fromColumnId,
33058
33093
  toColumnId,
33059
- afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _755 => _755[finalIndex - 1], 'optionalAccess', _756 => _756.id]), () => ( null)),
33060
- beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _757 => _757[finalIndex + 1], 'optionalAccess', _758 => _758.id]), () => ( null))
33094
+ afterTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _760 => _760[finalIndex - 1], 'optionalAccess', _761 => _761.id]), () => ( null)),
33095
+ beforeTicketId: _nullishCoalesce(_optionalChain([finalColumnTickets, 'access', _762 => _762[finalIndex + 1], 'optionalAccess', _763 => _763.id]), () => ( null))
33061
33096
  });
33062
33097
  };
33063
33098
  const handleDragCancel = () => {
@@ -33079,8 +33114,8 @@ function Board({
33079
33114
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkOFAYLG6Dcjs.cn.call(void 0, "flex h-full overflow-x-auto", className), children: items.map((column, i) => {
33080
33115
  const prev = items[i - 1];
33081
33116
  const next = items[i + 1];
33082
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _759 => _759.system]));
33083
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _760 => _760.system]));
33117
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _764 => _764.system]));
33118
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _765 => _765.system]));
33084
33119
  const showGap = i > 0 && !joinLeft;
33085
33120
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, React101.Fragment, { children: [
33086
33121
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -33114,7 +33149,7 @@ function locate(cols, ticketId) {
33114
33149
  return null;
33115
33150
  }
33116
33151
  function findIndexInColumn(cols, columnId, ticketId) {
33117
- return _nullishCoalesce(_optionalChain([cols, 'access', _761 => _761.find, 'call', _762 => _762((c) => c.id === columnId), 'optionalAccess', _763 => _763.tickets, 'access', _764 => _764.findIndex, 'call', _765 => _765((t) => t.id === ticketId)]), () => ( -1));
33152
+ return _nullishCoalesce(_optionalChain([cols, 'access', _766 => _766.find, 'call', _767 => _767((c) => c.id === columnId), 'optionalAccess', _768 => _768.tickets, 'access', _769 => _769.findIndex, 'call', _770 => _770((t) => t.id === ticketId)]), () => ( -1));
33118
33153
  }
33119
33154
 
33120
33155
  // src/components/features/board/types.ts
@@ -33778,4 +33813,4 @@ function canonicalize(status) {
33778
33813
 
33779
33814
 
33780
33815
  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.PulseDots = PulseDots; 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.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageList = ChatMessageList; exports.ChatQuickAction = ChatQuickAction; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.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.MESSAGE_TYPE = MESSAGE_TYPE; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; 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.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; 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.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;
33781
- //# sourceMappingURL=chunk-IWMK4MH4.cjs.map
33816
+ //# sourceMappingURL=chunk-3OVOM5WT.cjs.map