naive-icons 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,13 +4,14 @@
4
4
 
5
5
  ## Unreleased
6
6
 
7
- 官方文档站点重构。图标与组件产物无任何变更。
7
+ 官方文档站点重构,并新增 4 个方向键图标。
8
8
 
9
9
  改进
10
10
 
11
11
  - 官网三层(HTML / CSS / JS)完全重写:语义化标签、统一的设计令牌体系(间距 4px 基数、圆角与阴影尺度)、清除模板导出的冗余属性
12
12
  - 信息架构收敛:原先并列的 4 个代码面板合并为「安装 / React / SVG / TypeScript」标签页,调色板与设计原则合并为「设计规范」一节
13
13
  - 视觉基调改为温暖手绘:纸张颗粒纹理、暖调深色模式、手绘分隔线,浅色与深色主题均可手动切换并记忆
14
+ - 新增 4 个方向键图标:上(arrow-up)、下(arrow-down)、左(arrow-left)、右(arrow-right),与已有的关闭(close)图标组成基础方向/操作图标组;同步更新 `index.ts`、`types.ts`、`svg/` 与官网数据
14
15
  - 引入 LXGW 悠哉字体(OFL,自托管子集化,仅 715 个字符 ≈ 170KB ×2 个字重)作为网站字体;图标库本体仍无任何字体/资源依赖
15
16
  - 图标浏览器工具栏在宽屏下吸顶,新增分类结果计数、搜索清空、描边快捷色板与自定义取色器
16
17
  - 预览切换深色底时,若描边仍为默认墨黑会自动换成奶油色,避免图标不可见;用户显式选择的颜色不会被改写
@@ -36,7 +37,7 @@
36
37
 
37
38
  新增
38
39
 
39
- - 101 个手绘 naive folk art 风格 SVG 图标,覆盖界面基础、操作、文件与媒体、导航方位、通信、自然天气、动物、食物饮品、日常物品、交通工具、表情共 11 个分类
40
+ - 105 个手绘 naive folk art 风格 SVG 图标,覆盖界面基础、操作、文件与媒体、导航方位、通信、自然天气、动物、食物饮品、日常物品、交通工具、表情共 11 个分类
40
41
  - 每个图标同时提供 SVG 源文件与 React TSX 组件
41
42
  - 完整 TypeScript 类型定义:IconProps、IconName、IconCategory、PaletteColor、NAIVE_PALETTE
42
43
  - 统一规格:48x48 viewBox、3.5 描边宽度、round 线帽与线角
package/README.en.md CHANGED
@@ -22,11 +22,11 @@
22
22
  </p>
23
23
 
24
24
 
25
- Naive Icons is a hand-drawn SVG icon library with a naive folk art style, built for React and TypeScript. All 101 icons are AI-generated original works.
25
+ Naive Icons is a hand-drawn SVG icon library with a naive folk art style, built for React and TypeScript. All 105 icons are AI-generated original works.
26
26
 
27
27
  Each icon is drawn on a 48x48 grid with a 3.5 stroke, rounded line caps, and a unified retro palette — keeping the charming clumsiness and warmth of hand-drawn illustration. Some icons even feature a pair of dot eyes and a little smile, adding a touch of humanity to your interface.
28
28
 
29
- - Icon count: 101
29
+ - Icon count: 105
30
30
  - Per-icon size: roughly 400–700 bytes
31
31
  - Dependencies: zero runtime dependencies, React as a peer dependency only
32
32
  - License: MIT
@@ -48,7 +48,7 @@ Each icon is drawn on a 48x48 grid with a 3.5 stroke, rounded line caps, and a u
48
48
 
49
49
  ## Features
50
50
 
51
- - 101 original hand-drawn SVG icons spanning 11 categories: interface, actions, media, navigation, animals, food, and more
51
+ - 105 original hand-drawn SVG icons spanning 11 categories: interface, actions, media, navigation, animals, food, and more
52
52
  - Unified spec: 48x48 viewBox, 3.5 stroke width, round line caps and joins
53
53
  - Unified palette: 9 retro colors, usable directly as design tokens
54
54
  - Some icons feature dot eyes and a little smile for a highly recognizable style
@@ -223,8 +223,8 @@ Naive Icons follows four fixed rules. They should be respected when adding new i
223
223
 
