@flamingo-stack/openframe-frontend-core 0.0.585 → 0.0.586-1986.5486.1

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 (119) hide show
  1. package/dist/{chunk-276BXVOB.js → chunk-2Y5UT5VF.js} +2 -2
  2. package/dist/{chunk-CTZP2NJQ.js → chunk-3HYHYKNL.js} +4 -4
  3. package/dist/{chunk-7554QJ6R.js → chunk-3JVYM4ZN.js} +5 -5
  4. package/dist/{chunk-QIVZG4XK.cjs → chunk-3WR5R6H6.cjs} +16 -16
  5. package/dist/{chunk-QIVZG4XK.cjs.map → chunk-3WR5R6H6.cjs.map} +1 -1
  6. package/dist/{chunk-BU2KLFRB.cjs → chunk-4VZFJKPT.cjs} +3 -3
  7. package/dist/{chunk-BU2KLFRB.cjs.map → chunk-4VZFJKPT.cjs.map} +1 -1
  8. package/dist/{chunk-VSXFBO4D.js → chunk-5OIXAV4P.js} +2 -2
  9. package/dist/{chunk-GG76BPXJ.js → chunk-6EZGJZVH.js} +2 -2
  10. package/dist/{chunk-HBI7AWUE.cjs → chunk-6ZNWY6WW.cjs} +17 -17
  11. package/dist/{chunk-HBI7AWUE.cjs.map → chunk-6ZNWY6WW.cjs.map} +1 -1
  12. package/dist/{chunk-3F7V7GFU.cjs → chunk-A6ETQEWK.cjs} +405 -293
  13. package/dist/chunk-A6ETQEWK.cjs.map +1 -0
  14. package/dist/{chunk-DZM7KTHE.cjs → chunk-BMORFCT2.cjs} +34 -34
  15. package/dist/{chunk-DZM7KTHE.cjs.map → chunk-BMORFCT2.cjs.map} +1 -1
  16. package/dist/{chunk-4TN6C7ZG.cjs → chunk-C3MRLZUI.cjs} +33 -33
  17. package/dist/{chunk-4TN6C7ZG.cjs.map → chunk-C3MRLZUI.cjs.map} +1 -1
  18. package/dist/{chunk-BNZFLIEG.js → chunk-DQUEVRDU.js} +5 -5
  19. package/dist/{chunk-XK4S47LG.cjs → chunk-EAYMX22G.cjs} +10 -10
  20. package/dist/{chunk-XK4S47LG.cjs.map → chunk-EAYMX22G.cjs.map} +1 -1
  21. package/dist/{chunk-36GXR7BR.js → chunk-KLWJRGNN.js} +3 -3
  22. package/dist/{chunk-JKWWACNI.js → chunk-L4WLYGB4.js} +2 -2
  23. package/dist/{chunk-J4MVZ53H.js → chunk-LV6CORVJ.js} +2 -2
  24. package/dist/{chunk-ULGI56BW.cjs → chunk-M36XSGZV.cjs} +13 -13
  25. package/dist/{chunk-ULGI56BW.cjs.map → chunk-M36XSGZV.cjs.map} +1 -1
  26. package/dist/{chunk-HAIRDHWL.cjs → chunk-NISAGFEM.cjs} +3 -3
  27. package/dist/{chunk-HAIRDHWL.cjs.map → chunk-NISAGFEM.cjs.map} +1 -1
  28. package/dist/{chunk-F5SV627B.cjs → chunk-NYLWMAHP.cjs} +4 -4
  29. package/dist/{chunk-F5SV627B.cjs.map → chunk-NYLWMAHP.cjs.map} +1 -1
  30. package/dist/{chunk-HQRKC6P7.js → chunk-OZNFPQT5.js} +2 -2
  31. package/dist/{chunk-VQ5FMCZA.cjs → chunk-P2CKLIOM.cjs} +49 -49
  32. package/dist/{chunk-VQ5FMCZA.cjs.map → chunk-P2CKLIOM.cjs.map} +1 -1
  33. package/dist/{chunk-FCKOWGTE.js → chunk-PLMJVA2H.js} +2 -2
  34. package/dist/{chunk-5YVCIBUH.cjs → chunk-QZYYNBMI.cjs} +17 -17
  35. package/dist/{chunk-5YVCIBUH.cjs.map → chunk-QZYYNBMI.cjs.map} +1 -1
  36. package/dist/{chunk-SCMESLXP.js → chunk-S7YXLZNG.js} +4 -4
  37. package/dist/{chunk-27DK5GCC.cjs → chunk-SSGM2NKA.cjs} +4 -4
  38. package/dist/{chunk-27DK5GCC.cjs.map → chunk-SSGM2NKA.cjs.map} +1 -1
  39. package/dist/{chunk-FQJBV5ON.cjs → chunk-V7ZJTUV2.cjs} +3 -3
  40. package/dist/{chunk-FQJBV5ON.cjs.map → chunk-V7ZJTUV2.cjs.map} +1 -1
  41. package/dist/{chunk-6VFO4JUH.cjs → chunk-XMK24INA.cjs} +3 -3
  42. package/dist/{chunk-6VFO4JUH.cjs.map → chunk-XMK24INA.cjs.map} +1 -1
  43. package/dist/{chunk-UG6SHUGE.js → chunk-XMTGLQSD.js} +2 -2
  44. package/dist/{chunk-LNKBNY3A.js → chunk-YEQAA6I4.js} +2 -2
  45. package/dist/{chunk-WXL2AR5I.js → chunk-YYC7V7YC.js} +2023 -1911
  46. package/dist/chunk-YYC7V7YC.js.map +1 -0
  47. package/dist/components/case-studies/index.cjs +8 -8
  48. package/dist/components/case-studies/index.js +2 -2
  49. package/dist/components/contact/index.cjs +3 -3
  50. package/dist/components/contact/index.js +2 -2
  51. package/dist/components/docs/index.cjs +6 -6
  52. package/dist/components/docs/index.js +5 -5
  53. package/dist/components/embeds/index.cjs +3 -3
  54. package/dist/components/embeds/index.js +2 -2
  55. package/dist/components/faq/index.cjs +3 -3
  56. package/dist/components/faq/index.js +2 -2
  57. package/dist/components/features/auth/account-details-fields.d.ts +34 -0
  58. package/dist/components/features/auth/account-details-fields.d.ts.map +1 -0
  59. package/dist/components/features/auth/complete-account-form.d.ts.map +1 -1
  60. package/dist/components/features/auth/create-organization-form.d.ts +43 -6
  61. package/dist/components/features/auth/create-organization-form.d.ts.map +1 -1
  62. package/dist/components/features/auth/index.d.ts +2 -0
  63. package/dist/components/features/auth/index.d.ts.map +1 -1
  64. package/dist/components/features/auth/labeled-divider.d.ts +6 -0
  65. package/dist/components/features/auth/labeled-divider.d.ts.map +1 -0
  66. package/dist/components/features/auth/login-form.d.ts +32 -9
  67. package/dist/components/features/auth/login-form.d.ts.map +1 -1
  68. package/dist/components/features/auth/openframe-sso-signup-form.d.ts.map +1 -1
  69. package/dist/components/features/auth/sso-providers.d.ts +1 -1
  70. package/dist/components/features/auth/sso-providers.d.ts.map +1 -1
  71. package/dist/components/features/index.cjs +6 -2
  72. package/dist/components/features/index.cjs.map +1 -1
  73. package/dist/components/features/index.js +5 -1
  74. package/dist/components/help-center-pages/index.cjs +22 -22
  75. package/dist/components/help-center-pages/index.js +13 -13
  76. package/dist/components/index.cjs +33 -29
  77. package/dist/components/index.cjs.map +1 -1
  78. package/dist/components/index.js +16 -12
  79. package/dist/components/index.js.map +1 -1
  80. package/dist/components/meeting-scheduler/index.cjs +18 -18
  81. package/dist/components/meeting-scheduler/index.js +1 -1
  82. package/dist/components/navigation/index.cjs +5 -5
  83. package/dist/components/navigation/index.js +4 -4
  84. package/dist/components/onboarding-guides/index.cjs +5 -5
  85. package/dist/components/onboarding-guides/index.js +4 -4
  86. package/dist/components/tickets/index.cjs +6 -6
  87. package/dist/components/tickets/index.js +5 -5
  88. package/dist/components/ui/index.cjs +2 -2
  89. package/dist/components/ui/index.js +1 -1
  90. package/dist/index.cjs +10 -6
  91. package/dist/index.cjs.map +1 -1
  92. package/dist/index.js +9 -5
  93. package/dist/index.js.map +1 -1
  94. package/package.json +1 -1
  95. package/src/components/features/auth/account-details-fields.tsx +124 -0
  96. package/src/components/features/auth/complete-account-form.tsx +13 -52
  97. package/src/components/features/auth/create-organization-form.tsx +128 -38
  98. package/src/components/features/auth/index.ts +2 -0
  99. package/src/components/features/auth/labeled-divider.tsx +16 -0
  100. package/src/components/features/auth/login-form.tsx +102 -23
  101. package/src/components/features/auth/openframe-sso-signup-form.tsx +11 -43
  102. package/src/components/features/auth/sso-providers.tsx +3 -3
  103. package/src/stories/auth/Login.stories.tsx +15 -5
  104. package/dist/chunk-3F7V7GFU.cjs.map +0 -1
  105. package/dist/chunk-WXL2AR5I.js.map +0 -1
  106. /package/dist/{chunk-276BXVOB.js.map → chunk-2Y5UT5VF.js.map} +0 -0
  107. /package/dist/{chunk-CTZP2NJQ.js.map → chunk-3HYHYKNL.js.map} +0 -0
  108. /package/dist/{chunk-7554QJ6R.js.map → chunk-3JVYM4ZN.js.map} +0 -0
  109. /package/dist/{chunk-VSXFBO4D.js.map → chunk-5OIXAV4P.js.map} +0 -0
  110. /package/dist/{chunk-GG76BPXJ.js.map → chunk-6EZGJZVH.js.map} +0 -0
  111. /package/dist/{chunk-BNZFLIEG.js.map → chunk-DQUEVRDU.js.map} +0 -0
  112. /package/dist/{chunk-36GXR7BR.js.map → chunk-KLWJRGNN.js.map} +0 -0
  113. /package/dist/{chunk-JKWWACNI.js.map → chunk-L4WLYGB4.js.map} +0 -0
  114. /package/dist/{chunk-J4MVZ53H.js.map → chunk-LV6CORVJ.js.map} +0 -0
  115. /package/dist/{chunk-HQRKC6P7.js.map → chunk-OZNFPQT5.js.map} +0 -0
  116. /package/dist/{chunk-FCKOWGTE.js.map → chunk-PLMJVA2H.js.map} +0 -0
  117. /package/dist/{chunk-SCMESLXP.js.map → chunk-S7YXLZNG.js.map} +0 -0
  118. /package/dist/{chunk-UG6SHUGE.js.map → chunk-XMTGLQSD.js.map} +0 -0
  119. /package/dist/{chunk-LNKBNY3A.js.map → chunk-YEQAA6I4.js.map} +0 -0
@@ -203,6 +203,7 @@ var _chunkKZAAIUP5cjs = require('./chunk-KZAAIUP5.cjs');
203
203
 
204
204
 
205
205
 
206
+
206
207
 
207
208
 
208
209
  var _chunkGSQM4PDRcjs = require('./chunk-GSQM4PDR.cjs');
@@ -17516,6 +17517,98 @@ function ArrayEntryManager({
17516
17517
  ] });
17517
17518
  }
17518
17519
 
17520
+ // src/components/features/auth/account-details-fields.tsx
17521
+
17522
+ function AccountDetailsFields({
17523
+ firstName,
17524
+ lastName,
17525
+ password,
17526
+ confirmPassword,
17527
+ onFirstNameChange,
17528
+ onLastNameChange,
17529
+ onPasswordChange,
17530
+ onConfirmPasswordChange,
17531
+ errors,
17532
+ disabled = false,
17533
+ onKeyDown,
17534
+ layout = "stacked"
17535
+ }) {
17536
+ const firstNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _398 => _398.firstName]), firstName);
17537
+ const lastNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _399 => _399.lastName]), lastName);
17538
+ const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _400 => _400.password]), password);
17539
+ const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _401 => _401.confirmPassword]), confirmPassword);
17540
+ const names = [
17541
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17542
+ _chunkIKDC3R7Vcjs.Input,
17543
+ {
17544
+ label: "First Name",
17545
+ placeholder: "Enter First Name",
17546
+ value: firstName,
17547
+ error: firstNameErr.error,
17548
+ disabled,
17549
+ onBlur: firstNameErr.onBlur,
17550
+ onChange: (event) => onFirstNameChange(event.target.value),
17551
+ onKeyDown
17552
+ },
17553
+ "firstName"
17554
+ ),
17555
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17556
+ _chunkIKDC3R7Vcjs.Input,
17557
+ {
17558
+ label: "Last Name",
17559
+ placeholder: "Enter Last Name",
17560
+ value: lastName,
17561
+ error: lastNameErr.error,
17562
+ disabled,
17563
+ onBlur: lastNameErr.onBlur,
17564
+ onChange: (event) => onLastNameChange(event.target.value),
17565
+ onKeyDown
17566
+ },
17567
+ "lastName"
17568
+ )
17569
+ ];
17570
+ const passwords = [
17571
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17572
+ PasswordInput,
17573
+ {
17574
+ label: "Password",
17575
+ placeholder: "Enter Password",
17576
+ value: password,
17577
+ error: passwordErr.error,
17578
+ disabled,
17579
+ onBlur: passwordErr.onBlur,
17580
+ onChange: (event) => onPasswordChange(event.target.value),
17581
+ onKeyDown
17582
+ },
17583
+ "password"
17584
+ ),
17585
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17586
+ PasswordInput,
17587
+ {
17588
+ label: "Confirm Password",
17589
+ placeholder: "Confirm Password",
17590
+ value: confirmPassword,
17591
+ error: confirmErr.error,
17592
+ disabled,
17593
+ onBlur: confirmErr.onBlur,
17594
+ onChange: (event) => onConfirmPasswordChange(event.target.value),
17595
+ onKeyDown
17596
+ },
17597
+ "confirmPassword"
17598
+ )
17599
+ ];
17600
+ if (layout === "stacked") {
17601
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17602
+ names,
17603
+ passwords
17604
+ ] });
17605
+ }
17606
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17607
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-[var(--spacing-system-l)]", children: names }),
17608
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "grid grid-cols-2 gap-[var(--spacing-system-l)]", children: passwords })
17609
+ ] });
17610
+ }
17611
+
17519
17612
  // src/components/features/auth/auth-benefits-panel.tsx
