@flamingo-stack/openframe-frontend-core 0.0.585 → 0.0.586-snapshot.20260903151444

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