import { CSSProperties } from "react";

//#region src/components/PisellTabbar/types.d.ts
/**
 * Tabbar 数据源项类型
 */
interface TabbarDataSource {
  /** 唯一标识 */
  id: string | number;
  /** 店铺ID */
  shop_id?: number;
  /** 父级ID */
  parent_id?: number;
  /** 显示名称 */
  name: string;
  /** URL slug */
  slug?: string;
  /** 图标 URL 或图标名称 */
  icon?: string;
  /** 子级数据 */
  children?: TabbarDataSource[];
  /** 自定义点击事件标识 */
  customClick?: boolean;
  /** 唯一 key */
  key?: string;
}
/**
 * 层级配置
 */
interface TabbarLevelConfig {
  /** SuperTabs 背景色 */
  superTabsBg: string;
  /** 卡片宽度 */
  cardWidth: number;
  /** 卡片高度 */
  cardHeight: number;
  /** 左侧缩进 */
  paddingLeft?: number;
}
/**
 * 展开配置
 */
interface ExpandConfig {
  /** 激活状态配置 */
  active: {
    icon: string;
    text: string;
  };
  /** 未激活状态配置 */
  inactive: {
    icon: string;
    text: string;
  };
}
/**
 * 层级类型
 */
type LevelType = 'level1' | 'level2' | 'level3';
/**
 * PisellTabbar 组件属性
 */
interface PisellTabbarProps {
  /** 数据源 */
  dataSource?: TabbarDataSource[];
  /** 当前选中的值（多层级 key 数组） */
  value?: (string | number)[];
  /** 值变化回调 */
  onChange?: (value: (string | number)[]) => void;
  /** 自定义类名 */
  className?: string;
  /** 自定义样式 */
  style?: CSSProperties;
  /** 层级配置（可按层级自定义） */
  levelConfig?: Partial<Record<LevelType, Partial<TabbarLevelConfig>>>;
  /** 展开配置 */
  expandConfig?: ExpandConfig;
  /** 最大层级数 */
  maxLevel?: 1 | 2 | 3;
  onSearch?: (value: string) => void;
  __designMode?: boolean;
}
//#endregion
export { LevelType, PisellTabbarProps, TabbarDataSource };