@flamingo-stack/openframe-frontend-core 0.0.582-1967.5390.1 → 0.0.582

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/chunk-2EIGO6ZS.js +1055 -0
  2. package/dist/chunk-2EIGO6ZS.js.map +1 -0
  3. package/dist/{chunk-PDK6KVU6.js → chunk-53ZVUW2M.js} +4 -4
  4. package/dist/{chunk-BTXJQPGE.js → chunk-5U2FU5LM.js} +2 -2
  5. package/dist/{chunk-VG2SRECA.cjs → chunk-7WE6FGGK.cjs} +49 -49
  6. package/dist/{chunk-VG2SRECA.cjs.map → chunk-7WE6FGGK.cjs.map} +1 -1
  7. package/dist/{chunk-EXBNO6FB.js → chunk-CJW6KZD3.js} +2 -2
  8. package/dist/{chunk-UQXQCM3F.cjs → chunk-E4TK2BBD.cjs} +3 -3
  9. package/dist/{chunk-UQXQCM3F.cjs.map → chunk-E4TK2BBD.cjs.map} +1 -1
  10. package/dist/{chunk-NOO3QOJI.js → chunk-EULY3BXB.js} +2 -2
  11. package/dist/{chunk-ML22BIKH.js → chunk-GAL6EXUY.js} +3 -3
  12. package/dist/{chunk-YTZK2ORN.js → chunk-H7K76TPX.js} +4 -4
  13. package/dist/{chunk-RH7EY7YN.cjs → chunk-HMEEW73F.cjs} +1978 -237
  14. package/dist/chunk-HMEEW73F.cjs.map +1 -0
  15. package/dist/{chunk-KNQZZJYJ.js → chunk-IB23CRL2.js} +2 -2
  16. package/dist/{chunk-GHYWIVSU.cjs → chunk-IVJ6TBVW.cjs} +34 -34
  17. package/dist/{chunk-GHYWIVSU.cjs.map → chunk-IVJ6TBVW.cjs.map} +1 -1
  18. package/dist/{chunk-XJ3Y4OOF.js → chunk-IZGXIZWF.js} +2 -2
  19. package/dist/chunk-JMWLF2GL.cjs +1055 -0
  20. package/dist/chunk-JMWLF2GL.cjs.map +1 -0
  21. package/dist/{chunk-MCFETAH7.js → chunk-JUXCEHK2.js} +2 -2
  22. package/dist/{chunk-KX4F4O26.cjs → chunk-KS7NKONC.cjs} +3 -3
  23. package/dist/{chunk-KX4F4O26.cjs.map → chunk-KS7NKONC.cjs.map} +1 -1
  24. package/dist/{chunk-VYNYJVSE.cjs → chunk-LHQ6RVFE.cjs} +17 -17
  25. package/dist/{chunk-VYNYJVSE.cjs.map → chunk-LHQ6RVFE.cjs.map} +1 -1
  26. package/dist/{chunk-LGHMGCUG.cjs → chunk-M3ERSHPM.cjs} +4 -4
  27. package/dist/{chunk-LGHMGCUG.cjs.map → chunk-M3ERSHPM.cjs.map} +1 -1
  28. package/dist/{chunk-Q7X74UZF.cjs → chunk-RBMVTCRM.cjs} +3 -3
  29. package/dist/{chunk-Q7X74UZF.cjs.map → chunk-RBMVTCRM.cjs.map} +1 -1
  30. package/dist/{chunk-LYU3IZOA.cjs → chunk-RILGQ2OY.cjs} +10 -10
  31. package/dist/{chunk-LYU3IZOA.cjs.map → chunk-RILGQ2OY.cjs.map} +1 -1
  32. package/dist/{chunk-T6DRWYLM.cjs → chunk-RQMS2CF5.cjs} +17 -17
  33. package/dist/{chunk-T6DRWYLM.cjs.map → chunk-RQMS2CF5.cjs.map} +1 -1
  34. package/dist/{chunk-TC47NAJ3.cjs → chunk-S2ZXUQLR.cjs} +16 -16
  35. package/dist/{chunk-TC47NAJ3.cjs.map → chunk-S2ZXUQLR.cjs.map} +1 -1
  36. package/dist/{chunk-G3ZMLSKJ.js → chunk-SM6JAZ4C.js} +2 -2
  37. package/dist/{chunk-LENIASJW.js → chunk-T4DIAKIK.js} +2 -2
  38. package/dist/{chunk-ODOFQLSP.cjs → chunk-TMNFC24G.cjs} +13 -13
  39. package/dist/{chunk-ODOFQLSP.cjs.map → chunk-TMNFC24G.cjs.map} +1 -1
  40. package/dist/{chunk-FVF2MVIT.js → chunk-U6GFESVF.js} +2 -2
  41. package/dist/{chunk-2T7GXHRQ.js → chunk-XA5UPYWE.js} +2745 -1004
  42. package/dist/chunk-XA5UPYWE.js.map +1 -0
  43. package/dist/{chunk-TVLQVTZ6.cjs → chunk-XNSEZVV4.cjs} +4 -4
  44. package/dist/{chunk-TVLQVTZ6.cjs.map → chunk-XNSEZVV4.cjs.map} +1 -1
  45. package/dist/{chunk-XJJ2D64Q.cjs → chunk-YU4QZ6I6.cjs} +3 -3
  46. package/dist/{chunk-XJJ2D64Q.cjs.map → chunk-YU4QZ6I6.cjs.map} +1 -1
  47. package/dist/{chunk-LFG5JG2D.js → chunk-ZSENCE55.js} +5 -5
  48. package/dist/components/case-studies/index.cjs +8 -8
  49. package/dist/components/case-studies/index.js +2 -2
  50. package/dist/components/contact/index.cjs +3 -3
  51. package/dist/components/contact/index.js +2 -2
  52. package/dist/components/docs/index.cjs +6 -6
  53. package/dist/components/docs/index.js +5 -5
  54. package/dist/components/embeds/index.cjs +3 -3
  55. package/dist/components/embeds/index.js +2 -2
  56. package/dist/components/faq/index.cjs +3 -3
  57. package/dist/components/faq/index.js +2 -2
  58. package/dist/components/features/index.cjs +2 -2
  59. package/dist/components/features/index.js +1 -1
  60. package/dist/components/features/push-button-selector.d.ts +29 -1
  61. package/dist/components/features/push-button-selector.d.ts.map +1 -1
  62. package/dist/components/help-center-pages/index.cjs +22 -22
  63. package/dist/components/help-center-pages/index.js +13 -13
  64. package/dist/components/index.cjs +61 -892
  65. package/dist/components/index.cjs.map +1 -1
  66. package/dist/components/index.js +244 -1075
  67. package/dist/components/index.js.map +1 -1
  68. package/dist/components/meeting-scheduler/index.cjs +18 -18
  69. package/dist/components/meeting-scheduler/index.js +1 -1
  70. package/dist/components/navigation/index.cjs +5 -5
  71. package/dist/components/navigation/index.js +4 -4
  72. package/dist/components/onboarding-guides/index.cjs +5 -5
  73. package/dist/components/onboarding-guides/index.js +4 -4
  74. package/dist/components/tickets/index.cjs +6 -6
  75. package/dist/components/tickets/index.js +5 -5
  76. package/dist/components/ui/index.cjs +2 -2
  77. package/dist/components/ui/index.js +1 -1
  78. package/dist/index.cjs +6 -6
  79. package/dist/index.js +5 -5
  80. package/dist/utils/announcement-storage.d.ts +16 -25
  81. package/dist/utils/announcement-storage.d.ts.map +1 -1
  82. package/dist/utils/dismiss-cookie.d.ts +8 -27
  83. package/dist/utils/dismiss-cookie.d.ts.map +1 -1
  84. package/dist/utils/dismissal-storage.d.ts +2 -2
  85. package/dist/utils/dismissal-storage.d.ts.map +1 -1
  86. package/dist/utils/index.cjs +53 -70
  87. package/dist/utils/index.cjs.map +1 -1
  88. package/dist/utils/index.js +53 -70
  89. package/dist/utils/index.js.map +1 -1
  90. package/package.json +1 -1
  91. package/src/components/features/.push-button-selector.md +1 -1
  92. package/src/components/features/push-button-selector.tsx +142 -17
  93. package/src/utils/announcement-storage.ts +16 -25
  94. package/src/utils/dismiss-cookie.ts +9 -86
  95. package/src/utils/dismissal-storage.ts +2 -2
  96. package/dist/chunk-2T7GXHRQ.js.map +0 -1
  97. package/dist/chunk-FWNIZC6A.js +0 -1867
  98. package/dist/chunk-FWNIZC6A.js.map +0 -1
  99. package/dist/chunk-IHFTLVDF.cjs +0 -1867
  100. package/dist/chunk-IHFTLVDF.cjs.map +0 -1
  101. package/dist/chunk-RH7EY7YN.cjs.map +0 -1
  102. package/src/utils/__tests__/dismiss-cookie.test.ts +0 -133
  103. /package/dist/{chunk-PDK6KVU6.js.map → chunk-53ZVUW2M.js.map} +0 -0
  104. /package/dist/{chunk-BTXJQPGE.js.map → chunk-5U2FU5LM.js.map} +0 -0
  105. /package/dist/{chunk-EXBNO6FB.js.map → chunk-CJW6KZD3.js.map} +0 -0
  106. /package/dist/{chunk-NOO3QOJI.js.map → chunk-EULY3BXB.js.map} +0 -0
  107. /package/dist/{chunk-ML22BIKH.js.map → chunk-GAL6EXUY.js.map} +0 -0
  108. /package/dist/{chunk-YTZK2ORN.js.map → chunk-H7K76TPX.js.map} +0 -0
  109. /package/dist/{chunk-KNQZZJYJ.js.map → chunk-IB23CRL2.js.map} +0 -0
  110. /package/dist/{chunk-XJ3Y4OOF.js.map → chunk-IZGXIZWF.js.map} +0 -0
  111. /package/dist/{chunk-MCFETAH7.js.map → chunk-JUXCEHK2.js.map} +0 -0
  112. /package/dist/{chunk-G3ZMLSKJ.js.map → chunk-SM6JAZ4C.js.map} +0 -0
  113. /package/dist/{chunk-LENIASJW.js.map → chunk-T4DIAKIK.js.map} +0 -0
  114. /package/dist/{chunk-FVF2MVIT.js.map → chunk-U6GFESVF.js.map} +0 -0
  115. /package/dist/{chunk-LFG5JG2D.js.map → chunk-ZSENCE55.js.map} +0 -0
@@ -9030,7 +9030,7 @@ function renderAdvancedPageContainer({
9030
9030
  md: "p-6",
9031
9031
  lg: "p-8"
9032
9032
  };
9033
- const backgroundClasses = {
9033
+ const backgroundClasses2 = {
9034
9034
  default: "bg-ods-bg",
9035
9035
  card: "bg-ods-card",
9036
9036
  transparent: ""
@@ -9090,7 +9090,7 @@ function renderAdvancedPageContainer({
9090
9090
  ] });
9091
9091
  };
9092
9092
  const getContainerClasses = () => {
9093
- const baseClasses = ["flex flex-col w-full", backgroundClasses[background], paddingClasses[padding]];
9093
+ const baseClasses = ["flex flex-col w-full", backgroundClasses2[background], paddingClasses[padding]];
9094
9094
  switch (variant) {
9095
9095
  case "list":
9096
9096
  return _chunkPRPZBXWZcjs.cn.call(void 0, baseClasses, "gap-4 md:gap-6", className);
@@ -10100,23 +10100,11 @@ function isGenericWebsiteDomain(website) {
10100
10100
 
10101
10101
  // src/utils/dismiss-cookie.ts
10102
10102
  var DISMISS_COOKIE_MAX_AGE_SECONDS = 31536e3;
10103
- function canUseCookies() {
10104
- if (typeof document === "undefined") return false;
10105
- return document.URL.startsWith("http:") || document.URL.startsWith("https:");
10106
- }
10107
- function fallbackStore(name) {
10108
- return _chunkCP6TIRONcjs.createLocalStorageAdapter.call(void 0, {
10109
- key: name,
10110
- logTag: "[dismiss-cookie]",
10111
- validate: (parsed) => typeof parsed === "string"
10112
- });
10113
- }
10114
10103
  function isDismissedCookieValue(cookieValue, id) {
10115
10104
  return !!id && cookieValue === id;
10116
10105
  }
10117
10106
  function readDismissCookie(name) {
10118
10107
  if (typeof document === "undefined") return void 0;
10119
- if (!canUseCookies()) return _nullishCoalesce(fallbackStore(name).load(), () => ( void 0));
10120
10108
  const match = document.cookie.split("; ").find((row) => row.startsWith(`${name}=`));
10121
10109
  if (!match) return void 0;
10122
10110
  try {
@@ -10127,15 +10115,10 @@ function readDismissCookie(name) {
10127
10115
  }
10128
10116
  function writeDismissCookie(name, id) {
10129
10117
  if (typeof document === "undefined") return;
10130
- if (!canUseCookies()) {
10131
- fallbackStore(name).save(id);
10132
- return;
10133
- }
10134
10118
  document.cookie = `${name}=${encodeURIComponent(id)}; path=/; max-age=${DISMISS_COOKIE_MAX_AGE_SECONDS}; SameSite=Lax`;
10135
10119
  }
10136
10120
  function clearDismissCookie(name) {
10137
10121
  if (typeof document === "undefined") return;
10138
- fallbackStore(name).clear();
10139
10122
  document.cookie = `${name}=; path=/; max-age=0`;
10140
10123
  }
10141
10124
 
@@ -11125,7 +11108,7 @@ var BenefitCard = ({
11125
11108
  const gap = cardVariant === "auth-figma" ? "gap-4" : "gap-2";
11126
11109
  return `flex ${gap} items-start justify-start relative`;
11127
11110
  };
11128
- const variantStyles = {
11111
+ const variantStyles2 = {
11129
11112
  default: {
11130
11113
  container: "bg-ods-bg p-2 md:p-4",
11131
11114
  title: "font-body font-bold text-body-md md:text-body-lg text-ods-text-primary",
@@ -11142,7 +11125,7 @@ var BenefitCard = ({
11142
11125
  description: "text-h4 text-ods-text-secondary"
11143
11126
  }
11144
11127
  };
11145
- const styles = variantStyles[variant];
11128
+ const styles = variantStyles2[variant];
11146
11129
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, getBaseStyles(variant), styles.container, className), children: [
11147
11130
  icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: icon }),
11148
11131
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
@@ -11280,7 +11263,7 @@ function BulletList({
11280
11263
  var ChevronButton = _react.forwardRef.call(void 0,
11281
11264
  ({ className, direction = "down", size = "md", isExpanded, backgroundColor, borderColor, ...props }, ref) => {
11282
11265
  const Icon2 = (isExpanded ? _lucidereact.ChevronUp : _lucidereact.ChevronDown) || (direction === "up" ? _lucidereact.ChevronUp : _lucidereact.ChevronDown);
11283
- const sizeClasses = {
11266
+ const sizeClasses2 = {
11284
11267
  sm: "h-4 w-4",
11285
11268
  md: "h-5 w-5",
11286
11269
  lg: "h-6 w-6"
@@ -11299,7 +11282,7 @@ var ChevronButton = _react.forwardRef.call(void 0,
11299
11282
  },
11300
11283
  ref,
11301
11284
  ...props,
11302
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon2, { className: sizeClasses[size] })
11285
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon2, { className: sizeClasses2[size] })
11303
11286
  }
11304
11287
  );
11305
11288
  }
@@ -11994,12 +11977,12 @@ function HighlightCardGrid({
11994
11977
 
11995
11978
  var IconsBlock = _react.forwardRef.call(void 0,
11996
11979
  ({ className, icons = [], size = "md", ...props }, ref) => {
11997
- const sizeClasses = {
11980
+ const sizeClasses2 = {
11998
11981
  sm: "h-4 w-4",
11999
11982
  md: "h-6 w-6",
12000
11983
  lg: "h-8 w-8"
12001
11984
  };
12002
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex items-center gap-2", className), ref, ...props, children: icons.map((icon, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "rounded-md bg-secondary p-1", sizeClasses[size]), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full w-full rounded-sm bg-primary/20" }) }, index)) });
11985
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex items-center gap-2", className), ref, ...props, children: icons.map((icon, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "rounded-md bg-secondary p-1", sizeClasses2[size]), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-full w-full rounded-sm bg-primary/20" }) }, index)) });
12003
11986
  }
12004
11987
  );
12005
11988
  IconsBlock.displayName = "IconsBlock";