17520
17613
 
17521
17614
  var DEFAULT_TITLE = "The All-in-One Open Platform for MSPs";
@@ -17636,11 +17729,21 @@ function BackToLoginLink({ onClick, label = "Back to Login", className }) {
17636
17729
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", onClick, className: _chunkPRPZBXWZcjs.cn.call(void 0, "text-ods-text-secondary underline text-h4", className), children: label });
17637
17730
  }
17638
17731
 
17732
+ // src/components/features/auth/labeled-divider.tsx
17733
+
17734
+ function LabeledDivider({ label }) {
17735
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)]", children: [
17736
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" }),
17737
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: label }),
17738
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" })
17739
+ ] });
17740
+ }
17741
+
17639
17742
  // src/components/features/auth/sso-providers.tsx
17640
17743
 
17641
17744
  var PROVIDER_META = {
17642
17745
  openframe: {
17643
- name: "OpenFrame SSO",
17746
+ name: "OpenFrame",
17644
17747
  Icon: ({ className }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17645
17748
  _chunk63QUMV72cjs.OpenFrameLogo,
17646
17749
  {
@@ -17673,8 +17776,8 @@ function SsoProviderButtons({
17673
17776
  disabled: disabled || (enabledProviders ? !enabledProviders.includes(provider) : false),
17674
17777
  className: "disabled:bg-ods-bg",
17675
17778
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon2, { className: "h-5 w-5" }),
17676
- onClick: () => _optionalChain([onSsoClick, 'optionalCall', _398 => _398(provider)]),
17677
- children: provider === "openframe" ? meta.name : `${actionLabel} ${meta.name}`
17779
+ onClick: () => _optionalChain([onSsoClick, 'optionalCall', _402 => _402(provider)]),
17780
+ children: `${actionLabel} ${meta.name}`
17678
17781
  },
17679
17782
  provider
17680
17783
  );
@@ -17710,10 +17813,6 @@ function CompleteAccountForm({
17710
17813
  children
17711
17814
  }) {
17712
17815
  const fieldsDisabled = disabled || loading;
17713
- const firstNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _399 => _399.firstName]), firstName);
17714
- const lastNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _400 => _400.lastName]), lastName);
17715
- const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _401 => _401.password]), password);
17716
- const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _402 => _402.confirmPassword]), confirmPassword);
17717
17816
  const handleKeyDown = (event) => {
17718
17817
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
17719
17818
  onSubmit();
@@ -17741,61 +17840,21 @@ function CompleteAccountForm({
17741
17840
  disabled: fieldsDisabled
17742
17841
  }
17743
17842
  ),
17744
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)]", children: [
17745
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" }),
17746
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: dividerLabel }),
17747
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" })
17748
- ] })
17843
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel })
17749
17844
  ] }),
17750
17845
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17751
- _chunkIKDC3R7Vcjs.Input,
17752
- {
17753
- label: "First Name",
17754
- placeholder: "Enter First Name",
17755
- value: firstName,
17756
- error: firstNameErr.error,
17757
- disabled: fieldsDisabled,
17758
- onBlur: firstNameErr.onBlur,
17759
- onChange: (event) => onFirstNameChange(event.target.value),
17760
- onKeyDown: handleKeyDown
17761
- }
17762
- ),
17763
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17764
- _chunkIKDC3R7Vcjs.Input,
17765
- {
17766
- label: "Last Name",
17767
- placeholder: "Enter Last Name",
17768
- value: lastName,
17769
- error: lastNameErr.error,
17770
- disabled: fieldsDisabled,
17771
- onBlur: lastNameErr.onBlur,
17772
- onChange: (event) => onLastNameChange(event.target.value),
17773
- onKeyDown: handleKeyDown
17774
- }
17775
- ),
17776
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17777
- PasswordInput,
17778
- {
17779
- label: "Password",
17780
- placeholder: "Enter Password",
17781
- value: password,
17782
- error: passwordErr.error,
17783
- disabled: fieldsDisabled,
17784
- onBlur: passwordErr.onBlur,
17785
- onChange: (event) => onPasswordChange(event.target.value),
17786
- onKeyDown: handleKeyDown
17787
- }
17788
- ),
17789
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17790
- PasswordInput,
17846
+ AccountDetailsFields,
17791
17847
  {
17792
- label: "Confirm Password",
17793
- placeholder: "Confirm Password",
17794
- value: confirmPassword,
17795
- error: confirmErr.error,
17848
+ firstName,
17849
+ lastName,
17850
+ password,
17851
+ confirmPassword,
17852
+ onFirstNameChange,
17853
+ onLastNameChange,
17854
+ onPasswordChange,
17855
+ onConfirmPasswordChange,
17856
+ errors,
17796
17857
  disabled: fieldsDisabled,
17797
- onBlur: confirmErr.onBlur,
17798
- onChange: (event) => onConfirmPasswordChange(event.target.value),
17799
17858
  onKeyDown: handleKeyDown
17800
17859
  }
17801
17860
  ),
@@ -17879,11 +17938,25 @@ function CreateOrganizationForm({
17879
17938
  onDomainChange,
17880
17939
  onAgreedToTermsChange,
17881
17940
  onSubmit,
17941
+ firstName = "",
17942
+ lastName = "",
17943
+ password = "",
17944
+ confirmPassword = "",
17945
+ onFirstNameChange,
17946
+ onLastNameChange,
17947
+ onPasswordChange,
17948
+ onConfirmPasswordChange,
17949
+ emailReadOnly = false,
17950
+ emailReadOnlyLabel = "Email",
17951
+ title = "Create Organization",
17952
+ subtitle = "Start your journey with OpenFrame.",
17882
17953
  domainSuffix,
17883
17954
  domainPlaceholder = "company-name",
17884
17955
  termsUrl = "#",
17885
17956
  privacyPolicyUrl = "#",
17886
17957
  submitLabel = "Continue",
17958
+ onBack,
17959
+ backLabel = "Back",
17887
17960
  submitDisabled = false,
17888
17961
  loading = false,
17889
17962
  disabled = false,
@@ -17900,11 +17973,11 @@ function CreateOrganizationForm({
17900
17973
  }) {
17901
17974
  const hasSso = !!ssoProviders && ssoProviders.length > 0;
17902
17975
  const fieldsDisabled = disabled || loading;
17903
- const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _403 => _403.email]), email);
17976
+ const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _403 => _403.email]), _nullishCoalesce(email, () => ( "")));
17904
17977
  const orgNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _404 => _404.organizationName]), organizationName);
17905
17978
  const domainErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _405 => _405.domain]), domain);
17906
17979
  const handleKeyDown = (event) => {
17907
- if (event.key === "Enter" && !fieldsDisabled) {
17980
+ if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
17908
17981
  onSubmit();
17909
17982
  }
17910
17983
  };
@@ -17917,10 +17990,10 @@ function CreateOrganizationForm({
17917
17990
  ),
17918
17991
  children: [
17919
17992
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
17920
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: "Create Organization" }),
17921
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: "Start your journey with OpenFrame." })
17993
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: title }),
17994
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
17922
17995
  ] }),
17923
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17996
+ email === void 0 ? null : emailReadOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIKDC3R7Vcjs.Input, { type: "email", label: emailReadOnlyLabel, value: email, readOnly: true, disabled: true }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17924
17997
  _chunkIKDC3R7Vcjs.Input,
17925
17998
  {
17926
17999
  type: "email",
@@ -17931,7 +18004,7 @@ function CreateOrganizationForm({
17931
18004
  errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _407 => _407.variant]),
17932
18005
  disabled: fieldsDisabled,
17933
18006
  onBlur: emailErr.onBlur,
17934
- onChange: (event) => onEmailChange(event.target.value),
18007
+ onChange: (event) => _optionalChain([onEmailChange, 'optionalCall', _408 => _408(event.target.value)]),
17935
18008
  onKeyDown: handleKeyDown
17936
18009
  }
17937
18010
  ),
@@ -17955,8 +18028,8 @@ function CreateOrganizationForm({
17955
18028
  label: "Domain",
17956
18029
  placeholder: domainPlaceholder,
17957
18030
  value: domain,
17958
- error: _nullishCoalesce(domainErr.error, () => ( _optionalChain([domainStatus, 'optionalAccess', _408 => _408.message]))),
17959
- errorVariant: domainErr.error ? "error" : _optionalChain([domainStatus, 'optionalAccess', _409 => _409.variant]),
18031
+ error: _nullishCoalesce(domainErr.error, () => ( _optionalChain([domainStatus, 'optionalAccess', _409 => _409.message]))),
18032
+ errorVariant: domainErr.error ? "error" : _optionalChain([domainStatus, 'optionalAccess', _410 => _410.variant]),
17960
18033
  disabled: fieldsDisabled,
17961
18034
  onBlur: domainErr.onBlur,
17962
18035
  endAdornment: domainSuffix ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap", children: domainSuffix }) : void 0,
@@ -17966,6 +18039,23 @@ function CreateOrganizationForm({
17966
18039
  ),
17967
18040
  domainSlot && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-s)]", children: domainSlot })
17968
18041
  ] }),
18042
+ onFirstNameChange && onLastNameChange && onPasswordChange && onConfirmPasswordChange && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18043
+ AccountDetailsFields,
18044
+ {
18045
+ layout: "paired",
18046
+ firstName,
18047
+ lastName,
18048
+ password,
18049
+ confirmPassword,
18050
+ onFirstNameChange,
18051
+ onLastNameChange,
18052
+ onPasswordChange,
18053
+ onConfirmPasswordChange,
18054
+ errors,
18055
+ disabled: fieldsDisabled,
18056
+ onKeyDown: handleKeyDown
18057
+ }
18058
+ ),
17969
18059
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17970
18060
  CheckboxBlock,
17971
18061
  {
@@ -17973,28 +18063,39 @@ function CreateOrganizationForm({
17973
18063
  label: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TermsAgreementLabel, { termsUrl, privacyPolicyUrl }),
17974
18064
  checked: agreedToTerms,
17975
18065
  disabled: fieldsDisabled,
17976
- error: _optionalChain([errors, 'optionalAccess', _410 => _410.terms]),
18066
+ error: _optionalChain([errors, 'optionalAccess', _411 => _411.terms]),
17977
18067
  onCheckedChange: onAgreedToTermsChange
17978
18068
  }
17979
18069
  ),
17980
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17981
- _chunkYHNIPSG6cjs.Button,
17982
- {
17983
- type: "button",
17984
- variant: "accent",
17985
- fullWidth: true,
17986
- loading,
17987
- disabled: disabled || submitDisabled,
17988
- onClick: onSubmit,
17989
- children: submitLabel
17990
- }
17991
- ),
18070
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-l)]", children: [
18071
+ onBack && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18072
+ _chunkYHNIPSG6cjs.Button,
18073
+ {
18074
+ type: "button",
18075
+ variant: "transparent",
18076
+ fullWidth: true,
18077
+ className: "flex-1",
18078
+ disabled: fieldsDisabled,
18079
+ onClick: onBack,
18080
+ children: backLabel
18081
+ }
18082
+ ),
18083
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18084
+ _chunkYHNIPSG6cjs.Button,
18085
+ {
18086
+ type: "button",
18087
+ variant: "accent",
18088
+ fullWidth: true,
18089
+ className: "flex-1",
18090
+ loading,
18091
+ disabled: disabled || submitDisabled,
18092
+ onClick: onSubmit,
18093
+ children: submitLabel
18094
+ }
18095
+ )
18096
+ ] }),
17992
18097
  hasSso && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
17993
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-s)]", children: [
17994
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" }),
17995
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: dividerLabel }),
17996
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-px flex-1 bg-ods-border" })
17997
- ] }),
18098
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel }),
17998
18099
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
17999
18100
  SsoProviderButtons,
18000
18101
  {
@@ -18056,7 +18157,6 @@ function InviteLinkInvalidModal({
18056
18157
  function LoginForm({
18057
18158
  email,
18058
18159
  onEmailChange,
18059
- onSubmit,
18060
18160
  emailPlaceholder = "username@mail.com",
18061
18161
  loading = false,
18062
18162
  disabled = false,
@@ -18067,14 +18167,21 @@ function LoginForm({
18067
18167
  ssoDisabled = false,
18068
18168
  ssoEnabledProviders,
18069
18169
  ssoActionLabel = "Continue with",
18170
+ dividerLabel = "or continue with OpenFrame SSO",
18171
+ customSsoProviders,
18172
+ noCustomSsoLabel = "No additional SSO configurations for this domain",
18173
+ onSubmitClick,
18174
+ submitLabel = "Continue",
18175
+ submitDisabled = false,
18176
+ title = "Login to OpenFrame",
18177
+ subtitle = "Enter your email to access your organization.",
18070
18178
  className
18071
18179
  }) {
18072
18180
  const fieldDisabled = disabled || loading;
18073
- const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _411 => _411.email]), email);
18181
+ const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _412 => _412.email]), email);
18074
18182
  const handleKeyDown = (event) => {
18075
- if (event.key === "Enter" && !fieldDisabled) {
18076
- _optionalChain([onSubmit, 'optionalCall', _412 => _412()]);
18077
- }
18183
+ if (event.key !== "Enter" || fieldDisabled || submitDisabled) return;
18184
+ _optionalChain([onSubmitClick, 'optionalCall', _413 => _413()]);
18078
18185
  };
