@toriistudio/v0-playground
Version:
196 lines (188 loc) • 7.73 kB
TypeScript
import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';
import React__default, { ReactNode } from 'react';
import * as class_variance_authority_types from 'class-variance-authority/types';
import { VariantProps } from 'class-variance-authority';
declare function Playground({ children }: {
children: ReactNode;
}): react_jsx_runtime.JSX.Element | null;
declare const buttonVariants: (props?: ({
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
asChild?: boolean;
}
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
type PaletteChannelKey = "r" | "g" | "b";
type AdvancedPaletteSection = {
key: string;
label: string;
helper?: string;
};
type AdvancedPaletteValue = Record<PaletteChannelKey, number>;
type AdvancedPalette = Record<string, AdvancedPaletteValue>;
type AdvancedPaletteValueSource = AdvancedPaletteValue | Partial<Record<PaletteChannelKey, number>> | string;
type AdvancedPaletteRecordSource = Record<string, AdvancedPaletteValueSource>;
type AdvancedPaletteSource = AdvancedPalette | string[] | AdvancedPaletteRecordSource | undefined;
type AdvancedPaletteRange = {
min: number;
max: number;
step: number;
};
type AdvancedPaletteRanges = Record<string, AdvancedPaletteRange>;
declare const DEFAULT_HEX_PALETTE: AdvancedPaletteRecordSource;
declare const computePaletteGradient: (palette: AdvancedPalette, steps?: number) => string;
declare const createPaletteSignature: (palette: AdvancedPalette) => string;
declare const clonePalette: (palette: AdvancedPalette) => AdvancedPalette;
declare const hexToPaletteValue: (hex: string) => AdvancedPaletteValue;
declare const paletteValueToHex: (value: AdvancedPaletteValue) => string;
declare const createAdvancedPalette: (source?: AdvancedPaletteSource, options?: {
sectionOrder?: string[];
}) => AdvancedPalette;
declare const DEFAULT_ADVANCED_PALETTE: AdvancedPalette;
declare const advancedPaletteToHexColors: (palette: AdvancedPalette, options?: {
sectionOrder?: string[];
fallbackPalette?: AdvancedPalette;
defaultColor?: string;
}) => string[];
type AdvancedPaletteControlConfig = {
defaultPalette?: AdvancedPaletteSource;
sections?: AdvancedPaletteSection[];
ranges?: AdvancedPaletteRanges;
channelLabels?: Partial<Record<PaletteChannelKey, string>>;
hiddenKeyPrefix?: string;
controlKey?: string;
gradientSteps?: number;
onPaletteChange?: (palette: AdvancedPalette) => void;
onInteraction?: () => void;
folder?: string;
folderPlacement?: "top" | "bottom";
};
type ResolvedAdvancedPaletteConfig = AdvancedPaletteControlConfig & {
defaultPalette: AdvancedPalette;
sections: AdvancedPaletteSection[];
ranges: AdvancedPaletteRanges;
channelLabels: Record<PaletteChannelKey, string>;
hiddenKeyPrefix: string;
controlKey: string;
gradientSteps: number;
};
type MediaType = "image" | "video";
type UploadedMedia = {
src: string;
type: MediaType;
};
type PresetMediaEntry = {
src: string;
label: string;
type: MediaType;
};
type BaseControl = {
hidden?: boolean;
folder?: string;
folderPlacement?: "top" | "bottom";
};
type ControlType = ({
type: "boolean";
value: boolean;
} & BaseControl) | ({
type: "number";
value: number;
min?: number;
max?: number;
step?: number;
} & BaseControl) | ({
type: "string";
value: string;
} & BaseControl) | ({
type: "color";
value: string;
} & BaseControl) | ({
type: "select";
value: string;
options: Record<string, any>;
} & BaseControl) | ({
type: "button";
onClick?: () => void;
label?: string;
render?: () => React__default.ReactNode;
} & BaseControl);
type ControlsSchema = Record<string, ControlType>;
type CopyButtonFnArgs = {
componentName?: string;
values: Record<string, any>;
schema: ControlsSchema;
jsx: string;
jsonToComponentString: (options: {
componentName?: string;
props: Record<string, unknown>;
}) => string;
};
type MediaUploadControlConfig = {
folder?: string;
folderPlacement?: "top" | "bottom";
presetMedia?: PresetMediaEntry[];
maxPresetCount?: number;
onSelectMedia?: (media: UploadedMedia) => void;
onClear?: () => void;
};
type ControlsConfig = {
showCopyButton?: boolean;
showCopyButtonFn?: (args: CopyButtonFnArgs) => string | null | undefined;
mainLabel?: string;
showGrid?: boolean;
showPresentationButton?: boolean;
showCodeSnippet?: boolean;
addAdvancedPaletteControl?: ResolvedAdvancedPaletteConfig;
addMediaUploadControl?: MediaUploadControlConfig;
};
type UseControlsConfig = Omit<ControlsConfig, "addAdvancedPaletteControl"> & {
addAdvancedPaletteControl?: AdvancedPaletteControlConfig;
};
type UseControlsOptions = {
componentName?: string;
config?: UseControlsConfig;
};
declare const ControlsProvider: ({ children }: {
children: ReactNode;
}) => react_jsx_runtime.JSX.Element;
declare const useControls: <T extends ControlsSchema>(schema: T, options?: UseControlsOptions) => { [K in keyof T]: T[K] extends {
value: infer V;
} ? V : never; } & {
controls: Record<string, any>;
schema: ControlsSchema;
setValue: (key: string, value: any) => void;
jsx: () => string;
};
declare const useUrlSyncedControls: <T extends ControlsSchema>(schema: T, options?: UseControlsOptions) => { [K in keyof T]: T[K] extends {
value: infer V;
} ? V : never; } & {
controls: Record<string, any>;
schema: ControlsSchema;
setValue: (key: string, value: any) => void;
jsx: () => string;
};
type ControlOverrides = Omit<AdvancedPaletteControlConfig, "defaultPalette" | "onPaletteChange">;
type UseAdvancedPaletteControlsOptions = {
defaultPalette?: AdvancedPaletteSource;
fallbackPalette?: AdvancedPaletteSource;
sectionOrder?: string[];
defaultColor?: string;
gradientSteps?: number;
control?: ControlOverrides;
onChange?: (palette: AdvancedPalette) => void;
};
type UseAdvancedPaletteControlsResult = {
palette: Readonly<AdvancedPalette>;
hexColors: string[];
controlConfig: AdvancedPaletteControlConfig;
paletteGradient: string;
setPalette: (source: AdvancedPaletteSource) => void;
updatePalette: (updater: (current: AdvancedPalette) => AdvancedPaletteSource) => void;
resetPalette: () => void;
paletteSignature: string;
};
declare const useAdvancedPaletteControls: (options?: UseAdvancedPaletteControlsOptions) => UseAdvancedPaletteControlsResult;
declare const useDefaultAdvancedPaletteControls: () => UseAdvancedPaletteControlsResult;
export { type AdvancedPalette, type AdvancedPaletteControlConfig, type AdvancedPaletteRecordSource, type AdvancedPaletteSource, type AdvancedPaletteValueSource, Button, type ControlType, ControlsProvider, type ControlsSchema, type CopyButtonFnArgs, DEFAULT_ADVANCED_PALETTE, DEFAULT_HEX_PALETTE, type MediaUploadControlConfig, type PaletteChannelKey, Playground, type PresetMediaEntry, type UploadedMedia, type UseAdvancedPaletteControlsOptions, type UseAdvancedPaletteControlsResult, advancedPaletteToHexColors, clonePalette, computePaletteGradient, createAdvancedPalette, createPaletteSignature, hexToPaletteValue, paletteValueToHex, useAdvancedPaletteControls, useControls, useDefaultAdvancedPaletteControls, useUrlSyncedControls };