@@ -20617,106 +20600,1799 @@ function PlatformFilterComponent({
20617
20600
  // src/components/features/push-button-selector.tsx
20618
20601
 
20619
20602
 
20620
- function PushButtonSelectorSkeleton({ count = 3, hasTitle }) {
20621
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
20622
- hasTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-20 animate-pulse rounded bg-ods-skeleton" }),
20623
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "animate-pulse rounded-lg border border-ods-border bg-ods-skeleton p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
20624
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
20625
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 rounded bg-ods-skeleton" }),
20626
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
20627
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-1 h-4 w-20 rounded bg-ods-skeleton" }),
20628
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-32 rounded bg-ods-skeleton" })
20603
+
20604
+ // src/components/loading/unified-skeleton.tsx
20605
+
20606
+ function UnifiedSkeleton({
20607
+ className,
20608
+ variant = "default",
20609
+ width,
20610
+ height,
20611
+ animate = true,
20612
+ "aria-label": ariaLabel,
20613
+ ...props
20614
+ }) {
20615
+ const baseClasses = "bg-ods-skeleton";
20616
+ const variantClasses = {
20617
+ default: "rounded-md",
20618
+ text: "rounded-sm",
20619
+ circular: "rounded-full",
20620
+ rectangular: "rounded-none"
20621
+ };
20622
+ const defaultHeights = {
20623
+ default: "h-4",
20624
+ text: "h-4",
20625
+ circular: "h-12 w-12",
20626
+ rectangular: "h-4"
20627
+ };
20628
+ const animationClasses = animate ? "animate-pulse motion-reduce:animate-none" : "";
20629
+ const style = {
20630
+ width,
20631
+ height
20632
+ };
20633
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20634
+ "div",
20635
+ {
20636
+ className: _chunkPRPZBXWZcjs.cn.call(void 0,
20637
+ baseClasses,
20638
+ variantClasses[variant],
20639
+ !height && !style.height && defaultHeights[variant],
20640
+ !width && !style.width && variant !== "circular" && "w-full",
20641
+ animationClasses,
20642
+ className
20643
+ ),
20644
+ style,
20645
+ role: "status",
20646
+ "aria-label": ariaLabel || "Loading content",
20647
+ ...props
20648
+ }
20649
+ );
20650
+ }
20651
+ var TextSkeleton = {
20652
+ /**
20653
+ * Large heading skeleton (h1, h2)
20654
+ */
20655
+ Heading: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20656
+ UnifiedSkeleton,
20657
+ {
20658
+ variant: "text",
20659
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-8 md:h-10 lg:h-12", className),
20660
+ "aria-label": "Loading heading",
20661
+ ...props
20662
+ }
20663
+ ),
20664
+ /**
20665
+ * Medium heading skeleton (h3, h4)
20666
+ */
20667
+ Subheading: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20668
+ UnifiedSkeleton,
20669
+ {
20670
+ variant: "text",
20671
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-6 md:h-7 lg:h-8", className),
20672
+ "aria-label": "Loading subheading",
20673
+ ...props
20674
+ }
20675
+ ),
20676
+ /**
20677
+ * Body text skeleton
20678
+ */
20679
+ Body: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "text", className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-4 md:h-5", className), "aria-label": "Loading text", ...props }),
20680
+ /**
20681
+ * Small text skeleton (captions, metadata)
20682
+ */
20683
+ Caption: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "text", className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-3 md:h-4", className), "aria-label": "Loading caption", ...props })
20684
+ };
20685
+ var InteractiveSkeleton = {
20686
+ /**
20687
+ * Button skeleton with proper touch targets
20688
+ */
20689
+ Button: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20690
+ UnifiedSkeleton,
20691
+ {
20692
+ variant: "default",
20693
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-10 w-32 md:h-12 md:w-40", className),
20694
+ "aria-label": "Loading button",
20695
+ ...props
20696
+ }
20697
+ ),
20698
+ /**
20699
+ * Input field skeleton
20700
+ */
20701
+ Input: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20702
+ UnifiedSkeleton,
20703
+ {
20704
+ variant: "default",
20705
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-10 w-full md:h-12", className),
20706
+ "aria-label": "Loading input field",
20707
+ ...props
20708
+ }
20709
+ ),
20710
+ /**
20711
+ * Filter chip skeleton
20712
+ */
20713
+ Chip: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20714
+ UnifiedSkeleton,
20715
+ {
20716
+ variant: "default",
20717
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-8 w-20 rounded-full", className),
20718
+ "aria-label": "Loading filter",
20719
+ ...props
20720
+ }
20721
+ )
20722
+ };
20723
+ var MediaSkeleton = {
20724
+ /**
20725
+ * Avatar/profile image skeleton
20726
+ */
20727
+ Avatar: ({
20728
+ size = "md",
20729
+ className,
20730
+ ...props
20731
+ }) => {
20732
+ const sizeClasses2 = {
20733
+ sm: "h-8 w-8",
20734
+ md: "h-12 w-12",
20735
+ lg: "h-16 w-16"
20736
+ };
20737
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20738
+ UnifiedSkeleton,
20739
+ {
20740
+ variant: "circular",
20741
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, sizeClasses2[size], className),
20742
+ "aria-label": "Loading profile image",
20743
+ ...props
20744
+ }
20745
+ );
20746
+ },
20747
+ /**
20748
+ * Card image skeleton (1200×630 OG aspect — matches entity-cards default
20749
+ * so loading state never causes a height shift when card data arrives)
20750
+ */
20751
+ CardImage: ({ className, ...props }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20752
+ UnifiedSkeleton,
20753
+ {
20754
+ variant: "default",
20755
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "aspect-[1200/630] w-full", className),
20756
+ "aria-label": "Loading image",
20757
+ ...props
20758
+ }
20759
+ ),
20760
+ /**
20761
+ * Icon skeleton
20762
+ */
20763
+ Icon: ({
20764
+ size = "md",
20765
+ className,
20766
+ ...props
20767
+ }) => {
20768
+ const sizeClasses2 = {
20769
+ sm: "h-4 w-4",
20770
+ md: "h-6 w-6",
20771
+ lg: "h-8 w-8"
20772
+ };
20773
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20774
+ UnifiedSkeleton,
20775
+ {
20776
+ variant: "default",
20777
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, sizeClasses2[size], className),
20778
+ "aria-label": "Loading icon",
20779
+ ...props
20780
+ }
20781
+ );
20782
+ }
20783
+ };
20784
+
20785
+ // src/components/loading/card-skeleton.tsx
20786
+
20787
+ function CardSkeleton({
20788
+ className,
20789
+ containerClassName,
20790
+ variant = "vendor",
20791
+ showActions = true,
20792
+ showMetadata = true,
20793
+ ...props
20794
+ }) {
20795
+ const cardContent = {
20796
+ vendor: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorCardContent, { showMetadata }),
20797
+ blog: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BlogCardContent, { showActions, showMetadata }),
20798
+ category: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CategoryCardContent, {}),
20799
+ alternative: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AlternativeCardContent, { showActions })
20800
+ };
20801
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20802
+ "div",
20803
+ {
20804
+ className: _chunkPRPZBXWZcjs.cn.call(void 0,
20805
+ containerClassName || "border border-ods-border bg-ods-card",
20806
+ "overflow-hidden rounded-lg",
20807
+ // Flex layouts for certain variants
20808
+ variant === "blog" && "flex h-full flex-col",
20809
+ variant === "vendor" && "flex h-full flex-col",
20810
+ className
20811
+ ),
20812
+ role: "status",
20813
+ "aria-label": `Loading ${variant} card`,
20814
+ ...props,
20815
+ children: cardContent[variant]
20816
+ }
20817
+ );
20818
+ }
20819
+ function VendorCardContent({ showMetadata }) {
20820
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3 p-4", children: [
20821
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-start gap-3", children: [
20822
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[60px] w-[60px] flex-shrink-0 items-center justify-center rounded-lg border border-ods-border bg-ods-bg p-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "sm", className: "h-11 w-11" }) }),
20823
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center space-y-1 py-2", children: [
20824
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" }),
20825
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-1/2" })
20826
+ ] })
20827
+ ] }),
20828
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-full items-center overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
20829
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
20830
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
20831
+ ] }) }),
20832
+ showMetadata && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-2", children: [
20833
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-shrink items-center gap-3 md:gap-4", children: [
20834
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
20835
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
20836
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-8" })
20837
+ ] }),
20838
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
20839
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
20840
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-10" })
20629
20841
  ] })
20630
20842
  ] }),
20631
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-6 rounded border-2 border-ods-border bg-ods-skeleton" })
20632
- ] }) }, i)) })
20843
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5 rounded border border-ods-border bg-ods-bg px-2.5 py-1.5", children: [
20844
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-2.5 w-2.5" }) }),
20845
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
20846
+ ] }) })
20847
+ ] })
20633
20848
  ] });
20634
20849
  }
20635
- function PushButtonSelectorError({ message, title }) {
20636
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
20637
- title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
20638
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-error bg-ods-error-secondary p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-ods-error text-h6", children: [
20639
- "\u26A0\uFE0F ",
20640
- message
20641
- ] }) })
20850
+ function BlogCardContent({ showActions, showMetadata }) {
20851
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
20852
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "blog-card-image-container relative aspect-[1200/630] w-full overflow-hidden bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.CardImage, {}) }),
20853
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-grow flex-col p-4", children: [
20854
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex min-h-[50.4px] items-center md:min-h-[56px] lg:min-h-[61.6px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
20855
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-full" }),
20856
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" })
20857
+ ] }) }),
20858
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-3 flex h-[28px] items-center gap-2", children: [
20859
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-16" }),
20860
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-12" })
20861
+ ] }),
20862
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex min-h-[42px] items-center md:min-h-[45px] lg:min-h-[48px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
20863
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
20864
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-1/2" })
20865
+ ] }) }),
20866
+ showActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "h-8 w-24" }) }),
20867
+ showMetadata && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-auto", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4 border-t border-ods-border pt-4", children: [
20868
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
20869
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "sm" }),
20870
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
20871
+ ] }),
20872
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-3 text-ods-text-muted", children: [
20873
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-12" }),
20874
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-1 w-1 rounded-full bg-ods-skeleton" }),
20875
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
20876
+ ] })
20877
+ ] }) })
20878
+ ] })
20642
20879
  ] });
20643
20880
  }
20644
- function PushButtonSelector({
20645
- options,
20646
- selectedIds,
20647
- onSelectionChange,
20648
- multiSelect = true,
20649
- title,
20650
- helpText,
20651
- className = "",
20652
- selectionSummary = false,
20653
- optional = false,
20654
- isLoading = false,
20655
- error = null,
20656
- skeletonCount = 3,
20657
- sections
20881
+ function CategoryCardContent() {
20882
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 p-4 md:p-6", children: [
20883
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex gap-2 md:gap-3", children: Array.from({ length: 6 }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "lg", className: "flex-shrink-0" }, index)) }),
20884
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
20885
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
20886
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" }),
20887
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-1/2" })
20888
+ ] }),
20889
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start justify-between gap-4 md:items-end md:gap-6", children: [
20890
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
20891
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
20892
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
20893
+ ] }),
20894
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "h-10 w-10 flex-shrink-0 md:h-12 md:w-12" })
20895
+ ] })
20896
+ ] })
20897
+ ] });
20898
+ }
20899
+ function AlternativeCardContent({ showActions }) {
20900
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4 p-4", children: [
20901
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "md", className: "flex-shrink-0" }),
20902
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
20903
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
20904
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-1/3" }),
20905
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
20906
+ ] }),
20907
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
20908
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
20909
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-5/6" })
20910
+ ] }),
20911
+ showActions && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-2", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "h-8 w-20" }) })
20912
+ ] })
20913
+ ] });
20914
+ }
20915
+ function CardSkeletonGrid({
20916
+ count = 6,
20917
+ variant = "vendor",
20918
+ className,
20919
+ containerClassName,
20920
+ ...props
20658
20921
  }) {
20659
- if (isLoading) {
20660
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorSkeleton, { count: skeletonCount, hasTitle: !!title }) });
20661
- }
20662
- if (error) {
20663
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorError, { message: error, title }) });
20664
- }
20665
- const validSelectedIds = options.length > 0 ? selectedIds.filter((id) => options.some((option) => option.id === id)) : selectedIds;
20666
- if (process.env.NODE_ENV === "development" && options.length > 0 && validSelectedIds.length !== selectedIds.length) {
20667
- const invalidIds = selectedIds.filter((id) => !options.some((opt) => opt.id === id));
20668
- console.warn("[PushButtonSelector] Invalid selected IDs filtered:", invalidIds);
20669
- }
20670
- const toggleSelection = (optionId) => {
20671
- if (multiSelect) {
20672
- const isSelected = validSelectedIds.includes(optionId);
20673
- if (isSelected) {
20674
- onSelectionChange(validSelectedIds.filter((id) => id !== optionId));
20675
- } else {
20676
- onSelectionChange([...validSelectedIds, optionId]);
20677
- }
20678
- } else {
20679
- onSelectionChange(validSelectedIds.includes(optionId) ? [] : [optionId]);
20922
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20923
+ "div",
20924
+ {
20925
+ className: _chunkPRPZBXWZcjs.cn.call(void 0,
20926
+ "grid gap-4 md:gap-6",
20927
+ // Responsive grid based on card type
20928
+ variant === "vendor" && "grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
20929
+ variant === "blog" && "grid-cols-1 md:grid-cols-2",
20930
+ variant === "category" && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
20931
+ variant === "alternative" && "grid-cols-1",
20932
+ className
20933
+ ),
20934
+ role: "status",
20935
+ "aria-label": `Loading ${count} ${variant} cards`,
20936
+ children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardSkeleton, { variant, containerClassName, ...props }, index))
20680
20937
  }
20681
- };
20682
- const getSelectedOptions = () => options.filter((option) => validSelectedIds.includes(option.id));
20683
- const renderOption = (option) => {
20684
- const isSelected = validSelectedIds.includes(option.id);
20685
- const optionEl = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20938
+ );
20939
+ }
20940
+
20941
+ // src/components/loading/page-layout-skeleton.tsx
20942
+
20943
+ function AnnouncementBarSkeleton() {
20944
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative w-full animate-pulse bg-ods-skeleton", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative flex w-full flex-row items-center", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative box-border flex w-full flex-row items-center justify-start gap-4 py-3 pl-4 pr-12 md:gap-6 md:py-4 md:pl-6 md:pr-16", children: [
20945
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative h-6 w-6 shrink-0 rounded bg-ods-border md:h-8 md:w-8" }),
20946
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1 space-y-1 md:space-y-2", children: [
20947
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[14px] w-3/4 max-w-md rounded bg-ods-border md:h-[18px]" }),
20948
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden h-[12px] w-full max-w-lg rounded bg-ods-border md:block md:h-[18px]" })
20949
+ ] }),
20950
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "absolute right-2 top-2 h-6 w-6 rounded bg-ods-border" })
20951
+ ] }) }) });
20952
+ }
20953
+ function HeroSkeleton() {
20954
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20955
+ "section",
20956
+ {
20957
+ className: "flex w-full animate-pulse flex-col items-center justify-center px-4 py-12 text-center md:px-8 md:py-20",
20958
+ style: {
20959
+ background: "radial-gradient(circle at 50% 0%, #242323 0%, #1A1A1A 100%)"
20960
+ },
20961
+ children: [
20962
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "mb-4 h-12 w-full max-w-4xl md:mb-6 md:h-20 lg:h-24" }),
20963
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-8 w-full max-w-4xl space-y-3 px-2 md:mb-10", children: [
20964
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "h-5 md:h-7" }),
20965
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "mx-auto h-5 w-3/4 md:h-7" })
20966
+ ] }),
20967
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "h-12 w-full md:w-64" })
20968
+ ]
20969
+ }
20970
+ );
20971
+ }
20972
+ function SearchContainerSkeleton({
20973
+ className,
20974
+ showFilters = true
20975
+ }) {
20976
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-4", className || ""), children: [
20977
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 md:gap-4", children: [
20978
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Input, { className: "flex-1" }),
20979
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "w-32 md:w-40" })
20980
+ ] }),
20981
+ showFilters && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap gap-2", children: [
20982
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, {}),
20983
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-24" }),
20984
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-16" }),
20985
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-20" })
20986
+ ] })
20987
+ ] });
20988
+ }
20989
+ function CategorySidebarSkeleton({ className }) {
20990
+ const items = [
20991
+ { type: "file", width: "w-20", hasBadge: false },
20992
+ { type: "folder", width: "w-24", hasBadge: true },
20993
+ { type: "folder", width: "w-20", hasBadge: true },
20994
+ { type: "folder", width: "w-24", hasBadge: true },
20995
+ { type: "folder", width: "w-16", hasBadge: true },
20996
+ { type: "folder", width: "w-20", hasBadge: true },
20997
+ { type: "folder", width: "w-28", hasBadge: true },
20998
+ { type: "folder", width: "w-16", hasBadge: true },
20999
+ { type: "folder", width: "w-24", hasBadge: true },
21000
+ { type: "file", width: "w-28" },
21001
+ { type: "file", width: "w-36" }
21002
+ ];
21003
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "w-full lg:w-[320px]", className), children: [
21004
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "mb-4 h-[14px] w-24 rounded" }),
21005
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-1.5", children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
20686
21006
  "div",
20687
21007
  {
20688
- className: `group rounded-lg border p-4 transition-all duration-200 ${option.disabled ? `${isSelected ? "cursor-pointer" : "cursor-not-allowed"} border-ods-border bg-ods-card opacity-40` : isSelected ? "cursor-pointer border-ods-accent bg-ods-bg-surface shadow-sm" : "cursor-pointer border-ods-border bg-ods-bg hover:border-ods-border-hover hover:bg-ods-bg-hover"} `,
20689
- onClick: () => (!option.disabled || isSelected) && toggleSelection(option.id),
20690
- children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4", children: [
20691
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [
20692
- option.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20693
- "div",
20694
- {
20695
- className: `flex-shrink-0 transition-transform duration-200 ${isSelected ? "scale-110" : "group-hover:scale-105"}`,
20696
- children: option.icon
20697
- }
20698
- ),
20699
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
20700
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "font-semibold text-ods-text-primary text-h6", children: option.displayName || option.name }),
20701
- option.description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "line-clamp-2 text-ods-text-secondary text-h6", title: option.description, children: option.description })
20702
- ] })
21008
+ className: _chunkPRPZBXWZcjs.cn.call(void 0,
21009
+ "flex min-h-[50px] items-center justify-between rounded-lg border border-ods-border px-4 py-4",
21010
+ index === 0 ? "bg-ods-accent/20" : "bg-ods-card"
21011
+ ),
21012
+ children: [
21013
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2.5", children: [
21014
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-4 w-4 shrink-0 rounded" }),
21015
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: `h-[14px] ${item.width} rounded` })
20703
21016
  ] }),
20704
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
20705
- "div",
20706
- {
20707
- className: `flex h-6 w-6 flex-shrink-0 items-center justify-center rounded border-2 transition-all duration-200 ${isSelected ? "scale-110 border-ods-accent bg-ods-accent" : "border-ods-border group-hover:border-ods-border-hover"} `,
20708
- children: isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Check, { className: "h-4 w-4 font-bold text-ods-text-primary", strokeWidth: 3 })
20709
- }
20710
- )
20711
- ] })
21017
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-[18px] items-center gap-2", children: [
21018
+ item.hasBadge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-[18px] w-14 rounded" }),
21019
+ item.type === "folder" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-4 w-4 rounded" })
21020
+ ] })
21021
+ ]
20712
21022
  },
