import { SvelteComponent } from 'svelte' export type PanePosition = 'draggable' | 'fixed' | 'inline' declare const __propDef: { props: ( | (Omit< { /** * Text in the pane's title bar. * * If `position="inline"`, the default is `undefined` and no title bar is * shown. * * @default `Tweakpane` */ title?: string | undefined /** * Allow users to interactively expand / contract the pane by clicking its * title bar. * * Hides the collapse button from the title bar when `false`. * * @default `true` */ userExpandable?: boolean /** * Expand or collapse the pane into its title bar. * * @default `true` * @bindable */ expanded?: boolean /** * Custom color scheme. * * Applies to all child components, but note that setting a different `theme` * on a child component's prop will **not** override the parent pane's theme. * * Note that `` * components with `storePositionLocally` set to true are used on the same * page. * * @default `'1'` */ localStoreId?: string } & { /** * Pane mode, one of three options: * * - **'draggable'** _(default)_\ * The pane is draggable and resizable, and may be placed anywhere over the * page. * - **'inline'**\ * The pane appears inline with other content in the normal flow of the * document.\ * This is the default mode for components created outside of an explicit * `` component.* * - **'fixed'**\ * Standard Tweakpane behavior where the pane is shown in a fixed position * over the page. * * Note that `` is a dynamic component, and availability of additional * props will vary depending on the defined `position` value. * * @default `'draggable'` */ position?: 'draggable' | undefined }) ) & { /** * Pane mode, one of three options: * * - **'draggable'** _(default)_\ * The pane is draggable and resizable, and may be placed anywhere over the * page. * - **'inline'**\ * The pane appears inline with other content in the normal flow of the * document.\ * This is the default mode for components created outside of an explicit * `` component.* * - **'fixed'**\ * Standard Tweakpane behavior where the pane is shown in a fixed position * over the page. * * Note that `` is a dynamic component, and availability of additional * props will vary depending on the defined `position` value. * * @default `'draggable'` */ position?: PanePosition } events: { [evt: string]: CustomEvent } slots: { /** * Any Tweakpane component, except another ``. */ default: {} } exports?: {} | undefined bindings?: string | undefined } export type PaneProps = typeof __propDef.props export type PaneEvents = typeof __propDef.events export type PaneSlots = typeof __propDef.slots /** * The root `` component, used for organizing controls into a single group and controlling how * and where the Tweakpane is displayed. * * This component is a wrapper around Tweakpane's * [`Pane`](https://tweakpane.github.io/docs/api/classes/Pane.html) class. * * Important: Unlike the vanilla JS Tweakpane API, wrapping components in a `` is not mandatory. * * Pane-less components will be automatically nested in a `` component and * displayed in the regular block flow of the page. `` is only necessary when you want to * explicitly group a number of components, or when you want convenient means to control how and where * the Tweakpane is shown on the page. (See an [important * exception](https://kitschpatrol.com/svelte-tweakpane-ui/docs#island-framework-compatibility) * regarding _Svelte Tweakpane UI_ in island frameworks like Astro.) * * * Multiple `` components of different modes may be added to a single page. If the panes are in * `fixed` or `draggable` mode, you might want to set the `x` or `y` properties to prevent overlap. * * Note that `` is a dynamic component, and availability of additional props will vary depending * on the defined `position` value. * * Position mode overview: * * - **``** \ * This is an extension of Tweakpane's core functionality, which reasonably considers pane dragging * outside of the library's scope. See discussion in Tweakpane issues * [#88](https://github.com/cocopon/tweakpane/issues/88) and * [#301](https://github.com/cocopon/tweakpane/issues/301). * \ * By default, the pane's last position and width will be saved to the browser's local storage and * re-applied across page reloads. (Set the `storePositionLocally` prop to false to prevent this.) * \ * If multiple `` components are used on the same page with * `storePositionLocally` set to true, then each must have a unique `localStoreId` prop set to avoid * collisions. * \ * Double-clicking the width drag handle will expand or contract the pane between to its `minWidth` * and `maxWidth` sizes. * * - **``** \ * Provides an inline version of the pane component, allowing the Tweakpane window to appear in the * normal flow of the document. * \ * All other _Svelte Tweakpane UI_ components which are created without a containing `` are * nested implicitly inside a title-less `` component. As such, you do not * necessarily need create `` components in most cases. * \ * This mode's behavior is similar to creating a Pane in the vanilla JS Tweakpane with its * [`container`](https://tweakpane.github.io/docs/misc/#containerElement) property set to a specific * element where you want the Pane to appear. * * - **``** \ * This mode uses the standard vanilla JS Tweakpane behavior of displaying in a fixed position over * the top-right of the page. * * @example * ```svelte * * * * * * {#if position === 'fixed'} *

Pane is fixed at the top-right of the page.

* {:else if position === 'draggable'} *

Pane is draggable at the top-right of the page.

* {/if} * * * ``` * * @sourceLink * [Pane.svelte](https://github.com/kitschpatrol/svelte-tweakpane-ui/blob/main/src/lib/core/Pane.svelte) */ export default class Pane extends SvelteComponent {} export {}