18079
18186
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
18080
18187
  "div",
@@ -18085,9 +18192,20 @@ function LoginForm({
18085
18192
  ),
18086
18193
  children: [
18087
18194
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
18088
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: "Login to OpenFrame" }),
18089
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: "Enter your email to access your organization." })
18195
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h1", { className: "tracking-[-0.64px] text-ods-text-primary text-h2", children: title }),
18196
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary text-h4", children: subtitle })
18090
18197
  ] }),
18198
+ ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18199
+ SsoProviderButtons,
18200
+ {
18201
+ providers: ssoProviders,
18202
+ onSsoClick,
18203
+ actionLabel: ssoActionLabel,
18204
+ disabled: disabled || loading || ssoDisabled,
18205
+ enabledProviders: ssoEnabledProviders
18206
+ }
18207
+ ),
18208
+ ssoProviders.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LabeledDivider, { label: dividerLabel }),
18091
18209
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18092
18210
  _chunkIKDC3R7Vcjs.Input,
18093
18211
  {
@@ -18095,24 +18213,56 @@ function LoginForm({
18095
18213
  label: "Email",
18096
18214
  placeholder: emailPlaceholder,
18097
18215
  value: email,
18098
- error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _413 => _413.message]))),
18099
- errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _414 => _414.variant]),
18216
+ error: _nullishCoalesce(emailErr.error, () => ( _optionalChain([emailStatus, 'optionalAccess', _414 => _414.message]))),
18217
+ errorVariant: emailErr.error ? "error" : _optionalChain([emailStatus, 'optionalAccess', _415 => _415.variant]),
18100
18218
  disabled: fieldDisabled,
18101
18219
  onBlur: emailErr.onBlur,
18102
18220
  onChange: (event) => onEmailChange(event.target.value),
18103
18221
  onKeyDown: handleKeyDown
18104
18222
  }
18105
18223
  ),
18106
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18224
+ customSsoProviders && (customSsoProviders.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18107
18225
  SsoProviderButtons,
18108
18226
  {
18109
- providers: ssoProviders,
18227
+ providers: customSsoProviders,
18110
18228
  onSsoClick,
18111
18229
  actionLabel: ssoActionLabel,
18112
- disabled: disabled || loading || ssoDisabled,
18113
- enabledProviders: ssoEnabledProviders
18230
+ disabled: disabled || loading
18114
18231
  }
18115
- )
18232
+ ) : (
18233
+ // Same footprint as the button it stands in for, so nothing shifts when a tenant does
18234
+ // have options. Tokens are the design's: soft-grey surface, grey text and icon, the
18235
+ // bold-body step, a 24px icon, and 12/16 for the inset and the gap.
18236
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
18237
+ "div",
18238
+ {
18239
+ role: "status",
18240
+ className: "flex h-11 w-full items-center gap-[var(--spacing-system-m)] rounded-md bg-ods-bg-surface px-[var(--spacing-system-s)] text-ods-text-secondary text-h3 md:h-12",
18241
+ children: [
18242
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.AlertTriangleIcon, { className: "h-6 w-6 shrink-0" }),
18243
+ noCustomSsoLabel
18244
+ ]
18245
+ }
18246
+ )
18247
+ )),
18248
+ onSubmitClick && // Full width on a phone, half the row and right-aligned from `md` up, matching the design.
18249
+ // The spacer, rather than a width on the button, keeps it flush with the fields' right edge.
18250
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-l)]", children: [
18251
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden flex-1 md:block" }),
18252
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18253
+ _chunkYHNIPSG6cjs.Button,
18254
+ {
18255
+ type: "button",
18256
+ variant: "accent",
18257
+ fullWidth: true,
18258
+ className: "md:flex-1",
18259
+ loading,
18260
+ disabled: submitDisabled || fieldDisabled,
18261
+ onClick: onSubmitClick,
18262
+ children: submitLabel
18263
+ }
18264
+ )
18265
+ ] })
18116
18266
  ]
18117
18267
  }
18118
18268
  );
@@ -18142,8 +18292,8 @@ function OpenFrameSsoLoginForm({
18142
18292
  className
18143
18293
  }) {
18144
18294
  const fieldsDisabled = disabled || loading;
18145
- const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _415 => _415.email]), email);
18146
- const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _416 => _416.password]), password);
18295
+ const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _416 => _416.email]), email);
18296
+ const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _417 => _417.password]), password);
18147
18297
  const handleKeyDown = (event) => {
18148
18298
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18149
18299
  onSubmit();
@@ -18248,11 +18398,7 @@ function OpenFrameSsoSignUpForm({
18248
18398
  className
18249
18399
  }) {
18250
18400
  const fieldsDisabled = disabled || loading;
18251
- const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _417 => _417.email]), email);
18252
- const firstNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _418 => _418.firstName]), firstName);
18253
- const lastNameErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _419 => _419.lastName]), lastName);
18254
- const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _420 => _420.password]), password);
18255
- const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _421 => _421.confirmPassword]), confirmPassword);
18401
+ const emailErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _418 => _418.email]), email);
18256
18402
  const handleKeyDown = (event) => {
18257
18403
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18258
18404
  onSubmit();
@@ -18285,54 +18431,18 @@ function OpenFrameSsoSignUpForm({
18285
18431
  }
18286
18432
  ),
18287
18433
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18288
- _chunkIKDC3R7Vcjs.Input,
18434
+ AccountDetailsFields,
18289
18435
  {
18290
- label: "First Name",
18291
- placeholder: "Enter First Name",
18292
- value: firstName,
18293
- error: firstNameErr.error,
18436
+ firstName,
18437
+ lastName,
18438
+ password,
18439
+ confirmPassword,
18440
+ onFirstNameChange,
18441
+ onLastNameChange,
18442
+ onPasswordChange,
18443
+ onConfirmPasswordChange,
18444
+ errors,
18294
18445
  disabled: fieldsDisabled,
18295
- onBlur: firstNameErr.onBlur,
18296
- onChange: (event) => onFirstNameChange(event.target.value),
18297
- onKeyDown: handleKeyDown
18298
- }
18299
- ),
18300
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18301
- _chunkIKDC3R7Vcjs.Input,
18302
- {
18303
- label: "Last Name",
18304
- placeholder: "Enter Last Name",
18305
- value: lastName,
18306
- error: lastNameErr.error,
18307
- disabled: fieldsDisabled,
18308
- onBlur: lastNameErr.onBlur,
18309
- onChange: (event) => onLastNameChange(event.target.value),
18310
- onKeyDown: handleKeyDown
18311
- }
18312
- ),
18313
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18314
- PasswordInput,
18315
- {
18316
- label: "Password",
18317
- placeholder: "Enter Password",
18318
- value: password,
18319
- error: passwordErr.error,
18320
- disabled: fieldsDisabled,
18321
- onBlur: passwordErr.onBlur,
18322
- onChange: (event) => onPasswordChange(event.target.value),
18323
- onKeyDown: handleKeyDown
18324
- }
18325
- ),
18326
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
18327
- PasswordInput,
18328
- {
18329
- label: "Confirm Password",
18330
- placeholder: "Confirm Password",
18331
- value: confirmPassword,
18332
- error: confirmErr.error,
18333
- disabled: fieldsDisabled,
18334
- onBlur: confirmErr.onBlur,
18335
- onChange: (event) => onConfirmPasswordChange(event.target.value),
18336
18446
  onKeyDown: handleKeyDown
18337
18447
  }
18338
18448
  ),
@@ -18393,8 +18503,8 @@ function PasswordResetForm({
18393
18503
  className
18394
18504
  }) {
18395
18505
  const fieldsDisabled = disabled || loading;
18396
- const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _422 => _422.password]), password);
18397
- const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _423 => _423.confirmPassword]), confirmPassword);
18506
+ const passwordErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _419 => _419.password]), password);
18507
+ const confirmErr = _chunkLEISUAHFcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _420 => _420.confirmPassword]), confirmPassword);
18398
18508
  const handleKeyDown = (event) => {
18399
18509
  if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
18400
18510
  onSubmit();
@@ -19105,10 +19215,10 @@ var getContentDimensions = (config) => {
19105
19215
  const envMobileHeight = process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_MOBILE_HEIGHT) : null;
19106
19216
  const envDesktopWidth = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_WIDTH) : null;
19107
19217
  const envDesktopHeight = process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT ? parseInt(process.env.NEXT_PUBLIC_FIGMA_DESKTOP_HEIGHT) : null;