20713
- option.id
20714
- );
20715
- if (option.disabled && option.disabledReason) {
20716
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Tooltip, { children: [
20717
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipTrigger, { asChild: true, children: optionEl }),
20718
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
20719
- ] }, option.id);
21023
+ index
21024
+ )) })
21025
+ ] });
21026
+ }
21027
+ function BreadcrumbSkeleton({ className }) {
21028
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "mb-6 flex items-center space-x-1", className), children: [
21029
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" }),
21030
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
21031
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-24" }),
21032
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
21033
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-32" }),
21034
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "default", className: "h-4 w-4 rounded-full" }),
21035
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-24" })
21036
+ ] });
21037
+ }
21038
+ function ResultsHeaderSkeleton({ className }) {
21039
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "mb-6 flex flex-col items-start justify-between gap-4 md:flex-row md:items-center", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-48" }) }) });
21040
+ }
21041
+ function TwoColumnLayoutSkeleton({
21042
+ className,
21043
+ sidebarContent,
21044
+ mainContent,
21045
+ sidebarPosition = "left"
21046
+ }) {
21047
+ const sidebar = sidebarContent || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CategorySidebarSkeleton, {});
21048
+ const main = mainContent || /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardSkeletonGrid, { count: 6 });
21049
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21050
+ "div",
21051
+ {
21052
+ className: _chunkPRPZBXWZcjs.cn.call(void 0,
21053
+ "grid grid-cols-1 gap-6 lg:grid-cols-[320px_1fr] lg:gap-8",
21054
+ sidebarPosition === "right" && "lg:grid-cols-[1fr_320px]",
21055
+ className
21056
+ ),
21057
+ children: sidebarPosition === "left" ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
21058
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "aside", { className: "order-2 lg:order-1", children: sidebar }),
21059
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "main", { className: "order-1 lg:order-2", children: main })
21060
+ ] }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
21061
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "main", { className: "order-1", children: main }),
21062
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "aside", { className: "order-2", children: sidebar })
21063
+ ] })
21064
+ }
21065
+ );
21066
+ }
21067
+ function ArticleLayoutSkeleton({ className }) {
21068
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "mx-auto max-w-4xl", className), children: [
21069
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "header", { className: "mb-8 space-y-4 md:mb-12 md:space-y-6", children: [
21070
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2", children: [
21071
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, {}),
21072
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Chip, { className: "w-16" })
21073
+ ] }),
21074
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
21075
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-full" }),
21076
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-3/4" })
21077
+ ] }),
21078
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 border-t border-ods-divider pt-4", children: [
21079
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
21080
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "sm" }),
21081
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-24" })
21082
+ ] }),
21083
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-20" }),
21084
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
21085
+ ] })
21086
+ ] }),
21087
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-8 md:mb-12", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.CardImage, { className: "h-64 w-full md:h-96" }) }),
21088
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "prose prose-invert max-w-none space-y-6", children: [
21089
+ Array.from({ length: 12 }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21090
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
21091
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
21092
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-5/6" }),
21093
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
21094
+ ] }, index)),
21095
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "py-4", children: [
21096
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "mb-4 w-2/3" }),
21097
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21098
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
21099
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-4/5" })
21100
+ ] })
21101
+ ] })
21102
+ ] })
21103
+ ] });
21104
+ }
21105
+ function VendorDetailLayoutSkeleton({ className }) {
21106
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "main", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "min-h-screen bg-ods-bg", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mx-auto max-w-[1920px] px-6 py-6 md:px-20 md:py-10", children: [
21107
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BreadcrumbSkeleton, { className: "mb-6" }),
21108
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col lg:flex-row lg:gap-10", children: [
21109
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
21110
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-10", children: [
21111
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-6 flex gap-6", children: [
21112
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-20 w-20 flex-shrink-0 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
21113
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3", children: [
21114
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
21115
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-80 max-w-full animate-pulse rounded bg-ods-skeleton md:h-16 lg:h-20" }),
21116
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-32 animate-pulse rounded bg-ods-skeleton md:h-6" })
21117
+ ] }),
21118
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
21119
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-20 animate-pulse rounded bg-ods-skeleton" }),
21120
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-16 animate-pulse rounded bg-ods-skeleton" })
21121
+ ] })
21122
+ ] })
21123
+ ] }),
21124
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-2 h-[300px] w-full animate-pulse rounded-lg border border-ods-border bg-ods-card md:h-[400px] lg:h-[500px]" }),
21125
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mx-auto h-4 w-24 animate-pulse rounded bg-ods-skeleton" }) })
21126
+ ] }),
21127
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-10 lg:hidden", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
21128
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
21129
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21130
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
21131
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" })
21132
+ ] }),
21133
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "overflow-hidden rounded-lg border border-ods-border", children: [
21134
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 bg-ods-card p-4", children: [
21135
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 animate-pulse rounded bg-ods-skeleton" }),
21136
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
21137
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-20 animate-pulse rounded bg-ods-skeleton" }),
21138
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-12 animate-pulse rounded bg-ods-skeleton" })
21139
+ ] })
21140
+ ] }),
21141
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3 p-4", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21142
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-6 animate-pulse rounded bg-ods-skeleton" }),
21143
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end gap-1", children: [
21144
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-12 animate-pulse rounded bg-ods-skeleton" }),
21145
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-8 animate-pulse rounded bg-ods-skeleton" })
21146
+ ] })
21147
+ ] }, i)) })
21148
+ ] }),
21149
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
21150
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
21151
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
21152
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" })
21153
+ ] })
21154
+ ] }) }),
21155
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
21156
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-48 animate-pulse rounded bg-ods-skeleton md:h-10" }),
21157
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4", children: [
21158
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-48 animate-pulse rounded bg-ods-skeleton" }),
21159
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21160
+ "div",
21161
+ {
21162
+ className: "h-10 w-24 animate-pulse rounded-lg border border-ods-border bg-ods-card"
21163
+ },
21164
+ i
21165
+ )) })
21166
+ ] }),
21167
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-4", children: [
21168
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-52 animate-pulse rounded bg-ods-skeleton" }),
21169
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap gap-2", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21170
+ "div",
21171
+ {
21172
+ className: "h-10 w-28 animate-pulse rounded-lg border border-ods-border bg-ods-card"
21173
+ },
21174
+ i
21175
+ )) })
21176
+ ] })
21177
+ ] }),
21178
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
21179
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-64 animate-pulse rounded bg-ods-skeleton md:h-10" }),
21180
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-card p-6 md:p-8", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
21181
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 animate-pulse rounded bg-ods-skeleton" }),
21182
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 animate-pulse rounded bg-ods-skeleton" }),
21183
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-5/6 animate-pulse rounded bg-ods-skeleton" }),
21184
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-4/5 animate-pulse rounded bg-ods-skeleton" })
21185
+ ] }) })
21186
+ ] }),
21187
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
21188
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-72 animate-pulse rounded bg-ods-skeleton md:h-10" }),
21189
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-4 rounded-lg border border-ods-border bg-ods-card p-4", children: [
21190
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 flex-shrink-0 animate-pulse rounded bg-ods-skeleton" }),
21191
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
21192
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-3/4 animate-pulse rounded bg-ods-skeleton" }),
21193
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 animate-pulse rounded bg-ods-skeleton" })
21194
+ ] })
21195
+ ] }, i)) })
21196
+ ] }),
21197
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
21198
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-80 animate-pulse rounded bg-ods-skeleton md:h-10" }),
21199
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-6 lg:grid-cols-2", children: [
21200
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-6", children: [
21201
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-16 animate-pulse rounded bg-ods-skeleton" }),
21202
+ Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-3 rounded-lg border border-ods-border bg-ods-card p-4", children: [
21203
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 flex-shrink-0 animate-pulse rounded border border-ods-border bg-ods-bg" }),
21204
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
21205
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-2/3 animate-pulse rounded bg-ods-skeleton" }),
21206
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 animate-pulse rounded bg-ods-skeleton" })
21207
+ ] })
21208
+ ] }, i))
21209
+ ] }),
21210
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-6", children: [
21211
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-16 animate-pulse rounded bg-ods-skeleton" }),
21212
+ Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-3 rounded-lg border border-ods-border bg-ods-card p-4", children: [
21213
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 flex-shrink-0 animate-pulse rounded border border-ods-border bg-ods-bg" }),
21214
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
21215
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-2/3 animate-pulse rounded bg-ods-skeleton" }),
21216
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 animate-pulse rounded bg-ods-skeleton" })
21217
+ ] })
21218
+ ] }, i))
21219
+ ] })
21220
+ ] })
21221
+ ] }),
21222
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
21223
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-72 animate-pulse rounded bg-ods-skeleton md:h-10" }),
21224
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
21225
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4", children: [
21226
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-16 w-16 flex-shrink-0 animate-pulse rounded-lg border border-ods-border bg-ods-bg" }),
21227
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
21228
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-3/4 animate-pulse rounded bg-ods-skeleton" }),
21229
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-1/2 animate-pulse rounded bg-ods-skeleton" })
21230
+ ] }),
21231
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-20 animate-pulse rounded bg-ods-skeleton" })
21232
+ ] }),
21233
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21234
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 animate-pulse rounded bg-ods-skeleton" }),
21235
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-5/6 animate-pulse rounded bg-ods-skeleton" }),
21236
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-4/5 animate-pulse rounded bg-ods-skeleton" })
21237
+ ] }),
21238
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between border-t border-ods-border pt-2", children: [
21239
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-16 animate-pulse rounded bg-ods-skeleton" }),
21240
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-20 animate-pulse rounded bg-ods-skeleton" })
21241
+ ] })
21242
+ ] }, i)) }),
21243
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-md bg-ods-skeleton" })
21244
+ ] }),
21245
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-20 flex flex-col gap-6", children: [
21246
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-64 animate-pulse rounded bg-ods-skeleton md:h-10" }),
21247
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-3", children: [
21248
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 overflow-hidden rounded-lg border border-ods-border bg-ods-bg", children: [
21249
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "border-b border-ods-border p-3", children: [
21250
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-2 h-3 w-8 animate-pulse rounded bg-ods-skeleton" }),
21251
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-full animate-pulse rounded bg-ods-skeleton" })
21252
+ ] }),
21253
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "p-3", children: [
21254
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-2 h-3 w-16 animate-pulse rounded bg-ods-skeleton" }),
21255
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21256
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-full animate-pulse rounded bg-ods-skeleton" }),
21257
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 animate-pulse rounded bg-ods-skeleton" }),
21258
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-1/2 animate-pulse rounded bg-ods-skeleton" })
21259
+ ] })
21260
+ ] })
21261
+ ] }),
21262
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-stretch", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[120px] w-20 animate-pulse rounded-lg bg-ods-skeleton" }) })
21263
+ ] }) }),
21264
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-card p-4", children: [
21265
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-3 flex flex-col gap-3 min-[420px]:flex-row min-[420px]:items-center min-[420px]:justify-between min-[420px]:gap-2", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
21266
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 rounded-lg border border-ods-border bg-ods-card px-3 py-2", children: [
21267
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 animate-pulse rounded-lg bg-ods-skeleton" }),
21268
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-20 animate-pulse rounded bg-ods-skeleton" })
21269
+ ] }),
21270
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-12 animate-pulse rounded bg-ods-skeleton" })
21271
+ ] }) }),
21272
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21273
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-2/3 animate-pulse rounded bg-ods-skeleton" }),
21274
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
21275
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-full animate-pulse rounded bg-ods-skeleton" }),
21276
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-4/5 animate-pulse rounded bg-ods-skeleton" }),
21277
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/5 animate-pulse rounded bg-ods-skeleton" })
21278
+ ] })
21279
+ ] })
21280
+ ] }, i)) })
21281
+ ] })
21282
+ ] }),
21283
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden w-[290px] flex-shrink-0 lg:block", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
21284
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
21285
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21286
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
21287
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" })
21288
+ ] }),
21289
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "overflow-hidden rounded-lg border border-ods-border", children: [
21290
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 bg-ods-card p-4", children: [
21291
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-8 animate-pulse rounded bg-ods-skeleton" }),
21292
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
21293
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-20 animate-pulse rounded bg-ods-skeleton" }),
21294
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-12 animate-pulse rounded bg-ods-skeleton" })
21295
+ ] })
21296
+ ] }),
21297
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3 p-4", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21298
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-6 animate-pulse rounded bg-ods-skeleton" }),
21299
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end gap-1", children: [
21300
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-12 animate-pulse rounded bg-ods-skeleton" }),
21301
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-8 animate-pulse rounded bg-ods-skeleton" })
21302
+ ] })
21303
+ ] }, i)) })
21304
+ ] }),
21305
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
21306
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
21307
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" }),
21308
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 animate-pulse rounded-lg border border-ods-border bg-ods-card" })
21309
+ ] })
21310
+ ] }) })
21311
+ ] })
21312
+ ] }) });
21313
+ }
21314
+ function StatsSectionSkeleton({ className, columns = 3 }) {
21315
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21316
+ "div",
21317
+ {
21318
+ className: _chunkPRPZBXWZcjs.cn.call(void 0,
21319
+ "mb-12 grid gap-6 md:mb-16",
21320
+ columns === 3 && "grid-cols-1 md:grid-cols-3",
21321
+ columns === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
21322
+ className
21323
+ ),
21324
+ children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-card p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
21325
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "lg" }),
21326
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" }),
21327
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21328
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
21329
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
21330
+ ] })
21331
+ ] }) }, i))
21332
+ }
21333
+ );
21334
+ }
21335
+ function BlogCardGridSkeleton({ className }) {
21336
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardSkeletonGrid, { count: 4, variant: "blog", className: "grid-cols-1 md:grid-cols-2" }) });
21337
+ }
21338
+ function VendorGridSkeleton({ className }) {
21339
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardSkeletonGrid, { count: 12, variant: "vendor", className: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3" }) });
21340
+ }
21341
+ function SlackCommunitySkeleton() {
21342
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "section", { className: "w-full bg-ods-bg px-4 py-12 md:px-20 md:py-20 lg:px-20", "aria-label": "Slack Community Loading", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-4 md:gap-6", children: [
21343
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 max-w-md animate-pulse rounded-lg bg-ods-skeleton md:h-12 lg:h-14" }) }),
21344
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 flex-col gap-4 md:gap-6 lg:flex-row lg:items-start lg:justify-end", children: [
21345
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex w-full flex-shrink-0 animate-pulse flex-col overflow-hidden rounded border border-ods-border bg-ods-bg lg:w-[290px] lg:max-w-[290px]", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 p-4", children: [
21346
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
21347
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
21348
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-24 rounded bg-ods-skeleton" }),
21349
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-16 rounded bg-ods-skeleton" })
21350
+ ] }),
21351
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-32 rounded bg-ods-skeleton" })
21352
+ ] }),
21353
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
21354
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-2 h-3 w-16 rounded bg-ods-skeleton" }),
21355
+ Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-[48px] items-center gap-2 px-2 py-3", children: [
21356
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-4 rounded bg-ods-skeleton" }),
21357
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
21358
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-1 h-3 w-24 rounded bg-ods-skeleton" }),
21359
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-2 w-16 rounded bg-ods-skeleton" })
21360
+ ] })
21361
+ ] }, i))
21362
+ ] }),
21363
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2 border-t border-ods-border pt-3", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21364
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between", children: [
21365
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-16 rounded bg-ods-skeleton" }),
21366
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-8 rounded bg-ods-skeleton" })
21367
+ ] }),
21368
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex justify-between", children: [
21369
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-20 rounded bg-ods-skeleton" }),
21370
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-8 rounded bg-ods-skeleton" })
21371
+ ] })
21372
+ ] }) })
21373
+ ] }) }),
21374
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-[450px] min-h-[450px] min-w-0 flex-1 animate-pulse flex-col rounded-lg border border-ods-border bg-ods-card md:h-[500px] md:min-h-[500px] lg:h-[600px] lg:min-h-[600px]", children: [
21375
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-[56px] flex-shrink-0 items-center justify-between border-b border-ods-border bg-ods-bg p-4 md:h-[60px] md:p-6", children: [
21376
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
21377
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-3 rounded bg-ods-skeleton md:h-4 md:w-4" }),
21378
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-24 rounded bg-ods-skeleton md:h-4 md:w-32" })
21379
+ ] }),
21380
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-12 rounded bg-ods-skeleton md:w-16" })
21381
+ ] }),
21382
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[280px] flex-1 space-y-3 overflow-hidden bg-ods-bg p-4 md:min-h-[320px] md:space-y-4 md:p-6 lg:min-h-[420px]", children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 md:gap-3", children: [
21383
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 flex-shrink-0 rounded-lg bg-ods-skeleton md:h-12 md:w-12" }),
21384
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
21385
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-1 flex items-center gap-2", children: [
21386
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-16 rounded bg-ods-skeleton md:w-20" }),
21387
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-12 rounded bg-ods-skeleton md:w-16" })
21388
+ ] }),
21389
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-full rounded bg-ods-skeleton md:h-4" })
21390
+ ] })
21391
+ ] }, i)) }),
21392
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[72px] flex-shrink-0 border-t border-ods-border bg-ods-card p-4 md:h-[80px] md:p-6", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-end justify-center gap-3 md:justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-28 rounded-lg bg-ods-skeleton md:h-12 md:w-32" }) }) })
21393
+ ] })
21394
+ ] })
21395
+ ] }) });
21396
+ }
21397
+
21398
+ // src/components/content-loading-container.tsx
21399
+
21400
+ function ContentLoadingContainer({
21401
+ isLoading,
21402
+ children,
21403
+ skeletonComponent,
21404
+ className,
21405
+ minHeight = "min-h-[300px] md:min-h-[800px]",
21406
+ loadingOpacity = 1,
21407
+ transitionDuration = 300
21408
+ }) {
21409
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21410
+ "div",
21411
+ {
21412
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "relative w-full transition-all ease-in-out", minHeight, className),
21413
+ style: {
21414
+ transitionDuration: `${transitionDuration}ms`
21415
+ },
21416
+ role: "region",
21417
+ "aria-label": isLoading ? "Loading content" : "Content loaded",
21418
+ "aria-live": "polite",
21419
+ children: [
21420
+ isLoading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21421
+ "div",
21422
+ {
21423
+ className: "absolute inset-0 z-10 bg-ods-bg",
21424
+ style: {
21425
+ opacity: loadingOpacity,
21426
+ transition: `opacity ${transitionDuration}ms ease-in-out`
21427
+ },
21428
+ role: "status",
21429
+ "aria-label": "Loading content",
21430
+ children: skeletonComponent
21431
+ }
21432
+ ),
21433
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21434
+ "div",
21435
+ {
21436
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "relative transition-opacity ease-in-out", isLoading && "opacity-0"),
21437
+ style: {
21438
+ transitionDuration: `${transitionDuration}ms`
21439
+ },
21440
+ "aria-hidden": isLoading,
21441
+ children
21442
+ }
21443
+ )
21444
+ ]
21445
+ }
21446
+ );
21447
+ }
21448
+ function useContentLoading(isLoading) {
21449
+ const containerProps = {
21450
+ "aria-busy": isLoading,
21451
+ "data-loading": isLoading
21452
+ };
21453
+ const getSkeletonCount = (contentType) => {
21454
+ return contentType === "vendor" ? 12 : 6;
21455
+ };
21456
+ const getMinHeight = (contentType) => {
21457
+ return contentType === "vendor" ? "min-h-[400px] md:min-h-[900px]" : "min-h-[300px] md:min-h-[800px]";
21458
+ };
21459
+ return {
21460
+ containerProps,
21461
+ getSkeletonCount,
21462
+ getMinHeight
21463
+ };
21464
+ }
21465
+
21466
+ // src/components/loading/content-skeleton.tsx
21467
+
21468
+ function ParagraphSkeleton({ className, lines = 4 }) {
21469
+ const lineWidths = ["w-full", "w-full", "w-5/6", "w-3/4", "w-4/5", "w-2/3"];
21470
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-2", className), children: Array.from({ length: lines }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: lineWidths[index % lineWidths.length] }, index)) });
21471
+ }
21472
+ function ListSkeleton({
21473
+ className,
21474
+ items = 5,
21475
+ showIcons = false,
21476
+ showActions = false
21477
+ }) {
21478
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-3", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between", children: [
21479
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21480
+ showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }),
21481
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-32 md:w-48" })
21482
+ ] }),
21483
+ showActions && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
21484
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-8" }),
21485
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "default", className: "h-4 w-4" })
21486
+ ] })
21487
+ ] }, index)) });
21488
+ }
21489
+ function TableSkeleton({
21490
+ className,
21491
+ rows = 5,
21492
+ columns = 4
21493
+ }) {
21494
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-4", className), children: [
21495
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" }, index)) }),
21496
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: Array.from({ length: rows }).map((_, rowIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21497
+ "div",
21498
+ {
21499
+ className: "grid gap-4 border-b border-ods-divider py-2",
21500
+ style: { gridTemplateColumns: `repeat(${columns}, 1fr)` },
21501
+ children: Array.from({ length: columns }).map((_cell, colIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" }, colIndex))
21502
+ },
21503
+ rowIndex
21504
+ )) })
21505
+ ] });
21506
+ }
21507
+ function FormSkeleton({ className, fields = 4 }) {
21508
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: [
21509
+ Array.from({ length: fields }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21510
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-24" }),
21511
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Input, {}),
21512
+ index % 3 === 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-48" })
21513
+ ] }, index)),
21514
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-4 pt-4", children: [
21515
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, {}),
21516
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "bg-ods-border" })
21517
+ ] })
21518
+ ] });
21519
+ }
21520
+ function NavigationSkeleton({
21521
+ className,
21522
+ items = 6,
21523
+ horizontal = true
21524
+ }) {
21525
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21526
+ "nav",
21527
+ {
21528
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex gap-4 md:gap-6", !horizontal && "flex-col", className),
21529
+ role: "status",
21530
+ "aria-label": "Loading navigation",
21531
+ children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-16 md:w-20" }, index))
21532
+ }
21533
+ );
21534
+ }
21535
+ function ProfileSkeleton({
21536
+ className,
21537
+ showBio = true,
21538
+ showStats = true
21539
+ }) {
21540
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-4", className), children: [
21541
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4", children: [
21542
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "lg" }),
21543
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
21544
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-1/2" }),
21545
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-1/3" }),
21546
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
21547
+ ] })
21548
+ ] }),
21549
+ showBio && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21550
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
21551
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-4/5" }),
21552
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
21553
+ ] }),
21554
+ showStats && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-6", children: [
21555
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
21556
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "mx-auto w-8" }),
21557
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "mx-auto w-12" })
21558
+ ] }),
21559
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
21560
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "mx-auto w-8" }),
21561
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "mx-auto w-16" })
21562
+ ] }),
21563
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-center", children: [
21564
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "mx-auto w-8" }),
21565
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "mx-auto w-14" })
21566
+ ] })
21567
+ ] })
21568
+ ] });
21569
+ }
21570
+ function CommentSkeleton({
21571
+ className,
21572
+ showRating = false,
21573
+ showReplies = false
21574
+ }) {
21575
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-3", className), children: [
21576
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21577
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "sm" }),
21578
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 items-center gap-4", children: [
21579
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-24" }),
21580
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" }),
21581
+ showRating && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex gap-1", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }, i)) })
21582
+ ] })
21583
+ ] }),
21584
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "ml-11 space-y-2", children: [
21585
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
21586
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" }),
21587
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-1/2" })
21588
+ ] }),
21589
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "ml-11 flex gap-4", children: [
21590
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-12" }),
21591
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" }),
21592
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-8" })
21593
+ ] }),
21594
+ showReplies && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "ml-11 space-y-4 border-l border-ods-divider pl-4", children: Array.from({ length: 2 }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21595
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21596
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Avatar, { size: "sm" }),
21597
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-20" }),
21598
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-12" })
21599
+ ] }),
21600
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "ml-11", children: [
21601
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
21602
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
21603
+ ] })
21604
+ ] }, index)) })
21605
+ ] });
21606
+ }
21607
+ function FeatureListSkeleton({
21608
+ className,
21609
+ features = 6,
21610
+ showIcons = true,
21611
+ grouped = false
21612
+ }) {
21613
+ if (grouped) {
21614
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: Array.from({ length: 3 }).map((_, groupIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
21615
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-1/3" }),
21616
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-2", children: Array.from({ length: features / 3 }).map((_feature, featureIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21617
+ showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }),
21618
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
21619
+ ] }, featureIndex)) })
21620
+ ] }, groupIndex)) });
21621
+ }
21622
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-3", className), children: Array.from({ length: features }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21623
+ showIcons && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }),
21624
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
21625
+ ] }, index)) });
21626
+ }
21627
+ function TimelineSkeleton({ className, items = 5 }) {
21628
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: Array.from({ length: items }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-4", children: [
21629
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center", children: [
21630
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }),
21631
+ index < items - 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-2 h-12 w-px bg-ods-border" })
21632
+ ] }),
21633
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
21634
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
21635
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-1/3" }),
21636
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
21637
+ ] }),
21638
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
21639
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
21640
+ ] })
21641
+ ] }, index)) });
21642
+ }
21643
+ function PricingSkeleton({ className, plans = 3 }) {
21644
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21645
+ "div",
21646
+ {
21647
+ className: _chunkPRPZBXWZcjs.cn.call(void 0,
21648
+ "grid gap-6",
21649
+ plans === 2 && "grid-cols-1 md:grid-cols-2",
21650
+ plans === 3 && "grid-cols-1 md:grid-cols-3",
21651
+ plans === 4 && "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
21652
+ className
21653
+ ),
21654
+ children: Array.from({ length: plans }).map((_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-card p-6", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
21655
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-1/2" }),
21656
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
21657
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-1/3" }),
21658
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-1/4" })
21659
+ ] }),
21660
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3 py-4", children: Array.from({ length: 5 }).map((_feature, featureIndex) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
21661
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm" }),
21662
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
21663
+ ] }, featureIndex)) }),
21664
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Button, { className: "w-full" })
21665
+ ] }) }, index))
21666
+ }
21667
+ );
21668
+ }
21669
+
21670
+ // src/components/profile/ProfileLoadingSkeleton.tsx
21671
+
21672
+ function ProfileLoadingSkeleton({ className }) {
21673
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), children: [
21674
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center space-x-4", children: [
21675
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-16 w-16 animate-pulse rounded-full bg-ods-skeleton" }),
21676
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21677
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-32 animate-pulse rounded bg-ods-skeleton" }),
21678
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-24 animate-pulse rounded bg-ods-skeleton" })
21679
+ ] })
21680
+ ] }),
21681
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
21682
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-full animate-pulse rounded bg-ods-skeleton" }),
21683
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 animate-pulse rounded bg-ods-skeleton" }),
21684
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-1/2 animate-pulse rounded bg-ods-skeleton" })
21685
+ ] })
21686
+ ] });
21687
+ }
21688
+
21689
+ // src/components/loading/msp-profile-form-skeleton.tsx
21690
+
21691
+ function MspProfileFormSkeleton({ className, fields = 4 }) {
21692
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21693
+ "div",
21694
+ {
21695
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "grid grid-cols-1 items-stretch gap-6 md:grid-cols-2", className),
21696
+ role: "status",
21697
+ "aria-label": "Loading MSP profile form",
21698
+ children: [
21699
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col space-y-2", children: [
21700
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-28" }),
21701
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[180px] flex-1 md:min-h-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-full w-full rounded-lg", "aria-label": "Loading company logo" }) })
21702
+ ] }),
21703
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: Array.from({ length: fields }).map((_, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col space-y-2", children: [
21704
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-40" }),
21705
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, InteractiveSkeleton.Input, {})
21706
+ ] }, idx)) })
21707
+ ]
21708
+ }
21709
+ );
21710
+ }
21711
+
21712
+ // src/components/loading/category-card-skeleton.tsx
21713
+
21714
+ function CategoryCardSkeleton({ className }) {
21715
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21716
+ "article",
21717
+ {
21718
+ className: _chunkPRPZBXWZcjs.cn.call(void 0,
21719
+ "box-border flex min-w-0 flex-col rounded-[12px] border border-ods-border bg-ods-card p-8",
21720
+ className
21721
+ ),
21722
+ role: "status",
21723
+ "aria-label": "Loading category card",
21724
+ children: [
21725
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mb-8 flex items-center justify-center gap-6", children: Array.from({ length: 10 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "circular", className: "h-10 w-10 flex-shrink-0", "aria-label": "Loading icon" }, i)) }),
21726
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col space-y-3", children: [
21727
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-3/4" }),
21728
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-1/2" }),
21729
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" })
21730
+ ] }),
21731
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-12 w-12 rounded-[6px]", "aria-label": "Loading button" }) })
21732
+ ]
21733
+ }
21734
+ );
21735
+ }
21736
+
21737
+ // src/components/loading/category-vendor-selector-skeleton.tsx
21738
+
21739
+ function CategoryVendorSelectorSkeleton({ subcategories = 3, className }) {
21740
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21741
+ "div",
21742
+ {
21743
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "rounded-lg border border-ods-border bg-ods-card p-6", className),
21744
+ role: "status",
21745
+ "aria-label": "Loading category section",
21746
+ children: [
21747
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-6 max-w-xl space-y-2", children: [
21748
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-1/2" }),
21749
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-3/4" })
21750
+ ] }),
21751
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-6", children: Array.from({ length: subcategories }).map((_, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21752
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-1/3" }),
21753
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-4 md:grid-cols-3", children: Array.from({ length: 2 }).map((__, j) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-20 rounded-lg" }, j)) })
21754
+ ] }, idx)) })
21755
+ ]
21756
+ }
21757
+ );
21758
+ }
21759
+
21760
+ // src/components/loading/wizard-layout-skeleton.tsx
21761
+
21762
+ function WizardLayoutSkeleton({ steps = 6, className }) {
21763
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "space-y-6", className), role: "status", "aria-label": "Loading wizard layout", children: [
21764
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-wrap items-center gap-2", children: Array.from({ length: steps }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-6 w-24 rounded" }, i)) }),
21765
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "max-w-2xl space-y-2", children: [
21766
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Heading, { className: "w-2/3" }),
21767
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-1/2" })
21768
+ ] }),
21769
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mt-10 flex justify-between", children: [
21770
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-10 w-24 rounded" }),
21771
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-10 w-32 rounded" })
21772
+ ] })
21773
+ ] });
21774
+ }
21775
+
21776
+ // src/components/loading/margin-report-skeleton.tsx
21777
+
21778
+ function MarginReportSkeleton({ animate = true, description, overlayContent }) {
21779
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "main", { className: `bg-ods-bg ${animate ? "animate-pulse" : ""} relative min-h-screen`, children: [
21780
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mx-auto max-w-[1920px] space-y-10 px-6 py-6 md:px-20 md:py-10", children: [
21781
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
21782
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-72 rounded bg-ods-skeleton" }),
21783
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-80 rounded bg-ods-skeleton" })
21784
+ ] }),
21785
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-32 rounded border border-ods-border bg-ods-card" }, i)) }),
21786
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [
21787
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex animate-pulse items-center gap-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
21788
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-14 w-14 rounded-lg bg-ods-skeleton" }),
21789
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
21790
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 rounded bg-ods-skeleton" }),
21791
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-1/2 rounded bg-ods-skeleton" })
21792
+ ] })
21793
+ ] }),
21794
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex animate-pulse flex-col gap-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
21795
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4", children: [
21796
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
21797
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-10 w-10 rounded-lg bg-ods-skeleton" }),
21798
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-1", children: [
21799
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-32 rounded bg-ods-skeleton" }),
21800
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-20 rounded bg-ods-skeleton" })
21801
+ ] })
21802
+ ] }),
21803
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-36 rounded bg-ods-skeleton" })
21804
+ ] }),
21805
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-4 h-4 w-40 rounded bg-ods-skeleton" })
21806
+ ] })
21807
+ ] }),
21808
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: ["Commercial Stack", "Open-Source Stack"].map((label, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21809
+ "div",
21810
+ {
21811
+ className: "flex animate-pulse flex-col overflow-hidden rounded-lg border border-ods-border bg-ods-card",
21812
+ children: [
21813
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between px-6 py-4", children: [
21814
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-40 rounded bg-ods-skeleton" }),
21815
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
21816
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-20 rounded bg-ods-skeleton" }),
21817
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-10 rounded bg-ods-skeleton" })
21818
+ ] })
21819
+ ] }),
21820
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-1 flex-col gap-3 p-3", children: Array.from({ length: 5 }).map((_, j) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
21821
+ "div",
21822
+ {
21823
+ className: "flex items-center justify-between rounded-lg border border-ods-border bg-ods-bg px-4 py-3",
21824
+ children: [
21825
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 items-center gap-3", children: [
21826
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 flex-shrink-0 rounded-lg bg-ods-skeleton" }),
21827
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-col", children: [
21828
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-32 rounded bg-ods-skeleton" }),
21829
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mt-1 hidden h-3 w-24 rounded bg-ods-skeleton md:block" })
21830
+ ] })
21831
+ ] }),
21832
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
21833
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-16 rounded bg-ods-skeleton" }),
21834
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-3 w-8 rounded bg-ods-skeleton" })
21835
+ ] })
21836
+ ]
21837
+ },
21838
+ j
21839
+ )) })
21840
+ ]
21841
+ },
21842
+ idx
21843
+ )) }),
21844
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-60 rounded bg-ods-skeleton" }),
21845
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-48 rounded border border-ods-border bg-ods-card" }, i)) }),
21846
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6 rounded-3xl border border-ods-border p-8", children: [
21847
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-6", children: [
21848
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1 space-y-2", children: [
21849
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-8 w-72 rounded bg-ods-skeleton" }),
21850
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-3/4 rounded bg-ods-skeleton" })
21851
+ ] }),
21852
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 shrink-0 rounded-md bg-ods-skeleton" })
21853
+ ] }),
21854
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-32 rounded border border-ods-border bg-ods-card" }, i)) })
21855
+ ] })
21856
+ ] }),
21857
+ overlayContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-none absolute inset-0 z-10 rounded-lg bg-ods-card/80", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto fixed left-1/2 top-1/2 flex -translate-x-1/2 -translate-y-1/2 flex-col items-center gap-4 px-4 text-center", children: [
21858
+ description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { children: description }),
21859
+ overlayContent
21860
+ ] }) })
21861
+ ] });
21862
+ }
21863
+
21864
+ // src/components/loading/users-grid-skeleton.tsx
21865
+
21866
+ function UsersGridSkeleton({ rows = 10, className }) {
21867
+ const skeletonRows = Array.from({ length: rows });
21868
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkPRPZBXWZcjs.cn.call(void 0, "animate-pulse overflow-x-auto rounded-lg border border-ods-border bg-ods-card", className), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "table", { className: "min-w-full divide-y divide-ods-border", children: [
21869
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "thead", { className: "bg-ods-skeleton", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tr", { children: ["Name", "Email", "Role", "Created", "Last Sign-In"].map((h) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "th", { className: "px-4 py-3 text-left text-ods-text-primary text-h6", children: h }, h)) }) }),
21870
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tbody", { className: "divide-y divide-ods-border", children: skeletonRows.map((_, idx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tr", { children: Array.from({ length: 5 }).map((__, cell) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "td", { className: "whitespace-nowrap px-4 py-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-full rounded bg-ods-border" }) }, cell)) }, idx)) })
21871
+ ] }) });
21872
+ }
21873
+
21874
+ // src/components/dynamic-skeleton.tsx
21875
+
21876
+
21877
+ // src/hooks/use-theme-aware.ts
21878
+ function useThemeAware() {
21879
+ return {
21880
+ themeColors: {},
21881
+ platformContext: "default",
21882
+ isDarkMode: false,
21883
+ platform: "default",
21884
+ isDark: false,
21885
+ accentColor: "#FFC008"
21886
+ };
21887
+ }
21888
+
21889
+ // src/components/dynamic-skeleton.tsx
21890
+
21891
+ var sizePresets = {
21892
+ sm: { width: "4rem", height: "1rem" },
21893
+ md: { width: "8rem", height: "1.5rem" },
21894
+ lg: { width: "12rem", height: "2rem" },
21895
+ xl: { width: "16rem", height: "2.5rem" }
21896
+ };
21897
+ var variantStyles = {
21898
+ text: "rounded",
21899
+ avatar: "rounded-full aspect-square",
21900
+ card: "rounded-lg",
21901
+ button: "rounded-md",
21902
+ image: "rounded-lg aspect-video",
21903
+ custom: ""
21904
+ };
21905
+ function DynamicSkeleton({
21906
+ animation = "shimmer",
21907
+ variant = "text",
21908
+ size = "md",
21909
+ width,
21910
+ height,
21911
+ lines = 1,
21912
+ platformAware = true,
21913
+ includeAriaLabel = true,
21914
+ className,
21915
+ children
21916
+ }) {
21917
+ const { platform, isDark, accentColor } = useThemeAware();
21918
+ const dimensions = _react2.default.useMemo(() => {
21919
+ if (width || height) {
21920
+ return {
21921
+ width: typeof width === "number" ? `${width}px` : width,
21922
+ height: typeof height === "number" ? `${height}px` : height
21923
+ };
21924
+ }
21925
+ if (variant === "avatar") {
21926
+ const avatarSize = sizePresets[size].height;
21927
+ return { width: avatarSize, height: avatarSize };
21928
+ }
21929
+ return sizePresets[size];
21930
+ }, [width, height, size, variant]);
21931
+ const platformStyles = _react2.default.useMemo(() => {
21932
+ if (!platformAware) return {};
21933
+ const baseOpacity = isDark ? 0.1 : 0.15;
21934
+ const accentOpacity = isDark ? 0.05 : 0.08;
21935
+ return {
21936
+ "--skeleton-base": `color-mix(in srgb, var(--color-bg-skeleton) ${baseOpacity * 100}%, transparent)`,
21937
+ "--skeleton-highlight": `color-mix(in srgb, ${accentColor} ${accentOpacity * 100}%, var(--color-bg-skeleton))`,
21938
+ "--skeleton-accent": `color-mix(in srgb, ${accentColor} 10%, transparent)`
21939
+ };
21940
+ }, [platformAware, isDark, accentColor]);
21941
+ const animationClasses = {
21942
+ pulse: "animate-pulse",
21943
+ shimmer: "ods-loading-dynamic",
21944
+ wave: "skeleton-wave",
21945
+ static: ""
21946
+ };
21947
+ const baseClasses = _chunkPRPZBXWZcjs.cn.call(void 0,
21948
+ "bg-ods-skeleton",
21949
+ variantStyles[variant],
21950
+ animationClasses[animation],
21951
+ platformAware && `skeleton-platform-${platform}`,
21952
+ className
21953
+ );
21954
+ if (variant === "text" && lines > 1) {
21955
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21956
+ "div",
21957
+ {
21958
+ className: "space-y-2",
21959
+ style: platformStyles,
21960
+ role: "status",
21961
+ "aria-label": includeAriaLabel ? "Loading content..." : void 0,
21962
+ children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21963
+ "div",
21964
+ {
21965
+ className: _chunkPRPZBXWZcjs.cn.call(void 0,
21966
+ baseClasses,
21967
+ index === lines - 1 && "w-3/4"
21968
+ // Last line shorter
21969
+ ),
21970
+ style: {
21971
+ ...dimensions,
21972
+ width: index === lines - 1 ? "75%" : dimensions.width
21973
+ }
21974
+ },
21975
+ index
21976
+ ))
21977
+ }
21978
+ );
21979
+ }
21980
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21981
+ "div",
21982
+ {
21983
+ className: baseClasses,
21984
+ style: { ...dimensions, ...platformStyles },
21985
+ role: "status",
21986
+ "aria-label": includeAriaLabel ? "Loading content..." : void 0,
21987
+ children
21988
+ }
21989
+ );
21990
+ }
21991
+ var SkeletonPresets = {
21992
+ /**
21993
+ * Card skeleton with header, content, and actions
21994
+ */
21995
+ Card: ({ showActions = true, showImage = false }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4 rounded-lg border border-ods-border bg-ods-card p-6", children: [
21996
+ showImage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "image", className: "h-40 w-full" }),
21997
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
21998
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "lg" }),
21999
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
22000
+ ] }),
22001
+ showActions && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2 pt-2", children: [
22002
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "button", width: "6rem", height: "2.5rem" }),
22003
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "button", width: "4rem", height: "2.5rem" })
22004
+ ] })
22005
+ ] }),
22006
+ /**
22007
+ * User profile skeleton
22008
+ */
22009
+ Profile: () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-start gap-4 p-4", children: [
22010
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "avatar", size: "lg" }),
22011
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 space-y-2", children: [
22012
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "lg", width: "8rem" }),
22013
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "sm", width: "12rem" }),
22014
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", lines: 2, size: "md" })
22015
+ ] })
22016
+ ] }),
22017
+ /**
22018
+ * Navigation skeleton
22019
+ */
22020
+ Navigation: ({ items = 5 }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { className: "space-y-2 p-4", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
22021
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "avatar", size: "sm" }),
22022
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "md" })
22023
+ ] }, index)) }),
22024
+ /**
22025
+ * Table skeleton
22026
+ */
22027
+ Table: ({ rows = 5, columns = 4 }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
22028
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "md" }, `header-${index}`)) }),
22029
+ Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid gap-4", style: { gridTemplateColumns: `repeat(${columns}, 1fr)` }, children: Array.from({ length: columns }, (_cell, colIndex) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "sm" }, `cell-${rowIndex}-${colIndex}`)) }, `row-${rowIndex}`))
22030
+ ] }),
22031
+ /**
22032
+ * Vendor grid skeleton (specific to the app)
22033
+ */
22034
+ VendorGrid: ({ items = 6 }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3 rounded-lg border border-ods-border bg-ods-card p-4", children: [
22035
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
22036
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "avatar", size: "md" }),
22037
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
22038
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "md", width: "6rem" }),
22039
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "sm", width: "4rem", className: "mt-1" })
22040
+ ] })
22041
+ ] }),
22042
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", lines: 2, size: "sm" }),
22043
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-2", children: [
22044
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "custom", width: "3rem", height: "1.25rem", className: "rounded-full" }),
22045
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "custom", width: "4rem", height: "1.25rem", className: "rounded-full" })
22046
+ ] })
22047
+ ] }, index)) }),
22048
+ /**
22049
+ * Blog post skeleton
22050
+ */
22051
+ BlogPost: () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "article", { className: "space-y-6", children: [
22052
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-2", children: [
22053
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "xl", width: "75%" }),
22054
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-4 text-sm", children: [
22055
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "sm", width: "4rem" }),
22056
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", size: "sm", width: "6rem" })
22057
+ ] })
22058
+ ] }),
22059
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "image", className: "h-64 w-full" }),
22060
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DynamicSkeleton, { variant: "text", lines: 3, size: "md" }, index)) })
22061
+ ] })
22062
+ };
22063
+ function PlatformSkeletonContainer({
22064
+ children,
22065
+ isLoading,
22066
+ skeletonType = "Card",
22067
+ skeletonProps = {}
22068
+ }) {
22069
+ const { platform } = useThemeAware();
22070
+ if (!isLoading) {
22071
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children });
22072
+ }
22073
+ const SkeletonComponent = SkeletonPresets[skeletonType];
22074
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `platform-skeleton skeleton-${platform}`, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SkeletonComponent, { ...skeletonProps }) });
22075
+ }
22076
+ function ProgressiveSkeleton({
22077
+ // Named only to keep it out of the `...props` spread: the stage NAMES are
22078
+ // unused, `currentStage` alone selects the skeleton shape below.
22079
+ stages: _stages = ["basic", "detailed", "interactive"],
22080
+ currentStage = 0,
22081
+ children,
22082
+ ...props
22083
+ }) {
22084
+ const { platform } = useThemeAware();
22085
+ const stageConfig = {
22086
+ 0: { animation: "pulse", variant: "text" },
22087
+ 1: { animation: "shimmer", variant: "card" },
22088
+ 2: { animation: "wave", variant: "custom" }
22089
+ };
22090
+ const config = stageConfig[currentStage] || stageConfig[0];
22091
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22092
+ DynamicSkeleton,
22093
+ {
22094
+ ...props,
22095
+ ...config,
22096
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, props.className, `skeleton-stage-${currentStage}`, `skeleton-platform-${platform}`),
22097
+ children
22098
+ }
22099
+ );
22100
+ }
22101
+
22102
+ // src/components/loading/organization-icon-skeleton.tsx
22103
+
22104
+ var sizeClasses = {
22105
+ xs: "w-6 h-6",
22106
+ sm: "w-8 h-8",
22107
+ md: "w-10 h-10",
22108
+ lg: "w-12 h-12",
22109
+ l: "w-14 h-14",
22110
+ xl: "w-16 h-16"
22111
+ };
22112
+ var backgroundClasses = {
22113
+ dark: "bg-ods-bg border border-ods-border",
22114
+ light: "bg-ods-card border border-ods-border",
22115
+ white: "bg-white border border-[#E5E5E5]"
22116
+ };
22117
+ function OrganizationIconSkeleton({
22118
+ size = "md",
22119
+ className = "",
22120
+ showBackground = true,
22121
+ backgroundStyle = "dark"
22122
+ }) {
22123
+ const containerClasses = _chunkPRPZBXWZcjs.cn.call(void 0,
22124
+ sizeClasses[size],
22125
+ "flex flex-shrink-0 items-center justify-center rounded-lg",
22126
+ showBackground && backgroundClasses[backgroundStyle],
22127
+ !showBackground && "overflow-hidden",
22128
+ className
22129
+ );
22130
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: containerClasses, role: "status", "aria-label": "Loading organization icon", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-1/2 w-1/2 animate-pulse rounded-sm bg-ods-border" }) });
22131
+ }
22132
+
22133
+ // src/components/loading/organization-card-skeleton.tsx
22134
+
22135
+ function OrganizationCardSkeleton({
22136
+ className,
22137
+ containerClassName,
22138
+ showFooter = true,
22139
+ showDescription = true
22140
+ }) {
22141
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22142
+ "div",
22143
+ {
22144
+ className: _chunkPRPZBXWZcjs.cn.call(void 0,
22145
+ containerClassName || "border border-ods-border bg-ods-card",
22146
+ "flex h-full flex-col overflow-hidden rounded-lg",
22147
+ className
22148
+ ),
22149
+ role: "status",
22150
+ "aria-label": "Loading organization card",
22151
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3 p-4", children: [
22152
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full items-start gap-3", children: [
22153
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22154
+ OrganizationIconSkeleton,
22155
+ {
22156
+ size: "xl",
22157
+ backgroundStyle: "dark",
22158
+ showBackground: true,
22159
+ className: "h-[60px] w-[60px]"
22160
+ }
22161
+ ),
22162
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 flex-col justify-center space-y-1 py-2", children: [
22163
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Subheading, { className: "w-3/4" }),
22164
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-1/2" })
22165
+ ] })
22166
+ ] }),
22167
+ showDescription && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-12 w-full items-center overflow-hidden", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
22168
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-full" }),
22169
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Body, { className: "w-2/3" })
22170
+ ] }) }),
22171
+ showFooter && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full min-w-0 items-center justify-between gap-2", children: [
22172
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-shrink items-center gap-3 md:gap-4", children: [
22173
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
22174
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
22175
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-8" })
22176
+ ] }),
22177
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-shrink-0 items-center gap-1", children: [
22178
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-5 w-5" }),
22179
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-10" })
22180
+ ] })
22181
+ ] }),
22182
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-1.5 rounded border border-ods-border bg-ods-bg px-2.5 py-1.5", children: [
22183
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-sm bg-ods-border", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MediaSkeleton.Icon, { size: "sm", className: "h-2.5 w-2.5" }) }),
22184
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TextSkeleton.Caption, { className: "w-16" })
22185
+ ] }) })
22186
+ ] })
22187
+ ] })
22188
+ }
22189
+ );
22190
+ }
22191
+ function OrganizationCardSkeletonGrid({
22192
+ count = 12,
22193
+ className,
22194
+ containerClassName,
22195
+ showFooter = true,
22196
+ showDescription = true
22197
+ }) {
22198
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22199
+ "div",
22200
+ {
22201
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "grid grid-cols-1 gap-4 md:grid-cols-2 md:gap-6 lg:grid-cols-3", className),
22202
+ role: "status",
22203
+ "aria-label": `Loading ${count} organization cards`,
22204
+ children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22205
+ OrganizationCardSkeleton,
22206
+ {
22207
+ containerClassName,
22208
+ showFooter,
22209
+ showDescription
22210
+ },
22211
+ index
22212
+ ))
22213
+ }
22214
+ );
22215
+ }
22216
+
22217
+ // src/components/loading/device-card-skeleton.tsx
22218
+
22219
+ function DeviceCardSkeleton({ className }) {
22220
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22221
+ "div",
22222
+ {
22223
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "h-full rounded-[6px] border border-ods-border bg-ods-card", className),
22224
+ role: "status",
22225
+ "aria-label": "Loading device card",
22226
+ children: [
22227
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 px-4 py-3", children: [
22228
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-[6px] border border-ods-border bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-4 w-4 animate-pulse rounded bg-ods-border" }) }),
22229
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-3/4 animate-pulse rounded bg-ods-border" }) }),
22230
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-12 w-12 flex-shrink-0 animate-pulse rounded-[6px] bg-ods-border" })
22231
+ ] }),
22232
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 px-4 py-2", children: [
22233
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-24 flex-shrink-0 animate-pulse rounded bg-ods-border" }),
22234
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OrganizationIconSkeleton, { size: "sm" }),
22235
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-1/2 animate-pulse rounded bg-ods-border" }) })
22236
+ ] }),
22237
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-4 px-4 py-2", children: [
22238
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-6 w-20 flex-shrink-0 animate-pulse rounded-full bg-ods-border" }),
22239
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-5 w-40 animate-pulse rounded bg-ods-border" }) })
22240
+ ] })
22241
+ ]
22242
+ }
22243
+ );
22244
+ }
22245
+ function DeviceCardSkeletonGrid({ count = 12, className }) {
22246
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22247
+ "div",
22248
+ {
22249
+ className: _chunkPRPZBXWZcjs.cn.call(void 0, "grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-4", className),
22250
+ role: "status",
22251
+ "aria-label": `Loading ${count} device cards`,
22252
+ children: Array.from({ length: count }, (_, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeviceCardSkeleton, {}, index))
22253
+ }
22254
+ );
22255
+ }
22256
+
22257
+ // src/components/features/push-button-selector.tsx
22258
+
22259
+ function PushButtonSelectorSkeleton({ count = 3, hasTitle }) {
22260
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", role: "status", "aria-label": "Loading options", children: [
22261
+ hasTitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-5 w-20", "aria-label": "Loading title" }),
22262
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-3", children: Array.from({ length: count }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-border bg-ods-bg p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4", children: [
22263
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
22264
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-8 w-8", "aria-label": "Loading icon" }),
22265
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
22266
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "text", className: "mb-2 h-4 w-24", "aria-label": "Loading name" }),
22267
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { variant: "text", className: "h-4 w-36", "aria-label": "Loading description" })
22268
+ ] })
22269
+ ] }),
22270
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, UnifiedSkeleton, { className: "h-6 w-6", "aria-label": "Loading selection state" })
22271
+ ] }) }, i)) })
22272
+ ] });
22273
+ }
22274
+ function PushButtonSelectorError({ message, title }) {
22275
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-3", children: [
22276
+ title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
22277
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "rounded-lg border border-ods-error bg-ods-error-secondary p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "text-ods-error text-h6", children: [
22278
+ "\u26A0\uFE0F ",
22279
+ message
22280
+ ] }) })
22281
+ ] });
22282
+ }
22283
+ function PushButtonSelector({
22284
+ options,
22285
+ selectedIds,
22286
+ onSelectionChange,
22287
+ multiSelect = true,
22288
+ title,
22289
+ helpText,
22290
+ className = "",
22291
+ selectionSummary = false,
22292
+ optional = false,
22293
+ isLoading = false,
22294
+ error = null,
22295
+ skeletonCount = 3,
22296
+ sections,
22297
+ search,
22298
+ lazyLoad,
22299
+ emptyMessage,
22300
+ footer
22301
+ }) {
22302
+ const scrollRef = _react.useRef.call(void 0, null);
22303
+ const sentinelRef = _react.useRef.call(void 0, null);
22304
+ const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _461 => _461.hasMore]), () => ( false));
22305
+ const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _462 => _462.isFetchingMore]), () => ( false));
22306
+ const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _463 => _463.onLoadMore]);
22307
+ const optionCount = options.length;
22308
+ _react.useEffect.call(void 0, () => {
22309
+ const sentinel = sentinelRef.current;
22310
+ const root = scrollRef.current;
22311
+ if (!sentinel || !root || !onLoadMore || !lazyHasMore) return void 0;
22312
+ const observer = new IntersectionObserver(
22313
+ (entries) => {
22314
+ if (entries.some((e) => e.isIntersecting) && !lazyFetching) {
22315
+ onLoadMore();
22316
+ }
22317
+ },
22318
+ { root, rootMargin: "80px" }
22319
+ );
22320
+ observer.observe(sentinel);
22321
+ return () => {
22322
+ observer.disconnect();
22323
+ };
22324
+ }, [lazyHasMore, lazyFetching, onLoadMore, optionCount]);
22325
+ const searchInput = search ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22326
+ _chunkIKDC3R7Vcjs.Input,
22327
+ {
22328
+ value: search.value,
22329
+ onChange: (e) => search.onChange(e.target.value),
22330
+ placeholder: search.placeholder,
22331
+ "aria-label": _nullishCoalesce(_nullishCoalesce(search.ariaLabel, () => ( search.placeholder)), () => ( "Search"))
22332
+ }
22333
+ ) : null;
22334
+ const framed = !!search || !!lazyLoad;
22335
+ if (isLoading && !framed) {
22336
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorSkeleton, { count: skeletonCount, hasTitle: !!title }) });
22337
+ }
22338
+ if (error && !framed) {
22339
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorError, { message: error, title }) });
22340
+ }
22341
+ const validSelectedIds = options.length > 0 ? selectedIds.filter((id) => options.some((option) => option.id === id)) : selectedIds;
22342
+ if (process.env.NODE_ENV === "development" && options.length > 0 && validSelectedIds.length !== selectedIds.length) {
22343
+ const invalidIds = selectedIds.filter((id) => !options.some((opt) => opt.id === id));
22344
+ console.warn("[PushButtonSelector] Invalid selected IDs filtered:", invalidIds);
22345
+ }
22346
+ const toggleSelection = (optionId) => {
22347
+ if (multiSelect) {
22348
+ const isSelected = validSelectedIds.includes(optionId);
22349
+ if (isSelected) {
22350
+ onSelectionChange(validSelectedIds.filter((id) => id !== optionId));
22351
+ } else {
22352
+ onSelectionChange([...validSelectedIds, optionId]);
22353
+ }
22354
+ } else {
22355
+ onSelectionChange(validSelectedIds.includes(optionId) ? [] : [optionId]);
22356
+ }
22357
+ };
22358
+ const getSelectedOptions = () => options.filter((option) => validSelectedIds.includes(option.id));
22359
+ const renderOption = (option) => {
22360
+ const isSelected = validSelectedIds.includes(option.id);
22361
+ const optionEl = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22362
+ "div",
22363
+ {
22364
+ className: `group rounded-lg border p-4 transition-all duration-200 ${option.disabled ? `${isSelected ? "cursor-pointer" : "cursor-not-allowed"} border-ods-border bg-ods-card opacity-40` : isSelected ? "cursor-pointer border-ods-accent bg-ods-bg-surface shadow-sm" : "cursor-pointer border-ods-border bg-ods-bg hover:border-ods-border-hover hover:bg-ods-bg-hover"} `,
22365
+ onClick: () => (!option.disabled || isSelected) && toggleSelection(option.id),
22366
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-between gap-4", children: [
22367
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-3", children: [
22368
+ option.icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22369
+ "div",
22370
+ {
22371
+ className: `flex-shrink-0 transition-transform duration-200 ${isSelected ? "scale-110" : "group-hover:scale-105"}`,
22372
+ children: option.icon
22373
+ }
22374
+ ),
22375
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-w-0 flex-1", children: [
22376
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "font-semibold text-ods-text-primary text-h6", children: option.displayName || option.name }),
22377
+ option.description && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "line-clamp-2 text-ods-text-secondary text-h6", title: option.description, children: option.description })
22378
+ ] })
22379
+ ] }),
22380
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22381
+ "div",
22382
+ {
22383
+ className: `flex h-6 w-6 flex-shrink-0 items-center justify-center rounded border-2 transition-all duration-200 ${isSelected ? "scale-110 border-ods-accent bg-ods-accent" : "border-ods-border group-hover:border-ods-border-hover"} `,
22384
+ children: isSelected && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Check, { className: "h-4 w-4 font-bold text-ods-text-primary", strokeWidth: 3 })
22385
+ }
22386
+ )
22387
+ ] })
22388
+ },
22389
+ option.id
22390
+ );
22391
+ if (option.disabled && option.disabledReason) {
22392
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Tooltip, { children: [
22393
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipTrigger, { asChild: true, children: optionEl }),
22394
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipContent, { className: "max-w-xs", children: option.disabledReason })
22395
+ ] }, option.id);
20720
22396
  }
