mirror of
https://github.com/nexu-io/open-design.git
synced 2026-09-28 13:33:03 +08:00
Behavior-preserving consolidation of the owner share surfaces, verified by pixel diff of all 17 Owner capture specs against the pre-refactor baseline (every state within the known 0-0.25% noise from timestamps, placeholder animation and the dev badge; the share panel itself is identical). - Shared components: LinkAccessRow, ShareNoticeRow, ShareProgressButton (S2 upload + K1 sync), ShareErrorRow, ShareButton (primary / soft / soft-error / dark-sm on @open-design/components Button), ShareSignInButton over a new useCloudSignIn hook shared with CloudSignInTip. - The popover skin moves from a :has(.panel) override to an explicit .chrome-unified-popover--share class; SignedOutObservedShare reuses SharePanelHeader and the extracted rows. - Icons: every inline share SVG moves into components/Icon.tsx with byte-identical path data. - Tokens: styles/share-tokens.css holds the share palette and sizes as fixed light values (not app theme tokens, so dark mode renders as before); share CSS modules reference them. Single-use decorative values stay local. - Delete the unreachable React-component share popover (canShareCurrentFile is false by design, Owner-G3) and its dead state and handlers. - Toasts: share-adjacent feedback uses ShareFeedbackToast; top toasts share one stacking order instead of overlapping at top:64px. - Static CSS-contract tests read share styles through readShareCss, which resolves share tokens to the design values they assert. Allowed visual changes (existing defects): - The sign-in entry is a real button; signing/error messages render below it instead of inside a nested button (UI-040). - The comment side panel's retry-failed message is red (UI-042). - Simultaneous top toasts stack instead of overlapping (UI-039). - 「正在开启…」 goes through i18n (UI-041).