@flamingo-stack/openframe-frontend-core 0.0.745 → 0.0.746
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/{chunk-LJ46XYYP.cjs → chunk-2ZVNXD74.cjs} +24 -24
- package/dist/{chunk-75BF7YJR.cjs → chunk-3AUTORMB.cjs} +13 -13
- package/dist/{chunk-FNIFUCXU.cjs → chunk-3KVB5FQZ.cjs} +5 -5
- package/dist/{chunk-HMSCUL4R.cjs → chunk-3OAACQQG.cjs} +4 -4
- package/dist/{chunk-RIGSZEXS.cjs → chunk-5X3F2KL7.cjs} +90 -90
- package/dist/{chunk-M4FKV2U5.cjs → chunk-7AKFKPBV.cjs} +12 -12
- package/dist/{chunk-4N7KGOBS.cjs → chunk-B24U6KNJ.cjs} +3 -3
- package/dist/{chunk-7KHQHYXL.cjs → chunk-DJ4YDVBF.cjs} +18 -18
- package/dist/{chunk-NFINQ7IZ.cjs → chunk-FAN73OTP.cjs} +6 -6
- package/dist/{chunk-QES5NV4T.cjs → chunk-GPSHFEF2.cjs} +645 -635
- package/dist/{chunk-GOTEXQZN.cjs → chunk-GSFANY2L.cjs} +80 -80
- package/dist/{chunk-URVIPSAJ.cjs → chunk-HNLI4OU5.cjs} +14 -14
- package/dist/{chunk-6IQDQQ56.cjs → chunk-IRKUFXVV.cjs} +38 -38
- package/dist/{chunk-ABLUMGCI.cjs → chunk-JHQNUWFM.cjs} +83 -33
- package/dist/{chunk-4A6OF4HI.cjs → chunk-KVPSV4ZI.cjs} +44 -44
- package/dist/{chunk-UY6A6TEY.cjs → chunk-L2IQESTQ.cjs} +2 -2
- package/dist/{chunk-YIOWV7LS.cjs → chunk-NZMQIAQC.cjs} +2 -2
- package/dist/{chunk-YJRMCFX3.cjs → chunk-O4J4NIMB.cjs} +7 -7
- package/dist/{chunk-GAGNKWOC.cjs → chunk-OWABNVDV.cjs} +2 -2
- package/dist/{chunk-PM5ELQBL.cjs → chunk-PLBJ3XVC.cjs} +32 -32
- package/dist/{chunk-OWGLRE74.cjs → chunk-PSIKUDUV.cjs} +8 -8
- package/dist/{chunk-3LX5AGZO.cjs → chunk-SDDZHPVK.cjs} +24 -24
- package/dist/{chunk-GQ2TRIOV.cjs → chunk-SLODGX6D.cjs} +35 -35
- package/dist/{chunk-DJO7YMT3.cjs → chunk-TILK7SC4.cjs} +194 -194
- package/dist/{chunk-U2O5YQRP.cjs → chunk-U6XWGK53.cjs} +33 -33
- package/dist/{chunk-JGZEHBBD.cjs → chunk-VZGCSVH7.cjs} +10 -10
- package/dist/{chunk-GEEKJ7SH.cjs → chunk-X4Y74M5K.cjs} +74 -74
- package/dist/{chunk-HVR7DPAY.cjs → chunk-XQJOYPPN.cjs} +4 -4
- package/dist/{chunk-7PQOZLVP.cjs → chunk-YKF66VQY.cjs} +20 -20
- package/dist/{chunk-5TCIRWHL.cjs → chunk-YRULLK7N.cjs} +5 -5
- package/dist/{cloud-tenants-DECPWIYQ.cjs → cloud-tenants-OKUFSNPW.cjs} +13 -13
- package/dist/components/case-studies/index.cjs +25 -25
- package/dist/components/chat/index.cjs +9 -9
- package/dist/components/contact/index.cjs +14 -14
- package/dist/components/docs/index.cjs +17 -17
- package/dist/components/embeds/index.cjs +14 -14
- package/dist/components/faq/index.cjs +15 -15
- package/dist/components/features/index.cjs +13 -13
- package/dist/components/help-center-pages/index.cjs +116 -116
- package/dist/components/index.cjs +119 -125
- package/dist/components/meeting-scheduler/index.cjs +63 -63
- package/dist/components/navigation/index.cjs +16 -16
- package/dist/components/onboarding-guides/index.cjs +16 -16
- package/dist/components/product-demo/index.cjs +9 -9
- package/dist/components/related-content/index.cjs +7 -7
- package/dist/components/tickets/index.cjs +19 -19
- package/dist/components/ui/filter-checkbox-item.d.ts +8 -2
- package/dist/components/ui/filter-checkbox-item.d.ts.map +1 -1
- package/dist/components/ui/filter-checkbox-item.js +14 -4
- package/dist/components/ui/index.cjs +13 -13
- package/dist/components/unified-filter-logic.js +1 -1
- package/dist/components/vendor-tag.d.ts +12 -0
- package/dist/components/vendor-tag.d.ts.map +1 -1
- package/dist/components/vendor-tag.js +50 -47
- package/dist/{devices-HJKDRWQX.cjs → devices-URCDMYFU.cjs} +14 -14
- package/dist/{embeddable-chat-3SKFBO2P.cjs → embeddable-chat-B35GB5B6.cjs} +80 -80
- package/dist/index.cjs +20 -18
- package/dist/{knowledge-NH2CGY2C.cjs → knowledge-5MW2PREQ.cjs} +14 -14
- package/dist/{logs-KZYIDYQK.cjs → logs-LJJK5CK4.cjs} +21 -21
- package/dist/{policies-UAVTPIKM.cjs → policies-6TCEWQYG.cjs} +17 -17
- package/dist/{remote-session-N4PJB5FW.cjs → remote-session-IYT4LWJC.cjs} +7 -7
- package/dist/{scripts-FRPY43KU.cjs → scripts-ABB2P6PT.cjs} +20 -20
- package/dist/{software-update-AEJJNLX5.cjs → software-update-4427ZRMO.cjs} +17 -17
- package/dist/{tickets-board-O753S4ZB.cjs → tickets-board-4MT6ZB4F.cjs} +8 -8
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +2 -3
- package/dist/utils/index.cjs +74 -24
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +8 -6
- package/dist/utils/vendor-classification.d.ts +43 -17
- package/dist/utils/vendor-classification.d.ts.map +1 -1
- package/dist/utils/vendor-classification.js +73 -22
- package/package.json +1 -1
- package/src/components/ui/filter-checkbox-item.tsx +21 -5
- package/src/components/unified-filter-logic.tsx +1 -1
- package/src/components/vendor-tag.tsx +73 -69
- package/src/utils/format.ts +2 -3
- package/src/utils/index.ts +7 -5
- package/src/utils/vendor-classification.ts +113 -34
- package/dist/utils/format-text-stub.d.ts +0 -5
- package/dist/utils/format-text-stub.d.ts.map +0 -1
- package/dist/utils/format-text-stub.js +0 -20
- package/src/utils/format-text-stub.ts +0 -17
|
@@ -30,7 +30,7 @@ var _chunkQYLIHZKZcjs = require('./chunk-QYLIHZKZ.cjs');
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
var
|
|
33
|
+
var _chunkJHQNUWFMcjs = require('./chunk-JHQNUWFM.cjs');
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
var _chunkRUHKTWGBcjs = require('./chunk-RUHKTWGB.cjs');
|
|
@@ -65,10 +65,10 @@ function formatTicketRelativeTime(iso) {
|
|
|
65
65
|
if (diffMin < 60) return `${diffMin} min ago`;
|
|
66
66
|
const diffHours = Math.floor(diffMin / 60);
|
|
67
67
|
if (diffHours < 24) return diffHours === 1 ? "1 hour ago" : `${diffHours} hours ago`;
|
|
68
|
-
return
|
|
68
|
+
return _chunkJHQNUWFMcjs.formatDateWithTimezone.call(void 0, date, null, "numeric");
|
|
69
69
|
}
|
|
70
70
|
function formatTicketFullTimestamp(iso) {
|
|
71
|
-
return
|
|
71
|
+
return _chunkJHQNUWFMcjs.formatDateWithTimezone.call(void 0, iso, null, "numericDateTime");
|
|
72
72
|
}
|
|
73
73
|
function formatRelativeTime(timestamp) {
|
|
74
74
|
return formatRelativeTimeFrom(timestamp, /* @__PURE__ */ new Date());
|
|
@@ -94,7 +94,7 @@ function formatRelativeTimeFrom(timestamp, now) {
|
|
|
94
94
|
const weeks = Math.floor(diffInDays / 7);
|
|
95
95
|
return `${weeks}w ago`;
|
|
96
96
|
}
|
|
97
|
-
return
|
|
97
|
+
return _chunkJHQNUWFMcjs.formatDateWithTimezone.call(void 0, targetTime, null, {
|
|
98
98
|
month: "short",
|
|
99
99
|
day: "numeric",
|
|
100
100
|
year: targetTime.getUTCFullYear() !== now.getUTCFullYear() ? "numeric" : void 0
|
|
@@ -106,7 +106,7 @@ function formatAbsoluteDate(timestamp, options = {}) {
|
|
|
106
106
|
console.warn("\u26A0\uFE0F Invalid timestamp in formatAbsoluteDate:", timestamp);
|
|
107
107
|
return "Invalid date";
|
|
108
108
|
}
|
|
109
|
-
return
|
|
109
|
+
return _chunkJHQNUWFMcjs.formatDateWithTimezone.call(void 0, targetTime, _nullishCoalesce(options.timeZone, () => ( null)), {
|
|
110
110
|
year: "numeric",
|
|
111
111
|
month: "short",
|
|
112
112
|
day: "numeric",
|
|
@@ -119,7 +119,7 @@ function formatDateTime(timestamp, options = {}) {
|
|
|
119
119
|
console.warn("\u26A0\uFE0F Invalid timestamp in formatDateTime:", timestamp);
|
|
120
120
|
return "Invalid date";
|
|
121
121
|
}
|
|
122
|
-
return
|
|
122
|
+
return _chunkJHQNUWFMcjs.formatDateWithTimezone.call(void 0, targetTime, _nullishCoalesce(options.timeZone, () => ( null)), {
|
|
123
123
|
...ZONED_DATE_FIELDS_MEDIUM_DATETIME,
|
|
124
124
|
...options
|
|
125
125
|
});
|
|
@@ -287,7 +287,7 @@ function TicketStatusTag({
|
|
|
287
287
|
} : void 0;
|
|
288
288
|
const customColorClasses = color ? "bg-[var(--tag-bg)] hover:bg-[var(--tag-bg-hover)] active:bg-[var(--tag-bg-active)]" : void 0;
|
|
289
289
|
const tag = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
290
|
-
|
|
290
|
+
_chunkJHQNUWFMcjs.Tag,
|
|
291
291
|
{
|
|
292
292
|
label: _nullishCoalesce(label, () => ( config.label)),
|
|
293
293
|
variant: _nullishCoalesce(variant, () => ( config.variant)),
|
|
@@ -330,7 +330,7 @@ function TicketStatusTag({
|
|
|
330
330
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
331
331
|
// Reuse the tag's variant styling, but split into a label section and a
|
|
332
332
|
// separated chevron section (the common dropdown-button seam).
|
|
333
|
-
|
|
333
|
+
_chunkJHQNUWFMcjs.tagVariants.call(void 0, { variant: _nullishCoalesce(variant, () => ( config.variant)) }),
|
|
334
334
|
"w-fit shrink-0 items-stretch justify-start gap-0 overflow-hidden p-0",
|
|
335
335
|
"disabled:cursor-not-allowed disabled:opacity-60",
|
|
336
336
|
// Custom color: bg/hover/active from the CSS vars set above.
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkGPSHFEF2cjs = require('./chunk-GPSHFEF2.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkU6XWGK53cjs = require('./chunk-U6XWGK53.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
@@ -17,16 +17,16 @@ var _chunkU2O5YQRPcjs = require('./chunk-U2O5YQRP.cjs');
|
|
|
17
17
|
var _chunk4FWURR3Wcjs = require('./chunk-4FWURR3W.cjs');
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkGSFANY2Lcjs = require('./chunk-GSFANY2L.cjs');
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
var
|
|
25
|
+
var _chunkTILK7SC4cjs = require('./chunk-TILK7SC4.cjs');
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _chunk2ZVNXD74cjs = require('./chunk-2ZVNXD74.cjs');
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
@@ -119,7 +119,7 @@ function ContactForm({
|
|
|
119
119
|
successToastMessage = "Redirecting you to join our community...",
|
|
120
120
|
rescue: rescueForm = null
|
|
121
121
|
} = {}) {
|
|
122
|
-
const attachments =
|
|
122
|
+
const attachments = _chunkTILK7SC4cjs.useChatAttachments.call(void 0, );
|
|
123
123
|
const builtInSubmission = _chunk4FWURR3Wcjs.useContactSubmission.call(void 0, {
|
|
124
124
|
userId,
|
|
125
125
|
successRedirectUrl,
|
|
@@ -190,7 +190,7 @@ function ContactForm({
|
|
|
190
190
|
className: `flex h-full flex-col ${!noBorder ? "rounded-2xl border border-ods-border content-md:rounded-3xl" : ""} ${!noPadding ? "p-6 content-md:p-8 content-lg:p-10" : ""}`,
|
|
191
191
|
children: [
|
|
192
192
|
(title || subtitle) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-6 content-md:mb-8", children: [
|
|
193
|
-
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${
|
|
193
|
+
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunk2ZVNXD74cjs.SECTION_HEADING_CLASS} mb-3 content-md:mb-4`, children: _chunk2ZVNXD74cjs.accentSentenceMarks.call(void 0, title) }),
|
|
194
194
|
subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: subtitle })
|
|
195
195
|
] }),
|
|
196
196
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -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
|
-
...
|
|
206
|
+
..._chunkGSFANY2Lcjs.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,
|
|
212
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGPSHFEF2cjs.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: [
|
|
@@ -261,17 +261,17 @@ function ContactForm({
|
|
|
261
261
|
{
|
|
262
262
|
control,
|
|
263
263
|
name: "companySize",
|
|
264
|
-
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
264
|
+
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkU6XWGK53cjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
|
|
265
265
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
266
|
-
|
|
266
|
+
_chunkU6XWGK53cjs.SelectTrigger,
|
|
267
267
|
{
|
|
268
268
|
id: "companySize",
|
|
269
269
|
"aria-label": "Company Size",
|
|
270
270
|
className: "h-12 border-ods-border bg-ods-card px-3 text-ods-text-primary",
|
|
271
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
271
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU6XWGK53cjs.SelectValue, { placeholder: "Select company size" })
|
|
272
272
|
}
|
|
273
273
|
),
|
|
274
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
274
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU6XWGK53cjs.SelectContent, { children: companySizeOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU6XWGK53cjs.SelectItem, { value: opt, children: opt }, opt)) })
|
|
275
275
|
] })
|
|
276
276
|
}
|
|
277
277
|
),
|
|
@@ -284,17 +284,17 @@ function ContactForm({
|
|
|
284
284
|
{
|
|
285
285
|
control,
|
|
286
286
|
name: "referralSource",
|
|
287
|
-
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
287
|
+
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkU6XWGK53cjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
|
|
288
288
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
289
|
-
|
|
289
|
+
_chunkU6XWGK53cjs.SelectTrigger,
|
|
290
290
|
{
|
|
291
291
|
id: "referralSource",
|
|
292
292
|
"aria-label": "Referral Source",
|
|
293
293
|
className: "h-12 border-ods-border bg-ods-card px-3 text-ods-text-primary",
|
|
294
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
294
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU6XWGK53cjs.SelectValue, { placeholder: "Select an option" })
|
|
295
295
|
}
|
|
296
296
|
),
|
|
297
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
297
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU6XWGK53cjs.SelectContent, { children: referralSourceOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU6XWGK53cjs.SelectItem, { value: opt, children: opt }, opt)) })
|
|
298
298
|
] })
|
|
299
299
|
}
|
|
300
300
|
),
|
|
@@ -311,18 +311,18 @@ function ContactForm({
|
|
|
311
311
|
{
|
|
312
312
|
control,
|
|
313
313
|
name: "helpCategory",
|
|
314
|
-
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
314
|
+
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkU6XWGK53cjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
|
|
315
315
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
316
|
-
|
|
316
|
+
_chunkU6XWGK53cjs.SelectTrigger,
|
|
317
317
|
{
|
|
318
318
|
id: "helpCategory",
|
|
319
319
|
"aria-label": "Help Category",
|
|
320
320
|
"aria-required": true,
|
|
321
321
|
className: "h-12 border-ods-border bg-ods-card px-3 text-ods-text-primary",
|
|
322
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
322
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU6XWGK53cjs.SelectValue, { placeholder: "Choose your main interest" })
|
|
323
323
|
}
|
|
324
324
|
),
|
|
325
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
325
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU6XWGK53cjs.SelectContent, { children: helpCategoryOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU6XWGK53cjs.SelectItem, { value: opt, children: opt }, opt)) })
|
|
326
326
|
] })
|
|
327
327
|
}
|
|
328
328
|
),
|
|
@@ -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
|
-
|
|
337
|
+
_chunkGPSHFEF2cjs.Textarea,
|
|
338
338
|
{
|
|
339
339
|
id: "message",
|
|
340
340
|
...register("message"),
|
|
@@ -349,7 +349,7 @@ function ContactForm({
|
|
|
349
349
|
] }),
|
|
350
350
|
attachmentsEnabled && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
351
351
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
352
|
-
|
|
352
|
+
_chunkTILK7SC4cjs.ChatAttachmentChipStrip,
|
|
353
353
|
{
|
|
354
354
|
attachments: attachments.attachments,
|
|
355
355
|
onRemove: attachments.removeAttachment,
|
|
@@ -358,7 +358,7 @@ function ContactForm({
|
|
|
358
358
|
),
|
|
359
359
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
360
360
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
361
|
-
|
|
361
|
+
_chunkTILK7SC4cjs.ChatAttachmentAddButton,
|
|
362
362
|
{
|
|
363
363
|
attachmentsEnabled: true,
|
|
364
364
|
attachmentsCount: attachments.attachments.length,
|
|
@@ -3,31 +3,31 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunk3KVB5FQZcjs = require('./chunk-3KVB5FQZ.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkXQJOYPPNcjs = require('./chunk-XQJOYPPN.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _chunk7AKFKPBVcjs = require('./chunk-7AKFKPBV.cjs');
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _chunkGPSHFEF2cjs = require('./chunk-GPSHFEF2.cjs');
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _chunkU6XWGK53cjs = require('./chunk-U6XWGK53.cjs');
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _chunkGSFANY2Lcjs = require('./chunk-GSFANY2L.cjs');
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
@@ -337,8 +337,8 @@ function toDocContent(value, requestedPath) {
|
|
|
337
337
|
}
|
|
338
338
|
function useDocumentTree(config, initialPath) {
|
|
339
339
|
const { structureEndpoint, contentEndpoint, baseRoute } = config;
|
|
340
|
-
const folderIndexFile = _nullishCoalesce(config.folderIndexFile, () => (
|
|
341
|
-
const cleanInitialPath =
|
|
340
|
+
const folderIndexFile = _nullishCoalesce(config.folderIndexFile, () => ( _chunkGSFANY2Lcjs.DEFAULT_FOLDER_INDEX_FILE));
|
|
341
|
+
const cleanInitialPath = _chunkGSFANY2Lcjs.stripFolderIndexFromPath.call(void 0, _optionalChain([initialPath, 'optionalAccess', _4 => _4.replace, 'call', _5 => _5(/\/$/, "")]) || "", folderIndexFile);
|
|
342
342
|
const [structure, setStructure] = _react.useState.call(void 0, []);
|
|
343
343
|
const [selectedPath, setSelectedPath] = _react.useState.call(void 0, cleanInitialPath);
|
|
344
344
|
const [content, setContent] = _react.useState.call(void 0, null);
|
|
@@ -362,12 +362,12 @@ function useDocumentTree(config, initialPath) {
|
|
|
362
362
|
} else if (pathname.startsWith(`${normalizedBaseRoute}/`)) {
|
|
363
363
|
pathFromUrl = pathname.substring(`${normalizedBaseRoute}/`.length);
|
|
364
364
|
}
|
|
365
|
-
pathFromUrl =
|
|
365
|
+
pathFromUrl = _chunkGSFANY2Lcjs.stripFolderIndexFromPath.call(void 0, pathFromUrl, folderIndexFile);
|
|
366
366
|
if (pathFromUrl !== selectedPathRef.current) {
|
|
367
367
|
setSelectedPath(pathFromUrl);
|
|
368
368
|
if (pathFromUrl) {
|
|
369
369
|
const parentPath = pathFromUrl.includes("/") ? pathFromUrl.substring(0, pathFromUrl.lastIndexOf("/")) : pathFromUrl;
|
|
370
|
-
setExpandedNodes(new Set(
|
|
370
|
+
setExpandedNodes(new Set(_chunkGSFANY2Lcjs.getDocAncestorNodeIds.call(void 0, parentPath)));
|
|
371
371
|
}
|
|
372
372
|
setTimeout(() => {
|
|
373
373
|
scrollToContent();
|
|
@@ -385,7 +385,7 @@ function useDocumentTree(config, initialPath) {
|
|
|
385
385
|
setSelectedPath(cleanInitialPath);
|
|
386
386
|
if (cleanInitialPath) {
|
|
387
387
|
const parentPath = cleanInitialPath.includes("/") ? cleanInitialPath.substring(0, cleanInitialPath.lastIndexOf("/")) : cleanInitialPath;
|
|
388
|
-
setExpandedNodes(new Set(
|
|
388
|
+
setExpandedNodes(new Set(_chunkGSFANY2Lcjs.getDocAncestorNodeIds.call(void 0, parentPath)));
|
|
389
389
|
}
|
|
390
390
|
setExternalNavCount((n) => n + 1);
|
|
391
391
|
}
|
|
@@ -410,7 +410,7 @@ function useDocumentTree(config, initialPath) {
|
|
|
410
410
|
if (cleanInitialPath) {
|
|
411
411
|
const pathForExpansion = cleanInitialPath.includes(".") ? cleanInitialPath.substring(0, cleanInitialPath.lastIndexOf("/")) : cleanInitialPath;
|
|
412
412
|
if (pathForExpansion) {
|
|
413
|
-
setExpandedNodes(new Set(
|
|
413
|
+
setExpandedNodes(new Set(_chunkGSFANY2Lcjs.getDocAncestorNodeIds.call(void 0, pathForExpansion)));
|
|
414
414
|
}
|
|
415
415
|
} else if (nodes.length > 0) {
|
|
416
416
|
const hasRootReadme = nodes.some((node) => node.type === "file" && node.path === folderIndexFile);
|
|
@@ -450,7 +450,7 @@ function useDocumentTree(config, initialPath) {
|
|
|
450
450
|
setContent(null);
|
|
451
451
|
return;
|
|
452
452
|
}
|
|
453
|
-
const probe =
|
|
453
|
+
const probe = _chunkGSFANY2Lcjs.findDocNodeByPath.call(void 0, _chunkGSFANY2Lcjs.stripFolderIndexFromPath.call(void 0, path, folderIndexFile), structure);
|
|
454
454
|
const probeIsNoReadmeFolder = !!probe && probe.type === "folder" && !probe.hasReadme;
|
|
455
455
|
const preStructureFolderLike = structure.length === 0 && !path.endsWith(".md");
|
|
456
456
|
if (probeIsNoReadmeFolder || preStructureFolderLike) {
|
|
@@ -507,7 +507,7 @@ function useDocumentTree(config, initialPath) {
|
|
|
507
507
|
if (selectedPath === "") {
|
|
508
508
|
pathToFetch = folderIndexFile;
|
|
509
509
|
} else {
|
|
510
|
-
const node =
|
|
510
|
+
const node = _chunkGSFANY2Lcjs.findDocNodeByPath.call(void 0, selectedPath, structure);
|
|
511
511
|
if (node && node.type === "folder" && !node.hasReadme) {
|
|
512
512
|
const firstDocPath = findFirstDocPath(node);
|
|
513
513
|
if (!firstDocPath) {
|
|
@@ -548,16 +548,16 @@ function useDocumentTree(config, initialPath) {
|
|
|
548
548
|
if (node.type === "folder") {
|
|
549
549
|
setExpandedNodes((prev) => {
|
|
550
550
|
if (prev.has(node.id)) {
|
|
551
|
-
const ancestorIds =
|
|
551
|
+
const ancestorIds = _chunkGSFANY2Lcjs.getDocAncestorNodeIds.call(void 0, node.path);
|
|
552
552
|
ancestorIds.pop();
|
|
553
553
|
return new Set(ancestorIds);
|
|
554
554
|
}
|
|
555
|
-
return new Set(
|
|
555
|
+
return new Set(_chunkGSFANY2Lcjs.getDocAncestorNodeIds.call(void 0, node.path));
|
|
556
556
|
});
|
|
557
557
|
} else {
|
|
558
558
|
const lastSlash = node.path.lastIndexOf("/");
|
|
559
559
|
if (lastSlash > 0) {
|
|
560
|
-
setExpandedNodes(new Set(
|
|
560
|
+
setExpandedNodes(new Set(_chunkGSFANY2Lcjs.getDocAncestorNodeIds.call(void 0, node.path.substring(0, lastSlash))));
|
|
561
561
|
}
|
|
562
562
|
}
|
|
563
563
|
lastFetchedPath.current = null;
|
|
@@ -572,7 +572,7 @@ function useDocumentTree(config, initialPath) {
|
|
|
572
572
|
const hashIndex = path.indexOf("#");
|
|
573
573
|
const anchor = hashIndex !== -1 ? path.substring(hashIndex) : "";
|
|
574
574
|
const cleanPath = path.replace(/\/$/, "").split("#")[0];
|
|
575
|
-
const pathForSelection = anchor && _optionalChain([options, 'optionalAccess', _6 => _6.fromInternalLink]) && cleanPath === "" ? selectedPathRef.current :
|
|
575
|
+
const pathForSelection = anchor && _optionalChain([options, 'optionalAccess', _6 => _6.fromInternalLink]) && cleanPath === "" ? selectedPathRef.current : _chunkGSFANY2Lcjs.stripFolderIndexFromPath.call(void 0, cleanPath, folderIndexFile);
|
|
576
576
|
if (anchor && _optionalChain([options, 'optionalAccess', _7 => _7.fromInternalLink]) && pathForSelection === selectedPathRef.current) {
|
|
577
577
|
_chunkCSJO7ZGNcjs.navigateSamePageHash.call(void 0, anchor, { headerOffset: _chunkCSJO7ZGNcjs.HUB_HEADER_OFFSET_PX });
|
|
578
578
|
return;
|
|
@@ -636,15 +636,15 @@ function useDocumentTree(config, initialPath) {
|
|
|
636
636
|
return docNavigation.register({
|
|
637
637
|
baseRoute: normalizedBaseRoute,
|
|
638
638
|
findNodeByPath: (path) => {
|
|
639
|
-
const clean =
|
|
640
|
-
return _nullishCoalesce(
|
|
639
|
+
const clean = _chunkGSFANY2Lcjs.stripFolderIndexFromPath.call(void 0, path.replace(/\/$/, "").split("#")[0], folderIndexFile);
|
|
640
|
+
return _nullishCoalesce(_chunkGSFANY2Lcjs.findDocNodeByPath.call(void 0, clean, structure), () => ( null));
|
|
641
641
|
},
|
|
642
642
|
selectNode
|
|
643
643
|
});
|
|
644
644
|
}, [docNavigation, normalizedBaseRoute, structure, selectNode, folderIndexFile]);
|
|
645
645
|
const isEmptyFolder = _react.useMemo.call(void 0, () => {
|
|
646
646
|
if (!selectedPath || structure.length === 0) return false;
|
|
647
|
-
const node =
|
|
647
|
+
const node = _chunkGSFANY2Lcjs.findDocNodeByPath.call(void 0, selectedPath, structure);
|
|
648
648
|
return !!node && node.type === "folder" && !node.hasReadme && !findFirstDocPath(node);
|
|
649
649
|
}, [selectedPath, structure]);
|
|
650
650
|
return {
|
|
@@ -724,14 +724,14 @@ function DocViewerContent({
|
|
|
724
724
|
},
|
|
725
725
|
docPath
|
|
726
726
|
);
|
|
727
|
-
const { activeSection, handleSectionClick } =
|
|
727
|
+
const { activeSection, handleSectionClick } = _chunkXQJOYPPNcjs.useScrollSpy.call(void 0, _optionalChain([content, 'optionalAccess', _11 => _11.sections]));
|
|
728
728
|
const docNav = useDocNavigation();
|
|
729
729
|
const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
|
|
730
730
|
const backCfg = backButton === false ? null : {
|
|
731
731
|
label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _12 => _12.label]), () => ( "Back to home")),
|
|
732
732
|
onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _13 => _13.href]), () => ( "/")))
|
|
733
733
|
};
|
|
734
|
-
const docSearch =
|
|
734
|
+
const docSearch = _chunk7AKFKPBVcjs.useDocSearch.call(void 0, {
|
|
735
735
|
source: chatSource,
|
|
736
736
|
baseRoute,
|
|
737
737
|
searchEndpoint,
|
|
@@ -755,7 +755,7 @@ function DocViewerContent({
|
|
|
755
755
|
onResolveLink: resolveLink
|
|
756
756
|
});
|
|
757
757
|
}, [content, renderContent, navigateToDoc, sourceId, resolveLink]);
|
|
758
|
-
const selectedNodeDocType = selectedPath && structure.length > 0 ? _optionalChain([
|
|
758
|
+
const selectedNodeDocType = selectedPath && structure.length > 0 ? _optionalChain([_chunkGSFANY2Lcjs.findDocNodeByPath.call(void 0, selectedPath, structure), 'optionalAccess', _14 => _14.documentType]) : void 0;
|
|
759
759
|
const activeDocType = _nullishCoalesce(_optionalChain([content, 'optionalAccess', _15 => _15.documentType]), () => ( selectedNodeDocType));
|
|
760
760
|
const isMarkdownContent = !activeDocType || activeDocType === "markdown";
|
|
761
761
|
const showStickyNav = isMarkdownContent;
|
|
@@ -766,9 +766,9 @@ function DocViewerContent({
|
|
|
766
766
|
const containerBgStyle = colorPalette.containerBackground !== "transparent" ? { backgroundColor: colorPalette.containerBackground } : {};
|
|
767
767
|
const defaultEmptyText = structure.length > 0 ? "Select a document from the sidebar to view" : "No documents yet. Add content from the admin panel.";
|
|
768
768
|
const resolvedEmptyText = emptyStateText || defaultEmptyText;
|
|
769
|
-
const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { ...bgStyle, ...containerBgStyle }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
769
|
+
const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { style: { ...bgStyle, ...containerBgStyle }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkU6XWGK53cjs.PageLayout, { title, subtitle, titleSize: "h1", titleWrap: true, backButton: _nullishCoalesce(backCfg, () => ( void 0)), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-10", children: [
|
|
770
770
|
showAIChat && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
771
|
-
|
|
771
|
+
_chunk7AKFKPBVcjs.DocSearchBar,
|
|
772
772
|
{
|
|
773
773
|
placeholder: `Search ${_optionalChain([sidebarLabel, 'optionalAccess', _19 => _19.toLowerCase, 'call', _20 => _20()]) || "documents"}...`,
|
|
774
774
|
query: docSearch.query,
|
|
@@ -787,9 +787,9 @@ function DocViewerContent({
|
|
|
787
787
|
] })
|
|
788
788
|
] }) }),
|
|
789
789
|
!error && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col items-start gap-6 content-lg:flex-row content-lg:gap-10", children: [
|
|
790
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full content-lg:w-[320px] content-lg:shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "content-lg:sticky content-lg:top-20", children: isLoadingStructure ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
790
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full content-lg:w-[320px] content-lg:shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "content-lg:sticky content-lg:top-20", children: isLoadingStructure ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGPSHFEF2cjs.CategorySidebarSkeleton, {}) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
791
791
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PersistentMobileDropdown, { isLoading: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
792
|
-
|
|
792
|
+
_chunkXQJOYPPNcjs.MobileNavigationDropdown,
|
|
793
793
|
{
|
|
794
794
|
nodes: structure,
|
|
795
795
|
selectedPath,
|
|
@@ -803,7 +803,7 @@ function DocViewerContent({
|
|
|
803
803
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, PersistentSidebar, { isLoading: false, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden content-lg:block", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
|
|
804
804
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "font-semibold text-ods-text-secondary text-h5", children: sidebarLabel }),
|
|
805
805
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
806
|
-
|
|
806
|
+
_chunkXQJOYPPNcjs.MultiLevelNavigation,
|
|
807
807
|
{
|
|
808
808
|
nodes: structure,
|
|
809
809
|
selectedPath,
|
|
@@ -842,7 +842,7 @@ function DocViewerContent({
|
|
|
842
842
|
showStickyNav && content && stickyNavSections.length > 0 && !isLoadingContent && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden content-lg:block", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "sticky top-24", children: [
|
|
843
843
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "mb-4 font-semibold text-ods-text-secondary text-h5", children: "ON THIS PAGE" }),
|
|
844
844
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
845
|
-
|
|
845
|
+
_chunkXQJOYPPNcjs.StickySectionNav,
|
|
846
846
|
{
|
|
847
847
|
sections: stickyNavSections,
|
|
848
848
|
activeSection,
|
|
@@ -857,7 +857,7 @@ function DocViewerContent({
|
|
|
857
857
|
) })
|
|
858
858
|
] })
|
|
859
859
|
] }) }) });
|
|
860
|
-
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
860
|
+
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGPSHFEF2cjs.PageShell, { contentClassName: `${bgClass} ${className}`, children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: `page-shell-content ${bgClass} ${className}`.trim(), children: inner });
|
|
861
861
|
}
|
|
862
862
|
|
|
863
863
|
// src/components/docs/skeletons.tsx
|
|
@@ -953,11 +953,11 @@ function EmbedSkeleton({ documentType } = {}) {
|
|
|
953
953
|
|
|
954
954
|
var DEFAULT_TITLE = "Documents";
|
|
955
955
|
var defaultFallbackRenderer = () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "py-16 text-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: "Unsupported document type" }) });
|
|
956
|
-
var defaultPdfRenderer = (content, handlers) => content.fileUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
957
|
-
var defaultGoogleSheetRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
958
|
-
var defaultFigmaRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
956
|
+
var defaultPdfRenderer = (content, handlers) => content.fileUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3KVB5FQZcjs.PdfViewer, { src: content.fileUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
|
|
957
|
+
var defaultGoogleSheetRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3KVB5FQZcjs.GoogleSheetsViewer, { externalUrl: content.externalUrl, fileName: content.fileName }) : defaultFallbackRenderer(content, handlers);
|
|
958
|
+
var defaultFigmaRenderer = (content, handlers) => content.externalUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGPSHFEF2cjs.FigmaEmbed, { url: content.externalUrl, title: content.fileName, loading: "eager" }) : defaultFallbackRenderer(content, handlers);
|
|
959
959
|
var defaultFileRenderer = (content) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
960
|
-
|
|
960
|
+
_chunk3KVB5FQZcjs.FileDownloadCard,
|
|
961
961
|
{
|
|
962
962
|
fileName: content.fileName,
|
|
963
963
|
mimeType: content.mimeType,
|