@bitrix24/b24ui-nuxt
Version:
Bitrix24 UI-Kit for developing web applications REST API for NUXT & VUE
29 lines (28 loc) • 1.61 kB
TypeScript
import type { InjectionKey, ComputedRef } from 'vue';
import type { FieldGroupProps } from '../components/FieldGroup.vue';
import type { GetObjectField } from '../types/utils';
export declare const fieldGroupInjectionKey: InjectionKey<ComputedRef<{
size: FieldGroupProps['size'];
orientation: FieldGroupProps['orientation'];
noSplit: FieldGroupProps['noSplit'];
}>>;
type Props<T> = {
size?: GetObjectField<T, 'size'>;
};
/**
* Reads `size` / `orientation` from a wrapping `<B24FieldGroup>` (or `<B24ButtonGroup>`, etc.).
*
* **Always pass the raw `_props`, never the `useComponentProps` proxy** — the
* fallback `props?.size ?? fieldGroup?.value.size` must keep the closer context
* winning over `<B24Theme :props>`. To still apply theme defaults on bare inputs,
* fall back to the proxy at the `tv()` call site: `size: groupSize.value ?? props.size`.
*/
export declare function useFieldGroup<T>(props: Props<T>): {
orientation: ComputedRef<"horizontal" | "vertical" | undefined>;
size: ComputedRef<"lg" | "sm" | "md" | "xl" | "xs" | "xss" | NonNullable<GetObjectField<T, "size">> | undefined>;
noSplit: ComputedRef<boolean>;
};
export declare const FieldGroupReset: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export {};