20721
22397
  return optionEl;
20722
22398
  };
@@ -20752,10 +22428,28 @@ function PushButtonSelector({
20752
22428
  ungroupedOptions.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-2", children: ungroupedOptions.map(renderOption) })
20753
22429
  ] });
20754
22430
  };
22431
+ const framedSkeletonCount = lazyLoad ? Math.max(skeletonCount, 4) : skeletonCount;
22432
+ const listContent = isLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorSkeleton, { count: framedSkeletonCount }) : error ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PushButtonSelectorError, { message: error }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
22433
+ options.length === 0 && emptyMessage !== void 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "text-ods-text-secondary text-h6", children: emptyMessage }) : renderOptionsContent(),
22434
+ lazyLoad ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
22435
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: sentinelRef }),
22436
+ lazyLoad.isFetchingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "py-2 text-center text-ods-text-secondary text-h6", children: "Loading more\u2026" }) : null
22437
+ ] }) : null
22438
+ ] });
20755
22439
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipProvider, { delayDuration: 150, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: `space-y-4 ${className}`, children: [
20756
22440
  title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h5", children: title }),
20757
- renderOptionsContent(),
20758
- selectionSummary && validSelectedIds.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rounded-lg border border-ods-success bg-ods-success-secondary p-4", children: [
22441
+ searchInput,
22442
+ lazyLoad ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
22443
+ "div",
22444
+ {
22445
+ ref: scrollRef,
22446
+ className: "space-y-4 overflow-y-auto rounded-lg border border-ods-border p-2",
22447
+ style: { height: _nullishCoalesce(lazyLoad.maxHeight, () => ( "336px")) },
22448
+ children: listContent
22449
+ }
22450
+ ) : listContent,
22451
+ footer,
22452
+ !isLoading && !error && selectionSummary && validSelectedIds.length > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "rounded-lg border border-ods-success bg-ods-success-secondary p-4", children: [
20759
22453
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-2 flex items-center gap-2", children: [
20760
22454
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-2 w-2 rounded-full bg-ods-success" }),
20761
22455
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "text-ods-success text-h6", children: [
@@ -20780,7 +22474,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
20780
22474
  const fileInputRef = _react.useRef.call(void 0, null);
20781
22475
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
20782
22476
  const handleFileSelect = async (event) => {
20783
- const file = _optionalChain([event, 'access', _461 => _461.target, 'access', _462 => _462.files, 'optionalAccess', _463 => _463[0]]);
22477
+ const file = _optionalChain([event, 'access', _464 => _464.target, 'access', _465 => _465.files, 'optionalAccess', _466 => _466[0]]);
20784
22478
  if (!file) return;
20785
22479
  let mediaType;
20786
22480
  if (file.type.startsWith("image/")) {
@@ -20862,7 +22556,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
20862
22556
  {
20863
22557
  type: "button",
20864
22558
  variant: "outline",
20865
- onClick: () => _optionalChain([fileInputRef, 'access', _464 => _464.current, 'optionalAccess', _465 => _465.click, 'call', _466 => _466()]),
22559
+ onClick: () => _optionalChain([fileInputRef, 'access', _467 => _467.current, 'optionalAccess', _468 => _468.click, 'call', _469 => _469()]),
20866
22560
  disabled: uploadingIndex !== null,
20867
22561
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
20868
22562
  className: "font-bold text-h6",
@@ -21143,7 +22837,7 @@ function SEOEditorPreview({
21143
22837
  const displayImage = hasOgImage || hasFeaturedImage;
21144
22838
  const handleImageUpload = async (event) => {
21145
22839
  if (!onOgImageUpload) return;
21146
- const file = _optionalChain([event, 'access', _467 => _467.target, 'access', _468 => _468.files, 'optionalAccess', _469 => _469[0]]);
22840
+ const file = _optionalChain([event, 'access', _470 => _470.target, 'access', _471 => _471.files, 'optionalAccess', _472 => _472[0]]);
21147
22841
  if (!file) return;
21148
22842
  setIsUploading(true);
21149
22843
  try {
@@ -21300,7 +22994,7 @@ function SEOEditorPreview({
21300
22994
  type: "button",
21301
22995
  variant: "outline",
21302
22996
  size: "icon",
21303
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _470 => _470.click, 'call', _471 => _471()]),
22997
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _473 => _473.click, 'call', _474 => _474()]),
21304
22998
  disabled: disabled || isUploading,
21305
22999
  className: "rounded-full bg-white text-black opacity-0 hover:bg-gray-100 group-hover:opacity-100",
21306
23000
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -21326,7 +23020,7 @@ function SEOEditorPreview({
21326
23020
  SEO_MEDIA_BOX_HEIGHT,
21327
23021
  "flex cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-ods-border bg-ods-bg-hover transition-colors hover:border-ods-accent"
21328
23022
  ),
21329
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _472 => _472.click, 'call', _473 => _473()]),
23023
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _475 => _475.click, 'call', _476 => _476()]),
21330
23024
  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: [
21331
23025
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "mb-2 h-8 w-8 text-ods-text-secondary" }),
21332
23026
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -21413,7 +23107,7 @@ function SocialLinksManager({
21413
23107
  className = ""
21414
23108
  }) {
21415
23109
  const addLink = () => {
21416
- const firstPlatform = _optionalChain([platforms, 'access', _474 => _474[0], 'optionalAccess', _475 => _475.name]) || "website";
23110
+ const firstPlatform = _optionalChain([platforms, 'access', _477 => _477[0], 'optionalAccess', _478 => _478.name]) || "website";
21417
23111
  onChange([...links, { platform: firstPlatform, url: "" }]);
21418
23112
  };
21419
23113
  const removeLink = (index) => {
@@ -21425,7 +23119,7 @@ function SocialLinksManager({
21425
23119
  onChange(updated);
21426
23120
  };
21427
23121
  const getIcon = (link, platform) => {
21428
- const iconKey = _optionalChain([platform, 'optionalAccess', _476 => _476.icon_name]) || link.platform;
23122
+ const iconKey = _optionalChain([platform, 'optionalAccess', _479 => _479.icon_name]) || link.platform;
21429
23123
  const IconComponent = iconMap[iconKey];
21430
23124
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
21431
23125
  };
@@ -21447,7 +23141,7 @@ function SocialLinksManager({
21447
23141
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
21448
23142
  _chunkIKDC3R7Vcjs.Input,
21449
23143
  {
21450
- placeholder: _optionalChain([platform, 'optionalAccess', _477 => _477.placeholder]) || "Profile URL",
23144
+ placeholder: _optionalChain([platform, 'optionalAccess', _480 => _480.placeholder]) || "Profile URL",
21451
23145
  value: link.url,
21452
23146
  onChange: (e) => updateLink(index, "url", e.target.value),
21453
23147
  onKeyDown: (e) => {
@@ -21843,8 +23537,8 @@ function VideoBitesDisplay({
21843
23537
 
21844
23538
  var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
21845
23539
  function theaterSeedFromLive(live, fallbackTime, fallbackMuted) {
21846
- const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _478 => _478.getCurrentTime, 'call', _479 => _479()]), () => ( 0));
21847
- const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _480 => _480.getDuration, 'call', _481 => _481()]), () => ( 0)), time);
23540
+ const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _481 => _481.getCurrentTime, 'call', _482 => _482()]), () => ( 0));
23541
+ const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _483 => _483.getDuration, 'call', _484 => _484()]), () => ( 0)), time);
21848
23542
  return {
21849
23543
  // At end -> start over, never rewind to an unrelated older anchor.
21850
23544
  time: atEnd ? 0 : time > 0.5 ? time : fallbackTime,
@@ -21876,11 +23570,11 @@ function WalkthroughVideo({
21876
23570
  const inline = placement === "inline";
21877
23571
  const dismissEnabled = dismissal !== false;
21878
23572
  const storageKey = dismissEnabled && dismissal.storageKey || WALKTHROUGH_VIDEO_DISMISS_KEY;
21879
- const dismissalId = _optionalChain([video, 'optionalAccess', _482 => _482.id]) != null ? String(video.id) : "dismissed";
23573
+ const dismissalId = _optionalChain([video, 'optionalAccess', _485 => _485.id]) != null ? String(video.id) : "dismissed";
21880
23574
  const [mounted, setMounted] = _react.useState.call(void 0, false);
21881
23575
  const [dismissed, setDismissed] = _react.useState.call(void 0, false);
21882
23576
  const hasVideo = video != null;
21883
- const videoId = _optionalChain([video, 'optionalAccess', _483 => _483.id]);
23577
+ const videoId = _optionalChain([video, 'optionalAccess', _486 => _486.id]);
21884
23578
  _react.useEffect.call(void 0, () => {
21885
23579
  let idleHandle = null;
21886
23580
  if (!hasVideo) return void 0;
@@ -21907,9 +23601,9 @@ function WalkthroughVideo({
21907
23601
  const previewSuppressed = _react.useMemo.call(void 0, () => {
21908
23602
  if (!hydrated) return false;
21909
23603
  try {
21910
- const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _484 => _484.matchMedia, 'optionalCall', _485 => _485("(prefers-reduced-motion: reduce)"), 'access', _486 => _486.matches]), () => ( false));
23604
+ const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _487 => _487.matchMedia, 'optionalCall', _488 => _488("(prefers-reduced-motion: reduce)"), 'access', _489 => _489.matches]), () => ( false));
21911
23605
  const conn = navigator.connection;
21912
- const saveData = _optionalChain([conn, 'optionalAccess', _487 => _487.saveData]) === true || _optionalChain([conn, 'optionalAccess', _488 => _488.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _489 => _489.effectiveType]) === "slow-2g";
23606
+ const saveData = _optionalChain([conn, 'optionalAccess', _490 => _490.saveData]) === true || _optionalChain([conn, 'optionalAccess', _491 => _491.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _492 => _492.effectiveType]) === "slow-2g";
21913
23607
  return Boolean(reducedMotion || saveData);
21914
23608
  } catch (e27) {
21915
23609
  return false;
@@ -21942,18 +23636,18 @@ function WalkthroughVideo({
21942
23636
  const [cardMuted, setCardMuted] = _react.useState.call(void 0, false);
21943
23637
  const [cardPaused, setCardPaused] = _react.useState.call(void 0, false);
21944
23638
  const [userMuted, setUserMuted] = _react.useState.call(void 0, false);
21945
- const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _490 => _490.youtubeUrl]));
23639
+ const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _493 => _493.youtubeUrl]));
21946
23640
  const resumeMode = !open && handoff !== null && !isYouTube;
