UNPKG

@pmndrs/uikit

Version:

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

44 lines (43 loc) 2.23 kB
import type { ReadonlySignal } from '@preact/signals-core'; import { Matrix4 } from 'three'; import { ClippingRect } from '../../clipping.js'; import { alignmentXMap, alignmentYMap } from '../../utils.js'; import { InstancedGlyphGroup } from './instanced-glyph-group.js'; import type { PositionedGlyphLayout } from '../layout/index.js'; import type { BaseOutProperties, Properties } from '../../properties/index.js'; import type { Font } from '../font.js'; import type { OrderInfo } from '../../order.js'; import type { RootContext } from '../../context.js'; export type TextAlignProperties = { textAlign?: keyof typeof alignmentXMap | 'justify'; }; export declare const additionalTextDefaults: { verticalAlign: keyof typeof alignmentYMap; }; export type AdditionalTextDefaults = typeof additionalTextDefaults; type InstancedTextProperties = AdditionalTextDefaults & BaseOutProperties; export type InstancedTextTarget<OutProperties extends InstancedTextProperties = InstancedTextProperties> = { root: ReadonlySignal<RootContext>; fontSignal: ReadonlySignal<Font | undefined>; orderInfo: ReadonlySignal<OrderInfo | undefined>; properties: Properties<OutProperties>; globalTextMatrix: ReadonlySignal<Matrix4 | undefined>; isVisible: ReadonlySignal<boolean>; abortSignal: AbortSignal; }; export declare function createInstancedText<OutProperties extends InstancedTextProperties>(text: InstancedTextTarget<OutProperties>, parentClippingRect: ReadonlySignal<ClippingRect | undefined> | undefined, layoutSignal: ReadonlySignal<PositionedGlyphLayout | undefined>): void; export declare class InstancedText { private group; private properties; private layoutSignal; private matrix; private parentClippingRect; private glyphLines; private unsubscribeInitialList; private unsubscribeShowList; constructor(group: InstancedGlyphGroup, properties: Properties<InstancedTextProperties>, layoutSignal: ReadonlySignal<PositionedGlyphLayout | undefined>, matrix: ReadonlySignal<Matrix4 | undefined>, isVisible: ReadonlySignal<boolean>, parentClippingRect: ReadonlySignal<ClippingRect | undefined> | undefined); private show; private hide; destroy(): void; } export {};