224
224
  ```
225
225
  naive-icons/
226
- ├── svg/ 101 SVG source files
227
- ├── src/ 101 React TSX components + index.ts + types.ts
226
+ ├── svg/ 105 SVG source files
227
+ ├── src/ 105 React TSX components + index.ts + types.ts
228
228
  ├── assets/ Brand assets (logo)
229
229
  ├── scripts/ Icon generation and preview build scripts
230
230
  ├── website/ Official documentation site
package/README.md CHANGED
@@ -23,11 +23,11 @@
23
23
  <img src="https://img.shields.io/badge/SVG-FFB13B?style=flat-square&logoColor=black" alt="SVG">
24
24
  </p>
25
25
 
26
- Naive Icons 是一套手绘 naive folk art 风格的 SVG 图标库,为 React 与 TypeScript 打造。全部 101 个图标由 AI 生成,均为原创作品。
26
+ Naive Icons 是一套手绘 naive folk art 风格的 SVG 图标库,为 React 与 TypeScript 打造。全部 105 个图标由 AI 生成,均为原创作品。
27
27
 
28
28
  每一个图标都建立在 48x48 的网格上,使用 3.5 的粗描边、圆角线帽与统一的复古调色板,并保留了手绘插画特有的笨拙感与温度——部分图标还带有一对小圆点眼睛和微笑,让界面多一点点人情味。
29
29
 
30
- - 图标数量:101
30
+ - 图标数量:105
31
31
  - 单个体积:约 400 至 700 字节
32
32
  - 依赖:零运行时依赖,仅 peer 依赖 React
33
33
  - 许可证:MIT
@@ -49,7 +49,7 @@ Naive Icons 是一套手绘 naive folk art 风格的 SVG 图标库,为 React
49
49
 
50
50
  ## 特性
51
51
 
52
- - 101 个手绘风格的原创 SVG 图标,覆盖界面、操作、媒体、导航、动物、食物等 11 个分类
52
+ - 105 个手绘风格的原创 SVG 图标,覆盖界面、操作、媒体、导航、动物、食物等 11 个分类
53
53
  - 统一规格:48x48 viewBox、3.5 描边宽度、round 线帽与线角
54
54
  - 统一调色板:9 色复古配色,可作为设计令牌直接引用
55
55
  - 部分图标带有圆点眼睛与微笑表情,风格辨识度高
@@ -224,8 +224,8 @@ Naive Icons 遵循四条固定规则,新增图标时也应保持一致。
224
224
 
225
225
  ```
226
226
  naive-icons/
227
- ├── svg/ 101 个 SVG 源文件
228
- ├── src/ 101 个 React TSX 组件 + index.ts + types.ts
227
+ ├── svg/ 105 个 SVG 源文件
228
+ ├── src/ 105 个 React TSX 组件 + index.ts + types.ts
229
229
  ├── assets/ 品牌资源(logo)
230
230
  ├── scripts/ 图标生成与预览构建脚本
231
231
  ├── website/ 官方文档站点
package/dist/index.d.mts CHANGED
@@ -1,21 +1,12 @@
1
1
  import * as react from 'react';
2
2
  import { SVGProps, FC } from 'react';
3
3
 
4
- /** Naive Icons 所有图标的通用 Props(继承原生 SVG 属性) */
4
+ /** 所有图标的通用 Props(继承原生 SVG 属性) */
5
5
  interface IconProps extends SVGProps<SVGSVGElement> {
6
- /** 图标尺寸,宽高相等,默认 24 */
6
+ /** 图标尺寸(宽高等同),默认 48 */
7
7
  size?: number | string;
8
- /** 描边颜色,默认 currentColor */
9
- color?: string;
10
- /** 描边宽度,默认 3.5(相对 48x48 画布) */
11
- strokeWidth?: number | string;
12
- /** 填充色,默认 none */
13
- fill?: string;
14
- /** 无障碍标题 */
15
- title?: string;
16
8
  }
