@safe-ugc-ui/types 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/values.ts","../src/styles.ts","../src/props.ts","../src/primitives.ts","../src/card.ts","../src/constants.ts"],"sourcesContent":["/**\n * @safe-ugc-ui/types — Value Type System\n *\n * Defines the core value types used throughout the Safe UGC UI framework.\n * Based on spec section 4.1: Ref, Expr, Dynamic, Static, and primitive value types.\n *\n * Naming convention:\n * - Zod schema → `fooSchema`\n * - Inferred TypeScript type → `Foo`\n */\n\nimport { z } from 'zod';\n\n// ---------------------------------------------------------------------------\n// 1. Ref — state variable reference\n// ---------------------------------------------------------------------------\n\nexport const refSchema = z.object({\n $ref: z.string(),\n});\n\nexport type Ref = z.infer<typeof refSchema>;\n\n// ---------------------------------------------------------------------------\n// 2. Expr — expression\n// ---------------------------------------------------------------------------\n\nexport const exprSchema = z.object({\n $expr: z.string(),\n});\n\nexport type Expr = z.infer<typeof exprSchema>;\n\n// ---------------------------------------------------------------------------\n// 3. AssetPath — local asset reference (`@assets/...`)\n// ---------------------------------------------------------------------------\n\nexport const assetPathSchema = z.string().startsWith('@assets/');\n\nexport type AssetPath = `@assets/${string}`;\n\n// ---------------------------------------------------------------------------\n// 4. Color — hex, rgb, hsl, named colors (loose string for now)\n// ---------------------------------------------------------------------------\n\nexport const colorSchema = z.string();\n\nexport type Color = z.infer<typeof colorSchema>;\n\n// ---------------------------------------------------------------------------\n// 5. Length — number | string (px, %, em, rem)\n// ---------------------------------------------------------------------------\n\nexport const lengthSchema = z.union([z.number(), z.string()]);\n\nexport type Length = z.infer<typeof lengthSchema>;\n\n// ---------------------------------------------------------------------------\n// 6. Percentage — string like \"50%\"\n// ---------------------------------------------------------------------------\n\nexport const percentageSchema = z.string();\n\nexport type Percentage = z.infer<typeof percentageSchema>;\n\n// ---------------------------------------------------------------------------\n// 7. IconName — string identifier for platform-provided icons\n// ---------------------------------------------------------------------------\n\nexport const iconNameSchema = z.string();\n\nexport type IconName = z.infer<typeof iconNameSchema>;\n\n// ---------------------------------------------------------------------------\n// Helper generic types (TypeScript-only, no Zod)\n// ---------------------------------------------------------------------------\n\n/** A value that can be a literal T, a state Ref, or an Expr. */\nexport type Dynamic<T> = T | Ref | Expr;\n\n/** A value that can be a literal T or a state Ref (expressions forbidden). */\nexport type RefOnly<T> = T | Ref;\n\n/** A value that must be a static literal (no dynamic binding). */\nexport type Static<T> = T;\n\n// ---------------------------------------------------------------------------\n// Helper: dynamic / refOnly Zod schema builders\n// ---------------------------------------------------------------------------\n\n/**\n * Creates a Zod schema that accepts the given base schema OR a Ref OR an Expr.\n *\n * ```ts\n * const dynamicColor = dynamicSchema(colorSchema);\n * // accepts: \"#ff0000\" | { $ref: \"$color\" } | { $expr: \"...\" }\n * ```\n */\nexport function dynamicSchema<T extends z.ZodTypeAny>(schema: T) {\n return z.union([schema, refSchema, exprSchema]);\n}\n\n/**\n * Creates a Zod schema that accepts the given base schema OR a Ref\n * (expressions are forbidden).\n *\n * ```ts\n * const refOnlyAsset = refOnlySchema(assetPathSchema);\n * // accepts: \"@assets/img.png\" | { $ref: \"$imgPath\" }\n * ```\n */\nexport function refOnlySchema<T extends z.ZodTypeAny>(schema: T) {\n return z.union([schema, refSchema]);\n}\n\n// ---------------------------------------------------------------------------\n// Type guard functions (runtime)\n// ---------------------------------------------------------------------------\n\n/**\n * Returns `true` if the value is a `Ref` object (`{ $ref: string }`).\n */\nexport function isRef(value: unknown): value is Ref {\n return (\n typeof value === 'object' &&\n value !== null &&\n '$ref' in value &&\n typeof (value as Record<string, unknown>).$ref === 'string'\n );\n}\n\n/**\n * Returns `true` if the value is an `Expr` object (`{ $expr: string }`).\n */\nexport function isExpr(value: unknown): value is Expr {\n return (\n typeof value === 'object' &&\n value !== null &&\n '$expr' in value &&\n typeof (value as Record<string, unknown>).$expr === 'string'\n );\n}\n\n/**\n * Returns `true` if the value is either a `Ref` or an `Expr`.\n */\nexport function isDynamic(value: unknown): boolean {\n return isRef(value) || isExpr(value);\n}\n\n/**\n * Returns `true` if the value is a valid `AssetPath` (starts with `@assets/`).\n */\nexport function isAssetPath(value: unknown): value is AssetPath {\n return typeof value === 'string' && value.startsWith('@assets/');\n}\n","/**\n * @safe-ugc-ui/types — Style System\n *\n * Defines Zod schemas and inferred TypeScript types for the style system.\n * Based on spec sections 3.1-3.8 (style properties) and 4.3 (style value types).\n *\n * Naming convention:\n * - Zod schema -> `fooSchema`\n * - Inferred TS -> `Foo`\n *\n * Dynamic fields accept literal | $ref | $expr.\n * Static fields accept literal only (no $ref, no $expr).\n */\n\nimport { z } from 'zod';\nimport {\n refSchema,\n exprSchema,\n dynamicSchema,\n colorSchema,\n lengthSchema,\n percentageSchema,\n} from './values.js';\n\n// ===========================================================================\n// 1. Structured objects (Static only — no dynamic wrappers)\n// ===========================================================================\n\n// ---------------------------------------------------------------------------\n// 1.1 GradientStop\n// ---------------------------------------------------------------------------\n\nexport const gradientStopSchema = z.object({\n color: z.string(),\n position: z.string(), // e.g. \"0%\", \"100%\"\n});\n\nexport type GradientStop = z.infer<typeof gradientStopSchema>;\n\n// ---------------------------------------------------------------------------\n// 1.2 LinearGradient\n// ---------------------------------------------------------------------------\n\nexport const linearGradientSchema = z.object({\n type: z.literal('linear'),\n direction: z.string(), // e.g. \"135deg\", \"to right\"\n stops: z.array(gradientStopSchema),\n});\n\nexport type LinearGradient = z.infer<typeof linearGradientSchema>;\n\n// ---------------------------------------------------------------------------\n// 1.3 RadialGradient\n// ---------------------------------------------------------------------------\n\nexport const radialGradientSchema = z.object({\n type: z.literal('radial'),\n stops: z.array(gradientStopSchema),\n});\n\nexport type RadialGradient = z.infer<typeof radialGradientSchema>;\n\n// ---------------------------------------------------------------------------\n// 1.4 GradientObject (union)\n// ---------------------------------------------------------------------------\n\nexport const gradientObjectSchema = z.union([\n linearGradientSchema,\n radialGradientSchema,\n]);\n\nexport type GradientObject = z.infer<typeof gradientObjectSchema>;\n\n// ---------------------------------------------------------------------------\n// 1.5 ShadowObject\n// ---------------------------------------------------------------------------\n\nexport const shadowObjectSchema = z.object({\n offsetX: z.number(),\n offsetY: z.number(),\n blur: z.number().optional(),\n spread: z.number().optional(),\n color: z.string(),\n});\n\nexport type ShadowObject = z.infer<typeof shadowObjectSchema>;\n\n// ---------------------------------------------------------------------------\n// 1.6 BorderObject\n// ---------------------------------------------------------------------------\n\nexport const borderObjectSchema = z.object({\n width: z.number(),\n style: z.enum(['solid', 'dashed', 'dotted', 'none']),\n color: z.string(),\n});\n\nexport type BorderObject = z.infer<typeof borderObjectSchema>;\n\n// ---------------------------------------------------------------------------\n// 1.7 TransformObject (skew intentionally excluded — forbidden by spec 3.6)\n// ---------------------------------------------------------------------------\n\nexport const transformObjectSchema = z.object({\n rotate: z.string().optional(), // e.g. \"45deg\"\n scale: z.number().optional(), // 0.1 ~ 1.5\n translateX: z.number().optional(), // -500 ~ 500\n translateY: z.number().optional(), // -500 ~ 500\n});\n\nexport type TransformObject = z.infer<typeof transformObjectSchema>;\n\n// ===========================================================================\n// 2. Enum value types\n// ===========================================================================\n\n// ---------------------------------------------------------------------------\n// 2.1 PositionValue\n// ---------------------------------------------------------------------------\n\nexport const positionValueSchema = z.enum(['static', 'relative', 'absolute']);\nexport type PositionValue = z.infer<typeof positionValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.2 OverflowValue\n// ---------------------------------------------------------------------------\n\nexport const overflowValueSchema = z.enum(['visible', 'hidden', 'auto']);\nexport type OverflowValue = z.infer<typeof overflowValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.3 DisplayValue\n// ---------------------------------------------------------------------------\n\nexport const displayValueSchema = z.enum(['flex', 'block', 'none']);\nexport type DisplayValue = z.infer<typeof displayValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.4 FlexDirectionValue\n// ---------------------------------------------------------------------------\n\nexport const flexDirectionValueSchema = z.enum([\n 'row',\n 'column',\n 'row-reverse',\n 'column-reverse',\n]);\nexport type FlexDirectionValue = z.infer<typeof flexDirectionValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.5 JustifyContentValue\n// ---------------------------------------------------------------------------\n\nexport const justifyContentValueSchema = z.enum([\n 'start',\n 'center',\n 'end',\n 'space-between',\n 'space-around',\n 'space-evenly',\n]);\nexport type JustifyContentValue = z.infer<typeof justifyContentValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.6 AlignItemsValue\n// ---------------------------------------------------------------------------\n\nexport const alignItemsValueSchema = z.enum([\n 'start',\n 'center',\n 'end',\n 'stretch',\n 'baseline',\n]);\nexport type AlignItemsValue = z.infer<typeof alignItemsValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.7 AlignSelfValue\n// ---------------------------------------------------------------------------\n\nexport const alignSelfValueSchema = z.enum([\n 'auto',\n 'start',\n 'center',\n 'end',\n 'stretch',\n]);\nexport type AlignSelfValue = z.infer<typeof alignSelfValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.8 FlexWrapValue\n// ---------------------------------------------------------------------------\n\nexport const flexWrapValueSchema = z.enum(['nowrap', 'wrap', 'wrap-reverse']);\nexport type FlexWrapValue = z.infer<typeof flexWrapValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.9 TextAlignValue\n// ---------------------------------------------------------------------------\n\nexport const textAlignValueSchema = z.enum([\n 'left',\n 'center',\n 'right',\n 'justify',\n]);\nexport type TextAlignValue = z.infer<typeof textAlignValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.10 TextDecorationValue\n// ---------------------------------------------------------------------------\n\nexport const textDecorationValueSchema = z.enum([\n 'none',\n 'underline',\n 'line-through',\n]);\nexport type TextDecorationValue = z.infer<typeof textDecorationValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.11 FontStyleValue\n// ---------------------------------------------------------------------------\n\nexport const fontStyleValueSchema = z.enum(['normal', 'italic']);\nexport type FontStyleValue = z.infer<typeof fontStyleValueSchema>;\n\n// ---------------------------------------------------------------------------\n// 2.12 FontWeightValue\n// ---------------------------------------------------------------------------\n\nexport const fontWeightValueSchema = z.union([\n z.enum(['normal', 'bold']),\n z.literal(100),\n z.literal(200),\n z.literal(300),\n z.literal(400),\n z.literal(500),\n z.literal(600),\n z.literal(700),\n z.literal(800),\n z.literal(900),\n]);\nexport type FontWeightValue = z.infer<typeof fontWeightValueSchema>;\n\n// ===========================================================================\n// 3. StyleProps — the main style schema (spec 4.3)\n//\n// Dynamic fields: literal | $ref | $expr -> dynamicSchema(base).optional()\n// Static fields: literal only -> base.optional()\n// ===========================================================================\n\n/**\n * Helper: a size value that can be a Length, Percentage, or the literal \"auto\".\n * Used for width/height properties.\n */\nconst sizeValueSchema = z.union([lengthSchema, percentageSchema, z.literal('auto')]);\n\n/**\n * Helper: lineHeight can be a bare number (multiplier) or a length.\n */\nconst lineHeightValueSchema = z.union([z.number(), lengthSchema]);\n\nexport const stylePropsSchema = z.object({\n // -----------------------------------------------------------------------\n // Layout — Dynamic\n // -----------------------------------------------------------------------\n display: dynamicSchema(displayValueSchema).optional(),\n flexDirection: dynamicSchema(flexDirectionValueSchema).optional(),\n justifyContent: dynamicSchema(justifyContentValueSchema).optional(),\n alignItems: dynamicSchema(alignItemsValueSchema).optional(),\n alignSelf: dynamicSchema(alignSelfValueSchema).optional(),\n flexWrap: dynamicSchema(flexWrapValueSchema).optional(),\n flex: dynamicSchema(z.number()).optional(),\n gap: dynamicSchema(lengthSchema).optional(),\n\n // -----------------------------------------------------------------------\n // Sizing — Dynamic\n // -----------------------------------------------------------------------\n width: dynamicSchema(sizeValueSchema).optional(),\n height: dynamicSchema(sizeValueSchema).optional(),\n minWidth: dynamicSchema(z.union([lengthSchema, percentageSchema])).optional(),\n maxWidth: dynamicSchema(z.union([lengthSchema, percentageSchema])).optional(),\n minHeight: dynamicSchema(z.union([lengthSchema, percentageSchema])).optional(),\n maxHeight: dynamicSchema(z.union([lengthSchema, percentageSchema])).optional(),\n\n // -----------------------------------------------------------------------\n // Spacing — Dynamic\n // -----------------------------------------------------------------------\n padding: dynamicSchema(lengthSchema).optional(),\n paddingTop: dynamicSchema(lengthSchema).optional(),\n paddingRight: dynamicSchema(lengthSchema).optional(),\n paddingBottom: dynamicSchema(lengthSchema).optional(),\n paddingLeft: dynamicSchema(lengthSchema).optional(),\n margin: dynamicSchema(lengthSchema).optional(),\n marginTop: dynamicSchema(lengthSchema).optional(),\n marginRight: dynamicSchema(lengthSchema).optional(),\n marginBottom: dynamicSchema(lengthSchema).optional(),\n marginLeft: dynamicSchema(lengthSchema).optional(),\n\n // -----------------------------------------------------------------------\n // Colors — Dynamic\n // -----------------------------------------------------------------------\n backgroundColor: dynamicSchema(colorSchema).optional(),\n color: dynamicSchema(colorSchema).optional(),\n\n // -----------------------------------------------------------------------\n // Border radius — Dynamic\n // -----------------------------------------------------------------------\n borderRadius: dynamicSchema(lengthSchema).optional(),\n borderRadiusTopLeft: dynamicSchema(lengthSchema).optional(),\n borderRadiusTopRight: dynamicSchema(lengthSchema).optional(),\n borderRadiusBottomLeft: dynamicSchema(lengthSchema).optional(),\n borderRadiusBottomRight: dynamicSchema(lengthSchema).optional(),\n\n // -----------------------------------------------------------------------\n // Typography — Dynamic\n // -----------------------------------------------------------------------\n fontSize: dynamicSchema(lengthSchema).optional(),\n fontWeight: dynamicSchema(fontWeightValueSchema).optional(),\n fontStyle: dynamicSchema(fontStyleValueSchema).optional(),\n textAlign: dynamicSchema(textAlignValueSchema).optional(),\n textDecoration: dynamicSchema(textDecorationValueSchema).optional(),\n lineHeight: dynamicSchema(lineHeightValueSchema).optional(),\n letterSpacing: dynamicSchema(lengthSchema).optional(),\n\n // -----------------------------------------------------------------------\n // Opacity — Dynamic\n // -----------------------------------------------------------------------\n opacity: dynamicSchema(z.number()).optional(),\n\n // -----------------------------------------------------------------------\n // Gradient — Static only\n // -----------------------------------------------------------------------\n backgroundGradient: gradientObjectSchema.optional(),\n\n // -----------------------------------------------------------------------\n // Shadow — Static only (single or array of shadows)\n // -----------------------------------------------------------------------\n boxShadow: z\n .union([shadowObjectSchema, z.array(shadowObjectSchema)])\n .optional(),\n\n // -----------------------------------------------------------------------\n // Borders — Static only\n // -----------------------------------------------------------------------\n border: borderObjectSchema.optional(),\n borderTop: borderObjectSchema.optional(),\n borderRight: borderObjectSchema.optional(),\n borderBottom: borderObjectSchema.optional(),\n borderLeft: borderObjectSchema.optional(),\n\n // -----------------------------------------------------------------------\n // Transform — Static only (skew excluded)\n // -----------------------------------------------------------------------\n transform: transformObjectSchema.optional(),\n\n // -----------------------------------------------------------------------\n // Overflow — Static only\n // -----------------------------------------------------------------------\n overflow: overflowValueSchema.optional(),\n\n // -----------------------------------------------------------------------\n // Position — Static only\n // -----------------------------------------------------------------------\n position: positionValueSchema.optional(),\n top: lengthSchema.optional(),\n right: lengthSchema.optional(),\n bottom: lengthSchema.optional(),\n left: lengthSchema.optional(),\n\n // -----------------------------------------------------------------------\n // Grid — Dynamic\n // -----------------------------------------------------------------------\n gridTemplateColumns: dynamicSchema(z.string()).optional(),\n gridTemplateRows: dynamicSchema(z.string()).optional(),\n gridColumn: dynamicSchema(z.string()).optional(),\n gridRow: dynamicSchema(z.string()).optional(),\n\n // -----------------------------------------------------------------------\n // z-index — Static only (0-100 enforced at validation layer)\n // -----------------------------------------------------------------------\n zIndex: z.number().optional(),\n\n // -----------------------------------------------------------------------\n // $style — reference to a named style in card.styles\n // -----------------------------------------------------------------------\n $style: z.string().optional(),\n});\n\nexport type StyleProps = z.infer<typeof stylePropsSchema>;\n","/**\n * @safe-ugc-ui/types — Component Fields\n *\n * Defines Zod schemas and inferred TypeScript types for each component's\n * field set (formerly `props`). Based on spec section 4.2.\n *\n * Security-sensitive fields use restricted value types:\n * - Image.src, Avatar.src -> refOnly (no $expr — prevents URL manipulation)\n * - Icon.name -> static (no $ref, no $expr)\n * - All others -> dynamic (literal | $ref | $expr)\n *\n * Naming convention:\n * - Zod schema -> `fooPropsSchema`\n * - Inferred TS -> `FooProps`\n */\n\nimport { z } from 'zod';\nimport {\n dynamicSchema,\n refOnlySchema,\n assetPathSchema,\n colorSchema,\n lengthSchema,\n iconNameSchema,\n} from './values.js';\n\n// ---------------------------------------------------------------------------\n// 1. TextProps\n// ---------------------------------------------------------------------------\n\nexport const textPropsSchema = z.object({\n content: dynamicSchema(z.string()),\n});\n\nexport type TextProps = z.infer<typeof textPropsSchema>;\n\n// ---------------------------------------------------------------------------\n// 2. ImageProps\n// ---------------------------------------------------------------------------\n\nexport const imagePropsSchema = z.object({\n src: refOnlySchema(assetPathSchema),\n alt: dynamicSchema(z.string()).optional(),\n});\n\nexport type ImageProps = z.infer<typeof imagePropsSchema>;\n\n// ---------------------------------------------------------------------------\n// 3. ProgressBarProps\n// ---------------------------------------------------------------------------\n\nexport const progressBarPropsSchema = z.object({\n value: dynamicSchema(z.number()),\n max: dynamicSchema(z.number()),\n color: dynamicSchema(colorSchema).optional(),\n});\n\nexport type ProgressBarProps = z.infer<typeof progressBarPropsSchema>;\n\n// ---------------------------------------------------------------------------\n// 4. AvatarProps\n// ---------------------------------------------------------------------------\n\nexport const avatarPropsSchema = z.object({\n src: refOnlySchema(assetPathSchema),\n size: dynamicSchema(lengthSchema).optional(),\n});\n\nexport type AvatarProps = z.infer<typeof avatarPropsSchema>;\n\n// ---------------------------------------------------------------------------\n// 5. IconProps\n// ---------------------------------------------------------------------------\n\nexport const iconPropsSchema = z.object({\n name: iconNameSchema,\n size: dynamicSchema(lengthSchema).optional(),\n color: dynamicSchema(colorSchema).optional(),\n});\n\nexport type IconProps = z.infer<typeof iconPropsSchema>;\n\n// ---------------------------------------------------------------------------\n// 6. BadgeProps\n// ---------------------------------------------------------------------------\n\nexport const badgePropsSchema = z.object({\n label: dynamicSchema(z.string()),\n color: dynamicSchema(colorSchema).optional(),\n});\n\nexport type BadgeProps = z.infer<typeof badgePropsSchema>;\n\n// ---------------------------------------------------------------------------\n// 7. ChipProps\n// ---------------------------------------------------------------------------\n\nexport const chipPropsSchema = z.object({\n label: dynamicSchema(z.string()),\n color: dynamicSchema(colorSchema).optional(),\n});\n\nexport type ChipProps = z.infer<typeof chipPropsSchema>;\n\n// ---------------------------------------------------------------------------\n// 8. DividerProps\n// ---------------------------------------------------------------------------\n\nexport const dividerPropsSchema = z.object({\n color: dynamicSchema(colorSchema).optional(),\n thickness: dynamicSchema(lengthSchema).optional(),\n});\n\nexport type DividerProps = z.infer<typeof dividerPropsSchema>;\n\n// ---------------------------------------------------------------------------\n// 9. SpacerProps\n// ---------------------------------------------------------------------------\n\nexport const spacerPropsSchema = z.object({\n size: dynamicSchema(lengthSchema).optional(),\n});\n\nexport type SpacerProps = z.infer<typeof spacerPropsSchema>;\n\n// ---------------------------------------------------------------------------\n// 10. ButtonProps\n// ---------------------------------------------------------------------------\n\nexport const buttonPropsSchema = z.object({\n label: dynamicSchema(z.string()),\n action: z.string(),\n});\n\nexport type ButtonProps = z.infer<typeof buttonPropsSchema>;\n\n// ---------------------------------------------------------------------------\n// 11. ToggleProps\n// ---------------------------------------------------------------------------\n\nexport const togglePropsSchema = z.object({\n value: dynamicSchema(z.boolean()),\n onToggle: z.string(),\n});\n\nexport type ToggleProps = z.infer<typeof togglePropsSchema>;\n","/**\n * @safe-ugc-ui/types — Primitives (Node Types)\n *\n * Defines the component tree structure using Zod schemas with z.lazy() for\n * recursive types. Based on spec section 2 (primitive list) and section 4.2\n * (component field rules).\n *\n * Node categories:\n * - Layout: Box, Row, Column, Stack, Grid (have children)\n * - Content: Text, Image (have fields, no children)\n * - Display: ProgressBar, Avatar, Icon, Badge, Chip, Divider, Spacer\n * - Interaction: Button, Toggle\n *\n * Naming convention:\n * - Zod schema -> `fooNodeSchema`\n * - Inferred TS -> `FooNode`\n */\n\nimport { z } from 'zod';\nimport { exprSchema } from './values.js';\nimport { stylePropsSchema } from './styles.js';\nimport {\n textPropsSchema,\n imagePropsSchema,\n progressBarPropsSchema,\n avatarPropsSchema,\n iconPropsSchema,\n badgePropsSchema,\n chipPropsSchema,\n dividerPropsSchema,\n spacerPropsSchema,\n buttonPropsSchema,\n togglePropsSchema,\n} from './props.js';\n\n// ===========================================================================\n// 1. ForLoop — iterative children\n// ===========================================================================\n\n/**\n * A for-loop that produces children by iterating over a state array.\n *\n * ```json\n * { \"for\": \"msg\", \"in\": \"$messages\", \"template\": { ... } }\n * ```\n *\n * The `template` field references UGCNode via z.lazy() since UGCNode is\n * defined later in this module.\n */\nexport const forLoopSchema = z.object({\n for: z.string(),\n in: z.string(),\n template: z.lazy(() => ugcNodeSchema),\n});\n\nexport type ForLoop = {\n for: string;\n in: string;\n template: UGCNode;\n};\n\n// ===========================================================================\n// 2. Children — array of nodes OR a for-loop\n// ===========================================================================\n\nconst childrenSchema = z.union([\n z.array(z.lazy(() => ugcNodeSchema)),\n forLoopSchema,\n]);\n\ntype Children = UGCNode[] | ForLoop;\n\n// ===========================================================================\n// 3. Base node fields (shared by every node)\n// ===========================================================================\n\nconst baseFields = {\n style: stylePropsSchema.optional(),\n condition: exprSchema.optional(),\n};\n\n// ===========================================================================\n// 4. Layout nodes — have children\n// ===========================================================================\n\n// ---------------------------------------------------------------------------\n// 4.1 BoxNode\n// ---------------------------------------------------------------------------\n\nexport const boxNodeSchema = z.object({\n type: z.literal('Box'),\n children: childrenSchema.optional(),\n ...baseFields,\n});\n\nexport type BoxNode = {\n type: 'Box';\n children?: Children;\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 4.2 RowNode\n// ---------------------------------------------------------------------------\n\nexport const rowNodeSchema = z.object({\n type: z.literal('Row'),\n children: childrenSchema.optional(),\n ...baseFields,\n});\n\nexport type RowNode = {\n type: 'Row';\n children?: Children;\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 4.3 ColumnNode\n// ---------------------------------------------------------------------------\n\nexport const columnNodeSchema = z.object({\n type: z.literal('Column'),\n children: childrenSchema.optional(),\n ...baseFields,\n});\n\nexport type ColumnNode = {\n type: 'Column';\n children?: Children;\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 4.4 StackNode\n// ---------------------------------------------------------------------------\n\nexport const stackNodeSchema = z.object({\n type: z.literal('Stack'),\n children: childrenSchema.optional(),\n ...baseFields,\n});\n\nexport type StackNode = {\n type: 'Stack';\n children?: Children;\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 4.5 GridNode\n// ---------------------------------------------------------------------------\n\nexport const gridNodeSchema = z.object({\n type: z.literal('Grid'),\n children: childrenSchema.optional(),\n ...baseFields,\n});\n\nexport type GridNode = {\n type: 'Grid';\n children?: Children;\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ===========================================================================\n// 5. Content nodes — have fields, no children\n// ===========================================================================\n\n// ---------------------------------------------------------------------------\n// 5.1 TextNode\n// ---------------------------------------------------------------------------\n\nexport const textNodeSchema = z.object({\n type: z.literal('Text'),\n ...textPropsSchema.shape,\n ...baseFields,\n});\n\nexport type TextNode = {\n type: 'Text';\n} & z.infer<typeof textPropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 5.2 ImageNode\n// ---------------------------------------------------------------------------\n\nexport const imageNodeSchema = z.object({\n type: z.literal('Image'),\n ...imagePropsSchema.shape,\n ...baseFields,\n});\n\nexport type ImageNode = {\n type: 'Image';\n} & z.infer<typeof imagePropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ===========================================================================\n// 6. Display nodes\n// ===========================================================================\n\n// ---------------------------------------------------------------------------\n// 6.1 ProgressBarNode\n// ---------------------------------------------------------------------------\n\nexport const progressBarNodeSchema = z.object({\n type: z.literal('ProgressBar'),\n ...progressBarPropsSchema.shape,\n ...baseFields,\n});\n\nexport type ProgressBarNode = {\n type: 'ProgressBar';\n} & z.infer<typeof progressBarPropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 6.2 AvatarNode\n// ---------------------------------------------------------------------------\n\nexport const avatarNodeSchema = z.object({\n type: z.literal('Avatar'),\n ...avatarPropsSchema.shape,\n ...baseFields,\n});\n\nexport type AvatarNode = {\n type: 'Avatar';\n} & z.infer<typeof avatarPropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 6.3 IconNode\n// ---------------------------------------------------------------------------\n\nexport const iconNodeSchema = z.object({\n type: z.literal('Icon'),\n ...iconPropsSchema.shape,\n ...baseFields,\n});\n\nexport type IconNode = {\n type: 'Icon';\n} & z.infer<typeof iconPropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 6.4 BadgeNode\n// ---------------------------------------------------------------------------\n\nexport const badgeNodeSchema = z.object({\n type: z.literal('Badge'),\n ...badgePropsSchema.shape,\n ...baseFields,\n});\n\nexport type BadgeNode = {\n type: 'Badge';\n} & z.infer<typeof badgePropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 6.5 ChipNode\n// ---------------------------------------------------------------------------\n\nexport const chipNodeSchema = z.object({\n type: z.literal('Chip'),\n ...chipPropsSchema.shape,\n ...baseFields,\n});\n\nexport type ChipNode = {\n type: 'Chip';\n} & z.infer<typeof chipPropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 6.6 DividerNode\n// ---------------------------------------------------------------------------\n\nexport const dividerNodeSchema = z.object({\n type: z.literal('Divider'),\n ...dividerPropsSchema.shape,\n ...baseFields,\n});\n\nexport type DividerNode = {\n type: 'Divider';\n} & z.infer<typeof dividerPropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 6.7 SpacerNode\n// ---------------------------------------------------------------------------\n\nexport const spacerNodeSchema = z.object({\n type: z.literal('Spacer'),\n ...spacerPropsSchema.shape,\n ...baseFields,\n});\n\nexport type SpacerNode = {\n type: 'Spacer';\n} & z.infer<typeof spacerPropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ===========================================================================\n// 7. Interaction nodes\n// ===========================================================================\n\n// ---------------------------------------------------------------------------\n// 7.1 ButtonNode\n// ---------------------------------------------------------------------------\n\nexport const buttonNodeSchema = z.object({\n type: z.literal('Button'),\n ...buttonPropsSchema.shape,\n ...baseFields,\n});\n\nexport type ButtonNode = {\n type: 'Button';\n} & z.infer<typeof buttonPropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ---------------------------------------------------------------------------\n// 7.2 ToggleNode\n// ---------------------------------------------------------------------------\n\nexport const toggleNodeSchema = z.object({\n type: z.literal('Toggle'),\n ...togglePropsSchema.shape,\n ...baseFields,\n});\n\nexport type ToggleNode = {\n type: 'Toggle';\n} & z.infer<typeof togglePropsSchema> & {\n style?: z.infer<typeof stylePropsSchema>;\n condition?: z.infer<typeof exprSchema>;\n};\n\n// ===========================================================================\n// 8. UGCNode — discriminated union of all node types\n// ===========================================================================\n\n/**\n * Union of every node type. Recursive via z.lazy() so that layout nodes\n * can contain UGCNode children.\n */\nexport type UGCNode =\n | BoxNode\n | RowNode\n | ColumnNode\n | StackNode\n | GridNode\n | TextNode\n | ImageNode\n | ProgressBarNode\n | AvatarNode\n | IconNode\n | BadgeNode\n | ChipNode\n | DividerNode\n | SpacerNode\n | ButtonNode\n | ToggleNode;\n\nexport const ugcNodeSchema: z.ZodType<UGCNode> = z.lazy(() =>\n z.discriminatedUnion('type', [\n boxNodeSchema,\n rowNodeSchema,\n columnNodeSchema,\n stackNodeSchema,\n gridNodeSchema,\n textNodeSchema,\n imageNodeSchema,\n progressBarNodeSchema,\n avatarNodeSchema,\n iconNodeSchema,\n badgeNodeSchema,\n chipNodeSchema,\n dividerNodeSchema,\n spacerNodeSchema,\n buttonNodeSchema,\n toggleNodeSchema,\n ]),\n);\n\n// ===========================================================================\n// 9. Phase1Node — MVP subset (spec section 9, Phase 1)\n// ===========================================================================\n\n/**\n * Phase 1 MVP node types: Box, Row, Column, Text, Image.\n */\nexport type Phase1Node =\n | BoxNode\n | RowNode\n | ColumnNode\n | TextNode\n | ImageNode;\n\nexport const phase1NodeSchema: z.ZodType<Phase1Node> = z.lazy(() =>\n z.discriminatedUnion('type', [\n boxNodeSchema,\n rowNodeSchema,\n columnNodeSchema,\n textNodeSchema,\n imageNodeSchema,\n ]),\n);\n","/**\n * @safe-ugc-ui/types — Card Document\n *\n * Defines the top-level UGC card document structure, based on spec section 7\n * (example cards).\n *\n * A card consists of:\n * - meta: name and version\n * - assets: optional mapping of asset keys to @assets/ paths\n * - state: optional initial state values\n * - views: named view definitions, each a UGCNode tree\n *\n * Naming convention:\n * - Zod schema -> `fooSchema`\n * - Inferred TS -> `Foo`\n */\n\nimport { z } from 'zod';\nimport { ugcNodeSchema } from './primitives.js';\nimport { stylePropsSchema } from './styles.js';\n\n// ---------------------------------------------------------------------------\n// 1. CardMeta\n// ---------------------------------------------------------------------------\n\nexport const cardMetaSchema = z.object({\n name: z.string(),\n version: z.string(),\n});\n\nexport type CardMeta = z.infer<typeof cardMetaSchema>;\n\n// ---------------------------------------------------------------------------\n// 2. UGCCard — top-level card document\n// ---------------------------------------------------------------------------\n\n/** Pattern for valid style names: starts with letter, then alphanumeric/hyphens/underscores */\nconst styleNamePattern = /^[A-Za-z][A-Za-z0-9_-]*$/;\n\nexport const ugcCardSchema = z.object({\n meta: cardMetaSchema,\n assets: z.record(z.string(), z.string()).optional(),\n state: z.record(z.string(), z.unknown()).optional(),\n styles: z.record(z.string().regex(styleNamePattern), stylePropsSchema).optional(),\n views: z.record(z.string(), ugcNodeSchema),\n});\n\nexport type UGCCard = z.infer<typeof ugcCardSchema>;\n","/**\n * @safe-ugc-ui/types — Constants\n *\n * All numeric limit constants and enumerated value sets from the Safe UGC UI\n * spec sections 6.1–6.4, plus component type lists and security-related arrays\n * from sections 2 and 3.\n *\n * Pure TypeScript — no Zod dependency.\n */\n\n// ---------------------------------------------------------------------------\n// 6.1 Card-level limits\n// ---------------------------------------------------------------------------\n\n/** Maximum size of the entire card JSON document (1 MB). */\nexport const CARD_JSON_MAX_BYTES = 1_000_000;\n\n/** Maximum combined size of all Text content strings (200 KB). */\nexport const TEXT_CONTENT_TOTAL_MAX_BYTES = 200_000;\n\n/** Maximum combined size of all style objects (100 KB). */\nexport const STYLE_OBJECTS_TOTAL_MAX_BYTES = 100_000;\n\n/** Maximum size of a single asset file (5 MB). */\nexport const ASSET_INDIVIDUAL_MAX_BYTES = 5_000_000;\n\n/** Maximum total size of all assets combined (50 MB). */\nexport const ASSET_TOTAL_MAX_BYTES = 50_000_000;\n\n// ---------------------------------------------------------------------------\n// 6.2 Rendering limits\n// ---------------------------------------------------------------------------\n\n/** Maximum number of rendered DOM nodes. */\nexport const MAX_NODE_COUNT = 10_000;\n\n/** Maximum iterations for a single `for...in` loop. */\nexport const MAX_LOOP_ITERATIONS = 1_000;\n\n/** Maximum depth of nested loops. */\nexport const MAX_NESTED_LOOPS = 2;\n\n/** Maximum number of elements with `overflow: auto` per card. */\nexport const MAX_OVERFLOW_AUTO_COUNT = 2;\n\n/** Maximum depth of nested Stack components. */\nexport const MAX_STACK_NESTING = 3;\n\n// ---------------------------------------------------------------------------\n// 6.3 Expression limits\n// ---------------------------------------------------------------------------\n\n/** Maximum character length of an expression string. */\nexport const EXPR_MAX_LENGTH = 500;\n\n/** Maximum number of tokens in a single expression. */\nexport const EXPR_MAX_TOKENS = 50;\n\n/** Maximum nesting depth within an expression. */\nexport const EXPR_MAX_NESTING = 10;\n\n/** Maximum nesting depth for if/then/else conditions. */\nexport const EXPR_MAX_CONDITION_NESTING = 3;\n\n/** Maximum character length of a string literal inside an expression. */\nexport const EXPR_MAX_STRING_LITERAL = 1_000;\n\n/** Maximum depth of variable reference paths (e.g. `$a.b.c.d.e`). */\nexport const EXPR_MAX_REF_DEPTH = 5;\n\n/** Maximum allowed array index in variable references. */\nexport const EXPR_MAX_ARRAY_INDEX = 9_999;\n\n/** Maximum digits after the decimal point in number literals. */\nexport const EXPR_MAX_FRACTIONAL_DIGITS = 10;\n\n// ---------------------------------------------------------------------------\n// 6.4 Style limits\n// ---------------------------------------------------------------------------\n\n/** Minimum allowed z-index value. */\nexport const ZINDEX_MIN = 0;\n\n/** Maximum allowed z-index value. */\nexport const ZINDEX_MAX = 100;\n\n/** Minimum allowed transform scale factor. */\nexport const TRANSFORM_SCALE_MIN = 0.1;\n\n/** Maximum allowed transform scale factor. */\nexport const TRANSFORM_SCALE_MAX = 1.5;\n\n/** Minimum allowed translateX/Y value (px). */\nexport const TRANSFORM_TRANSLATE_MIN = -500;\n\n/** Maximum allowed translateX/Y value (px). */\nexport const TRANSFORM_TRANSLATE_MAX = 500;\n\n/** Minimum allowed font size (px). */\nexport const FONT_SIZE_MIN = 8;\n\n/** Maximum allowed font size (px). */\nexport const FONT_SIZE_MAX = 72;\n\n/** Maximum number of box-shadow entries. */\nexport const BOX_SHADOW_MAX_COUNT = 5;\n\n/** Maximum blur radius for a box-shadow (px). */\nexport const BOX_SHADOW_BLUR_MAX = 100;\n\n/** Maximum spread radius for a box-shadow (px). */\nexport const BOX_SHADOW_SPREAD_MAX = 50;\n\n/** Maximum border-radius value (px). */\nexport const BORDER_RADIUS_MAX = 9999;\n\n/** Minimum letter-spacing value (px). */\nexport const LETTER_SPACING_MIN = -10;\n\n/** Maximum letter-spacing value (px). */\nexport const LETTER_SPACING_MAX = 50;\n\n/** Minimum opacity value. */\nexport const OPACITY_MIN = 0;\n\n/** Maximum opacity value. */\nexport const OPACITY_MAX = 1;\n\n// ---------------------------------------------------------------------------\n// Component type lists\n// ---------------------------------------------------------------------------\n\n/**\n * Phase 1 MVP component types (spec section 9, Phase 1).\n * Box, Row, Column, Text, Image.\n */\nexport const PHASE1_COMPONENT_TYPES = [\n 'Box',\n 'Row',\n 'Column',\n 'Text',\n 'Image',\n] as const;\n\n/**\n * All 16 component types defined in spec section 2.\n *\n * Layout (2.1): Box, Row, Column, Stack, Grid, Spacer\n * Content (2.2): Text, Image, Icon, Divider\n * Display (2.3): ProgressBar, Badge, Avatar, Chip\n * Interaction (2.4): Button, Toggle\n */\nexport const ALL_COMPONENT_TYPES = [\n // 2.1 Layout\n 'Box',\n 'Row',\n 'Column',\n 'Stack',\n 'Grid',\n 'Spacer',\n // 2.2 Content\n 'Text',\n 'Image',\n 'Icon',\n 'Divider',\n // 2.3 Display\n 'ProgressBar',\n 'Badge',\n 'Avatar',\n 'Chip',\n // 2.4 Interaction (optional)\n 'Button',\n 'Toggle',\n] as const;\n\n// ---------------------------------------------------------------------------\n// Security-related enumerated values\n// ---------------------------------------------------------------------------\n\n/**\n * CSS properties that are completely forbidden (spec section 3.8).\n *\n * - External resource loading: backgroundImage, cursor, listStyleImage, content\n * - Performance / deception: filter, backdropFilter, mixBlendMode\n * - Complex visual manipulation: animation, transition, clipPath, mask\n */\nexport const FORBIDDEN_STYLE_PROPERTIES = [\n 'backgroundImage',\n 'cursor',\n 'listStyleImage',\n 'content',\n 'filter',\n 'backdropFilter',\n 'mixBlendMode',\n 'animation',\n 'transition',\n 'clipPath',\n 'mask',\n] as const;\n\n/**\n * Position values that are never allowed (spec section 3.3).\n */\nexport const FORBIDDEN_POSITION_VALUES = ['fixed', 'sticky'] as const;\n\n/**\n * Allowed overflow values (spec section 3.2).\n * Note: `scroll` is forbidden to prevent scroll-jacking.\n */\nexport const ALLOWED_OVERFLOW_VALUES = ['visible', 'hidden', 'auto'] as const;\n\n/**\n * CSS function prefixes that must be rejected in any string value\n * to prevent injection of dynamic CSS or external resource loading.\n */\nexport const DANGEROUS_CSS_FUNCTIONS = [\n 'calc(',\n 'var(',\n 'url(',\n 'env(',\n 'expression(',\n] as const;\n\n/**\n * Object key path segments that indicate prototype pollution attempts.\n * Any property path containing these segments must be rejected.\n */\nexport const PROTOTYPE_POLLUTION_SEGMENTS = [\n '__proto__',\n 'constructor',\n 'prototype',\n] as const;\n\n// ---------------------------------------------------------------------------\n// CSS named colors (148 standard CSS color keywords)\n// ---------------------------------------------------------------------------\n\nexport const CSS_NAMED_COLORS: ReadonlySet<string> = new Set([\n 'aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure',\n 'beige', 'bisque', 'black', 'blanchedalmond', 'blue',\n 'blueviolet', 'brown', 'burlywood', 'cadetblue', 'chartreuse',\n 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson',\n 'cyan', 'darkblue', 'darkcyan', 'darkgoldenrod', 'darkgray',\n 'darkgreen', 'darkgrey', 'darkkhaki', 'darkmagenta', 'darkolivegreen',\n 'darkorange', 'darkorchid', 'darkred', 'darksalmon', 'darkseagreen',\n 'darkslateblue', 'darkslategray', 'darkslategrey', 'darkturquoise', 'darkviolet',\n 'deeppink', 'deepskyblue', 'dimgray', 'dimgrey', 'dodgerblue',\n 'firebrick', 'floralwhite', 'forestgreen', 'fuchsia', 'gainsboro',\n 'ghostwhite', 'gold', 'goldenrod', 'gray', 'green',\n 'greenyellow', 'grey', 'honeydew', 'hotpink', 'indianred',\n 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush',\n 'lawngreen', 'lemonchiffon', 'lightblue', 'lightcoral', 'lightcyan',\n 'lightgoldenrodyellow', 'lightgray', 'lightgreen', 'lightgrey', 'lightpink',\n 'lightsalmon', 'lightseagreen', 'lightskyblue', 'lightslategray', 'lightslategrey',\n 'lightsteelblue', 'lightyellow', 'lime', 'limegreen', 'linen',\n 'magenta', 'maroon', 'mediumaquamarine', 'mediumblue', 'mediumorchid',\n 'mediumpurple', 'mediumseagreen', 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise',\n 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose', 'moccasin',\n 'navajowhite', 'navy', 'oldlace', 'olive', 'olivedrab',\n 'orange', 'orangered', 'orchid', 'palegoldenrod', 'palegreen',\n 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru',\n 'pink', 'plum', 'powderblue', 'purple', 'rebeccapurple',\n 'red', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon',\n 'sandybrown', 'seagreen', 'seashell', 'sienna', 'silver',\n 'skyblue', 'slateblue', 'slategray', 'slategrey', 'snow',\n 'springgreen', 'steelblue', 'tan', 'teal', 'thistle',\n 'tomato', 'turquoise', 'violet', 'wheat', 'white',\n 'whitesmoke', 'yellow', 'yellowgreen',\n]);\n"],"mappings":"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","names":["z","z","z","z","z","z","z","z"]}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@safe-ugc-ui/types",
3
+ "version": "0.1.0",
4
+ "description": "Type definitions and Zod schemas for Safe UGC UI cards",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/devforai-creator/Safe-UGC-UI.git",
9
+ "directory": "packages/types"
10
+ },
11
+ "type": "module",
12
+ "main": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.js"
18
+ }
19
+ },
20
+ "files": [
21
+ "dist"
22
+ ],
23
+ "dependencies": {
24
+ "zod": "^3.24.0"
25
+ },
26
+ "devDependencies": {},
27
+ "scripts": {
28
+ "build": "tsup",
29
+ "test": "vitest run"
30
+ }
31
+ }