@flamingo-stack/openframe-frontend-core 0.0.716 → 0.0.718
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/chat-protocol/index.cjs +23 -14
- package/dist/chat-protocol/index.js +23 -14
- package/dist/chat-protocol/nats-decoder.d.ts.map +1 -1
- package/dist/chat-protocol/source-metadata.d.ts +11 -2
- package/dist/chat-protocol/source-metadata.d.ts.map +1 -1
- package/dist/{chunk-DPX6244M.js → chunk-45F7PXUI.js} +3 -3
- package/dist/{chunk-KYFNFRSV.js → chunk-67QBMN4R.js} +2 -2
- package/dist/{chunk-3RKBJT6K.cjs → chunk-6A43ZDWV.cjs} +2 -2
- package/dist/chunk-A6P6DHEZ.cjs +130 -0
- package/dist/{chunk-KNOZVVCU.cjs → chunk-BOTM373R.cjs} +9 -9
- package/dist/{chunk-DHMO5GI4.cjs → chunk-BWIN42ZA.cjs} +21 -21
- package/dist/{chunk-YTMV4OBY.js → chunk-DCD5WZUF.js} +4 -4
- package/dist/{chunk-V36WGIYR.js → chunk-DEZDMTBM.js} +5 -5
- package/dist/{chunk-YO5JB3WE.cjs → chunk-DXCBOZVT.cjs} +35 -35
- package/dist/{chunk-ZX7SCPLO.cjs → chunk-E7YCPY7K.cjs} +3 -3
- package/dist/{chunk-I5F2OTFE.cjs → chunk-EZC2F5OT.cjs} +33 -33
- package/dist/{chunk-DLEO53NX.cjs → chunk-GN4A7PMB.cjs} +69 -69
- package/dist/{chunk-6T3BTD6Q.js → chunk-IWCPXJEE.js} +201 -327
- package/dist/{chunk-ROBQ5TR7.js → chunk-JH2SIWPQ.js} +28 -17
- package/dist/{chunk-3AJIQPFG.js → chunk-JIWMBIVZ.js} +6 -6
- package/dist/{chunk-DDWFCWOE.js → chunk-JPD4NXH6.js} +1 -1
- package/dist/{chunk-JVCAK4W3.cjs → chunk-LE5WKGJV.cjs} +3 -3
- package/dist/{chunk-NPAQSMRY.js → chunk-LOYPRJWA.js} +1053 -357
- package/dist/{chunk-5IJXM3RU.cjs → chunk-MIQLUUVF.cjs} +10 -10
- package/dist/{chunk-MXPQMQI3.js → chunk-MM7MCIXL.js} +6 -6
- package/dist/{chunk-C5AGSZBT.js → chunk-N2PF5CFX.js} +4837 -5425
- package/dist/{chunk-STCJYO2Z.cjs → chunk-NDZ5ZXOQ.cjs} +11 -11
- package/dist/{chunk-H5R7U2D2.js → chunk-NZ5BHDFZ.js} +1 -1
- package/dist/{chunk-JCA5MBVY.js → chunk-PQ6HBLZ7.js} +4 -4
- package/dist/{chunk-EOKSKJSS.cjs → chunk-QBCDSTLE.cjs} +13 -13
- package/dist/{chunk-NQWJAOHO.js → chunk-QXZCLQNV.js} +1 -1
- package/dist/{chunk-2V7D5GJX.cjs → chunk-S2FUFMLW.cjs} +25 -25
- package/dist/{chunk-64F6OEEV.js → chunk-SGFTTJKO.js} +1 -1
- package/dist/{chunk-P7IL4CX3.js → chunk-TBCZCRQ5.js} +6 -6
- package/dist/{chunk-HETQETPV.cjs → chunk-UWQWMGJ7.cjs} +28 -17
- package/dist/{chunk-X2MNNV5H.cjs → chunk-WALCXC7J.cjs} +3 -3
- package/dist/{chunk-YBS5QGON.js → chunk-XGHGGBM3.js} +2 -2
- package/dist/{chunk-NKILEG3Y.cjs → chunk-YC5COB5V.cjs} +45 -45
- package/dist/{chunk-BVZ7W4HW.js → chunk-YEMCCYIF.js} +4 -4
- package/dist/chunk-YYYVS7CX.js +130 -0
- package/dist/{chunk-S2VWQX6T.cjs → chunk-Z3CVSPO3.cjs} +842 -1430
- package/dist/{chunk-PPXR22YC.cjs → chunk-Z5UWW3Z2.cjs} +707 -11
- package/dist/{chunk-JO5TLJPM.cjs → chunk-ZXCZYMN4.cjs} +37 -163
- package/dist/{cloud-tenants-2J7CPTKT.cjs → cloud-tenants-PFDF7O5U.cjs} +6 -5
- package/dist/{cloud-tenants-YOY2WLGC.js → cloud-tenants-TAKOWXLD.js} +5 -4
- package/dist/components/case-studies/index.cjs +17 -16
- package/dist/components/case-studies/index.js +6 -5
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/chat/types/message.types.d.ts +20 -16
- package/dist/components/chat/types/message.types.d.ts.map +1 -1
- package/dist/components/chat/types/unified-chat-state.types.d.ts +1 -1
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +7 -6
- package/dist/components/contact/index.js +6 -5
- package/dist/components/docs/index.cjs +10 -9
- package/dist/components/docs/index.js +9 -8
- package/dist/components/embeds/index.cjs +7 -6
- package/dist/components/embeds/index.js +6 -5
- package/dist/components/faq/index.cjs +7 -6
- package/dist/components/faq/index.js +6 -5
- package/dist/components/features/index.cjs +10 -5
- package/dist/components/features/index.js +9 -4
- package/dist/components/features/remote-session/index.d.ts +2 -0
- package/dist/components/features/remote-session/index.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-keep-modals.d.ts +3 -3
- package/dist/components/features/remote-session/remote-session-keep-modals.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-ticket-modals.d.ts +29 -0
- package/dist/components/features/remote-session/remote-session-ticket-modals.d.ts.map +1 -0
- package/dist/components/help-center-pages/index.cjs +71 -70
- package/dist/components/help-center-pages/index.js +17 -16
- package/dist/components/index.cjs +44 -39
- package/dist/components/index.js +22 -17
- package/dist/components/meeting-scheduler/index.cjs +33 -32
- package/dist/components/meeting-scheduler/index.js +5 -4
- package/dist/components/navigation/index.cjs +9 -8
- package/dist/components/navigation/index.js +8 -7
- package/dist/components/onboarding-guides/index.cjs +9 -8
- package/dist/components/onboarding-guides/index.js +8 -7
- package/dist/components/product-demo/index.cjs +7 -7
- package/dist/components/product-demo/index.js +7 -7
- package/dist/components/tickets/index.cjs +10 -9
- package/dist/components/tickets/index.js +9 -8
- package/dist/components/ui/autocomplete.d.ts +6 -0
- package/dist/components/ui/autocomplete.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +8 -7
- package/dist/components/ui/index.js +7 -6
- package/dist/{devices-5NADSKDZ.cjs → devices-KRCGZMGA.cjs} +7 -6
- package/dist/{devices-EQXXILXW.js → devices-LHEX7O5T.js} +5 -4
- package/dist/hooks/index.cjs +6 -4
- package/dist/hooks/index.js +5 -3
- package/dist/index.cjs +17 -11
- package/dist/index.js +18 -12
- package/dist/{knowledge-LHQYZJE7.cjs → knowledge-KLVPVEYZ.cjs} +7 -6
- package/dist/{knowledge-YCQITBJB.js → knowledge-RZSFNR33.js} +5 -4
- package/dist/{logs-LZNXGOSW.js → logs-E5DOV5JO.js} +5 -4
- package/dist/{logs-DUVKSQU3.cjs → logs-OX3XTVL2.cjs} +14 -13
- package/dist/{policies-5H74FS4S.cjs → policies-FOSCIZGK.cjs} +10 -9
- package/dist/{policies-VYWOJ7IF.js → policies-MC2S4S5G.js} +5 -4
- package/dist/{remote-session-R6VAFESR.cjs → remote-session-DRFE5XZE.cjs} +4 -3
- package/dist/{remote-session-GSGZOFDX.js → remote-session-JQ2BPIE3.js} +2 -1
- package/dist/{software-update-MSDY3OLX.js → software-update-D4OEIH65.js} +7 -5
- package/dist/{software-update-VRRX5U4W.cjs → software-update-HOBSTWVO.cjs} +12 -10
- package/package.json +1 -1
- package/src/chat-protocol/nats-decoder.ts +10 -8
- package/src/chat-protocol/source-metadata.ts +25 -2
- package/src/components/chat/types/message.types.ts +21 -15
- package/src/components/chat/types/unified-chat-state.types.ts +1 -1
- package/src/components/chat/utils/process-historical-messages.ts +12 -4
- package/src/components/features/remote-session/index.ts +2 -0
- package/src/components/features/remote-session/remote-session-keep-modals.tsx +4 -4
- package/src/components/features/remote-session/remote-session-ticket-modals.tsx +140 -0
- package/src/components/ui/autocomplete.tsx +18 -4
|
@@ -5,13 +5,13 @@ var _chunkHWVUR735cjs = require('./chunk-HWVUR735.cjs');
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkNDZ5ZXOQcjs = require('./chunk-NDZ5ZXOQ.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
var _chunkMA4Q5RBPcjs = require('./chunk-MA4Q5RBP.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunk6A43ZDWVcjs = require('./chunk-6A43ZDWV.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
var _chunkGEDY7HQIcjs = require('./chunk-GEDY7HQI.cjs');
|
|
@@ -26,14 +26,14 @@ var _chunkGEDY7HQIcjs = require('./chunk-GEDY7HQI.cjs');
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _chunkZ3CVSPO3cjs = require('./chunk-Z3CVSPO3.cjs');
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
var
|
|
32
|
+
var _chunkZ5UWW3Z2cjs = require('./chunk-Z5UWW3Z2.cjs');
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _chunkZXCZYMN4cjs = require('./chunk-ZXCZYMN4.cjs');
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
var _chunkAUMKE74Mcjs = require('./chunk-AUMKE74M.cjs');
|
|
@@ -45,7 +45,7 @@ var _chunkAUMKE74Mcjs = require('./chunk-AUMKE74M.cjs');
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
var
|
|
48
|
+
var _chunkUWQWMGJ7cjs = require('./chunk-UWQWMGJ7.cjs');
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
var _chunkGQ7JJUITcjs = require('./chunk-GQ7JJUIT.cjs');
|
|
@@ -96,8 +96,8 @@ var _chunk3ATAYP36cjs = require('./chunk-3ATAYP36.cjs');
|
|
|
96
96
|
// src/components/shared/product-release/product-releases-view.tsx
|
|
97
97
|
var _jsxruntime = require('react/jsx-runtime');
|
|
98
98
|
var DEFAULT_ENDPOINT = "/api/releases";
|
|
99
|
-
var DEFAULT_SEARCH_PARAM_KEY =
|
|
100
|
-
var DEFAULT_STATUS_PARAM_KEY =
|
|
99
|
+
var DEFAULT_SEARCH_PARAM_KEY = _chunkUWQWMGJ7cjs.DEV_SECTION_PARAM_KEYS.search;
|
|
100
|
+
var DEFAULT_STATUS_PARAM_KEY = _chunkUWQWMGJ7cjs.DEV_SECTION_PARAM_KEYS.releaseStatus;
|
|
101
101
|
var DEFAULT_PAGE_PARAM_KEY = "page";
|
|
102
102
|
function ReleaseRow({
|
|
103
103
|
release,
|
|
@@ -106,7 +106,7 @@ function ReleaseRow({
|
|
|
106
106
|
}) {
|
|
107
107
|
const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
|
|
108
108
|
const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
|
|
109
|
-
const cta =
|
|
109
|
+
const cta = _chunkUWQWMGJ7cjs.resolveContentHref.call(void 0, _optionalChain([runtime, 'optionalAccess', _2 => _2.composeContentUrl]), {
|
|
110
110
|
type: "product_release",
|
|
111
111
|
slug: release.slug,
|
|
112
112
|
basePath,
|
|
@@ -114,9 +114,9 @@ function ReleaseRow({
|
|
|
114
114
|
});
|
|
115
115
|
const { target, rel } = _chunkETYLOZOBcjs.useEntityCardLink.call(void 0, { href: cta.href, targetPlatform: cta.targetPlatform });
|
|
116
116
|
const onClick = (e) => {
|
|
117
|
-
if (e.defaultPrevented ||
|
|
117
|
+
if (e.defaultPrevented || _chunkUWQWMGJ7cjs.isModifierClick.call(void 0, e) || target === "_blank") return;
|
|
118
118
|
e.preventDefault();
|
|
119
|
-
|
|
119
|
+
_chunkUWQWMGJ7cjs.executeNavigationImperative.call(void 0, {
|
|
120
120
|
runtime,
|
|
121
121
|
href: cta.href,
|
|
122
122
|
targetPlatform: cta.targetPlatform,
|
|
@@ -178,10 +178,10 @@ function ProductReleasesView({
|
|
|
178
178
|
router.replace(`${pathname}?${params.toString()}`, { scroll: false });
|
|
179
179
|
};
|
|
180
180
|
if (error) {
|
|
181
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
181
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.LoadError, { message: "Failed to load releases.", onRetry: reload }) });
|
|
182
182
|
}
|
|
183
183
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full flex-col gap-[40px]", className), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "min-h-[600px]", children: showEmpty ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex h-[600px] items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
184
|
-
|
|
184
|
+
_chunkNDZ5ZXOQcjs.ListEmptyState,
|
|
185
185
|
{
|
|
186
186
|
isFiltered: hasActiveFilters,
|
|
187
187
|
filtered: {
|
|
@@ -276,7 +276,7 @@ function MediaGalleryStrip({ items, className }) {
|
|
|
276
276
|
var _lucidereact = require('lucide-react');
|
|
277
277
|
|
|
278
278
|
|
|
279
|
-
var DefaultMarkdownRenderer =
|
|
279
|
+
var DefaultMarkdownRenderer = _chunkZ3CVSPO3cjs.RichMarkdownRenderer;
|
|
280
280
|
var DEFAULT_ENDPOINT2 = "/api/releases";
|
|
281
281
|
function ReleaseDetailPage({
|
|
282
282
|
authorHref,
|
|
@@ -294,8 +294,8 @@ function ReleaseDetailPage({
|
|
|
294
294
|
shell = true
|
|
295
295
|
}) {
|
|
296
296
|
const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
|
|
297
|
-
const captions =
|
|
298
|
-
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
297
|
+
const captions = _chunkUWQWMGJ7cjs.useCaptions.call(void 0, );
|
|
298
|
+
const renderShell = (node) => shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.PageShell, { children: node }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: node });
|
|
299
299
|
const seed = initialData == null ? void 0 : initialData;
|
|
300
300
|
const {
|
|
301
301
|
data: release,
|
|
@@ -354,7 +354,7 @@ function ReleaseDetailPage({
|
|
|
354
354
|
return renderShell(
|
|
355
355
|
// Match the loaded page's top offset (TitleBlock's
|
|
356
356
|
// `pt-[var(--spacing-system-l)]`) so content doesn't jump on load.
|
|
357
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
357
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "pt-[var(--spacing-system-l)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6A43ZDWVcjs.DetailPageSkeleton, { bare: true, metadataColumns: 4, showImageGallery: true }) })
|
|
358
358
|
);
|
|
359
359
|
}
|
|
360
360
|
if (error || !release) {
|
|
@@ -393,7 +393,7 @@ function ReleaseDetailPage({
|
|
|
393
393
|
const improvements = release.improvements;
|
|
394
394
|
return renderShell(
|
|
395
395
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
396
|
-
|
|
396
|
+
_chunkZ5UWW3Z2cjs.PageLayout,
|
|
397
397
|
{
|
|
398
398
|
title: releaseTitle,
|
|
399
399
|
subtitle: `Version: ${releaseVersion}`,
|
|
@@ -402,7 +402,7 @@ function ReleaseDetailPage({
|
|
|
402
402
|
backButton: showBackButton ? { label: backLabel, onClick: () => router.push(backHref) } : void 0,
|
|
403
403
|
children: [
|
|
404
404
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-6 content-md:space-y-8", children: [
|
|
405
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
405
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.EntityTagBadges, { tags: release.product_release_tags }),
|
|
406
406
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid w-full grid-cols-1 overflow-hidden rounded-md border border-ods-border content-md:grid-cols-4", children: [
|
|
407
407
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col gap-3 border-b border-ods-border bg-ods-card p-4 content-md:border-b-0 content-md:border-r", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-0", children: [
|
|
408
408
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: releaseType.toLocaleUpperCase() }),
|
|
@@ -473,7 +473,7 @@ function ReleaseDetailPage({
|
|
|
473
473
|
] })
|
|
474
474
|
] }) }) }),
|
|
475
475
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
476
|
-
|
|
476
|
+
_chunkZ3CVSPO3cjs.ReleaseChangelogSection,
|
|
477
477
|
{
|
|
478
478
|
title: "Breaking Changes",
|
|
479
479
|
entries: breakingChanges || [],
|
|
@@ -484,7 +484,7 @@ function ReleaseDetailPage({
|
|
|
484
484
|
}
|
|
485
485
|
),
|
|
486
486
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
487
|
-
|
|
487
|
+
_chunkZ3CVSPO3cjs.ReleaseChangelogSection,
|
|
488
488
|
{
|
|
489
489
|
title: "Features Added",
|
|
490
490
|
entries: featuresAdded || [],
|
|
@@ -494,7 +494,7 @@ function ReleaseDetailPage({
|
|
|
494
494
|
}
|
|
495
495
|
),
|
|
496
496
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
497
|
-
|
|
497
|
+
_chunkZ3CVSPO3cjs.ReleaseChangelogSection,
|
|
498
498
|
{
|
|
499
499
|
title: "Bugs Fixed",
|
|
500
500
|
entries: bugFixed || [],
|
|
@@ -504,7 +504,7 @@ function ReleaseDetailPage({
|
|
|
504
504
|
}
|
|
505
505
|
),
|
|
506
506
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
507
|
-
|
|
507
|
+
_chunkZ3CVSPO3cjs.ReleaseChangelogSection,
|
|
508
508
|
{
|
|
509
509
|
title: "Improvements",
|
|
510
510
|
entries: improvements || [],
|
|
@@ -530,7 +530,7 @@ function ReleaseDetailPage({
|
|
|
530
530
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "tracking-[-0.28px] text-ods-text-secondary text-h5", children: "Related Enhancements and Bug-fixes" }),
|
|
531
531
|
(() => {
|
|
532
532
|
const deliveryCount = deliveryData ? deliveryData.completed.length + deliveryData.inProgress.length : 0;
|
|
533
|
-
return deliveryLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
533
|
+
return deliveryLoading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: deliveryLoading }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.FadePreview, { hiddenCount: deliveryCount - 1, collapsedHeight: 300, resetKey: deliveryCount, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "space-y-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DeliverySection, { data: deliveryData, isLoading: false }) }) });
|
|
534
534
|
})()
|
|
535
535
|
] }),
|
|
536
536
|
(_optionalChain([githubReleases, 'optionalAccess', _10 => _10.length]) || _optionalChain([knowledgeBaseLinks, 'optionalAccess', _11 => _11.length]) || migrationGuideUrl || documentationUrl) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-full space-y-1", children: [
|
|
@@ -609,7 +609,7 @@ function ReleaseDetailPage({
|
|
|
609
609
|
// src/components/shared/product-release/release-detail-skeleton.tsx
|
|
610
610
|
|
|
611
611
|
function ReleaseDetailSkeleton() {
|
|
612
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
612
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6A43ZDWVcjs.DetailPageSkeleton, { metadataColumns: 4, showImageGallery: true });
|
|
613
613
|
}
|
|
614
614
|
|
|
615
615
|
// src/components/shared/roadmap/use-roadmap-voting.ts
|
|
@@ -629,10 +629,10 @@ function readStoredVotes(storageKey) {
|
|
|
629
629
|
function useRoadmapVoting(options = {}) {
|
|
630
630
|
const voteApiEndpoint = _nullishCoalesce(options.voteApiEndpoint, () => ( DEFAULT_VOTE_ENDPOINT));
|
|
631
631
|
const storageKey = _nullishCoalesce(options.storageKey, () => ( DEFAULT_STORAGE_KEY));
|
|
632
|
-
const { getSignals } =
|
|
632
|
+
const { getSignals } = _chunkZXCZYMN4cjs.useHumanitySignals.call(void 0, );
|
|
633
633
|
const [votes, setVotes] = _react.useState.call(void 0, NO_VOTES);
|
|
634
634
|
const [loadedKey, setLoadedKey] = _react.useState.call(void 0, null);
|
|
635
|
-
const hydrated =
|
|
635
|
+
const hydrated = _chunkUWQWMGJ7cjs.useIsHydrated.call(void 0, );
|
|
636
636
|
if (hydrated && loadedKey !== storageKey) {
|
|
637
637
|
setLoadedKey(storageKey);
|
|
638
638
|
setVotes(readStoredVotes(storageKey));
|
|
@@ -784,7 +784,7 @@ function RoadmapGridSingle({
|
|
|
784
784
|
_chunkETYLOZOBcjs.RoadmapCard,
|
|
785
785
|
{
|
|
786
786
|
item,
|
|
787
|
-
id:
|
|
787
|
+
id: _chunkUWQWMGJ7cjs.devSectionAnchorId.call(void 0, "roadmap", item.id),
|
|
788
788
|
userVote: getVote(item.id),
|
|
789
789
|
onVote: (voteType) => onVote(item.id, voteType),
|
|
790
790
|
isVoting: votingTasks.has(item.id)
|
|
@@ -900,7 +900,7 @@ function RoadmapGrid({
|
|
|
900
900
|
);
|
|
901
901
|
}
|
|
902
902
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
903
|
-
|
|
903
|
+
_chunkZ3CVSPO3cjs.Accordion,
|
|
904
904
|
{
|
|
905
905
|
type: "multiple",
|
|
906
906
|
value: expandedQuarters,
|
|
@@ -910,13 +910,13 @@ function RoadmapGrid({
|
|
|
910
910
|
const itemCount = _optionalChain([itemsByQuarter, 'access', _20 => _20[quarter], 'optionalAccess', _21 => _21.length]) || 0;
|
|
911
911
|
const isExpanded = expandedQuarters.includes(quarter);
|
|
912
912
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
913
|
-
|
|
913
|
+
_chunkZ3CVSPO3cjs.AccordionItem,
|
|
914
914
|
{
|
|
915
915
|
value: quarter,
|
|
916
916
|
id: `quarter-${quarter.replace(/\s+/g, "-").toLowerCase()}`,
|
|
917
917
|
className: "border-0",
|
|
918
918
|
children: [
|
|
919
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
919
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.AccordionTrigger, { className: "w-full p-0 hover:no-underline [&>svg]:ml-auto [&>svg]:h-5 [&>svg]:w-5 [&>svg]:shrink-0 [&>svg]:text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
920
920
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
921
921
|
"h3",
|
|
922
922
|
{
|
|
@@ -946,7 +946,7 @@ function RoadmapGrid({
|
|
|
946
946
|
}
|
|
947
947
|
)
|
|
948
948
|
] }) }),
|
|
949
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
949
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.AccordionContent, { className: "overflow-hidden pb-0 pt-4 data-[state=closed]:animate-none data-[state=open]:animate-none", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
950
950
|
RoadmapGridSingle,
|
|
951
951
|
{
|
|
952
952
|
items: itemsByQuarter[quarter],
|
|
@@ -998,8 +998,8 @@ function RoadmapGridSkeleton({ count = 4, showLeftMargin = true }) {
|
|
|
998
998
|
|
|
999
999
|
|
|
1000
1000
|
var DEFAULT_ENDPOINT3 = "/api/roadmap";
|
|
1001
|
-
var DEFAULT_SEARCH_PARAM_KEY2 =
|
|
1002
|
-
var DEFAULT_STATUS_PARAM_KEY2 =
|
|
1001
|
+
var DEFAULT_SEARCH_PARAM_KEY2 = _chunkUWQWMGJ7cjs.DEV_SECTION_PARAM_KEYS.search;
|
|
1002
|
+
var DEFAULT_STATUS_PARAM_KEY2 = _chunkUWQWMGJ7cjs.DEV_SECTION_PARAM_KEYS.status;
|
|
1003
1003
|
function RoadmapView({
|
|
1004
1004
|
endpoint = DEFAULT_ENDPOINT3,
|
|
1005
1005
|
initialItems,
|
|
@@ -1020,9 +1020,9 @@ function RoadmapView({
|
|
|
1020
1020
|
const initialData = _react.useMemo.call(void 0, () => initialItems ? { items: initialItems } : void 0, [initialItems]);
|
|
1021
1021
|
const { data, setData, isLoading, error, reload } = _chunkGEDY7HQIcjs.useSelfFetch.call(void 0, url, { initialData });
|
|
1022
1022
|
const items = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _22 => _22.items]), () => ( []));
|
|
1023
|
-
|
|
1023
|
+
_chunkZXCZYMN4cjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkGQ7JJUITcjs.STICKY_HEADER_OFFSET_PX });
|
|
1024
1024
|
if (error) {
|
|
1025
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1025
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.LoadError, { message: "Failed to load roadmap.", onRetry: reload });
|
|
1026
1026
|
}
|
|
1027
1027
|
if (isLoading && !data) {
|
|
1028
1028
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RoadmapGridSkeleton, { showLeftMargin });
|
|
@@ -1075,7 +1075,7 @@ function DeliveryTable({ items, isLoading = false }) {
|
|
|
1075
1075
|
// → `#delivery-<external_id>`; `useScrollToHash` in
|
|
1076
1076
|
// `delivery-lists.tsx` finds the row by id and scrolls. The
|
|
1077
1077
|
// outer wrapper here ONLY exists for the row separators.
|
|
1078
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border last:border-b-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1078
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border last:border-b-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNDZ5ZXOQcjs.DeliveryRow, { item, id: _chunkUWQWMGJ7cjs.devSectionAnchorId.call(void 0, "delivery", item.id) }) }, item.id)
|
|
1079
1079
|
)) }) });
|
|
1080
1080
|
}
|
|
1081
1081
|
|
|
@@ -1084,8 +1084,8 @@ function DeliveryTable({ items, isLoading = false }) {
|
|
|
1084
1084
|
|
|
1085
1085
|
var DEFAULT_COMPLETED_ENDPOINT = "/api/delivery/completed";
|
|
1086
1086
|
var DEFAULT_IN_PROGRESS_ENDPOINT = "/api/delivery/in-progress";
|
|
1087
|
-
var DEFAULT_SEARCH_PARAM_KEY3 =
|
|
1088
|
-
var DEFAULT_TASK_TYPE_PARAM_KEY =
|
|
1087
|
+
var DEFAULT_SEARCH_PARAM_KEY3 = _chunkUWQWMGJ7cjs.DEV_SECTION_PARAM_KEYS.search;
|
|
1088
|
+
var DEFAULT_TASK_TYPE_PARAM_KEY = _chunkUWQWMGJ7cjs.DEV_SECTION_PARAM_KEYS.deliveryTaskType;
|
|
1089
1089
|
function DeliveryLists({
|
|
1090
1090
|
completedApiEndpoint = DEFAULT_COMPLETED_ENDPOINT,
|
|
1091
1091
|
inProgressApiEndpoint = DEFAULT_IN_PROGRESS_ENDPOINT,
|
|
@@ -1146,17 +1146,17 @@ function DeliveryLists({
|
|
|
1146
1146
|
}, [searchQuery, taskTypeFilter, completedApiEndpoint, inProgressApiEndpoint, searchParamKey, taskTypeParamKey]);
|
|
1147
1147
|
const filteredCompleted = _optionalChain([data, 'optionalAccess', _23 => _23.completed]) || [];
|
|
1148
1148
|
const filteredInProgress = _optionalChain([data, 'optionalAccess', _24 => _24.inProgress]) || [];
|
|
1149
|
-
|
|
1149
|
+
_chunkZXCZYMN4cjs.useScrollToHash.call(void 0, data, { headerOffset: _chunkGQ7JJUITcjs.STICKY_HEADER_OFFSET_PX });
|
|
1150
1150
|
const showCompleted = true;
|
|
1151
1151
|
const showInProgress = true;
|
|
1152
1152
|
const hasActiveFilters = searchQuery !== "" || taskTypeFilter !== "all";
|
|
1153
1153
|
const hasResults = showCompleted && filteredCompleted.length > 0 || showInProgress && filteredInProgress.length > 0;
|
|
1154
1154
|
if (error) {
|
|
1155
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1155
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.LoadError, { message: error, onRetry: () => window.location.reload() }) });
|
|
1156
1156
|
}
|
|
1157
1157
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex w-full flex-col gap-[40px]", children: [
|
|
1158
1158
|
!isLoading && !hasResults && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1159
|
-
|
|
1159
|
+
_chunkNDZ5ZXOQcjs.ListEmptyState,
|
|
1160
1160
|
{
|
|
1161
1161
|
isFiltered: hasActiveFilters,
|
|
1162
1162
|
filtered: {
|
|
@@ -1310,7 +1310,7 @@ function LegalDocumentPage({
|
|
|
1310
1310
|
initialData = null,
|
|
1311
1311
|
initialLastUpdatedLabel = null,
|
|
1312
1312
|
apiEndpoint,
|
|
1313
|
-
MarkdownRenderer =
|
|
1313
|
+
MarkdownRenderer = _chunkZ3CVSPO3cjs.RichMarkdownRenderer,
|
|
1314
1314
|
backButton,
|
|
1315
1315
|
shell = true
|
|
1316
1316
|
}) {
|
|
@@ -1323,7 +1323,7 @@ function LegalDocumentPage({
|
|
|
1323
1323
|
const fallbackLastUpdatedLabel = _optionalChain([data, 'optionalAccess', _27 => _27.lastSynced]) != null ? _chunkF5BPGWGTcjs.formatLegalDate.call(void 0, data.lastSynced) : null;
|
|
1324
1324
|
const effectiveLastUpdatedLabel = _nullishCoalesce(initialLastUpdatedLabel, () => ( fallbackLastUpdatedLabel));
|
|
1325
1325
|
const subtitle = effectiveLastUpdatedLabel ? `Last Updated: ${effectiveLastUpdatedLabel}` : fallbackDescription;
|
|
1326
|
-
const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
1326
|
+
const inner = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkZ5UWW3Z2cjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: [
|
|
1327
1327
|
_optionalChain([data, 'optionalAccess', _28 => _28.sourceFile]) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "p", { className: "text-ods-text-secondary opacity-75 text-h6", children: [
|
|
1328
1328
|
"Source: ",
|
|
1329
1329
|
data.sourceFile
|
|
@@ -1363,7 +1363,7 @@ function LegalDocumentPage({
|
|
|
1363
1363
|
] })
|
|
1364
1364
|
] }) }) }) }) })
|
|
1365
1365
|
] });
|
|
1366
|
-
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1366
|
+
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ3CVSPO3cjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
|
|
1367
1367
|
}
|
|
1368
1368
|
|
|
1369
1369
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
useOptionalTicketLive
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-JPD4NXH6.js";
|
|
5
5
|
import {
|
|
6
6
|
AppLayoutDrawerContainerContext,
|
|
7
7
|
AppLayoutDrawerCoordinationContext,
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
UnreadCountBadge,
|
|
13
13
|
UnreadDot,
|
|
14
14
|
useOptionalNotifications
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-N2PF5CFX.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveActiveSection,
|
|
18
18
|
useActiveSection,
|
|
19
19
|
useFocusTrap,
|
|
20
20
|
useNavMenus
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-IWCPXJEE.js";
|
|
22
22
|
import {
|
|
23
23
|
useLocalStorage
|
|
24
24
|
} from "./chunk-3K5ZLZE7.js";
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
OVERLAY_BACKDROP_CLASS,
|
|
29
29
|
buildTicketOpenHref,
|
|
30
30
|
useIsHydrated
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-JH2SIWPQ.js";
|
|
32
32
|
import {
|
|
33
33
|
useHeaderHeight
|
|
34
34
|
} from "./chunk-CMZ3QTFQ.js";
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/hooks/ui/use-auto-limit-tags.ts
|
|
4
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
5
|
+
function useAutoLimitTags({
|
|
6
|
+
count,
|
|
7
|
+
limitTags = "auto",
|
|
8
|
+
placeholder = "",
|
|
9
|
+
reserveInputWidth = true
|
|
10
|
+
}) {
|
|
11
|
+
const middleRef = useRef(null);
|
|
12
|
+
const measureRef = useRef(null);
|
|
13
|
+
const textMeasureRef = useRef(null);
|
|
14
|
+
const badgeRef = useRef(null);
|
|
15
|
+
const inputRef = useRef(null);
|
|
16
|
+
const [measuredCount, setMeasuredCount] = useState(null);
|
|
17
|
+
const recalculate = useCallback(() => {
|
|
18
|
+
const middle = middleRef.current;
|
|
19
|
+
const measure2 = measureRef.current;
|
|
20
|
+
if (!middle || !measure2) {
|
|
21
|
+
setMeasuredCount(null);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (count === 0) {
|
|
25
|
+
setMeasuredCount(0);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const cs = getComputedStyle(middle);
|
|
29
|
+
const padL = parseFloat(cs.paddingLeft) || 0;
|
|
30
|
+
const padR = parseFloat(cs.paddingRight) || 0;
|
|
31
|
+
const gap = parseFloat(cs.gap) || 0;
|
|
32
|
+
const middleW = middle.clientWidth;
|
|
33
|
+
let inputReservedW = 0;
|
|
34
|
+
let trailingGap = 0;
|
|
35
|
+
if (reserveInputWidth) {
|
|
36
|
+
const textW = textMeasureRef.current?.offsetWidth ?? 60;
|
|
37
|
+
const inputMinW = inputRef.current ? parseFloat(getComputedStyle(inputRef.current).minWidth) || 60 : 60;
|
|
38
|
+
inputReservedW = Math.max(textW + 8, inputMinW);
|
|
39
|
+
trailingGap = gap;
|
|
40
|
+
}
|
|
41
|
+
const available = middleW - padL - padR - inputReservedW - trailingGap;
|
|
42
|
+
const tagEls = Array.from(measure2.children);
|
|
43
|
+
const widths = tagEls.map((el) => el.offsetWidth);
|
|
44
|
+
let total = 0;
|
|
45
|
+
for (let i = 0; i < widths.length; i++) {
|
|
46
|
+
total += widths[i] + (i > 0 ? gap : 0);
|
|
47
|
+
}
|
|
48
|
+
if (total <= available) {
|
|
49
|
+
setMeasuredCount(count);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const badgeW = badgeRef.current?.offsetWidth ?? 40;
|
|
53
|
+
const spaceWithBadge = available - badgeW - gap;
|
|
54
|
+
let used = 0;
|
|
55
|
+
let fitCount = 0;
|
|
56
|
+
for (let i = 0; i < widths.length; i++) {
|
|
57
|
+
const need = widths[i] + (i > 0 ? gap : 0);
|
|
58
|
+
if (used + need > spaceWithBadge) break;
|
|
59
|
+
used += need;
|
|
60
|
+
fitCount++;
|
|
61
|
+
}
|
|
62
|
+
setMeasuredCount(Math.max(0, fitCount));
|
|
63
|
+
}, [count, placeholder, reserveInputWidth]);
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (limitTags !== "auto") return void 0;
|
|
66
|
+
const el = middleRef.current;
|
|
67
|
+
if (!el) return void 0;
|
|
68
|
+
const ro = new ResizeObserver(recalculate);
|
|
69
|
+
ro.observe(el);
|
|
70
|
+
return () => ro.disconnect();
|
|
71
|
+
}, [recalculate, limitTags]);
|
|
72
|
+
const visibleCount = limitTags !== "auto" ? Math.min(limitTags, count) : measuredCount === null ? count : Math.min(measuredCount, count);
|
|
73
|
+
return { visibleCount, middleRef, measureRef, textMeasureRef, badgeRef, inputRef };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// src/hooks/ui/use-keyboard-collision-padding.ts
|
|
77
|
+
import { useSyncExternalStore } from "react";
|
|
78
|
+
var KEYBOARD_INSET_VAR = "--of-keyboard-inset";
|
|
79
|
+
function measure() {
|
|
80
|
+
if (typeof document === "undefined") return 0;
|
|
81
|
+
const inset = Number.parseFloat(getComputedStyle(document.documentElement).getPropertyValue(KEYBOARD_INSET_VAR));
|
|
82
|
+
if (!(inset > 0)) return 0;
|
|
83
|
+
const layoutHeight = document.documentElement.clientHeight;
|
|
84
|
+
const viewport = window.visualViewport;
|
|
85
|
+
const viewportBottom = viewport ? viewport.offsetTop + viewport.height : layoutHeight;
|
|
86
|
+
return Math.max(0, Math.round(viewportBottom - (layoutHeight - inset)));
|
|
87
|
+
}
|
|
88
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
89
|
+
var padding = 0;
|
|
90
|
+
var teardown = null;
|
|
91
|
+
function sync() {
|
|
92
|
+
const next = measure();
|
|
93
|
+
if (next === padding) return;
|
|
94
|
+
padding = next;
|
|
95
|
+
for (const notify of listeners) notify();
|
|
96
|
+
}
|
|
97
|
+
function subscribe(onStoreChange) {
|
|
98
|
+
listeners.add(onStoreChange);
|
|
99
|
+
if (listeners.size === 1) {
|
|
100
|
+
padding = measure();
|
|
101
|
+
const observer = new MutationObserver(sync);
|
|
102
|
+
observer.observe(document.documentElement, { attributes: true, attributeFilter: ["style"] });
|
|
103
|
+
const viewport = window.visualViewport;
|
|
104
|
+
viewport?.addEventListener("resize", sync);
|
|
105
|
+
viewport?.addEventListener("scroll", sync);
|
|
106
|
+
teardown = () => {
|
|
107
|
+
observer.disconnect();
|
|
108
|
+
viewport?.removeEventListener("resize", sync);
|
|
109
|
+
viewport?.removeEventListener("scroll", sync);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
return () => {
|
|
113
|
+
listeners.delete(onStoreChange);
|
|
114
|
+
if (listeners.size > 0) return;
|
|
115
|
+
teardown?.();
|
|
116
|
+
teardown = null;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
function useKeyboardCollisionPadding() {
|
|
120
|
+
return useSyncExternalStore(
|
|
121
|
+
subscribe,
|
|
122
|
+
() => padding,
|
|
123
|
+
() => 0
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export {
|
|
128
|
+
useAutoLimitTags,
|
|
129
|
+
useKeyboardCollisionPadding
|
|
130
|
+
};
|