'use static';
/*
* Copyright (c) 2025 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License"),
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* ###### Child Components
*
* Not supported
*
* ###### Events
*
* The [universal events]{@link ./@internal/component/ets/common} are not supported.
*
* @file
* @kit ArkUI
*/
import { Component } from '@ohos.arkui.component';
import { ResourceStr } from '@ohos.arkui.component';
import { SymbolGlyphModifier } from 'arkui.SymbolGlyphModifier';
import { BuilderParam, Builder } from '@ohos.arkui.component';
/**
* Declaration of the menu item on the right side.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
* @noninterop
*/
export declare class TabTitleBarMenuItem {
/**
* Icon resource.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public value: ResourceStr;
/**
* Symbol icon resource, which has higher priority than **value**.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public symbolStyle?: SymbolGlyphModifier;
/**
* Icon label.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public label?: ResourceStr;
/**
* Whether to enable the item. Default value: **false**. The value **true** means to enable the item, and **false**
* means the opposite.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public isEnabled?: boolean;
/**
* Action to perform.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public action?: () => void;
/**
* Accessibility text, that is, accessibility label name. If a component does not contain text information, it will
* not be announced by the screen reader when selected. In this case, the screen reader user cannot know which
* component is selected. To solve this problem, you can set accessibility text for components without text
* information. When such a component is selected, the screen reader announces the specified accessibility text,
* informing the user which component is selected.
*
* Default value: value of the **label** property if it is set and an empty string otherwise.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public accessibilityText?: ResourceStr;
/**
* Accessible description. You can provide comprehensive text explanations to help users understand the operation they
* are about to perform and its potential consequences, especially when these cannot be inferred from the component's
* attributes and accessibility text alone. If a component contains both text information and the accessible
* description, the text is announced first and then the accessible description, when the component is selected.
*
* Default value: **"Double-tap to activate"**
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public accessibilityDescription?: ResourceStr;
/**
* Accessibility level. It determines whether the component can be recognized by accessibility services.
*
* The options are as follows:
*
* **"auto"**: It is treated as "yes" by the system.
*
* **"yes"**: The component can be recognized by accessibility services.
*
* **"no"**: The component cannot be recognized by accessibility services.
*
* **"no-hide-descendants"**: Neither the component nor its child components can be recognized by accessibility
* services.
*
* Default value: **"auto"**
*
* @default 'auto'
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public accessibilityLevel?: string;
}
/**
* Declaration of the tab item.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
* @noninterop
*/
export declare class TabTitleBarTabItem {
/**
* Text of the tab.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public title: ResourceStr;
/**
* Icon of the tab.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public icon?: ResourceStr;
/**
* Symbol icon of the tab, which has higher priority than **icon**.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
public symbolStyle?: SymbolGlyphModifier;
}
/**
* The **TabTitleBar** component is a tab title bar used to switch between tabs pages. It is applicable only to level-1
* pages.
*
* > **NOTE**
* >
* > - If the **TabTitleBar** component has [universal attributes]{@link ./@internal/component/ets/common} and
* > [universal events]{@link ./@internal/component/ets/common} configured, the compiler toolchain automatically
* > generates an additional **__Common__** node and mounts the universal attributes and universal events on this node
* > rather than the **TabTitleBar** component itself. As a result, the configured universal attributes and universal
* > events may fail to take effect or behave as intended. For this reason, avoid using universal attributes and events
* > with the **TabTitleBar** component.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
* @noninterop
*/
@Component
export declare struct TabTitleBar {
/**
* List of tab items on the left of the title bar.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
tabItems: Array<TabTitleBarTabItem>;
/**
* List of menu items on the right of the title bar.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
menuItems?: Array<TabTitleBarMenuItem>;
/**
* Constructor for page content pertaining to the tab list.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 static
*/
@BuilderParam
swiperContent: () => void;
/**
* The method to build component.
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 23 staticonly
*/
@Builder
build(): void;
}