@flamingo-stack/openframe-frontend-core 0.0.839 → 0.0.841

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 (111) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/build/route-styles.cjs +3 -1
  3. package/dist/build/style-sources.cjs +15 -2
  4. package/dist/build/style-sources.d.ts +3 -0
  5. package/dist/{chunk-37XKZ4JM.cjs → chunk-275AQ6LC.cjs} +6 -6
  6. package/dist/{chunk-5BM7X4GA.cjs → chunk-5GBLXY5F.cjs} +2 -2
  7. package/dist/{chunk-5L3UKDC6.cjs → chunk-6LDL3UZE.cjs} +9 -9
  8. package/dist/{chunk-SWMUW3RR.cjs → chunk-744JXTDP.cjs} +19 -19
  9. package/dist/{chunk-46LATWQR.cjs → chunk-7WKRMJI6.cjs} +5 -5
  10. package/dist/{chunk-XJ4AB24Y.cjs → chunk-AT6D7BAZ.cjs} +5 -5
  11. package/dist/{chunk-C4OQIYGW.cjs → chunk-CCRXBFNL.cjs} +8 -8
  12. package/dist/{chunk-LC65AC6M.cjs → chunk-COWMXUHN.cjs} +2 -0
  13. package/dist/{chunk-5E4YEHHO.cjs → chunk-DGY5KEPY.cjs} +55 -55
  14. package/dist/{chunk-N2TCVIPR.cjs → chunk-DYDQLS2R.cjs} +539 -539
  15. package/dist/{chunk-LWMWY3JO.cjs → chunk-E7M54JWW.cjs} +14 -14
  16. package/dist/{chunk-Z7A7IZWL.cjs → chunk-EV6BPF47.cjs} +236 -210
  17. package/dist/{chunk-7XRFAHJF.cjs → chunk-FHI4I3TQ.cjs} +9 -9
  18. package/dist/{chunk-ZABZIM2Y.cjs → chunk-FRL2ZN4O.cjs} +3 -3
  19. package/dist/{chunk-7Z536SPR.cjs → chunk-FW7RKWPY.cjs} +15 -1
  20. package/dist/{chunk-3MBKEF7Z.cjs → chunk-GMK4JGC2.cjs} +46 -46
  21. package/dist/{chunk-SZVPRP5E.cjs → chunk-GUKFMMDZ.cjs} +3 -3
  22. package/dist/{chunk-GN6LEJWY.cjs → chunk-HXTZZE3R.cjs} +253 -131
  23. package/dist/{chunk-2XZZHRRU.cjs → chunk-IELPVUPR.cjs} +18 -18
  24. package/dist/{chunk-64PF3UC7.cjs → chunk-INBFKUZA.cjs} +17 -17
  25. package/dist/{chunk-APOMNC7H.cjs → chunk-IUDBG3HJ.cjs} +3 -3
  26. package/dist/{chunk-4JHO2NVI.cjs → chunk-J2IXYCEH.cjs} +26 -10
  27. package/dist/{chunk-C4RYIDPU.cjs → chunk-JM2XA7VY.cjs} +28 -28
  28. package/dist/{chunk-GPXKG34G.cjs → chunk-JUEAZCD6.cjs} +46 -46
  29. package/dist/{chunk-2QAUQPGC.cjs → chunk-MYAPG3FQ.cjs} +21 -21
  30. package/dist/{chunk-GRHF5SWL.cjs → chunk-NFNSPLGC.cjs} +3 -3
  31. package/dist/{chunk-UDRVVCOC.cjs → chunk-Q6WUHYOG.cjs} +72 -72
  32. package/dist/{chunk-H3WTYAVR.cjs → chunk-RSJYTQEA.cjs} +30 -30
  33. package/dist/{chunk-MG3HJIGG.cjs → chunk-UAI4VMEF.cjs} +4 -4
  34. package/dist/{chunk-S5RMRQKT.cjs → chunk-UZPYYHF5.cjs} +18 -18
  35. package/dist/{chunk-DFTXZE7B.cjs → chunk-VBH2RCFM.cjs} +73 -73
  36. package/dist/{chunk-FNNDGOR3.cjs → chunk-WCK5T3UD.cjs} +43 -43
  37. package/dist/{chunk-TRZEFT2N.cjs → chunk-WI7EXAZT.cjs} +9 -5
  38. package/dist/{chunk-TKS25VKE.cjs → chunk-Z35PL3UR.cjs} +32 -32
  39. package/dist/{chunk-ENK75WN4.cjs → chunk-ZAO5SYBJ.cjs} +4 -4
  40. package/dist/{cloud-tenants-WE3H3VAW.cjs → cloud-tenants-PV63RZ73.cjs} +19 -19
  41. package/dist/components/case-studies/index.cjs +33 -33
  42. package/dist/components/chat/chat-nav-sidebar.d.ts.map +1 -1
  43. package/dist/components/chat/chat-nav-sidebar.js +17 -3
  44. package/dist/components/chat/index.cjs +13 -13
  45. package/dist/components/contact/index.cjs +20 -20
  46. package/dist/components/docs/index.cjs +23 -23
  47. package/dist/components/embeds/index.cjs +20 -20
  48. package/dist/components/faq/index.cjs +21 -21
  49. package/dist/components/features/index.cjs +19 -19
  50. package/dist/components/help-center-pages/index.cjs +120 -120
  51. package/dist/components/index.cjs +76 -76
  52. package/dist/components/meeting-scheduler/index.cjs +82 -82
  53. package/dist/components/navigation/account-popover.d.ts.map +1 -1
  54. package/dist/components/navigation/account-popover.js +26 -2
  55. package/dist/components/navigation/app-layout-side-panel.d.ts.map +1 -1
  56. package/dist/components/navigation/app-layout-side-panel.js +2 -9
  57. package/dist/components/navigation/index.cjs +22 -22
  58. package/dist/components/navigation/navigation-sidebar-grouped.d.ts.map +1 -1
  59. package/dist/components/navigation/navigation-sidebar-grouped.js +30 -6
  60. package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
  61. package/dist/components/navigation/navigation-sidebar-item.js +14 -1
  62. package/dist/components/navigation/navigation-sidebar.d.ts.map +1 -1
  63. package/dist/components/navigation/navigation-sidebar.js +72 -3
  64. package/dist/components/onboarding-guides/index.cjs +22 -22
  65. package/dist/components/product-demo/index.cjs +30 -30
  66. package/dist/components/related-content/index.cjs +8 -8
  67. package/dist/components/tickets/index.cjs +24 -24
  68. package/dist/components/ui/index.cjs +19 -19
  69. package/dist/components/ui/panel-resize-handle.d.ts +27 -6
  70. package/dist/components/ui/panel-resize-handle.d.ts.map +1 -1
  71. package/dist/components/ui/panel-resize-handle.js +27 -3
  72. package/dist/{devices-ZBZN2RRG.cjs → devices-VECG5JNC.cjs} +20 -20
  73. package/dist/{embeddable-chat-RBC7F4TL.cjs → embeddable-chat-VRYAQQF6.cjs} +90 -90
  74. package/dist/hooks/index.cjs +11 -7
  75. package/dist/hooks/ui/index.d.ts +1 -0
  76. package/dist/hooks/ui/index.d.ts.map +1 -1
  77. package/dist/hooks/ui/index.js +1 -0
  78. package/dist/hooks/ui/use-clipped-label-tooltip.d.ts +14 -0
  79. package/dist/hooks/ui/use-clipped-label-tooltip.d.ts.map +1 -0
  80. package/dist/hooks/ui/use-clipped-label-tooltip.js +13 -0
  81. package/dist/hooks/ui/use-is-truncated.d.ts.map +1 -1
  82. package/dist/hooks/ui/use-is-truncated.js +1 -0
  83. package/dist/hooks/ui/use-media-query.d.ts.map +1 -1
  84. package/dist/hooks/ui/use-media-query.js +1 -0
  85. package/dist/hooks/ui/use-resizable-panel-size.d.ts +1 -0
  86. package/dist/hooks/ui/use-resizable-panel-size.d.ts.map +1 -1
  87. package/dist/hooks/ui/use-resizable-panel-size.js +5 -1
  88. package/dist/index.cjs +28 -24
  89. package/dist/{knowledge-2QNZGDFO.cjs → knowledge-YJSDJIXT.cjs} +20 -20
  90. package/dist/{logs-YPWTJVIH.cjs → logs-42JG3NZ5.cjs} +26 -26
  91. package/dist/{policies-BK7TUKAF.cjs → policies-D4QNVJ26.cjs} +23 -23
  92. package/dist/{remote-session-CN3G7JNR.cjs → remote-session-EE6477O3.cjs} +10 -10
  93. package/dist/{scripts-K7AOYWZE.cjs → scripts-4VFYBXBE.cjs} +26 -26
  94. package/dist/{software-update-UFN4SBMY.cjs → software-update-OSDZQ5CP.cjs} +23 -23
  95. package/dist/{tickets-board-PLYD2NSY.cjs → tickets-board-44HO3LR4.cjs} +10 -10
  96. package/dist/types/navigation.d.ts +36 -0
  97. package/dist/types/navigation.d.ts.map +1 -1
  98. package/package.json +1 -1
  99. package/src/components/chat/chat-nav-sidebar.tsx +17 -4
  100. package/src/components/navigation/account-popover.tsx +31 -2
  101. package/src/components/navigation/app-layout-side-panel.tsx +2 -7
  102. package/src/components/navigation/navigation-sidebar-grouped.tsx +37 -6
  103. package/src/components/navigation/navigation-sidebar-item.tsx +18 -1
  104. package/src/components/navigation/navigation-sidebar.tsx +116 -7
  105. package/src/components/ui/panel-resize-handle.tsx +50 -8
  106. package/src/hooks/ui/index.ts +1 -0
  107. package/src/hooks/ui/use-clipped-label-tooltip.ts +20 -0
  108. package/src/hooks/ui/use-is-truncated.ts +2 -0
  109. package/src/hooks/ui/use-media-query.ts +2 -0
  110. package/src/hooks/ui/use-resizable-panel-size.ts +7 -1
  111. package/src/types/navigation.ts +37 -0