21947
23641
  const previewAllowed = !previewSuppressed && !isYouTube;
21948
23642
  const footerFadeKey = `${mounted ? 1 : 0}|${inline ? 1 : 0}|${hideNearSelector}|${pathname}`;
21949
- const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _491 => _491.key]) === footerFadeKey && footerObservation.hidden;
23643
+ const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _494 => _494.key]) === footerFadeKey && footerObservation.hidden;
21950
23644
  _react.useEffect.call(void 0, () => {
21951
23645
  if (!mounted) return void 0;
21952
23646
  if (inline) return void 0;
21953
23647
  const el = typeof document !== "undefined" ? document.querySelector(hideNearSelector) : null;
21954
23648
  if (!el || typeof IntersectionObserver === "undefined") return void 0;
21955
23649
  const io = new IntersectionObserver(
21956
- (entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _492 => _492[0], 'optionalAccess', _493 => _493.isIntersecting]), () => ( false)) }),
23650
+ (entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _495 => _495[0], 'optionalAccess', _496 => _496.isIntersecting]), () => ( false)) }),
21957
23651
  { rootMargin: "0px 0px -40px 0px" }
21958
23652
  );
21959
23653
  io.observe(el);
@@ -21979,7 +23673,7 @@ function WalkthroughVideo({
21979
23673
  if (!footerHidden) return;
21980
23674
  const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
21981
23675
  try {
21982
- _optionalChain([h, 'optionalAccess', _494 => _494.pause, 'call', _495 => _495()]);
23676
+ _optionalChain([h, 'optionalAccess', _497 => _497.pause, 'call', _498 => _498()]);
21983
23677
  } catch (e29) {
21984
23678
  }
21985
23679
  }, [footerHidden, resumeMode, hovered]);
