/*
[RFC-0100 + RFC-0103] Canonical StandardListItem schema mirrored in
@warpgogol/werkstatt-shared/schemas so body components can validate items without importing from
@warpgogol/werkstatt-site/ui (which would create a cyclic dependency). The same shape is
re-exported by @warpgogol/werkstatt-site/ui/icons/icon-resolver for backwards compatibility.
- Do not introduce app-specific runtime composition or deployment behavior into this reusable package source file.
- RFC-0133: backfilled MODULE_MAP and CHANGE_SUMMARY markers for compass.validate compliance.
*/
import { z } from "zod";
export const vendorIconConfigSchema = z
.object({
vendor: z.string().min(1),
collection: z.string().min(1),
name: z.string().min(1),
size: z.number().int().positive().optional(),
})
.strict();
export type VendorIconConfig = z.infer;
export const standardListItemSchema = z
.object({
text: z.string().min(1),
icon: vendorIconConfigSchema.optional(),
})
.strict();
export type StandardListItem = z.infer;