mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 20:01:09 +02:00
Eighth consumer of @mana/shared-privacy. Wardrobe outfits now carry a VisibilityLevel flipped via <VisibilityPicker compact> in the outfit detail page; the wardrobe.outfits embed powers the style-portfolio use-case on the owner's website. Scope: outfits only, not individual garments. Outfits are the composite unit users curate for public presentation (an outfit is an intentional composition; a single garment rarely is). Garments inherit their outfit visibility implicitly — a public outfit reveals the look, the garment pieces behind it stay private at the record level. Changes: - wardrobe/types: visibility + unlistedToken + visibilityChangedAt + visibilityChangedBy on LocalWardrobeOutfit; Outfit (UI) requires visibility; toOutfit converter forwards with 'space' fallback - wardrobe/stores/outfits: createOutfit stamps defaultVisibilityFor(activeSpace.type); new setVisibility(id, level) mints/clears the unlisted token on the transition boundary and emits cross-module VisibilityChanged - wardrobe/views/DetailOutfitView: <VisibilityPicker compact> in the metadata header row, left of the favourite/edit icons — keeps the action rail tight while making exposure state glanceable website embed: - website-blocks/moduleEmbed/schema: 'wardrobe.outfits' added to EmbedSourceSchema - website/embeds: resolveWardrobeOutfits gates hard on canEmbedOnWebsite, filters archived + deleted, optional isFavorite / tagIds filters, favourites-first then newest. Inlines title + occasion/season meta + the lastTryOn.imageUrl (the AI-generated wearing shot). Description, garment details, and internal tag labels stay out of the public snapshot Verified: - pnpm check (web): 7450 files, 0 errors Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| credits | ||
| eslint-config | ||
| feedback | ||
| help | ||
| local-llm | ||
| local-store | ||
| local-stt | ||
| mana-tool-registry | ||
| notify-client | ||
| qr-export | ||
| shared-ai | ||
| shared-auth | ||
| shared-auth-ui | ||
| shared-branding | ||
| shared-crypto | ||
| shared-drizzle-config | ||
| shared-error-tracking | ||
| shared-go | ||
| shared-hono | ||
| shared-i18n | ||
| shared-icons | ||
| shared-landing-ui | ||
| shared-links | ||
| shared-llm | ||
| shared-logger | ||
| shared-privacy | ||
| shared-pwa | ||
| shared-python/manacore_auth | ||
| shared-research | ||
| shared-rss | ||
| shared-storage | ||
| shared-stores | ||
| shared-tags | ||
| shared-tailwind | ||
| shared-theme | ||
| shared-theme-ui | ||
| shared-types | ||
| shared-ui | ||
| shared-uload | ||
| shared-utils | ||
| shared-vite-config | ||
| spiral-db | ||
| test-config | ||
| wallpaper-generator | ||
| website-blocks | ||