UNPKG

@pmndrs/uikit

Version:

Build performant 3D user interfaces with Three.js and yoga.

39 lines (38 loc) 2.3 kB
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 {};