17
-
18
- /** Naive Icons 调色板 */
9
+ /** naive 风格调色板 */
19
10
  declare const NAIVE_PALETTE: {
20
11
  readonly ink: "#2A2A2A";
21
12
  readonly navy: "#264653";
@@ -28,13 +19,10 @@ declare const NAIVE_PALETTE: {
28
19
  readonly cream: "#FAEDCD";
29
20
  };
30
21
  type PaletteColor = keyof typeof NAIVE_PALETTE;
31
- /** Naive Icons 图标组件名(共 101 个) */
32
- type IconName = 'AirplaneIcon' | 'AnchorIcon' | 'AppleIcon' | 'BalloonIcon' | 'BearIcon' | 'BeeIcon' | 'BellIcon' | 'BicycleIcon' | 'BirdIcon' | 'BookIcon' | 'BookmarkIcon' | 'BulbIcon' | 'ButterflyIcon' | 'CactusIcon' | 'CakeIcon' | 'CalendarIcon' | 'CameraIcon' | 'CandleIcon' | 'CarIcon' | 'CartIcon' | 'CatIcon' | 'ChatIcon' | 'CheckIcon' | 'CherryIcon' | 'ClockIcon' | 'CloseIcon' | 'CloudIcon' | 'CodeIcon' | 'CoffeeIcon' | 'CompassIcon' | 'CreditCardIcon' | 'DogIcon' | 'DonutIcon' | 'DownloadIcon' | 'EditIcon' | 'EyeIcon' | 'FileIcon' | 'FishIcon' | 'FlagIcon' | 'FlameIcon' | 'FlowerIcon' | 'FolderIcon' | 'FoxIcon' | 'FrogIcon' | 'GiftIcon' | 'GlobeIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HomeIcon' | 'IcecreamIcon' | 'ImageIcon' | 'KeyIcon' | 'LadybugIcon' | 'LampIcon' | 'LeafIcon' | 'LemonIcon' | 'LocationIcon' | 'LockIcon' | 'MagnetIcon' | 'MailIcon' | 'MapIcon' | 'MicIcon' | 'MoonIcon' | 'MushroomIcon' | 'MusicIcon' | 'OwlIcon' | 'PaintbrushIcon' | 'PencilIcon' | 'PenguinIcon' | 'PhoneIcon' | 'PlayIcon' | 'PlusIcon' | 'RabbitIcon' | 'RainbowIcon' | 'RefreshIcon' | 'RocketIcon' | 'SailboatIcon' | 'SaveIcon' | 'SearchIcon' | 'SettingsIcon' | 'ShareIcon' | 'ShoppingBagIcon' | 'SmileIcon' | 'SnailIcon' | 'SnowflakeIcon' | 'StarIcon' | 'StrawberryIcon' | 'SunIcon' | 'TagIcon' | 'ThermometerIcon' | 'ThumbsUpIcon' | 'TrainIcon' | 'TrashIcon' | 'TreeIcon' | 'TrophyIcon' | 'UmbrellaIcon' | 'UploadIcon' | 'UserIcon' | 'VideoIcon' | 'WatermelonIcon' | 'WifiIcon';
33
- /** Naive Icons 图标组件类型 */
22
+ /** 所有图标组件名(共 105 个) */
23
+ type IconName = 'AirplaneIconIcon' | 'AnchorIconIcon' | 'AppleIconIcon' | 'ArrowDownIconIcon' | 'ArrowLeftIconIcon' | 'ArrowRightIconIcon' | 'ArrowUpIconIcon' | 'BalloonIconIcon' | 'BearIconIcon' | 'BeeIconIcon' | 'BellIconIcon' | 'BicycleIconIcon' | 'BirdIconIcon' | 'BookIconIcon' | 'BookmarkIconIcon' | 'BulbIconIcon' | 'ButterflyIconIcon' | 'CactusIconIcon' | 'CakeIconIcon' | 'CalendarIconIcon' | 'CameraIconIcon' | 'CandleIconIcon' | 'CarIconIcon' | 'CartIconIcon' | 'CatIconIcon' | 'ChatIconIcon' | 'CheckIconIcon' | 'CherryIconIcon' | 'ClockIconIcon' | 'CloseIconIcon' | 'CloudIconIcon' | 'CodeIconIcon' | 'CoffeeIconIcon' | 'CompassIconIcon' | 'CreditCardIconIcon' | 'DogIconIcon' | 'DonutIconIcon' | 'DownloadIconIcon' | 'EditIconIcon' | 'EyeIconIcon' | 'FileIconIcon' | 'FishIconIcon' | 'FlagIconIcon' | 'FlameIconIcon' | 'FlowerIconIcon' | 'FolderIconIcon' | 'FoxIconIcon' | 'FrogIconIcon' | 'GiftIconIcon' | 'GlobeIconIcon' | 'HeadphonesIconIcon' | 'HeartIconIcon' | 'HomeIconIcon' | 'IcecreamIconIcon' | 'ImageIconIcon' | 'KeyIconIcon' | 'LadybugIconIcon' | 'LampIconIcon' | 'LeafIconIcon' | 'LemonIconIcon' | 'LocationIconIcon' | 'LockIconIcon' | 'MagnetIconIcon' | 'MailIconIcon' | 'MapIconIcon' | 'MicIconIcon' | 'MoonIconIcon' | 'MushroomIconIcon' | 'MusicIconIcon' | 'OwlIconIcon' | 'PaintbrushIconIcon' | 'PencilIconIcon' | 'PenguinIconIcon' | 'PhoneIconIcon' | 'PlayIconIcon' | 'PlusIconIcon' | 'RabbitIconIcon' | 'RainbowIconIcon' | 'RefreshIconIcon' | 'RocketIconIcon' | 'SailboatIconIcon' | 'SaveIconIcon' | 'SearchIconIcon' | 'SettingsIconIcon' | 'ShareIconIcon' | 'ShoppingBagIconIcon' | 'SmileIconIcon' | 'SnailIconIcon' | 'SnowflakeIconIcon' | 'StarIconIcon' | 'StrawberryIconIcon' | 'SunIconIcon' | 'TagIconIcon' | 'ThermometerIconIcon' | 'ThumbsUpIconIcon' | 'TrainIconIcon' | 'TrashIconIcon' | 'TreeIconIcon' | 'TrophyIconIcon' | 'UmbrellaIconIcon' | 'UploadIconIcon' | 'UserIconIcon' | 'VideoIconIcon' | 'WatermelonIconIcon' | 'WifiIconIcon';
24
+ /** 图标组件类型 */
34
25
  type IconComponent = FC<IconProps>;
35
- /** Naive Icons 图标分类 */
36
- declare const ICON_CATEGORIES: readonly ["interface", "action", "media", "navigation", "communication", "nature", "animals", "food", "objects", "transport", "emoji"];
37
- type IconCategory = (typeof ICON_CATEGORIES)[number];
38
26
 
39
27
  declare const AirplaneIcon: (props: IconProps) => react.JSX.Element;
40
28
 
@@ -42,6 +30,14 @@ declare const AnchorIcon: (props: IconProps) => react.JSX.Element;
42
30
 
43
31
  declare const AppleIcon: (props: IconProps) => react.JSX.Element;
44
32
 
33
+ declare const ArrowDownIcon: (props: IconProps) => react.JSX.Element;
34
+
35
+ declare const ArrowLeftIcon: (props: IconProps) => react.JSX.Element;
36
+
37
+ declare const ArrowRightIcon: (props: IconProps) => react.JSX.Element;
38
+
39
+ declare const ArrowUpIcon: (props: IconProps) => react.JSX.Element;
40
+
45
41
  declare const BalloonIcon: (props: IconProps) => react.JSX.Element;
46
42
 
47
43
  declare const BearIcon: (props: IconProps) => react.JSX.Element;
@@ -238,4 +234,4 @@ declare const WatermelonIcon: (props: IconProps) => react.JSX.Element;
238
234
 
239
235
  declare const WifiIcon: (props: IconProps) => react.JSX.Element;
240
236
 
241
- export { AirplaneIcon, AnchorIcon, AppleIcon, BalloonIcon, BearIcon, BeeIcon, BellIcon, BicycleIcon, BirdIcon, BookIcon, BookmarkIcon, BulbIcon, ButterflyIcon, CactusIcon, CakeIcon, CalendarIcon, CameraIcon, CandleIcon, CarIcon, CartIcon, CatIcon, ChatIcon, CheckIcon, CherryIcon, ClockIcon, CloseIcon, CloudIcon, CodeIcon, CoffeeIcon, CompassIcon, CreditCardIcon, DogIcon, DonutIcon, DownloadIcon, EditIcon, EyeIcon, FileIcon, FishIcon, FlagIcon, FlameIcon, FlowerIcon, FolderIcon, FoxIcon, FrogIcon, GiftIcon, GlobeIcon, HeadphonesIcon, HeartIcon, HomeIcon, ICON_CATEGORIES, IcecreamIcon, type IconCategory, type IconComponent, type IconName, type IconProps, ImageIcon, KeyIcon, LadybugIcon, LampIcon, LeafIcon, LemonIcon, LocationIcon, LockIcon, MagnetIcon, MailIcon, MapIcon, MicIcon, MoonIcon, MushroomIcon, MusicIcon, NAIVE_PALETTE, OwlIcon, PaintbrushIcon, type PaletteColor, PencilIcon, PenguinIcon, PhoneIcon, PlayIcon, PlusIcon, RabbitIcon, RainbowIcon, RefreshIcon, RocketIcon, SailboatIcon, SaveIcon, SearchIcon, SettingsIcon, ShareIcon, ShoppingBagIcon, SmileIcon, SnailIcon, SnowflakeIcon, StarIcon, StrawberryIcon, SunIcon, TagIcon, ThermometerIcon, ThumbsUpIcon, TrainIcon, TrashIcon, TreeIcon, TrophyIcon, UmbrellaIcon, UploadIcon, UserIcon, VideoIcon, WatermelonIcon, WifiIcon };
237
+ export { AirplaneIcon, AnchorIcon, AppleIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, BalloonIcon, BearIcon, BeeIcon, BellIcon, BicycleIcon, BirdIcon, BookIcon, BookmarkIcon, BulbIcon, ButterflyIcon, CactusIcon, CakeIcon, CalendarIcon, CameraIcon, CandleIcon, CarIcon, CartIcon, CatIcon, ChatIcon, CheckIcon, CherryIcon, ClockIcon, CloseIcon, CloudIcon, CodeIcon, CoffeeIcon, CompassIcon, CreditCardIcon, DogIcon, DonutIcon, DownloadIcon, EditIcon, EyeIcon, FileIcon, FishIcon, FlagIcon, FlameIcon, FlowerIcon, FolderIcon, FoxIcon, FrogIcon, GiftIcon, GlobeIcon, HeadphonesIcon, HeartIcon, HomeIcon, IcecreamIcon, type IconComponent, type IconName, type IconProps, ImageIcon, KeyIcon, LadybugIcon, LampIcon, LeafIcon, LemonIcon, LocationIcon, LockIcon, MagnetIcon, MailIcon, MapIcon, MicIcon, MoonIcon, MushroomIcon, MusicIcon, NAIVE_PALETTE, OwlIcon, PaintbrushIcon, type PaletteColor, PencilIcon, PenguinIcon, PhoneIcon, PlayIcon, PlusIcon, RabbitIcon, RainbowIcon, RefreshIcon, RocketIcon, SailboatIcon, SaveIcon, SearchIcon, SettingsIcon, ShareIcon, ShoppingBagIcon, SmileIcon, SnailIcon, SnowflakeIcon, StarIcon, StrawberryIcon, SunIcon, TagIcon, ThermometerIcon, ThumbsUpIcon, TrainIcon, TrashIcon, TreeIcon, TrophyIcon, UmbrellaIcon, UploadIcon, UserIcon, VideoIcon, WatermelonIcon, WifiIcon };
package/dist/index.d.ts CHANGED
@@ -1,21 +1,12 @@
1
1
  import * as react from 'react';
2
2
  import { SVGProps, FC } from 'react';
3
3
 
4
- /** Naive Icons 所有图标的通用 Props(继承原生 SVG 属性) */
4
+ /** 所有图标的通用 Props(继承原生 SVG 属性) */
5
5
  interface IconProps extends SVGProps<SVGSVGElement> {
6
- /** 图标尺寸,宽高相等,默认 24 */
6
+ /** 图标尺寸(宽高等同),默认 48 */
7
7
  size?: number | string;
8
- /** 描边颜色,默认 currentColor */
9
- color?: string;
10
- /** 描边宽度,默认 3.5(相对 48x48 画布) */
11
- strokeWidth?: number | string;
12
- /** 填充色,默认 none */
13
- fill?: string;
14
- /** 无障碍标题 */
15
- title?: string;
16
8
  }
17
-
18
- /** Naive Icons 调色板 */
9
+ /** naive 风格调色板 */
19
10
  declare const NAIVE_PALETTE: {
20
11
  readonly ink: "#2A2A2A";
21
12
  readonly navy: "#264653";
@@ -28,13 +19,10 @@ declare const NAIVE_PALETTE: {
28
19
  readonly cream: "#FAEDCD";
29
20
  };
30
21
  type PaletteColor = keyof typeof NAIVE_PALETTE;
31
- /** Naive Icons 图标组件名(共 101 个) */
32
- type IconName = 'AirplaneIcon' | 'AnchorIcon' | 'AppleIcon' | 'BalloonIcon' | 'BearIcon' | 'BeeIcon' | 'BellIcon' | 'BicycleIcon' | 'BirdIcon' | 'BookIcon' | 'BookmarkIcon' | 'BulbIcon' | 'ButterflyIcon' | 'CactusIcon' | 'CakeIcon' | 'CalendarIcon' | 'CameraIcon' | 'CandleIcon' | 'CarIcon' | 'CartIcon' | 'CatIcon' | 'ChatIcon' | 'CheckIcon' | 'CherryIcon' | 'ClockIcon' | 'CloseIcon' | 'CloudIcon' | 'CodeIcon' | 'CoffeeIcon' | 'CompassIcon' | 'CreditCardIcon' | 'DogIcon' | 'DonutIcon' | 'DownloadIcon' | 'EditIcon' | 'EyeIcon' | 'FileIcon' | 'FishIcon' | 'FlagIcon' | 'FlameIcon' | 'FlowerIcon' | 'FolderIcon' | 'FoxIcon' | 'FrogIcon' | 'GiftIcon' | 'GlobeIcon' | 'HeadphonesIcon' | 'HeartIcon' | 'HomeIcon' | 'IcecreamIcon' | 'ImageIcon' | 'KeyIcon' | 'LadybugIcon' | 'LampIcon' | 'LeafIcon' | 'LemonIcon' | 'LocationIcon' | 'LockIcon' | 'MagnetIcon' | 'MailIcon' | 'MapIcon' | 'MicIcon' | 'MoonIcon' | 'MushroomIcon' | 'MusicIcon' | 'OwlIcon' | 'PaintbrushIcon' | 'PencilIcon' | 'PenguinIcon' | 'PhoneIcon' | 'PlayIcon' | 'PlusIcon' | 'RabbitIcon' | 'RainbowIcon' | 'RefreshIcon' | 'RocketIcon' | 'SailboatIcon' | 'SaveIcon' | 'SearchIcon' | 'SettingsIcon' | 'ShareIcon' | 'ShoppingBagIcon' | 'SmileIcon' | 'SnailIcon' | 'SnowflakeIcon' | 'StarIcon' | 'StrawberryIcon' | 'SunIcon' | 'TagIcon' | 'ThermometerIcon' | 'ThumbsUpIcon' | 'TrainIcon' | 'TrashIcon' | 'TreeIcon' | 'TrophyIcon' | 'UmbrellaIcon' | 'UploadIcon' | 'UserIcon' | 'VideoIcon' | 'WatermelonIcon' | 'WifiIcon';
33
- /** Naive Icons 图标组件类型 */
22
+ /** 所有图标组件名(共 105 个) */
23
+ type IconName = 'AirplaneIconIcon' | 'AnchorIconIcon' | 'AppleIconIcon' | 'ArrowDownIconIcon' | 'ArrowLeftIconIcon' | 'ArrowRightIconIcon' | 'ArrowUpIconIcon' | 'BalloonIconIcon' | 'BearIconIcon' | 'BeeIconIcon' | 'BellIconIcon' | 'BicycleIconIcon' | 'BirdIconIcon' | 'BookIconIcon' | 'BookmarkIconIcon' | 'BulbIconIcon' | 'ButterflyIconIcon' | 'CactusIconIcon' | 'CakeIconIcon' | 'CalendarIconIcon' | 'CameraIconIcon' | 'CandleIconIcon' | 'CarIconIcon' | 'CartIconIcon' | 'CatIconIcon' | 'ChatIconIcon' | 'CheckIconIcon' | 'CherryIconIcon' | 'ClockIconIcon' | 'CloseIconIcon' | 'CloudIconIcon' | 'CodeIconIcon' | 'CoffeeIconIcon' | 'CompassIconIcon' | 'CreditCardIconIcon' | 'DogIconIcon' | 'DonutIconIcon' | 'DownloadIconIcon' | 'EditIconIcon' | 'EyeIconIcon' | 'FileIconIcon' | 'FishIconIcon' | 'FlagIconIcon' | 'FlameIconIcon' | 'FlowerIconIcon' | 'FolderIconIcon' | 'FoxIconIcon' | 'FrogIconIcon' | 'GiftIconIcon' | 'GlobeIconIcon' | 'HeadphonesIconIcon' | 'HeartIconIcon' | 'HomeIconIcon' | 'IcecreamIconIcon' | 'ImageIconIcon' | 'KeyIconIcon' | 'LadybugIconIcon' | 'LampIconIcon' | 'LeafIconIcon' | 'LemonIconIcon' | 'LocationIconIcon' | 'LockIconIcon' | 'MagnetIconIcon' | 'MailIconIcon' | 'MapIconIcon' | 'MicIconIcon' | 'MoonIconIcon' | 'MushroomIconIcon' | 'MusicIconIcon' | 'OwlIconIcon' | 'PaintbrushIconIcon' | 'PencilIconIcon' | 'PenguinIconIcon' | 'PhoneIconIcon' | 'PlayIconIcon' | 'PlusIconIcon' | 'RabbitIconIcon' | 'RainbowIconIcon' | 'RefreshIconIcon' | 'RocketIconIcon' | 'SailboatIconIcon' | 'SaveIconIcon' | 'SearchIconIcon' | 'SettingsIconIcon' | 'ShareIconIcon' | 'ShoppingBagIconIcon' | 'SmileIconIcon' | 'SnailIconIcon' | 'SnowflakeIconIcon' | 'StarIconIcon' | 'StrawberryIconIcon' | 'SunIconIcon' | 'TagIconIcon' | 'ThermometerIconIcon' | 'ThumbsUpIconIcon' | 'TrainIconIcon' | 'TrashIconIcon' | 'TreeIconIcon' | 'TrophyIconIcon' | 'UmbrellaIconIcon' | 'UploadIconIcon' | 'UserIconIcon' | 'VideoIconIcon' | 'WatermelonIconIcon' | 'WifiIconIcon';
24
+ /** 图标组件类型 */
34
25
  type IconComponent = FC<IconProps>;
35
- /** Naive Icons 图标分类 */
36
- declare const ICON_CATEGORIES: readonly ["interface", "action", "media", "navigation", "communication", "nature", "animals", "food", "objects", "transport", "emoji"];
37
- type IconCategory = (typeof ICON_CATEGORIES)[number];
38
26
 
39
27
  declare const AirplaneIcon: (props: IconProps) => react.JSX.Element;
40
28
 
@@ -42,6 +30,14 @@ declare const AnchorIcon: (props: IconProps) => react.JSX.Element;
42
30
 
43
31
  declare const AppleIcon: (props: IconProps) => react.JSX.Element;
44
32
 
33
+ declare const ArrowDownIcon: (props: IconProps) => react.JSX.Element;
34
+
35
+ declare const ArrowLeftIcon: (props: IconProps) => react.JSX.Element;
36
+
37
+ declare const ArrowRightIcon: (props: IconProps) => react.JSX.Element;
38
+
39
+ declare const ArrowUpIcon: (props: IconProps) => react.JSX.Element;
40
+
45
41
  declare const BalloonIcon: (props: IconProps) => react.JSX.Element;
46
42
 
47
43
  declare const BearIcon: (props: IconProps) => react.JSX.Element;
@@ -238,4 +234,4 @@ declare const WatermelonIcon: (props: IconProps) => react.JSX.Element;
238
234
 
239
235
  declare const WifiIcon: (props: IconProps) => react.JSX.Element;
240
236
 
241
- export { AirplaneIcon, AnchorIcon, AppleIcon, BalloonIcon, BearIcon, BeeIcon, BellIcon, BicycleIcon, BirdIcon, BookIcon, BookmarkIcon, BulbIcon, ButterflyIcon, CactusIcon, CakeIcon, CalendarIcon, CameraIcon, CandleIcon, CarIcon, CartIcon, CatIcon, ChatIcon, CheckIcon, CherryIcon, ClockIcon, CloseIcon, CloudIcon, CodeIcon, CoffeeIcon, CompassIcon, CreditCardIcon, DogIcon, DonutIcon, DownloadIcon, EditIcon, EyeIcon, FileIcon, FishIcon, FlagIcon, FlameIcon, FlowerIcon, FolderIcon, FoxIcon, FrogIcon, GiftIcon, GlobeIcon, HeadphonesIcon, HeartIcon, HomeIcon, ICON_CATEGORIES, IcecreamIcon, type IconCategory, type IconComponent, type IconName, type IconProps, ImageIcon, KeyIcon, LadybugIcon, LampIcon, LeafIcon, LemonIcon, LocationIcon, LockIcon, MagnetIcon, MailIcon, MapIcon, MicIcon, MoonIcon, MushroomIcon, MusicIcon, NAIVE_PALETTE, OwlIcon, PaintbrushIcon, type PaletteColor, PencilIcon, PenguinIcon, PhoneIcon, PlayIcon, PlusIcon, RabbitIcon, RainbowIcon, RefreshIcon, RocketIcon, SailboatIcon, SaveIcon, SearchIcon, SettingsIcon, ShareIcon, ShoppingBagIcon, SmileIcon, SnailIcon, SnowflakeIcon, StarIcon, StrawberryIcon, SunIcon, TagIcon, ThermometerIcon, ThumbsUpIcon, TrainIcon, TrashIcon, TreeIcon, TrophyIcon, UmbrellaIcon, UploadIcon, UserIcon, VideoIcon, WatermelonIcon, WifiIcon };
237
+ export { AirplaneIcon, AnchorIcon, AppleIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, BalloonIcon, BearIcon, BeeIcon, BellIcon, BicycleIcon, BirdIcon, BookIcon, BookmarkIcon, BulbIcon, ButterflyIcon, CactusIcon, CakeIcon, CalendarIcon, CameraIcon, CandleIcon, CarIcon, CartIcon, CatIcon, ChatIcon, CheckIcon, CherryIcon, ClockIcon, CloseIcon, CloudIcon, CodeIcon, CoffeeIcon, CompassIcon, CreditCardIcon, DogIcon, DonutIcon, DownloadIcon, EditIcon, EyeIcon, FileIcon, FishIcon, FlagIcon, FlameIcon, FlowerIcon, FolderIcon, FoxIcon, FrogIcon, GiftIcon, GlobeIcon, HeadphonesIcon, HeartIcon, HomeIcon, IcecreamIcon, type IconComponent, type IconName, type IconProps, ImageIcon, KeyIcon, LadybugIcon, LampIcon, LeafIcon, LemonIcon, LocationIcon, LockIcon, MagnetIcon, MailIcon, MapIcon, MicIcon, MoonIcon, MushroomIcon, MusicIcon, NAIVE_PALETTE, OwlIcon, PaintbrushIcon, type PaletteColor, PencilIcon, PenguinIcon, PhoneIcon, PlayIcon, PlusIcon, RabbitIcon, RainbowIcon, RefreshIcon, RocketIcon, SailboatIcon, SaveIcon, SearchIcon, SettingsIcon, ShareIcon, ShoppingBagIcon, SmileIcon, SnailIcon, SnowflakeIcon, StarIcon, StrawberryIcon, SunIcon, TagIcon, ThermometerIcon, ThumbsUpIcon, TrainIcon, TrashIcon, TreeIcon, TrophyIcon, UmbrellaIcon, UploadIcon, UserIcon, VideoIcon, WatermelonIcon, WifiIcon };
package/dist/index.js CHANGED
@@ -4,17 +4,13 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
 
5
5
  // src/iconProps.ts
6
6
  function normalizeIconProps(props) {
7
- const { size = 24, color, strokeWidth, fill = "none", ...rest } = props;
7
+ const { size = 24, color = "#2A2A2A", strokeWidth = 3.5, fill = "none", ...rest } = props;
8
8
  const svgProps = { ...rest };
9
9
  svgProps.width = size;
10
10
  svgProps.height = size;
11
11
  svgProps.fill = fill;
12
- if (color !== void 0 && color !== null) {
13
- svgProps.stroke = color;
14
- }
15
- if (strokeWidth !== void 0 && strokeWidth !== null) {
16
- svgProps.strokeWidth = strokeWidth;
17
- }
12
+ svgProps.stroke = color;
13
+ svgProps.strokeWidth = strokeWidth;
18
14
  return svgProps;
19
15
  }
20
16
  var AirplaneIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
@@ -36,6 +32,22 @@ var AppleIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0
36
32
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "20", cy: "26", r: "1.5", fill: "#2A2A2A" }),
37
33
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "28", cy: "26", r: "1.5", fill: "#2A2A2A" })
38
34
  ] });
