@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.
- package/dist/build/export-map.json +1 -1
- package/dist/build/route-styles.cjs +3 -1
- package/dist/build/style-sources.cjs +15 -2
- package/dist/build/style-sources.d.ts +3 -0
- package/dist/{chunk-37XKZ4JM.cjs → chunk-275AQ6LC.cjs} +6 -6
- package/dist/{chunk-5BM7X4GA.cjs → chunk-5GBLXY5F.cjs} +2 -2
- package/dist/{chunk-5L3UKDC6.cjs → chunk-6LDL3UZE.cjs} +9 -9
- package/dist/{chunk-SWMUW3RR.cjs → chunk-744JXTDP.cjs} +19 -19
- package/dist/{chunk-46LATWQR.cjs → chunk-7WKRMJI6.cjs} +5 -5
- package/dist/{chunk-XJ4AB24Y.cjs → chunk-AT6D7BAZ.cjs} +5 -5
- package/dist/{chunk-C4OQIYGW.cjs → chunk-CCRXBFNL.cjs} +8 -8
- package/dist/{chunk-LC65AC6M.cjs → chunk-COWMXUHN.cjs} +2 -0
- package/dist/{chunk-5E4YEHHO.cjs → chunk-DGY5KEPY.cjs} +55 -55
- package/dist/{chunk-N2TCVIPR.cjs → chunk-DYDQLS2R.cjs} +539 -539
- package/dist/{chunk-LWMWY3JO.cjs → chunk-E7M54JWW.cjs} +14 -14
- package/dist/{chunk-Z7A7IZWL.cjs → chunk-EV6BPF47.cjs} +236 -210
- package/dist/{chunk-7XRFAHJF.cjs → chunk-FHI4I3TQ.cjs} +9 -9
- package/dist/{chunk-ZABZIM2Y.cjs → chunk-FRL2ZN4O.cjs} +3 -3
- package/dist/{chunk-7Z536SPR.cjs → chunk-FW7RKWPY.cjs} +15 -1
- package/dist/{chunk-3MBKEF7Z.cjs → chunk-GMK4JGC2.cjs} +46 -46
- package/dist/{chunk-SZVPRP5E.cjs → chunk-GUKFMMDZ.cjs} +3 -3
- package/dist/{chunk-GN6LEJWY.cjs → chunk-HXTZZE3R.cjs} +253 -131
- package/dist/{chunk-2XZZHRRU.cjs → chunk-IELPVUPR.cjs} +18 -18
- package/dist/{chunk-64PF3UC7.cjs → chunk-INBFKUZA.cjs} +17 -17
- package/dist/{chunk-APOMNC7H.cjs → chunk-IUDBG3HJ.cjs} +3 -3
- package/dist/{chunk-4JHO2NVI.cjs → chunk-J2IXYCEH.cjs} +26 -10
- package/dist/{chunk-C4RYIDPU.cjs → chunk-JM2XA7VY.cjs} +28 -28
- package/dist/{chunk-GPXKG34G.cjs → chunk-JUEAZCD6.cjs} +46 -46
- package/dist/{chunk-2QAUQPGC.cjs → chunk-MYAPG3FQ.cjs} +21 -21
- package/dist/{chunk-GRHF5SWL.cjs → chunk-NFNSPLGC.cjs} +3 -3
- package/dist/{chunk-UDRVVCOC.cjs → chunk-Q6WUHYOG.cjs} +72 -72
- package/dist/{chunk-H3WTYAVR.cjs → chunk-RSJYTQEA.cjs} +30 -30
- package/dist/{chunk-MG3HJIGG.cjs → chunk-UAI4VMEF.cjs} +4 -4
- package/dist/{chunk-S5RMRQKT.cjs → chunk-UZPYYHF5.cjs} +18 -18
- package/dist/{chunk-DFTXZE7B.cjs → chunk-VBH2RCFM.cjs} +73 -73
- package/dist/{chunk-FNNDGOR3.cjs → chunk-WCK5T3UD.cjs} +43 -43
- package/dist/{chunk-TRZEFT2N.cjs → chunk-WI7EXAZT.cjs} +9 -5
- package/dist/{chunk-TKS25VKE.cjs → chunk-Z35PL3UR.cjs} +32 -32
- package/dist/{chunk-ENK75WN4.cjs → chunk-ZAO5SYBJ.cjs} +4 -4
- package/dist/{cloud-tenants-WE3H3VAW.cjs → cloud-tenants-PV63RZ73.cjs} +19 -19
- package/dist/components/case-studies/index.cjs +33 -33
- package/dist/components/chat/chat-nav-sidebar.d.ts.map +1 -1
- package/dist/components/chat/chat-nav-sidebar.js +17 -3
- package/dist/components/chat/index.cjs +13 -13
- package/dist/components/contact/index.cjs +20 -20
- package/dist/components/docs/index.cjs +23 -23
- package/dist/components/embeds/index.cjs +20 -20
- package/dist/components/faq/index.cjs +21 -21
- package/dist/components/features/index.cjs +19 -19
- package/dist/components/help-center-pages/index.cjs +120 -120
- package/dist/components/index.cjs +76 -76
- package/dist/components/meeting-scheduler/index.cjs +82 -82
- package/dist/components/navigation/account-popover.d.ts.map +1 -1
- package/dist/components/navigation/account-popover.js +26 -2
- package/dist/components/navigation/app-layout-side-panel.d.ts.map +1 -1
- package/dist/components/navigation/app-layout-side-panel.js +2 -9
- package/dist/components/navigation/index.cjs +22 -22
- package/dist/components/navigation/navigation-sidebar-grouped.d.ts.map +1 -1
- package/dist/components/navigation/navigation-sidebar-grouped.js +30 -6
- package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
- package/dist/components/navigation/navigation-sidebar-item.js +14 -1
- package/dist/components/navigation/navigation-sidebar.d.ts.map +1 -1
- package/dist/components/navigation/navigation-sidebar.js +72 -3
- package/dist/components/onboarding-guides/index.cjs +22 -22
- package/dist/components/product-demo/index.cjs +30 -30
- package/dist/components/related-content/index.cjs +8 -8
- package/dist/components/tickets/index.cjs +24 -24
- package/dist/components/ui/index.cjs +19 -19
- package/dist/components/ui/panel-resize-handle.d.ts +27 -6
- package/dist/components/ui/panel-resize-handle.d.ts.map +1 -1
- package/dist/components/ui/panel-resize-handle.js +27 -3
- package/dist/{devices-ZBZN2RRG.cjs → devices-VECG5JNC.cjs} +20 -20
- package/dist/{embeddable-chat-RBC7F4TL.cjs → embeddable-chat-VRYAQQF6.cjs} +90 -90
- package/dist/hooks/index.cjs +11 -7
- package/dist/hooks/ui/index.d.ts +1 -0
- package/dist/hooks/ui/index.d.ts.map +1 -1
- package/dist/hooks/ui/index.js +1 -0
- package/dist/hooks/ui/use-clipped-label-tooltip.d.ts +14 -0
- package/dist/hooks/ui/use-clipped-label-tooltip.d.ts.map +1 -0
- package/dist/hooks/ui/use-clipped-label-tooltip.js +13 -0
- package/dist/hooks/ui/use-is-truncated.d.ts.map +1 -1
- package/dist/hooks/ui/use-is-truncated.js +1 -0
- package/dist/hooks/ui/use-media-query.d.ts.map +1 -1
- package/dist/hooks/ui/use-media-query.js +1 -0
- package/dist/hooks/ui/use-resizable-panel-size.d.ts +1 -0
- package/dist/hooks/ui/use-resizable-panel-size.d.ts.map +1 -1
- package/dist/hooks/ui/use-resizable-panel-size.js +5 -1
- package/dist/index.cjs +28 -24
- package/dist/{knowledge-2QNZGDFO.cjs → knowledge-YJSDJIXT.cjs} +20 -20
- package/dist/{logs-YPWTJVIH.cjs → logs-42JG3NZ5.cjs} +26 -26
- package/dist/{policies-BK7TUKAF.cjs → policies-D4QNVJ26.cjs} +23 -23
- package/dist/{remote-session-CN3G7JNR.cjs → remote-session-EE6477O3.cjs} +10 -10
- package/dist/{scripts-K7AOYWZE.cjs → scripts-4VFYBXBE.cjs} +26 -26
- package/dist/{software-update-UFN4SBMY.cjs → software-update-OSDZQ5CP.cjs} +23 -23
- package/dist/{tickets-board-PLYD2NSY.cjs → tickets-board-44HO3LR4.cjs} +10 -10
- package/dist/types/navigation.d.ts +36 -0
- package/dist/types/navigation.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/chat-nav-sidebar.tsx +17 -4
- package/src/components/navigation/account-popover.tsx +31 -2
- package/src/components/navigation/app-layout-side-panel.tsx +2 -7
- package/src/components/navigation/navigation-sidebar-grouped.tsx +37 -6
- package/src/components/navigation/navigation-sidebar-item.tsx +18 -1
- package/src/components/navigation/navigation-sidebar.tsx +116 -7
- package/src/components/ui/panel-resize-handle.tsx +50 -8
- package/src/hooks/ui/index.ts +1 -0
- package/src/hooks/ui/use-clipped-label-tooltip.ts +20 -0
- package/src/hooks/ui/use-is-truncated.ts +2 -0
- package/src/hooks/ui/use-media-query.ts +2 -0
- package/src/hooks/ui/use-resizable-panel-size.ts +7 -1
- 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
|
|
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 = {
|
|
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
|
|
4
|
+
var _chunkMYAPG3FQcjs = require('./chunk-MYAPG3FQ.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkDYDQLS2Rcjs = require('./chunk-DYDQLS2R.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
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,
|
|
39
|
-
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
77
|
+
return _chunkNFNSPLGCcjs.formatDateWithTimezone.call(void 0, date, _chunkNFNSPLGCcjs.VIEWER_TIMEZONE, "numeric", { viewerLocale: true });
|
|
78
78
|
}
|
|
79
79
|
function formatTicketFullTimestamp(iso) {
|
|
80
|
-
return
|
|
80
|
+
return _chunkNFNSPLGCcjs.formatDateWithTimezone.call(void 0,
|
|
81
81
|
iso,
|
|
82
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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,
|
|
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 } =
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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 ?
|
|
515
|
-
const tooltipLabel = ticket.createdAt ?
|
|
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
|
-
|
|
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,
|
|
792
|
-
hidden > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
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] =
|
|
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 =
|
|
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
|
-
} =
|
|
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
|
|
4
|
+
var _chunkRSJYTQEAcjs = require('./chunk-RSJYTQEA.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
5
|
+
var _chunkRSJYTQEAcjs = require('./chunk-RSJYTQEA.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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:
|
|
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 ?
|
|
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 ?
|
|
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();
|