UNPKG

@pmndrs/uikit

Version:

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

36 lines (35 loc) 2.64 kB
import type { z } from 'zod'; import { baseOutPropertiesSchema, type SchemaInProperties, type SchemaLayerProperties } from './schema.js'; import { PropertiesImplementation as BasePropertiesImplementation, Properties as BaseProperties } from '@pmndrs/uikit-pub-sub'; import { Aliases } from './alias.js'; import { Conditionals } from './conditional.js'; import { ReadonlySignal, Signal } from '@preact/signals-core'; import { ComponentDefaultsProperties } from './defaults.js'; import { LayerInSectionIdentifier } from './layer.js'; export type BaseOutProperties = z.output<typeof baseOutPropertiesSchema> & ComponentDefaultsProperties; export type UikitPropertyKeys = keyof BaseOutProperties; export type WithSignal<T> = { [K in keyof T]: T[K] | ReadonlySignal<T[K]>; }; export type InProperties<OutProperties extends BaseOutProperties = BaseOutProperties> = SchemaInProperties<OutProperties> & {}; export type Properties<OutProperties extends BaseOutProperties = BaseOutProperties> = BaseProperties<SchemaLayerProperties<OutProperties>, OutProperties> & { get usedConditionals(): { hover: Signal<boolean>; active: Signal<boolean>; }; setLayersWithConditionals(layerInSectionIdentifier: LayerInSectionIdentifier, properties: InProperties<OutProperties> | undefined): void; }; export declare class PropertiesImplementation<OutProperties extends BaseOutProperties = BaseOutProperties> extends BasePropertiesImplementation<SchemaLayerProperties<OutProperties>, OutProperties> implements Properties<OutProperties> { private readonly conditionals; readonly usedConditionals: { hover: Signal<boolean>; active: Signal<boolean>; }; constructor(aliases: Aliases, conditionals: Conditionals, defaults?: WithSignal<OutProperties>); setLayersWithConditionals(layerInSectionIdentifier: LayerInSectionIdentifier, properties: InProperties<OutProperties> | undefined): void; } export { componentDefaults } from './defaults.js'; export type { AddAllAliases, GetAliases, AllAliases } from './alias.js'; export type { SchemaInProperties, SchemaLayerProperties, SchemaPropertyValue } from './schema.js'; export type { AbsoluteLengthValue, LengthValue, NumberOrPercentageValue, NumberString, NumberValue, PercentageString, PixelLengthString, ViewportLengthString, } from './values.js'; export { baseOutPropertyShape, baseOutPropertiesSchema, createInPropertiesSchema, defineSchema, absoluteLengthValueSchema, lengthValueSchema, numberValueSchema, numberOrPercentageValueSchema, numberStringSchema, percentageStringSchema, pixelLengthStringSchema, viewportLengthStringSchema, } from './schema.js';