@flamingo-stack/openframe-frontend-core 0.0.593 → 0.0.594-snapshot.20260905135632
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/{chunk-WY2GQ62H.cjs → chunk-23UJ4EBJ.cjs} +10 -10
- package/dist/{chunk-WY2GQ62H.cjs.map → chunk-23UJ4EBJ.cjs.map} +1 -1
- package/dist/{chunk-KPO6TWEV.js → chunk-2WLW5HDU.js} +7 -7
- package/dist/{chunk-GEP3O6NU.js → chunk-3WZLPCJ7.js} +3 -3
- package/dist/{chunk-NEFNARFF.cjs → chunk-4R6AZFNU.cjs} +30 -30
- package/dist/{chunk-NEFNARFF.cjs.map → chunk-4R6AZFNU.cjs.map} +1 -1
- package/dist/{chunk-S6G6KJ57.cjs → chunk-4ZY5MP46.cjs} +15 -15
- package/dist/{chunk-S6G6KJ57.cjs.map → chunk-4ZY5MP46.cjs.map} +1 -1
- package/dist/{chunk-3ZHDEZQB.js → chunk-63PXZXCT.js} +4 -4
- package/dist/{chunk-2KISKWOY.cjs → chunk-6PEFK4UH.cjs} +6 -6
- package/dist/{chunk-2KISKWOY.cjs.map → chunk-6PEFK4UH.cjs.map} +1 -1
- package/dist/{chunk-MPNCYET3.js → chunk-7N2NJPUK.js} +3 -3
- package/dist/{chunk-J3D2WHWC.js → chunk-A57HKYLY.js} +6 -6
- package/dist/{chunk-I7JYX5O3.js → chunk-AQ65NLGJ.js} +88 -5
- package/dist/{chunk-I7JYX5O3.js.map → chunk-AQ65NLGJ.js.map} +1 -1
- package/dist/{chunk-XH5QBMXD.js → chunk-BKMSI2AW.js} +2 -2
- package/dist/{chunk-YSJ4TA6V.cjs → chunk-CPWX46TL.cjs} +6 -6
- package/dist/{chunk-YSJ4TA6V.cjs.map → chunk-CPWX46TL.cjs.map} +1 -1
- package/dist/{chunk-5SGTTSQN.cjs → chunk-CZM2H5F5.cjs} +5 -5
- package/dist/{chunk-5SGTTSQN.cjs.map → chunk-CZM2H5F5.cjs.map} +1 -1
- package/dist/{chunk-X7XO73M5.js → chunk-DYXVQ24Q.js} +3 -3
- package/dist/{chunk-OAAQKMMU.cjs → chunk-EO5GYWIX.cjs} +28 -28
- package/dist/{chunk-OAAQKMMU.cjs.map → chunk-EO5GYWIX.cjs.map} +1 -1
- package/dist/{chunk-CMAO4PPL.cjs → chunk-FHEN27GM.cjs} +11 -11
- package/dist/{chunk-CMAO4PPL.cjs.map → chunk-FHEN27GM.cjs.map} +1 -1
- package/dist/{chunk-VDAMJEMR.cjs → chunk-HGWC7ABT.cjs} +57 -57
- package/dist/{chunk-VDAMJEMR.cjs.map → chunk-HGWC7ABT.cjs.map} +1 -1
- package/dist/{chunk-4DRZZWC7.cjs → chunk-JGDDPNSC.cjs} +192 -192
- package/dist/{chunk-4DRZZWC7.cjs.map → chunk-JGDDPNSC.cjs.map} +1 -1
- package/dist/{chunk-2VOBGNEY.cjs → chunk-MDUAU74C.cjs} +28 -28
- package/dist/{chunk-2VOBGNEY.cjs.map → chunk-MDUAU74C.cjs.map} +1 -1
- package/dist/{chunk-QHTDFF52.cjs → chunk-MHORK6KM.cjs} +3 -3
- package/dist/{chunk-QHTDFF52.cjs.map → chunk-MHORK6KM.cjs.map} +1 -1
- package/dist/{chunk-ZZHHKE2Q.js → chunk-MUNVPRT2.js} +2 -2
- package/dist/{chunk-NRHU4V3E.cjs → chunk-MX7DNV7X.cjs} +33 -33
- package/dist/{chunk-NRHU4V3E.cjs.map → chunk-MX7DNV7X.cjs.map} +1 -1
- package/dist/{chunk-2645GIM2.js → chunk-NNMAMTA5.js} +3 -3
- package/dist/{chunk-2PMCHL37.cjs → chunk-OGE4GSLZ.cjs} +80 -80
- package/dist/{chunk-2PMCHL37.cjs.map → chunk-OGE4GSLZ.cjs.map} +1 -1
- package/dist/{chunk-WZHARPOT.cjs → chunk-OWWICTQR.cjs} +21 -21
- package/dist/{chunk-WZHARPOT.cjs.map → chunk-OWWICTQR.cjs.map} +1 -1
- package/dist/{chunk-GXPOEAXL.js → chunk-PYEJL2UG.js} +3 -3
- package/dist/{chunk-UG27ITVP.js → chunk-QLJMXCB5.js} +5 -5
- package/dist/{chunk-YAZY24ZK.js → chunk-SEVD4AST.js} +5 -5
- package/dist/{chunk-Y6I2DGKC.cjs → chunk-SK4IVCSI.cjs} +10 -2
- package/dist/{chunk-Y6I2DGKC.cjs.map → chunk-SK4IVCSI.cjs.map} +1 -1
- package/dist/{chunk-VUGQ3Z6E.js → chunk-T2JAJ7MR.js} +3 -3
- package/dist/{chunk-BTF3CNDP.js → chunk-TDEQ26A2.js} +10 -2
- package/dist/{chunk-BTF3CNDP.js.map → chunk-TDEQ26A2.js.map} +1 -1
- package/dist/{chunk-R2J6XMP6.js → chunk-U4QRK4MX.js} +3 -3
- package/dist/{chunk-MV3XJXPG.js → chunk-UPKN5CYH.js} +6 -6
- package/dist/{chunk-TVPJ5DIB.cjs → chunk-YYHYCQD6.cjs} +437 -354
- package/dist/chunk-YYHYCQD6.cjs.map +1 -0
- package/dist/{chunk-ZR72HRUJ.js → chunk-ZRXJX3JK.js} +4 -4
- package/dist/{chunk-HMRWH2HC.cjs → chunk-ZY3Z3F4X.cjs} +20 -20
- package/dist/{chunk-HMRWH2HC.cjs.map → chunk-ZY3Z3F4X.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +10 -10
- package/dist/components/case-studies/index.js +4 -4
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +3 -3
- package/dist/components/chat/index.js +2 -2
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +8 -8
- package/dist/components/docs/index.js +7 -7
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +5 -5
- package/dist/components/faq/index.js +4 -4
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +24 -24
- package/dist/components/help-center-pages/index.js +15 -15
- package/dist/components/index.cjs +53 -53
- package/dist/components/index.js +15 -15
- package/dist/components/meeting-scheduler/index.cjs +31 -31
- package/dist/components/meeting-scheduler/index.js +3 -3
- package/dist/components/navigation/index.cjs +7 -7
- package/dist/components/navigation/index.js +6 -6
- package/dist/components/onboarding-guides/index.cjs +7 -7
- package/dist/components/onboarding-guides/index.js +6 -6
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +8 -8
- package/dist/components/tickets/index.js +7 -7
- package/dist/components/ui/index.cjs +4 -4
- package/dist/components/ui/index.js +3 -3
- package/dist/index.cjs +8 -8
- package/dist/index.js +7 -7
- package/dist/utils/index.cjs +25 -3
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js +25 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/list-url.d.ts.map +1 -1
- package/dist/utils/source-icons.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/entity-cards/dispatch.tsx +88 -0
- package/src/utils/__tests__/list-url.test.ts +6 -0
- package/src/utils/list-url.ts +8 -0
- package/src/utils/source-icons.ts +27 -0
- package/dist/chunk-TVPJ5DIB.cjs.map +0 -1
- /package/dist/{chunk-KPO6TWEV.js.map → chunk-2WLW5HDU.js.map} +0 -0
- /package/dist/{chunk-GEP3O6NU.js.map → chunk-3WZLPCJ7.js.map} +0 -0
- /package/dist/{chunk-3ZHDEZQB.js.map → chunk-63PXZXCT.js.map} +0 -0
- /package/dist/{chunk-MPNCYET3.js.map → chunk-7N2NJPUK.js.map} +0 -0
- /package/dist/{chunk-J3D2WHWC.js.map → chunk-A57HKYLY.js.map} +0 -0
- /package/dist/{chunk-XH5QBMXD.js.map → chunk-BKMSI2AW.js.map} +0 -0
- /package/dist/{chunk-X7XO73M5.js.map → chunk-DYXVQ24Q.js.map} +0 -0
- /package/dist/{chunk-ZZHHKE2Q.js.map → chunk-MUNVPRT2.js.map} +0 -0
- /package/dist/{chunk-2645GIM2.js.map → chunk-NNMAMTA5.js.map} +0 -0
- /package/dist/{chunk-GXPOEAXL.js.map → chunk-PYEJL2UG.js.map} +0 -0
- /package/dist/{chunk-UG27ITVP.js.map → chunk-QLJMXCB5.js.map} +0 -0
- /package/dist/{chunk-YAZY24ZK.js.map → chunk-SEVD4AST.js.map} +0 -0
- /package/dist/{chunk-VUGQ3Z6E.js.map → chunk-T2JAJ7MR.js.map} +0 -0
- /package/dist/{chunk-R2J6XMP6.js.map → chunk-U4QRK4MX.js.map} +0 -0
- /package/dist/{chunk-MV3XJXPG.js.map → chunk-UPKN5CYH.js.map} +0 -0
- /package/dist/{chunk-ZR72HRUJ.js.map → chunk-ZRXJX3JK.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-url.d.ts","sourceRoot":"","sources":["../../src/utils/list-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAWH;;;;iEAIiE;AACjE,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAKtE;
|
|
1
|
+
{"version":3,"file":"list-url.d.ts","sourceRoot":"","sources":["../../src/utils/list-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAWH;;;;iEAIiE;AACjE,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAKtE;AAmED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,SAAK,GAAG,MAAM,GAAG,IAAI,CAa5F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-icons.d.ts","sourceRoot":"","sources":["../../src/utils/source-icons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"source-icons.d.ts","sourceRoot":"","sources":["../../src/utils/source-icons.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoDpD,CAAC;AAEF;;6DAE6D;AAC7D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGxF;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0DzD,CAAC;AAEF;;kEAEkE;AAClE,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoDpE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEjF"}
|
package/package.json
CHANGED
|
@@ -45,6 +45,7 @@ import { MingoIcon } from '../../icons';
|
|
|
45
45
|
import { ArrowRightUpIcon } from '../../icons-v2-generated/arrows/arrow-right-up-icon';
|
|
46
46
|
import { ClickupLogoIcon } from '../../icons-v2-generated/brand-logos/clickup-logo-icon';
|
|
47
47
|
import { SlackLogoGreyIcon } from '../../icons-v2-generated/brand-logos/slack-logo-grey-icon';
|
|
48
|
+
import { BuildingsIcon } from '../../icons-v2-generated/buildings/buildings-icon';
|
|
48
49
|
import { ChartBar01VerIcon } from '../../icons-v2-generated/charts/chart-bar-01-ver-icon';
|
|
49
50
|
import { ChartPieIcon } from '../../icons-v2-generated/charts/chart-pie-icon';
|
|
50
51
|
import { PresentationBarIcon } from '../../icons-v2-generated/charts/presentation-bar-icon';
|
|
@@ -53,6 +54,7 @@ import { CodeIcon } from '../../icons-v2-generated/coding/code-icon';
|
|
|
53
54
|
import { CodingCommitIcon } from '../../icons-v2-generated/coding/coding-commit-icon';
|
|
54
55
|
import { CodingPullRequestIcon } from '../../icons-v2-generated/coding/coding-pull-request-icon';
|
|
55
56
|
import { CalendarIcon } from '../../icons-v2-generated/date-and-time/calendar-icon';
|
|
57
|
+
import { ClipboardListIcon } from '../../icons-v2-generated/documents/clipboard-list-icon';
|
|
56
58
|
import { FileContentIcon } from '../../icons-v2-generated/documents/file-content-icon';
|
|
57
59
|
import { NewspaperIcon } from '../../icons-v2-generated/documents/newspaper-icon';
|
|
58
60
|
import { BankIcon } from '../../icons-v2-generated/finance/bank-icon';
|
|
@@ -616,6 +618,34 @@ function SlackChatCard({
|
|
|
616
618
|
);
|
|
617
619
|
}
|
|
618
620
|
|
|
621
|
+
/**
|
|
622
|
+
* Generic glyph card for ChatRef-shaped items (title / preview / url) whose
|
|
623
|
+
* only per-type variation is the leading icon — used by the ref-hydrated
|
|
624
|
+
* product-hub objects (design docs, tenants) and the people-hub feeds.
|
|
625
|
+
*/
|
|
626
|
+
function GlyphChatCard({
|
|
627
|
+
chatRef,
|
|
628
|
+
icon,
|
|
629
|
+
isNewTab,
|
|
630
|
+
discuss,
|
|
631
|
+
}: {
|
|
632
|
+
chatRef: ChatRef;
|
|
633
|
+
icon: React.ReactNode;
|
|
634
|
+
isNewTab: boolean;
|
|
635
|
+
discuss?: CardDiscussAction;
|
|
636
|
+
}) {
|
|
637
|
+
return (
|
|
638
|
+
<MingoInfoCard
|
|
639
|
+
title={chatRef.title}
|
|
640
|
+
description={chatRef.preview ?? undefined}
|
|
641
|
+
icon={icon}
|
|
642
|
+
anchorProps={buildAnchorProps(chatRef.url, isNewTab)}
|
|
643
|
+
menuGroups={cardMenuGroups(chatRef.url, discuss)}
|
|
644
|
+
menuAriaLabel="Card actions"
|
|
645
|
+
/>
|
|
646
|
+
);
|
|
647
|
+
}
|
|
648
|
+
|
|
619
649
|
function DataRoomDocChatCard({
|
|
620
650
|
chatRef,
|
|
621
651
|
isNewTab,
|
|
@@ -1312,6 +1342,61 @@ const GITHUB_CARD_CONFIGS: Record<string, GitHubCardConfig> = {
|
|
|
1312
1342
|
github_pr_review: { label: 'GitHub review', kind: 'pr_review' },
|
|
1313
1343
|
github_pr_review_public: { label: 'GitHub review (public)', kind: 'pr_review' },
|
|
1314
1344
|
};
|
|
1345
|
+
interface GlyphCardConfig {
|
|
1346
|
+
label: string;
|
|
1347
|
+
icon: () => React.ReactNode;
|
|
1348
|
+
}
|
|
1349
|
+
/** Product-hub internal objects hydrated by their per-object card routes
|
|
1350
|
+
* (`/api/design-docs`, `/api/openframe-tenants` — ChatRef-shaped items,
|
|
1351
|
+
* same preset as github / slack). Adding one = one line here + the
|
|
1352
|
+
* `list-url.ts` builder + the `source-icons.ts` label / icon / type entries. */
|
|
1353
|
+
const REF_GLYPH_CARD_CONFIGS: Record<string, GlyphCardConfig> = {
|
|
1354
|
+
design_doc: { label: 'Design doc', icon: () => <FileContentIcon size={24} /> },
|
|
1355
|
+
openframe_tenant: { label: 'OpenFrame tenant', icon: () => <BuildingsIcon size={24} /> },
|
|
1356
|
+
};
|
|
1357
|
+
function refGlyphRegistryEntries(): Record<string, ChatCardRegistryEntry> {
|
|
1358
|
+
return registryEntries(REF_GLYPH_CARD_CONFIGS, (cfg, docType) =>
|
|
1359
|
+
refHydratedEntry(docType, cfg.label, (displayRef, opts) => (
|
|
1360
|
+
<GlyphChatCard chatRef={displayRef} icon={cfg.icon()} isNewTab={opts.isNewTab} discuss={opts.discuss} />
|
|
1361
|
+
)),
|
|
1362
|
+
);
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1365
|
+
/** People-hub employee feeds hydrate from their EXISTING list APIs
|
|
1366
|
+
* (`/api/what-i-shipped?ids=`, `/api/how-i-work?ids=`) — entry-shaped rows
|
|
1367
|
+
* (title / summary / author), not ChatRefs, hence the bespoke row→display
|
|
1368
|
+
* mapping (the FAQ precedent). The destination comes from the ref (the
|
|
1369
|
+
* server-resolved entry url) or, on a bare marker, the host's
|
|
1370
|
+
* `composeContentUrl` seam for the type. */
|
|
1371
|
+
function fetchedEmployeeEntryDisplayRef(item: unknown, chatRef: ChatRef): ChatRef {
|
|
1372
|
+
const it = item as { title?: unknown; summary?: unknown; author?: { full_name?: unknown } | null };
|
|
1373
|
+
const title = typeof it?.title === 'string' && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
|
|
1374
|
+
const author = typeof it?.author?.full_name === 'string' ? it.author.full_name.trim() : '';
|
|
1375
|
+
const summary = typeof it?.summary === 'string' ? it.summary.trim() : '';
|
|
1376
|
+
const preview = [author, summary].filter(x => x.length > 0).join(' · ');
|
|
1377
|
+
return { ...chatRef, title, preview: preview.length > 0 ? preview : chatRef.preview };
|
|
1378
|
+
}
|
|
1379
|
+
const EMPLOYEE_ENTRY_CARD_CONFIGS: Record<string, GlyphCardConfig> = {
|
|
1380
|
+
what_i_shipped: { label: 'What I Shipped', icon: () => <Rocket02Icon size={24} /> },
|
|
1381
|
+
how_i_work: { label: 'How I Work', icon: () => <ClipboardListIcon size={24} /> },
|
|
1382
|
+
};
|
|
1383
|
+
function employeeEntryRegistryEntries(): Record<string, ChatCardRegistryEntry> {
|
|
1384
|
+
return registryEntries(EMPLOYEE_ENTRY_CARD_CONFIGS, (cfg, docType) => ({
|
|
1385
|
+
label: cfg.label,
|
|
1386
|
+
bareInline: true,
|
|
1387
|
+
contentRefType: docType,
|
|
1388
|
+
skeleton: () => <MingoInfoCardSkeleton />,
|
|
1389
|
+
render: (item, chatRef, opts) => (
|
|
1390
|
+
<GlyphChatCard
|
|
1391
|
+
chatRef={fetchedEmployeeEntryDisplayRef(item, chatRef)}
|
|
1392
|
+
icon={cfg.icon()}
|
|
1393
|
+
isNewTab={opts.isNewTab}
|
|
1394
|
+
discuss={opts.discuss}
|
|
1395
|
+
/>
|
|
1396
|
+
),
|
|
1397
|
+
}));
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1315
1400
|
function githubRegistryEntries(): Record<string, ChatCardRegistryEntry> {
|
|
1316
1401
|
return registryEntries(GITHUB_CARD_CONFIGS, (cfg, docType) =>
|
|
1317
1402
|
refHydratedEntry(docType, cfg.label, (displayRef, opts) => (
|
|
@@ -1423,6 +1508,9 @@ const CHAT_CARD_REGISTRY: Record<string, ChatCardRegistryEntry> = {
|
|
|
1423
1508
|
/>
|
|
1424
1509
|
),
|
|
1425
1510
|
},
|
|
1511
|
+
// ───────── ref-only types (no list endpoint; the ChatRef IS the card) ─────────
|
|
1512
|
+
...refGlyphRegistryEntries(),
|
|
1513
|
+
...employeeEntryRegistryEntries(),
|
|
1426
1514
|
slack_message: refHydratedEntry('slack_message', 'Slack message', (displayRef, opts) => (
|
|
1427
1515
|
<SlackChatCard chatRef={displayRef} isNewTab={opts.isNewTab} discuss={opts.discuss} />
|
|
1428
1516
|
)),
|
|
@@ -48,6 +48,12 @@ const BASELINE: Record<string, string> = {
|
|
|
48
48
|
profit_loss: '/api/financials/profit-loss?ids=a,b',
|
|
49
49
|
balance_sheet: '/api/financials/balance-sheet?ids=a,b',
|
|
50
50
|
cash_flow: '/api/financials/cash-flow?ids=a,b',
|
|
51
|
+
// 2026-09: hub-internal chat sources (people-hub feeds via their list APIs,
|
|
52
|
+
// product-hub design docs + tenants via per-object card routes).
|
|
53
|
+
what_i_shipped: '/api/what-i-shipped?ids=a,b&limit=2',
|
|
54
|
+
how_i_work: '/api/how-i-work?ids=a,b&limit=2',
|
|
55
|
+
design_doc: '/api/design-docs?ids=a,b',
|
|
56
|
+
openframe_tenant: '/api/openframe-tenants?ids=a,b',
|
|
51
57
|
};
|
|
52
58
|
|
|
53
59
|
describe('buildListUrl — byte parity with the hub mappers', () => {
|
package/src/utils/list-url.ts
CHANGED
|
@@ -104,6 +104,14 @@ const BUILDERS: Record<string, (ids: string[], base: string) => string> = {
|
|
|
104
104
|
profit_loss: (ids, b) => `${b}/api/financials/profit-loss?ids=${ids.join(',')}`,
|
|
105
105
|
balance_sheet: (ids, b) => `${b}/api/financials/balance-sheet?ids=${ids.join(',')}`,
|
|
106
106
|
cash_flow: (ids, b) => `${b}/api/financials/cash-flow?ids=${ids.join(',')}`,
|
|
107
|
+
// People-hub employee feeds — their EXISTING list APIs (`?ids=`, also feeding
|
|
108
|
+
// the related-content rail + author page), entry-shaped rows.
|
|
109
|
+
what_i_shipped: (ids, b) => `${b}/api/what-i-shipped?ids=${ids.join(',')}&limit=${ids.length}`,
|
|
110
|
+
how_i_work: (ids, b) => `${b}/api/how-i-work?ids=${ids.join(',')}&limit=${ids.length}`,
|
|
111
|
+
// Product-hub internal objects — per-object card-hydration routes
|
|
112
|
+
// (ChatRef-shaped items, `handleEntityCardList`), like github / slack.
|
|
113
|
+
design_doc: (ids, b) => `${b}/api/design-docs?ids=${ids.join(',')}`,
|
|
114
|
+
openframe_tenant: (ids, b) => `${b}/api/openframe-tenants?ids=${ids.join(',')}`,
|
|
107
115
|
};
|
|
108
116
|
|
|
109
117
|
/**
|
|
@@ -39,6 +39,7 @@ export const SOURCE_ICON_NAMES: Record<string, string> = {
|
|
|
39
39
|
events: 'calendar',
|
|
40
40
|
podcasts: 'headphones',
|
|
41
41
|
'customer-interviews': 'users',
|
|
42
|
+
faqs: 'info',
|
|
42
43
|
|
|
43
44
|
// Financials
|
|
44
45
|
'investor-updates': 'mail',
|
|
@@ -68,6 +69,14 @@ export const SOURCE_ICON_NAMES: Record<string, string> = {
|
|
|
68
69
|
|
|
69
70
|
// Communications
|
|
70
71
|
'slack-messages': 'slack',
|
|
72
|
+
|
|
73
|
+
// People-hub employee content
|
|
74
|
+
'what-i-shipped': 'package',
|
|
75
|
+
'how-i-work': 'book-open',
|
|
76
|
+
|
|
77
|
+
// Product-hub internal
|
|
78
|
+
'design-docs': 'file-text',
|
|
79
|
+
'openframe-tenants': 'globe',
|
|
71
80
|
};
|
|
72
81
|
|
|
73
82
|
/** Lookup an icon name by RagTableConfig.id. Returns undefined when
|
|
@@ -104,6 +113,7 @@ export const SOURCE_LABELS_BY_TABLE: Record<string, string> = {
|
|
|
104
113
|
events: 'Events',
|
|
105
114
|
podcasts: 'Podcasts',
|
|
106
115
|
'customer-interviews': 'Customer Interviews',
|
|
116
|
+
faqs: 'FAQs',
|
|
107
117
|
|
|
108
118
|
// Financials
|
|
109
119
|
'investor-updates': 'Investor Updates',
|
|
@@ -139,6 +149,14 @@ export const SOURCE_LABELS_BY_TABLE: Record<string, string> = {
|
|
|
139
149
|
|
|
140
150
|
// Communications
|
|
141
151
|
'slack-messages': 'OpenMSP Community',
|
|
152
|
+
|
|
153
|
+
// People-hub employee content
|
|
154
|
+
'what-i-shipped': 'What I Shipped',
|
|
155
|
+
'how-i-work': 'How I Work',
|
|
156
|
+
|
|
157
|
+
// Product-hub internal
|
|
158
|
+
'design-docs': 'Design Docs',
|
|
159
|
+
'openframe-tenants': 'OpenFrame Tenants',
|
|
142
160
|
};
|
|
143
161
|
|
|
144
162
|
/** Lookup a human-readable label by RagTableConfig.id. Falls back
|
|
@@ -183,6 +201,7 @@ export const DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID: Record<string, string> = {
|
|
|
183
201
|
event: 'events',
|
|
184
202
|
podcast: 'podcasts',
|
|
185
203
|
customer_interview: 'customer-interviews',
|
|
204
|
+
faq: 'faqs',
|
|
186
205
|
|
|
187
206
|
// Financials
|
|
188
207
|
investor_update: 'investor-updates',
|
|
@@ -212,6 +231,14 @@ export const DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID: Record<string, string> = {
|
|
|
212
231
|
|
|
213
232
|
// Communications
|
|
214
233
|
slack_message: 'slack-messages',
|
|
234
|
+
|
|
235
|
+
// People-hub employee content
|
|
236
|
+
what_i_shipped: 'what-i-shipped',
|
|
237
|
+
how_i_work: 'how-i-work',
|
|
238
|
+
|
|
239
|
+
// Product-hub internal
|
|
240
|
+
design_doc: 'design-docs',
|
|
241
|
+
openframe_tenant: 'openframe-tenants',
|
|
215
242
|
};
|
|
216
243
|
|
|
217
244
|
/**
|