19108
- const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _424 => _424.mobileContentDimensions, 'optionalAccess', _425 => _425.width]))), () => ( defaultMobile.width));
19109
- const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _426 => _426.mobileContentDimensions, 'optionalAccess', _427 => _427.height]))), () => ( defaultMobile.height));
19110
- const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _428 => _428.desktopContentDimensions, 'optionalAccess', _429 => _429.width]))), () => ( defaultDesktop.width));
19111
- const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _430 => _430.desktopContentDimensions, 'optionalAccess', _431 => _431.height]))), () => ( defaultDesktop.height));
19218
+ const mobileWidth = _nullishCoalesce(_nullishCoalesce(envMobileWidth, () => ( _optionalChain([config, 'optionalAccess', _421 => _421.mobileContentDimensions, 'optionalAccess', _422 => _422.width]))), () => ( defaultMobile.width));
19219
+ const mobileHeight = _nullishCoalesce(_nullishCoalesce(envMobileHeight, () => ( _optionalChain([config, 'optionalAccess', _423 => _423.mobileContentDimensions, 'optionalAccess', _424 => _424.height]))), () => ( defaultMobile.height));
19220
+ const desktopWidth = _nullishCoalesce(_nullishCoalesce(envDesktopWidth, () => ( _optionalChain([config, 'optionalAccess', _425 => _425.desktopContentDimensions, 'optionalAccess', _426 => _426.width]))), () => ( defaultDesktop.width));
19221
+ const desktopHeight = _nullishCoalesce(_nullishCoalesce(envDesktopHeight, () => ( _optionalChain([config, 'optionalAccess', _427 => _427.desktopContentDimensions, 'optionalAccess', _428 => _428.height]))), () => ( defaultDesktop.height));
19112
19222
  return {
19113
19223
  mobile: { width: mobileWidth, height: mobileHeight },
19114
19224
  desktop: { width: desktopWidth, height: desktopHeight }
@@ -19264,7 +19374,7 @@ function UnifiedUI({ state, handlers, config, iframeRef }) {
19264
19374
  const contentDimensions = getContentDimensions(config);
19265
19375
  const mobileHeight = contentDimensions.mobile.height;
19266
19376
  const calculatedHeight = Math.max(mobileHeight + 100, 400);
19267
- return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _432 => _432.innerHeight]) * 0.85 || 650)}px`;
19377
+ return `${Math.min(calculatedHeight, _optionalChain([window, 'optionalAccess', _429 => _429.innerHeight]) * 0.85 || 650)}px`;
19268
19378
  })(),
19269
19379
  minHeight: viewMode === "DESKTOP" ? "auto" : (() => {
19270
19380
  const contentDimensions = getContentDimensions(config);
@@ -19367,7 +19477,7 @@ var FigmaPrototypeViewer = ({
19367
19477
  const [isInitialized, setIsInitialized] = _react.useState.call(void 0, false);
19368
19478
  const [currentNodeId, setCurrentNodeId] = _react.useState.call(void 0, null);
19369
19479
  const [internalActiveSection, setInternalActiveSection] = _react.useState.call(void 0,
19370
- config.defaultSectionId || _optionalChain([config, 'access', _433 => _433.sections, 'access', _434 => _434[0], 'optionalAccess', _435 => _435.id]) || ""
19480
+ config.defaultSectionId || _optionalChain([config, 'access', _430 => _430.sections, 'access', _431 => _431[0], 'optionalAccess', _432 => _432.id]) || ""
19371
19481
  );
19372
19482
  const activeSection = externalActiveSection || internalActiveSection;
19373
19483
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -19465,19 +19575,19 @@ var FigmaPrototypeViewer = ({
19465
19575
  setIframeState("READY");
19466
19576
  break;
19467
19577
  case "PRESENTED_NODE_CHANGED":
19468
- if (_optionalChain([figmaEvent, 'access', _436 => _436.data, 'optionalAccess', _437 => _437.presentedNodeId])) {
19578
+ if (_optionalChain([figmaEvent, 'access', _433 => _433.data, 'optionalAccess', _434 => _434.presentedNodeId])) {
19469
19579
  setCurrentNodeId(figmaEvent.data.presentedNodeId);
19470
19580
  if (!isNavigating) {
19471
19581
  const matchingSection = configSections.find((s) => {
19472
- const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _438 => _438.data, 'optionalAccess', _439 => _439.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _440 => _440.data, 'optionalAccess', _441 => _441.presentedNodeId]);
19473
- const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _442 => _442.data, 'optionalAccess', _443 => _443.presentedNodeId]) || _optionalChain([s, 'access', _444 => _444.mobileStartingNodeId, 'optionalAccess', _445 => _445.replace, 'call', _446 => _446(":", "-")]) === _optionalChain([figmaEvent, 'access', _447 => _447.data, 'optionalAccess', _448 => _448.presentedNodeId]);
19582
+ const desktopMatch = s.startingNodeId === _optionalChain([figmaEvent, 'access', _435 => _435.data, 'optionalAccess', _436 => _436.presentedNodeId]) || s.startingNodeId.replace(":", "-") === _optionalChain([figmaEvent, 'access', _437 => _437.data, 'optionalAccess', _438 => _438.presentedNodeId]);
19583
+ const mobileMatch = s.mobileStartingNodeId === _optionalChain([figmaEvent, 'access', _439 => _439.data, 'optionalAccess', _440 => _440.presentedNodeId]) || _optionalChain([s, 'access', _441 => _441.mobileStartingNodeId, 'optionalAccess', _442 => _442.replace, 'call', _443 => _443(":", "-")]) === _optionalChain([figmaEvent, 'access', _444 => _444.data, 'optionalAccess', _445 => _445.presentedNodeId]);
19474
19584
  return desktopMatch || mobileMatch;
19475
19585
  });
19476
19586
  if (matchingSection && matchingSection.id !== activeSection) {
19477
19587
  if (!externalActiveSection) {
19478
19588
  setInternalActiveSection(matchingSection.id);
19479
19589
  }
19480
- _optionalChain([onSectionChange, 'optionalCall', _449 => _449(matchingSection.id)]);
19590
+ _optionalChain([onSectionChange, 'optionalCall', _446 => _446(matchingSection.id)]);
19481
19591
  }
19482
19592
  }
19483
19593
  }
@@ -19491,7 +19601,7 @@ var FigmaPrototypeViewer = ({
19491
19601
  const navigateToSection = _react.useCallback.call(void 0,
19492
19602
  (sectionId) => {
19493
19603
  const section = config.sections.find((s) => s.id === sectionId);
19494
- if (!section || !_optionalChain([iframeRef, 'access', _450 => _450.current, 'optionalAccess', _451 => _451.contentWindow]) || !isInitialized) {
19604
+ if (!section || !_optionalChain([iframeRef, 'access', _447 => _447.current, 'optionalAccess', _448 => _448.contentWindow]) || !isInitialized) {
19495
19605
  return;
19496
19606
  }
19497
19607
  setIsNavigating(true);
@@ -19499,7 +19609,7 @@ var FigmaPrototypeViewer = ({
19499
19609
  if (!externalActiveSection) {
19500
19610
  setInternalActiveSection(sectionId);
19501
19611
  }
19502
- _optionalChain([config, 'access', _452 => _452.onSectionChange, 'optionalCall', _453 => _453(sectionId)]);
19612
+ _optionalChain([config, 'access', _449 => _449.onSectionChange, 'optionalCall', _450 => _450(sectionId)]);
19503
19613
  const command = {
19504
19614
  type: "NAVIGATE_TO_FRAME_AND_CLOSE_OVERLAYS",
19505
19615
  data: { nodeId }
@@ -19836,7 +19946,7 @@ var FiltersDropdown = ({
19836
19946
  defaults[section.id] = section.defaultSelected || [];
19837
19947
  });
19838
19948
  setSelectedFilters(defaults);
19839
- _optionalChain([onReset, 'optionalCall', _454 => _454()]);
19949
+ _optionalChain([onReset, 'optionalCall', _451 => _451()]);
19840
19950
  setIsOpen(false);
19841
19951
  };
19842
19952
  const handleApply = () => {
@@ -20085,7 +20195,7 @@ function MediaGalleryManager({
20085
20195
  const [draggedIndex, setDraggedIndex] = _react.useState.call(void 0, null);
20086
20196
  const handleFileSelect = _react.useCallback.call(void 0,
20087
20197
  async (event) => {
20088
- const file = _optionalChain([event, 'access', _455 => _455.target, 'access', _456 => _456.files, 'optionalAccess', _457 => _457[0]]);
20198
+ const file = _optionalChain([event, 'access', _452 => _452.target, 'access', _453 => _453.files, 'optionalAccess', _454 => _454[0]]);
20089
20199
  if (!file) return;
20090
20200
  let mediaType;
20091
20201
  if (file.type.startsWith("image/")) {
@@ -20210,7 +20320,7 @@ function MediaGalleryManager({
20210
20320
  {
20211
20321
  type: "button",
20212
20322
  variant: "outline",
20213
- onClick: () => _optionalChain([fileInputRef, 'access', _458 => _458.current, 'optionalAccess', _459 => _459.click, 'call', _460 => _460()]),
20323
+ onClick: () => _optionalChain([fileInputRef, 'access', _455 => _455.current, 'optionalAccess', _456 => _456.click, 'call', _457 => _457()]),
20214
20324
  disabled: isUploading,
20215
20325
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
20216
20326
  className: "font-bold text-h6",
@@ -22335,9 +22445,9 @@ function PushButtonSelector({
22335
22445
  }) {
22336
22446
  const scrollRef = _react.useRef.call(void 0, null);
22337
22447
  const sentinelRef = _react.useRef.call(void 0, null);
22338
- const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _461 => _461.hasMore]), () => ( false));
22339
- const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _462 => _462.isFetchingMore]), () => ( false));
22340
- const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _463 => _463.onLoadMore]);
22448
+ const lazyHasMore = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _458 => _458.hasMore]), () => ( false));
22449
+ const lazyFetching = _nullishCoalesce(_optionalChain([lazyLoad, 'optionalAccess', _459 => _459.isFetchingMore]), () => ( false));
22450
+ const onLoadMore = _optionalChain([lazyLoad, 'optionalAccess', _460 => _460.onLoadMore]);
22341
22451
  const optionCount = options.length;
22342
22452
  _react.useEffect.call(void 0, () => {
22343
22453
  const sentinel = sentinelRef.current;
@@ -22508,7 +22618,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
22508
22618
  const fileInputRef = _react.useRef.call(void 0, null);
22509
22619
  const [uploadingIndex, setUploadingIndex] = _react.useState.call(void 0, null);
22510
22620
  const handleFileSelect = async (event) => {
22511
- const file = _optionalChain([event, 'access', _464 => _464.target, 'access', _465 => _465.files, 'optionalAccess', _466 => _466[0]]);
22621
+ const file = _optionalChain([event, 'access', _461 => _461.target, 'access', _462 => _462.files, 'optionalAccess', _463 => _463[0]]);
22512
22622
  if (!file) return;
22513
22623
  let mediaType;
22514
22624
  if (file.type.startsWith("image/")) {
@@ -22590,7 +22700,7 @@ function ReleaseMediaManager({ media, onChange, onUpload, className = "" }) {
22590
22700
  {
22591
22701
  type: "button",
22592
22702
  variant: "outline",
22593
- onClick: () => _optionalChain([fileInputRef, 'access', _467 => _467.current, 'optionalAccess', _468 => _468.click, 'call', _469 => _469()]),
22703
+ onClick: () => _optionalChain([fileInputRef, 'access', _464 => _464.current, 'optionalAccess', _465 => _465.click, 'call', _466 => _466()]),
22594
22704
  disabled: uploadingIndex !== null,
22595
22705
  leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Plus, { className: "h-4 w-4" }),
22596
22706
  className: "font-bold text-h6",
@@ -22871,7 +22981,7 @@ function SEOEditorPreview({
22871
22981
  const displayImage = hasOgImage || hasFeaturedImage;
22872
22982
  const handleImageUpload = async (event) => {
22873
22983
  if (!onOgImageUpload) return;
22874
- const file = _optionalChain([event, 'access', _470 => _470.target, 'access', _471 => _471.files, 'optionalAccess', _472 => _472[0]]);
22984
+ const file = _optionalChain([event, 'access', _467 => _467.target, 'access', _468 => _468.files, 'optionalAccess', _469 => _469[0]]);
22875
22985
  if (!file) return;
22876
22986
  setIsUploading(true);
22877
22987
  try {
@@ -23028,7 +23138,7 @@ function SEOEditorPreview({
23028
23138
  type: "button",
23029
23139
  variant: "outline",
23030
23140
  size: "icon",
23031
- onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _473 => _473.click, 'call', _474 => _474()]),
23141
+ onClick: () => _optionalChain([fileInputRef, 'optionalAccess', _470 => _470.click, 'call', _471 => _471()]),
23032
23142
  disabled: disabled || isUploading,
23033
23143
  className: "rounded-full bg-white text-black opacity-0 hover:bg-gray-100 group-hover:opacity-100",
23034
23144
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "h-4 w-4" })
@@ -23054,7 +23164,7 @@ function SEOEditorPreview({
23054
23164
  SEO_MEDIA_BOX_HEIGHT,
23055
23165
  "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"
23056
23166
  ),
23057
- onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _475 => _475.click, 'call', _476 => _476()]),
23167
+ onClick: () => onOgImageUpload && _optionalChain([fileInputRef, 'optionalAccess', _472 => _472.click, 'call', _473 => _473()]),
23058
23168
  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: [
23059
23169
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Upload, { className: "mb-2 h-8 w-8 text-ods-text-secondary" }),
23060
23170
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-secondary text-h6", children: onOgImageUpload ? "Click to upload OG image" : "No image" })
@@ -23141,7 +23251,7 @@ function SocialLinksManager({
23141
23251
  className = ""
23142
23252
  }) {
23143
23253
  const addLink = () => {
23144
- const firstPlatform = _optionalChain([platforms, 'access', _477 => _477[0], 'optionalAccess', _478 => _478.name]) || "website";
23254
+ const firstPlatform = _optionalChain([platforms, 'access', _474 => _474[0], 'optionalAccess', _475 => _475.name]) || "website";
23145
23255
  onChange([...links, { platform: firstPlatform, url: "" }]);
23146
23256
  };
23147
23257
  const removeLink = (index) => {
@@ -23153,7 +23263,7 @@ function SocialLinksManager({
23153
23263
  onChange(updated);
23154
23264
  };
23155
23265
  const getIcon = (link, platform) => {
23156
- const iconKey = _optionalChain([platform, 'optionalAccess', _479 => _479.icon_name]) || link.platform;
23266
+ const iconKey = _optionalChain([platform, 'optionalAccess', _476 => _476.icon_name]) || link.platform;
23157
23267
  const IconComponent = iconMap[iconKey];
23158
23268
  return IconComponent ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, IconComponent, { className: "h-5 w-5 text-ods-text-secondary" }) : null;
23159
23269
  };
@@ -23175,7 +23285,7 @@ function SocialLinksManager({
23175
23285
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
23176
23286
  _chunkIKDC3R7Vcjs.Input,
23177
23287
  {
23178
- placeholder: _optionalChain([platform, 'optionalAccess', _480 => _480.placeholder]) || "Profile URL",
23288
+ placeholder: _optionalChain([platform, 'optionalAccess', _477 => _477.placeholder]) || "Profile URL",
23179
23289
  value: link.url,
23180
23290
  onChange: (e) => updateLink(index, "url", e.target.value),
23181
23291
  onKeyDown: (e) => {
@@ -23571,8 +23681,8 @@ function VideoBitesDisplay({
23571
23681
 
23572
23682
  var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
23573
23683
  function theaterSeedFromLive(live, fallbackTime, fallbackMuted) {
23574
- const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _481 => _481.getCurrentTime, 'call', _482 => _482()]), () => ( 0));
23575
- const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _483 => _483.getDuration, 'call', _484 => _484()]), () => ( 0)), time);
23684
+ const time = _nullishCoalesce(_optionalChain([live, 'optionalAccess', _478 => _478.getCurrentTime, 'call', _479 => _479()]), () => ( 0));
23685
+ const atEnd = isAtEnd(_nullishCoalesce(_optionalChain([live, 'optionalAccess', _480 => _480.getDuration, 'call', _481 => _481()]), () => ( 0)), time);
23576
23686
  return {
23577
23687
  // At end -> start over, never rewind to an unrelated older anchor.
23578
23688
  time: atEnd ? 0 : time > 0.5 ? time : fallbackTime,
@@ -23604,11 +23714,11 @@ function WalkthroughVideo({
23604
23714
  const inline = placement === "inline";
23605
23715
  const dismissEnabled = dismissal !== false;
23606
23716
  const storageKey = dismissEnabled && dismissal.storageKey || WALKTHROUGH_VIDEO_DISMISS_KEY;
23607
- const dismissalId = _optionalChain([video, 'optionalAccess', _485 => _485.id]) != null ? String(video.id) : "dismissed";
23717
+ const dismissalId = _optionalChain([video, 'optionalAccess', _482 => _482.id]) != null ? String(video.id) : "dismissed";
23608
23718
  const [mounted, setMounted] = _react.useState.call(void 0, false);
23609
23719
  const [dismissed, setDismissed] = _react.useState.call(void 0, false);
23610
23720
  const hasVideo = video != null;
23611
- const videoId = _optionalChain([video, 'optionalAccess', _486 => _486.id]);
23721
+ const videoId = _optionalChain([video, 'optionalAccess', _483 => _483.id]);
23612
23722
  _react.useEffect.call(void 0, () => {
23613
23723
  let idleHandle = null;
23614
23724
  if (!hasVideo) return void 0;
@@ -23635,9 +23745,9 @@ function WalkthroughVideo({
23635
23745
  const previewSuppressed = _react.useMemo.call(void 0, () => {
23636
23746
  if (!hydrated) return false;
23637
23747
  try {
23638
- const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _487 => _487.matchMedia, 'optionalCall', _488 => _488("(prefers-reduced-motion: reduce)"), 'access', _489 => _489.matches]), () => ( false));
23748
+ const reducedMotion = _nullishCoalesce(_optionalChain([window, 'access', _484 => _484.matchMedia, 'optionalCall', _485 => _485("(prefers-reduced-motion: reduce)"), 'access', _486 => _486.matches]), () => ( false));
23639
23749
  const conn = navigator.connection;
23640
- const saveData = _optionalChain([conn, 'optionalAccess', _490 => _490.saveData]) === true || _optionalChain([conn, 'optionalAccess', _491 => _491.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _492 => _492.effectiveType]) === "slow-2g";
23750
+ const saveData = _optionalChain([conn, 'optionalAccess', _487 => _487.saveData]) === true || _optionalChain([conn, 'optionalAccess', _488 => _488.effectiveType]) === "2g" || _optionalChain([conn, 'optionalAccess', _489 => _489.effectiveType]) === "slow-2g";
23641
23751
  return Boolean(reducedMotion || saveData);
23642
23752
  } catch (e27) {
23643
23753
  return false;
@@ -23670,18 +23780,18 @@ function WalkthroughVideo({
23670
23780
  const [cardMuted, setCardMuted] = _react.useState.call(void 0, false);
23671
23781
  const [cardPaused, setCardPaused] = _react.useState.call(void 0, false);
23672
23782
  const [userMuted, setUserMuted] = _react.useState.call(void 0, false);
23673
- const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _493 => _493.youtubeUrl]));
23783
+ const isYouTube = Boolean(_optionalChain([video, 'optionalAccess', _490 => _490.youtubeUrl]));
23674
23784
  const resumeMode = !open && handoff !== null && !isYouTube;
23675
23785
  const previewAllowed = !previewSuppressed && !isYouTube;
23676
23786
  const footerFadeKey = `${mounted ? 1 : 0}|${inline ? 1 : 0}|${hideNearSelector}|${pathname}`;
23677
- const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _494 => _494.key]) === footerFadeKey && footerObservation.hidden;
23787
+ const footerHidden = _optionalChain([footerObservation, 'optionalAccess', _491 => _491.key]) === footerFadeKey && footerObservation.hidden;
23678
23788
  _react.useEffect.call(void 0, () => {
23679
23789
  if (!mounted) return void 0;
23680
23790
  if (inline) return void 0;
23681
23791
  const el = typeof document !== "undefined" ? document.querySelector(hideNearSelector) : null;
23682
23792
  if (!el || typeof IntersectionObserver === "undefined") return void 0;
23683
23793
  const io = new IntersectionObserver(
23684
- (entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _495 => _495[0], 'optionalAccess', _496 => _496.isIntersecting]), () => ( false)) }),
23794
+ (entries) => setFooterObservation({ key: footerFadeKey, hidden: _nullishCoalesce(_optionalChain([entries, 'access', _492 => _492[0], 'optionalAccess', _493 => _493.isIntersecting]), () => ( false)) }),
23685
23795
  { rootMargin: "0px 0px -40px 0px" }
23686
23796
  );
23687
23797
  io.observe(el);
@@ -23707,7 +23817,7 @@ function WalkthroughVideo({
23707
23817
  if (!footerHidden) return;
23708
23818
  const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
23709
23819
  try {
23710
- _optionalChain([h, 'optionalAccess', _497 => _497.pause, 'call', _498 => _498()]);
23820
+ _optionalChain([h, 'optionalAccess', _494 => _494.pause, 'call', _495 => _495()]);
23711
23821
  } catch (e29) {
23712
23822
  }
23713
23823
  }, [footerHidden, resumeMode, hovered]);
@@ -23726,30 +23836,30 @@ function WalkthroughVideo({
23726
23836
  }, 400);
23727
23837
  }
23728
23838
  if (openProp === void 0) setOpenState(next);
23729
- _optionalChain([onOpenChange, 'optionalCall', _499 => _499(next)]);
23839
+ _optionalChain([onOpenChange, 'optionalCall', _496 => _496(next)]);
23730
23840
  },
23731
23841
  [openProp, onOpenChange]
23732
23842
  );
23733
23843
  const pausePreviewNow = _react.useCallback.call(void 0, () => {
23734
23844
  const h = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
23735
23845
  try {
23736
- _optionalChain([h, 'optionalAccess', _500 => _500.pause, 'call', _501 => _501()]);
23846
+ _optionalChain([h, 'optionalAccess', _497 => _497.pause, 'call', _498 => _498()]);
23737
23847
  } catch (e30) {
23738
23848
  }
23739
23849
  setCardPaused(true);
23740
23850
  }, [setCardPaused]);
23741
23851
  const openTheater = _react.useCallback.call(void 0, () => {
23742
23852
  const handleBeforePause = _nullishCoalesce(resumeHandleRef.current, () => ( previewHandleRef.current));
23743
- const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _502 => _502.getPaused, 'call', _503 => _503()]) === false;
23853
+ const liveWasPlaying = _optionalChain([handleBeforePause, 'optionalAccess', _499 => _499.getPaused, 'call', _500 => _500()]) === false;
23744
23854
  pausePreviewNow();
23745
23855
  const liveHandle = _nullishCoalesce(resumeHandleRef.current, () => ( (cardModeRef.current === "preview" ? previewHandleRef.current : null)));
23746
- const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _504 => _504.getCurrentTime, 'call', _505 => _505()]), () => ( 0));
23747
- const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _506 => _506.getDuration, 'call', _507 => _507()]), () => ( 0));
23856
+ const liveTime = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _501 => _501.getCurrentTime, 'call', _502 => _502()]), () => ( 0));
23857
+ const liveDuration = _nullishCoalesce(_optionalChain([liveHandle, 'optionalAccess', _503 => _503.getDuration, 'call', _504 => _504()]), () => ( 0));
23748
23858
  const liveAtEnd = isAtEnd(liveDuration, liveTime);
23749
23859
  const start = {
23750
23860
  // At end -> start over. Falling back to `handoff.time` here would rewind
23751
23861
  // to an unrelated older anchor (e.g. 3:20) instead of restarting.
23752
- time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _508 => _508.time]), () => ( 0)),
23862
+ time: liveAtEnd ? 0 : liveTime > 0.5 ? liveTime : _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _505 => _505.time]), () => ( 0)),
23753
23863
  // Live element wins over remembered intent (the theater's own chrome may
23754
23864
  // have changed it) — EXCEPT when the element is muted only because
23755
23865
  // autoplay policy forced it, which is not intent.
@@ -23777,7 +23887,7 @@ function WalkthroughVideo({
23777
23887
  const selfDriven = selfDrivenFor === open;
23778
23888
  if (openProp !== void 0 && !selfDriven) {
23779
23889
  if (open) {
23780
- setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _509 => _509.time]), () => ( 0)), userMuted));
23890
+ setTheaterStart(theaterSeedFromLive(resumeHandleRef.current, _nullishCoalesce(_optionalChain([handoff, 'optionalAccess', _506 => _506.time]), () => ( 0)), userMuted));
23781
23891
  setHovered(false);
23782
23892
  setSuspended(false);
23783
23893
  setHandoff(null);
@@ -23863,8 +23973,8 @@ function WalkthroughVideo({
23863
23973
  });
23864
23974
  _react.useEffect.call(void 0, () => {
23865
23975
  if (resumeMode) {
23866
- setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _510 => _510.current, 'optionalAccess', _511 => _511.muted]), () => ( false)));
23867
- setCardPaused(_optionalChain([handoffRef, 'access', _512 => _512.current, 'optionalAccess', _513 => _513.playing]) === false);
23976
+ setCardMuted(_nullishCoalesce(_optionalChain([handoffRef, 'access', _507 => _507.current, 'optionalAccess', _508 => _508.muted]), () => ( false)));
23977
+ setCardPaused(_optionalChain([handoffRef, 'access', _509 => _509.current, 'optionalAccess', _510 => _510.playing]) === false);
23868
23978
  }
23869
23979
  }, [resumeMode]);
23870
23980
  const [hoverSeeded, setHoverSeeded] = _react.useState.call(void 0, hovered);
@@ -23946,11 +24056,11 @@ function WalkthroughVideo({
23946
24056
  },
23947
24057
  [cardFallback.blocked, cardPaused, activeHandle, setCardPaused]
23948
24058
  );
23949
- const summaryTitle = _optionalChain([video, 'optionalAccess', _514 => _514.title]) || void 0;
23950
- const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _515 => _515.presenterAvatarUrl]), () => ( null));
24059
+ const summaryTitle = _optionalChain([video, 'optionalAccess', _511 => _511.title]) || void 0;
24060
+ const presenterAvatarSrc = _nullishCoalesce(_optionalChain([video, 'optionalAccess', _512 => _512.presenterAvatarUrl]), () => ( null));
23951
24061
  const embedUrlKey = _react.useMemo.call(void 0,
23952
- () => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _516 => _516.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _517 => _517.youtubeUrl]), () => ( ""))}`,
23953
- [_optionalChain([video, 'optionalAccess', _518 => _518.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _519 => _519.youtubeUrl])]
24062
+ () => `${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _513 => _513.mainVideoUrl]), () => ( ""))}|${_nullishCoalesce(_optionalChain([video, 'optionalAccess', _514 => _514.youtubeUrl]), () => ( ""))}`,
24063
+ [_optionalChain([video, 'optionalAccess', _515 => _515.mainVideoUrl]), _optionalChain([video, 'optionalAccess', _516 => _516.youtubeUrl])]
23954
24064
  );
