@flamingo-stack/openframe-frontend-core 0.0.743 → 0.0.744

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 (43) hide show
  1. package/dist/{chunk-YDFKFLDQ.cjs → chunk-2JRCJV3M.cjs} +3 -3
  2. package/dist/{chunk-UL6ZZSL4.cjs → chunk-2UBR53AN.cjs} +2 -2
  3. package/dist/{chunk-YWMUZLU2.cjs → chunk-35IQLGV3.cjs} +33 -33
  4. package/dist/{chunk-IRWJKVVZ.cjs → chunk-65LJNDR2.cjs} +9 -9
  5. package/dist/{chunk-SQHTX5XP.cjs → chunk-AT6ZI4CO.cjs} +2 -2
  6. package/dist/{chunk-NGUJVM6O.cjs → chunk-FTYQS6VI.cjs} +3 -3
  7. package/dist/{chunk-6XCQXGQA.cjs → chunk-H62FNZGG.cjs} +11 -11
  8. package/dist/{chunk-TKASH5YC.cjs → chunk-HHL23RFC.cjs} +33 -33
  9. package/dist/{chunk-WCY35GB5.cjs → chunk-HJ4KGA2M.cjs} +76 -76
  10. package/dist/{chunk-MT7ELGCV.cjs → chunk-HMSUYWSB.cjs} +2 -2
  11. package/dist/{chunk-XJO5ZHO6.cjs → chunk-HTQJYN47.cjs} +13 -13
  12. package/dist/{chunk-ZP5DFF3Q.cjs → chunk-NURAL5HD.cjs} +5 -5
  13. package/dist/{chunk-BM6JZRVD.cjs → chunk-OC2LBQQJ.cjs} +25 -1
  14. package/dist/{chunk-MLZKPDPZ.cjs → chunk-PYWHDPVC.cjs} +22 -22
  15. package/dist/{chunk-BNTELSHZ.cjs → chunk-QSO56JZ2.cjs} +55 -55
  16. package/dist/{chunk-Y2FN3E32.cjs → chunk-QZYF2YQ3.cjs} +4 -4
  17. package/dist/{cloud-tenants-DZC3ACG6.cjs → cloud-tenants-JPXAXSPE.cjs} +3 -3
  18. package/dist/components/case-studies/index.cjs +11 -11
  19. package/dist/components/chat/index.cjs +2 -2
  20. package/dist/components/chat/utils/history-merge.d.ts.map +1 -1
  21. package/dist/components/chat/utils/history-merge.js +25 -1
  22. package/dist/components/contact/index.cjs +4 -4
  23. package/dist/components/docs/index.cjs +7 -7
  24. package/dist/components/embeds/index.cjs +4 -4
  25. package/dist/components/faq/index.cjs +5 -5
  26. package/dist/components/features/index.cjs +3 -3
  27. package/dist/components/help-center-pages/index.cjs +53 -53
  28. package/dist/components/index.cjs +33 -33
  29. package/dist/components/meeting-scheduler/index.cjs +19 -19
  30. package/dist/components/navigation/index.cjs +6 -6
  31. package/dist/components/onboarding-guides/index.cjs +5 -5
  32. package/dist/components/product-demo/index.cjs +7 -7
  33. package/dist/components/tickets/index.cjs +8 -8
  34. package/dist/components/ui/index.cjs +3 -3
  35. package/dist/{devices-MFGE2JQV.cjs → devices-ONC4JOVH.cjs} +4 -4
  36. package/dist/index.cjs +7 -7
  37. package/dist/{knowledge-7VPS2ZBU.cjs → knowledge-G7XU5YST.cjs} +3 -3
  38. package/dist/{logs-M3QPAUH7.cjs → logs-5B7NY4G6.cjs} +11 -11
  39. package/dist/{policies-UAVE6X62.cjs → policies-OYR3SLJN.cjs} +7 -7
  40. package/dist/{scripts-EDQ3IQKW.cjs → scripts-6CWHTY6U.cjs} +8 -8
  41. package/dist/{software-update-B2MZVNPK.cjs → software-update-AJPIY4SQ.cjs} +6 -6
  42. package/package.json +1 -1
  43. package/src/components/chat/utils/history-merge.ts +46 -1