@@ -21998,30 +23692,30 @@ function WalkthroughVideo({
21998
23692
  }, 400);
21999
23693
  }
22000
23694
  if (openProp === void 0) setOpenState(next);
22001
- _optionalChain([onOpenChange, 'optionalCall', _496 => _496(next)]);
23695
+ _optionalChain([onOpenChange, 'optionalCall', _499 => _499(next)]);
22002
23696
  },
22003
23697
  [openProp, onOpenChange]
22004
23698
  );
22005
23699
  const pausePreviewNow = _react.useCallback.call(void 0, () => {
22006
23700
  const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
22007
23701
  try {
22008
- _optionalChain([h, 'optionalAccess', _497 => _497.pause, 'call', _498 => _498()]);
23702
+ _optionalChain([h, 'optionalAccess', _500 => _500.pause, 'call', _501 => _501()]);
22009
23703
  } catch (e30) {
22010
23704
  }
22011
23705
  setCardPaused(true);
22012
23706
  }, [setCardPaused]);
22013
23707
  const openTheater = _react.useCallback.call(void 0, () => {
22014
23708
  const handleBeforePause = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
22015
- const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _499 => _499.getPaused, 'call', _500 => _500()]) === false;
23709
+ const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _502 => _502.getPaused, 'call', _503 => _503()]) === false;
22016
23710
  pausePreviewNow();
22017
23711
  const liveHandle = _nullishCoalesce(resumeHandleRef.current, () => ( (cardModeRef.current === "preview" ? previewHandleRef.current : null)));
22018
- const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _501 => _501.getCurrentTime, 'call', _502 => _502()]), () => ( 0));
22019
- const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _503 => _503.getDuration, 'call', _504 => _504()]), () => ( 0));
23712
+ const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _504 => _504.getCurrentTime, 'call', _505 => _505()]), () => ( 0));
23713
+ const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _506 => _506.getDuration, 'call', _507 => _507()]), () => ( 0));
22020
23714
  const liveAtEnd = isAtEnd(liveDuration, liveTime);
22021
23715
  const start = {
22022
23716
  // At end -> start over. Falling back to `handoff.time` here would rewind
22023
23717
  // to an unrelated older anchor (e.g. 3:20) instead of restarting.
22024
- time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _505 => _505.time]), () => ( 0)),
23718
+ time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _508 => _508.time]), () => ( 0)),
22025
23719
  // Live element wins over remembered intent (the theater's own chrome may
22026
23720
  // have changed it) — EXCEPT when the element is muted only because
22027
23721
  // autoplay policy forced it, which is not intent.
@@ -22049,7 +23743,7 @@ function WalkthroughVideo({
22049
23743
  const selfDriven = selfDrivenFor === open;
22050
23744
  if (openProp !== void 0 && !selfDriven) {
22051
23745
  if (open) {
22052
- setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _506 => _506.time]), () => ( 0)), userMuted));
23746
+ setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _509 => _509.time]), () => ( 0)), userMuted));
22053
23747
  setHovered(false);
22054
23748
  setSuspended(false);
22055
23749
  setHandoff(null);
@@ -22135,8 +23829,8 @@ function WalkthroughVideo({
22135
23829
  });
22136
23830
  _react.useEffect.call(void 0, () => {
22137
23831
  if (resumeMode) {
22138
- setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _507 => _507.current, 'optionalAccess', _508 => _508.muted]), () => ( false)));
22139
- setCardPaused(_optionalChain([handoffRef, 'access', _509 => _509.current, 'optionalAccess', _510 => _510.playing]) === false);
23832
+ setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _510 => _510.current, 'optionalAccess', _511 => _511.muted]), () => ( false)));
23833
+ setCardPaused(_optionalChain([handoffRef, 'access', _512 => _512.current, 'optionalAccess', _513 => _513.playing]) === false);
22140
23834
  }
22141
23835
  }, [resumeMode]);
22142
23836
  const [hoverSeeded, setHoverSeeded] = _react.useState.call(void 0, hovered);
@@ -22218,11 +23912,11 @@ function WalkthroughVideo({
22218
23912
  },
22219
23913
  [cardFallback.blocked, cardPaused, activeHandle, setCardPaused]
22220
23914
  );
22221
- const summaryTitle = _optionalChain([video, 'optionalAccess', _511 => _511.title]) || void 0;
22222
- const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _512 => _512.presenterAvatarUrl]), () => ( null));
23915
+ const summaryTitle = _optionalChain([video, 'optionalAccess', _514 => _514.title]) || void 0;
23916
+ const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _515 => _515.presenterAvatarUrl]), () => ( null));
22223
23917
  const embedUrlKey = _react.useMemo.call(void 0,
22224
- () => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _513 => _513.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _514 => _514.youtubeUrl]), () => ( ""))}`,
22225
- [_optionalChain([video, 'optionalAccess', _515 => _515.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _516 => _516.youtubeUrl])]
23918
+ () => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _516 => _516.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _517 => _517.youtubeUrl]), () => ( ""))}`,
23919
+ [_optionalChain([video, 'optionalAccess', _518 => _518.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _519 => _519.youtubeUrl])]
22226
23920
  );
22227
23921
  const cardActive = !open && previewAllowed && hovered && !resumeMode;
22228
23922
  const cardMode = resumeMode ? "resume" : cardActive ? "preview" : "poster";
@@ -22281,7 +23975,7 @@ function WalkthroughVideo({
22281
23975
  const el = e.target;
22282
23976
  let keyboard = false;
22283
23977
  try {
22284
- keyboard = _nullishCoalesce(_optionalChain([el, 'access', _517 => _517.matches, 'optionalCall', _518 => _518(":focus-visible")]), () => ( false));
23978
+ keyboard = _nullishCoalesce(_optionalChain([el, 'access', _520 => _520.matches, 'optionalCall', _521 => _521(":focus-visible")]), () => ( false));
22285
23979
  } catch (e35) {
22286
23980
  keyboard = false;
22287
23981
  }
@@ -22315,9 +24009,9 @@ function WalkthroughVideo({
22315
24009
  previewHandleRef: cardMode === "resume" ? resumeHandleRef : previewHandleRef,
22316
24010
  mutedIntent: userMuted,
22317
24011
  continuation: cardMode === "resume",
22318
- autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _519 => _519.playing]) !== false && !footerHidden,
22319
- startTime: _optionalChain([resumeHandoff, 'optionalAccess', _520 => _520.time]),
22320
- startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _521 => _521.muted]), () => ( false)),
24012
+ autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _522 => _522.playing]) !== false && !footerHidden,
24013
+ startTime: _optionalChain([resumeHandoff, 'optionalAccess', _523 => _523.time]),
24014
+ startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _524 => _524.muted]), () => ( false)),
22321
24015
  onEnded: cardMode === "resume" ? () => setHandoff(null) : () => setCardPaused(true)
22322
24016
  },
22323
24017
  `card-${embedUrlKey}`
@@ -22414,7 +24108,7 @@ function WalkthroughVideo({
22414
24108
  {
22415
24109
  onOpenAutoFocus: (e) => {
22416
24110
  e.preventDefault();
22417
- _optionalChain([closeButtonRef, 'access', _522 => _522.current, 'optionalAccess', _523 => _523.focus, 'call', _524 => _524()]);
24111
+ _optionalChain([closeButtonRef, 'access', _525 => _525.current, 'optionalAccess', _526 => _526.focus, 'call', _527 => _527()]);
22418
24112
  },
22419
24113
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
22420
24114
  // PURE theater: just the video, centered on a dimmed backdrop.
@@ -22508,14 +24202,14 @@ function useWalkthroughVideo(opts) {
22508
24202
  if (res.status === 404) return null;
22509
24203
  if (!res.ok) throw new Error(`Walkthrough video request failed (${res.status})`);
22510
24204
  const body = await res.json();
22511
- return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _525 => _525.walkthroughVideo]), () => ( null));
24205
+ return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _528 => _528.walkthroughVideo]), () => ( null));
22512
24206
  },
22513
24207
  // Per-observer transform — NEVER mutate the cached data. `select` also runs
22514
24208
  // over `initialData`, so the SSR seed is rewritten too. Keeping the proxy
22515
24209
  // rewrite here (not in queryFn) means a second consumer of the same
22516
24210
  // endpoint can't inherit this observer's proxied captionsUrl from the cache.
22517
24211
  select: (video) => {
22518
- if (!_optionalChain([video, 'optionalAccess', _526 => _526.captionsUrl])) return video;
24212
+ if (!_optionalChain([video, 'optionalAccess', _529 => _529.captionsUrl])) return video;
22519
24213
  if (transformCaptionsUrl && video.captionsUrl.startsWith("/")) {
22520
24214
  return { ...video, captionsUrl: transformCaptionsUrl(video.captionsUrl) };
22521
24215
  }
@@ -22562,7 +24256,7 @@ function VideoSourceSelector({
22562
24256
  input.accept = "video/*";
22563
24257
  input.onchange = async (e) => {
22564
24258
  const target = e.target;
22565
- const file = _optionalChain([target, 'access', _527 => _527.files, 'optionalAccess', _528 => _528[0]]);
24259
+ const file = _optionalChain([target, 'access', _530 => _530.files, 'optionalAccess', _531 => _531[0]]);
22566
24260
  if (!file) return;
22567
24261
  setIsUploading(true);
22568
24262
  setUploadProgress(0);
@@ -22738,7 +24432,7 @@ function SubtitlesEditor({
22738
24432
  {
22739
24433
  id,
22740
24434
  value: subtitles || "",
22741
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _529 => _529(e.target.value)]),
24435
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _532 => _532(e.target.value)]),
22742
24436
  placeholder,
22743
24437
  disabled: disabled || !onSubtitlesChange,
22744
24438
  className: "h-full w-full resize-none border-0 bg-transparent p-4 text-ods-text-primary text-code placeholder:text-ods-text-secondary/50 focus:outline-none focus:ring-0",
@@ -22967,7 +24661,7 @@ var AIEnrichSection = ({
22967
24661
  }) => {
22968
24662
  const hasResults = status === "success" || status === "error";
22969
24663
  const shouldDisable = disabled || !canEnrich;
22970
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _530 => _530.filter, 'call', _531 => _531((f) => !f.isFilled)]) || [];
24664
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _533 => _533.filter, 'call', _534 => _534((f) => !f.isFilled)]) || [];
22971
24665
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
22972
24666
  "div",
22973
24667
  {
@@ -22999,7 +24693,7 @@ var AIEnrichSection = ({
22999
24693
  {
23000
24694
  id: "ai-enrich-custom-instructions",
23001
24695
  value: _nullishCoalesce(customInstructions, () => ( "")),
23002
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _532 => _532(e.target.value)]),
24696
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _535 => _535(e.target.value)]),
23003
24697
  placeholder: customInstructionsPlaceholder,
23004
24698
  disabled: loading,
23005
24699
  maxLength: customInstructionsMaxLength,
@@ -23121,7 +24815,7 @@ function HighlightVideoSection({
23121
24815
  input.accept = "video/*";
23122
24816
  input.onchange = async (e) => {
23123
24817
  const target = e.target;
23124
- const file = _optionalChain([target, 'access', _533 => _533.files, 'optionalAccess', _534 => _534[0]]);
24818
+ const file = _optionalChain([target, 'access', _536 => _536.files, 'optionalAccess', _537 => _537[0]]);
23125
24819
  if (!file) return;
23126
24820
  setUploadError(null);
23127
24821
  try {
@@ -23548,7 +25242,7 @@ function HighlightVideoPreview({
23548
25242
  input.accept = "video/*";
23549
25243
  input.onchange = async (e) => {
23550
25244
  const target = e.target;
23551
- const file = _optionalChain([target, 'access', _535 => _535.files, 'optionalAccess', _536 => _536[0]]);
25245
+ const file = _optionalChain([target, 'access', _538 => _538.files, 'optionalAccess', _539 => _539[0]]);
23552
25246
  if (!file) return;
23553
25247
  await onUpload(file);
23554
25248
  };
@@ -23732,7 +25426,7 @@ function HighlightVideoCombinedSection({
23732
25426
  input.accept = "video/*";
23733
25427
  input.onchange = async (e) => {
23734
25428
  const target = e.target;
23735
- const file = _optionalChain([target, 'access', _537 => _537.files, 'optionalAccess', _538 => _538[0]]);
25429
+ const file = _optionalChain([target, 'access', _540 => _540.files, 'optionalAccess', _541 => _541[0]]);
23736
25430
  if (!file) return;
23737
25431
  await onUpload(file);
23738
25432
  };
@@ -24431,19 +26125,19 @@ function NotificationsProvider({
24431
26125
  }, []);
24432
26126
  const markRead = _react.useCallback.call(void 0, (id) => {
24433
26127
  dispatch({ type: "markRead", id });
24434
- void _optionalChain([actionsRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.onMarkRead, 'optionalCall', _541 => _541(id)]);
26128
+ void _optionalChain([actionsRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.onMarkRead, 'optionalCall', _544 => _544(id)]);
24435
26129
  }, []);
24436
26130
  const markAllRead = _react.useCallback.call(void 0, () => {
24437
26131
  dispatch({ type: "markAllRead" });
24438
- void _optionalChain([actionsRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.onMarkAllRead, 'optionalCall', _544 => _544()]);
26132
+ void _optionalChain([actionsRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.onMarkAllRead, 'optionalCall', _547 => _547()]);
24439
26133
  }, []);
24440
26134
  const markSettled = _react.useCallback.call(void 0, (id) => {
24441
26135
  dispatch({ type: "markSettled", id });
24442
- void _optionalChain([actionsRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.onMarkSettled, 'optionalCall', _547 => _547(id)]);
26136
+ void _optionalChain([actionsRef, 'access', _548 => _548.current, 'optionalAccess', _549 => _549.onMarkSettled, 'optionalCall', _550 => _550(id)]);
24443
26137
  }, []);
24444
26138
  const remove = _react.useCallback.call(void 0, (id) => {
24445
26139
  dispatch({ type: "remove", id });
24446
- void _optionalChain([actionsRef, 'access', _548 => _548.current, 'optionalAccess', _549 => _549.onRemove, 'optionalCall', _550 => _550(id)]);
26140
+ void _optionalChain([actionsRef, 'access', _551 => _551.current, 'optionalAccess', _552 => _552.onRemove, 'optionalCall', _553 => _553(id)]);
24447
26141
  }, []);
24448
26142
  const clear = _react.useCallback.call(void 0, () => dispatch({ type: "clear" }), []);
24449
26143
  const open = _react.useCallback.call(void 0, () => setIsOpen(true), []);
@@ -24452,14 +26146,14 @@ function NotificationsProvider({
24452
26146
  const setShowPopups = _react.useCallback.call(void 0,
24453
26147
  (value2) => {
24454
26148
  setShowPopupsState(value2);
24455
- _optionalChain([onShowPopupsChange, 'optionalCall', _551 => _551(value2)]);
26149
+ _optionalChain([onShowPopupsChange, 'optionalCall', _554 => _554(value2)]);
24456
26150
  },
24457
26151
  [onShowPopupsChange]
24458
26152
  );
24459
26153
  const setShowDesktopPopups = _react.useCallback.call(void 0,
24460
26154
  (value2) => {
24461
26155
  setShowDesktopPopupsState(value2);
24462
- _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _552 => _552(value2)]);
26156
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _555 => _555(value2)]);
24463
26157
  },
24464
26158
  [onShowDesktopPopupsChange]
24465
26159
  );
@@ -24575,7 +26269,7 @@ var AppLayoutDrawerRoot = ({
24575
26269
  const handleOpenChange = _react.useCallback.call(void 0,
24576
26270
  (next) => {
24577
26271
  if (!isControlled) setInternalOpen(next);
24578
- _optionalChain([onOpenChange, 'optionalCall', _553 => _553(next)]);
26272
+ _optionalChain([onOpenChange, 'optionalCall', _556 => _556(next)]);
24579
26273
  },
24580
26274
  [isControlled, onOpenChange]
24581
26275
  );
@@ -24592,9 +26286,9 @@ var AppLayoutDrawerRoot = ({
24592
26286
  }
24593
26287
  }));
24594
26288
  _react.useEffect.call(void 0, () => {
24595
- if (open) _optionalChain([coordination, 'optionalAccess', _554 => _554.notifyDrawerDidOpen, 'call', _555 => _555(selfHandle)]);
26289
+ if (open) _optionalChain([coordination, 'optionalAccess', _557 => _557.notifyDrawerDidOpen, 'call', _558 => _558(selfHandle)]);
24596
26290
  }, [open, coordination, selfHandle]);
24597
- _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _556 => _556.registerDrawer, 'call', _557 => _557(selfHandle)]), [coordination, selfHandle]);
26291
+ _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _559 => _559.registerDrawer, 'call', _560 => _560(selfHandle)]), [coordination, selfHandle]);
24598
26292
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DrawerOpenContext.Provider, { value: open, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DialogPrimitive3.Root, { ...rest, open, onOpenChange: handleOpenChange, modal, children }) });
24599
26293
  };
24600
26294
  AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
@@ -24947,10 +26641,10 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
24947
26641
  ),
24948
26642
  style,