23955
24065
  const cardActive = !open && previewAllowed && hovered && !resumeMode;
23956
24066
  const cardMode = resumeMode ? "resume" : cardActive ? "preview" : "poster";
@@ -24009,7 +24119,7 @@ function WalkthroughVideo({
24009
24119
  const el = e.target;
24010
24120
  let keyboard = false;
24011
24121
  try {
24012
- keyboard = _nullishCoalesce(_optionalChain([el, 'access', _520 => _520.matches, 'optionalCall', _521 => _521(":focus-visible")]), () => ( false));
24122
+ keyboard = _nullishCoalesce(_optionalChain([el, 'access', _517 => _517.matches, 'optionalCall', _518 => _518(":focus-visible")]), () => ( false));
24013
24123
  } catch (e35) {
24014
24124
  keyboard = false;
24015
24125
  }
@@ -24043,9 +24153,9 @@ function WalkthroughVideo({
24043
24153
  previewHandleRef: cardMode === "resume" ? resumeHandleRef : previewHandleRef,
24044
24154
  mutedIntent: userMuted,
24045
24155
  continuation: cardMode === "resume",
24046
- autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _522 => _522.playing]) !== false && !footerHidden,
24047
- startTime: _optionalChain([resumeHandoff, 'optionalAccess', _523 => _523.time]),
24048
- startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _524 => _524.muted]), () => ( false)),
24156
+ autoPlay: cardMode === "resume" && _optionalChain([handoff, 'optionalAccess', _519 => _519.playing]) !== false && !footerHidden,
24157
+ startTime: _optionalChain([resumeHandoff, 'optionalAccess', _520 => _520.time]),
24158
+ startMuted: _nullishCoalesce(_optionalChain([resumeHandoff, 'optionalAccess', _521 => _521.muted]), () => ( false)),
24049
24159
  onEnded: cardMode === "resume" ? () => setHandoff(null) : () => setCardPaused(true)
24050
24160
  },
24051
24161
  `card-${embedUrlKey}`
