@flamingo-stack/openframe-frontend-core 0.0.473-snapshot.20260724114839 → 0.0.473
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-RIPWRVA3.js → chunk-2SPAHQYE.js} +5 -5
- package/dist/{chunk-2R5NM3FC.cjs → chunk-4EU6WL5O.cjs} +40 -40
- package/dist/{chunk-2R5NM3FC.cjs.map → chunk-4EU6WL5O.cjs.map} +1 -1
- package/dist/{chunk-KXKTXAGN.cjs → chunk-4WHDDAVP.cjs} +40 -40
- package/dist/{chunk-KXKTXAGN.cjs.map → chunk-4WHDDAVP.cjs.map} +1 -1
- package/dist/{chunk-K52S6LZ5.js → chunk-4Y6LX6XR.js} +3 -3
- package/dist/{chunk-OKRUL7YV.js → chunk-4YH4WKLC.js} +4 -4
- package/dist/{chunk-LFXUFFDZ.cjs → chunk-5LTLYPIP.cjs} +73 -73
- package/dist/{chunk-LFXUFFDZ.cjs.map → chunk-5LTLYPIP.cjs.map} +1 -1
- package/dist/{chunk-YJWISFIK.cjs → chunk-6OGOPPTI.cjs} +12 -12
- package/dist/{chunk-YJWISFIK.cjs.map → chunk-6OGOPPTI.cjs.map} +1 -1
- package/dist/{chunk-KPVKZ5ML.cjs → chunk-6VEEQBVJ.cjs} +15 -15
- package/dist/{chunk-KPVKZ5ML.cjs.map → chunk-6VEEQBVJ.cjs.map} +1 -1
- package/dist/{chunk-SAH4FR36.js → chunk-6WPUUGW5.js} +5 -5
- package/dist/{chunk-6KD6KVAI.cjs → chunk-B472QGDO.cjs} +5 -5
- package/dist/{chunk-6KD6KVAI.cjs.map → chunk-B472QGDO.cjs.map} +1 -1
- package/dist/{chunk-3NNCBZEM.js → chunk-B52SBOUY.js} +6 -6
- package/dist/{chunk-5TQQ3CPE.cjs → chunk-CDBQQA7V.cjs} +29 -29
- package/dist/{chunk-5TQQ3CPE.cjs.map → chunk-CDBQQA7V.cjs.map} +1 -1
- package/dist/{chunk-7VBGYCXG.cjs → chunk-CH7MDKPI.cjs} +7 -7
- package/dist/{chunk-7VBGYCXG.cjs.map → chunk-CH7MDKPI.cjs.map} +1 -1
- package/dist/{chunk-S6IB3BZK.js → chunk-DBYUQOLS.js} +2 -2
- package/dist/{chunk-AGX565ZT.js → chunk-FPOHUGEK.js} +2 -2
- package/dist/{chunk-R4OGP4OV.js → chunk-H6FKYKEQ.js} +3 -3
- package/dist/{chunk-FM5KWLKU.cjs → chunk-HQL5GJ35.cjs} +3 -3
- package/dist/{chunk-FM5KWLKU.cjs.map → chunk-HQL5GJ35.cjs.map} +1 -1
- package/dist/{chunk-PTFSF3UP.js → chunk-I5L3KUTE.js} +6 -6
- package/dist/{chunk-GELW7JOQ.cjs → chunk-J5S5U76A.cjs} +32 -32
- package/dist/{chunk-GELW7JOQ.cjs.map → chunk-J5S5U76A.cjs.map} +1 -1
- package/dist/{chunk-464NJS2W.cjs → chunk-KP37QDNS.cjs} +73 -73
- package/dist/{chunk-464NJS2W.cjs.map → chunk-KP37QDNS.cjs.map} +1 -1
- package/dist/{chunk-PFD2VRZI.cjs → chunk-KXBXPOYM.cjs} +18 -18
- package/dist/{chunk-PFD2VRZI.cjs.map → chunk-KXBXPOYM.cjs.map} +1 -1
- package/dist/{chunk-VNDAMVMI.js → chunk-LWIVRGDN.js} +2 -2
- package/dist/{chunk-ZPUZPJDV.js → chunk-OTV4A6NA.js} +14 -80
- package/dist/chunk-OTV4A6NA.js.map +1 -0
- package/dist/{chunk-IIOHHNMI.js → chunk-QESV36I2.js} +70 -36
- package/dist/chunk-QESV36I2.js.map +1 -0
- package/dist/{chunk-FBUIZTAI.js → chunk-SWNZZVYG.js} +2 -2
- package/dist/{chunk-VCOL4C2W.cjs → chunk-TONMD7QX.cjs} +20 -86
- package/dist/chunk-TONMD7QX.cjs.map +1 -0
- package/dist/{chunk-Z4LAZ4ZZ.js → chunk-UCY6VITT.js} +3 -3
- package/dist/{chunk-BOPLMNSN.cjs → chunk-ZQRGJHNH.cjs} +151 -117
- package/dist/chunk-ZQRGJHNH.cjs.map +1 -0
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/index.cjs +3 -3
- package/dist/components/chat/index.js +2 -2
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +6 -6
- package/dist/components/docs/index.js +5 -5
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +5 -5
- package/dist/components/faq/index.js +4 -4
- package/dist/components/features/index.cjs +3 -3
- package/dist/components/features/index.js +2 -2
- package/dist/components/help-center-pages/index.cjs +22 -22
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +136 -136
- package/dist/components/index.js +11 -11
- package/dist/components/navigation/index.cjs +3 -3
- package/dist/components/navigation/index.js +2 -2
- package/dist/components/navigation/mobile-burger-menu.d.ts.map +1 -1
- 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 +5 -5
- package/dist/components/related-content/index.js +4 -4
- package/dist/components/tickets/index.cjs +6 -6
- package/dist/components/tickets/index.js +5 -5
- package/dist/components/ui/entity-image.d.ts.map +1 -1
- package/dist/components/ui/image-uploader.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +3 -3
- package/dist/components/ui/index.js +2 -2
- package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
- package/dist/components/ui/square-avatar.d.ts.map +1 -1
- package/dist/hooks/index.cjs +2 -6
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -5
- package/dist/index.cjs +3 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -6
- package/dist/utils/embed-authed-fetch.d.ts +0 -15
- package/dist/utils/embed-authed-fetch.d.ts.map +1 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/navigation/mobile-burger-menu.tsx +0 -1
- package/src/components/ui/entity-image.tsx +3 -5
- package/src/components/ui/image-uploader.tsx +12 -21
- package/src/components/ui/simple-markdown-renderer.tsx +58 -57
- package/src/components/ui/square-avatar.tsx +3 -5
- package/src/hooks/index.ts +0 -1
- package/src/utils/embed-authed-fetch.ts +0 -30
- package/dist/chunk-BOPLMNSN.cjs.map +0 -1
- package/dist/chunk-IIOHHNMI.js.map +0 -1
- package/dist/chunk-VCOL4C2W.cjs.map +0 -1
- package/dist/chunk-ZPUZPJDV.js.map +0 -1
- package/dist/hooks/use-authed-image-src.d.ts +0 -10
- package/dist/hooks/use-authed-image-src.d.ts.map +0 -1
- package/src/hooks/use-authed-image-src.ts +0 -93
- /package/dist/{chunk-RIPWRVA3.js.map → chunk-2SPAHQYE.js.map} +0 -0
- /package/dist/{chunk-K52S6LZ5.js.map → chunk-4Y6LX6XR.js.map} +0 -0
- /package/dist/{chunk-OKRUL7YV.js.map → chunk-4YH4WKLC.js.map} +0 -0
- /package/dist/{chunk-SAH4FR36.js.map → chunk-6WPUUGW5.js.map} +0 -0
- /package/dist/{chunk-3NNCBZEM.js.map → chunk-B52SBOUY.js.map} +0 -0
- /package/dist/{chunk-S6IB3BZK.js.map → chunk-DBYUQOLS.js.map} +0 -0
- /package/dist/{chunk-AGX565ZT.js.map → chunk-FPOHUGEK.js.map} +0 -0
- /package/dist/{chunk-R4OGP4OV.js.map → chunk-H6FKYKEQ.js.map} +0 -0
- /package/dist/{chunk-PTFSF3UP.js.map → chunk-I5L3KUTE.js.map} +0 -0
- /package/dist/{chunk-VNDAMVMI.js.map → chunk-LWIVRGDN.js.map} +0 -0
- /package/dist/{chunk-FBUIZTAI.js.map → chunk-SWNZZVYG.js.map} +0 -0
- /package/dist/{chunk-Z4LAZ4ZZ.js.map → chunk-UCY6VITT.js.map} +0 -0
|
@@ -11,7 +11,6 @@ import {
|
|
|
11
11
|
progressColorByVariant,
|
|
12
12
|
scrollElementIntoView,
|
|
13
13
|
toolLabels,
|
|
14
|
-
useAuthedImageSrc,
|
|
15
14
|
useAutoLimitTags,
|
|
16
15
|
useCopyToClipboard,
|
|
17
16
|
useDebounce,
|
|
@@ -33,7 +32,7 @@ import {
|
|
|
33
32
|
useResetOnPageHidden,
|
|
34
33
|
useSuppressCloneFocus,
|
|
35
34
|
useToast
|
|
36
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-OTV4A6NA.js";
|
|
37
36
|
import {
|
|
38
37
|
AlertCircleIcon,
|
|
39
38
|
AnthropicLogoGreyIcon,
|
|
@@ -1468,22 +1467,6 @@ var MermaidDiagram = ({ chart }) => {
|
|
|
1468
1467
|
}
|
|
1469
1468
|
) }) });
|
|
1470
1469
|
};
|
|
1471
|
-
var MarkdownContentImage = ({ src, alt }) => {
|
|
1472
|
-
const resolvedSrc = useAuthedImageSrc(src);
|
|
1473
|
-
if (!resolvedSrc) return null;
|
|
1474
|
-
return /* @__PURE__ */ jsx7(
|
|
1475
|
-
next_image_default,
|
|
1476
|
-
{
|
|
1477
|
-
src: resolvedSrc,
|
|
1478
|
-
alt: alt ?? "No image available",
|
|
1479
|
-
width: 400,
|
|
1480
|
-
height: 400,
|
|
1481
|
-
sizes: "(max-width: 400px) 100vw, 400px",
|
|
1482
|
-
className: "max-w-full max-h-[400px] w-auto h-auto rounded-lg object-contain",
|
|
1483
|
-
style: { width: "auto", height: "auto" }
|
|
1484
|
-
}
|
|
1485
|
-
);
|
|
1486
|
-
};
|
|
1487
1470
|
function extractText(node) {
|
|
1488
1471
|
if (typeof node === "string") return node;
|
|
1489
1472
|
if (Array.isArray(node)) return node.map(extractText).join("");
|
|
@@ -1705,12 +1688,67 @@ var SimpleMarkdownRendererImpl = ({
|
|
|
1705
1688
|
);
|
|
1706
1689
|
},
|
|
1707
1690
|
// --- images ---
|
|
1708
|
-
//
|
|
1709
|
-
//
|
|
1710
|
-
//
|
|
1691
|
+
// Inline content image renderer. Used by blog posts, docs, AND chat
|
|
1692
|
+
// messages (where users may attach screenshots / photos via the +
|
|
1693
|
+
// attachment button).
|
|
1694
|
+
//
|
|
1695
|
+
// Sizing rules (2025-2026 best practice — Claude.ai, ChatGPT,
|
|
1696
|
+
// iMessage, Slack, Discord inline image patterns):
|
|
1697
|
+
//
|
|
1698
|
+
// - CAP max-width at 400px so inline images don't blow out the
|
|
1699
|
+
// message column on wide panels. Click-to-expand opens a
|
|
1700
|
+
// full-resolution modal for users who need detail.
|
|
1701
|
+
// - CAP max-height at 400px so portrait-orientation images
|
|
1702
|
+
// don't dominate vertical space (a 1000x3000 phone screenshot
|
|
1703
|
+
// would otherwise push the next message off-screen).
|
|
1704
|
+
// - Small images render at NATURAL pixel size — a 64x64
|
|
1705
|
+
// thumbnail stays 64x64, not stretched to fill the column.
|
|
1706
|
+
// - `object-contain` preserves aspect ratio when both dimensions
|
|
1707
|
+
// are constrained (long landscape, tall portrait).
|
|
1708
|
+
//
|
|
1709
|
+
// Implementation: Next.js `<Image>` — the project's canonical
|
|
1710
|
+
// image primitive. Gives us:
|
|
1711
|
+
// - WebP/AVIF format conversion for modern browsers (smaller
|
|
1712
|
+
// bytes for the same visual quality).
|
|
1713
|
+
// - Responsive `srcset` via the `sizes` prop (browser picks the
|
|
1714
|
+
// right variant for the viewport).
|
|
1715
|
+
// - Automatic lazy-loading (`loading="lazy"` by default, mid-
|
|
1716
|
+
// page images skipped until they near the viewport).
|
|
1717
|
+
// - Automatic `decoding="async"` so image decode doesn't block
|
|
1718
|
+
// paint.
|
|
1719
|
+
//
|
|
1720
|
+
// `width={400} height={400}` props are REQUIRED by Next.js
|
|
1721
|
+
// `<Image>` (non-`fill` mode throws without them) but they're
|
|
1722
|
+
// effectively a CEILING here, not the display size — the CSS
|
|
1723
|
+
// overrides (`w-auto h-auto max-w-full max-h-[400px]`) drive
|
|
1724
|
+
// the actual rendered size. The inline `style={{ width: 'auto',
|
|
1725
|
+
// height: 'auto' }}` is belt-and-suspenders: Next.js Image sets
|
|
1726
|
+
// matching HTML `width`/`height` attributes on the rendered
|
|
1727
|
+
// `<img>` and inline style wins over both HTML attributes AND
|
|
1728
|
+
// utility classes regardless of CSS-specificity surprises.
|
|
1729
|
+
//
|
|
1730
|
+
// Layout reservation trade-off: until image bytes arrive, the
|
|
1731
|
+
// browser may reserve a placeholder box up to 400x400 (the props'
|
|
1732
|
+
// intrinsic-ratio hint). Once loaded, the box collapses to the
|
|
1733
|
+
// natural size if smaller. This is the standard Next.js Image
|
|
1734
|
+
// behavior across the codebase — accepted for the optimizer +
|
|
1735
|
+
// responsive-srcset benefits. Chat attachments hosted in side
|
|
1736
|
+
// panels see this only on first render of a fresh attachment
|
|
1737
|
+
// (cached re-renders pop in without a perceptible shift).
|
|
1711
1738
|
img: ({ src, alt }) => {
|
|
1712
1739
|
if (!src || typeof src !== "string" || src.trim() === "") return null;
|
|
1713
|
-
return /* @__PURE__ */ jsx7(
|
|
1740
|
+
return /* @__PURE__ */ jsx7(
|
|
1741
|
+
next_image_default,
|
|
1742
|
+
{
|
|
1743
|
+
src,
|
|
1744
|
+
alt: alt ?? "No image available",
|
|
1745
|
+
width: 400,
|
|
1746
|
+
height: 400,
|
|
1747
|
+
sizes: "(max-width: 400px) 100vw, 400px",
|
|
1748
|
+
className: "max-w-full max-h-[400px] w-auto h-auto rounded-lg object-contain",
|
|
1749
|
+
style: { width: "auto", height: "auto" }
|
|
1750
|
+
}
|
|
1751
|
+
);
|
|
1714
1752
|
},
|
|
1715
1753
|
// --- lists ---
|
|
1716
1754
|
ul: ({ children }) => /* @__PURE__ */ jsx7("ul", { className: "list-disc list-outside my-4 ml-8 space-y-2 text-ods-text-primary", children }),
|
|
@@ -2244,7 +2282,6 @@ function formatBioText(aboutHtml, fallback = "") {
|
|
|
2244
2282
|
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2245
2283
|
var SquareAvatar = React2.memo(React2.forwardRef(
|
|
2246
2284
|
({ className, src, alt, size: size2 = "md", sizePx, fallback, variant = "square", initialsClassName, style, ...props }, ref) => {
|
|
2247
|
-
const resolvedSrc = useAuthedImageSrc(src);
|
|
2248
2285
|
const sizeClasses2 = {
|
|
2249
2286
|
sm: "h-8 w-8",
|
|
2250
2287
|
md: "h-10 w-10",
|
|
@@ -2287,13 +2324,13 @@ var SquareAvatar = React2.memo(React2.forwardRef(
|
|
|
2287
2324
|
// keeps the later class).
|
|
2288
2325
|
"flex items-center justify-center text-xs font-medium text-[color:var(--ods-avatar-initials,var(--color-text-primary))]",
|
|
2289
2326
|
initialsClassName,
|
|
2290
|
-
|
|
2327
|
+
src && "hidden"
|
|
2291
2328
|
), children: getFirstLastInitials(fallback || alt) || "?" }),
|
|
2292
|
-
|
|
2329
|
+
src && /* @__PURE__ */ jsx10(
|
|
2293
2330
|
next_image_default,
|
|
2294
2331
|
{
|
|
2295
2332
|
className: "absolute -inset-px h-[calc(100%+2px)] w-[calc(100%+2px)] max-w-none object-cover",
|
|
2296
|
-
src
|
|
2333
|
+
src,
|
|
2297
2334
|
alt: alt || "",
|
|
2298
2335
|
width: sizePx ?? sizePxBySize[size2],
|
|
2299
2336
|
height: sizePx ?? sizePxBySize[size2],
|
|
@@ -23332,16 +23369,15 @@ init_cn();
|
|
|
23332
23369
|
init_cn();
|
|
23333
23370
|
|
|
23334
23371
|
// src/components/ui/entity-image.tsx
|
|
23335
|
-
import React81 from "react";
|
|
23336
23372
|
init_cn();
|
|
23373
|
+
import React81 from "react";
|
|
23337
23374
|
import { jsx as jsx164 } from "react/jsx-runtime";
|
|
23338
23375
|
function EntityImage({ src, alt, fallbackText, className }) {
|
|
23339
|
-
const resolvedSrc = useAuthedImageSrc(src);
|
|
23340
23376
|
const [imageFailed, setImageFailed] = React81.useState(false);
|
|
23341
23377
|
React81.useEffect(() => {
|
|
23342
23378
|
setImageFailed(false);
|
|
23343
|
-
}, [
|
|
23344
|
-
const showFallback = imageFailed || !
|
|
23379
|
+
}, [src]);
|
|
23380
|
+
const showFallback = imageFailed || !src;
|
|
23345
23381
|
const initials = getFirstLastInitials(fallbackText ?? alt);
|
|
23346
23382
|
if (showFallback) {
|
|
23347
23383
|
return /* @__PURE__ */ jsx164(
|
|
@@ -23359,7 +23395,7 @@ function EntityImage({ src, alt, fallbackText, className }) {
|
|
|
23359
23395
|
return /* @__PURE__ */ jsx164(
|
|
23360
23396
|
"img",
|
|
23361
23397
|
{
|
|
23362
|
-
src:
|
|
23398
|
+
src: src ?? void 0,
|
|
23363
23399
|
alt: alt ?? "",
|
|
23364
23400
|
onError: () => setImageFailed(true),
|
|
23365
23401
|
className: cn(
|
|
@@ -37679,7 +37715,6 @@ var MobileBurgerMenu = React115.memo(function MobileBurgerMenu2({
|
|
|
37679
37715
|
disabled,
|
|
37680
37716
|
className: cn(
|
|
37681
37717
|
"flex items-center gap-1 p-3 relative",
|
|
37682
|
-
"focus:outline-none focus-visible:outline-none",
|
|
37683
37718
|
"transition-colors duration-200",
|
|
37684
37719
|
"bg-ods-card border border-ods-border rounded-md",
|
|
37685
37720
|
!disabled && "hover:bg-ods-bg-hover",
|
|
@@ -42560,7 +42595,6 @@ function ImageUploader({
|
|
|
42560
42595
|
const [pressed, setPressed] = React128.useState(false);
|
|
42561
42596
|
const [validationError, setValidationError] = React128.useState(null);
|
|
42562
42597
|
const interactive = !disabled && !loading;
|
|
42563
|
-
const resolvedValue = useAuthedImageSrc(value);
|
|
42564
42598
|
const hasImage = Boolean(value);
|
|
42565
42599
|
const displayError = error || validationError || void 0;
|
|
42566
42600
|
const resolvedHint = hint === void 0 ? `Max. size: ${formatSize(maxSize)}` : hint;
|
|
@@ -42646,10 +42680,10 @@ function ImageUploader({
|
|
|
42646
42680
|
dropzoneClassName
|
|
42647
42681
|
),
|
|
42648
42682
|
children: hasImage ? /* @__PURE__ */ jsxs270(Fragment66, { children: [
|
|
42649
|
-
/* @__PURE__ */ jsx339("div", { className: "relative min-h-0 w-full flex-1 overflow-hidden rounded-md", children:
|
|
42683
|
+
/* @__PURE__ */ jsx339("div", { className: "relative min-h-0 w-full flex-1 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx339(
|
|
42650
42684
|
"img",
|
|
42651
42685
|
{
|
|
42652
|
-
src:
|
|
42686
|
+
src: value,
|
|
42653
42687
|
alt,
|
|
42654
42688
|
className: cn(
|
|
42655
42689
|
"pointer-events-none absolute inset-0 size-full",
|
|
@@ -55412,4 +55446,4 @@ export {
|
|
|
55412
55446
|
LogsList,
|
|
55413
55447
|
assets
|
|
55414
55448
|
};
|
|
55415
|
-
//# sourceMappingURL=chunk-
|
|
55449
|
+
//# sourceMappingURL=chunk-QESV36I2.js.map
|