@@ -6,20 +6,20 @@ var _chunkYJRMCFX3cjs = require('./chunk-YJRMCFX3.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkSQHTX5XPcjs = require('./chunk-SQHTX5XP.cjs');
9
+ var _chunkAT6ZI4COcjs = require('./chunk-AT6ZI4CO.cjs');
10
10
 
11
11
 
12
12
 
13
13
 
14
14
 
15
15
 
16
- var _chunkWCY35GB5cjs = require('./chunk-WCY35GB5.cjs');
16
+ var _chunkHJ4KGA2Mcjs = require('./chunk-HJ4KGA2M.cjs');
17
17
 
18
18
 
19
19
  var _chunkU2O5YQRPcjs = require('./chunk-U2O5YQRP.cjs');
20
20
 
21
21
 
22
- var _chunkBM6JZRVDcjs = require('./chunk-BM6JZRVD.cjs');
22
+ var _chunkOC2LBQQJcjs = require('./chunk-OC2LBQQJ.cjs');
23
23
 
24
24
 
25
25
 
@@ -138,14 +138,14 @@ function OnboardingGuidesCatalogView({
138
138
  });
139
139
  };
140
140
  const source = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _6 => _6.source]), () => ( "openframe"));
141
- const docSearch = _chunkSQHTX5XPcjs.useDocSearch.call(void 0, {
141
+ const docSearch = _chunkAT6ZI4COcjs.useDocSearch.call(void 0, {
142
142
  source,
143
143
  baseRoute: basePath,
144
144
  onNavigate: (path) => router.push(path),
145
145
  tableIds: ["onboarding-guides"]
146
146
  });
147
147
  const defaultRenderCard = (guide) => {
148
- const cta = _chunkBM6JZRVDcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
148
+ const cta = _chunkOC2LBQQJcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _7 => _7.composeContentUrl]), {
149
149
  type: "onboarding_guide",
150
150
  slug: guide.slug,
151
151
  basePath,
@@ -156,7 +156,7 @@ function OnboardingGuidesCatalogView({
156
156
  const renderCardFn = _nullishCoalesce(renderCard, () => ( defaultRenderCard));
157
157
  const preControls = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
158
158
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
159
- _chunkSQHTX5XPcjs.DocSearchBar,
159
+ _chunkAT6ZI4COcjs.DocSearchBar,
160
160
  {
161
161
  placeholder: "Search onboarding guides, releases, case studies\u2026",
162
162
  query: docSearch.query,
@@ -168,7 +168,7 @@ function OnboardingGuidesCatalogView({
168
168
  }
169
169
  ),
170
170
  sections.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
171
- _chunkWCY35GB5cjs.FilterPillRow,
171
+ _chunkHJ4KGA2Mcjs.FilterPillRow,
172
172
  {
173
173
  label: "Section",
174
174
  selectedValue: activeSection,
@@ -178,7 +178,7 @@ function OnboardingGuidesCatalogView({
178
178
  )
179
179
  ] });
180
180
  if (selfFetch && guidesRes.error) {
181
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
181
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.LoadError, { message: "Failed to load onboarding guides.", onRetry: guidesRes.reload });
182
182
  }
183
183
  if (selfFetch && guidesRes.data == null && isLoading) {
184
184
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OnboardingGuidesCatalogSkeleton, {});
@@ -210,7 +210,7 @@ function OnboardingGuideDetailView({
210
210
  slug,
211
211
  guideEndpoint,
212
212
  related = [],
213
- MarkdownRenderer = _chunkWCY35GB5cjs.RichMarkdownRenderer,
213
+ MarkdownRenderer = _chunkHJ4KGA2Mcjs.RichMarkdownRenderer,
214
214
  renderRelatedCard,
215
215
  backHref,
216
216
  backLabel = "Back to Getting Started",
@@ -222,7 +222,7 @@ function OnboardingGuideDetailView({
222
222
  const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
223
223
  const captions = _chunk7YDF3QBNcjs.useCaptions.call(void 0, );
224
224
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
225
- const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
225
+ const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
226
226
  const url = initialData ? null : slug && guideEndpoint ? guideEndpoint(slug) : null;
227
227
  const { data: guide, isLoading, error, reload } = _chunkJGZEHBBDcjs.useSelfFetch.call(void 0, url, { initialData });
228
228
  const { ref: videoWarmupRef } = _chunk3RFQPQ7Zcjs.useVideoWarmup.call(void 0, {
@@ -230,7 +230,7 @@ function OnboardingGuideDetailView({
230
230
  supabaseStorageOrigin: _optionalChain([runtime, 'optionalAccess', _9 => _9.endpoints, 'access', _10 => _10.supabaseStorageOrigin])
231
231
  });
232
232
  if (error || !guide && !isLoading) {
233
- return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.LoadError, { message: "Guide not found.", onRetry: reload }));
233
+ return renderShell(/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.LoadError, { message: "Guide not found.", onRetry: reload }));
234
234
  }
235
235
  if (!guide) {
236
236
  return renderShell(
@@ -244,7 +244,7 @@ function OnboardingGuideDetailView({
244
244
  // worst), so it's the terminal fallback — no trailing `|| undefined` needed.
245
245
  _chunkI5MSCD57cjs.buildOgPlaceholderUrl.call(void 0, _optionalChain([runtime, 'optionalAccess', _11 => _11.endpoints]), guide.title, { aspect: "wide" });
246
246
  const defaultRenderRelatedCard = (g) => {
247
- const cta = _chunkBM6JZRVDcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
247
+ const cta = _chunkOC2LBQQJcjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _12 => _12.composeContentUrl]), {
248
248
  type: "onboarding_guide",
249
249
  slug: g.slug,
250
250
  basePath,
@@ -262,7 +262,7 @@ function OnboardingGuideDetailView({
262
262
  titleWrap: true,
263
263
  backButton: { label: backLabel, onClick: () => router.push(resolvedBackHref) },
264
264
  children: [
265
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
265
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.EntityTagBadges, { tags: guide.onboarding_guide_tags }),
266
266
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
267
267
  _chunkLJ46XYYPcjs.EntityAuthorCard,
268
268
  {
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkWCY35GB5cjs = require('./chunk-WCY35GB5.cjs');
5
+ var _chunkHJ4KGA2Mcjs = require('./chunk-HJ4KGA2M.cjs');
6
6
 
7
7
 
8
8
 
@@ -17,7 +17,7 @@ var _chunkU2O5YQRPcjs = require('./chunk-U2O5YQRP.cjs');
17
17
  var _chunk4FWURR3Wcjs = require('./chunk-4FWURR3W.cjs');
18
18
 
19
19
 
20
- var _chunkBM6JZRVDcjs = require('./chunk-BM6JZRVD.cjs');
20
+ var _chunkOC2LBQQJcjs = require('./chunk-OC2LBQQJ.cjs');
21
21
 
22
22
 
23
23
 
@@ -203,13 +203,13 @@ function ContactForm({
203
203
  );
204
204
  }),
205
205
  className: "flex flex-grow flex-col space-y-4 content-md:space-y-6",
206
- ..._chunkBM6JZRVDcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
206
+ ..._chunkOC2LBQQJcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
207
207
  children: [
208
208
  !showName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("name") }),
209
209
  !showEmail && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("email") }),
210
210
  !showHelpCategory && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("helpCategory") }),
211
211
  !showMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("message") }),
212
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.HoneypotField, { ...honeypotInputProps }),
212
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.HoneypotField, { ...honeypotInputProps }),
213
213
  extraTopField,
214
214
  showNameEmailRow && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-md:grid-cols-2 content-md:gap-6", children: [
215
215
  showName && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
@@ -334,7 +334,7 @@ function ContactForm({
334
334
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHTRILBJDcjs.RequiredMark, {})
335
335
  ] }),
336
336
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
337
- _chunkWCY35GB5cjs.Textarea,
337
+ _chunkHJ4KGA2Mcjs.Textarea,
338
338
  {
339
339
  id: "message",
340
340
  ...register("message"),
@@ -4482,6 +4482,25 @@ function sharesRequestKey(keys, others) {
4482
4482
  }
4483
4483
  return false;
4484
4484
  }
4485
+ function ticketEventSeqs(messages) {
4486
+ const seqs = /* @__PURE__ */ new Set();
4487
+ for (const m of messages) {
4488
+ if (!Array.isArray(m.content)) continue;
4489
+ for (const seg of m.content) {
4490
+ if (seg.type === "ticket_event" && typeof seg.streamSeq === "number") seqs.add(seg.streamSeq);
4491
+ }
4492
+ }
4493
+ return seqs;
4494
+ }
4495
+ function withoutPersistedTicketEvents(m, persistedSeqs, streamingMessageId) {
4496
+ if (persistedSeqs.size === 0 || !Array.isArray(m.content)) return m;
4497
+ const content = m.content.filter(
4498
+ (seg) => !(seg.type === "ticket_event" && typeof seg.streamSeq === "number" && persistedSeqs.has(seg.streamSeq))
4499
+ );
4500
+ if (content.length === m.content.length) return m;
4501
+ if (content.length === 0 && m.id !== streamingMessageId) return null;
4502
+ return { ...m, content };
4503
+ }
4485
4504
  function userTwinKey(m) {
4486
4505
  if (m.role !== "user" || typeof m.content !== "string" || m.content === "") return "";
4487
4506
  return `${_nullishCoalesce(m.authorType, () => ( "user"))}\0${m.content}`;
@@ -4689,7 +4708,12 @@ function mergeHistoryWithRealtime(input) {
4689
4708
  }
4690
4709
  if (keepRealtime(m)) realtimeMessages.push(m);
4691
4710
  }
4692
- return [...olderThanWindowMessages, ...processedToUse, ...realtimeMessages];
4711
+ const persistedTicketEventSeqs = ticketEventSeqs(processedToUse);
4712
+ const dedupedRealtimeMessages = realtimeMessages.flatMap((m) => {
4713
+ const kept = withoutPersistedTicketEvents(m, persistedTicketEventSeqs, streamingMessageId);
4714
+ return kept ? [kept] : [];
4715
+ });
4716
+ return [...olderThanWindowMessages, ...processedToUse, ...dedupedRealtimeMessages];
4693
4717
  }