@@ -24142,7 +24252,7 @@ function WalkthroughVideo({
24142
24252
  {
24143
24253
  onOpenAutoFocus: (e) => {
24144
24254
  e.preventDefault();
24145
- _optionalChain([closeButtonRef, 'access', _525 => _525.current, 'optionalAccess', _526 => _526.focus, 'call', _527 => _527()]);
24255
+ _optionalChain([closeButtonRef, 'access', _522 => _522.current, 'optionalAccess', _523 => _523.focus, 'call', _524 => _524()]);
24146
24256
  },
24147
24257
  className: _chunkPRPZBXWZcjs.cn.call(void 0,
24148
24258
  // PURE theater: just the video, centered on a dimmed backdrop.
@@ -24236,14 +24346,14 @@ function useWalkthroughVideo(opts) {
24236
24346
  if (res.status === 404) return null;
24237
24347
  if (!res.ok) throw new Error(`Walkthrough video request failed (${res.status})`);
24238
24348
  const body = await res.json();
24239
- return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _528 => _528.walkthroughVideo]), () => ( null));
24349
+ return _nullishCoalesce(_optionalChain([body, 'optionalAccess', _525 => _525.walkthroughVideo]), () => ( null));
24240
24350
  },
24241
24351
  // Per-observer transform — NEVER mutate the cached data. `select` also runs
24242
24352
  // over `initialData`, so the SSR seed is rewritten too. Keeping the proxy
24243
24353
  // rewrite here (not in queryFn) means a second consumer of the same
24244
24354
  // endpoint can't inherit this observer's proxied captionsUrl from the cache.
24245
24355
  select: (video) => {
24246
- if (!_optionalChain([video, 'optionalAccess', _529 => _529.captionsUrl])) return video;
24356
+ if (!_optionalChain([video, 'optionalAccess', _526 => _526.captionsUrl])) return video;
24247
24357
  if (transformCaptionsUrl && video.captionsUrl.startsWith("/")) {
24248
24358
  return { ...video, captionsUrl: transformCaptionsUrl(video.captionsUrl) };
24249
24359
  }
@@ -24290,7 +24400,7 @@ function VideoSourceSelector({
24290
24400
  input.accept = "video/*";
24291
24401
  input.onchange = async (e) => {
24292
24402
  const target = e.target;
24293
- const file = _optionalChain([target, 'access', _530 => _530.files, 'optionalAccess', _531 => _531[0]]);
24403
+ const file = _optionalChain([target, 'access', _527 => _527.files, 'optionalAccess', _528 => _528[0]]);
24294
24404
  if (!file) return;
24295
24405
  setIsUploading(true);
24296
24406
  setUploadProgress(0);
@@ -24466,7 +24576,7 @@ function SubtitlesEditor({
24466
24576
  {
24467
24577
  id,
24468
24578
  value: subtitles || "",
24469
- onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _532 => _532(e.target.value)]),
24579
+ onChange: (e) => _optionalChain([onSubtitlesChange, 'optionalCall', _529 => _529(e.target.value)]),
24470
24580
  placeholder,
24471
24581
  disabled: disabled || !onSubtitlesChange,
24472
24582
  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",
@@ -24695,7 +24805,7 @@ var AIEnrichSection = ({
24695
24805
  }) => {
24696
24806
  const hasResults = status === "success" || status === "error";
24697
24807
  const shouldDisable = disabled || !canEnrich;
24698
- const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _533 => _533.filter, 'call', _534 => _534((f) => !f.isFilled)]) || [];
24808
+ const unfilledFields = _optionalChain([requiredFields, 'optionalAccess', _530 => _530.filter, 'call', _531 => _531((f) => !f.isFilled)]) || [];
24699
24809
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
24700
24810
  "div",
24701
24811
  {
@@ -24727,7 +24837,7 @@ var AIEnrichSection = ({
24727
24837
  {
24728
24838
  id: "ai-enrich-custom-instructions",
24729
24839
  value: _nullishCoalesce(customInstructions, () => ( "")),
24730
- onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _535 => _535(e.target.value)]),
24840
+ onChange: (e) => _optionalChain([onCustomInstructionsChange, 'optionalCall', _532 => _532(e.target.value)]),
24731
24841
  placeholder: customInstructionsPlaceholder,
24732
24842
  disabled: loading,
24733
24843
  maxLength: customInstructionsMaxLength,
@@ -24849,7 +24959,7 @@ function HighlightVideoSection({
24849
24959
  input.accept = "video/*";
24850
24960
  input.onchange = async (e) => {
24851
24961
  const target = e.target;
24852
- const file = _optionalChain([target, 'access', _536 => _536.files, 'optionalAccess', _537 => _537[0]]);
24962
+ const file = _optionalChain([target, 'access', _533 => _533.files, 'optionalAccess', _534 => _534[0]]);
24853
24963
  if (!file) return;
24854
24964
  setUploadError(null);
24855
24965
  try {
@@ -25276,7 +25386,7 @@ function HighlightVideoPreview({
25276
25386
  input.accept = "video/*";
25277
25387
  input.onchange = async (e) => {
25278
25388
  const target = e.target;
25279
- const file = _optionalChain([target, 'access', _538 => _538.files, 'optionalAccess', _539 => _539[0]]);
25389
+ const file = _optionalChain([target, 'access', _535 => _535.files, 'optionalAccess', _536 => _536[0]]);
25280
25390
  if (!file) return;
25281
25391
  await onUpload(file);
25282
25392
  };
@@ -25460,7 +25570,7 @@ function HighlightVideoCombinedSection({
25460
25570
  input.accept = "video/*";
25461
25571
  input.onchange = async (e) => {
25462
25572
  const target = e.target;
25463
- const file = _optionalChain([target, 'access', _540 => _540.files, 'optionalAccess', _541 => _541[0]]);
25573
+ const file = _optionalChain([target, 'access', _537 => _537.files, 'optionalAccess', _538 => _538[0]]);
25464
25574
  if (!file) return;
25465
25575
  await onUpload(file);
25466
25576
  };
@@ -26159,19 +26269,19 @@ function NotificationsProvider({
26159
26269
  }, []);
26160
26270
  const markRead = _react.useCallback.call(void 0, (id) => {
26161
26271
  dispatch({ type: "markRead", id });
26162
- void _optionalChain([actionsRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.onMarkRead, 'optionalCall', _544 => _544(id)]);
26272
+ void _optionalChain([actionsRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.onMarkRead, 'optionalCall', _541 => _541(id)]);
26163
26273
  }, []);
26164
26274
  const markAllRead = _react.useCallback.call(void 0, () => {
26165
26275
  dispatch({ type: "markAllRead" });
26166
- void _optionalChain([actionsRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.onMarkAllRead, 'optionalCall', _547 => _547()]);
26276
+ void _optionalChain([actionsRef, 'access', _542 => _542.current, 'optionalAccess', _543 => _543.onMarkAllRead, 'optionalCall', _544 => _544()]);
26167
26277
  }, []);
26168
26278
  const markSettled = _react.useCallback.call(void 0, (id) => {
26169
26279
  dispatch({ type: "markSettled", id });
26170
- void _optionalChain([actionsRef, 'access', _548 => _548.current, 'optionalAccess', _549 => _549.onMarkSettled, 'optionalCall', _550 => _550(id)]);
26280
+ void _optionalChain([actionsRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.onMarkSettled, 'optionalCall', _547 => _547(id)]);
26171
26281
  }, []);
26172
26282
  const remove = _react.useCallback.call(void 0, (id) => {
26173
26283
  dispatch({ type: "remove", id });
26174
- void _optionalChain([actionsRef, 'access', _551 => _551.current, 'optionalAccess', _552 => _552.onRemove, 'optionalCall', _553 => _553(id)]);
26284
+ void _optionalChain([actionsRef, 'access', _548 => _548.current, 'optionalAccess', _549 => _549.onRemove, 'optionalCall', _550 => _550(id)]);
26175
26285
  }, []);
26176
26286
  const clear = _react.useCallback.call(void 0, () => dispatch({ type: "clear" }), []);
26177
26287
  const open = _react.useCallback.call(void 0, () => setIsOpen(true), []);
@@ -26180,14 +26290,14 @@ function NotificationsProvider({
26180
26290
  const setShowPopups = _react.useCallback.call(void 0,
26181
26291
  (value2) => {
26182
26292
  setShowPopupsState(value2);
26183
- _optionalChain([onShowPopupsChange, 'optionalCall', _554 => _554(value2)]);
26293
+ _optionalChain([onShowPopupsChange, 'optionalCall', _551 => _551(value2)]);
26184
26294
  },
26185
26295
  [onShowPopupsChange]
26186
26296
  );
26187
26297
  const setShowDesktopPopups = _react.useCallback.call(void 0,
26188
26298
  (value2) => {
26189
26299
  setShowDesktopPopupsState(value2);
26190
- _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _555 => _555(value2)]);
26300
+ _optionalChain([onShowDesktopPopupsChange, 'optionalCall', _552 => _552(value2)]);
26191
26301
  },
26192
26302
  [onShowDesktopPopupsChange]
26193
26303
  );
@@ -26303,7 +26413,7 @@ var AppLayoutDrawerRoot = ({
26303
26413
  const handleOpenChange = _react.useCallback.call(void 0,
26304
26414
  (next) => {
26305
26415
  if (!isControlled) setInternalOpen(next);
26306
- _optionalChain([onOpenChange, 'optionalCall', _556 => _556(next)]);
26416
+ _optionalChain([onOpenChange, 'optionalCall', _553 => _553(next)]);
26307
26417
  },
26308
26418
  [isControlled, onOpenChange]
26309
26419
  );
@@ -26320,9 +26430,9 @@ var AppLayoutDrawerRoot = ({
26320
26430
  }
26321
26431
  }));
26322
26432
  _react.useEffect.call(void 0, () => {
26323
- if (open) _optionalChain([coordination, 'optionalAccess', _557 => _557.notifyDrawerDidOpen, 'call', _558 => _558(selfHandle)]);
26433
+ if (open) _optionalChain([coordination, 'optionalAccess', _554 => _554.notifyDrawerDidOpen, 'call', _555 => _555(selfHandle)]);
26324
26434
  }, [open, coordination, selfHandle]);
26325
- _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _559 => _559.registerDrawer, 'call', _560 => _560(selfHandle)]), [coordination, selfHandle]);
26435
+ _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _556 => _556.registerDrawer, 'call', _557 => _557(selfHandle)]), [coordination, selfHandle]);
26326
26436
  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 }) });
26327
26437
  };
26328
26438
  AppLayoutDrawerRoot.displayName = "AppLayoutDrawer";
@@ -26675,10 +26785,10 @@ var AppLayoutDrawerContent = _react.forwardRef.call(void 0,
26675
26785
  ),
26676
26786
  style,
26677
26787
  onInteractOutside: (event) => {
26678
- _optionalChain([onInteractOutside, 'optionalCall', _561 => _561(event)]);
26788
+ _optionalChain([onInteractOutside, 'optionalCall', _558 => _558(event)]);
26679
26789
  if (event.defaultPrevented) return;
26680
26790
  const target = event.target;
26681
- const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _562 => _562.contains, 'call', _563 => _563(target)]);
26791
+ const isInsideContainer = !!target && !!_optionalChain([portalContainer, 'optionalAccess', _559 => _559.contains, 'call', _560 => _560(target)]);
26682
26792
  if (!isInsideContainer) {
26683
26793
  event.preventDefault();
26684
26794
  return;
@@ -26781,7 +26891,7 @@ function NotificationTile({
26781
26891
  if (!counting) return void 0;
26782
26892
  const remaining = Math.max(0, liveDurationMs - initialElapsed);
26783
26893
  const timer = window.setTimeout(() => {
26784
- _optionalChain([onSettle, 'optionalCall', _564 => _564(id)]);
26894
+ _optionalChain([onSettle, 'optionalCall', _561 => _561(id)]);
26785
26895
  }, remaining);
26786
26896
  return () => window.clearTimeout(timer);
26787
26897
  }, [id, counting, initialElapsed, liveDurationMs, onSettle]);
@@ -26821,7 +26931,7 @@ function NotificationTile({
26821
26931
  active: isLive,
26822
26932
  label: "Dismiss notification",
26823
26933
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGSQM4PDRcjs.XmarkIcon, { size: 16 }),
26824
- onClick: () => _optionalChain([onSettle, 'optionalCall', _565 => _565(id)])
26934
+ onClick: () => _optionalChain([onSettle, 'optionalCall', _562 => _562(id)])
26825
26935
  },
26826
26936
  {
26827
26937
  active: !isLive,
@@ -27009,7 +27119,7 @@ function DrawerScrollList({
27009
27119
  if (!sentinel || !root) return void 0;
27010
27120
  const observer = new IntersectionObserver(
27011
27121
  (entries) => {
27012
- if (_optionalChain([entries, 'access', _566 => _566[0], 'optionalAccess', _567 => _567.isIntersecting])) _optionalChain([loadMoreRef, 'access', _568 => _568.current, 'optionalCall', _569 => _569()]);
27122
+ if (_optionalChain([entries, 'access', _563 => _563[0], 'optionalAccess', _564 => _564.isIntersecting])) _optionalChain([loadMoreRef, 'access', _565 => _565.current, 'optionalCall', _566 => _566()]);
27013
27123
  },
27014
27124
  { root, rootMargin: loadMoreRootMargin }
27015
27125
  );
@@ -27024,7 +27134,7 @@ function DrawerScrollList({
27024
27134
  className: "flex flex-1 flex-col gap-[var(--spacing-system-xs)] overflow-y-auto px-[var(--spacing-system-m)]",
27025
27135
  children: isEmpty && !isLoadingMore ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyState, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
27026
27136
  unreadNotifications.map((n) => {
27027
- const custom = _optionalChain([renderTile, 'optionalCall', _570 => _570(n, { onComplete, onSettle, liveDurationMs })]);
27137
+ const custom = _optionalChain([renderTile, 'optionalCall', _567 => _567(n, { onComplete, onSettle, liveDurationMs })]);
27028
27138
  if (custom) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: custom }, n.id);
27029
27139
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
27030
27140
  NotificationTile,
@@ -27144,7 +27254,7 @@ function NotificationPopups({
27144
27254
  }) {
27145
27255
  const ctx = useOptionalNotifications();
27146
27256
  const [now, setNow] = _react.useState.call(void 0, () => Date.now());
27147
- const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _571 => _571.notifications, 'access', _572 => _572.some, 'call', _573 => _573((n) => !n.read && !n.settled)]));
27257
+ const hasAgeingNotifications = Boolean(_optionalChain([ctx, 'optionalAccess', _568 => _568.notifications, 'access', _569 => _569.some, 'call', _570 => _570((n) => !n.read && !n.settled)]));
27148
27258
  _react.useEffect.call(void 0, () => {
27149
27259
  if (!hasAgeingNotifications) return void 0;
27150
27260
  const id = setInterval(() => setNow(Date.now()), 500);
@@ -27187,7 +27297,7 @@ function NotificationPopups({
27187
27297
  className
27188
27298
  ),
27189
27299
  children: live.map((n) => {
27190
- const custom = _optionalChain([renderTile, 'optionalCall', _574 => _574(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
27300
+ const custom = _optionalChain([renderTile, 'optionalCall', _571 => _571(n, { onComplete: markRead, onSettle: markSettled, liveDurationMs })]);
27191
27301
  if (custom) {
27192
27302
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pointer-events-auto", children: custom }, n.id);
27193
27303
  }
@@ -27226,21 +27336,21 @@ function NotificationPopups({
27226
27336
  // src/components/features/notifications/types.ts
27227
27337
  var ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = "ADMIN_APPROVAL_REQUEST";
27228
27338
  function isApprovalNotification(notification) {
27229
- return _optionalChain([notification, 'access', _575 => _575.meta, 'optionalAccess', _576 => _576.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
27339
+ return _optionalChain([notification, 'access', _572 => _572.meta, 'optionalAccess', _573 => _573.contextType]) === ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE;
27230
27340
  }
27231
27341
  function getApprovalMeta(notification) {
27232
27342
  if (!isApprovalNotification(notification)) return null;
27233
27343
  const meta = notification.meta;
27234
- const approvalRequestId = _optionalChain([meta, 'optionalAccess', _577 => _577.approvalRequestId]);
27235
- const toolCalls = _optionalChain([meta, 'optionalAccess', _578 => _578.toolCalls]);
27344
+ const approvalRequestId = _optionalChain([meta, 'optionalAccess', _574 => _574.approvalRequestId]);
27345
+ const toolCalls = _optionalChain([meta, 'optionalAccess', _575 => _575.toolCalls]);
27236
27346
  if (typeof approvalRequestId !== "string" || !Array.isArray(toolCalls)) return null;
27237
27347
  return {
27238
27348
  approvalRequestId,
27239
- dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.dialogId]), () => ( null)),
27240
- ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _580 => _580.ticketId]), () => ( null)),
27241
- approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _581 => _581.approvalType]), () => ( null)),
27242
- resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _582 => _582.resolution]), () => ( null)),
27243
- resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _583 => _583.resolvedByName]), () => ( null)),
27349
+ dialogId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _576 => _576.dialogId]), () => ( null)),
27350
+ ticketId: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _577 => _577.ticketId]), () => ( null)),
27351
+ approvalType: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _578 => _578.approvalType]), () => ( null)),
27352
+ resolution: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _579 => _579.resolution]), () => ( null)),
27353
+ resolvedByName: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _580 => _580.resolvedByName]), () => ( null)),
27244
27354
  toolCalls
27245
27355
  };
27246
27356
  }
