docs(product): commit design references under docs/product/reference/
Copy the founder's design handoff bundle (.proto/design/) into docs/product/reference/ byte-for-byte so dispatch agents running in git worktrees can read the HTML prototypes, veect-codebase/ prototype, upload PNGs, and remaining bundle files (ADR-029: reference only, never vendored into packages/). Ignore-list entries so whole-codebase auditors and formatters skip reference material: .prettierignore (byte preservation through lint-staged), .fallowrc.json ignorePatterns, root ESLint ignores, and the coverage:diff allowlist in scripts/coverage/diff.mjs (+ unit test). .DS_Store files skipped. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* Demo fiction — single source of truth for the customer identity Veect
|
||||
* is shown composing against. Swapping these swaps the whole demo brand;
|
||||
* nothing else hard-codes "Solstice" or the import paths.
|
||||
*/
|
||||
|
||||
/** The customer's mapped component library (what export imports). */
|
||||
export const CUSTOMER_LIB = '@solstice/ui';
|
||||
|
||||
/** Fallback kit for components the user hasn't mapped yet. */
|
||||
export const BASE_KIT = '@veect/base-kit';
|
||||
|
||||
/** The customer design system on show. */
|
||||
export const SYSTEM_NAME = 'Solstice';
|
||||
|
||||
/** The demo project opened in the editor. */
|
||||
export const PROJECT_NAME = 'Solstice — Marketing site';
|
||||
|
||||
/** Workspace members — designer (owner) + design engineer (reviewer/veto). */
|
||||
export const TEAM = [
|
||||
{ initials: 'MK', name: 'Maya Kade', role: 'product designer — composes & ships', chip: 'owner' },
|
||||
{
|
||||
initials: 'DP',
|
||||
name: 'Devon Park',
|
||||
role: `design engineer — owns ${CUSTOMER_LIB}, holds the merge veto`,
|
||||
chip: 'reviewer',
|
||||
},
|
||||
] as const;
|
||||
@@ -0,0 +1,30 @@
|
||||
/** The base kit — 10 components, mapped to the customer's real library. */
|
||||
export const LIBRARY = [
|
||||
{ type: 'stack', name: 'Stack', primitive: true },
|
||||
{ type: 'heading', name: 'Heading' },
|
||||
{ type: 'text', name: 'Text' },
|
||||
{ type: 'button', name: 'Button' },
|
||||
{ type: 'badge', name: 'Badge', unmapped: true },
|
||||
{ type: 'card', name: 'Card' },
|
||||
{ type: 'input', name: 'Input' },
|
||||
{ type: 'avatar', name: 'Avatar' },
|
||||
{ type: 'image', name: 'Image', primitive: true },
|
||||
{ type: 'divider', name: 'Divider', primitive: true },
|
||||
] as const;
|
||||
|
||||
export type LibraryItem = (typeof LIBRARY)[number];
|
||||
|
||||
export const NODE_GLYPHS: Record<string, string> = {
|
||||
frame: '▣',
|
||||
stack: '▤',
|
||||
card: '▢',
|
||||
heading: 'Aa',
|
||||
text: '¶',
|
||||
button: '▭',
|
||||
badge: '◦',
|
||||
input: '⌷',
|
||||
avatar: '◉',
|
||||
image: '▧',
|
||||
divider: '—',
|
||||
custom: '◈',
|
||||
};
|
||||
Reference in New Issue
Block a user