@pmndrs/uikit
Version:
Build performant 3D user interfaces with Three.js and yoga.
39 lines (38 loc) • 2.3 kB
TypeScript
import { Signal } from '@preact/signals-core';
import { TypedArray, Vector2Tuple } from 'three';
import type { ColorRepresentation, Fix_TS_56_Float32Array } from '../../utils.js';
import { Properties } from '../../properties/index.js';
import { Inset } from '../../flex/index.js';
import { materialSetters } from './data.js';
import type { NumberOrPercentageValue } from '../../properties/values.js';
declare const defaultDefaults: {
backgroundColor: ColorRepresentation;
borderColor: ColorRepresentation;
borderBottomLeftRadius: number | string;
borderTopLeftRadius: number | string;
borderBottomRightRadius: number | string;
borderTopRightRadius: number | string;
borderBend: number;
};
export type PanelMaterialConfig = ReturnType<typeof createPanelMaterialConfig>;
export declare function getDefaultPanelMaterialConfig(): {
hasProperty: (key: string) => boolean;
defaultData: Fix_TS_56_Float32Array;
setters: {
[x: string]: (data: TypedArray, offset: number, value: unknown, size: Signal<Vector2Tuple | undefined>, opacity: Signal<NumberOrPercentageValue>, onUpdate: ((start: number, count: number) => void) | undefined) => void;
};
computedIsVisibile: (properties: Properties, borderInset: Signal<Inset | undefined>, size: Signal<Vector2Tuple | undefined>, isVisible: Signal<boolean>) => import("@preact/signals-core").ReadonlySignal<boolean>;
};
export declare function createPanelMaterialConfig(keys: {
[Key in keyof typeof materialSetters]?: string;
}, providedDefaults?: {
[Key in Exclude<keyof typeof defaultDefaults, 'borderBottomLeftRadius' | 'borderTopLeftRadius' | 'borderBottomRightRadius' | 'borderTopRightRadius'>]?: (typeof defaultDefaults)[Key];
}): {
hasProperty: (key: string) => boolean;
defaultData: Fix_TS_56_Float32Array;
setters: {
[x: string]: (data: TypedArray, offset: number, value: unknown, size: Signal<Vector2Tuple | undefined>, opacity: Signal<NumberOrPercentageValue>, onUpdate: ((start: number, count: number) => void) | undefined) => void;
};
computedIsVisibile: (properties: Properties, borderInset: Signal<Inset | undefined>, size: Signal<Vector2Tuple | undefined>, isVisible: Signal<boolean>) => import("@preact/signals-core").ReadonlySignal<boolean>;
};
export {};