@@ -27290,7 +27400,7 @@ function ApprovalRequestNotificationTile({
27290
27400
  const [processing, setProcessing] = _react.useState.call(void 0, false);
27291
27401
  const [localStatus, setLocalStatus] = _react.useState.call(void 0, null);
27292
27402
  const approval = getApprovalMeta(notification);
27293
- const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _584 => _584.resolution]));
27403
+ const resolvedStatus = resolutionToStatus(_optionalChain([approval, 'optionalAccess', _581 => _581.resolution]));
27294
27404
  const status = resolvedStatus !== "pending" ? resolvedStatus : _nullishCoalesce(localStatus, () => ( "pending"));
27295
27405
  const batchData = _react.useMemo.call(void 0, () => approval ? approvalMetaToBatchData(approval) : null, [approval]);
27296
27406
  const { innerRef, containerStyle } = _chunkG45RGWHFcjs.useCollapsible.call(void 0, { expanded });
@@ -27612,7 +27722,7 @@ function TimeTrackerPanel({
27612
27722
  error: showFieldError ? "Required if no notes added" : void 0,
27613
27723
  disableClientFilter: !!onTicketSearch,
27614
27724
  onInputChange: (value, reason) => {
27615
- if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _585 => _585(value)]);
27725
+ if (reason === "input") _optionalChain([onTicketSearch, 'optionalCall', _582 => _582(value)]);
27616
27726
  }
27617
27727
  }
27618
27728
  ),
@@ -27627,7 +27737,7 @@ function TimeTrackerPanel({
27627
27737
  disabled: customerLocked,
27628
27738
  disableClientFilter: !!onCustomerSearch,
27629
27739
  onInputChange: (value, reason) => {
27630
- if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _586 => _586(value)]);
27740
+ if (reason === "input") _optionalChain([onCustomerSearch, 'optionalCall', _583 => _583(value)]);
27631
27741
  },
27632
27742
  startAdornment: customerStartAdornment,
27633
27743
  renderOption: renderCustomerOption
@@ -27729,7 +27839,7 @@ function LastEntryRow({ entry, onClick }) {
27729
27839
  {
27730
27840
  variant: "outline",
27731
27841
  size: "icon",
27732
- onClick: () => _optionalChain([onClick, 'optionalCall', _587 => _587(entry)]),
27842
+ onClick: () => _optionalChain([onClick, 'optionalCall', _584 => _584(entry)]),
27733
27843
  disabled: !onClick,
27734
27844
  "aria-label": `Open entry: ${entry.title}`,
27735
27845
  className: "h-12 w-12 shrink-0 [&_svg]:!size-6",
@@ -27813,28 +27923,28 @@ function HeaderButton({
27813
27923
  function TimeTrackerHeaderButton({ className, disabled }) {
27814
27924
  const ctx = useOptionalTimeTracker();
27815
27925
  const elapsedLabel = useTrackerClock({
27816
- status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _588 => _588.status]), () => ( "ready")),
27817
- runningSince: _optionalChain([ctx, 'optionalAccess', _589 => _589.runningSince]),
27818
- accumulatedMs: _optionalChain([ctx, 'optionalAccess', _590 => _590.accumulatedMs])
27926
+ status: _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _585 => _585.status]), () => ( "ready")),
27927
+ runningSince: _optionalChain([ctx, 'optionalAccess', _586 => _586.runningSince]),
27928
+ accumulatedMs: _optionalChain([ctx, 'optionalAccess', _587 => _587.accumulatedMs])
27819
27929
  });
27820
27930
  const layoutContainer = useAppLayoutDrawerContainer();
27821
27931
  const coordination = useAppLayoutDrawerCoordination();
27822
- const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _591 => _591.isOpen]), () => ( false));
27932
+ const isOpen = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _588 => _588.isOpen]), () => ( false));
27823
27933
  const isOpenRef = _react.useRef.call(void 0, isOpen);
27824
- const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _592 => _592.close]));
27934
+ const closeRef = _react.useRef.call(void 0, _optionalChain([ctx, 'optionalAccess', _589 => _589.close]));
27825
27935
  _react.useEffect.call(void 0, () => {
27826
27936
  isOpenRef.current = isOpen;
27827
- closeRef.current = _optionalChain([ctx, 'optionalAccess', _593 => _593.close]);
27937
+ closeRef.current = _optionalChain([ctx, 'optionalAccess', _590 => _590.close]);
27828
27938
  });
27829
27939
  const [selfHandle] = _react.useState.call(void 0, () => ({
27830
27940
  close: () => {
27831
- if (isOpenRef.current) _optionalChain([closeRef, 'access', _594 => _594.current, 'optionalCall', _595 => _595()]);
27941
+ if (isOpenRef.current) _optionalChain([closeRef, 'access', _591 => _591.current, 'optionalCall', _592 => _592()]);
27832
27942
  }
27833
27943
  }));
27834
27944
  _react.useEffect.call(void 0, () => {
27835
- if (isOpen) _optionalChain([coordination, 'optionalAccess', _596 => _596.notifyDrawerDidOpen, 'call', _597 => _597(selfHandle)]);
27945
+ if (isOpen) _optionalChain([coordination, 'optionalAccess', _593 => _593.notifyDrawerDidOpen, 'call', _594 => _594(selfHandle)]);
27836
27946
  }, [isOpen, coordination, selfHandle]);
27837
- _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _598 => _598.registerDrawer, 'call', _599 => _599(selfHandle)]), [coordination, selfHandle]);
27947
+ _react.useEffect.call(void 0, () => _optionalChain([coordination, 'optionalAccess', _595 => _595.registerDrawer, 'call', _596 => _596(selfHandle)]), [coordination, selfHandle]);
27838
27948
  if (!ctx) return null;
27839
27949
  const { open, close, status } = ctx;
27840
27950
  const isPaused = status === "paused";
@@ -27966,7 +28076,7 @@ function autoScrollAncestors(element) {
27966
28076
 
27967
28077
  // src/components/features/board/aim.ts
27968
28078
  var _closestedge = require('@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge');
27969
- 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);
28079
+ 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);
27970
28080
  function laneOf(columns, ticketId) {
27971
28081
  return _nullishCoalesce(columns.find((c) => c.tickets.some((t) => t.id === ticketId)), () => ( null));
27972
28082
  }
@@ -28010,11 +28120,11 @@ function aimToChange(columns, ticketId, aim) {
28010
28120
  const lane = laneOf(columns, ticketId);
28011
28121
  if (!lane) return null;
28012
28122
  const others = othersIn(columns, aim.columnId, ticketId);
28013
- const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _603 => _603[aim.index - 1], 'optionalAccess', _604 => _604.id]), () => ( null));
28014
- const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _605 => _605[aim.index], 'optionalAccess', _606 => _606.id]), () => ( null));
28123
+ const afterTicketId = _nullishCoalesce(_optionalChain([others, 'access', _600 => _600[aim.index - 1], 'optionalAccess', _601 => _601.id]), () => ( null));
28124
+ const beforeTicketId = _nullishCoalesce(_optionalChain([others, 'access', _602 => _602[aim.index], 'optionalAccess', _603 => _603.id]), () => ( null));
28015
28125
  if (lane.id === aim.columnId) {
28016
28126
  const currentIndex = lane.tickets.findIndex((t) => t.id === ticketId);
28017
- if ((_nullishCoalesce(_optionalChain([lane, 'access', _607 => _607.tickets, 'access', _608 => _608[currentIndex - 1], 'optionalAccess', _609 => _609.id]), () => ( null))) === afterTicketId) return null;
28127
+ if ((_nullishCoalesce(_optionalChain([lane, 'access', _604 => _604.tickets, 'access', _605 => _605[currentIndex - 1], 'optionalAccess', _606 => _606.id]), () => ( null))) === afterTicketId) return null;
28018
28128
  }
28019
28129
  return { ticketId, fromColumnId: lane.id, toColumnId: aim.columnId, afterTicketId, beforeTicketId };
28020
28130
  }
@@ -28285,14 +28395,14 @@ function useIsLanding(ticketId) {
28285
28395
  return _react.useContext.call(void 0, LandingCardContext) === ticketId;
28286
28396
  }
28287
28397
  function hasMoveSettled(columns, move) {
28288
- const tickets = _optionalChain([columns, 'access', _610 => _610.find, 'call', _611 => _611((c) => c.id === move.toColumnId), 'optionalAccess', _612 => _612.tickets]);
28398
+ const tickets = _optionalChain([columns, 'access', _607 => _607.find, 'call', _608 => _608((c) => c.id === move.toColumnId), 'optionalAccess', _609 => _609.tickets]);
28289
28399
  if (!tickets) return false;
28290
28400
  const index = tickets.findIndex((t) => t.id === move.ticketId);
28291
28401
  if (index < 0) return false;
28292
28402
  if (move.fromColumnId === move.toColumnId) {
28293
- return (_nullishCoalesce(_optionalChain([tickets, 'access', _613 => _613[index - 1], 'optionalAccess', _614 => _614.id]), () => ( null))) === move.afterTicketId;
28403
+ return (_nullishCoalesce(_optionalChain([tickets, 'access', _610 => _610[index - 1], 'optionalAccess', _611 => _611.id]), () => ( null))) === move.afterTicketId;
28294
28404
  }
28295
- 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)]);
28405
+ 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)]);
28296
28406
  }
28297
28407
 
28298
28408
  // src/components/features/board/ticket-card.tsx
@@ -28317,9 +28427,9 @@ var TICKET_CARD_SHELL = "relative flex flex-col gap-[var(--spacing-system-sf)] r
28317
28427
  function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onReject }) {
28318
28428
  const showNewMessage = !!ticket.hasNewMessage && !!columnColor;
28319
28429
  const newMessageTextColor = columnColor ? _chunkG45RGWHFcjs.getReadableTextColor.call(void 0, columnColor) : void 0;
28320
- const showDeviceRow = !!(_optionalChain([ticket, 'access', _620 => _620.deviceHostnames, 'optionalAccess', _621 => _621.length]) || ticket.organizationName);
28321
- const deviceText = [_optionalChain([ticket, 'access', _622 => _622.deviceHostnames, 'optionalAccess', _623 => _623.join, 'call', _624 => _624(", ")]), ticket.organizationName].filter(Boolean).join(", ");
28322
- const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _625 => _625.assignees, 'optionalAccess', _626 => _626.length]) || renderAssignSlot);
28430
+ const showDeviceRow = !!(_optionalChain([ticket, 'access', _617 => _617.deviceHostnames, 'optionalAccess', _618 => _618.length]) || ticket.organizationName);
28431
+ const deviceText = [_optionalChain([ticket, 'access', _619 => _619.deviceHostnames, 'optionalAccess', _620 => _620.join, 'call', _621 => _621(", ")]), ticket.organizationName].filter(Boolean).join(", ");
28432
+ const hasRightSection = !!(ticket.priority || _optionalChain([ticket, 'access', _622 => _622.assignees, 'optionalAccess', _623 => _623.length]) || renderAssignSlot);
28323
28433
  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: [
28324
28434
  ticket.priority && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28325
28435
  _chunkGSQM4PDRcjs.Flag02Icon,
@@ -28328,7 +28438,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
28328
28438
  "aria-label": `Priority: ${ticket.priority}`
28329
28439
  }
28330
28440
  ),
28331
- 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: [
28441
+ 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: [
28332
28442
  ticket.assignees.slice(0, MAX_VISIBLE_ASSIGNEES).map(
28333
28443
  (a) => a.deleted ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
28334
28444
  DeletedUserAvatar,
@@ -28368,7 +28478,7 @@ function TicketCardBody({ ticket, columnColor, renderAssignSlot, onApprove, onRe
28368
28478
  ] }),
28369
28479
  rightSection
28370
28480
  ] }),
