/** @packageDocumentation * @module Utilities */ import * as React from "react"; import type { WidgetDef } from "../widgets/WidgetDef.js"; /** List of known preview features. */ interface KnownPreviewFeatures { /** If `true`, the panels and tool settings will always be rendered over the content. * The content will never change size. * * Discuss or upvote this feature: https://github.com/iTwin/appui/discussions/672 */ contentAlwaysMaxSize: boolean; /** If `true`, the floating widget will have a "maximize" button. Use `enableMaximizedPanelWidget` to enable the feature for panel widgets. * * Discuss or upvote this feature: https://github.com/iTwin/appui/discussions/673 */ enableMaximizedFloatingWidget: boolean; /** If `true`, the panel widget will have a "maximize" button. Use `enableMaximizedFloatingWidget` to enable the feature for floating widgets. * * Discuss or upvote this feature: https://github.com/iTwin/appui/discussions/673 */ enableMaximizedPanelWidget: boolean; /** If `true`, the horizontal panels will have an additional "Align" button. * * Discuss or upvote this feature: https://github.com/iTwin/appui/discussions/706 */ horizontalPanelAlignment: boolean; /** If enabled, a dropdown menu will be rendered for widgets that exceed the specified threshold of title bar buttons. * * Discuss or upvote this feature: https://github.com/iTwin/appui/discussions/723 */ widgetActionDropdown: { threshold: number; }; /** If `true`, the accudraw input field will accept some letters for bearing angle. Defaults to `false`. * * This allows to type letters for Bearing angles in the accudraw input field. (N, S, E, W) */ allowBearingLettersInAccuDrawInputFields: boolean; /** If `true`, popout widgets will not be rendered in a separate element tree, instead widget content will be re-parented to a popout content container. * Alternatively, an array of widget ids can be specified to only re-parent specific widgets. * @note Use {@link useTransientState} to save and restore DOM transient state when re-parenting widgets. * @note There is a known limitation where iTwinUI v2 popover elements will be rendered in the main window. Prefer using iTwinUI v3 when using this feature. * * Discuss or upvote this feature: https://github.com/iTwin/appui/discussions/925 */ reparentPopoutWidgets: boolean | WidgetDef["id"][]; /** If `true`, additional UI elements are rendered to allow the end user of the layout to control widget visibility. * Alternatively, an array of widget ids can be specified to only control specific widgets. * @note Use {@link UiItemsManager} APIs to manage what widgets are available to the end-user. * * Discuss or upvote this feature: https://github.com/iTwin/appui/discussions/859 */ controlWidgetVisibility: boolean | WidgetDef["id"][]; /** * If `true`, the tool settings will be using the new editor API. The new system delivers same default editors as the old one. * However, in order to use custom editors they need to be provided using `EditorsRegistryProvider` component. */ toolSettingsNewEditors: boolean; /** * If `true`, the default tool settings lock editor will be rendered as an icon button rather than a checkbox. * Consumers can still use a custom component to render the lock by customizing the `PropertyDescription`. * Additionally, the icon button will be rendered as an input decoration in editors that support it. */ toolSettingsLockButton: boolean; /** * If `true`, the input-like editors rendered in the tool settings will commit the entered value on key press. */ toolSettingsKeyPressCommit: boolean; } /** List of preview features that can be enabled/disabled. * This list is expected to change over time, the interface is made * so that new features can be added or removed without breaking existing code. * A console warning will simply appear if unknown features are passed. * @beta */ export interface PreviewFeatures extends Partial { [featureName: string]: any; } /** Hook to access the preview features set. * @internal */ export declare function usePreviewFeatures(): PreviewFeatures; /** Props for PreviewFeaturesProvider. * @beta */ export interface PreviewFeaturesProviderProps { children?: React.ReactNode; features?: PreviewFeatures; } /** Set which preview features are enabled. These features are not yet ready for production use nor have * a proper API defined yet. * The available set of features are defined in the [[PreviewFeatures]] interface. * * This component should wrap the Provider component. * * ```tsx * * * [...] * * [/...] * * * ``` * @beta */ export declare function PreviewFeaturesProvider({ children, features, }: PreviewFeaturesProviderProps): React.JSX.Element; export {}; //# sourceMappingURL=PreviewFeatures.d.ts.map