/* * Copyright 2026 Hypergiant Galactic Systems Inc. All rights reserved. * This file is licensed to you 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 https://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 REPRESENTATIONS * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ import { IconProps } from "../icon/types.js"; import { RefAttributes } from "react"; import { Key, ListBoxItemProps, ListBoxProps, ListBoxSectionProps } from "react-aria-components/ListBox"; //#region src/components/options/types.d.ts /** * Data structure for options items supporting hierarchical collections. */ type OptionsDataItem = { /** Unique identifier for the item. */ id: Key; /** Display name for the item. */ name: string; /** Nested child items for hierarchical structures. */ children?: OptionsDataItem[]; }; /** * Props for the OptionsItem component. */ type OptionsItemProps = Omit, 'className'> & RefAttributes & { /** CSS class names for item elements. */ classNames?: { /** Class name for the item container. */ item?: ListBoxItemProps['className']; /** Class name for the item icon. */ icon?: IconProps['className']; }; /** Color variant for the item. */ color?: 'info' | 'serious' | 'critical'; }; /** * Props for the Options component. */ type OptionsProps = Omit, 'orientation' | 'layout'> & RefAttributes & { /** Size variant for the options list. */ size?: 'small' | 'large'; }; /** * Props for the OptionsSection component. */ type OptionsSectionProps = Omit, 'className'> & { /** CSS class names for section elements. */ classNames?: { /** Class name for the section container. */ section?: ListBoxSectionProps['className']; /** Class name for the section header. */ header?: string; }; /** Header text for the section. */ header?: string; }; //#endregion export { OptionsDataItem, OptionsItemProps, OptionsProps, OptionsSectionProps }; //# sourceMappingURL=types.d.ts.map