@@ -112,7 +112,9 @@ async function stylesheetBuilder({ root, input, config }) {
112
112
  const postcss = require(require.resolve('postcss', { paths: [root, __dirname] }));
113
113
  const loadConfig = require(require.resolve('tailwindcss/loadConfig', { paths: [root, __dirname] }));
114
114
  const source = readInput(resolve(root, input), root);
115
- const appConfig = loadConfig(resolve(root, config));
115
+ const { APP_TAILWIND_CONFIG } = require('./style-sources.cjs');
116
+ const loaded = loadConfig(resolve(root, config));
117
+ const appConfig = loaded[APP_TAILWIND_CONFIG] ?? loaded;
116
118
  const minify = minifier(root);
117
119
  const from = resolve(root, input);
118
120
  return async content => {
@@ -259,6 +259,12 @@ if (require.main === module) {
259
259
  );
260
260
  }
261
261
 
262
+ /**
263
+ * The config `withRouteStylesTailwind` was given. The route step runs inside `next build`, under the same
264
+ * `NEXT_STYLES=routes`, so the config it loads is the wrapped one: the complete sheet is built from this.
265
+ */
266
+ const APP_TAILWIND_CONFIG = Symbol.for('next-styles.app-tailwind-config');
267
+
262
268
  /**
263
269
  * The Tailwind config of the stylesheet the root layout imports, for `next-styles build`: under it that sheet is
264
270
  * built with no utilities (its tokens, preflight and the app's own rules), because each route's utilities arrive
@@ -269,7 +275,14 @@ if (require.main === module) {
269
275
  */
270
276
  function withRouteStylesTailwind(config) {
271
277
  if (process.env.NEXT_STYLES !== 'routes') return config;
272
- return { ...config, content: [{ raw: '', extension: 'html' }], safelist: [] };
278
+ return { ...config, content: [{ raw: '', extension: 'html' }], safelist: [], [APP_TAILWIND_CONFIG]: config };
273
279
  }
274
280
 
275
- module.exports = { appStyleSources, routePaths, servedRouteFiles, LAZY_STYLED, withRouteStylesTailwind };
281
+ module.exports = {
282
+ appStyleSources,
283
+ routePaths,
284
+ servedRouteFiles,
285
+ LAZY_STYLED,
286
+ withRouteStylesTailwind,
287
+ APP_TAILWIND_CONFIG,
288
+ };
@@ -13,3 +13,6 @@ export function appStyleSources(options: AppStyleSourcesOptions): string[];
13
13
 
14
14
  /** The root sheet's Tailwind config: no utilities under `next-styles build` (each route brings its own). */
15
15
  export function withRouteStylesTailwind<T extends object>(config: T): T;
16
+
17
+ /** Where a config wrapped by {@link withRouteStylesTailwind} keeps the app's own (the complete sheet's). */
18
+ export const APP_TAILWIND_CONFIG: unique symbol;
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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 _chunk2QAUQPGCcjs = require('./chunk-2QAUQPGC.cjs');
4
+ var _chunkMYAPG3FQcjs = require('./chunk-MYAPG3FQ.cjs');
5
5
 
6
6
 
7
- var _chunkN2TCVIPRcjs = require('./chunk-N2TCVIPR.cjs');
7
+ var _chunkDYDQLS2Rcjs = require('./chunk-DYDQLS2R.cjs');
8
8
 
9
9
 
10
- var _chunkFNNDGOR3cjs = require('./chunk-FNNDGOR3.cjs');
10
+ var _chunkWCK5T3UDcjs = require('./chunk-WCK5T3UD.cjs');
11
11
 
12
12
 
13
13
  var _chunk7DNL734Scjs = require('./chunk-7DNL734S.cjs');
@@ -35,8 +35,8 @@ function FaqDocumentPage({
35
35
  label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _ => _.label]), () => ( "Back to home")),