35
+ var ArrowDownIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
36
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M24 9 L24 30", stroke: "#2A2A2A", "stroke-width": "4" }),
37
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 26 L24 40 L33 26 Z", fill: "#E76F51" })
38
+ ] });
39
+ var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
40
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M39 24 L18 24", stroke: "#2A2A2A", "stroke-width": "4" }),
41
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M23 15 L9 24 L23 33 Z", fill: "#E76F51" })
42
+ ] });
43
+ var ArrowRightIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
44
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 24 L30 24", stroke: "#2A2A2A", "stroke-width": "4" }),
45
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M25 15 L39 24 L25 33 Z", fill: "#E76F51" })
46
+ ] });
47
+ var ArrowUpIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
48
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M24 39 L24 18", stroke: "#2A2A2A", "stroke-width": "4" }),
49
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 22 L24 8 L33 22 Z", fill: "#E76F51" })
50
+ ] });
39
51
  var BalloonIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
40
52
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M24 5 C 14 5 9 13 9 19 C 9 26 15 31 24 31 C 33 31 39 26 39 19 C 39 13 34 5 24 5 Z", fill: "#E76F51" }),
41
53
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 31 L 27 31 L 24 35 Z", fill: "#E76F51" }),
@@ -730,11 +742,11 @@ var UploadIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0
730
742
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "8", y: "38", width: "32", height: "6", rx: "2", fill: "#2A9D8F" })
731
743
  ] });
