xobuilder-extractor
Version:
> **A sophisticated web application that converts HTML and CSS to JSON layout through an intelligent multi-step flow process with AI validation.**
92 lines (91 loc) • 2.02 kB
TypeScript
import { StyleEntity } from './style.entity';
export type ValueWithDevice<T> = Record<string, T>;
export type UnitValue = {
value?: number | string;
unit?: string;
};
export interface TransformValue {
translateX?: UnitValue;
translateY?: UnitValue;
scale?: number;
rotate?: UnitValue;
}
export type UnitValueOriented = {
top?: UnitValue;
right?: UnitValue;
bottom?: UnitValue;
left?: UnitValue;
};
export interface ColorGradientPointValue {
id: string;
color: string;
position: number;
}
export interface ColorGradientLinearValue {
rotate: number;
points: ColorGradientPointValue[];
type?: "linear";
repeat?: boolean;
}
export interface ColorGradientLinearSize {
width?: {
value?: number;
unit?: string;
};
height?: {
value: number;
unit: string;
};
}
export interface ColorGradientRadialValue {
/**
* Các điểm màu sắc trong gradient
*/
points: ColorGradientPointValue[];
/**
* Kiểu gradient
*/
type?: "radial";
/**
* Vị trí của gradient
*/
position?: {
x?: number;
y?: number;
};
/**
* Kích thước của gradient (đường kính)
*/
size?: ColorGradientLinearSize;
/**
* Lặp lại gradient
*/
repeat?: boolean;
}
export type ColorGradientValue = ColorGradientLinearValue | ColorGradientRadialValue;
export type StyleField = Record<string, {
name: string;
fieldSet: string;
}>;
export interface ShadowValue {
id: string;
horizontal?: UnitValue;
vertical?: UnitValue;
blur?: UnitValue;
spread?: UnitValue;
color: string;
}
export type RawDataEEPV2 = {
id: string;
type: string;
styles: StyleEntity.StyleRawData;
css?: string;
css_code: string;
properties: Record<string, any>;
children?: string[];
parent?: string;
};
export interface TrackElementData {
props?: Record<string, string>;
structure: any;
}