36
36
  onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _2 => _2.href]), () => ( "/")))
37
37
  };
38
- const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFNNDGOR3cjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
39
- _chunk2QAUQPGCcjs.FaqSection,
38
+ const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWCK5T3UDcjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
39
+ _chunkMYAPG3FQcjs.FaqSection,
40
40
  {
41
41
  initialFaqs,
42
42
  heading: null,
@@ -51,7 +51,7 @@ function FaqDocumentPage({
51
51
  skeletonNav
52
52
  }
53
53
  ) });
54
- return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkN2TCVIPRcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
54
+ return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
55
55
  }
56
56
 
57
57
 
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
2
2
 
3
3
 
4
- var _chunkGRHF5SWLcjs = require('./chunk-GRHF5SWL.cjs');
4
+ var _chunkNFNSPLGCcjs = require('./chunk-NFNSPLGC.cjs');
5
5
 
6
6
 
7
7
 
@@ -81,7 +81,7 @@ function AvatarStack({
81
81
  "aria-label": `${label}: ${names}${unnamed > 0 ? ` and ${unnamed} more` : ""}`,
82
82
  children: [
83
83
  visible.map((person, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
84
- _chunkGRHF5SWLcjs.SquareAvatar,
84
+ _chunkNFNSPLGCcjs.SquareAvatar,
85
85
  {
86
86
  "data-loading-item": true,
87
87
  variant: "round",
@@ -23,7 +23,7 @@ var _chunkSKI6NKOEcjs = require('./chunk-SKI6NKOE.cjs');
23
23
 
24
24
 
25
25
 
26
- var _chunkGRHF5SWLcjs = require('./chunk-GRHF5SWL.cjs');
26
+ var _chunkNFNSPLGCcjs = require('./chunk-NFNSPLGC.cjs');
27
27
 
28
28
 
29
29
 
@@ -74,12 +74,12 @@ function formatTicketRelativeTime(iso) {
74
74
  if (diffMin < 60) return `${diffMin} min ago`;
75
75
  const diffHours = Math.floor(diffMin / 60);
76
76
  if (diffHours < 24) return diffHours === 1 ? "1 hour ago" : `${diffHours} hours ago`;
77
- return _chunkGRHF5SWLcjs.formatDateWithTimezone.call(void 0, date, _chunkGRHF5SWLcjs.VIEWER_TIMEZONE, "numeric", { viewerLocale: true });
77
+ return _chunkNFNSPLGCcjs.formatDateWithTimezone.call(void 0, date, _chunkNFNSPLGCcjs.VIEWER_TIMEZONE, "numeric", { viewerLocale: true });
78
78
  }
79
79
  function formatTicketFullTimestamp(iso) {
80
- return _chunkGRHF5SWLcjs.formatDateWithTimezone.call(void 0,
80
+ return _chunkNFNSPLGCcjs.formatDateWithTimezone.call(void 0,
81
81
  iso,
82
- _chunkGRHF5SWLcjs.VIEWER_TIMEZONE,
82
+ _chunkNFNSPLGCcjs.VIEWER_TIMEZONE,
83
83
  { year: "numeric", month: "2-digit", day: "2-digit", hour: "numeric", minute: "2-digit" },
84
84
  { viewerLocale: true }
85
85
  );
@@ -108,7 +108,7 @@ function formatRelativeTimeFrom(timestamp, now) {
108
108
  const weeks = Math.floor(diffInDays / 7);
109
109
  return `${weeks}w ago`;
110
110
  }
111
- return _chunkGRHF5SWLcjs.formatDateWithTimezone.call(void 0, targetTime, null, {
111
+ return _chunkNFNSPLGCcjs.formatDateWithTimezone.call(void 0, targetTime, null, {
112
112
  month: "short",
113
113
  day: "numeric",
114
114
  year: targetTime.getUTCFullYear() !== now.getUTCFullYear() ? "numeric" : void 0
@@ -120,7 +120,7 @@ function formatAbsoluteDate(timestamp, options = {}) {
120
120
  console.warn("\u26A0\uFE0F Invalid timestamp in formatAbsoluteDate:", timestamp);
121
121
  return "Invalid date";
122
122
  }
123
- return _chunkGRHF5SWLcjs.formatDateWithTimezone.call(void 0, targetTime, _nullishCoalesce(options.timeZone, () => ( null)), {
123
+ return _chunkNFNSPLGCcjs.formatDateWithTimezone.call(void 0, targetTime, _nullishCoalesce(options.timeZone, () => ( null)), {
124
124
  year: "numeric",
125
125
  month: "short",
126
126
  day: "numeric",
@@ -133,7 +133,7 @@ function formatDateTime(timestamp, options = {}) {
133
133
  console.warn("\u26A0\uFE0F Invalid timestamp in formatDateTime:", timestamp);
134
134
  return "Invalid date";
135
135
  }
136
- return _chunkGRHF5SWLcjs.formatDateWithTimezone.call(void 0, targetTime, _nullishCoalesce(options.timeZone, () => ( null)), {
136
+ return _chunkNFNSPLGCcjs.formatDateWithTimezone.call(void 0, targetTime, _nullishCoalesce(options.timeZone, () => ( null)), {
137
137
  ...ZONED_DATE_FIELDS_MEDIUM_DATETIME,
138
138
  ...options
139
139
  });
@@ -298,7 +298,7 @@ function TicketStatusTag({
298
298
  } : void 0;
299
299
  const customColorClasses = color ? "bg-[var(--tag-bg)] hover:bg-[var(--tag-bg-hover)] active:bg-[var(--tag-bg-active)]" : void 0;
300
300
  const tag = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
301
- _chunkGRHF5SWLcjs.Tag,
301
+ _chunkNFNSPLGCcjs.Tag,
302
302
  {
303
303
  loading,
304
304
  label: _nullishCoalesce(label, () => ( config.label)),
@@ -351,7 +351,7 @@ function TicketStatusTag({
351
351
  className: _chunk63A4GZMBcjs.cn.call(void 0,
352
352
  // The tag's variant styling, split into a label section and a separated chevron section (the common
353
353
  // dropdown-button seam). Custom color: bg/hover/active from the CSS vars set above.
354
- _chunkGRHF5SWLcjs.tagVariants.call(void 0, { variant: _nullishCoalesce(variant, () => ( config.variant)) }),
354
+ _chunkNFNSPLGCcjs.tagVariants.call(void 0, { variant: _nullishCoalesce(variant, () => ( config.variant)) }),
355
355
  "items-stretch justify-start gap-0 overflow-hidden p-0",
356
356
  customColorClasses
357
357
  ),
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkAPOMNC7Hcjs = require('./chunk-APOMNC7H.cjs');
6
+ var _chunkIUDBG3HJcjs = require('./chunk-IUDBG3HJ.cjs');
7
7
 
8
8
 
9
9
 
@@ -12,7 +12,7 @@ var _chunkAPOMNC7Hcjs = require('./chunk-APOMNC7H.cjs');
12
12
 
13
13
 
14
14
 
15
- var _chunk5L3UKDC6cjs = require('./chunk-5L3UKDC6.cjs');
15
+ var _chunk6LDL3UZEcjs = require('./chunk-6LDL3UZE.cjs');
16
16
 
17
17
 
18
18
 
@@ -70,13 +70,13 @@ var _chunkSKI6NKOEcjs = require('./chunk-SKI6NKOE.cjs');
70
70
 
71
71
 
72
72
 
73
- var _chunkGRHF5SWLcjs = require('./chunk-GRHF5SWL.cjs');
73
+ var _chunkNFNSPLGCcjs = require('./chunk-NFNSPLGC.cjs');
74
74
 
75
75
 
76
76
  var _chunkJBTH3O2Ccjs = require('./chunk-JBTH3O2C.cjs');
77
77
 
78
78
 
79
- var _chunkLC65AC6Mcjs = require('./chunk-LC65AC6M.cjs');
79
+ var _chunkCOWMXUHNcjs = require('./chunk-COWMXUHN.cjs');
80
80
 
81
81
 
82
82
  var _chunkYSDB6HGQcjs = require('./chunk-YSDB6HGQ.cjs');
@@ -181,7 +181,7 @@ function BoardColumnHeader({
181
181
  }) {
182
182
  const count = _nullishCoalesce(column.total, () => ( column.tickets.length));
183
183
  const tagStatus = _nullishCoalesce(column.statusKey, () => ( column.id));
184
- const useStatusVariant = _chunk5L3UKDC6cjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
184
+ const useStatusVariant = _chunk6LDL3UZEcjs.resolveTicketStatus.call(void 0, tagStatus) !== null;
185
185
  const actionClass = "h-8 w-8 p-0 content-md:h-8 content-md:w-8";
186
186
  if (collapsed) {
187
187
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-full flex-col items-center gap-[var(--spacing-system-xsf)]", children: [
@@ -197,7 +197,7 @@ function BoardColumnHeader({
197
197
  }
198
198
  ),
199
199
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
200
- _chunk5L3UKDC6cjs.TicketStatusTag,
200
+ _chunk6LDL3UZEcjs.TicketStatusTag,
201
201
  {
202
202
  status: tagStatus,
203
203
  label: column.label,
@@ -210,7 +210,7 @@ function BoardColumnHeader({
210
210
  }
211
211
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xsf)]", children: [
212
212
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-w-0 flex-1 items-center gap-[var(--spacing-system-xsf)]", children: [
213
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5L3UKDC6cjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
213
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6LDL3UZEcjs.TicketStatusTag, { status: tagStatus, label: column.label, color: useStatusVariant ? void 0 : column.color }),
214
214
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h5", style: useStatusVariant ? void 0 : { color: column.color }, children: count })
215
215
  ] }),
216
216
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex shrink-0 items-center gap-[var(--spacing-system-xxs)]", children: [
@@ -268,7 +268,7 @@ function tintOnDark(hex) {
268
268
 
269
269
  function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
270
270
  const [expanded, setExpanded] = _react.useState.call(void 0, false);
271
- const { innerRef, containerStyle } = _chunk5L3UKDC6cjs.useCollapsible.call(void 0, { expanded });
271
+ const { innerRef, containerStyle } = _chunk6LDL3UZEcjs.useCollapsible.call(void 0, { expanded });
272
272
  const isAdmin = pendingApproval.approvalType === "ADMIN";
273
273
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "pointer-events-auto flex flex-col", children: [
274
274
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "row", type: "button", onClick: () => setExpanded((v) => !v), "aria-expanded": expanded, children: [
@@ -288,7 +288,7 @@ function BoardTicketApproval({ pendingApproval, onApprove, onReject }) {
288
288
  expanded ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3MRRIHC2cjs.Chevron02UpIcon, { className: "size-4 shrink-0 text-ods-text-secondary" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkSKI6NKOEcjs.Chevron02DownIcon, { className: "size-4 shrink-0 text-ods-text-secondary" })
289
289
  ] }),
290
290
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: containerStyle, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref: innerRef, className: "pt-[var(--spacing-system-xs)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
291
- _chunk5L3UKDC6cjs.ApprovalBatchMessage,
291
+ _chunk6LDL3UZEcjs.ApprovalBatchMessage,
292
292
  {
293
293
  className: "mb-0",
294
294
  data: {
@@ -481,7 +481,7 @@ function TicketCardBody({
481
481
  role: "img",
482
482
  "aria-label": `Owned by ${ticket.agent === "fae" ? "Fae" : "Mingo"}`,
483
483
  className: "flex size-8 shrink-0 items-center justify-center overflow-hidden rounded-full border border-ods-border bg-ods-bg",
484
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5L3UKDC6cjs.AgentMark, { agent: ticket.agent, className: ticket.agent === "fae" ? "size-full" : "size-5" })
484
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6LDL3UZEcjs.AgentMark, { agent: ticket.agent, className: ticket.agent === "fae" ? "size-full" : "size-5" })
485
485
  }
486
486
  ),
487
487
  renderAssignSlot ? renderAssignSlot(ticket) : _optionalChain([ticket, 'access', _18 => _18.assignees, 'optionalAccess', _19 => _19.length]) ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex -space-x-2", children: [
@@ -494,7 +494,7 @@ function TicketCardBody({
494
494
  },
495
495
  a.id
496
496
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
497
- _chunkGRHF5SWLcjs.SquareAvatar,
497
+ _chunkNFNSPLGCcjs.SquareAvatar,
498
498
  {
499
499
  src: a.avatarUrl,
500
500
  alt: _nullishCoalesce(_nullishCoalesce(a.name, () => ( a.initials)), () => ( a.id)),
@@ -511,8 +511,8 @@ function TicketCardBody({
511
511
  ] })
512
512
  ] }) : null
513
513
  ] }) : null;
514
- const timestampLabel = ticket.createdAt ? _chunk5L3UKDC6cjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
515
- const tooltipLabel = ticket.createdAt ? _chunk5L3UKDC6cjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
514
+ const timestampLabel = ticket.createdAt ? _chunk6LDL3UZEcjs.formatTicketRelativeTime.call(void 0, ticket.createdAt) : null;
515
+ const tooltipLabel = ticket.createdAt ? _chunk6LDL3UZEcjs.formatTicketFullTimestamp.call(void 0, ticket.createdAt) : null;
516
516
  const metaLabel = [ticket.ticketNumber || null, timestampLabel].filter(Boolean).join(" \u2022 ");
517
517
  const meta = href ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
518
518
  _chunkV45KLJQPcjs.next_link_default,
@@ -560,7 +560,7 @@ function TicketCardBody({
560
560
  }
561
561
  ),
562
562
  showNewMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
563
- _chunkGRHF5SWLcjs.Tag,
563
+ _chunkNFNSPLGCcjs.Tag,
564
564
  {
565
565
  label: "New Message",
566
566
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkJSIUVERGcjs.MessagesIcon, { size: 16, color: newMessageTextColor }),
@@ -788,8 +788,8 @@ function TicketTagRow({ tags }) {
788
788
  const visible = tags.slice(0, MAX_VISIBLE_TAGS);
789
789
  const hidden = tags.length - visible.length;
790
790
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-8 flex-wrap items-start gap-[var(--spacing-system-xxs)] overflow-clip", children: [
791
- visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGRHF5SWLcjs.Tag, { variant: "outline", label: tag }, tag)),
792
- hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGRHF5SWLcjs.Tag, { variant: "outline", label: `+${hidden}` })
791
+ visible.map((tag) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFNSPLGCcjs.Tag, { variant: "outline", label: tag }, tag)),
792
+ hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNFNSPLGCcjs.Tag, { variant: "outline", label: `+${hidden}` })
793
793
  ] });
794
794
  }
795
795
  function TicketCardSkeleton({ className, ...props }) {
@@ -1123,7 +1123,7 @@ function EmptyState({ columnId, touchMode }) {
1123
1123
  // src/components/features/board/use-board-collapse.ts
1124
1124
 
1125
1125
  function useBoardCollapse(storageKey, initial) {
1126
- const [persisted, setPersisted] = _chunkAPOMNC7Hcjs.useLocalStorage.call(void 0, _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")), {});
1126
+ const [persisted, setPersisted] = _chunkIUDBG3HJcjs.useLocalStorage.call(void 0, _nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")), {});
1127
1127
  const [memory, setMemory] = _react.useState.call(void 0, _nullishCoalesce(initial, () => ( {})));
1128
1128
  const collapsed = storageKey ? persisted : memory;
1129
1129
  const setMap = storageKey ? setPersisted : setMemory;
@@ -1267,7 +1267,7 @@ var DROP_EASING = "cubic-bezier(0.2, 0, 0, 1)";
1267
1267
  var DRAG_PREVIEW_Z = 1200;
1268
1268
  var ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
1269
1269
  function Board(props) {
1270
- const dragAndDropEnabled = _chunkLC65AC6Mcjs.useMediaQuery.call(void 0, _chunkAPOMNC7Hcjs.DRAG_AND_DROP_MEDIA_QUERY);
1270
+ const dragAndDropEnabled = _chunkCOWMXUHNcjs.useMediaQuery.call(void 0, _chunkIUDBG3HJcjs.DRAG_AND_DROP_MEDIA_QUERY);
1271
1271
  if (dragAndDropEnabled === void 0) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BoardShell, { ...props });
1272
1272
  return dragAndDropEnabled ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DragBoard, { ...props }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TouchBoard, { ...props });
1273
1273
  }
@@ -1324,7 +1324,7 @@ function DragBoard({
1324
1324
  onThumbPointerMove,
1325
1325
  onThumbPointerUp,
1326
1326
  onThumbPointerCancel
1327
- } = _chunkAPOMNC7Hcjs.useHorizontalScrollbar.call(void 0, );
1327
+ } = _chunkIUDBG3HJcjs.useHorizontalScrollbar.call(void 0, );
1328
1328
  const columnsRef = _react.useRef.call(void 0, columns);
1329
1329
  const onChangeRef = _react.useRef.call(void 0, onChange);
1330
1330
  const boardRef = _react.useRef.call(void 0, null);
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
2
2
 
3
3
 
4
- var _chunkH3WTYAVRcjs = require('./chunk-H3WTYAVR.cjs');
4
+ var _chunkRSJYTQEAcjs = require('./chunk-RSJYTQEA.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunkGRHF5SWLcjs = require('./chunk-GRHF5SWL.cjs');
8
+ var _chunkNFNSPLGCcjs = require('./chunk-NFNSPLGC.cjs');
9
9
 
10
10
 
11
11
  var _chunk3V5JWG27cjs = require('./chunk-3V5JWG27.cjs');
@@ -38,7 +38,7 @@ var NAME_CLASS = "text-ods-text-primary text-h5";
38
38
  var JOB_TITLE_CLASS = "mt-0.5 font-body text-ods-text-secondary";
39
39
  var BIO_CLASS = "mt-2 font-body leading-relaxed text-ods-text-secondary";
40
40
  function formatDate(value) {
41
- return _chunkGRHF5SWLcjs.formatDateWithTimezone.call(void 0, value, null, "long");
41
+ return _chunkNFNSPLGCcjs.formatDateWithTimezone.call(void 0, value, null, "long");
42
42
  }
43
43
  function ArticleAuthorByline({
44
44
  author,
@@ -52,14 +52,14 @@ function ArticleAuthorByline({
52
52
  proxyImageUrl,
53
53
  className
54
54
  }) {
55
- const proxiedAvatar = _chunkH3WTYAVRcjs.useProxiedImageUrl.call(void 0, avatar, { proxyImageUrl });
55
+ const proxiedAvatar = _chunkRSJYTQEAcjs.useProxiedImageUrl.call(void 0, avatar, { proxyImageUrl });
56
56
  const loading = _chunk63A4GZMBcjs.useLoadingScope.call(void 0, );
57
57
  if (loading && !author) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ArticleAuthorBylineSkeleton, { size, className });
58
58
  if (!author) return null;
59
59
  const avatarSizeClass = _chunk3TOWCFIKcjs.AVATAR_SIZE[BYLINE_AVATAR_SIZE[size]];
60
60
  const avatarIconClass = size === "lg" ? "w-8 h-8" : "w-7 h-7";
61
61
  const avatarDim = _chunk3TOWCFIKcjs.AVATAR_SIZE_PX[BYLINE_AVATAR_SIZE[size]];
62
- const formattedBio = _chunkGRHF5SWLcjs.formatBioText.call(void 0, _nullishCoalesce(bio, () => ( null)));
62
+ const formattedBio = _chunkNFNSPLGCcjs.formatBioText.call(void 0, _nullishCoalesce(bio, () => ( null)));
63
63
  const dateLabel = publishedAt ? formatDate(publishedAt) : "";
64
64
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk63A4GZMBcjs.cn.call(void 0, BYLINE_FRAME_CLASS, className), children: [
65
65
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-shrink-0", children: avatar ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkN2TCVIPRcjs = require('./chunk-N2TCVIPR.cjs');
4
+ var _chunkDYDQLS2Rcjs = require('./chunk-DYDQLS2R.cjs');
5
5
 
6
6
 
7
7
  var _chunkCKR42OBKcjs = require('./chunk-CKR42OBK.cjs');
@@ -14,7 +14,7 @@ var _chunkM7ZSKWT3cjs = require('./chunk-M7ZSKWT3.cjs');
14
14
  var _chunkHLJXCOMAcjs = require('./chunk-HLJXCOMA.cjs');
15
15
 
16
16
 
17
- var _chunkGRHF5SWLcjs = require('./chunk-GRHF5SWL.cjs');
17
+ var _chunkNFNSPLGCcjs = require('./chunk-NFNSPLGC.cjs');
18
18
 
19
19
 
20
20
  var _chunkFCZAUK4Dcjs = require('./chunk-FCZAUK4D.cjs');
@@ -29,7 +29,7 @@ function FileDownloadCard({ fileName, mimeType, fileSize, fileUrl }) {
29
29
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-ods-text-primary text-h3", children: fileName || "File" }),
30
30
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mt-2 flex items-center justify-center gap-3 text-ods-text-secondary text-h6", children: [
31
31
  mimeType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: mimeType }),
32
- typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunkGRHF5SWLcjs.formatFileSize.call(void 0, fileSize) })
32
+ typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunkNFNSPLGCcjs.formatFileSize.call(void 0, fileSize) })
33
33
  ] })
34
34
  ] }),
35
35
  fileUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "accent", href: fileUrl, openInNewTab: true, leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Download, { className: "h-4 w-4" }), children: "Download File" })
@@ -48,7 +48,7 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
48
48
  ] });