732
744
  var UserIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
733
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "24", cy: "17", r: "8", fill: "#E76F51" }),
734
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 42 C 8 32 14 28 24 28 C 34 28 40 32 40 42", fill: "#2A9D8F" }),
735
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "21", cy: "17", r: "1.5", fill: "#2A2A2A" }),
736
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "27", cy: "17", r: "1.5", fill: "#2A2A2A" }),
737
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M21 21 Q 24 23 27 21", stroke: "#2A2A2A", fill: "none" })
745
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "24", cy: "16", r: "8.5", fill: "#E76F51" }),
746
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7 43 C 7 33 14 29 24 29 C 34 29 41 33 41 43", fill: "#2A9D8F" }),
747
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "21", cy: "16", r: "1.6", fill: "#2A2A2A" }),
748
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "27", cy: "16", r: "1.6", fill: "#2A2A2A" }),
749
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20.5 20 Q 24 23 27.5 20", stroke: "#2A2A2A", fill: "none" })
738
750
  ] });
739
751
  var VideoIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { viewBox: "0 0 48 48", xmlns: "http://www.w3.org/2000/svg", fill: "none", strokeLinecap: "round", strokeLinejoin: "round", ...normalizeIconProps(props), children: [
740
752
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "4", y: "14", width: "28", height: "20", rx: "4", fill: "#264653" }),
@@ -769,23 +781,14 @@ var NAIVE_PALETTE = {
769
781
  brown: "#8B5E3C",
770
782
  cream: "#FAEDCD"
771
783
  };