28371
- _optionalChain([ticket, 'access', _629 => _629.tags, 'optionalAccess', _630 => _630.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
28481
+ _optionalChain([ticket, 'access', _626 => _626.tags, 'optionalAccess', _627 => _627.length]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TicketTagRow, { tags: ticket.tags }) : null,
28372
28482
  timestampLabel && tooltipLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipProvider, { children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkG45RGWHFcjs.Tooltip, { children: [
28373
28483
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "pointer-events-auto truncate text-ods-text-secondary text-h6", children: timestampLabel }) }),
28374
28484
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkG45RGWHFcjs.TooltipContent, { children: tooltipLabel })
@@ -28435,7 +28545,7 @@ var TicketCard = _react.memo.call(void 0, function TicketCardImpl({
28435
28545
  const isLanding = useIsLanding(ticket.id);
28436
28546
  const aim = useDropAim();
28437
28547
  const closestEdge = aim && aim.columnId === columnId && aim.ticketId === ticket.id ? aim.edge : null;
28438
- const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _631 => _631.ticket, 'access', _632 => _632.id]) === ticket.id;
28548
+ const isSource = isDragging || _optionalChain([aim, 'optionalAccess', _628 => _628.ticket, 'access', _629 => _629.id]) === ticket.id;
28439
28549
  const lift = useBoardLift();
28440
28550
  const handleKeyDown = (e) => {
28441
28551
  if (e.key !== " " || dragDisabled || !lift) return;
@@ -28688,7 +28798,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
28688
28798
  // large ones like the only thing that did.
28689
28799
  getData: ({ input, element: lane, source }) => {
28690
28800
  const nearest = nearestCardIn(lane, input.clientY, String(source.data.ticketId));
28691
- const ticketId = _optionalChain([nearest, 'optionalAccess', _633 => _633.dataset, 'access', _634 => _634.ticketId]);
28801
+ const ticketId = _optionalChain([nearest, 'optionalAccess', _630 => _630.dataset, 'access', _631 => _631.ticketId]);
28692
28802
  if (!nearest || !ticketId) return { type: "column", columnId: column.id };
28693
28803
  return _closestedge.attachClosestEdge.call(void 0,
28694
28804
  { type: "ticket", ticketId, columnId: column.id },
@@ -28700,7 +28810,7 @@ var BoardColumn = _react.memo.call(void 0, function BoardColumnImpl({
28700
28810
  onDrop: () => setIsOver(false)
28701
28811
  });
28702
28812
  }, [column.id, column.dropDisabled, column.allowedFromColumns, collapsed, touchMode]);
28703
- const handleToggleCollapse = _react.useCallback.call(void 0, () => _optionalChain([onToggleCollapse, 'optionalCall', _635 => _635(column.id)]), [onToggleCollapse, column.id]);
28813
+ const handleToggleCollapse = _react.useCallback.call(void 0, () => _optionalChain([onToggleCollapse, 'optionalCall', _632 => _632(column.id)]), [onToggleCollapse, column.id]);
28704
28814
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
28705
28815
  "div",
28706
28816
  {
@@ -28779,7 +28889,7 @@ function ColumnBody({
28779
28889
  const observer = new IntersectionObserver(
28780
28890
  (entries) => {
28781
28891
  if (entries.some((e) => e.isIntersecting)) {
28782
- _optionalChain([loadMoreRef, 'access', _636 => _636.current, 'optionalCall', _637 => _637(columnIdRef.current)]);
28892
+ _optionalChain([loadMoreRef, 'access', _633 => _633.current, 'optionalCall', _634 => _634(columnIdRef.current)]);
28783
28893
  }
28784
28894
  },
28785
28895
  { root, rootMargin: loadMoreRootMargin }
@@ -28804,7 +28914,7 @@ function ColumnBody({
28804
28914
  ticket: t,
28805
28915
  columnId: column.id,
28806
28916
  columnColor: column.color,
28807
- href: _optionalChain([getTicketHref, 'optionalCall', _638 => _638(t.id)]),
28917
+ href: _optionalChain([getTicketHref, 'optionalCall', _635 => _635(t.id)]),
28808
28918
  renderAssignSlot,
28809
28919
  onApprove,
28810
28920
  onReject,
@@ -28980,7 +29090,7 @@ function DragBoard({
28980
29090
  const [landing, setLanding] = _react.useState.call(void 0, null);
28981
29091
  const landingTimer = _react.useRef.call(void 0, null);
28982
29092
  const pointRef = _react.useRef.call(void 0, { x: 0, y: 0 });
28983
- 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]);
29093
+ 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]);
28984
29094
  const acceptsLifted = _react.useCallback.call(void 0,
28985
29095
  (fromColumnId) => (column) => {
28986
29096
  if (column.dropDisabled || collapsed[column.id]) return false;
@@ -28994,7 +29104,7 @@ function DragBoard({
28994
29104
  const start = initialAim(view, ticketId);
28995
29105
  if (!start) return;
28996
29106
  setLifted({ ticketId, aim: start });
28997
- 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"));
29107
+ 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"));
28998
29108
  setAnnouncement(`${title} lifted. Use the arrow keys to move it, space to drop it, escape to put it back.`);
28999
29109
  },
29000
29110
  [view]
@@ -29019,11 +29129,11 @@ function DragBoard({
29019
29129
  const walk = _react.useCallback.call(void 0,
29020
29130
  (key) => {
29021
29131
  if (!lifted) return;
29022
- const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _647 => _647(view, lifted.ticketId), 'optionalAccess', _648 => _648.id]), () => ( lifted.aim.columnId));
29132
+ const from = _nullishCoalesce(_optionalChain([laneOf, 'call', _644 => _644(view, lifted.ticketId), 'optionalAccess', _645 => _645.id]), () => ( lifted.aim.columnId));
29023
29133
  const next = moveAim(view, lifted.ticketId, lifted.aim, key, acceptsLifted(from));
29024
29134
  if (next === lifted.aim) return;
29025
29135
  setLifted({ ...lifted, aim: next });
29026
- const total = (_nullishCoalesce(_optionalChain([view, 'access', _649 => _649.find, 'call', _650 => _650((c) => c.id === next.columnId), 'optionalAccess', _651 => _651.tickets]), () => ( []))).filter(
29136
+ const total = (_nullishCoalesce(_optionalChain([view, 'access', _646 => _646.find, 'call', _647 => _647((c) => c.id === next.columnId), 'optionalAccess', _648 => _648.tickets]), () => ( []))).filter(
29027
29137
  (t) => t.id !== lifted.ticketId
29028
29138
  ).length;
29029
29139
  setAnnouncement(`${laneLabel(next.columnId)}, position ${next.index + 1} of ${total + 1}.`);
@@ -29050,11 +29160,11 @@ function DragBoard({
29050
29160
  }, [lifted, drop, walk]);
29051
29161
  _react.useEffect.call(void 0, () => {
29052
29162
  if (!lifted) return;
29053
- _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" })]);
29163
+ _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" })]);
29054
29164
  }, [lifted]);
29055
29165
  const keyboardAim = _react.useMemo.call(void 0, () => {
29056
29166
  if (!lifted) return null;
29057
- 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)]);
29167
+ 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)]);
29058
29168
  if (!ticket) return null;
29059
29169
  const anchor = aimToChange(view, lifted.ticketId, lifted.aim) ? aimAnchor(view, lifted.ticketId, lifted.aim) : { ticketId: null, edge: null };
29060
29170
  return { columnId: lifted.aim.columnId, ...anchor, ticket };
@@ -29076,7 +29186,7 @@ function DragBoard({
29076
29186
  return { columnId: slot.columnId, ...anchor, ticket };
29077
29187
  };
29078
29188
  const aimAt = (source, targets) => {
29079
- const next = readAim(source, _optionalChain([targets, 'access', _661 => _661[0], 'optionalAccess', _662 => _662.data]));
29189
+ const next = readAim(source, _optionalChain([targets, 'access', _658 => _658[0], 'optionalAccess', _659 => _659.data]));
29080
29190
  setAim((prev) => isSameAim(prev, next) ? prev : next);
29081
29191
  };
29082
29192
  return _combine.combine.call(void 0,
@@ -29105,7 +29215,7 @@ function DragBoard({
29105
29215
  setLanding(null);
29106
29216
  dragGeometry.current = {
29107
29217
  ticket,
29108
- columnColor: _optionalChain([columnsRef, 'access', _663 => _663.current, 'access', _664 => _664.find, 'call', _665 => _665((c) => c.id === source.data.columnId), 'optionalAccess', _666 => _666.color]),
29218
+ columnColor: _optionalChain([columnsRef, 'access', _660 => _660.current, 'access', _661 => _661.find, 'call', _662 => _662((c) => c.id === source.data.columnId), 'optionalAccess', _663 => _663.color]),
29109
29219
  width: rect.width,
29110
29220
  grabX: clientX - rect.left,
29111
29221
  grabY: clientY - rect.top
@@ -29122,7 +29232,7 @@ function DragBoard({
29122
29232
  setAim(null);
29123
29233
  const change = resolveBoardDrop(columnsRef.current, {
29124
29234
  source: source.data,
29125
- target: _optionalChain([location, 'access', _667 => _667.current, 'access', _668 => _668.dropTargets, 'access', _669 => _669[0], 'optionalAccess', _670 => _670.data])
29235
+ target: _optionalChain([location, 'access', _664 => _664.current, 'access', _665 => _665.dropTargets, 'access', _666 => _666[0], 'optionalAccess', _667 => _667.data])
29126
29236
  });
29127
29237
  if (!change) return;
29128
29238
  setPendingMove({
@@ -29155,7 +29265,7 @@ function DragBoard({
29155
29265
  return void 0;
29156
29266
  }
29157
29267
  const to = card.getBoundingClientRect();
29158
- const lane = _optionalChain([nearestScrollableAncestor, 'call', _671 => _671(card), 'optionalAccess', _672 => _672.getBoundingClientRect, 'call', _673 => _673()]);
29268
+ const lane = _optionalChain([nearestScrollableAncestor, 'call', _668 => _668(card), 'optionalAccess', _669 => _669.getBoundingClientRect, 'call', _670 => _670()]);
29159
29269
  if (lane && (to.top < lane.top || to.bottom > lane.bottom)) {
29160
29270
  finish();
29161
29271
  return void 0;
@@ -29214,8 +29324,8 @@ function DragBoard({
29214
29324
  children: view.map((column, i) => {
29215
29325
  const prev = view[i - 1];
29216
29326
  const next = view[i + 1];
29217
- const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _674 => _674.system]));
29218
- const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _675 => _675.system]));
29327
+ const joinLeft = !!(column.system && _optionalChain([prev, 'optionalAccess', _671 => _671.system]));
29328
+ const joinRight = !!(column.system && _optionalChain([next, 'optionalAccess', _672 => _672.system]));
29219
29329
  const showGap = i > 0 && !joinLeft;
29220
29330
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
29221
29331
  showGap && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "aria-hidden": true, className: "w-[var(--spacing-system-mf)] shrink-0" }),
@@ -29395,13 +29505,13 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
29395
29505
  const [flipTick, setFlipTick] = _react.useState.call(void 0, 0);
29396
29506
  const flipTimer = _react.useRef.call(void 0, null);
29397
29507
  const readItems = _react.useCallback.call(void 0,
29398
- () => [..._nullishCoalesce(_optionalChain([listRef, 'access', _676 => _676.current, 'optionalAccess', _677 => _677.querySelectorAll, 'call', _678 => _678(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
29508
+ () => [..._nullishCoalesce(_optionalChain([listRef, 'access', _673 => _673.current, 'optionalAccess', _674 => _674.querySelectorAll, 'call', _675 => _675(`[${SORTABLE_ITEM_ATTRIBUTE}]`)]), () => ( []))],
29399
29509
  []
29400
29510
  );
29401
29511
  const reorder = _react.useCallback.call(void 0,
29402
29512
  (from, to) => {
29403
29513
  if (from === to) return;
29404
- const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _679 => _679.current, 'optionalCall', _680 => _680(from)]), () => ( "Item"));
29514
+ const label = _nullishCoalesce(_optionalChain([getItemLabelRef, 'access', _676 => _676.current, 'optionalCall', _677 => _677(from)]), () => ( "Item"));
29405
29515
  setAnnouncement(`${label} moved to position ${to + 1} of ${readItems().length}.`);
29406
29516
  onReorderRef.current(from, to);
29407
29517
  },
@@ -29489,7 +29599,7 @@ function SortableList({ onReorder, getItemLabel, disabled = false, className, ch
29489
29599
  moving.push(item);
29490
29600
  }
29491
29601
  if (moving.length === 0) return;
29492
- void _optionalChain([listRef, 'access', _681 => _681.current, 'optionalAccess', _682 => _682.offsetHeight]);
29602
+ void _optionalChain([listRef, 'access', _678 => _678.current, 'optionalAccess', _679 => _679.offsetHeight]);
29493
29603
  for (const item of moving) {
29494
29604
  item.style.transition = `transform ${DROP_MS2}ms ${EASING}`;
29495
29605
  item.style.transform = "";
@@ -29526,8 +29636,8 @@ function SortableMoveButtons({ index, count, label, className }) {
29526
29636
  if (to < 0 || to >= count) return;
29527
29637
  reorder(index, to);
29528
29638
  requestAnimationFrame(() => {
29529
- if (step === -1 && to === 0) _optionalChain([downRef, 'access', _683 => _683.current, 'optionalAccess', _684 => _684.focus, 'call', _685 => _685()]);
29530
- if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _686 => _686.current, 'optionalAccess', _687 => _687.focus, 'call', _688 => _688()]);
29639
+ if (step === -1 && to === 0) _optionalChain([downRef, 'access', _680 => _680.current, 'optionalAccess', _681 => _681.focus, 'call', _682 => _682()]);
29640
+ if (step === 1 && to === count - 1) _optionalChain([upRef, 'access', _683 => _683.current, 'optionalAccess', _684 => _684.focus, 'call', _685 => _685()]);
29531
29641
  });
29532
29642
  };
29533
29643
  const subject = _nullishCoalesce(label, () => ( "item"));
@@ -29575,7 +29685,7 @@ function useSortableItem() {
29575
29685
  const [handle, setHandle] = _react.useState.call(void 0, null);
29576
29686
  const [isDragging, setIsDragging] = _react.useState.call(void 0, false);
29577
29687
  const itemRef = _react.useCallback.call(void 0, (node) => {
29578
- _optionalChain([node, 'optionalAccess', _689 => _689.setAttribute, 'call', _690 => _690(SORTABLE_ITEM_ATTRIBUTE, "")]);
29688
+ _optionalChain([node, 'optionalAccess', _686 => _686.setAttribute, 'call', _687 => _687(SORTABLE_ITEM_ATTRIBUTE, "")]);
29579
29689
  setItem(node);
29580
29690
  }, []);
29581
29691
  _react.useEffect.call(void 0, () => {
@@ -29605,7 +29715,7 @@ function useSortableItem() {
29605
29715
  if (from < 0 || to < 0 || to >= items.length) return;
29606
29716
  event.preventDefault();
29607
29717
  reorder(from, to);
29608
- requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _691 => _691.focus, 'call', _692 => _692()]));
29718
+ requestAnimationFrame(() => _optionalChain([handle, 'optionalAccess', _688 => _688.focus, 'call', _689 => _689()]));
29609
29719
  },
29610
29720
  [inert, readItems, reorder, handle]
29611
29721
  );
@@ -29627,7 +29737,7 @@ function TicketStatusConfigList({
29627
29737
  onReorder,
29628
29738
  getItemLabel,
29629
29739
  className: _chunkPRPZBXWZcjs.cn.call(void 0, "flex w-full flex-col gap-[var(--spacing-system-xs)]", className),
29630
- 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))
29740
+ 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))
29631
29741
  }
29632
29742
  );
29633
29743
  }
@@ -30264,5 +30374,7 @@ function SortableRow({
30264
30374
 
30265
30375
 
30266
30376
 
30267
- 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; exports.LazyMount = LazyMount;
30268
- //# sourceMappingURL=chunk-3F7V7GFU.cjs.map
30377
+
30378
+
30379
+ 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.PasswordInput = PasswordInput; exports.AccountDetailsFields = AccountDetailsFields; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.LabeledDivider = LabeledDivider; 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; exports.LazyMount = LazyMount;
30380
+ //# sourceMappingURL=chunk-A6ETQEWK.cjs.map