4694
4718
  function computeHistoryPrepend(processedHistory, existingMessages) {
4695
4719
  const existingIds = new Set(existingMessages.map((m) => m.id));
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
2
2
 
3
3
 
4
- var _chunkUL6ZZSL4cjs = require('./chunk-UL6ZZSL4.cjs');
4
+ var _chunk2UBR53ANcjs = require('./chunk-2UBR53AN.cjs');
5
5
 
6
6
 
7
7
 
@@ -12,7 +12,7 @@ var _chunkUL6ZZSL4cjs = require('./chunk-UL6ZZSL4.cjs');
12
12
 
13
13
 
14
14
 
15
- var _chunkWCY35GB5cjs = require('./chunk-WCY35GB5.cjs');
15
+ var _chunkHJ4KGA2Mcjs = require('./chunk-HJ4KGA2M.cjs');
16
16
 
17
17
 
18
18
  var _chunkNTGIQP7Ocjs = require('./chunk-NTGIQP7O.cjs');
@@ -32,7 +32,7 @@ var _chunk24I6RFVUcjs = require('./chunk-24I6RFVU.cjs');
32
32
 
33
33
 
34
34
 
35
- var _chunkBM6JZRVDcjs = require('./chunk-BM6JZRVD.cjs');
35
+ var _chunkOC2LBQQJcjs = require('./chunk-OC2LBQQJ.cjs');
36
36
 
37
37
 
38
38
  var _chunk7YDF3QBNcjs = require('./chunk-7YDF3QBN.cjs');
@@ -181,7 +181,7 @@ function NavItemRow({
181
181
  className
182
182
  }) {
183
183
  const label = navLinkLabel(link);
184
- const counter = badge ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.UnreadCountBadge, { count: badge, className: "static shrink-0" }) : null;
184
+ const counter = badge ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.UnreadCountBadge, { count: badge, className: "static shrink-0" }) : null;
185
185
  const singleLine = !link.description && !link.builtOn;
