@activecollab/components 2.0.370 → 2.0.372
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/cjs/components/GlobalStyle.js +1 -1
- package/dist/cjs/components/GlobalStyle.js.map +1 -1
- package/dist/cjs/components/Icons/collection/ConnectionIcon.js +9 -17
- package/dist/cjs/components/Icons/collection/ConnectionIcon.js.map +1 -1
- package/dist/cjs/components/Icons/collection/ShapesIcon.js +61 -0
- package/dist/cjs/components/Icons/collection/ShapesIcon.js.map +1 -0
- package/dist/cjs/components/Icons/collection/index.js +7 -0
- package/dist/cjs/components/Icons/collection/index.js.map +1 -1
- package/dist/cjs/components/StackedCard/Styles.js +2 -2
- package/dist/cjs/components/StackedCard/Styles.js.map +1 -1
- package/dist/cjs/components/StepSequence/Styles.js +1 -1
- package/dist/cjs/components/StepSequence/Styles.js.map +1 -1
- package/dist/cjs/presentation/stackedCard/content/LinkCard.js +35 -22
- package/dist/cjs/presentation/stackedCard/content/LinkCard.js.map +1 -1
- package/dist/esm/components/GlobalStyle.d.ts.map +1 -1
- package/dist/esm/components/GlobalStyle.js +1 -1
- package/dist/esm/components/GlobalStyle.js.map +1 -1
- package/dist/esm/components/Icons/collection/ConnectionIcon.d.ts.map +1 -1
- package/dist/esm/components/Icons/collection/ConnectionIcon.js +9 -17
- package/dist/esm/components/Icons/collection/ConnectionIcon.js.map +1 -1
- package/dist/esm/components/Icons/collection/ShapesIcon.d.ts +32 -0
- package/dist/esm/components/Icons/collection/ShapesIcon.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/ShapesIcon.js +54 -0
- package/dist/esm/components/Icons/collection/ShapesIcon.js.map +1 -0
- package/dist/esm/components/Icons/collection/index.d.ts +1 -0
- package/dist/esm/components/Icons/collection/index.d.ts.map +1 -1
- package/dist/esm/components/Icons/collection/index.js +1 -0
- package/dist/esm/components/Icons/collection/index.js.map +1 -1
- package/dist/esm/components/StackedCard/Styles.d.ts.map +1 -1
- package/dist/esm/components/StackedCard/Styles.js +2 -2
- package/dist/esm/components/StackedCard/Styles.js.map +1 -1
- package/dist/esm/components/StepSequence/Styles.js +1 -1
- package/dist/esm/components/StepSequence/Styles.js.map +1 -1
- package/dist/esm/presentation/stackedCard/content/LinkCard.d.ts.map +1 -1
- package/dist/esm/presentation/stackedCard/content/LinkCard.js +35 -20
- package/dist/esm/presentation/stackedCard/content/LinkCard.js.map +1 -1
- package/dist/index.js +492 -449
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkCard.js","names":["React","styled","COVER_RATIO_HERO","StyledChip","StyledClamp","StyledColorCover","StyledFavicon","coverManagement","playControl","Placeholder","formatFetchedAt","ArrowRefreshIcon","InsertLinkIcon","WarningTriangleIcon","SkeletonLoader","STACKED_CARD_COVER_RATIO","COVER_RATIO","STACKED_CARD_CONTROL_CLASS","StackedCardCover","Cover","StackedCardRow","StackRow","Body2","Caption1","Typography","StyledDomainRow","div","withConfig","displayName","componentId","StyledChips","StyledStaleStrip","StyledReunfurl","button","StyledErrorRow","StyledRetry","StyledFooterTitle","StyledDisplayToggle","DisplayToggle","_ref","display","onToggle","createElement","type","className","onClick","LinkCard","_ref2","_data$heroColor2","_data$faviconColor2","unfurl","_ref2$display","onToggleDisplay","status","tier","data","fetchedAt","retry","reunfurl","role","direction","weight","color","$bg","url","as","variant","hasBasic","hasFull","toggle","undefined","_data$heroColor","_data$faviconColor","Fragment","aspectRatio","centerSlot","playable","topRightSlot","$color","heroColor","style","width","height","background","faviconColor","borderRadius","domain","flex","title","description","StaleStrip","onReunfurl","marginTop","kind","duration","_ref3","LinkSkeleton","LinkPlaceholder","props","_extends","icon","label"],"sources":["../../../../../src/presentation/stackedCard/content/LinkCard.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport {\n COVER_RATIO_HERO,\n StyledChip,\n StyledClamp,\n StyledColorCover,\n StyledFavicon,\n coverManagement,\n playControl,\n Placeholder,\n} from \"./shared\";\nimport { UnfurlController, formatFetchedAt } from \"./unfurl\";\nimport {\n ArrowRefreshIcon,\n InsertLinkIcon,\n WarningTriangleIcon,\n} from \"../../../components/Icons\";\nimport { SkeletonLoader } from \"../../../components/Loaders\";\nimport {\n STACKED_CARD_COVER_RATIO as COVER_RATIO,\n STACKED_CARD_CONTROL_CLASS,\n StackedCardCover as Cover,\n StackedCardRow as StackRow,\n} from \"../../../components/StackedCard\";\nimport { Body2, Caption1 } from \"../../../components/Typography\";\nimport { Typography } from \"../../../components/Typography/Typography\";\n\n/**\n * LinkCard — a link preview as a LIFECYCLE, not two static layouts.\n *\n * Data climbs a progressive ladder (url → basic → full); the anatomy is\n * CONSTANT at every tier, so each slot swaps a skeleton for real content in\n * place and the card never reflows on upgrade. Four statuses layer on top:\n * resolving — climbing the ladder, aspect + rows reserved by skeletons\n * resolved — the full card\n * stale — resolved, but past its cache window: shows `fetchedAt` and a\n * re-unfurl affordance\n * error — the unfurl failed: favicon + raw URL + retry, NO media\n *\n * Compact ↔ expanded is a user-switchable DISPLAY LEVEL on the same link\n * entity (the data lives in the controller, so switching never refetches or\n * loses it) — not two separate card types.\n */\n\nexport type LinkDisplay = \"compact\" | \"expanded\";\n\n/* ------------------------------------------------------------------ */\n/* Small building blocks */\n/* ------------------------------------------------------------------ */\n\nconst StyledDomainRow = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: 16px;\n`;\n\nconst StyledChips = styled.div`\n display: flex;\n align-items: center;\n gap: 6px;\n min-height: 18px;\n`;\n\n/* The stale strip — a re-unfurl affordance with the fetch time. */\nconst StyledStaleStrip = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--color-theme-600);\n\n > span {\n flex: 1 1 auto;\n min-width: 0;\n }\n`;\n\nconst StyledReunfurl = styled.button`\n display: inline-flex;\n align-items: center;\n gap: 4px;\n flex: 0 0 auto;\n padding: 3px 8px;\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n background: var(--page-paper-main);\n color: var(--color-theme-800);\n font-size: 11px;\n cursor: pointer;\n\n svg {\n width: 12px;\n height: 12px;\n }\n\n &:hover {\n background: var(--color-theme-200);\n border-color: var(--sc-selection-ring);\n }\n`;\n\n/* The error body — favicon + raw URL + retry, no media (per spec §5). It is a\n column row like any other: the padding comes from the role, so the error\n state lines up with the states it replaces instead of setting its own inset.\n Only the gap is widened — three stacked blocks, not four text lines. */\nconst StyledErrorRow = styled(StackRow)`\n gap: 10px;\n\n .err-head {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--red-alert);\n }\n\n .err-head svg {\n width: 16px;\n height: 16px;\n flex: 0 0 auto;\n }\n\n .err-url {\n display: flex;\n align-items: center;\n gap: 8px;\n word-break: break-all;\n }\n`;\n\nconst StyledRetry = styled.button`\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 5px 10px;\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n background: var(--page-paper-main);\n color: var(--color-theme-800);\n cursor: pointer;\n\n svg {\n width: 14px;\n height: 14px;\n }\n\n &:hover {\n background: var(--color-theme-200);\n border-color: var(--sc-selection-ring);\n }\n`;\n\n/* The expanded footer band — tinted, holds the title + domain under the hero. */\nconst StyledFooterTitle = styled(Body2)`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n\n/* ------------------------------------------------------------------ */\n/* The display-level switch — lives in the entity \"…\" slot */\n/* ------------------------------------------------------------------ */\n\nconst StyledDisplayToggle = styled.button`\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border: 1px solid var(--border-primary);\n border-radius: 10px;\n background: var(--color-theme-200);\n color: var(--color-theme-700);\n font-size: 11px;\n cursor: pointer;\n white-space: nowrap;\n\n &:hover {\n background: var(--color-theme-300);\n }\n`;\n\nconst DisplayToggle = ({\n display,\n onToggle,\n}: {\n display: LinkDisplay;\n onToggle: () => void;\n}): ReactElement => (\n <StyledDisplayToggle\n type=\"button\"\n data-fixed\n className={STACKED_CARD_CONTROL_CLASS}\n aria-label=\"Switch display level\"\n onClick={onToggle}\n >\n {display === \"compact\" ? \"Expand ▾\" : \"Compact ▴\"}\n </StyledDisplayToggle>\n);\n\n/* ------------------------------------------------------------------ */\n/* LinkCard */\n/* ------------------------------------------------------------------ */\n\nexport interface LinkCardProps {\n unfurl: UnfurlController;\n display?: LinkDisplay;\n onToggleDisplay?: () => void;\n}\n\nexport const LinkCard = ({\n unfurl,\n display = \"compact\",\n onToggleDisplay,\n}: LinkCardProps): ReactElement => {\n const { status, tier, data, fetchedAt, retry, reunfurl } = unfurl;\n\n // ── Error: favicon + raw URL + retry, no media ──────────────────\n if (status === \"error\") {\n return (\n <StyledErrorRow role=\"custom\" direction=\"column\">\n <div className=\"err-head\">\n <WarningTriangleIcon />\n <Caption1 weight=\"bold\" color=\"tertiary\">\n Couldn’t load a preview\n </Caption1>\n </div>\n <div className=\"err-url\">\n <StyledFavicon $bg=\"var(--color-theme-400)\" data-fixed />\n <Caption1 color=\"secondary\">{data.url}</Caption1>\n </div>\n <StyledRetry type=\"button\" onClick={retry}>\n <ArrowRefreshIcon />\n <Typography as=\"span\" variant=\"Caption 1\">\n Retry\n </Typography>\n </StyledRetry>\n </StyledErrorRow>\n );\n }\n\n const hasBasic = tier === \"basic\" || tier === \"full\";\n const hasFull = tier === \"full\";\n const toggle = onToggleDisplay ?? (() => undefined);\n\n // ── Expanded: hero + tinted footer band (title + domain) ────────\n if (display === \"expanded\") {\n return (\n <>\n <Cover\n aspectRatio={COVER_RATIO_HERO}\n centerSlot={hasFull && data.playable ? playControl : undefined}\n topRightSlot={coverManagement()}\n >\n {hasFull ? (\n <StyledColorCover $color={data.heroColor ?? \"#1D9E75\"} />\n ) : (\n <SkeletonLoader style={{ width: \"100%\", height: \"100%\" }} />\n )}\n </Cover>\n <StackRow\n role=\"footer\"\n direction=\"column\"\n background=\"var(--color-theme-200)\"\n >\n <StyledDomainRow>\n {hasBasic ? (\n <StyledFavicon $bg={data.faviconColor ?? \"#0F6E56\"} data-fixed />\n ) : (\n <SkeletonLoader\n data-fixed\n style={{ width: 16, height: 16, borderRadius: 4 }}\n />\n )}\n {hasBasic ? (\n <Caption1 color=\"tertiary\">{data.domain}</Caption1>\n ) : (\n <Caption1 color=\"tertiary\">{data.url}</Caption1>\n )}\n <span style={{ flex: \"1 1 auto\" }} />\n <DisplayToggle display={display} onToggle={toggle} />\n </StyledDomainRow>\n {hasBasic ? (\n <StyledFooterTitle weight=\"bold\">{data.title}</StyledFooterTitle>\n ) : (\n <SkeletonLoader style={{ height: 14, width: \"90%\" }} />\n )}\n {hasFull ? (\n <Caption1 color=\"tertiary\">{data.description}</Caption1>\n ) : (\n <SkeletonLoader style={{ height: 10, width: \"70%\" }} />\n )}\n </StackRow>\n {status === \"stale\" ? (\n <StackRow role=\"meta\">\n <StaleStrip fetchedAt={fetchedAt} onReunfurl={reunfurl} />\n </StackRow>\n ) : null}\n </>\n );\n }\n\n // ── Compact: cover + favicon/domain + title + chips ─────────────\n return (\n <>\n <Cover\n aspectRatio={COVER_RATIO}\n centerSlot={hasFull && data.playable ? playControl : undefined}\n >\n {hasFull ? (\n <StyledColorCover $color={data.heroColor ?? \"#1D9E75\"} />\n ) : (\n <SkeletonLoader style={{ width: \"100%\", height: \"100%\" }} />\n )}\n </Cover>\n\n <StackRow role=\"custom\">\n <StyledDomainRow>\n {hasBasic ? (\n <StyledFavicon $bg={data.faviconColor ?? \"#0F6E56\"} data-fixed />\n ) : (\n <SkeletonLoader\n data-fixed\n style={{ width: 16, height: 16, borderRadius: 4 }}\n />\n )}\n {hasBasic ? (\n <Caption1 color=\"tertiary\">{data.domain}</Caption1>\n ) : (\n <Caption1 color=\"tertiary\">{data.url}</Caption1>\n )}\n <span style={{ flex: \"1 1 auto\" }} />\n <DisplayToggle display={display} onToggle={toggle} />\n </StyledDomainRow>\n </StackRow>\n\n <StackRow role=\"title\">\n {hasBasic ? (\n <StyledClamp>{data.title}</StyledClamp>\n ) : (\n <div style={{ width: \"100%\" }}>\n <SkeletonLoader style={{ height: 14, width: \"92%\" }} />\n <SkeletonLoader\n style={{ height: 14, width: \"60%\", marginTop: 6 }}\n />\n </div>\n )}\n </StackRow>\n\n <StackRow role=\"custom\">\n <StyledChips>\n {hasFull ? (\n <>\n {data.kind ? (\n <StyledChip data-fixed>{data.kind}</StyledChip>\n ) : null}\n {data.duration ? (\n <StyledChip data-fixed>{data.duration}</StyledChip>\n ) : null}\n </>\n ) : (\n <SkeletonLoader\n style={{ height: 18, width: 96, borderRadius: 10 }}\n />\n )}\n </StyledChips>\n </StackRow>\n\n {status === \"stale\" ? (\n <StackRow role=\"meta\">\n <StaleStrip fetchedAt={fetchedAt} onReunfurl={reunfurl} />\n </StackRow>\n ) : null}\n </>\n );\n};\n\n/* The stale affordance — fetch time + a manual re-unfurl button. */\nconst StaleStrip = ({\n fetchedAt,\n onReunfurl,\n}: {\n fetchedAt: number | null;\n onReunfurl: () => void;\n}): ReactElement => (\n <StyledStaleStrip>\n <Typography as=\"span\" variant=\"Caption 1\" color=\"tertiary\">\n Preview may be out of date · fetched {formatFetchedAt(fetchedAt)}\n </Typography>\n <StyledReunfurl type=\"button\" onClick={onReunfurl}>\n <ArrowRefreshIcon />\n Re-unfurl\n </StyledReunfurl>\n </StyledStaleStrip>\n);\n\n/* ---- skeleton ---- */\n\n/* Mirrors the compact anatomy row for row (this is the `resolving` render at\n tier `url`), so a resolving link never reflows as it climbs the ladder. */\nexport const LinkSkeleton = (): ReactElement => (\n <>\n <Cover aspectRatio={COVER_RATIO}>\n <SkeletonLoader style={{ width: \"100%\", height: \"100%\" }} />\n </Cover>\n <StackRow role=\"custom\">\n <StyledDomainRow>\n <SkeletonLoader\n data-fixed\n style={{ width: 16, height: 16, borderRadius: 4 }}\n />\n <SkeletonLoader style={{ height: 10, width: \"40%\" }} />\n </StyledDomainRow>\n </StackRow>\n <StackRow role=\"title\">\n <div style={{ width: \"100%\" }}>\n <SkeletonLoader style={{ height: 14, width: \"92%\" }} />\n <SkeletonLoader style={{ height: 14, width: \"60%\", marginTop: 6 }} />\n </div>\n </StackRow>\n <StackRow role=\"custom\">\n <StyledChips>\n <SkeletonLoader style={{ height: 18, width: 96, borderRadius: 10 }} />\n </StyledChips>\n </StackRow>\n </>\n);\n\n/* ---- placeholder ---- */\n\nexport const LinkPlaceholder = (\n props: React.ButtonHTMLAttributes<HTMLButtonElement>\n): ReactElement => (\n <Placeholder icon={<InsertLinkIcon />} label=\"Add a link\" {...props} />\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"LinkCard.js","names":["React","styled","COVER_RATIO_HERO","StyledChip","StyledClamp","StyledColorCover","StyledFavicon","coverManagement","playControl","Placeholder","formatFetchedAt","ArrowRefreshIcon","InsertLinkIcon","WarningTriangleIcon","SkeletonLoader","STACKED_CARD_COVER_RATIO","COVER_RATIO","STACKED_CARD_CONTROL_CLASS","StackedCardCover","Cover","StackedCardRow","StackRow","Body2","Caption1","Typography","CONTROL_FONT","StyledDomainRow","div","withConfig","displayName","componentId","StyledChips","StyledStaleStrip","StyledReunfurl","button","StyledErrorRow","StyledRetry","resolvedCover","data","_data$heroColor","heroSrc","createElement","src","alt","$color","heroColor","StyledFooterTitle","StyledDisplayToggle","DisplayToggle","_ref","display","onToggle","type","className","onClick","LinkCard","_ref2","_data$faviconColor2","unfurl","_ref2$display","onToggleDisplay","status","tier","fetchedAt","retry","reunfurl","role","direction","weight","color","$bg","url","as","variant","hasBasic","hasFull","toggle","_data$faviconColor","Fragment","aspectRatio","centerSlot","playable","undefined","topRightSlot","style","width","height","background","faviconColor","borderRadius","domain","flex","title","description","StaleStrip","onReunfurl","marginTop","kind","duration","_ref3","LinkSkeleton","LinkPlaceholder","props","_extends","icon","label"],"sources":["../../../../../src/presentation/stackedCard/content/LinkCard.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport {\n COVER_RATIO_HERO,\n StyledChip,\n StyledClamp,\n StyledColorCover,\n StyledFavicon,\n coverManagement,\n playControl,\n Placeholder,\n} from \"./shared\";\nimport { UnfurlController, UnfurlData, formatFetchedAt } from \"./unfurl\";\nimport {\n ArrowRefreshIcon,\n InsertLinkIcon,\n WarningTriangleIcon,\n} from \"../../../components/Icons\";\nimport { SkeletonLoader } from \"../../../components/Loaders\";\nimport {\n STACKED_CARD_COVER_RATIO as COVER_RATIO,\n STACKED_CARD_CONTROL_CLASS,\n StackedCardCover as Cover,\n StackedCardRow as StackRow,\n} from \"../../../components/StackedCard\";\nimport { Body2, Caption1 } from \"../../../components/Typography\";\nimport { Typography } from \"../../../components/Typography/Typography\";\n\n/* There is no global CSS reset in this Storybook, so a raw <button> falls back\n to the UA font (Arial) instead of the DS stack. Every button below is text, so\n they all need it. */\nconst CONTROL_FONT = `-apple-system, BlinkMacSystemFont, \"Roboto\",\n \"Helvetica Neue\", Arial, sans-serif`;\n\n/**\n * LinkCard — a link preview as a LIFECYCLE, not two static layouts.\n *\n * Data climbs a progressive ladder (url → basic → full); the anatomy is\n * CONSTANT at every tier, so each slot swaps a skeleton for real content in\n * place and the card never reflows on upgrade. Four statuses layer on top:\n * resolving — climbing the ladder, aspect + rows reserved by skeletons\n * resolved — the full card\n * stale — resolved, but past its cache window: shows `fetchedAt` and a\n * re-unfurl affordance\n * error — the unfurl failed: favicon + raw URL + retry, NO media\n *\n * Compact ↔ expanded is a user-switchable DISPLAY LEVEL on the same link\n * entity (the data lives in the controller, so switching never refetches or\n * loses it) — not two separate card types.\n */\n\nexport type LinkDisplay = \"compact\" | \"expanded\";\n\n/* ------------------------------------------------------------------ */\n/* Small building blocks */\n/* ------------------------------------------------------------------ */\n\nconst StyledDomainRow = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: 16px;\n`;\n\nconst StyledChips = styled.div`\n display: flex;\n align-items: center;\n gap: 6px;\n min-height: 18px;\n`;\n\n/* The stale strip — a re-unfurl affordance with the fetch time. */\nconst StyledStaleStrip = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--color-theme-600);\n\n > span {\n flex: 1 1 auto;\n min-width: 0;\n }\n`;\n\nconst StyledReunfurl = styled.button`\n display: inline-flex;\n align-items: center;\n gap: 4px;\n flex: 0 0 auto;\n padding: 3px 8px;\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n background: var(--page-paper-main);\n color: var(--color-theme-800);\n font-family: ${CONTROL_FONT};\n font-size: 11px;\n cursor: pointer;\n\n svg {\n width: 12px;\n height: 12px;\n }\n\n &:hover {\n background: var(--color-theme-200);\n border-color: var(--sc-selection-ring);\n }\n`;\n\n/* The error body — favicon + raw URL + retry, no media (per spec §5). It is a\n column row like any other: the padding comes from the role, so the error\n state lines up with the states it replaces instead of setting its own inset.\n Only the gap is widened — three stacked blocks, not four text lines. */\nconst StyledErrorRow = styled(StackRow)`\n gap: 10px;\n\n .err-head {\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--red-alert);\n }\n\n .err-head svg {\n width: 16px;\n height: 16px;\n flex: 0 0 auto;\n }\n\n .err-url {\n display: flex;\n align-items: center;\n gap: 8px;\n word-break: break-all;\n }\n`;\n\nconst StyledRetry = styled.button`\n align-self: flex-start;\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 5px 10px;\n border: 1px solid var(--border-primary);\n border-radius: 6px;\n background: var(--page-paper-main);\n color: var(--color-theme-800);\n font-family: ${CONTROL_FONT};\n cursor: pointer;\n\n svg {\n width: 14px;\n height: 14px;\n }\n\n &:hover {\n background: var(--color-theme-200);\n border-color: var(--sc-selection-ring);\n }\n`;\n\n/* The resolved cover. A production unfurl stores the OpenGraph image, so when\n the ladder returns one we render a real <img> (the Cover fill already gives\n it `object-fit: cover`); the fill colour is the fallback for links that carry\n no image at all. */\nconst resolvedCover = (data: UnfurlData): ReactElement =>\n data.heroSrc ? (\n <img src={data.heroSrc} alt=\"\" />\n ) : (\n <StyledColorCover $color={data.heroColor ?? \"#1D9E75\"} />\n );\n\n/* The expanded footer band — tinted, holds the title + domain under the hero. */\nconst StyledFooterTitle = styled(Body2)`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n\n/* ------------------------------------------------------------------ */\n/* The display-level switch — lives in the entity \"…\" slot */\n/* ------------------------------------------------------------------ */\n\nconst StyledDisplayToggle = styled.button`\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border: 1px solid var(--border-primary);\n border-radius: 10px;\n background: var(--color-theme-200);\n color: var(--color-theme-700);\n font-family: ${CONTROL_FONT};\n font-size: 11px;\n cursor: pointer;\n white-space: nowrap;\n\n &:hover {\n background: var(--color-theme-300);\n }\n`;\n\nconst DisplayToggle = ({\n display,\n onToggle,\n}: {\n display: LinkDisplay;\n onToggle: () => void;\n}): ReactElement => (\n <StyledDisplayToggle\n type=\"button\"\n data-fixed\n className={STACKED_CARD_CONTROL_CLASS}\n aria-label=\"Switch display level\"\n onClick={onToggle}\n >\n {display === \"compact\" ? \"Expand ▾\" : \"Compact ▴\"}\n </StyledDisplayToggle>\n);\n\n/* ------------------------------------------------------------------ */\n/* LinkCard */\n/* ------------------------------------------------------------------ */\n\nexport interface LinkCardProps {\n unfurl: UnfurlController;\n display?: LinkDisplay;\n onToggleDisplay?: () => void;\n}\n\nexport const LinkCard = ({\n unfurl,\n display = \"compact\",\n onToggleDisplay,\n}: LinkCardProps): ReactElement => {\n const { status, tier, data, fetchedAt, retry, reunfurl } = unfurl;\n\n // ── Error: favicon + raw URL + retry, no media ──────────────────\n if (status === \"error\") {\n return (\n <StyledErrorRow role=\"custom\" direction=\"column\">\n <div className=\"err-head\">\n <WarningTriangleIcon />\n <Caption1 weight=\"bold\" color=\"tertiary\">\n Couldn’t load a preview\n </Caption1>\n </div>\n <div className=\"err-url\">\n <StyledFavicon $bg=\"var(--color-theme-400)\" data-fixed />\n <Caption1 color=\"secondary\">{data.url}</Caption1>\n </div>\n <StyledRetry type=\"button\" onClick={retry}>\n <ArrowRefreshIcon />\n <Typography as=\"span\" variant=\"Caption 1\">\n Retry\n </Typography>\n </StyledRetry>\n </StyledErrorRow>\n );\n }\n\n const hasBasic = tier === \"basic\" || tier === \"full\";\n const hasFull = tier === \"full\";\n /* The display level belongs to the host, so the switch only appears when a\n host actually owns one. A surface that fixes the card at one level (the\n whiteboard pins it to expanded) gets no dead control. */\n const toggle = onToggleDisplay ? (\n <DisplayToggle display={display} onToggle={onToggleDisplay} />\n ) : null;\n\n // ── Expanded: hero + tinted footer band (title + domain) ────────\n if (display === \"expanded\") {\n return (\n <>\n <Cover\n aspectRatio={COVER_RATIO_HERO}\n centerSlot={hasFull && data.playable ? playControl : undefined}\n topRightSlot={coverManagement()}\n >\n {hasFull ? (\n resolvedCover(data)\n ) : (\n <SkeletonLoader style={{ width: \"100%\", height: \"100%\" }} />\n )}\n </Cover>\n <StackRow\n role=\"footer\"\n direction=\"column\"\n background=\"var(--color-theme-200)\"\n >\n <StyledDomainRow>\n {hasBasic ? (\n <StyledFavicon $bg={data.faviconColor ?? \"#0F6E56\"} data-fixed />\n ) : (\n <SkeletonLoader\n data-fixed\n style={{ width: 16, height: 16, borderRadius: 4 }}\n />\n )}\n {hasBasic ? (\n <Caption1 color=\"tertiary\">{data.domain}</Caption1>\n ) : (\n <Caption1 color=\"tertiary\">{data.url}</Caption1>\n )}\n <span style={{ flex: \"1 1 auto\" }} />\n {toggle}\n </StyledDomainRow>\n {hasBasic ? (\n <StyledFooterTitle weight=\"bold\">{data.title}</StyledFooterTitle>\n ) : (\n <SkeletonLoader style={{ height: 14, width: \"90%\" }} />\n )}\n {hasFull ? (\n <Caption1 color=\"tertiary\">{data.description}</Caption1>\n ) : (\n <SkeletonLoader style={{ height: 10, width: \"70%\" }} />\n )}\n </StackRow>\n {status === \"stale\" ? (\n <StackRow role=\"meta\">\n <StaleStrip fetchedAt={fetchedAt} onReunfurl={reunfurl} />\n </StackRow>\n ) : null}\n </>\n );\n }\n\n // ── Compact: cover + favicon/domain + title + chips ─────────────\n return (\n <>\n <Cover\n aspectRatio={COVER_RATIO}\n centerSlot={hasFull && data.playable ? playControl : undefined}\n >\n {hasFull ? (\n resolvedCover(data)\n ) : (\n <SkeletonLoader style={{ width: \"100%\", height: \"100%\" }} />\n )}\n </Cover>\n\n <StackRow role=\"custom\">\n <StyledDomainRow>\n {hasBasic ? (\n <StyledFavicon $bg={data.faviconColor ?? \"#0F6E56\"} data-fixed />\n ) : (\n <SkeletonLoader\n data-fixed\n style={{ width: 16, height: 16, borderRadius: 4 }}\n />\n )}\n {hasBasic ? (\n <Caption1 color=\"tertiary\">{data.domain}</Caption1>\n ) : (\n <Caption1 color=\"tertiary\">{data.url}</Caption1>\n )}\n <span style={{ flex: \"1 1 auto\" }} />\n {toggle}\n </StyledDomainRow>\n </StackRow>\n\n <StackRow role=\"title\">\n {hasBasic ? (\n <StyledClamp>{data.title}</StyledClamp>\n ) : (\n <div style={{ width: \"100%\" }}>\n <SkeletonLoader style={{ height: 14, width: \"92%\" }} />\n <SkeletonLoader\n style={{ height: 14, width: \"60%\", marginTop: 6 }}\n />\n </div>\n )}\n </StackRow>\n\n <StackRow role=\"custom\">\n <StyledChips>\n {hasFull ? (\n <>\n {data.kind ? (\n <StyledChip data-fixed>{data.kind}</StyledChip>\n ) : null}\n {data.duration ? (\n <StyledChip data-fixed>{data.duration}</StyledChip>\n ) : null}\n </>\n ) : (\n <SkeletonLoader\n style={{ height: 18, width: 96, borderRadius: 10 }}\n />\n )}\n </StyledChips>\n </StackRow>\n\n {status === \"stale\" ? (\n <StackRow role=\"meta\">\n <StaleStrip fetchedAt={fetchedAt} onReunfurl={reunfurl} />\n </StackRow>\n ) : null}\n </>\n );\n};\n\n/* The stale affordance — fetch time + a manual re-unfurl button. */\nconst StaleStrip = ({\n fetchedAt,\n onReunfurl,\n}: {\n fetchedAt: number | null;\n onReunfurl: () => void;\n}): ReactElement => (\n <StyledStaleStrip>\n <Typography as=\"span\" variant=\"Caption 1\" color=\"tertiary\">\n Preview may be out of date · fetched {formatFetchedAt(fetchedAt)}\n </Typography>\n <StyledReunfurl type=\"button\" onClick={onReunfurl}>\n <ArrowRefreshIcon />\n Re-unfurl\n </StyledReunfurl>\n </StyledStaleStrip>\n);\n\n/* ---- skeleton ---- */\n\n/* Mirrors the compact anatomy row for row (this is the `resolving` render at\n tier `url`), so a resolving link never reflows as it climbs the ladder. */\nexport const LinkSkeleton = (): ReactElement => (\n <>\n <Cover aspectRatio={COVER_RATIO}>\n <SkeletonLoader style={{ width: \"100%\", height: \"100%\" }} />\n </Cover>\n <StackRow role=\"custom\">\n <StyledDomainRow>\n <SkeletonLoader\n data-fixed\n style={{ width: 16, height: 16, borderRadius: 4 }}\n />\n <SkeletonLoader style={{ height: 10, width: \"40%\" }} />\n </StyledDomainRow>\n </StackRow>\n <StackRow role=\"title\">\n <div style={{ width: \"100%\" }}>\n <SkeletonLoader style={{ height: 14, width: \"92%\" }} />\n <SkeletonLoader style={{ height: 14, width: \"60%\", marginTop: 6 }} />\n </div>\n </StackRow>\n <StackRow role=\"custom\">\n <StyledChips>\n <SkeletonLoader style={{ height: 18, width: 96, borderRadius: 10 }} />\n </StyledChips>\n </StackRow>\n </>\n);\n\n/* ---- placeholder ---- */\n\nexport const LinkPlaceholder = (\n props: React.ButtonHTMLAttributes<HTMLButtonElement>\n): ReactElement => (\n <Placeholder icon={<InsertLinkIcon />} label=\"Add a link\" {...props} />\n);\n"],"mappings":";AAAA,OAAOA,KAAK,MAAwB,OAAO;AAE3C,OAAOC,MAAM,MAAM,mBAAmB;AAEtC,SACEC,gBAAgB,EAChBC,UAAU,EACVC,WAAW,EACXC,gBAAgB,EAChBC,aAAa,EACbC,eAAe,EACfC,WAAW,EACXC,WAAW,QACN,UAAU;AACjB,SAAuCC,eAAe,QAAQ,UAAU;AACxE,SACEC,gBAAgB,EAChBC,cAAc,EACdC,mBAAmB,QACd,2BAA2B;AAClC,SAASC,cAAc,QAAQ,6BAA6B;AAC5D,SACEC,wBAAwB,IAAIC,WAAW,EACvCC,0BAA0B,EAC1BC,gBAAgB,IAAIC,KAAK,EACzBC,cAAc,IAAIC,QAAQ,QACrB,iCAAiC;AACxC,SAASC,KAAK,EAAEC,QAAQ,QAAQ,gCAAgC;AAChE,SAASC,UAAU,QAAQ,2CAA2C;;AAEtE;AACA;AACA;AACA,MAAMC,YAAY,8FACsB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;;AAEA,MAAMC,eAAe,GAAGzB,MAAM,CAAC0B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gEAKjC;AAED,MAAMC,WAAW,GAAG9B,MAAM,CAAC0B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gEAK7B;;AAED;AACA,MAAME,gBAAgB,GAAG/B,MAAM,CAAC0B,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+GAUlC;AAED,MAAMG,cAAc,GAAGhC,MAAM,CAACiC,MAAM,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0WAUnBL,YAAY,CAa5B;;AAED;AACA;AACA;AACA;AACA,MAAMU,cAAc,GAAGlC,MAAM,CAACoB,QAAQ,CAAC,CAAAO,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,sNAsBtC;AAED,MAAMM,WAAW,GAAGnC,MAAM,CAACiC,MAAM,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oWAUhBL,YAAY,CAY5B;;AAED;AACA;AACA;AACA;AACA,MAAMY,aAAa,GAAIC,IAAgB;EAAA,IAAAC,eAAA;EAAA,OACrCD,IAAI,CAACE,OAAO,gBACVxC,KAAA,CAAAyC,aAAA;IAAKC,GAAG,EAAEJ,IAAI,CAACE,OAAQ;IAACG,GAAG,EAAC;EAAE,CAAE,CAAC,gBAEjC3C,KAAA,CAAAyC,aAAA,CAACpC,gBAAgB;IAACuC,MAAM,GAAAL,eAAA,GAAED,IAAI,CAACO,SAAS,YAAAN,eAAA,GAAI;EAAU,CAAE,CACzD;AAAA;;AAEH;AACA,MAAMO,iBAAiB,GAAG7C,MAAM,CAACqB,KAAK,CAAC,CAAAM,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,6FAKtC;;AAED;AACA;AACA;;AAEA,MAAMiB,mBAAmB,GAAG9C,MAAM,CAACiC,MAAM,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,sSAQxBL,YAAY,CAQ5B;AAED,MAAMuB,aAAa,GAAGC,IAAA;EAAA,IACpBC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAAA,oBAKRnD,KAAA,CAAAyC,aAAA,CAACM,mBAAmB;IAClBK,IAAI,EAAC,QAAQ;IACb,kBAAU;IACVC,SAAS,EAAEpC,0BAA2B;IACtC,cAAW,sBAAsB;IACjCqC,OAAO,EAAEH;EAAS,GAEjBD,OAAO,KAAK,SAAS,GAAG,UAAU,GAAG,WACnB,CAAC;AAAA,CACvB;;AAED;AACA;AACA;;AAQA,OAAO,MAAMK,QAAQ,GAAGC,KAAA,IAIW;EAAA,IAAAC,mBAAA;EAAA,IAHjCC,MAAM,GAAAF,KAAA,CAANE,MAAM;IAAAC,aAAA,GAAAH,KAAA,CACNN,OAAO;IAAPA,OAAO,GAAAS,aAAA,cAAG,SAAS,GAAAA,aAAA;IACnBC,eAAe,GAAAJ,KAAA,CAAfI,eAAe;EAEf,MAAQC,MAAM,GAA6CH,MAAM,CAAzDG,MAAM;IAAEC,IAAI,GAAuCJ,MAAM,CAAjDI,IAAI;IAAExB,IAAI,GAAiCoB,MAAM,CAA3CpB,IAAI;IAAEyB,SAAS,GAAsBL,MAAM,CAArCK,SAAS;IAAEC,KAAK,GAAeN,MAAM,CAA1BM,KAAK;IAAEC,QAAQ,GAAKP,MAAM,CAAnBO,QAAQ;;EAEtD;EACA,IAAIJ,MAAM,KAAK,OAAO,EAAE;IACtB,oBACE7D,KAAA,CAAAyC,aAAA,CAACN,cAAc;MAAC+B,IAAI,EAAC,QAAQ;MAACC,SAAS,EAAC;IAAQ,gBAC9CnE,KAAA,CAAAyC,aAAA;MAAKY,SAAS,EAAC;IAAU,gBACvBrD,KAAA,CAAAyC,aAAA,CAAC5B,mBAAmB,MAAE,CAAC,eACvBb,KAAA,CAAAyC,aAAA,CAAClB,QAAQ;MAAC6C,MAAM,EAAC,MAAM;MAACC,KAAK,EAAC;IAAU,GAAC,8BAE/B,CACP,CAAC,eACNrE,KAAA,CAAAyC,aAAA;MAAKY,SAAS,EAAC;IAAS,gBACtBrD,KAAA,CAAAyC,aAAA,CAACnC,aAAa;MAACgE,GAAG,EAAC,wBAAwB;MAAC;IAAU,CAAE,CAAC,eACzDtE,KAAA,CAAAyC,aAAA,CAAClB,QAAQ;MAAC8C,KAAK,EAAC;IAAW,GAAE/B,IAAI,CAACiC,GAAc,CAC7C,CAAC,eACNvE,KAAA,CAAAyC,aAAA,CAACL,WAAW;MAACgB,IAAI,EAAC,QAAQ;MAACE,OAAO,EAAEU;IAAM,gBACxChE,KAAA,CAAAyC,aAAA,CAAC9B,gBAAgB,MAAE,CAAC,eACpBX,KAAA,CAAAyC,aAAA,CAACjB,UAAU;MAACgD,EAAE,EAAC,MAAM;MAACC,OAAO,EAAC;IAAW,GAAC,OAE9B,CACD,CACC,CAAC;EAErB;EAEA,MAAMC,QAAQ,GAAGZ,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,MAAM;EACpD,MAAMa,OAAO,GAAGb,IAAI,KAAK,MAAM;EAC/B;AACF;AACA;EACE,MAAMc,MAAM,GAAGhB,eAAe,gBAC5B5D,KAAA,CAAAyC,aAAA,CAACO,aAAa;IAACE,OAAO,EAAEA,OAAQ;IAACC,QAAQ,EAAES;EAAgB,CAAE,CAAC,GAC5D,IAAI;;EAER;EACA,IAAIV,OAAO,KAAK,UAAU,EAAE;IAAA,IAAA2B,kBAAA;IAC1B,oBACE7E,KAAA,CAAAyC,aAAA,CAAAzC,KAAA,CAAA8E,QAAA,qBACE9E,KAAA,CAAAyC,aAAA,CAACtB,KAAK;MACJ4D,WAAW,EAAE7E,gBAAiB;MAC9B8E,UAAU,EAAEL,OAAO,IAAIrC,IAAI,CAAC2C,QAAQ,GAAGzE,WAAW,GAAG0E,SAAU;MAC/DC,YAAY,EAAE5E,eAAe,CAAC;IAAE,GAE/BoE,OAAO,GACNtC,aAAa,CAACC,IAAI,CAAC,gBAEnBtC,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;MAACsE,KAAK,EAAE;QAAEC,KAAK,EAAE,MAAM;QAAEC,MAAM,EAAE;MAAO;IAAE,CAAE,CAExD,CAAC,eACRtF,KAAA,CAAAyC,aAAA,CAACpB,QAAQ;MACP6C,IAAI,EAAC,QAAQ;MACbC,SAAS,EAAC,QAAQ;MAClBoB,UAAU,EAAC;IAAwB,gBAEnCvF,KAAA,CAAAyC,aAAA,CAACf,eAAe,QACbgD,QAAQ,gBACP1E,KAAA,CAAAyC,aAAA,CAACnC,aAAa;MAACgE,GAAG,GAAAO,kBAAA,GAAEvC,IAAI,CAACkD,YAAY,YAAAX,kBAAA,GAAI,SAAU;MAAC;IAAU,CAAE,CAAC,gBAEjE7E,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;MACb,kBAAU;MACVsE,KAAK,EAAE;QAAEC,KAAK,EAAE,EAAE;QAAEC,MAAM,EAAE,EAAE;QAAEG,YAAY,EAAE;MAAE;IAAE,CACnD,CACF,EACAf,QAAQ,gBACP1E,KAAA,CAAAyC,aAAA,CAAClB,QAAQ;MAAC8C,KAAK,EAAC;IAAU,GAAE/B,IAAI,CAACoD,MAAiB,CAAC,gBAEnD1F,KAAA,CAAAyC,aAAA,CAAClB,QAAQ;MAAC8C,KAAK,EAAC;IAAU,GAAE/B,IAAI,CAACiC,GAAc,CAChD,eACDvE,KAAA,CAAAyC,aAAA;MAAM2C,KAAK,EAAE;QAAEO,IAAI,EAAE;MAAW;IAAE,CAAE,CAAC,EACpCf,MACc,CAAC,EACjBF,QAAQ,gBACP1E,KAAA,CAAAyC,aAAA,CAACK,iBAAiB;MAACsB,MAAM,EAAC;IAAM,GAAE9B,IAAI,CAACsD,KAAyB,CAAC,gBAEjE5F,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;MAACsE,KAAK,EAAE;QAAEE,MAAM,EAAE,EAAE;QAAED,KAAK,EAAE;MAAM;IAAE,CAAE,CACvD,EACAV,OAAO,gBACN3E,KAAA,CAAAyC,aAAA,CAAClB,QAAQ;MAAC8C,KAAK,EAAC;IAAU,GAAE/B,IAAI,CAACuD,WAAsB,CAAC,gBAExD7F,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;MAACsE,KAAK,EAAE;QAAEE,MAAM,EAAE,EAAE;QAAED,KAAK,EAAE;MAAM;IAAE,CAAE,CAEhD,CAAC,EACVxB,MAAM,KAAK,OAAO,gBACjB7D,KAAA,CAAAyC,aAAA,CAACpB,QAAQ;MAAC6C,IAAI,EAAC;IAAM,gBACnBlE,KAAA,CAAAyC,aAAA,CAACqD,UAAU;MAAC/B,SAAS,EAAEA,SAAU;MAACgC,UAAU,EAAE9B;IAAS,CAAE,CACjD,CAAC,GACT,IACJ,CAAC;EAEP;;EAEA;EACA,oBACEjE,KAAA,CAAAyC,aAAA,CAAAzC,KAAA,CAAA8E,QAAA,qBACE9E,KAAA,CAAAyC,aAAA,CAACtB,KAAK;IACJ4D,WAAW,EAAE/D,WAAY;IACzBgE,UAAU,EAAEL,OAAO,IAAIrC,IAAI,CAAC2C,QAAQ,GAAGzE,WAAW,GAAG0E;EAAU,GAE9DP,OAAO,GACNtC,aAAa,CAACC,IAAI,CAAC,gBAEnBtC,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;IAACsE,KAAK,EAAE;MAAEC,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE;IAAO;EAAE,CAAE,CAExD,CAAC,eAERtF,KAAA,CAAAyC,aAAA,CAACpB,QAAQ;IAAC6C,IAAI,EAAC;EAAQ,gBACrBlE,KAAA,CAAAyC,aAAA,CAACf,eAAe,QACbgD,QAAQ,gBACP1E,KAAA,CAAAyC,aAAA,CAACnC,aAAa;IAACgE,GAAG,GAAAb,mBAAA,GAAEnB,IAAI,CAACkD,YAAY,YAAA/B,mBAAA,GAAI,SAAU;IAAC;EAAU,CAAE,CAAC,gBAEjEzD,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;IACb,kBAAU;IACVsE,KAAK,EAAE;MAAEC,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE,EAAE;MAAEG,YAAY,EAAE;IAAE;EAAE,CACnD,CACF,EACAf,QAAQ,gBACP1E,KAAA,CAAAyC,aAAA,CAAClB,QAAQ;IAAC8C,KAAK,EAAC;EAAU,GAAE/B,IAAI,CAACoD,MAAiB,CAAC,gBAEnD1F,KAAA,CAAAyC,aAAA,CAAClB,QAAQ;IAAC8C,KAAK,EAAC;EAAU,GAAE/B,IAAI,CAACiC,GAAc,CAChD,eACDvE,KAAA,CAAAyC,aAAA;IAAM2C,KAAK,EAAE;MAAEO,IAAI,EAAE;IAAW;EAAE,CAAE,CAAC,EACpCf,MACc,CACT,CAAC,eAEX5E,KAAA,CAAAyC,aAAA,CAACpB,QAAQ;IAAC6C,IAAI,EAAC;EAAO,GACnBQ,QAAQ,gBACP1E,KAAA,CAAAyC,aAAA,CAACrC,WAAW,QAAEkC,IAAI,CAACsD,KAAmB,CAAC,gBAEvC5F,KAAA,CAAAyC,aAAA;IAAK2C,KAAK,EAAE;MAAEC,KAAK,EAAE;IAAO;EAAE,gBAC5BrF,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;IAACsE,KAAK,EAAE;MAAEE,MAAM,EAAE,EAAE;MAAED,KAAK,EAAE;IAAM;EAAE,CAAE,CAAC,eACvDrF,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;IACbsE,KAAK,EAAE;MAAEE,MAAM,EAAE,EAAE;MAAED,KAAK,EAAE,KAAK;MAAEW,SAAS,EAAE;IAAE;EAAE,CACnD,CACE,CAEC,CAAC,eAEXhG,KAAA,CAAAyC,aAAA,CAACpB,QAAQ;IAAC6C,IAAI,EAAC;EAAQ,gBACrBlE,KAAA,CAAAyC,aAAA,CAACV,WAAW,QACT4C,OAAO,gBACN3E,KAAA,CAAAyC,aAAA,CAAAzC,KAAA,CAAA8E,QAAA,QACGxC,IAAI,CAAC2D,IAAI,gBACRjG,KAAA,CAAAyC,aAAA,CAACtC,UAAU;IAAC;EAAU,GAAEmC,IAAI,CAAC2D,IAAiB,CAAC,GAC7C,IAAI,EACP3D,IAAI,CAAC4D,QAAQ,gBACZlG,KAAA,CAAAyC,aAAA,CAACtC,UAAU;IAAC;EAAU,GAAEmC,IAAI,CAAC4D,QAAqB,CAAC,GACjD,IACJ,CAAC,gBAEHlG,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;IACbsE,KAAK,EAAE;MAAEE,MAAM,EAAE,EAAE;MAAED,KAAK,EAAE,EAAE;MAAEI,YAAY,EAAE;IAAG;EAAE,CACpD,CAEQ,CACL,CAAC,EAEV5B,MAAM,KAAK,OAAO,gBACjB7D,KAAA,CAAAyC,aAAA,CAACpB,QAAQ;IAAC6C,IAAI,EAAC;EAAM,gBACnBlE,KAAA,CAAAyC,aAAA,CAACqD,UAAU;IAAC/B,SAAS,EAAEA,SAAU;IAACgC,UAAU,EAAE9B;EAAS,CAAE,CACjD,CAAC,GACT,IACJ,CAAC;AAEP,CAAC;;AAED;AACA,MAAM6B,UAAU,GAAGK,KAAA;EAAA,IACjBpC,SAAS,GAAAoC,KAAA,CAATpC,SAAS;IACTgC,UAAU,GAAAI,KAAA,CAAVJ,UAAU;EAAA,oBAKV/F,KAAA,CAAAyC,aAAA,CAACT,gBAAgB,qBACfhC,KAAA,CAAAyC,aAAA,CAACjB,UAAU;IAACgD,EAAE,EAAC,MAAM;IAACC,OAAO,EAAC,WAAW;IAACJ,KAAK,EAAC;EAAU,GAAC,0CACpB,EAAC3D,eAAe,CAACqD,SAAS,CACrD,CAAC,eACb/D,KAAA,CAAAyC,aAAA,CAACR,cAAc;IAACmB,IAAI,EAAC,QAAQ;IAACE,OAAO,EAAEyC;EAAW,gBAChD/F,KAAA,CAAAyC,aAAA,CAAC9B,gBAAgB,MAAE,CAAC,aAEN,CACA,CAAC;AAAA,CACpB;;AAED;;AAEA;AACA;AACA,OAAO,MAAMyF,YAAY,GAAGA,CAAA,kBAC1BpG,KAAA,CAAAyC,aAAA,CAAAzC,KAAA,CAAA8E,QAAA,qBACE9E,KAAA,CAAAyC,aAAA,CAACtB,KAAK;EAAC4D,WAAW,EAAE/D;AAAY,gBAC9BhB,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;EAACsE,KAAK,EAAE;IAAEC,KAAK,EAAE,MAAM;IAAEC,MAAM,EAAE;EAAO;AAAE,CAAE,CACtD,CAAC,eACRtF,KAAA,CAAAyC,aAAA,CAACpB,QAAQ;EAAC6C,IAAI,EAAC;AAAQ,gBACrBlE,KAAA,CAAAyC,aAAA,CAACf,eAAe,qBACd1B,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;EACb,kBAAU;EACVsE,KAAK,EAAE;IAAEC,KAAK,EAAE,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEG,YAAY,EAAE;EAAE;AAAE,CACnD,CAAC,eACFzF,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;EAACsE,KAAK,EAAE;IAAEE,MAAM,EAAE,EAAE;IAAED,KAAK,EAAE;EAAM;AAAE,CAAE,CACvC,CACT,CAAC,eACXrF,KAAA,CAAAyC,aAAA,CAACpB,QAAQ;EAAC6C,IAAI,EAAC;AAAO,gBACpBlE,KAAA,CAAAyC,aAAA;EAAK2C,KAAK,EAAE;IAAEC,KAAK,EAAE;EAAO;AAAE,gBAC5BrF,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;EAACsE,KAAK,EAAE;IAAEE,MAAM,EAAE,EAAE;IAAED,KAAK,EAAE;EAAM;AAAE,CAAE,CAAC,eACvDrF,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;EAACsE,KAAK,EAAE;IAAEE,MAAM,EAAE,EAAE;IAAED,KAAK,EAAE,KAAK;IAAEW,SAAS,EAAE;EAAE;AAAE,CAAE,CACjE,CACG,CAAC,eACXhG,KAAA,CAAAyC,aAAA,CAACpB,QAAQ;EAAC6C,IAAI,EAAC;AAAQ,gBACrBlE,KAAA,CAAAyC,aAAA,CAACV,WAAW,qBACV/B,KAAA,CAAAyC,aAAA,CAAC3B,cAAc;EAACsE,KAAK,EAAE;IAAEE,MAAM,EAAE,EAAE;IAAED,KAAK,EAAE,EAAE;IAAEI,YAAY,EAAE;EAAG;AAAE,CAAE,CAC1D,CACL,CACV,CACH;;AAED;;AAEA,OAAO,MAAMY,eAAe,GAC1BC,KAAoD,iBAEpDtG,KAAA,CAAAyC,aAAA,CAAChC,WAAW,EAAA8F,QAAA;EAACC,IAAI,eAAExG,KAAA,CAAAyC,aAAA,CAAC7B,cAAc,MAAE,CAAE;EAAC6F,KAAK,EAAC;AAAY,GAAKH,KAAK,CAAG,CACvE","ignoreList":[]}
|