24949
26643
  onInteractOutside: (event) => {
24950
- _optionalChain([onInteractOutside, 'optionalCall', _558 => _558(event)]);
26644
+ _optionalChain([onInteractOutside, 'optionalCall', _561 => _561(event)]);
24951
26645
  if (event.defaultPrevented) return;
24952
26646
  const target = event.target;
24953
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _559 => _559.contains, 'call', _560 => _560(target)]);
26647
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _562 => _562.contains, 'call', _563 => _563(target)]);
24954
26648
  if (!isInsideContainer) {
24955
26649
  event.preventDefault();
24956
26650
  return;
@@ -25053,7 +26747,7 @@ function NotificationTile({
25053
26747
  if (!counting) return void 0;
25054
26748
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
25055
26749
  const timer = window.setTimeout(() => {
25056
- _optionalChain([onSettle, 'optionalCall', _561 => _561(id)]);
26750
+ _optionalChain([onSettle, 'optionalCall', _564 => _564(id)]);
25057
26751
  }, remaining);
25058
26752
  return () => window.clearTimeout(timer);
25059
26753
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -25093,7 +26787,7 @@ function NotificationTile({
25093
26787
  active: isLive,
25094
26788
  label: "Dismiss notification",
25095
26789
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.XmarkIcon, { size: 16 }),
25096
- onClick: () => _optionalChain([onSettle, 'optionalCall', _562 => _562(id)])
26790
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _565 => _565(id)])
25097
26791
  },
25098
26792
  {
25099
26793
  active: !isLive,
@@ -25281,7 +26975,7 @@ function DrawerScrollList({
25281
26975
  if (!sentinel || !root) return void 0;
25282
26976
  const observer = new IntersectionObserver(
25283
26977
  (entries) => {
25284
- if (_optionalChain([entries, 'access', _563 => _563[0], 'optionalAccess', _564 => _564.isIntersecting])) _optionalChain([loadMoreRef, 'access', _565 => _565.current, 'optionalCall', _566 => _566()]);
26978
+ if (_optionalChain([entries, 'access', _566 => _566[0], 'optionalAccess', _567 => _567.isIntersecting])) _optionalChain([loadMoreRef, 'access', _568 => _568.current, 'optionalCall', _569 => _569()]);
25285
26979
  },
25286
26980
  { root, rootMargin: loadMoreRootMargin }
25287
26981
  );
@@ -25296,7 +26990,7 @@ function DrawerScrollList({
25296
26990
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
25297
26991
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
25298
26992
  unreadNotifications.map((n) => {
25299
- const custom = _optionalChain([renderTile, 'optionalCall', _567 => _567(n, { onComplete, onSettle, liveDurationMs })]);
26993
+ const custom = _optionalChain([renderTile, 'optionalCall', _570 => _570(n, { onComplete, onSettle, liveDurationMs })]);
25300
26994
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
25301
26995
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
25302
26996
  NotificationTile,
@@ -25416,7 +27110,7 @@ function NotificationPopups({
25416
27110
  }) {
25417
27111
  const ctx = useOptionalNotifications();
25418
27112
  const [now, setNow] = _react.useState.call(void 0, () => Date.now());
25419
- const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _568 => _568.notifications, 'access', _569 => _569.some, 'call', _570 => _570((n) => !n.read && !n.settled)]));
27113
+ const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _571 => _571.notifications, 'access', _572 => _572.some, 'call', _573 => _573((n) => !n.read && !n.settled)]));
25420
27114
  _react.useEffect.call(void 0, () => {
25421
27115
  if (!hasAgeingNotifications) return void 0;
25422
27116
  const id = setInterval(() => setNow(Date.now()), 500);
@@ -25459,7 +27153,7 @@ function NotificationPopups({
25459
27153
  className
25460
27154
  ),
25461
27155
  children: live.map((n) => {
25462
- const custom = _optionalChain([renderTile, 'optionalCall', _571 => _571(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
27156
+ const custom = _optionalChain([renderTile, 'optionalCall', _574 => _574(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
25463
27157
  if (custom) {
25464
27158
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
25465
27159
  }
@@ -25498,21 +27192,21 @@ function NotificationPopups({
25498
27192
  // src/components/features/notifications/types.ts
25499
27193
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
25500
27194
  function isApprovalNotification(notification) {
25501
- return _optionalChain([notification, 'access', _572 => _572.meta, 'optionalAccess', _573 => _573.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
27195
+ return _optionalChain([notification, 'access', _575 => _575.meta, 'optionalAccess', _576 => _576.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
25502
27196
  }
25503
27197
  function getApprovalMeta(notification) {
25504
27198
  if (!isApprovalNotification(notification)) return null;
25505
27199
  const meta = notification.meta;
25506
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _574 => _574.approvalRequestId]);
25507
- const toolCalls = _optionalChain([meta, 'optionalAccess', _575 => _575.toolCalls]);
27200
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _577 => _577.approvalRequestId]);
27201
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _578 => _578.toolCalls]);
25508
27202
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
25509
27203
  return {
25510
27204
  approvalRequestId,
25511
- dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _576 => _576.dialogId]), () => ( null)),
25512
- ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _577 => _577.ticketId]), () => ( null)),
25513
- approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _578 => _578.approvalType]), () => ( null)),
25514
- resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.resolution]), () => ( null)),
25515
- resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _580 => _580.resolvedByName]), () => ( null)),
27205
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.dialogId]), () => ( null)),
27206
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _580 => _580.ticketId]), () => ( null)),
27207
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _581 => _581.approvalType]), () => ( null)),
27208
+ resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _582 => _582.resolution]), () => ( null)),
27209
+ resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _583 => _583.resolvedByName]), () => ( null)),
25516
27210
  toolCalls
25517
27211
  };
25518
27212
  }
@@ -25562,7 +27256,7 @@ function ApprovalRequestNotificationTile({
25562
27256
  const [processing, setProcessing] = _react.useState.call(void 0, false);
25563
27257
  const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
25564
27258
  const approval = getApprovalMeta(notification);
25565
- const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _581 => _581.resolution]));
27259
+ const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _584 => _584.resolution]));
25566
27260
  const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
25567
27261
  const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
25568
27262
  const { innerRef, containerStyle } = _chunkLOJ5KQ6Bcjs.useCollapsible.call(void 0, { expanded });
@@ -25884,7 +27578,7 @@ function TimeTrackerPanel({
25884
27578
  error: showFieldError ? "Required if no notes added" : void 0,
25885
27579
  disableClientFilter: !!onTicketSearch,
25886
27580
  onInputChange: (value, reason) => {
25887
- if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _582 => _582(value)]);
27581
+ if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _585 => _585(value)]);
25888
27582
  }
25889
27583
  }
25890
27584
  ),
@@ -25899,7 +27593,7 @@ function TimeTrackerPanel({
25899
27593
  disabled: customerLocked,
25900
27594
  disableClientFilter: !!onCustomerSearch,
25901
27595
  onInputChange: (value, reason) => {
25902
- if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _583 => _583(value)]);
27596
+ if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _586 => _586(value)]);
25903
27597
  },
25904
27598
  startAdornment: customerStartAdornment,
25905
27599
  renderOption: renderCustomerOption
@@ -26001,7 +27695,7 @@ function LastEntryRow({ entry, onClick }) {
26001
27695
  {
26002
27696
  variant: "outline",
26003
27697
  size: "icon",
26004
- onClick: () => _optionalChain([onClick, 'optionalCall', _584 => _584(entry)]),
27698
+ onClick: () => _optionalChain([onClick, 'optionalCall', _587 => _587(entry)]),
26005
27699
  disabled: !onClick,
26006
27700
  "aria-label": `Open entry: ${entry.title}`,
26007
27701
  className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
@@ -26085,28 +27779,28 @@ function HeaderButton({
26085
27779
  function TimeTrackerHeaderButton({ className, disabled }) {
26086
27780
  const ctx = useOptionalTimeTracker();
26087
27781
  const elapsedLabel = useTrackerClock({
26088
- status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _585 => _585.status]), () => ( "ready")),
26089
- runningSince: _optionalChain([ctx, 'optionalAccess', _586 => _586.runningSince]),
26090
- accumulatedMs: _optionalChain([ctx, 'optionalAccess', _587 => _587.accumulatedMs])
27782
+ status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _588 => _588.status]), () => ( "ready")),
27783
+ runningSince: _optionalChain([ctx, 'optionalAccess', _589 => _589.runningSince]),
27784
+ accumulatedMs: _optionalChain([ctx, 'optionalAccess', _590 => _590.accumulatedMs])
26091
27785
  });
26092
27786
  const layoutContainer = useAppLayoutDrawerContainer();
26093
27787
  const coordination = useAppLayoutDrawerCoordination();
26094
- const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _588 => _588.isOpen]), () => ( false));
27788
+ const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _591 => _591.isOpen]), () => ( false));
26095
27789
  const isOpenRef = _react.useRef.call(void 0, isOpen);
26096
- const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _589 => _589.close]));
27790
+ const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _592 => _592.close]));
26097
27791
  _react.useEffect.call(void 0, () => {
26098
27792
  isOpenRef.current = isOpen;
26099
- closeRef.current = _optionalChain([ctx, 'optionalAccess', _590 => _590.close]);
27793
+ closeRef.current = _optionalChain([ctx, 'optionalAccess', _593 => _593.close]);
26100
27794
  });
26101
27795
  const [selfHandle] = _react.useState.call(void 0, () => ({
26102
27796
  close: () => {
26103
- if (isOpenRef.current) _optionalChain([closeRef, 'access', _591 => _591.current, 'optionalCall', _592 => _592()]);
27797
+ if (isOpenRef.current) _optionalChain([closeRef, 'access', _594 => _594.current, 'optionalCall', _595 => _595()]);
26104
27798
  }
26105
27799
  }));
26106
27800
  _react.useEffect.call(void 0, () => {
26107
- if (isOpen) _optionalChain([coordination, 'optionalAccess', _593 => _593.notifyDrawerDidOpen, 'call', _594 => _594(selfHandle)]);
27801
+ if (isOpen) _optionalChain([coordination, 'optionalAccess', _596 => _596.notifyDrawerDidOpen, 'call', _597 => _597(selfHandle)]);
26108
27802
  }, [isOpen, coordination, selfHandle]);
26109
- _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _595 => _595.registerDrawer, 'call', _596 => _596(selfHandle)]), [coordination, selfHandle]);
27803
+ _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _598 => _598.registerDrawer, 'call', _599 => _599(selfHandle)]), [coordination, selfHandle]);
26110
27804
  if (!ctx) return null;
26111
27805
  const { open, close, status } = ctx;
26112
27806
  const isPaused = status === "paused";
@@ -26238,7 +27932,7 @@ function autoScrollAncestors(element) {
26238
27932
 
26239
27933
  // src/components/features/board/aim.ts
26240
27934
  var _closestedge = require('@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge');
26241
- var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access', _597 => _597.find, 'call', _598 => _598((c) => c.id === columnId), 'optionalAccess', _599 => _599.tickets]), () => ( []))).filter((t) => t.id !== ticketId);
27935
+ var othersIn = (columns, columnId, ticketId) => (_nullishCoalesce(_optionalChain([columns, 'access', _600 => _600.find, 'call', _601 => _601((c) => c.id === columnId), 'optionalAccess', _602 => _602.tickets]), () => ( []))).filter((t) => t.id !== ticketId);
26242
27936
  function laneOf(columns, ticketId) {
26243
27937
  return _nullishCoalesce(columns.find((c) => c.tickets.some((t) => t.id === ticketId)), () => ( null));
26244
27938
  }
@@ -26282,11 +27976,11 @@ function aimToChange(columns, ticketId, aim) {
26282
27976
  const lane = laneOf(columns, ticketId);
26283
27977
  if (!lane) return null;
26284
27978
  const others = othersIn(columns, aim.columnId, ticketId);
26285
- const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _600 => _600[aim.index - 1], 'optionalAccess', _601 => _601.id]), () => ( null));
26286
- const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _602 => _602[aim.index], 'optionalAccess', _603 => _603.id]), () => ( null));
27979
+ const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _603 => _603[aim.index - 1], 'optionalAccess', _604 => _604.id]), () => ( null));
27980
+ const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _605 => _605[aim.index], 'optionalAccess', _606 => _606.id]), () => ( null));
26287
27981
  if (lane.id === aim.columnId) {
26288
27982
  const currentIndex = lane.tickets.findIndex((t) => t.id === ticketId);
26289
- if ((_nullishCoalesce(_optionalChain([lane, 'access', _604 => _604.tickets, 'access', _605 => _605[currentIndex - 1], 'optionalAccess', _606 => _606.id]), () => ( null))) === afterTicketId) return null;
27983
+ if ((_nullishCoalesce(_optionalChain([lane, 'access', _607 => _607.tickets, 'access', _608 => _608[currentIndex - 1], 'optionalAccess', _609 => _609.id]), () => ( null))) === afterTicketId) return null;
26290
27984
  }
26291
27985
  return { ticketId, fromColumnId: lane.id, toColumnId: aim.columnId, afterTicketId, beforeTicketId };
26292
27986
  }
@@ -26557,14 +28251,14 @@ function useIsLanding(ticketId) {
26557
28251
  return _react.useContext.call(void 0, LandingCardContext) === ticketId;
26558
28252
  }
26559
28253
  function hasMoveSettled(columns, move) {
26560
- const tickets = _optionalChain([columns, 'access', _607 => _607.find, 'call', _608 => _608((c) => c.id === move.toColumnId), 'optionalAccess', _609 => _609.tickets]);
28254
+ const tickets = _optionalChain([columns, 'access', _610 => _610.find, 'call', _611 => _611((c) => c.id === move.toColumnId), 'optionalAccess', _612 => _612.tickets]);
26561
28255
  if (!tickets) return false;
26562
28256
  const index = tickets.findIndex((t) => t.id === move.ticketId);
26563
28257
  if (index < 0) return false;
26564
28258
  if (move.fromColumnId === move.toColumnId) {
26565
- return (_nullishCoalesce(_optionalChain([tickets, 'access', _610 => _610[index - 1], 'optionalAccess', _611 => _611.id]), () => ( null))) === move.afterTicketId;
28259
+ return (_nullishCoalesce(_optionalChain([tickets, 'access', _613 => _613[index - 1], 'optionalAccess', _614 => _614.id]), () => ( null))) === move.afterTicketId;
26566
28260
  }
26567
- return !_optionalChain([columns, 'access', _612 => _612.find, 'call', _613 => _613((c) => c.id === move.fromColumnId), 'optionalAccess', _614 => _614.tickets, 'access', _615 => _615.some, 'call', _616 => _616((t) => t.id === move.ticketId)]);
28261
+ return !_optionalChain([columns, 'access', _615 => _615.find, 'call', _616 => _616((c) => c.id === move.fromColumnId), 'optionalAccess', _617 => _617.tickets, 'access', _618 => _618.some, 'call', _619 => _619((t) => t.id === move.ticketId)]);
26568
28262
  }
26569
28263
 
26570
28264
  // src/components/features/board/ticket-card.tsx
@@ -26589,9 +28283,9 @@ var TICKET_CARD_SHELL = "relative flex flex-col gap-[var(--spacing-system-sf)] r
26589
28283
  function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
26590
28284
  const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
26591
28285
  const newMessageTextColor = columnColor ? _chunkLOJ5KQ6Bcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
26592
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _617 => _617.deviceHostnames, 'optionalAccess', _618 => _618.length]) || ticket.organizationName);
26593
- const deviceText = [_optionalChain([ticket, 'access', _619 => _619.deviceHostnames, 'optionalAccess', _620 => _620.join, 'call', _621 => _621(", ")]), ticket.organizationName].filter(Boolean).join(", ");
26594
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _622 => _622.assignees, 'optionalAccess', _623 => _623.length]) || renderAssignSlot);
28286
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _620 => _620.deviceHostnames, 'optionalAccess', _621 => _621.length]) || ticket.organizationName);
28287
+ const deviceText = [_optionalChain([ticket, 'access', _622 => _622.deviceHostnames, 'optionalAccess', _623 => _623.join, 'call', _624 => _624(", ")]), ticket.organizationName].filter(Boolean).join(", ");
28288
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _625 => _625.assignees, 'optionalAccess', _626 => _626.length]) || renderAssignSlot);
26595
28289
  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: [
26596
28290
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26597
28291
  _chunkGSQM4PDRcjs.Flag02Icon,
@@ -26600,7 +28294,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
26600
28294
  "aria-label": `Priority: ${ticket.priority}`
26601
28295
  }
26602
28296
  ),
26603
- renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _624 => _624.assignees, 'optionalAccess', _625 => _625.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
28297
+ renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _627 => _627.assignees, 'optionalAccess', _628 => _628.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
26604
28298
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map(
26605
28299
  (a) => a.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
26606
28300
  DeletedUserAvatar,
@@ -26640,7 +28334,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
26640
28334
  ] }),
26641
28335
  rightSection
26642
28336
  ] }),