772
- var ICON_CATEGORIES = [
773
- "interface",
774
- "action",
775
- "media",
776
- "navigation",
777
- "communication",
778
- "nature",
779
- "animals",
780
- "food",
781
- "objects",
782
- "transport",
783
- "emoji"
784
- ];
785
784
 
786
785
  exports.AirplaneIcon = AirplaneIcon;
787
786
  exports.AnchorIcon = AnchorIcon;
788
787
  exports.AppleIcon = AppleIcon;
788
+ exports.ArrowDownIcon = ArrowDownIcon;
789
+ exports.ArrowLeftIcon = ArrowLeftIcon;
790
+ exports.ArrowRightIcon = ArrowRightIcon;
791
+ exports.ArrowUpIcon = ArrowUpIcon;
789
792
  exports.BalloonIcon = BalloonIcon;
790
793
  exports.BearIcon = BearIcon;
791
794
  exports.BeeIcon = BeeIcon;
@@ -832,7 +835,6 @@ exports.GlobeIcon = GlobeIcon;
832
835
  exports.HeadphonesIcon = HeadphonesIcon;
833
836
  exports.HeartIcon = HeartIcon;
834
837
  exports.HomeIcon = HomeIcon;
835
- exports.ICON_CATEGORIES = ICON_CATEGORIES;
836
838
  exports.IcecreamIcon = IcecreamIcon;
837
839
  exports.ImageIcon = ImageIcon;
838
840
  exports.KeyIcon = KeyIcon;