@flamingo-stack/openframe-frontend-core 0.0.722 → 0.0.724
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-XJYAUIOL.cjs → chunk-2A4AGW7Z.cjs} +11 -11
- package/dist/{chunk-65C4WHG4.js → chunk-2HLGX6JF.js} +5 -5
- package/dist/{chunk-5K6YKRP5.cjs → chunk-3MMKIVWZ.cjs} +23 -23
- package/dist/{chunk-P7Y626YJ.cjs → chunk-3NVSC3BU.cjs} +687 -611
- package/dist/{chunk-VSYQJCNR.js → chunk-4N5DLIEC.js} +1 -1
- package/dist/{chunk-GYSTZD6X.cjs → chunk-5CJGNPTT.cjs} +35 -35
- package/dist/{chunk-AWWLEYAU.js → chunk-6BKDXUOQ.js} +6 -6
- package/dist/{chunk-BUDZWXRG.js → chunk-6QO6BIX7.js} +1 -1
- package/dist/{chunk-FDWYBJYD.cjs → chunk-7AXOAA5T.cjs} +3 -3
- package/dist/{chunk-SZF7ENIW.js → chunk-7CNGNPBI.js} +3 -3
- package/dist/{chunk-6HRQLM6T.cjs → chunk-A4WHVIYZ.cjs} +17 -17
- package/dist/{chunk-VV5INIQB.cjs → chunk-BIWG3CYN.cjs} +3 -3
- package/dist/{chunk-I3UUMRO7.js → chunk-BWMEQ7IZ.js} +1 -1
- package/dist/{chunk-7UZ2JZJY.js → chunk-CJENFR5T.js} +29 -3
- package/dist/{chunk-IITZ6JSC.cjs → chunk-DGNGABNG.cjs} +33 -7
- package/dist/{chunk-KWBH63GV.cjs → chunk-FR4MFSH5.cjs} +19 -19
- package/dist/{chunk-DWSBTGKT.cjs → chunk-GRB5HVEV.cjs} +2610 -2125
- package/dist/{chunk-JQ55FFIK.cjs → chunk-IPUDFAU5.cjs} +31 -31
- package/dist/{chunk-F33RMJOL.js → chunk-IUQKIU5A.js} +6 -6
- package/dist/{chunk-LV6UJD2K.cjs → chunk-JKWQWHNV.cjs} +6 -1
- package/dist/{chunk-VC7COEWF.cjs → chunk-JQ7A7PO5.cjs} +76 -76
- package/dist/{chunk-BCU6UUNQ.js → chunk-KKO4GRM3.js} +4 -4
- package/dist/{chunk-RVQV6J5K.cjs → chunk-L5CAET76.cjs} +64 -64
- package/dist/{chunk-WY4SLTMZ.js → chunk-MRBPJ4NB.js} +1 -1
- package/dist/{chunk-IF72N4PE.js → chunk-MU5F5QXJ.js} +6 -6
- package/dist/{chunk-NMGWNUKB.js → chunk-N2PX26BZ.js} +2 -2
- package/dist/{chunk-NFABAOMD.cjs → chunk-N4NGKXUU.cjs} +15 -15
- package/dist/{chunk-ETQVXIYW.js → chunk-NLZZUWR6.js} +4 -4
- package/dist/{chunk-ZMHP4Y6M.js → chunk-OFOBVPDV.js} +2 -2
- package/dist/{chunk-DX3W7DPC.js → chunk-OWFDXYEO.js} +1 -1
- package/dist/{chunk-HA2ASGJM.js → chunk-PF4WAKCS.js} +4 -4
- package/dist/{chunk-GAFK3WNT.cjs → chunk-QJ67GFF3.cjs} +32 -32
- package/dist/{chunk-KBPGSPXQ.js → chunk-QN3OXRTM.js} +4492 -4007
- package/dist/{chunk-ZHC6MDGF.cjs → chunk-QUI7DKBW.cjs} +41 -41
- package/dist/{chunk-E7NIZXDT.js → chunk-S4SVKXHN.js} +88 -12
- package/dist/{chunk-VYHCN5NU.cjs → chunk-SOTXV3T5.cjs} +3 -3
- package/dist/{chunk-MJ4SXOG2.cjs → chunk-SVDXNMBL.cjs} +16 -16
- package/dist/{chunk-UYMTAFHG.js → chunk-VLPGV5WH.js} +1 -1
- package/dist/{chunk-SZ3CBFSH.js → chunk-XDTD6YGG.js} +7 -7
- package/dist/{chunk-VU7RU3LL.cjs → chunk-YKV45BSJ.cjs} +4 -4
- package/dist/{chunk-XR7NVJXS.cjs → chunk-ZKL52ALL.cjs} +3 -3
- package/dist/{chunk-EWED6ISQ.js → chunk-ZQKN2Z6W.js} +5 -0
- package/dist/{cloud-tenants-4Z36KWSX.js → cloud-tenants-5MINXS5J.js} +6 -6
- package/dist/{cloud-tenants-5NIC5VXK.cjs → cloud-tenants-UMZJZTMB.cjs} +7 -7
- package/dist/components/case-studies/index.cjs +20 -20
- package/dist/components/case-studies/index.js +7 -7
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +5 -5
- package/dist/components/chat/index.js +4 -4
- package/dist/components/chat/utils/icon-library.d.ts +2 -0
- package/dist/components/chat/utils/icon-library.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +8 -8
- package/dist/components/contact/index.js +7 -7
- package/dist/components/docs/index.cjs +11 -11
- package/dist/components/docs/index.js +10 -10
- package/dist/components/embeds/index.cjs +8 -8
- package/dist/components/embeds/index.js +7 -7
- package/dist/components/faq/index.cjs +8 -8
- package/dist/components/faq/index.js +7 -7
- package/dist/components/features/index.cjs +23 -7
- package/dist/components/features/index.d.ts +1 -0
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/features/index.js +22 -6
- package/dist/components/features/model-token-rates.d.ts +179 -0
- package/dist/components/features/model-token-rates.d.ts.map +1 -0
- package/dist/components/help-center-pages/index.cjs +130 -126
- package/dist/components/help-center-pages/index.js +47 -43
- package/dist/components/help-center-pages/trust-center-page.d.ts +34 -1
- package/dist/components/help-center-pages/trust-center-page.d.ts.map +1 -1
- package/dist/components/help-center-pages/trust-center-sections.d.ts +1 -1
- package/dist/components/help-center-pages/trust-center-sections.d.ts.map +1 -1
- package/dist/components/index.cjs +73 -55
- package/dist/components/index.js +36 -18
- package/dist/components/meeting-scheduler/index.cjs +32 -32
- package/dist/components/meeting-scheduler/index.js +6 -6
- package/dist/components/navigation/index.cjs +10 -10
- package/dist/components/navigation/index.js +9 -9
- package/dist/components/onboarding-guides/index.cjs +10 -10
- package/dist/components/onboarding-guides/index.js +9 -9
- package/dist/components/product-demo/index.cjs +7 -7
- package/dist/components/product-demo/index.js +7 -7
- package/dist/components/related-content/index.cjs +4 -4
- package/dist/components/related-content/index.js +3 -3
- package/dist/components/tickets/index.cjs +11 -11
- package/dist/components/tickets/index.js +10 -10
- package/dist/components/ui/data-attribution.d.ts +3 -1
- package/dist/components/ui/data-attribution.d.ts.map +1 -1
- package/dist/components/ui/download-button.d.ts +19 -0
- package/dist/components/ui/download-button.d.ts.map +1 -0
- package/dist/components/ui/index.cjs +9 -7
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +8 -6
- package/dist/{devices-2TK3LAKM.js → devices-FSSUAUQN.js} +6 -6
- package/dist/{devices-7IKT72DK.cjs → devices-HOT7YSDN.cjs} +8 -8
- package/dist/index.cjs +53 -11
- package/dist/index.js +52 -10
- package/dist/{knowledge-HYSEV35H.cjs → knowledge-3N6HCFLU.cjs} +8 -8
- package/dist/{knowledge-3GJ4MU3V.js → knowledge-7HRUJX26.js} +6 -6
- package/dist/{logs-ZX3NADQC.cjs → logs-75M5YP6V.cjs} +15 -15
- package/dist/{logs-TATVM62H.js → logs-T25OE2QW.js} +6 -6
- package/dist/{policies-MRRKLF4Q.js → policies-4OK4XTD4.js} +6 -6
- package/dist/{policies-J4FSDKPI.cjs → policies-BTG7UJJC.cjs} +11 -11
- package/dist/{remote-session-Z2YCUPHU.cjs → remote-session-4DTOM3QD.cjs} +5 -5
- package/dist/{remote-session-WCLR47RN.js → remote-session-AZJXG7ZF.js} +3 -3
- package/dist/{software-update-KM46WUVQ.js → software-update-5SOV4FIR.js} +6 -6
- package/dist/{software-update-CXUBWYD2.cjs → software-update-OZURO4VK.cjs} +11 -11
- package/dist/types/index.cjs +27 -2
- package/dist/types/index.js +25 -3
- package/dist/types/trust-center.d.ts +19 -2
- package/dist/types/trust-center.d.ts.map +1 -1
- package/dist/utils/ai-providers.d.ts +29 -0
- package/dist/utils/ai-providers.d.ts.map +1 -0
- package/dist/utils/index.cjs +76 -2
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +68 -3
- package/dist/utils/list-url.d.ts.map +1 -1
- package/dist/utils/model-token-rates.d.ts +55 -0
- package/dist/utils/model-token-rates.d.ts.map +1 -0
- package/dist/utils/source-icons.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/entity-cards/dispatch.tsx +3 -0
- package/src/components/chat/utils/icon-library.tsx +6 -0
- package/src/components/features/index.ts +1 -0
- package/src/components/features/model-token-rates.tsx +696 -0
- package/src/components/help-center-pages/trust-center-page.tsx +50 -29
- package/src/components/help-center-pages/trust-center-sections.tsx +2 -2
- package/src/components/ui/data-attribution.tsx +19 -6
- package/src/components/ui/download-button.tsx +34 -0
- package/src/components/ui/index.ts +1 -0
- package/src/types/trust-center.ts +52 -4
- package/src/utils/ai-providers.ts +46 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/list-url.ts +1 -0
- package/src/utils/model-token-rates.ts +103 -0
- package/src/utils/source-icons.ts +3 -0
|
@@ -37,7 +37,7 @@ var _chunkBYUIFT7Qcjs = require('./chunk-BYUIFT7Q.cjs');
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
var
|
|
40
|
+
var _chunkDGNGABNGcjs = require('./chunk-DGNGABNG.cjs');
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
var _chunk7GRPR7XAcjs = require('./chunk-7GRPR7XA.cjs');
|
|
@@ -438,13 +438,13 @@ function cardEntry(definition) {
|
|
|
438
438
|
}
|
|
439
439
|
function programEntry(configKey) {
|
|
440
440
|
return cardEntry({
|
|
441
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
441
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.ProgramCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
442
442
|
decode: decodeProgramRow,
|
|
443
443
|
render: (item, ctx) => {
|
|
444
444
|
const config = _optionalChain([ctx, 'access', _2 => _2.extras, 'optionalAccess', _3 => _3.programConfigs, 'optionalAccess', _4 => _4[configKey]]);
|
|
445
445
|
if (!config) return null;
|
|
446
446
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
447
|
-
|
|
447
|
+
_chunkDGNGABNGcjs.ProgramCard,
|
|
448
448
|
{
|
|
449
449
|
config,
|
|
450
450
|
item,
|
|
@@ -461,10 +461,10 @@ function programEntry(configKey) {
|
|
|
461
461
|
}
|
|
462
462
|
function roadmapEntry(cardType) {
|
|
463
463
|
return cardEntry({
|
|
464
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
464
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.RoadmapCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
465
465
|
decode: decodeRoadmapRow,
|
|
466
466
|
render: (item, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
467
|
-
|
|
467
|
+
_chunkDGNGABNGcjs.RoadmapCard,
|
|
468
468
|
{
|
|
469
469
|
item,
|
|
470
470
|
href: ctx.href,
|
|
@@ -481,10 +481,10 @@ function roadmapEntry(cardType) {
|
|
|
481
481
|
}
|
|
482
482
|
var RELATED_CARD_REGISTRY = {
|
|
483
483
|
blog_post_existing: cardEntry({
|
|
484
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
484
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.BlogCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
485
485
|
decode: decodeBlogRow,
|
|
486
486
|
render: (post, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
487
|
-
|
|
487
|
+
_chunkDGNGABNGcjs.BlogCard,
|
|
488
488
|
{
|
|
489
489
|
post,
|
|
490
490
|
size: ctx.legacySize,
|
|
@@ -496,10 +496,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
496
496
|
)
|
|
497
497
|
}),
|
|
498
498
|
case_study: cardEntry({
|
|
499
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
499
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.CaseStudyCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
500
500
|
decode: decodeCaseStudyRow,
|
|
501
501
|
render: (study, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
502
|
-
|
|
502
|
+
_chunkDGNGABNGcjs.CaseStudyCard,
|
|
503
503
|
{
|
|
504
504
|
study,
|
|
505
505
|
size: ctx.legacySize,
|
|
@@ -511,10 +511,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
511
511
|
)
|
|
512
512
|
}),
|
|
513
513
|
customer_interview: cardEntry({
|
|
514
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
514
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.CustomerInterviewCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
515
515
|
decode: decodeCustomerInterviewRow,
|
|
516
516
|
render: (interview, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
517
|
-
|
|
517
|
+
_chunkDGNGABNGcjs.CustomerInterviewCard,
|
|
518
518
|
{
|
|
519
519
|
interview,
|
|
520
520
|
size: ctx.legacySize,
|
|
@@ -532,13 +532,13 @@ var RELATED_CARD_REGISTRY = {
|
|
|
532
532
|
* record, and the three props the rail sets itself are read off it.
|
|
533
533
|
*/
|
|
534
534
|
product_release: cardEntry({
|
|
535
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
535
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.ProductReleaseCardSkeleton, { size: size === "sm" ? "sm" : "lg" }),
|
|
536
536
|
decode: asRecord,
|
|
537
537
|
render: (release, ctx) => {
|
|
538
|
-
const buildReleaseProps = _nullishCoalesce(_optionalChain([ctx, 'access', _5 => _5.extras, 'optionalAccess', _6 => _6.buildProductReleaseCardProps]), () => (
|
|
538
|
+
const buildReleaseProps = _nullishCoalesce(_optionalChain([ctx, 'access', _5 => _5.extras, 'optionalAccess', _6 => _6.buildProductReleaseCardProps]), () => ( _chunkDGNGABNGcjs.buildProductReleaseCardProps));
|
|
539
539
|
const releaseProps = buildReleaseProps(release);
|
|
540
540
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
541
|
-
|
|
541
|
+
_chunkDGNGABNGcjs.ProductReleaseCard,
|
|
542
542
|
{
|
|
543
543
|
size: ctx.size === "sm" ? "sm" : "lg",
|
|
544
544
|
title: str(release, "title"),
|
|
@@ -554,10 +554,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
554
554
|
webinar: programEntry("webinar"),
|
|
555
555
|
event: programEntry("event"),
|
|
556
556
|
investor_update: cardEntry({
|
|
557
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
557
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.InvestorUpdateCardSkeleton, { size: size === "sm" ? "sm" : "default" }),
|
|
558
558
|
decode: decodeInvestorUpdateRow,
|
|
559
559
|
render: (update, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
560
|
-
|
|
560
|
+
_chunkDGNGABNGcjs.InvestorUpdateCard,
|
|
561
561
|
{
|
|
562
562
|
update,
|
|
563
563
|
size: ctx.legacySize,
|
|
@@ -572,10 +572,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
572
572
|
* step-numbered 'default' variant is for the guide detail page's "More in
|
|
573
573
|
* section" rail, not this full-width row. */
|
|
574
574
|
onboarding_guide: cardEntry({
|
|
575
|
-
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
575
|
+
skeleton: (size) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.OnboardingGuideCardSkeleton, { size: size === "sm" ? "sm" : "catalog" }),
|
|
576
576
|
decode: decodeOnboardingGuideRow,
|
|
577
577
|
render: (guide, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
578
|
-
|
|
578
|
+
_chunkDGNGABNGcjs.OnboardingGuideCard,
|
|
579
579
|
{
|
|
580
580
|
guide,
|
|
581
581
|
size: ctx.size === "sm" ? "sm" : "catalog",
|
|
@@ -592,10 +592,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
592
592
|
* href: an object with `href: undefined` is still truthy and would wrap the
|
|
593
593
|
* card in a dead <a>. */
|
|
594
594
|
what_i_shipped: cardEntry({
|
|
595
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
595
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.WhatIShippedCardSkeleton, {}),
|
|
596
596
|
decode: decodeEmployeeEntryRow,
|
|
597
597
|
render: (entry, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
598
|
-
|
|
598
|
+
_chunkDGNGABNGcjs.WhatIShippedCard,
|
|
599
599
|
{
|
|
600
600
|
entry,
|
|
601
601
|
placeholderUrl: ctx.placeholderUrl,
|
|
@@ -605,10 +605,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
605
605
|
}),
|
|
606
606
|
/** Same shared employee-entry shape + anchor contract as What I Shipped. */
|
|
607
607
|
how_i_work: cardEntry({
|
|
608
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
608
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.HowIWorkCardSkeleton, {}),
|
|
609
609
|
decode: decodeEmployeeEntryRow,
|
|
610
610
|
render: (entry, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
611
|
-
|
|
611
|
+
_chunkDGNGABNGcjs.HowIWorkCard,
|
|
612
612
|
{
|
|
613
613
|
entry,
|
|
614
614
|
placeholderUrl: ctx.placeholderUrl,
|
|
@@ -618,10 +618,10 @@ var RELATED_CARD_REGISTRY = {
|
|
|
618
618
|
}),
|
|
619
619
|
/** Same shared employee-entry shape + anchor contract as What I Shipped. */
|
|
620
620
|
ai_prompt: cardEntry({
|
|
621
|
-
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
621
|
+
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.AiPromptCardSkeleton, {}),
|
|
622
622
|
decode: decodeEmployeeEntryRow,
|
|
623
623
|
render: (entry, ctx) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
624
|
-
|
|
624
|
+
_chunkDGNGABNGcjs.AiPromptCard,
|
|
625
625
|
{
|
|
626
626
|
entry,
|
|
627
627
|
placeholderUrl: ctx.placeholderUrl,
|
|
@@ -642,7 +642,7 @@ function DefaultLinkPropsProvider({
|
|
|
642
642
|
children
|
|
643
643
|
}) {
|
|
644
644
|
if (!href) return children(null);
|
|
645
|
-
const newTab =
|
|
645
|
+
const newTab = _chunkDGNGABNGcjs.decideNewTab.call(void 0, { href, targetPlatform, currentSource: "" });
|
|
646
646
|
return children(newTab ? { href, target: "_blank", rel: "noopener noreferrer" } : { href });
|
|
647
647
|
}
|
|
648
648
|
function defaultResolveHref(ref) {
|
|
@@ -700,9 +700,9 @@ function useGroupItems(type, refs, buildUrl) {
|
|
|
700
700
|
const url = ids.length > 0 ? buildUrl(type, ids) : null;
|
|
701
701
|
const [pages, setPages] = _react.useState.call(void 0, () => /* @__PURE__ */ new Map());
|
|
702
702
|
const cached = url !== null ? pages.get(url) : void 0;
|
|
703
|
-
const { data, dataUrl, error } =
|
|
703
|
+
const { data, dataUrl, error } = _chunkDGNGABNGcjs.useSelfFetch.call(void 0, cached ? null : url);
|
|
704
704
|
if (data != null && dataUrl !== null && !pages.has(dataUrl)) {
|
|
705
|
-
setPages(new Map(pages).set(dataUrl,
|
|
705
|
+
setPages(new Map(pages).set(dataUrl, _chunkDGNGABNGcjs.extractItems.call(void 0, data)));
|
|
706
706
|
}
|
|
707
707
|
if (url === null) return { items: null, isLoading: false };
|
|
708
708
|
return { items: _nullishCoalesce(cached, () => ( (error ? [] : null))), isLoading: !cached && !error };
|
|
@@ -711,7 +711,7 @@ function gridClassFor(columns) {
|
|
|
711
711
|
return columns === 3 ? "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6" : "grid grid-cols-1 sm:grid-cols-2 gap-6";
|
|
712
712
|
}
|
|
713
713
|
function resolveGroupConfig(type) {
|
|
714
|
-
return _nullishCoalesce(
|
|
714
|
+
return _nullishCoalesce(_chunkDGNGABNGcjs.CONTENT_REF_GROUPS[type], () => ( {
|
|
715
715
|
label: type,
|
|
716
716
|
order: 999,
|
|
717
717
|
layout: "grid",
|
|
@@ -754,7 +754,7 @@ function ContentGroup({
|
|
|
754
754
|
}
|
|
755
755
|
if (!items) return null;
|
|
756
756
|
const rowKey = (it) => {
|
|
757
|
-
const extracted =
|
|
757
|
+
const extracted = _chunkDGNGABNGcjs.extractItemId.call(void 0, type, it);
|
|
758
758
|
if (extracted !== null) return extracted;
|
|
759
759
|
return String(typeof it === "object" && it !== null ? it.id : void 0);
|
|
760
760
|
};
|
|
@@ -822,11 +822,11 @@ function RelatedContentSection({
|
|
|
822
822
|
types: includeTypes !== void 0 ? includeTypes.join(",") : void 0,
|
|
823
823
|
excludeTypes: excludeTypes && excludeTypes.length > 0 ? excludeTypes.join(",") : void 0
|
|
824
824
|
};
|
|
825
|
-
const authorUrl = contentRefs === void 0 && authorId && !suggestionsDisabled ?
|
|
825
|
+
const authorUrl = contentRefs === void 0 && authorId && !suggestionsDisabled ? _chunkDGNGABNGcjs.buildSuggestionUrl.call(void 0, "/api/related-content", {
|
|
826
826
|
apiBaseUrl,
|
|
827
827
|
extraParams: { authorId, ...typeFilterParams }
|
|
828
828
|
}) : null;
|
|
829
|
-
const suggestUrl = _nullishCoalesce(authorUrl, () => ( (contentRefs === void 0 && entityType && entityId !== void 0 && entityId !== null && entityId !== "" && !suggestionsDisabled ?
|
|
829
|
+
const suggestUrl = _nullishCoalesce(authorUrl, () => ( (contentRefs === void 0 && entityType && entityId !== void 0 && entityId !== null && entityId !== "" && !suggestionsDisabled ? _chunkDGNGABNGcjs.buildSuggestionUrl.call(void 0, "/api/related-content", {
|
|
830
830
|
apiBaseUrl,
|
|
831
831
|
entityType,
|
|
832
832
|
entityId,
|
|
@@ -843,9 +843,9 @@ function RelatedContentSection({
|
|
|
843
843
|
() => !suggestionsDisabled && initialItems ? { refs: initialItems } : void 0,
|
|
844
844
|
[initialItems, suggestionsDisabled]
|
|
845
845
|
);
|
|
846
|
-
const { data, isLoading } =
|
|
846
|
+
const { data, isLoading } = _chunkDGNGABNGcjs.useSelfFetch.call(void 0, suggestUrl, { initialData });
|
|
847
847
|
const effectiveBuildListUrl = _react.useMemo.call(void 0,
|
|
848
|
-
() => _nullishCoalesce(buildListUrl2, () => ( ((type, ids) =>
|
|
848
|
+
() => _nullishCoalesce(buildListUrl2, () => ( ((type, ids) => _chunkDGNGABNGcjs.buildListUrl.call(void 0, type, ids, apiBaseUrl)))),
|
|
849
849
|
[buildListUrl2, apiBaseUrl]
|
|
850
850
|
);
|
|
851
851
|
const refs = _nullishCoalesce(_nullishCoalesce(contentRefs, () => ( _optionalChain([data, 'optionalAccess', _10 => _10.refs]))), () => ( []));
|
|
@@ -856,12 +856,12 @@ function RelatedContentSection({
|
|
|
856
856
|
if (isLoading) {
|
|
857
857
|
const skeletonType = _nullishCoalesce(_nullishCoalesce(_optionalChain([includeTypes, 'optionalAccess', _11 => _11[0]]), () => ( entityType)), () => ( "blog_post_existing"));
|
|
858
858
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-8", children: [
|
|
859
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-ods-text-primary text-h2", children:
|
|
859
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-ods-text-primary text-h2", children: _chunkDGNGABNGcjs.accentSentenceMarks.call(void 0, title) }),
|
|
860
860
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: gridClassFor(columns), children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: renderSkeletonForType(skeletonType, "default", adminCampaignCard) }, i)) })
|
|
861
861
|
] });
|
|
862
862
|
}
|
|
863
863
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-8", children: [
|
|
864
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-2xl font-bold text-ods-text-primary", children:
|
|
864
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-2xl font-bold text-ods-text-primary", children: _chunkDGNGABNGcjs.accentSentenceMarks.call(void 0, title) }),
|
|
865
865
|
_nullishCoalesce(emptyState, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: emptyStateText })))
|
|
866
866
|
] });
|
|
867
867
|
}
|
|
@@ -870,16 +870,16 @@ function RelatedContentSection({
|
|
|
870
870
|
if (!grouped[ref.type]) grouped[ref.type] = [];
|
|
871
871
|
grouped[ref.type].push(ref);
|
|
872
872
|
}
|
|
873
|
-
let orderedTypes =
|
|
873
|
+
let orderedTypes = _chunkDGNGABNGcjs.orderContentRefTypes.call(void 0, Object.keys(grouped));
|
|
874
874
|
if (entityType) {
|
|
875
|
-
const canonicalEntityType =
|
|
876
|
-
const sameType = orderedTypes.filter((t) =>
|
|
875
|
+
const canonicalEntityType = _chunkDGNGABNGcjs.canonicalContentRefType.call(void 0, entityType);
|
|
876
|
+
const sameType = orderedTypes.filter((t) => _chunkDGNGABNGcjs.canonicalContentRefType.call(void 0, t) === canonicalEntityType);
|
|
877
877
|
if (sameType.length > 0) {
|
|
878
|
-
orderedTypes = [...sameType, ...orderedTypes.filter((t) =>
|
|
878
|
+
orderedTypes = [...sameType, ...orderedTypes.filter((t) => _chunkDGNGABNGcjs.canonicalContentRefType.call(void 0, t) !== canonicalEntityType)];
|
|
879
879
|
}
|
|
880
880
|
}
|
|
881
881
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-8", children: [
|
|
882
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-ods-text-primary text-h2", children:
|
|
882
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-ods-text-primary text-h2", children: _chunkDGNGABNGcjs.accentSentenceMarks.call(void 0, title) }),
|
|
883
883
|
orderedTypes.map((type) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
884
884
|
ContentGroup,
|
|
885
885
|
{
|
|
@@ -891,7 +891,7 @@ function RelatedContentSection({
|
|
|
891
891
|
LinkProvider,
|
|
892
892
|
extras,
|
|
893
893
|
adminCampaignCard,
|
|
894
|
-
heading: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "font-semibold text-ods-text-secondary text-h5", children:
|
|
894
|
+
heading: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "font-semibold text-ods-text-secondary text-h5", children: _chunkDGNGABNGcjs.getContentRefLabelOrTitleCase.call(void 0, type) })
|
|
895
895
|
},
|
|
896
896
|
type
|
|
897
897
|
))
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
OWNER_TYPE,
|
|
35
35
|
formatDate,
|
|
36
36
|
formatTime
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-MRBPJ4NB.js";
|
|
38
38
|
import {
|
|
39
39
|
ActionsMenuDropdown,
|
|
40
40
|
OverlayOpenRegistryProvider,
|
|
@@ -140,7 +140,7 @@ import {
|
|
|
140
140
|
trustFrameworksSummary,
|
|
141
141
|
useSelfFetch,
|
|
142
142
|
useVideoWarmup
|
|
143
|
-
} from "./chunk-
|
|
143
|
+
} from "./chunk-CJENFR5T.js";
|
|
144
144
|
import {
|
|
145
145
|
AgentMark
|
|
146
146
|
} from "./chunk-H3PKYE4N.js";
|
|
@@ -148,7 +148,7 @@ import {
|
|
|
148
148
|
AvatarStack,
|
|
149
149
|
getIconComponent,
|
|
150
150
|
resolveIcon
|
|
151
|
-
} from "./chunk-
|
|
151
|
+
} from "./chunk-ZQKN2Z6W.js";
|
|
152
152
|
import {
|
|
153
153
|
FloatingTooltip,
|
|
154
154
|
SquareAvatar,
|
|
@@ -4924,23 +4924,23 @@ function ChatMessageListSkeleton({
|
|
|
4924
4924
|
// src/components/chat/cycling-phrase.tsx
|
|
4925
4925
|
import { useEffect as useEffect5, useMemo as useMemo7, useState as useState9 } from "react";
|
|
4926
4926
|
import { jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4927
|
-
function CyclingPhrase({ words, className, charMs = 60, holdMs = 4500 }) {
|
|
4927
|
+
function CyclingPhrase({ words: words2, className, charMs = 60, holdMs = 4500 }) {
|
|
4928
4928
|
const [wordIndex, setWordIndex] = useState9(0);
|
|
4929
4929
|
const [text2, setText] = useState9("");
|
|
4930
4930
|
const [cursor, setCursor] = useState9(0);
|
|
4931
|
-
const target =
|
|
4932
|
-
const holding =
|
|
4931
|
+
const target = words2[wordIndex] ?? "";
|
|
4932
|
+
const holding = words2.length > 0 && cursor >= Math.max(text2.length, target.length);
|
|
4933
4933
|
const shownText = holding ? target : text2;
|
|
4934
4934
|
const placeholder = useMemo7(
|
|
4935
|
-
() =>
|
|
4936
|
-
[
|
|
4935
|
+
() => words2.reduce((longest, w) => w.length > longest.length ? w : longest, ""),
|
|
4936
|
+
[words2]
|
|
4937
4937
|
);
|
|
4938
4938
|
useEffect5(() => {
|
|
4939
|
-
if (
|
|
4939
|
+
if (words2.length === 0) return void 0;
|
|
4940
4940
|
let timeoutId;
|
|
4941
4941
|
if (holding) {
|
|
4942
4942
|
timeoutId = setTimeout(() => {
|
|
4943
|
-
setWordIndex((i) => (i + 1) %
|
|
4943
|
+
setWordIndex((i) => (i + 1) % words2.length);
|
|
4944
4944
|
setCursor(0);
|
|
4945
4945
|
setText(target);
|
|
4946
4946
|
}, holdMs);
|
|
@@ -4956,8 +4956,8 @@ function CyclingPhrase({ words, className, charMs = 60, holdMs = 4500 }) {
|
|
|
4956
4956
|
setCursor((c) => c + 1);
|
|
4957
4957
|
}, charMs);
|
|
4958
4958
|
return () => clearTimeout(timeoutId);
|
|
4959
|
-
}, [wordIndex, cursor, text2, holding, target,
|
|
4960
|
-
if (
|
|
4959
|
+
}, [wordIndex, cursor, text2, holding, target, words2, charMs, holdMs]);
|
|
4960
|
+
if (words2.length === 0) return null;
|
|
4961
4961
|
const before = shownText.slice(0, cursor);
|
|
4962
4962
|
const after = shownText.slice(cursor);
|
|
4963
4963
|
const cursorBlock = /* @__PURE__ */ jsx23(
|
|
@@ -5912,6 +5912,67 @@ if (_orderIdx("flamingo") > _orderIdx("flamingo-teaser") || _orderIdx("flamingo"
|
|
|
5912
5912
|
);
|
|
5913
5913
|
}
|
|
5914
5914
|
|
|
5915
|
+
// src/utils/ai-providers.ts
|
|
5916
|
+
var AI_PROVIDERS = {
|
|
5917
|
+
ANTHROPIC: { label: "Anthropic", icon: "anthropic-logo-grey" },
|
|
5918
|
+
OPENAI: { label: "OpenAI", icon: "openai-logo-grey" },
|
|
5919
|
+
GOOGLE_GEMINI: { label: "Google Gemini", icon: "gemini-logo-grey" }
|
|
5920
|
+
};
|
|
5921
|
+
var words = (key) => key.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean);
|
|
5922
|
+
function aiProvider(key, stated) {
|
|
5923
|
+
const known = AI_PROVIDERS[key];
|
|
5924
|
+
const parts = words(key);
|
|
5925
|
+
return {
|
|
5926
|
+
label: stated?.label || known?.label || parts.map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ") || key,
|
|
5927
|
+
icon: stated?.icon || known?.icon || `${parts.join("-")}-logo-grey`
|
|
5928
|
+
};
|
|
5929
|
+
}
|
|
5930
|
+
|
|
5931
|
+
// src/utils/model-token-rates.ts
|
|
5932
|
+
var TOKEN_RATE_EMPTY = "\u2014";
|
|
5933
|
+
function formatTokenRate(value) {
|
|
5934
|
+
if (value == null || !Number.isFinite(value) || value <= 0) return TOKEN_RATE_EMPTY;
|
|
5935
|
+
const rounded = value >= 0.1 ? Number(value.toFixed(2)) : Number(value.toPrecision(2));
|
|
5936
|
+
return `${rounded}\xD7`;
|
|
5937
|
+
}
|
|
5938
|
+
function tokenCost(tokens, tokenPrice) {
|
|
5939
|
+
if (!tokenPrice || !(tokenPrice.tokens > 0) || !(tokenPrice.price > 0) || !(tokens >= 0)) return null;
|
|
5940
|
+
return tokens / tokenPrice.tokens * tokenPrice.price;
|
|
5941
|
+
}
|
|
5942
|
+
var TOKEN_AMOUNT_UNITS = [
|
|
5943
|
+
{ size: 1e9, suffix: "B" },
|
|
5944
|
+
{ size: 1e6, suffix: "M" },
|
|
5945
|
+
{ size: 1e3, suffix: "K" }
|
|
5946
|
+
];
|
|
5947
|
+
function formatTokenAmount(tokens) {
|
|
5948
|
+
if (tokens == null || !Number.isFinite(tokens) || tokens < 0) return TOKEN_RATE_EMPTY;
|
|
5949
|
+
const whole = Math.round(tokens);
|
|
5950
|
+
if (whole < 1e3) return String(whole);
|
|
5951
|
+
for (const [index, unit] of TOKEN_AMOUNT_UNITS.entries()) {
|
|
5952
|
+
if (whole < unit.size) continue;
|
|
5953
|
+
const figure = Number((whole / unit.size).toPrecision(3));
|
|
5954
|
+
const larger = TOKEN_AMOUNT_UNITS[index - 1];
|
|
5955
|
+
return figure >= 1e3 && larger ? `1${larger.suffix}` : `${figure}${unit.suffix}`;
|
|
5956
|
+
}
|
|
5957
|
+
return String(whole);
|
|
5958
|
+
}
|
|
5959
|
+
function tokensForBalance(balance, rate) {
|
|
5960
|
+
if (rate == null || !Number.isFinite(rate) || rate <= 0 || !(balance > 0)) return null;
|
|
5961
|
+
return balance / rate;
|
|
5962
|
+
}
|
|
5963
|
+
function tokenRateProviderLabel(providerType, stated) {
|
|
5964
|
+
return aiProvider(providerType, { label: stated }).label;
|
|
5965
|
+
}
|
|
5966
|
+
function groupTokenRatesByProvider(rates) {
|
|
5967
|
+
const groups = /* @__PURE__ */ new Map();
|
|
5968
|
+
for (const rate of rates) {
|
|
5969
|
+
const group = groups.get(rate.providerType);
|
|
5970
|
+
if (group) group.push(rate);
|
|
5971
|
+
else groups.set(rate.providerType, [rate]);
|
|
5972
|
+
}
|
|
5973
|
+
return [...groups].map(([providerType, grouped]) => ({ providerType, rates: grouped }));
|
|
5974
|
+
}
|
|
5975
|
+
|
|
5915
5976
|
// src/utils/trial.ts
|
|
5916
5977
|
var TRIAL_DAYS = 14;
|
|
5917
5978
|
var TRIAL_LABELS = {
|
|
@@ -6814,6 +6875,7 @@ var SOURCE_ICON_NAMES = {
|
|
|
6814
6875
|
"trust-center": "shield-check",
|
|
6815
6876
|
// The public website's own pages (live source): the site's own mark, as a glyph in the slot's colour
|
|
6816
6877
|
"website-pages": "flamingo-logo-grey",
|
|
6878
|
+
"openframe-pricing": "money-bill-dollar",
|
|
6817
6879
|
// The OpenMSP vendor directory: the icon the site menu's "Tool directory" entry draws (it reads this one)
|
|
6818
6880
|
vendors: "package-search",
|
|
6819
6881
|
// Financials
|
|
@@ -6879,6 +6941,7 @@ var SOURCE_LABELS_BY_TABLE = {
|
|
|
6879
6941
|
// Trust
|
|
6880
6942
|
"trust-center": "Trust Center",
|
|
6881
6943
|
"website-pages": "Website",
|
|
6944
|
+
"openframe-pricing": "OpenFrame pricing",
|
|
6882
6945
|
vendors: "Vendor Directory",
|
|
6883
6946
|
// Financials
|
|
6884
6947
|
"investor-updates": "Investor Updates",
|
|
@@ -6948,6 +7011,7 @@ var DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = {
|
|
|
6948
7011
|
// Trust
|
|
6949
7012
|
trust_center: "trust-center",
|
|
6950
7013
|
site_page: "website-pages",
|
|
7014
|
+
openframe_price: "openframe-pricing",
|
|
6951
7015
|
vendor: "vendors",
|
|
6952
7016
|
// Financials
|
|
6953
7017
|
investor_update: "investor-updates",
|
|
@@ -15826,6 +15890,9 @@ var REF_GLYPH_CARD_CONFIGS = {
|
|
|
15826
15890
|
// A page of the public website (pricing, product, legal, and every page the navigation lists), read live
|
|
15827
15891
|
// from the data the page shows. A glyph card: a page has no cover of its own, and the card opens the page.
|
|
15828
15892
|
site_page: { label: "Website page", icon: (ref) => /* @__PURE__ */ jsx85(SitePageGlyph, { iconName: refText(ref, "icon_name") }) },
|
|
15893
|
+
// What OpenFrame charges, read live from its billing: the plan in force, or one AI model's token exchange
|
|
15894
|
+
// rate. A glyph card; it opens the pricing page.
|
|
15895
|
+
openframe_price: { label: "OpenFrame price", icon: () => /* @__PURE__ */ jsx85(OpenFrameGlyph, { size: 24 }) },
|
|
15829
15896
|
// A vendor (product) of the OpenMSP directory. A glyph card; it opens the vendor's page there.
|
|
15830
15897
|
vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ jsx85(VendorGlyph, { title: ref?.title ?? "", logoUrl: refText(ref, "logo_url") }) }
|
|
15831
15898
|
};
|
|
@@ -26410,6 +26477,15 @@ export {
|
|
|
26410
26477
|
getRequestOrigin,
|
|
26411
26478
|
resolveRedirectTarget,
|
|
26412
26479
|
getAllPlatformBaseDomains,
|
|
26480
|
+
AI_PROVIDERS,
|
|
26481
|
+
aiProvider,
|
|
26482
|
+
TOKEN_RATE_EMPTY,
|
|
26483
|
+
formatTokenRate,
|
|
26484
|
+
tokenCost,
|
|
26485
|
+
formatTokenAmount,
|
|
26486
|
+
tokensForBalance,
|
|
26487
|
+
tokenRateProviderLabel,
|
|
26488
|
+
groupTokenRatesByProvider,
|
|
26413
26489
|
TRIAL_DAYS,
|
|
26414
26490
|
TRIAL_LABELS,
|
|
26415
26491
|
SEO_TITLE_MAX_LENGTH,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunk3NVSC3BUcjs = require('./chunk-3NVSC3BU.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -45,7 +45,7 @@ function HorizontalSectionNav({
|
|
|
45
45
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { ref: navRef, "aria-label": label, className: _chunk3ATAYP36cjs.cn.call(void 0, "flex h-14 items-stretch gap-6 bg-ods-bg", className), children: [
|
|
46
46
|
brand && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "hidden shrink-0 items-center gap-2.5 border-r border-ods-border pr-6 text-ods-text-primary text-h4 content-lg:flex", children: brand }),
|
|
47
47
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
48
|
-
|
|
48
|
+
_chunk3NVSC3BUcjs.ScrollShadow,
|
|
49
49
|
{
|
|
50
50
|
axis: "horizontal",
|
|
51
51
|
className: "min-w-0 flex-1",
|
|
@@ -330,7 +330,7 @@ function useScrollSpy(sections, options = {}) {
|
|
|
330
330
|
// src/components/navigation/multi-level-navigation.tsx
|
|
331
331
|
var _lucidereact = require('lucide-react');
|
|
332
332
|
|
|
333
|
-
var DEFAULT_FOLDER_INDEX_FILE2 =
|
|
333
|
+
var DEFAULT_FOLDER_INDEX_FILE2 = _chunk3NVSC3BUcjs.DEFAULT_FOLDER_INDEX_FILE;
|
|
334
334
|
function isNodeVisuallySelected(node, selectedPath, folderIndexFile = DEFAULT_FOLDER_INDEX_FILE2) {
|
|
335
335
|
const FOLDER_INDEX_FILE = folderIndexFile.toLowerCase();
|
|
336
336
|
if (selectedPath === node.path) {
|
|
@@ -6,13 +6,13 @@ var _chunk4LY6R4TNcjs = require('./chunk-4LY6R4TN.cjs');
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunk3NVSC3BUcjs = require('./chunk-3NVSC3BU.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkDGNGABNGcjs = require('./chunk-DGNGABNG.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
var _chunkTKFTWM3Vcjs = require('./chunk-TKFTWM3V.cjs');
|
|
@@ -118,31 +118,31 @@ CveLink.displayName = "CveLink";
|
|
|
118
118
|
// src/components/platform/ShellTypeBadge.tsx
|
|
119
119
|
|
|
120
120
|
var shellIconMap = {
|
|
121
|
-
[
|
|
121
|
+
[_chunk3NVSC3BUcjs.ShellTypeValues.POWERSHELL]: {
|
|
122
122
|
icon: _chunkVX4E6YSBcjs.PowershellLogoGreyIcon,
|
|
123
123
|
props: { size: 16, className: "text-ods-text-secondary" }
|
|
124
124
|
},
|
|
125
|
-
[
|
|
125
|
+
[_chunk3NVSC3BUcjs.ShellTypeValues.CMD]: {
|
|
126
126
|
icon: _chunkLLSUVPQCcjs.CmdIcon,
|
|
127
127
|
props: { size: 16, color: "var(--color-text-secondary)" }
|
|
128
128
|
},
|
|
129
|
-
[
|
|
129
|
+
[_chunk3NVSC3BUcjs.ShellTypeValues.BASH]: {
|
|
130
130
|
icon: _chunkLLSUVPQCcjs.BashIcon,
|
|
131
131
|
props: { size: 16, color: "var(--color-text-secondary)" }
|
|
132
132
|
},
|
|
133
|
-
[
|
|
133
|
+
[_chunk3NVSC3BUcjs.ShellTypeValues.PYTHON]: {
|
|
134
134
|
icon: _chunkVX4E6YSBcjs.PythonLogoIcon,
|
|
135
135
|
props: { size: 16, className: "text-ods-text-secondary" }
|
|
136
136
|
},
|
|
137
|
-
[
|
|
137
|
+
[_chunk3NVSC3BUcjs.ShellTypeValues.NUSHELL]: {
|
|
138
138
|
icon: _chunkLLSUVPQCcjs.NushellIcon,
|
|
139
139
|
props: { size: 16, color: "var(--color-text-secondary)" }
|
|
140
140
|
},
|
|
141
|
-
[
|
|
141
|
+
[_chunk3NVSC3BUcjs.ShellTypeValues.DENO]: {
|
|
142
142
|
icon: _chunkLLSUVPQCcjs.DenoIcon,
|
|
143
143
|
props: { size: 16, color: "var(--color-text-secondary)" }
|
|
144
144
|
},
|
|
145
|
-
[
|
|
145
|
+
[_chunk3NVSC3BUcjs.ShellTypeValues.SHELL]: {
|
|
146
146
|
icon: _chunkLLSUVPQCcjs.ShellIcon,
|
|
147
147
|
props: { size: 16, color: "var(--color-text-secondary)" }
|
|
148
148
|
}
|
|
@@ -153,7 +153,7 @@ var defaultIconConfig = {
|
|
|
153
153
|
};
|
|
154
154
|
var ShellTypeBadge = ({ shellType, className, iconClassName }) => {
|
|
155
155
|
const normalizedType = _optionalChain([shellType, 'optionalAccess', _ => _.toUpperCase, 'call', _2 => _2()]);
|
|
156
|
-
const label =
|
|
156
|
+
const label = _chunk3NVSC3BUcjs.getShellLabel.call(void 0, normalizedType);
|
|
157
157
|
const { icon: IconComponent, props: iconProps } = _nullishCoalesce(shellIconMap[normalizedType], () => ( defaultIconConfig));
|
|
158
158
|
const defaultIconClassName = "className" in iconProps ? iconProps.className : void 0;
|
|
159
159
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex items-center gap-1", className), children: [
|
|
@@ -169,7 +169,7 @@ function formatSupportedPlatforms(platforms) {
|
|
|
169
169
|
if (!platforms || platforms.length === 0) {
|
|
170
170
|
return "All Platforms";
|
|
171
171
|
}
|
|
172
|
-
return platforms.map((platform) =>
|
|
172
|
+
return platforms.map((platform) => _chunk3NVSC3BUcjs.getOSLabel.call(void 0, platform)).join(", ");
|
|
173
173
|
}
|
|
174
174
|
function InfoCell({ label, value, avatar, className }) {
|
|
175
175
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "flex min-w-0 items-center gap-2", className), children: [
|
|
@@ -189,7 +189,7 @@ var ScriptInfoSection = ({
|
|
|
189
189
|
author,
|
|
190
190
|
className
|
|
191
191
|
}) => {
|
|
192
|
-
const shellLabel =
|
|
192
|
+
const shellLabel = _chunk3NVSC3BUcjs.getShellLabel.call(void 0, shellType);
|
|
193
193
|
const platformsLabel = formatSupportedPlatforms(supportedPlatforms);
|
|
194
194
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "overflow-hidden rounded-[6px] border border-ods-border bg-ods-card", className), children: [
|
|
195
195
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "border-b border-ods-border p-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-1", children: [
|
|
@@ -364,7 +364,7 @@ function OnboardingStepCard({
|
|
|
364
364
|
onSkip();
|
|
365
365
|
};
|
|
366
366
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
367
|
-
|
|
367
|
+
_chunkDGNGABNGcjs.InteractiveCard,
|
|
368
368
|
{
|
|
369
369
|
clickable: false,
|
|
370
370
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
@@ -390,7 +390,7 @@ function OnboardingStepCard({
|
|
|
390
390
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[32px] w-[100px] animate-pulse rounded-[6px] bg-ods-border" }),
|
|
391
391
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[32px] w-[120px] animate-pulse rounded-[6px] bg-ods-border" })
|
|
392
392
|
] }) : isCompleted ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
393
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
393
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.StatusBadge, { text: "COMPLETED", variant: "card", colorScheme: "success" }),
|
|
394
394
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
395
395
|
_chunkHQIOMFJHcjs.Button,
|
|
396
396
|
{
|
|
@@ -401,7 +401,7 @@ function OnboardingStepCard({
|
|
|
401
401
|
children: step.completedText
|
|
402
402
|
}
|
|
403
403
|
)
|
|
404
|
-
] }) : isSkipped ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
404
|
+
] }) : isSkipped ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDGNGABNGcjs.StatusBadge, { text: "SKIPPED", variant: "card", colorScheme: "default" }) }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
405
405
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHQIOMFJHcjs.Button, { variant: "outline", onClick: handleSkip, children: "Skip Step" }),
|
|
406
406
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHQIOMFJHcjs.Button, { variant: "accent", onClick: handleAction, disabled: isProcessing, leftIcon: step.actionIcon("black"), children: step.actionText })
|
|
407
407
|
] })
|
|
@@ -518,7 +518,7 @@ function OnboardingWalkthrough({
|
|
|
518
518
|
const isAllComplete = allStepsComplete(steps);
|
|
519
519
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, "w-full space-y-4", className), children: [
|
|
520
520
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-start justify-between gap-3 md:flex-row md:items-center md:gap-0", children: [
|
|
521
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className:
|
|
521
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: _chunkDGNGABNGcjs.SECTION_HEADING_CLASS, children: _chunkDGNGABNGcjs.accentSentenceMarks.call(void 0, title) }),
|
|
522
522
|
isLoadingCompletion ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "h-[48px] w-full animate-pulse rounded-[6px] bg-ods-border md:w-[160px]" }) : isAllComplete ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHQIOMFJHcjs.Button, { variant: "accent", onClick: handleDismiss, className: "w-full md:w-auto", children: "Close Onboarding" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHQIOMFJHcjs.Button, { variant: "outline", onClick: handleDismiss, className: "w-full md:w-auto", children: "Skip Onboarding" })
|
|
523
523
|
] }),
|
|
524
524
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunk3ATAYP36cjs.cn.call(void 0, spacing), children: steps.map((step) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|