26643
- _optionalChain([ticket, 'access', _626 => _626.tags, 'optionalAccess', _627 => _627.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
28337
+ _optionalChain([ticket, 'access', _629 => _629.tags, 'optionalAccess', _630 => _630.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
26644
28338
  timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkLOJ5KQ6Bcjs.Tooltip, { children: [
26645
28339
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
26646
28340
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLOJ5KQ6Bcjs.TooltipContent, { children: tooltipLabel })
@@ -26707,7 +28401,7 @@ var TicketCard = _react.memo.call(void 0, function TicketCardImpl({
26707
28401
  const isLanding = useIsLanding(ticket.id);
26708
28402
  const aim = useDropAim();
26709
28403
  const closestEdge = aim && aim.columnId === columnId && aim.ticketId === ticket.id ? aim.edge : null;
26710
- const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _628 => _628.ticket, 'access', _629 => _629.id]) === ticket.id;
28404
+ const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _631 => _631.ticket, 'access', _632 => _632.id]) === ticket.id;
26711
28405
  const lift = useBoardLift();
26712
28406
  const handleKeyDown = (e) => {
26713
28407
  if (e.key !== " " || dragDisabled || !lift) return;
@@ -26960,7 +28654,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
26960
28654
  // large ones like the only thing that did.
26961
28655
  getData: ({ input, element: lane, source }) => {
26962
28656
  const nearest = nearestCardIn(lane, input.clientY, String(source.data.ticketId));
26963
- const ticketId = _optionalChain([nearest, 'optionalAccess', _630 => _630.dataset, 'access', _631 => _631.ticketId]);
28657
+ const ticketId = _optionalChain([nearest, 'optionalAccess', _633 => _633.dataset, 'access', _634 => _634.ticketId]);
26964
28658
  if (!nearest || !ticketId) return { type: "column", columnId: column.id };
26965
28659
  return _closestedge.attachClosestEdge.call(void 0,
26966
28660
  { type: "ticket", ticketId, columnId: column.id },
@@ -26972,7 +28666,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
26972
28666
  onDrop: () => setIsOver(false)
26973
28667
  });
26974
28668
  }, [column.id, column.dropDisabled, column.allowedFromColumns, collapsed, touchMode]);
26975
- const handleToggleCollapse = _react.useCallback.call(void 0, () => _optionalChain([onToggleCollapse, 'optionalCall', _632 => _632(column.id)]), [onToggleCollapse, column.id]);
28669
+ const handleToggleCollapse = _react.useCallback.call(void 0, () => _optionalChain([onToggleCollapse, 'optionalCall', _635 => _635(column.id)]), [onToggleCollapse, column.id]);
26976
28670
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
26977
28671
  "div",
26978
28672
  {
@@ -27051,7 +28745,7 @@ function ColumnBody({
27051
28745
  const observer = new IntersectionObserver(
27052
28746
  (entries) => {
27053
28747
  if (entries.some((e) => e.isIntersecting)) {
27054
- _optionalChain([loadMoreRef, 'access', _633 => _633.current, 'optionalCall', _634 => _634(columnIdRef.current)]);
28748
+ _optionalChain([loadMoreRef, 'access', _636 => _636.current, 'optionalCall', _637 => _637(columnIdRef.current)]);
27055
28749
  }
27056
28750
  },
27057
28751
  { root, rootMargin: loadMoreRootMargin }
@@ -27076,7 +28770,7 @@ function ColumnBody({
27076
28770
  ticket: t,
27077
28771
  columnId: column.id,
27078
28772
  columnColor: column.color,
27079
- href: _optionalChain([getTicketHref, 'optionalCall', _635 => _635(t.id)]),
28773
+ href: _optionalChain([getTicketHref, 'optionalCall', _638 => _638(t.id)]),
27080
28774
  renderAssignSlot,
27081
28775
  onApprove,
27082
28776
  onReject,
@@ -27252,7 +28946,7 @@ function DragBoard({
27252
28946
  const [landing, setLanding] = _react.useState.call(void 0, null);
27253
28947
  const landingTimer = _react.useRef.call(void 0, null);
27254
28948
  const pointRef = _react.useRef.call(void 0, { x: 0, y: 0 });
27255
- const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access', _636 => _636.find, 'call', _637 => _637((c) => c.id === columnId), 'optionalAccess', _638 => _638.label]), () => ( columnId)), [view]);
28949
+ const laneLabel = _react.useCallback.call(void 0, (columnId) => _nullishCoalesce(_optionalChain([view, 'access', _639 => _639.find, 'call', _640 => _640((c) => c.id === columnId), 'optionalAccess', _641 => _641.label]), () => ( columnId)), [view]);
27256
28950
  const acceptsLifted = _react.useCallback.call(void 0,
27257
28951
  (fromColumnId) => (column) => {
27258
28952
  if (column.dropDisabled || collapsed[column.id]) return false;
@@ -27266,7 +28960,7 @@ function DragBoard({
27266
28960
  const start = initialAim(view, ticketId);
27267
28961
  if (!start) return;
27268
28962
  setLifted({ ticketId, aim: start });
27269
- const title = _nullishCoalesce(_optionalChain([laneOf, 'call', _639 => _639(view, ticketId), 'optionalAccess', _640 => _640.tickets, 'access', _641 => _641.find, 'call', _642 => _642((t) => t.id === ticketId), 'optionalAccess', _643 => _643.title]), () => ( "Ticket"));
28963
+ const title = _nullishCoalesce(_optionalChain([laneOf, 'call', _642 => _642(view, ticketId), 'optionalAccess', _643 => _643.tickets, 'access', _644 => _644.find, 'call', _645 => _645((t) => t.id === ticketId), 'optionalAccess', _646 => _646.title]), () => ( "Ticket"));
27270
28964
  setAnnouncement(`${title} lifted. Use the arrow keys to move it, space to drop it, escape to put it back.`);
27271
28965
  },
27272
28966
  [view]
@@ -27291,11 +28985,11 @@ function DragBoard({
27291
28985
  const walk = _react.useCallback.call(void 0,
27292
28986
  (key) => {
27293
28987
  if (!lifted) return;
27294
- const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _644 => _644(view, lifted.ticketId), 'optionalAccess', _645 => _645.id]), () => ( lifted.aim.columnId));
28988
+ const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _647 => _647(view, lifted.ticketId), 'optionalAccess', _648 => _648.id]), () => ( lifted.aim.columnId));
27295
28989
  const next = moveAim(view, lifted.ticketId, lifted.aim, key, acceptsLifted(from));
27296
28990
  if (next === lifted.aim) return;
27297
28991
  setLifted({ ...lifted, aim: next });
27298
- const total = (_nullishCoalesce(_optionalChain([view, 'access', _646 => _646.find, 'call', _647 => _647((c) => c.id === next.columnId), 'optionalAccess', _648 => _648.tickets]), () => ( []))).filter(
28992
+ const total = (_nullishCoalesce(_optionalChain([view, 'access', _649 => _649.find, 'call', _650 => _650((c) => c.id === next.columnId), 'optionalAccess', _651 => _651.tickets]), () => ( []))).filter(
27299
28993
  (t) => t.id !== lifted.ticketId
27300
28994
  ).length;
27301
28995
  setAnnouncement(`${laneLabel(next.columnId)}, position ${next.index + 1} of ${total + 1}.`);
@@ -27322,11 +29016,11 @@ function DragBoard({
27322
29016
  }, [lifted, drop, walk]);
27323
29017
  _react.useEffect.call(void 0, () => {
27324
29018
  if (!lifted) return;
27325
- _optionalChain([boardRef, 'access', _649 => _649.current, 'optionalAccess', _650 => _650.querySelector, 'call', _651 => _651(`[${DROP_LINE_ATTRIBUTE}]`), 'optionalAccess', _652 => _652.scrollIntoView, 'call', _653 => _653({ block: "nearest", inline: "nearest" })]);
29019
+ _optionalChain([boardRef, 'access', _652 => _652.current, 'optionalAccess', _653 => _653.querySelector, 'call', _654 => _654(`[${DROP_LINE_ATTRIBUTE}]`), 'optionalAccess', _655 => _655.scrollIntoView, 'call', _656 => _656({ block: "nearest", inline: "nearest" })]);
27326
29020
  }, [lifted]);
27327
29021
  const keyboardAim = _react.useMemo.call(void 0, () => {
27328
29022
  if (!lifted) return null;
27329
- const ticket = _optionalChain([laneOf, 'call', _654 => _654(view, lifted.ticketId), 'optionalAccess', _655 => _655.tickets, 'access', _656 => _656.find, 'call', _657 => _657((t) => t.id === lifted.ticketId)]);
29023
+ const ticket = _optionalChain([laneOf, 'call', _657 => _657(view, lifted.ticketId), 'optionalAccess', _658 => _658.tickets, 'access', _659 => _659.find, 'call', _660 => _660((t) => t.id === lifted.ticketId)]);
27330
29024
  if (!ticket) return null;
27331
29025
  const anchor = aimToChange(view, lifted.ticketId, lifted.aim) ? aimAnchor(view, lifted.ticketId, lifted.aim) : { ticketId: null, edge: null };
27332
29026
  return { columnId: lifted.aim.columnId, ...anchor, ticket };
@@ -27348,7 +29042,7 @@ function DragBoard({
27348
29042
  return { columnId: slot.columnId, ...anchor, ticket };
27349
29043
  };
27350
29044
  const aimAt = (source, targets) => {
27351
- const next = readAim(source, _optionalChain([targets, 'access', _658 => _658[0], 'optionalAccess', _659 => _659.data]));
29045
+ const next = readAim(source, _optionalChain([targets, 'access', _661 => _661[0], 'optionalAccess', _662 => _662.data]));
27352
29046
  setAim((prev) => isSameAim(prev, next) ? prev : next);
27353
29047
  };
27354
29048
  return _combine.combine.call(void 0,
@@ -27377,7 +29071,7 @@ function DragBoard({
27377
29071
  setLanding(null);
27378
29072
  dragGeometry.current = {
27379
29073
  ticket,
27380
- columnColor: _optionalChain([columnsRef, 'access', _660 => _660.current, 'access', _661 => _661.find, 'call', _662 => _662((c) => c.id === source.data.columnId), 'optionalAccess', _663 => _663.color]),
29074
+ columnColor: _optionalChain([columnsRef, 'access', _663 => _663.current, 'access', _664 => _664.find, 'call', _665 => _665((c) => c.id === source.data.columnId), 'optionalAccess', _666 => _666.color]),
27381
29075
  width: rect.width,
27382
29076
  grabX: clientX - rect.left,
27383
29077
  grabY: clientY - rect.top
@@ -27394,7 +29088,7 @@ function DragBoard({
27394
29088
  setAim(null);
27395
29089
  const change = resolveBoardDrop(columnsRef.current, {
27396
29090
  source: source.data,
27397
- target: _optionalChain([location, 'access', _664 => _664.current, 'access', _665 => _665.dropTargets, 'access', _666 => _666[0], 'optionalAccess', _667 => _667.data])
29091
+ target: _optionalChain([location, 'access', _667 => _667.current, 'access', _668 => _668.dropTargets, 'access', _669 => _669[0], 'optionalAccess', _670 => _670.data])
27398
29092
  });
27399
29093
  if (!change) return;
27400
29094
  setPendingMove({
@@ -27427,7 +29121,7 @@ function DragBoard({
27427
29121
  return void 0;
27428
29122
  }
27429
29123
  const to = card.getBoundingClientRect();
27430
- const lane = _optionalChain([nearestScrollableAncestor, 'call', _668 => _668(card), 'optionalAccess', _669 => _669.getBoundingClientRect, 'call', _670 => _670()]);
29124
+ const lane = _optionalChain([nearestScrollableAncestor, 'call', _671 => _671(card), 'optionalAccess', _672 => _672.getBoundingClientRect, 'call', _673 => _673()]);
27431
29125
  if (lane && (to.top < lane.top || to.bottom > lane.bottom)) {
27432
29126
  finish();
27433
29127
  return void 0;
@@ -27486,8 +29180,8 @@ function DragBoard({
27486
29180
  children: view.map((column, i) => {
27487
29181
  const prev = view[i - 1];
27488
29182
  const next = view[i + 1];
27489
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _671 => _671.system]));
27490
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _672 => _672.system]));
29183
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _674 => _674.system]));
29184
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _675 => _675.system]));
27491
29185
  const showGap = i > 0 && !joinLeft;
27492
29186
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
27493
29187
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -27667,13 +29361,13 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
27667
29361
  const [flipTick, setFlipTick] = _react.useState.call(void 0, 0);
27668
29362
  const flipTimer = _react.useRef.call(void 0, null);
27669
29363
  const readItems = _react.useCallback.call(void 0,
27670
- () => [..._nullishCoalesce(_optionalChain([listRef, 'access', _673 => _673.current, 'optionalAccess', _674 => _674.querySelectorAll, 'call', _675 => _675(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
29364
+ () => [..._nullishCoalesce(_optionalChain([listRef, 'access', _676 => _676.current, 'optionalAccess', _677 => _677.querySelectorAll, 'call', _678 => _678(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
27671
29365
  []
27672
29366
  );
27673
29367
  const reorder = _react.useCallback.call(void 0,
27674
29368
  (from, to) => {
27675
29369
  if (from === to) return;
27676
- const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _676 => _676.current, 'optionalCall', _677 => _677(from)]), () => ( "Item"));
29370
+ const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _679 => _679.current, 'optionalCall', _680 => _680(from)]), () => ( "Item"));
27677
29371
  setAnnouncement(`${label} moved to position ${to + 1} of ${readItems().length}.`);
27678
29372
  onReorderRef.current(from, to);
27679
29373
  },
@@ -27761,7 +29455,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
27761
29455
  moving.push(item);
27762
29456
  }
27763
29457
  if (moving.length === 0) return;
27764
- void _optionalChain([listRef, 'access', _678 => _678.current, 'optionalAccess', _679 => _679.offsetHeight]);
29458
+ void _optionalChain([listRef, 'access', _681 => _681.current, 'optionalAccess', _682 => _682.offsetHeight]);
27765
29459
  for (const item of moving) {
27766
29460
  item.style.transition = `transform ${DROP_MS2}ms ${EASING}`;
27767
29461
  item.style.transform = "";
@@ -27798,8 +29492,8 @@ function SortableMoveButtons({ index, count, label, className }) {
27798
29492
  if (to < 0 || to >= count) return;
27799
29493
  reorder(index, to);
27800
29494
  requestAnimationFrame(() => {
27801
- if (step === -1 && to === 0) _optionalChain([downRef, 'access', _680 => _680.current, 'optionalAccess', _681 => _681.focus, 'call', _682 => _682()]);
27802
- if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _683 => _683.current, 'optionalAccess', _684 => _684.focus, 'call', _685 => _685()]);
29495
+ if (step === -1 && to === 0) _optionalChain([downRef, 'access', _683 => _683.current, 'optionalAccess', _684 => _684.focus, 'call', _685 => _685()]);
29496
+ if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _686 => _686.current, 'optionalAccess', _687 => _687.focus, 'call', _688 => _688()]);
27803
29497
  });
27804
29498
  };
27805
29499
  const subject = _nullishCoalesce(label, () => ( "item"));
@@ -27847,7 +29541,7 @@ function useSortableItem() {
27847
29541
  const [handle, setHandle] = _react.useState.call(void 0, null);
27848
29542
  const [isDragging, setIsDragging] = _react.useState.call(void 0, false);
27849
29543
  const itemRef = _react.useCallback.call(void 0, (node) => {
27850
- _optionalChain([node, 'optionalAccess', _686 => _686.setAttribute, 'call', _687 => _687(SORTABLE_ITEM_ATTRIBUTE, "")]);
29544
+ _optionalChain([node, 'optionalAccess', _689 => _689.setAttribute, 'call', _690 => _690(SORTABLE_ITEM_ATTRIBUTE, "")]);
27851
29545
  setItem(node);
27852
29546
  }, []);
27853
29547
  _react.useEffect.call(void 0, () => {
@@ -27877,7 +29571,7 @@ function useSortableItem() {
27877
29571
  if (from < 0 || to < 0 || to >= items.length) return;
27878
29572
  event.preventDefault();
27879
29573
  reorder(from, to);
27880
- requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _688 => _688.focus, 'call', _689 => _689()]));
29574
+ requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _691 => _691.focus, 'call', _692 => _692()]));
27881
29575
  },
27882
29576
  [inert, readItems, reorder, handle]
27883
29577
  );
@@ -27899,7 +29593,7 @@ function TicketStatusConfigList({
27899
29593
  onReorder,
27900
29594
  getItemLabel,
27901
29595
  className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className),
27902
- children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _690 => _690(index)]), children: (args) => renderRow(item, args) }, item.id))
29596
+ children: items.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SortableRow, { index, count: items.length, label: _optionalChain([getItemLabel, 'optionalCall', _693 => _693(index)]), children: (args) => renderRow(item, args) }, item.id))
27903
29597
  }
27904
29598
  );
27905
29599
  }
@@ -28488,5 +30182,52 @@ function SortableRow({
28488
30182
 
28489
30183
 
28490
30184
 
28491
- exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.HiddenTagsPopup = HiddenTagsPopup; exports.TruncateText = TruncateText; exports.Autocomplete = Autocomplete; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.FullscreenSwitchController = FullscreenSwitchController; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.StatusIndicator = StatusIndicator; exports.BackButton = BackButton; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TitleContentBlock = TitleContentBlock; exports.TouchFriendlyTooltip = TouchFriendlyTooltip; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.COMPACT_ROW_MIN_HEIGHT_PX = COMPACT_ROW_MIN_HEIGHT_PX; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.DataTableEmpty = DataTableEmpty; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow;
28492
- //# sourceMappingURL=chunk-RH7EY7YN.cjs.map
30185
+
30186
+
30187
+
30188
+
30189
+
30190
+
30191
+
30192
+
30193
+
30194
+
30195
+
30196
+
30197
+
30198
+
30199
+
30200
+
30201
+
30202
+
30203
+
30204
+
30205
+
30206
+
30207
+
30208
+
30209
+
30210
+
30211
+
30212
+
30213
+
30214
+
30215
+
30216
+
30217
+
30218
+
30219
+
30220
+
30221
+
30222
+
30223
+
30224
+
30225
+
30226
+
30227
+
30228
+
30229
+
30230
+
30231
+
30232
+ exports.AllowedDomainsInput = AllowedDomainsInput; exports.AnnouncementBarView = AnnouncementBarView; exports.HiddenTagsPopup = HiddenTagsPopup; exports.TruncateText = TruncateText; exports.Autocomplete = Autocomplete; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePickerCalendar = DatePickerCalendar; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.InfoHint = InfoHint; exports.Field = Field; exports.HoneypotField = HoneypotField; exports.JsonDetailList = JsonDetailList; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.DeletedUserAvatar = DeletedUserAvatar; exports.SearchableSelect = SearchableSelect; exports.AssigneeDropdown = AssigneeDropdown; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoDataMessage = NoDataMessage; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.useConfirm = useConfirm; exports.useGuardedClose = useGuardedClose; exports.UnsavedChangesChip = UnsavedChangesChip; exports.AdminFormModal = AdminFormModal; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.FullscreenSwitchController = FullscreenSwitchController; exports.EmbedIframe = EmbedIframe; exports.EmbedViewerFrame = EmbedViewerFrame; exports.ClaudeEmbed = ClaudeEmbed; exports.FigmaEmbed = FigmaEmbed; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.MarkdownImage = MarkdownImage; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.MediaCarousel = MediaCarousel; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.processShortcodes = processShortcodes; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.StatusIndicator = StatusIndicator; exports.BackButton = BackButton; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.DashboardInfoCard = DashboardInfoCard; exports.InfoCardRow = InfoCardRow; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.SourceTooltip = SourceTooltip; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TitleContentBlock = TitleContentBlock; exports.TouchFriendlyTooltip = TouchFriendlyTooltip; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.CardSkeleton = CardSkeleton; exports.CardSkeletonGrid = CardSkeletonGrid; exports.AnnouncementBarSkeleton = AnnouncementBarSkeleton; exports.HeroSkeleton = HeroSkeleton; exports.SearchContainerSkeleton = SearchContainerSkeleton; exports.CategorySidebarSkeleton = CategorySidebarSkeleton; exports.BreadcrumbSkeleton = BreadcrumbSkeleton; exports.ResultsHeaderSkeleton = ResultsHeaderSkeleton; exports.TwoColumnLayoutSkeleton = TwoColumnLayoutSkeleton; exports.ArticleLayoutSkeleton = ArticleLayoutSkeleton; exports.VendorDetailLayoutSkeleton = VendorDetailLayoutSkeleton; exports.StatsSectionSkeleton = StatsSectionSkeleton; exports.BlogCardGridSkeleton = BlogCardGridSkeleton; exports.VendorGridSkeleton = VendorGridSkeleton; exports.SlackCommunitySkeleton = SlackCommunitySkeleton; exports.ContentLoadingContainer = ContentLoadingContainer; exports.useContentLoading = useContentLoading; exports.ParagraphSkeleton = ParagraphSkeleton; exports.ListSkeleton = ListSkeleton; exports.TableSkeleton = TableSkeleton; exports.FormSkeleton = FormSkeleton; exports.NavigationSkeleton = NavigationSkeleton; exports.ProfileSkeleton = ProfileSkeleton; exports.CommentSkeleton = CommentSkeleton; exports.FeatureListSkeleton = FeatureListSkeleton; exports.TimelineSkeleton = TimelineSkeleton; exports.PricingSkeleton = PricingSkeleton; exports.ProfileLoadingSkeleton = ProfileLoadingSkeleton; exports.MspProfileFormSkeleton = MspProfileFormSkeleton; exports.CategoryCardSkeleton = CategoryCardSkeleton; exports.CategoryVendorSelectorSkeleton = CategoryVendorSelectorSkeleton; exports.WizardLayoutSkeleton = WizardLayoutSkeleton; exports.MarginReportSkeleton = MarginReportSkeleton; exports.UsersGridSkeleton = UsersGridSkeleton; exports.DynamicSkeleton = DynamicSkeleton; exports.SkeletonPresets = SkeletonPresets; exports.PlatformSkeletonContainer = PlatformSkeletonContainer; exports.ProgressiveSkeleton = ProgressiveSkeleton; exports.OrganizationIconSkeleton = OrganizationIconSkeleton; exports.OrganizationCardSkeleton = OrganizationCardSkeleton; exports.OrganizationCardSkeletonGrid = OrganizationCardSkeletonGrid; exports.DeviceCardSkeleton = DeviceCardSkeleton; exports.DeviceCardSkeletonGrid = DeviceCardSkeletonGrid; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.ConfidenceBadge = ConfidenceBadge; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.FloatingWalkthroughVideo = FloatingWalkthroughVideo; exports.InlineWalkthroughVideo = InlineWalkthroughVideo; exports.useWalkthroughVideo = useWalkthroughVideo; exports.VideoSourceSelector = VideoSourceSelector; exports.SubtitlesEditor = SubtitlesEditor; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.AppLayoutDrawerContainerContext = AppLayoutDrawerContainerContext; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerCoordinationContext = AppLayoutDrawerCoordinationContext; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.UnreadDot = UnreadDot; exports.UnreadCountBadge = UnreadCountBadge; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.SLOT_STICKINESS = SLOT_STICKINESS; exports.SortableList = SortableList; exports.SortableMoveButtons = SortableMoveButtons; exports.useSortableItem = useSortableItem; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.COMPACT_ROW_MIN_HEIGHT_PX = COMPACT_ROW_MIN_HEIGHT_PX; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.DataTableEmpty = DataTableEmpty; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.ROW_SHELL_CLASSES = ROW_SHELL_CLASSES; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableHeader = DataTableHeader; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.formatTestRunDuration = formatTestRunDuration; exports.TestResultsSkeleton = TestResultsSkeleton; exports.TestResultsTable = TestResultsTable; exports.TestRunErrorBanner = TestRunErrorBanner; exports.TestRunResults = TestRunResults; exports.TimingStat = TimingStat; exports.TestRunStatusStat = TestRunStatusStat; exports.useTestRunState = useTestRunState; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketDetailSection = TicketDetailSection; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.renderTicketStatusOption = renderTicketStatusOption; exports.renderTicketAssigneeOption = renderTicketAssigneeOption; exports.TakeOverTicketModal = TakeOverTicketModal; exports.ReopenTicketModal = ReopenTicketModal; exports.ReopenTicketRequestModal = ReopenTicketRequestModal; exports.FilterPillRow = FilterPillRow;
30233
+ //# sourceMappingURL=chunk-HMEEW73F.cjs.map