49
49
  }
50
50
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
51
- _chunkN2TCVIPRcjs.EmbedViewerFrame,
51
+ _chunkDYDQLS2Rcjs.EmbedViewerFrame,
52
52
  {
53
53
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCKR42OBKcjs.GoogleSheetsIcon, { className: "h-5 w-5 shrink-0" }),
54
54
  title: displayName,
@@ -83,7 +83,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
83
83
  ] });
84
84
  }
85
85
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
86
- _chunkN2TCVIPRcjs.EmbedViewerFrame,
86
+ _chunkDYDQLS2Rcjs.EmbedViewerFrame,
87
87
  {
88
88
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkM7ZSKWT3cjs.AdobePdfIcon, { className: "h-5 w-5 shrink-0" }),
89
89
  title: displayName,
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkH3WTYAVRcjs = require('./chunk-H3WTYAVR.cjs');
5
+ var _chunkRSJYTQEAcjs = require('./chunk-RSJYTQEA.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunkGRHF5SWLcjs = require('./chunk-GRHF5SWL.cjs');
9
+ var _chunkNFNSPLGCcjs = require('./chunk-NFNSPLGC.cjs');
10
10
 
11
11
 
12
12
  var _chunkTD4CC4KVcjs = require('./chunk-TD4CC4KV.cjs');
@@ -150,7 +150,7 @@ function EmployeeEntryBadge({ children }) {
150
150
  function EmployeeEntryCard(props) {
151
151
  if (_chunk63A4GZMBcjs.useLoadingScope.call(void 0, ) || props.loading) {
152
152
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
153
- _chunkH3WTYAVRcjs.AdminContentCard,
153
+ _chunkRSJYTQEAcjs.AdminContentCard,
154
154
  {
155
155
  loading: true,
156
156
  title: "",
@@ -172,9 +172,9 @@ function LoadedEmployeeEntryCard({
172
172
  anchorProps,
173
173
  className
174
174
  }) {
175
- const authorAvatar = _chunkH3WTYAVRcjs.useProxiedImageUrl.call(void 0, _optionalChain([entry, 'access', _7 => _7.author, 'optionalAccess', _8 => _8.avatar_url]), { directHttps: false });
175
+ const authorAvatar = _chunkRSJYTQEAcjs.useProxiedImageUrl.call(void 0, _optionalChain([entry, 'access', _7 => _7.author, 'optionalAccess', _8 => _8.avatar_url]), { directHttps: false });
176
176
  const card = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
177
- _chunkH3WTYAVRcjs.AdminContentCard,
177
+ _chunkRSJYTQEAcjs.AdminContentCard,
178
178
  {
179
179
  imageUrl: entry.featured_image || entry.main_video_thumbnail,
180
180
  placeholderUrl,
@@ -227,7 +227,7 @@ function WhatIShippedCard(props) {
227
227
  EmployeeEntryCard,
228
228
  {
229
229
  entry,
230
- dateLabel: _chunkGRHF5SWLcjs.formatEntryMonthUTC.call(void 0, entry.entry_month, "short"),
230
+ dateLabel: _chunkNFNSPLGCcjs.formatEntryMonthUTC.call(void 0, entry.entry_month, "short"),
231
231
  placeholderUrl,
232
232
  actions,
233
233
  anchorProps,
@@ -248,7 +248,7 @@ function HowIWorkCard(props) {
248
248
  EmployeeEntryCard,
249
249
  {
250
250
  entry,
251
- dateLabel: entry.session_date ? _chunkGRHF5SWLcjs.formatDateUTC.call(void 0, entry.session_date, { fallback: "" }) || null : null,
251
+ dateLabel: entry.session_date ? _chunkNFNSPLGCcjs.formatDateUTC.call(void 0, entry.session_date, { fallback: "" }) || null : null,
252
252
  extraBadges: entry.discipline ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmployeeEntryBadge, { children: disciplineLabel(entry.discipline) }) : null,
253
253
  untitledLabel: "Untitled session",
254
254
  placeholderUrl,
@@ -270,7 +270,7 @@ function AiPromptCard(props) {
270
270
  EmployeeEntryCard,
271
271
  {
272
272
  entry,
273
- dateLabel: entry.published_at ? _chunkGRHF5SWLcjs.formatDateUTC.call(void 0, entry.published_at, { fallback: "" }) || null : null,
273
+ dateLabel: entry.published_at ? _chunkNFNSPLGCcjs.formatDateUTC.call(void 0, entry.published_at, { fallback: "" }) || null : null,
274
274
  extraBadges: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
275
275
  departmentName ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DepartmentBadge, { department: { name: departmentName, color: _nullishCoalesce(_optionalChain([entry, 'access', _15 => _15.department, 'optionalAccess', _16 => _16.color]), () => ( null)) } }) : null,
276
276
  steps > 1 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmployeeEntryBadge, { children: `${steps} steps` }) : null
@@ -21,6 +21,7 @@ var LAYOUT_STEPS = {
21
21
  function useMediaQuery(query) {
22
22
  const [matches, setMatches] = _react.useState.call(void 0, void 0);
23
23
  _chunkYSDB6HGQcjs.useIsomorphicLayoutEffect.call(void 0, () => {
24
+ if (typeof window.matchMedia !== "function") return void 0;
24
25
  const matchMedia = window.matchMedia(query);
25
26
  const handleChange = () => {
26
27
  setMatches(matchMedia.matches);
@@ -66,6 +67,7 @@ function useIsTruncated(value, options) {
66
67
  );
67
68
  };
68
69
  check();
70
+ if (typeof ResizeObserver === "undefined") return void 0;
69
71
  const observer = new ResizeObserver(check);
70
72
  observer.observe(element);
71
73
  return () => observer.disconnect();