186
186
  const rowClassName = _chunk3ATAYP36cjs.cn.call(void 0,
187
187
  ROW_CLASSES[variant],
@@ -569,7 +569,7 @@ function SiteHeader({
569
569
  leading: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
570
570
  leading,
571
571
  mobile && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
572
- _chunkWCY35GB5cjs.HeaderButton,
572
+ _chunkHJ4KGA2Mcjs.HeaderButton,
573
573
  {
574
574
  className: "border-r border-ods-border lg:hidden",
575
575
  onClick: mobile.onToggle,
@@ -595,7 +595,7 @@ function SiteHeader({
595
595
  centerClassName: "justify-start pl-[var(--spacing-system-xlf)]",
596
596
  cta: hasRight ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
597
597
  mingo && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
598
- _chunkBM6JZRVDcjs.MingoAiButton,
598
+ _chunkOC2LBQQJcjs.MingoAiButton,
599
599
  {
600
600
  source: mingo.source,
601
601
  icon: mingo.icon,
@@ -697,7 +697,7 @@ function MobileNavSheetBody({
697
697
  ] }),
698
698
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain px-5", children: [
699
699
  askAI && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
700
- _chunkBM6JZRVDcjs.MingoAiButton,
700
+ _chunkOC2LBQQJcjs.MingoAiButton,
701
701
  {
702
702
  variant: "field",
703
703
  source: askAI.source,
@@ -875,7 +875,7 @@ function SiteFooter({
875
875
  const columns = nav.footerColumns;
876
876
  const accordion = columns.length > ACCORDION_OVER;
877
877
  const socialRow = _nullishCoalesce(social, () => ( (nav.brand.social.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
878
- _chunkWCY35GB5cjs.SocialIconRow,
878
+ _chunkHJ4KGA2Mcjs.SocialIconRow,
879
879
  {
880
880
  compact: true,
881
881
  links: nav.brand.social.map((link) => ({
@@ -1251,7 +1251,7 @@ var NavigationSidebarItemButton = _react.memo.call(void 0, function NavigationSi
1251
1251
  _react.cloneElement.call(void 0, item.icon, {
1252
1252
  color: isActive && !disabled ? "text-ods-accent" : "text-ods-text-secondary"
1253
1253
  }),
1254
- hasUnread && !showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.UnreadDot, { size: "fixed" })
1254
+ hasUnread && !showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.UnreadDot, { size: "fixed" })
1255
1255
  ] }),
1256
1256
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1257
1257
  "span",
@@ -1544,7 +1544,7 @@ function HeaderGlobalSearch({
1544
1544
  "form",
1545
1545
  {
1546
1546
  onSubmit: handleSubmit,
1547
- ..._chunkBM6JZRVDcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
1547
+ ..._chunkOC2LBQQJcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
1548
1548
  className: _chunk3ATAYP36cjs.cn.call(void 0,
1549
1549
  "flex h-full flex-1 items-center gap-2 px-3",
1550
1550
  // Transparent so the cell inherits the bar's background
@@ -1669,16 +1669,16 @@ function HeaderOrganizationFilter({
1669
1669
  // src/components/navigation/ticket-alerts-button.tsx
1670
1670
 
1671
1671
  function TicketAlertsButton({ href, onNavigate, disabled, className }) {
1672
- const live = _chunkUL6ZZSL4cjs.useOptionalTicketLive.call(void 0, );
1672
+ const live = _chunk2UBR53ANcjs.useOptionalTicketLive.call(void 0, );
1673
1673
  if (!live || !live.authed || live.unreadTotal === 0) return null;
1674
1674
  const targetId = live.nextUnreadTicketId;
1675
- const target = targetId ? _chunkBM6JZRVDcjs.buildTicketOpenHref.call(void 0, href, targetId) : href;
1675
+ const target = targetId ? _chunkOC2LBQQJcjs.buildTicketOpenHref.call(void 0, href, targetId) : href;
1676
1676
  const handleClick = () => {
1677
1677
  if (onNavigate) onNavigate(target);
1678
1678
  else window.location.assign(target);
1679
1679
  };
1680
1680
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1681
- _chunkWCY35GB5cjs.HeaderButton,
1681
+ _chunkHJ4KGA2Mcjs.HeaderButton,
1682
1682
  {
1683
1683
  icon: (
1684
1684
  // Glyph inherits HeaderButton's standard cell coloring (secondary at
@@ -1688,7 +1688,7 @@ function TicketAlertsButton({ href, onNavigate, disabled, className }) {
1688
1688
  // existing while updates are unread — never by tinting the glyph.
1689
1689
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative inline-flex", children: [
1690
1690
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk365ZKGGOcjs.LifeBuoyIcon, { className: "h-6 w-6" }),
1691
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.UnreadCountBadge, { count: live.unreadTotal })
1691
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.UnreadCountBadge, { count: live.unreadTotal })
1692
1692
  ] })
1693
1693
  ),
1694
1694
  "aria-label": `Support tickets \u2014 ${live.unreadTotal} unread ${live.unreadTotal === 1 ? "update" : "updates"}`,
@@ -1764,7 +1764,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1764
1764
  leading: (
1765
1765
  // Mobile: Burger Menu Button
1766
1766
  !isMdUp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1767
- _chunkWCY35GB5cjs.HeaderButton,
1767
+ _chunkHJ4KGA2Mcjs.HeaderButton,
1768
1768
  {
1769
1769
  onClick: onToggleMobileMenu,
1770
1770
  isActive: isMobileMenuOpen,
@@ -1790,7 +1790,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1790
1790
  center: showSearch ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderGlobalSearch, { onSubmit: onSearch, className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full", dimmedClass) }) : void 0,
1791
1791
  sideActions: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1792
1792
  showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1793
- _chunkWCY35GB5cjs.HeaderButton,
1793
+ _chunkHJ4KGA2Mcjs.HeaderButton,
1794
1794
  {
1795
1795
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ74QE57Tcjs.SearchIcon, { className: "h-6 w-6" }),
1796
1796
  "aria-label": "Search",
@@ -1807,7 +1807,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1807
1807
  className: _chunk3ATAYP36cjs.cn.call(void 0, "hidden lg:flex", dimmedClass)
1808
1808
  }
1809
1809
  ),
1810
- showTimeTracker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.TimeTrackerHeaderButton, { disabled, className: _chunk3ATAYP36cjs.cn.call(void 0, cellDivider, dimmedClass) }),
1810
+ showTimeTracker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.TimeTrackerHeaderButton, { disabled, className: _chunk3ATAYP36cjs.cn.call(void 0, cellDivider, dimmedClass) }),
1811
1811
  showNotifications && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1812
1812
  NotificationsHeaderButton,
1813
1813
  {
@@ -1827,7 +1827,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1827
1827
  ),
1828
1828
  isMdUp && showUser && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkL2RMTGOKcjs.DropdownMenu, { children: [
1829
1829
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL2RMTGOKcjs.DropdownMenuTrigger, { asChild: true, disabled, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1830
- _chunkWCY35GB5cjs.HeaderButton,
1830
+ _chunkHJ4KGA2Mcjs.HeaderButton,
1831
1831
  {
1832
1832
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1833
1833
  _chunkABLUMGCIcjs.SquareAvatar,
@@ -1912,12 +1912,12 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
1912
1912
  );
1913
1913
  });
1914
1914
  function NotificationsHeaderButton({ fallbackUnreadCount, disabled, dimmedClass }) {
1915
- const ctx = _chunkWCY35GB5cjs.useOptionalNotifications.call(void 0, );
1915
+ const ctx = _chunkHJ4KGA2Mcjs.useOptionalNotifications.call(void 0, );
1916
1916
  const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _52 => _52.unreadCount]), () => ( fallbackUnreadCount))) > 0;
1917
1917
  const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _53 => _53.isOpen]), () => ( false));
1918
1918
  const onClick = _optionalChain([ctx, 'optionalAccess', _54 => _54.toggle]);
1919
1919
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1920
- _chunkWCY35GB5cjs.HeaderButton,
1920
+ _chunkHJ4KGA2Mcjs.HeaderButton,
1921
1921
  {
1922
1922
  icon: isActive ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWWUSFOJ7cjs.XmarkIcon, { className: "h-6 w-6" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCON36SEJcjs.BellIcon, { className: "h-6 w-6" }),
1923
1923
  showUnreadDot: !isActive && hasUnread,
@@ -2590,7 +2590,7 @@ function AppLayout({
2590
2590
  }),
2591
2591
  []
2592
2592
  );
2593
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.AppLayoutDrawerContainerContext.Provider, { value: drawerContainer, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.AppLayoutDrawerCoordinationContext.Provider, { value: drawerCoordination, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex h-screen flex-col bg-ods-bg", className), children: [
2593
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.AppLayoutDrawerContainerContext.Provider, { value: drawerContainer, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.AppLayoutDrawerCoordinationContext.Provider, { value: drawerCoordination, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex h-screen flex-col bg-ods-bg", className), children: [
2594
2594
  topBar,
2595
2595
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex min-h-0 flex-1", children: [
2596
2596
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationSidebar, { config: sidebarConfig, disabled, pushOnTablet: hasSidePanel }),
@@ -2614,7 +2614,7 @@ function AppLayout({
2614
2614
  disabled
2615
2615
  }
2616
2616
  ),
2617
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCY35GB5cjs.NotificationDrawer, {}),
2617
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHJ4KGA2Mcjs.NotificationDrawer, {}),
2618
2618
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2619
2619
  "div",
2620
2620
  {