@allbluecn/web-app 0.11.4 → 0.12.1
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/package.json +36 -26
- package/src/components/shared-kit/icons/__tests__/lucide-icon-picker.test.tsx +83 -5
- package/src/components/shared-kit/icons/__tests__/lucide-lab-icons.test.ts +179 -0
- package/src/components/shared-kit/icons/lucide-icon-picker/icon-set.ts +47 -0
- package/src/components/shared-kit/icons/lucide-icon-picker/lab-icons.ts +463 -0
- package/src/components/shared-kit/icons/lucide-icon-picker/lucide-icon-by-name.tsx +30 -4
- package/src/components/shared-kit/icons/lucide-icon-picker/panel.tsx +169 -43
- package/src/lib/changelog/sdk-versions.ts +2 -2
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
+
// AllBlue - 理想之海
|
|
3
|
+
// Copyright (C) 2026 AllBlue Contributors
|
|
4
|
+
//
|
|
5
|
+
// This program is free software: you can redistribute it and/or modify
|
|
6
|
+
// it under the terms of the GNU Affero General Public License as published by
|
|
7
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
// (at your option) any later version.
|
|
9
|
+
//
|
|
10
|
+
// This program is distributed in the hope that it will be useful,
|
|
11
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
// GNU Affero General Public License for more details.
|
|
14
|
+
//
|
|
15
|
+
// You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
// Lucide Lab(实验性)图标名单:@lucide/lab 全量减去 *-off 关闭变体。
|
|
19
|
+
// category 取自 lucide monorepo tag @lucide/lab@0.2.0 的 lab/<name>.json 官方 categories,
|
|
20
|
+
// 取优先级分类(FOOD/GAMING/HOME/ANIMALS/NATURE/PEOPLE/SEASONS)中的首个;无命中为 "other"。
|
|
21
|
+
// 图标节点用 createLucideIcon 包装成标准 LucideIcon 组件,与精选集渲染路径一致。
|
|
22
|
+
// zh 关键词人工校对,机械禁则由 lucide-lab-icons.test.ts 校验。
|
|
23
|
+
|
|
24
|
+
import { createLucideIcon } from "lucide-react";
|
|
25
|
+
import {
|
|
26
|
+
ampersandSquare, appleCore, arrowsUpDownSquare, astronautHelmet, atSignCircle, atSignSquare, avocado, babyPacifier,
|
|
27
|
+
bacon, bagHand, barbecue, barberPole, barn, baseball, baselineSquare, basketball, batBall, bathBubble, beachBall,
|
|
28
|
+
bearFace, bedBunk, bee, beeHive, beetleScarab, bellConciergeDot, belt, boldSquare, bottleBaby, bottleChampagne,
|
|
29
|
+
bottleDispenser, bottlePerfume, bottlePlastic, bottleSpray, bottleToothbrushComb, bowlChopsticks, bowlOverflow,
|
|
30
|
+
bowling, braSports, briefcasePlus, broom, bucket, bullHead, burger, butterfly, cabin, cabinetFiling, cactus,
|
|
31
|
+
candleHolder, candleHolderLit, candleTealight, candleTealightLit, candlestick, candlestickBig, candlestickBigLit,
|
|
32
|
+
candlestickLit, cardCredit, cardSd, carton, caseCamel, caseKebab, caseSnake, caseSnakeUpper, catBig, cauldron, cent,
|
|
33
|
+
centCircle, centSquare, chairsTableParasol, chairsTablePlatter, chameleon, cheese, chest, chevronsUpDownSquare, cloth,
|
|
34
|
+
coatHanger, cocktail, coconut, coffeeBean, coffeemaker, coinsExchange, coinsStack, copyCode, copyDown, copyFilePath,
|
|
35
|
+
copyImage, copyText, copyType, cowHead, cowUdderDroplets, crab, cricketBall, cricketWicket, crossSquare, crosshair2,
|
|
36
|
+
crosshair2Dot, crosshairPlus, crosshairPlusDot, crosshairSquare, cupSaucer, cupToGo, currencySquare, deskLamp, diaper,
|
|
37
|
+
dishwasher, dollarSignSquare, doorbellIntercom, dress, eggCup, elephant, elephantFace, escalatorArrowDownLeft,
|
|
38
|
+
escalatorArrowUpRight, euroCircle, euroSquare, faceAlien, fanHandheld, farm, faucet, featherPlus, featherSquare,
|
|
39
|
+
featherText, flippers, floorPlan, floppyDisk2, floppyDiskRear, floppyDisks2, floppyDisksRear, flowerLotus, flowerPot,
|
|
40
|
+
flowerRose, flowerRoseSingle, flowerTulip, football, footballGoal, footballHelmet, foxFaceTail, frogFace, fruit,
|
|
41
|
+
garlic, gearbox, gearboxSquare, gemRing, glassesSquare, glassesSun, goalNet, goblet, gobletCrack, golfDriver,
|
|
42
|
+
gridLines, gridLinesOffset, hairdryer, hatBaseball, hatBeanie, hatBowler, hatTop, headingCircle, headingSquare,
|
|
43
|
+
hedgehog, helmetDiving, hexagons3, hexagons7, highHeel, hockey, hockeyMask, horseHead, hotDog, houseManor, houseRoof,
|
|
44
|
+
houses, iceHockey, iceSkate, igloo, indianRupeeCircle, indianRupeeSquare, intercom, iron, ironingBoard, italicSquare,
|
|
45
|
+
jacket, jacketSports, japaneseYenCircle, japaneseYenSquare, jar, jug, kebab, kettle, kettleElectric, kiwi,
|
|
46
|
+
layoutGridMoveHorizontal, layoutGridMoveVertical, layoutGridPlus, layoutListMove, lemon, lifeJacket, ligatureSquare,
|
|
47
|
+
lightSwitch, lingerie, locateSquare, luggageCabin, lunchBox, mailboxFlag, maskSnorkel, mealBox, mortarPestle,
|
|
48
|
+
motorRacingHelmet, mugTeabag, mustache, olive, onion, owl, pacMan, pacManGhost, pancakes, peace, peach, pear, penguin,
|
|
49
|
+
pepperChilli, pie, pig, pigHead, pillow, pilot, pinSafety, pinSafetyOpen, pineappleRing, planet, policeCap, pond,
|
|
50
|
+
poundSterlingCircle, poundSterlingSquare, pram, pretzel, pumpkin, razor, razorBlade, reelThread, refrigeratorFreezer,
|
|
51
|
+
removeFormattingSquare, rugby, russianRubleCircle, russianRubleSquare, sausage, scarf, scissorsHairComb, shark,
|
|
52
|
+
shaveFace, shirtFoldedButtons, shirtLongSleeve, shirtTRuler, shirtTVNeck, shorts, shortsBoxer, shovelDig, shower,
|
|
53
|
+
skirt, skis, slotCard, slotCardCredit, slotDisc, sneaker, snowboard, snowman, soapBar, soccerBall, soccerPitch,
|
|
54
|
+
socketEu, socketUk, socketUsa, socks, spider, spiderWeb, stairs, stairsArch, stairsArrowDownLeft, stairsArrowUpRight,
|
|
55
|
+
starNorth, steeringWheel, strawberry, strikethroughSquare, stroller, sunloungerParasolSun,
|
|
56
|
+
sunloungerParasolSunPalmTree, sunloungerParasolTable, surfboard, sushi, sushi2, sushi3, sushiChopsticks, sweater,
|
|
57
|
+
swissFrancCircle, swissFrancSquare, tab, tabArrowDown, tabArrowUpRight, tabDot, tabPlus, tabSlash, tabText, tabX,
|
|
58
|
+
targetArrow, tennisBall, tennisRacket, textSquare, tie, tieBow, tieBowRibbon, tire, toast, toaster, toiletRoll,
|
|
59
|
+
toolbox2, topCrop, towelFolded, treePalmIslandSun, treesForest, triangleStripes, trousers, tuxedo, typeSquare, ufo,
|
|
60
|
+
underlineSquare, unicornHead, venn, vest, waffle, wardrobe, watchActivity, watchAlarm, watchBars, watchCharging,
|
|
61
|
+
watchCheck, watchLoader, watchMusic, watchSquare, watchSquareAlarm, watchText, watermelon, waveCircle, wavesBirds,
|
|
62
|
+
wavesSharkFin, whale, whaleNarwhal, wheel, whisk, whiskForkKnife, whisks, windmill, wineGlassBottle, yarnBall, yinYang,
|
|
63
|
+
} from "@lucide/lab";
|
|
64
|
+
|
|
65
|
+
import type { CuratedIcon } from "./icon-data";
|
|
66
|
+
|
|
67
|
+
/** Lab 图标分类:优先级分类(靠前显示)+ other(其余) */
|
|
68
|
+
export type LabCategory =
|
|
69
|
+
| "food-beverage"
|
|
70
|
+
| "gaming"
|
|
71
|
+
| "home"
|
|
72
|
+
| "animals"
|
|
73
|
+
| "nature"
|
|
74
|
+
| "people"
|
|
75
|
+
| "seasons"
|
|
76
|
+
| "other";
|
|
77
|
+
|
|
78
|
+
export interface LabIcon extends CuratedIcon {
|
|
79
|
+
/** lucide.dev 官方分类(优先级分类取首个命中) */
|
|
80
|
+
category: LabCategory;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** 优先级分类展示顺序(用户指定:食物 / 游戏 / 家居 / 动物 / 自然 / 人物 / 季节) */
|
|
84
|
+
export const LAB_PRIORITY_CATEGORIES: LabCategory[] = [
|
|
85
|
+
"food-beverage",
|
|
86
|
+
"gaming",
|
|
87
|
+
"home",
|
|
88
|
+
"animals",
|
|
89
|
+
"nature",
|
|
90
|
+
"people",
|
|
91
|
+
"seasons",
|
|
92
|
+
];
|
|
93
|
+
|
|
94
|
+
export const LAB_ICONS: LabIcon[] = [
|
|
95
|
+
{ name: "apple-core", Icon: createLucideIcon("apple-core", appleCore), category: "food-beverage", zh: ["苹果核", "果核"] },
|
|
96
|
+
{ name: "avocado", Icon: createLucideIcon("avocado", avocado), category: "food-beverage", zh: ["鳄梨", "牛油果"] },
|
|
97
|
+
{ name: "bacon", Icon: createLucideIcon("bacon", bacon), category: "food-beverage", zh: ["培根", "火腿片"] },
|
|
98
|
+
{ name: "barbecue", Icon: createLucideIcon("barbecue", barbecue), category: "food-beverage", zh: ["烧烤", "烤肉"] },
|
|
99
|
+
{ name: "bee-hive", Icon: createLucideIcon("bee-hive", beeHive), category: "food-beverage", zh: ["蜂窝", "蜂巢"] },
|
|
100
|
+
{ name: "belt", Icon: createLucideIcon("belt", belt), category: "food-beverage", zh: ["腰带", "皮带"] },
|
|
101
|
+
{ name: "bottle-champagne", Icon: createLucideIcon("bottle-champagne", bottleChampagne), category: "food-beverage", zh: ["香槟瓶", "酒瓶"] },
|
|
102
|
+
{ name: "bottle-plastic", Icon: createLucideIcon("bottle-plastic", bottlePlastic), category: "food-beverage", zh: ["塑料瓶", "矿泉水瓶"] },
|
|
103
|
+
{ name: "bowl-chopsticks", Icon: createLucideIcon("bowl-chopsticks", bowlChopsticks), category: "food-beverage", zh: ["碗筷", "筷子"] },
|
|
104
|
+
{ name: "bowl-overflow", Icon: createLucideIcon("bowl-overflow", bowlOverflow), category: "food-beverage", zh: ["满碗", "盛满"] },
|
|
105
|
+
{ name: "bull-head", Icon: createLucideIcon("bull-head", bullHead), category: "food-beverage", zh: ["牛头"] },
|
|
106
|
+
{ name: "burger", Icon: createLucideIcon("burger", burger), category: "food-beverage", zh: ["汉堡", "汉堡包"] },
|
|
107
|
+
{ name: "carton", Icon: createLucideIcon("carton", carton), category: "food-beverage", zh: ["纸盒", "牛奶盒"] },
|
|
108
|
+
{ name: "cauldron", Icon: createLucideIcon("cauldron", cauldron), category: "food-beverage", zh: ["大锅", "坩埚"] },
|
|
109
|
+
{ name: "chairs-table-platter", Icon: createLucideIcon("chairs-table-platter", chairsTablePlatter), category: "food-beverage", zh: ["桌椅餐盘", "餐桌"] },
|
|
110
|
+
{ name: "cheese", Icon: createLucideIcon("cheese", cheese), category: "food-beverage", zh: ["奶酪", "芝士"] },
|
|
111
|
+
{ name: "cocktail", Icon: createLucideIcon("cocktail", cocktail), category: "food-beverage", zh: ["鸡尾酒"] },
|
|
112
|
+
{ name: "coconut", Icon: createLucideIcon("coconut", coconut), category: "food-beverage", zh: ["椰子"] },
|
|
113
|
+
{ name: "coffee-bean", Icon: createLucideIcon("coffee-bean", coffeeBean), category: "food-beverage", zh: ["咖啡豆"] },
|
|
114
|
+
{ name: "coffeemaker", Icon: createLucideIcon("coffeemaker", coffeemaker), category: "food-beverage", zh: ["咖啡机"] },
|
|
115
|
+
{ name: "cow-head", Icon: createLucideIcon("cow-head", cowHead), category: "food-beverage", zh: ["牛头", "奶牛"] },
|
|
116
|
+
{ name: "cow-udder-droplets", Icon: createLucideIcon("cow-udder-droplets", cowUdderDroplets), category: "food-beverage", zh: ["挤奶", "奶牛"] },
|
|
117
|
+
{ name: "cup-saucer", Icon: createLucideIcon("cup-saucer", cupSaucer), category: "food-beverage", zh: ["茶杯托盘"] },
|
|
118
|
+
{ name: "cup-to-go", Icon: createLucideIcon("cup-to-go", cupToGo), category: "food-beverage", zh: ["外带杯", "纸杯"] },
|
|
119
|
+
{ name: "egg-cup", Icon: createLucideIcon("egg-cup", eggCup), category: "food-beverage", zh: ["蛋杯"] },
|
|
120
|
+
{ name: "farm", Icon: createLucideIcon("farm", farm), category: "food-beverage", zh: ["农场"] },
|
|
121
|
+
{ name: "faucet", Icon: createLucideIcon("faucet", faucet), category: "food-beverage", zh: ["水龙头", "水阀"] },
|
|
122
|
+
{ name: "fruit", Icon: createLucideIcon("fruit", fruit), category: "food-beverage", zh: ["水果"] },
|
|
123
|
+
{ name: "garlic", Icon: createLucideIcon("garlic", garlic), category: "food-beverage", zh: ["大蒜"] },
|
|
124
|
+
{ name: "goblet", Icon: createLucideIcon("goblet", goblet), category: "food-beverage", zh: ["高脚杯", "酒杯"] },
|
|
125
|
+
{ name: "goblet-crack", Icon: createLucideIcon("goblet-crack", gobletCrack), category: "food-beverage", zh: ["裂杯"] },
|
|
126
|
+
{ name: "hexagons-3", Icon: createLucideIcon("hexagons-3", hexagons3), category: "food-beverage", zh: ["蜂巢", "六边形"] },
|
|
127
|
+
{ name: "hexagons-7", Icon: createLucideIcon("hexagons-7", hexagons7), category: "food-beverage", zh: ["蜂巢", "六边形"] },
|
|
128
|
+
{ name: "hot-dog", Icon: createLucideIcon("hot-dog", hotDog), category: "food-beverage", zh: ["热狗"] },
|
|
129
|
+
{ name: "jar", Icon: createLucideIcon("jar", jar), category: "food-beverage", zh: ["罐子", "玻璃罐"] },
|
|
130
|
+
{ name: "jug", Icon: createLucideIcon("jug", jug), category: "food-beverage", zh: ["水壶", "水罐"] },
|
|
131
|
+
{ name: "kebab", Icon: createLucideIcon("kebab", kebab), category: "food-beverage", zh: ["烤串", "羊肉串"] },
|
|
132
|
+
{ name: "kettle", Icon: createLucideIcon("kettle", kettle), category: "food-beverage", zh: ["水壶", "茶壶"] },
|
|
133
|
+
{ name: "kettle-electric", Icon: createLucideIcon("kettle-electric", kettleElectric), category: "food-beverage", zh: ["电水壶"] },
|
|
134
|
+
{ name: "kiwi", Icon: createLucideIcon("kiwi", kiwi), category: "food-beverage", zh: ["猕猴桃", "奇异果"] },
|
|
135
|
+
{ name: "lemon", Icon: createLucideIcon("lemon", lemon), category: "food-beverage", zh: ["柠檬"] },
|
|
136
|
+
{ name: "lunch-box", Icon: createLucideIcon("lunch-box", lunchBox), category: "food-beverage", zh: ["饭盒"] },
|
|
137
|
+
{ name: "meal-box", Icon: createLucideIcon("meal-box", mealBox), category: "food-beverage", zh: ["餐盒"] },
|
|
138
|
+
{ name: "mortar-pestle", Icon: createLucideIcon("mortar-pestle", mortarPestle), category: "food-beverage", zh: ["研钵", "捣药罐"] },
|
|
139
|
+
{ name: "mug-teabag", Icon: createLucideIcon("mug-teabag", mugTeabag), category: "food-beverage", zh: ["茶包杯", "茶杯"] },
|
|
140
|
+
{ name: "olive", Icon: createLucideIcon("olive", olive), category: "food-beverage", zh: ["橄榄"] },
|
|
141
|
+
{ name: "onion", Icon: createLucideIcon("onion", onion), category: "food-beverage", zh: ["洋葱"] },
|
|
142
|
+
{ name: "pancakes", Icon: createLucideIcon("pancakes", pancakes), category: "food-beverage", zh: ["煎饼", "松饼"] },
|
|
143
|
+
{ name: "peach", Icon: createLucideIcon("peach", peach), category: "food-beverage", zh: ["桃子"] },
|
|
144
|
+
{ name: "pear", Icon: createLucideIcon("pear", pear), category: "food-beverage", zh: ["梨"] },
|
|
145
|
+
{ name: "pepper-chilli", Icon: createLucideIcon("pepper-chilli", pepperChilli), category: "food-beverage", zh: ["辣椒"] },
|
|
146
|
+
{ name: "pie", Icon: createLucideIcon("pie", pie), category: "food-beverage", zh: ["派", "馅饼"] },
|
|
147
|
+
{ name: "pig", Icon: createLucideIcon("pig", pig), category: "food-beverage", zh: ["猪"] },
|
|
148
|
+
{ name: "pig-head", Icon: createLucideIcon("pig-head", pigHead), category: "food-beverage", zh: ["猪头"] },
|
|
149
|
+
{ name: "pineapple-ring", Icon: createLucideIcon("pineapple-ring", pineappleRing), category: "food-beverage", zh: ["菠萝圈", "凤梨"] },
|
|
150
|
+
{ name: "pretzel", Icon: createLucideIcon("pretzel", pretzel), category: "food-beverage", zh: ["椒盐卷饼", "扭结饼"] },
|
|
151
|
+
{ name: "pumpkin", Icon: createLucideIcon("pumpkin", pumpkin), category: "food-beverage", zh: ["南瓜"] },
|
|
152
|
+
{ name: "refrigerator-freezer", Icon: createLucideIcon("refrigerator-freezer", refrigeratorFreezer), category: "food-beverage", zh: ["冰箱", "冰柜"] },
|
|
153
|
+
{ name: "sausage", Icon: createLucideIcon("sausage", sausage), category: "food-beverage", zh: ["香肠"] },
|
|
154
|
+
{ name: "strawberry", Icon: createLucideIcon("strawberry", strawberry), category: "food-beverage", zh: ["草莓"] },
|
|
155
|
+
{ name: "sushi", Icon: createLucideIcon("sushi", sushi), category: "food-beverage", zh: ["寿司"] },
|
|
156
|
+
{ name: "sushi-2", Icon: createLucideIcon("sushi-2", sushi2), category: "food-beverage", zh: ["寿司"] },
|
|
157
|
+
{ name: "sushi-3", Icon: createLucideIcon("sushi-3", sushi3), category: "food-beverage", zh: ["寿司"] },
|
|
158
|
+
{ name: "sushi-chopsticks", Icon: createLucideIcon("sushi-chopsticks", sushiChopsticks), category: "food-beverage", zh: ["寿司筷子"] },
|
|
159
|
+
{ name: "toast", Icon: createLucideIcon("toast", toast), category: "food-beverage", zh: ["吐司", "面包片"] },
|
|
160
|
+
{ name: "toaster", Icon: createLucideIcon("toaster", toaster), category: "food-beverage", zh: ["烤面包机"] },
|
|
161
|
+
{ name: "waffle", Icon: createLucideIcon("waffle", waffle), category: "food-beverage", zh: ["华夫饼"] },
|
|
162
|
+
{ name: "watermelon", Icon: createLucideIcon("watermelon", watermelon), category: "food-beverage", zh: ["西瓜"] },
|
|
163
|
+
{ name: "whisk", Icon: createLucideIcon("whisk", whisk), category: "food-beverage", zh: ["打蛋器"] },
|
|
164
|
+
{ name: "whisk-fork-knife", Icon: createLucideIcon("whisk-fork-knife", whiskForkKnife), category: "food-beverage", zh: ["餐具组合"] },
|
|
165
|
+
{ name: "whisks", Icon: createLucideIcon("whisks", whisks), category: "food-beverage", zh: ["打蛋器"] },
|
|
166
|
+
{ name: "wine-glass-bottle", Icon: createLucideIcon("wine-glass-bottle", wineGlassBottle), category: "food-beverage", zh: ["酒瓶酒杯"] },
|
|
167
|
+
{ name: "astronaut-helmet", Icon: createLucideIcon("astronaut-helmet", astronautHelmet), category: "gaming", zh: ["宇航头盔"] },
|
|
168
|
+
{ name: "baseball", Icon: createLucideIcon("baseball", baseball), category: "gaming", zh: ["棒球"] },
|
|
169
|
+
{ name: "basketball", Icon: createLucideIcon("basketball", basketball), category: "gaming", zh: ["篮球"] },
|
|
170
|
+
{ name: "bat-ball", Icon: createLucideIcon("bat-ball", batBall), category: "gaming", zh: ["球棒", "棒球棒"] },
|
|
171
|
+
{ name: "beach-ball", Icon: createLucideIcon("beach-ball", beachBall), category: "gaming", zh: ["沙滩球"] },
|
|
172
|
+
{ name: "bowling", Icon: createLucideIcon("bowling", bowling), category: "gaming", zh: ["保龄球"] },
|
|
173
|
+
{ name: "briefcase-plus", Icon: createLucideIcon("briefcase-plus", briefcasePlus), category: "gaming", zh: ["急救箱", "医疗包"] },
|
|
174
|
+
{ name: "chest", Icon: createLucideIcon("chest", chest), category: "gaming", zh: ["宝箱"] },
|
|
175
|
+
{ name: "coins-stack", Icon: createLucideIcon("coins-stack", coinsStack), category: "gaming", zh: ["金币堆", "钱堆"] },
|
|
176
|
+
{ name: "cricket-ball", Icon: createLucideIcon("cricket-ball", cricketBall), category: "gaming", zh: ["板球"] },
|
|
177
|
+
{ name: "cricket-wicket", Icon: createLucideIcon("cricket-wicket", cricketWicket), category: "gaming", zh: ["板球门柱"] },
|
|
178
|
+
{ name: "cross-square", Icon: createLucideIcon("cross-square", crossSquare), category: "gaming", zh: ["急救十字"] },
|
|
179
|
+
{ name: "crosshair-2", Icon: createLucideIcon("crosshair-2", crosshair2), category: "gaming", zh: ["准星", "瞄准镜"] },
|
|
180
|
+
{ name: "crosshair-2-dot", Icon: createLucideIcon("crosshair-2-dot", crosshair2Dot), category: "gaming", zh: ["准星"] },
|
|
181
|
+
{ name: "crosshair-plus", Icon: createLucideIcon("crosshair-plus", crosshairPlus), category: "gaming", zh: ["准星"] },
|
|
182
|
+
{ name: "crosshair-plus-dot", Icon: createLucideIcon("crosshair-plus-dot", crosshairPlusDot), category: "gaming", zh: ["准星"] },
|
|
183
|
+
{ name: "crosshair-square", Icon: createLucideIcon("crosshair-square", crosshairSquare), category: "gaming", zh: ["方框准星"] },
|
|
184
|
+
{ name: "face-alien", Icon: createLucideIcon("face-alien", faceAlien), category: "gaming", zh: ["外星人"] },
|
|
185
|
+
{ name: "flower-pot", Icon: createLucideIcon("flower-pot", flowerPot), category: "gaming", zh: ["花盆", "盆栽"] },
|
|
186
|
+
{ name: "flower-tulip", Icon: createLucideIcon("flower-tulip", flowerTulip), category: "gaming", zh: ["郁金香"] },
|
|
187
|
+
{ name: "football", Icon: createLucideIcon("football", football), category: "gaming", zh: ["足球"] },
|
|
188
|
+
{ name: "football-goal", Icon: createLucideIcon("football-goal", footballGoal), category: "gaming", zh: ["球门"] },
|
|
189
|
+
{ name: "football-helmet", Icon: createLucideIcon("football-helmet", footballHelmet), category: "gaming", zh: ["橄榄球头盔"] },
|
|
190
|
+
{ name: "gearbox", Icon: createLucideIcon("gearbox", gearbox), category: "gaming", zh: ["换挡杆", "变速箱"] },
|
|
191
|
+
{ name: "gearbox-square", Icon: createLucideIcon("gearbox-square", gearboxSquare), category: "gaming", zh: ["方框换挡"] },
|
|
192
|
+
{ name: "goal-net", Icon: createLucideIcon("goal-net", goalNet), category: "gaming", zh: ["球网"] },
|
|
193
|
+
{ name: "golf-driver", Icon: createLucideIcon("golf-driver", golfDriver), category: "gaming", zh: ["高尔夫球杆"] },
|
|
194
|
+
{ name: "grid-lines", Icon: createLucideIcon("grid-lines", gridLines), category: "gaming", zh: ["网格线"] },
|
|
195
|
+
{ name: "hockey", Icon: createLucideIcon("hockey", hockey), category: "gaming", zh: ["曲棍球"] },
|
|
196
|
+
{ name: "hockey-mask", Icon: createLucideIcon("hockey-mask", hockeyMask), category: "gaming", zh: ["冰球面罩"] },
|
|
197
|
+
{ name: "horse-head", Icon: createLucideIcon("horse-head", horseHead), category: "gaming", zh: ["马头"] },
|
|
198
|
+
{ name: "ice-hockey", Icon: createLucideIcon("ice-hockey", iceHockey), category: "gaming", zh: ["冰球"] },
|
|
199
|
+
{ name: "locate-square", Icon: createLucideIcon("locate-square", locateSquare), category: "gaming", zh: ["方框定位"] },
|
|
200
|
+
{ name: "motor-racing-helmet", Icon: createLucideIcon("motor-racing-helmet", motorRacingHelmet), category: "gaming", zh: ["赛车头盔"] },
|
|
201
|
+
{ name: "pac-man", Icon: createLucideIcon("pac-man", pacMan), category: "gaming", zh: ["吃豆人"] },
|
|
202
|
+
{ name: "pac-man-ghost", Icon: createLucideIcon("pac-man-ghost", pacManGhost), category: "gaming", zh: ["吃豆人幽灵"] },
|
|
203
|
+
{ name: "planet", Icon: createLucideIcon("planet", planet), category: "gaming", zh: ["星球"] },
|
|
204
|
+
{ name: "rugby", Icon: createLucideIcon("rugby", rugby), category: "gaming", zh: ["橄榄球"] },
|
|
205
|
+
{ name: "shovel-dig", Icon: createLucideIcon("shovel-dig", shovelDig), category: "gaming", zh: ["铲子"] },
|
|
206
|
+
{ name: "soccer-ball", Icon: createLucideIcon("soccer-ball", soccerBall), category: "gaming", zh: ["足球"] },
|
|
207
|
+
{ name: "soccer-pitch", Icon: createLucideIcon("soccer-pitch", soccerPitch), category: "gaming", zh: ["足球场"] },
|
|
208
|
+
{ name: "steering-wheel", Icon: createLucideIcon("steering-wheel", steeringWheel), category: "gaming", zh: ["方向盘"] },
|
|
209
|
+
{ name: "surfboard", Icon: createLucideIcon("surfboard", surfboard), category: "gaming", zh: ["冲浪板"] },
|
|
210
|
+
{ name: "target-arrow", Icon: createLucideIcon("target-arrow", targetArrow), category: "gaming", zh: ["靶心箭头"] },
|
|
211
|
+
{ name: "tennis-ball", Icon: createLucideIcon("tennis-ball", tennisBall), category: "gaming", zh: ["网球"] },
|
|
212
|
+
{ name: "tennis-racket", Icon: createLucideIcon("tennis-racket", tennisRacket), category: "gaming", zh: ["网球拍"] },
|
|
213
|
+
{ name: "ufo", Icon: createLucideIcon("ufo", ufo), category: "gaming", zh: ["不明飞行物"] },
|
|
214
|
+
{ name: "unicorn-head", Icon: createLucideIcon("unicorn-head", unicornHead), category: "gaming", zh: ["独角兽"] },
|
|
215
|
+
{ name: "baby-pacifier", Icon: createLucideIcon("baby-pacifier", babyPacifier), category: "home", zh: ["婴儿奶嘴"] },
|
|
216
|
+
{ name: "bath-bubble", Icon: createLucideIcon("bath-bubble", bathBubble), category: "home", zh: ["浴缸泡泡"] },
|
|
217
|
+
{ name: "bed-bunk", Icon: createLucideIcon("bed-bunk", bedBunk), category: "home", zh: ["上下铺"] },
|
|
218
|
+
{ name: "bottle-baby", Icon: createLucideIcon("bottle-baby", bottleBaby), category: "home", zh: ["婴儿奶瓶"] },
|
|
219
|
+
{ name: "bottle-dispenser", Icon: createLucideIcon("bottle-dispenser", bottleDispenser), category: "home", zh: ["分配瓶"] },
|
|
220
|
+
{ name: "bottle-spray", Icon: createLucideIcon("bottle-spray", bottleSpray), category: "home", zh: ["喷雾瓶"] },
|
|
221
|
+
{ name: "bottle-toothbrush-comb", Icon: createLucideIcon("bottle-toothbrush-comb", bottleToothbrushComb), category: "home", zh: ["洗漱瓶"] },
|
|
222
|
+
{ name: "broom", Icon: createLucideIcon("broom", broom), category: "home", zh: ["扫帚"] },
|
|
223
|
+
{ name: "bucket", Icon: createLucideIcon("bucket", bucket), category: "home", zh: ["水桶"] },
|
|
224
|
+
{ name: "cabin", Icon: createLucideIcon("cabin", cabin), category: "home", zh: ["小屋", "木屋"] },
|
|
225
|
+
{ name: "candle-holder", Icon: createLucideIcon("candle-holder", candleHolder), category: "home", zh: ["烛台"] },
|
|
226
|
+
{ name: "candle-holder-lit", Icon: createLucideIcon("candle-holder-lit", candleHolderLit), category: "home", zh: ["点燃烛台"] },
|
|
227
|
+
{ name: "candle-tealight", Icon: createLucideIcon("candle-tealight", candleTealight), category: "home", zh: ["茶蜡"] },
|
|
228
|
+
{ name: "candle-tealight-lit", Icon: createLucideIcon("candle-tealight-lit", candleTealightLit), category: "home", zh: ["点燃茶蜡"] },
|
|
229
|
+
{ name: "candlestick", Icon: createLucideIcon("candlestick", candlestick), category: "home", zh: ["蜡烛"] },
|
|
230
|
+
{ name: "candlestick-big", Icon: createLucideIcon("candlestick-big", candlestickBig), category: "home", zh: ["大蜡烛"] },
|
|
231
|
+
{ name: "candlestick-big-lit", Icon: createLucideIcon("candlestick-big-lit", candlestickBigLit), category: "home", zh: ["点燃大蜡烛"] },
|
|
232
|
+
{ name: "candlestick-lit", Icon: createLucideIcon("candlestick-lit", candlestickLit), category: "home", zh: ["点燃蜡烛"] },
|
|
233
|
+
{ name: "chairs-table-parasol", Icon: createLucideIcon("chairs-table-parasol", chairsTableParasol), category: "home", zh: ["桌椅遮阳伞"] },
|
|
234
|
+
{ name: "cloth", Icon: createLucideIcon("cloth", cloth), category: "home", zh: ["布", "毛巾"] },
|
|
235
|
+
{ name: "coat-hanger", Icon: createLucideIcon("coat-hanger", coatHanger), category: "home", zh: ["衣架"] },
|
|
236
|
+
{ name: "desk-lamp", Icon: createLucideIcon("desk-lamp", deskLamp), category: "home", zh: ["台灯"] },
|
|
237
|
+
{ name: "diaper", Icon: createLucideIcon("diaper", diaper), category: "home", zh: ["尿布"] },
|
|
238
|
+
{ name: "dishwasher", Icon: createLucideIcon("dishwasher", dishwasher), category: "home", zh: ["洗碗机"] },
|
|
239
|
+
{ name: "doorbell-intercom", Icon: createLucideIcon("doorbell-intercom", doorbellIntercom), category: "home", zh: ["门铃对讲"] },
|
|
240
|
+
{ name: "flower-rose", Icon: createLucideIcon("flower-rose", flowerRose), category: "home", zh: ["玫瑰"] },
|
|
241
|
+
{ name: "flower-rose-single", Icon: createLucideIcon("flower-rose-single", flowerRoseSingle), category: "home", zh: ["单枝玫瑰"] },
|
|
242
|
+
{ name: "hairdryer", Icon: createLucideIcon("hairdryer", hairdryer), category: "home", zh: ["吹风机"] },
|
|
243
|
+
{ name: "house-manor", Icon: createLucideIcon("house-manor", houseManor), category: "home", zh: ["庄园", "宅邸"] },
|
|
244
|
+
{ name: "house-roof", Icon: createLucideIcon("house-roof", houseRoof), category: "home", zh: ["屋顶"] },
|
|
245
|
+
{ name: "intercom", Icon: createLucideIcon("intercom", intercom), category: "home", zh: ["对讲机"] },
|
|
246
|
+
{ name: "iron", Icon: createLucideIcon("iron", iron), category: "home", zh: ["熨斗"] },
|
|
247
|
+
{ name: "ironing-board", Icon: createLucideIcon("ironing-board", ironingBoard), category: "home", zh: ["烫衣板"] },
|
|
248
|
+
{ name: "pillow", Icon: createLucideIcon("pillow", pillow), category: "home", zh: ["枕头"] },
|
|
249
|
+
{ name: "pin-safety", Icon: createLucideIcon("pin-safety", pinSafety), category: "home", zh: ["别针", "安全别针"] },
|
|
250
|
+
{ name: "pin-safety-open", Icon: createLucideIcon("pin-safety-open", pinSafetyOpen), category: "home", zh: ["打开的别针"] },
|
|
251
|
+
{ name: "razor", Icon: createLucideIcon("razor", razor), category: "home", zh: ["剃须刀"] },
|
|
252
|
+
{ name: "razor-blade", Icon: createLucideIcon("razor-blade", razorBlade), category: "home", zh: ["刀片"] },
|
|
253
|
+
{ name: "reel-thread", Icon: createLucideIcon("reel-thread", reelThread), category: "home", zh: ["线轴"] },
|
|
254
|
+
{ name: "shave-face", Icon: createLucideIcon("shave-face", shaveFace), category: "home", zh: ["刮脸"] },
|
|
255
|
+
{ name: "shower", Icon: createLucideIcon("shower", shower), category: "home", zh: ["淋浴"] },
|
|
256
|
+
{ name: "soap-bar", Icon: createLucideIcon("soap-bar", soapBar), category: "home", zh: ["香皂"] },
|
|
257
|
+
{ name: "stairs-arrow-down-left", Icon: createLucideIcon("stairs-arrow-down-left", stairsArrowDownLeft), category: "home", zh: ["楼梯下行"] },
|
|
258
|
+
{ name: "stairs-arrow-up-right", Icon: createLucideIcon("stairs-arrow-up-right", stairsArrowUpRight), category: "home", zh: ["楼梯上行"] },
|
|
259
|
+
{ name: "toilet-roll", Icon: createLucideIcon("toilet-roll", toiletRoll), category: "home", zh: ["厕纸"] },
|
|
260
|
+
{ name: "toolbox-2", Icon: createLucideIcon("toolbox-2", toolbox2), category: "home", zh: ["工具箱"] },
|
|
261
|
+
{ name: "towel-folded", Icon: createLucideIcon("towel-folded", towelFolded), category: "home", zh: ["折叠毛巾"] },
|
|
262
|
+
{ name: "yarn-ball", Icon: createLucideIcon("yarn-ball", yarnBall), category: "home", zh: ["毛线球"] },
|
|
263
|
+
{ name: "barn", Icon: createLucideIcon("barn", barn), category: "animals", zh: ["谷仓", "牲口棚"] },
|
|
264
|
+
{ name: "bear-face", Icon: createLucideIcon("bear-face", bearFace), category: "animals", zh: ["熊脸"] },
|
|
265
|
+
{ name: "bee", Icon: createLucideIcon("bee", bee), category: "animals", zh: ["蜜蜂"] },
|
|
266
|
+
{ name: "beetle-scarab", Icon: createLucideIcon("beetle-scarab", beetleScarab), category: "animals", zh: ["圣甲虫", "甲虫"] },
|
|
267
|
+
{ name: "butterfly", Icon: createLucideIcon("butterfly", butterfly), category: "animals", zh: ["蝴蝶"] },
|
|
268
|
+
{ name: "cat-big", Icon: createLucideIcon("cat-big", catBig), category: "animals", zh: ["猫"] },
|
|
269
|
+
{ name: "chameleon", Icon: createLucideIcon("chameleon", chameleon), category: "animals", zh: ["变色龙"] },
|
|
270
|
+
{ name: "crab", Icon: createLucideIcon("crab", crab), category: "animals", zh: ["螃蟹"] },
|
|
271
|
+
{ name: "elephant", Icon: createLucideIcon("elephant", elephant), category: "animals", zh: ["大象"] },
|
|
272
|
+
{ name: "elephant-face", Icon: createLucideIcon("elephant-face", elephantFace), category: "animals", zh: ["大象脸"] },
|
|
273
|
+
{ name: "fox-face-tail", Icon: createLucideIcon("fox-face-tail", foxFaceTail), category: "animals", zh: ["狐狸"] },
|
|
274
|
+
{ name: "frog-face", Icon: createLucideIcon("frog-face", frogFace), category: "animals", zh: ["青蛙脸"] },
|
|
275
|
+
{ name: "hedgehog", Icon: createLucideIcon("hedgehog", hedgehog), category: "animals", zh: ["刺猬"] },
|
|
276
|
+
{ name: "owl", Icon: createLucideIcon("owl", owl), category: "animals", zh: ["猫头鹰"] },
|
|
277
|
+
{ name: "penguin", Icon: createLucideIcon("penguin", penguin), category: "animals", zh: ["企鹅"] },
|
|
278
|
+
{ name: "shark", Icon: createLucideIcon("shark", shark), category: "animals", zh: ["鲨鱼"] },
|
|
279
|
+
{ name: "spider", Icon: createLucideIcon("spider", spider), category: "animals", zh: ["蜘蛛"] },
|
|
280
|
+
{ name: "spider-web", Icon: createLucideIcon("spider-web", spiderWeb), category: "animals", zh: ["蜘蛛网"] },
|
|
281
|
+
{ name: "waves-shark-fin", Icon: createLucideIcon("waves-shark-fin", wavesSharkFin), category: "animals", zh: ["鲨鳍海浪"] },
|
|
282
|
+
{ name: "whale", Icon: createLucideIcon("whale", whale), category: "animals", zh: ["鲸鱼"] },
|
|
283
|
+
{ name: "whale-narwhal", Icon: createLucideIcon("whale-narwhal", whaleNarwhal), category: "animals", zh: ["独角鲸"] },
|
|
284
|
+
{ name: "cactus", Icon: createLucideIcon("cactus", cactus), category: "nature", zh: ["仙人掌"] },
|
|
285
|
+
{ name: "flower-lotus", Icon: createLucideIcon("flower-lotus", flowerLotus), category: "nature", zh: ["莲花"] },
|
|
286
|
+
{ name: "pond", Icon: createLucideIcon("pond", pond), category: "nature", zh: ["池塘"] },
|
|
287
|
+
{ name: "tree-palm-island-sun", Icon: createLucideIcon("tree-palm-island-sun", treePalmIslandSun), category: "nature", zh: ["棕榈树小岛"] },
|
|
288
|
+
{ name: "trees-forest", Icon: createLucideIcon("trees-forest", treesForest), category: "nature", zh: ["森林"] },
|
|
289
|
+
{ name: "barber-pole", Icon: createLucideIcon("barber-pole", barberPole), category: "people", zh: ["理发转灯"] },
|
|
290
|
+
{ name: "mustache", Icon: createLucideIcon("mustache", mustache), category: "people", zh: ["胡子", "八字胡"] },
|
|
291
|
+
{ name: "police-cap", Icon: createLucideIcon("police-cap", policeCap), category: "people", zh: ["警帽"] },
|
|
292
|
+
{ name: "pram", Icon: createLucideIcon("pram", pram), category: "people", zh: ["婴儿车"] },
|
|
293
|
+
{ name: "scissors-hair-comb", Icon: createLucideIcon("scissors-hair-comb", scissorsHairComb), category: "people", zh: ["剪刀梳子"] },
|
|
294
|
+
{ name: "stroller", Icon: createLucideIcon("stroller", stroller), category: "people", zh: ["婴儿推车"] },
|
|
295
|
+
{ name: "hat-beanie", Icon: createLucideIcon("hat-beanie", hatBeanie), category: "seasons", zh: ["毛线帽"] },
|
|
296
|
+
{ name: "ice-skate", Icon: createLucideIcon("ice-skate", iceSkate), category: "seasons", zh: ["冰鞋"] },
|
|
297
|
+
{ name: "igloo", Icon: createLucideIcon("igloo", igloo), category: "seasons", zh: ["冰屋"] },
|
|
298
|
+
{ name: "scarf", Icon: createLucideIcon("scarf", scarf), category: "seasons", zh: ["围巾"] },
|
|
299
|
+
{ name: "skis", Icon: createLucideIcon("skis", skis), category: "seasons", zh: ["滑雪板"] },
|
|
300
|
+
{ name: "snowboard", Icon: createLucideIcon("snowboard", snowboard), category: "seasons", zh: ["单板滑雪"] },
|
|
301
|
+
{ name: "snowman", Icon: createLucideIcon("snowman", snowman), category: "seasons", zh: ["雪人"] },
|
|
302
|
+
{ name: "sweater", Icon: createLucideIcon("sweater", sweater), category: "seasons", zh: ["毛衣"] },
|
|
303
|
+
{ name: "ampersand-square", Icon: createLucideIcon("ampersand-square", ampersandSquare), category: "other", zh: ["方框与号"] },
|
|
304
|
+
{ name: "arrows-up-down-square", Icon: createLucideIcon("arrows-up-down-square", arrowsUpDownSquare), category: "other", zh: ["方框上下箭头"] },
|
|
305
|
+
{ name: "at-sign-circle", Icon: createLucideIcon("at-sign-circle", atSignCircle), category: "other", zh: ["圆形at符号"] },
|
|
306
|
+
{ name: "at-sign-square", Icon: createLucideIcon("at-sign-square", atSignSquare), category: "other", zh: ["方框at符号"] },
|
|
307
|
+
{ name: "bag-hand", Icon: createLucideIcon("bag-hand", bagHand), category: "other", zh: ["提包"] },
|
|
308
|
+
{ name: "baseline-square", Icon: createLucideIcon("baseline-square", baselineSquare), category: "other", zh: ["方框基线"] },
|
|
309
|
+
{ name: "bell-concierge-dot", Icon: createLucideIcon("bell-concierge-dot", bellConciergeDot), category: "other", zh: ["礼宾铃"] },
|
|
310
|
+
{ name: "bold-square", Icon: createLucideIcon("bold-square", boldSquare), category: "other", zh: ["方框粗体"] },
|
|
311
|
+
{ name: "bottle-perfume", Icon: createLucideIcon("bottle-perfume", bottlePerfume), category: "other", zh: ["香水瓶"] },
|
|
312
|
+
{ name: "bra-sports", Icon: createLucideIcon("bra-sports", braSports), category: "other", zh: ["运动内衣"] },
|
|
313
|
+
{ name: "cabinet-filing", Icon: createLucideIcon("cabinet-filing", cabinetFiling), category: "other", zh: ["文件柜"] },
|
|
314
|
+
{ name: "card-credit", Icon: createLucideIcon("card-credit", cardCredit), category: "other", zh: ["银行卡"] },
|
|
315
|
+
{ name: "card-sd", Icon: createLucideIcon("card-sd", cardSd), category: "other", zh: ["SD卡"] },
|
|
316
|
+
{ name: "case-camel", Icon: createLucideIcon("case-camel", caseCamel), category: "other", zh: ["驼峰命名"] },
|
|
317
|
+
{ name: "case-kebab", Icon: createLucideIcon("case-kebab", caseKebab), category: "other", zh: ["短横线命名"] },
|
|
318
|
+
{ name: "case-snake", Icon: createLucideIcon("case-snake", caseSnake), category: "other", zh: ["下划线命名"] },
|
|
319
|
+
{ name: "case-snake-upper", Icon: createLucideIcon("case-snake-upper", caseSnakeUpper), category: "other", zh: ["大写下划线命名"] },
|
|
320
|
+
{ name: "cent", Icon: createLucideIcon("cent", cent), category: "other", zh: ["分币"] },
|
|
321
|
+
{ name: "cent-circle", Icon: createLucideIcon("cent-circle", centCircle), category: "other", zh: ["圆形分币"] },
|
|
322
|
+
{ name: "cent-square", Icon: createLucideIcon("cent-square", centSquare), category: "other", zh: ["方框分币"] },
|
|
323
|
+
{ name: "chevrons-up-down-square", Icon: createLucideIcon("chevrons-up-down-square", chevronsUpDownSquare), category: "other", zh: ["方框上下双箭头"] },
|
|
324
|
+
{ name: "coins-exchange", Icon: createLucideIcon("coins-exchange", coinsExchange), category: "other", zh: ["货币兑换"] },
|
|
325
|
+
{ name: "copy-code", Icon: createLucideIcon("copy-code", copyCode), category: "other", zh: ["复制代码"] },
|
|
326
|
+
{ name: "copy-down", Icon: createLucideIcon("copy-down", copyDown), category: "other", zh: ["下载复制"] },
|
|
327
|
+
{ name: "copy-file-path", Icon: createLucideIcon("copy-file-path", copyFilePath), category: "other", zh: ["复制文件路径"] },
|
|
328
|
+
{ name: "copy-image", Icon: createLucideIcon("copy-image", copyImage), category: "other", zh: ["复制图片"] },
|
|
329
|
+
{ name: "copy-text", Icon: createLucideIcon("copy-text", copyText), category: "other", zh: ["复制文本"] },
|
|
330
|
+
{ name: "copy-type", Icon: createLucideIcon("copy-type", copyType), category: "other", zh: ["复制文字"] },
|
|
331
|
+
{ name: "currency-square", Icon: createLucideIcon("currency-square", currencySquare), category: "other", zh: ["方框货币"] },
|
|
332
|
+
{ name: "dollar-sign-square", Icon: createLucideIcon("dollar-sign-square", dollarSignSquare), category: "other", zh: ["方框美元"] },
|
|
333
|
+
{ name: "dress", Icon: createLucideIcon("dress", dress), category: "other", zh: ["连衣裙"] },
|
|
334
|
+
{ name: "escalator-arrow-down-left", Icon: createLucideIcon("escalator-arrow-down-left", escalatorArrowDownLeft), category: "other", zh: ["扶梯下行"] },
|
|
335
|
+
{ name: "escalator-arrow-up-right", Icon: createLucideIcon("escalator-arrow-up-right", escalatorArrowUpRight), category: "other", zh: ["扶梯上行"] },
|
|
336
|
+
{ name: "euro-circle", Icon: createLucideIcon("euro-circle", euroCircle), category: "other", zh: ["圆形欧元"] },
|
|
337
|
+
{ name: "euro-square", Icon: createLucideIcon("euro-square", euroSquare), category: "other", zh: ["方框欧元"] },
|
|
338
|
+
{ name: "fan-handheld", Icon: createLucideIcon("fan-handheld", fanHandheld), category: "other", zh: ["手持风扇"] },
|
|
339
|
+
{ name: "feather-plus", Icon: createLucideIcon("feather-plus", featherPlus), category: "other", zh: ["羽毛新增"] },
|
|
340
|
+
{ name: "feather-square", Icon: createLucideIcon("feather-square", featherSquare), category: "other", zh: ["方框羽毛"] },
|
|
341
|
+
{ name: "feather-text", Icon: createLucideIcon("feather-text", featherText), category: "other", zh: ["羽毛文字"] },
|
|
342
|
+
{ name: "flippers", Icon: createLucideIcon("flippers", flippers), category: "other", zh: ["蛙鞋", "脚蹼"] },
|
|
343
|
+
{ name: "floor-plan", Icon: createLucideIcon("floor-plan", floorPlan), category: "other", zh: ["楼层平面图"] },
|
|
344
|
+
{ name: "floppy-disk-2", Icon: createLucideIcon("floppy-disk-2", floppyDisk2), category: "other", zh: ["软盘"] },
|
|
345
|
+
{ name: "floppy-disk-rear", Icon: createLucideIcon("floppy-disk-rear", floppyDiskRear), category: "other", zh: ["软盘"] },
|
|
346
|
+
{ name: "floppy-disks-2", Icon: createLucideIcon("floppy-disks-2", floppyDisks2), category: "other", zh: ["多软盘"] },
|
|
347
|
+
{ name: "floppy-disks-rear", Icon: createLucideIcon("floppy-disks-rear", floppyDisksRear), category: "other", zh: ["多软盘"] },
|
|
348
|
+
{ name: "gem-ring", Icon: createLucideIcon("gem-ring", gemRing), category: "other", zh: ["宝石戒指"] },
|
|
349
|
+
{ name: "glasses-square", Icon: createLucideIcon("glasses-square", glassesSquare), category: "other", zh: ["方框眼镜"] },
|
|
350
|
+
{ name: "glasses-sun", Icon: createLucideIcon("glasses-sun", glassesSun), category: "other", zh: ["墨镜"] },
|
|
351
|
+
{ name: "grid-lines-offset", Icon: createLucideIcon("grid-lines-offset", gridLinesOffset), category: "other", zh: ["偏移网格线"] },
|
|
352
|
+
{ name: "hat-baseball", Icon: createLucideIcon("hat-baseball", hatBaseball), category: "other", zh: ["棒球帽"] },
|
|
353
|
+
{ name: "hat-bowler", Icon: createLucideIcon("hat-bowler", hatBowler), category: "other", zh: ["圆顶礼帽"] },
|
|
354
|
+
{ name: "hat-top", Icon: createLucideIcon("hat-top", hatTop), category: "other", zh: ["高顶礼帽"] },
|
|
355
|
+
{ name: "heading-circle", Icon: createLucideIcon("heading-circle", headingCircle), category: "other", zh: ["圆形标题"] },
|
|
356
|
+
{ name: "heading-square", Icon: createLucideIcon("heading-square", headingSquare), category: "other", zh: ["方框标题"] },
|
|
357
|
+
{ name: "helmet-diving", Icon: createLucideIcon("helmet-diving", helmetDiving), category: "other", zh: ["潜水头盔"] },
|
|
358
|
+
{ name: "high-heel", Icon: createLucideIcon("high-heel", highHeel), category: "other", zh: ["高跟鞋"] },
|
|
359
|
+
{ name: "houses", Icon: createLucideIcon("houses", houses), category: "other", zh: ["房屋群"] },
|
|
360
|
+
{ name: "indian-rupee-circle", Icon: createLucideIcon("indian-rupee-circle", indianRupeeCircle), category: "other", zh: ["圆形卢比"] },
|
|
361
|
+
{ name: "indian-rupee-square", Icon: createLucideIcon("indian-rupee-square", indianRupeeSquare), category: "other", zh: ["方框卢比"] },
|
|
362
|
+
{ name: "italic-square", Icon: createLucideIcon("italic-square", italicSquare), category: "other", zh: ["方框斜体"] },
|
|
363
|
+
{ name: "jacket", Icon: createLucideIcon("jacket", jacket), category: "other", zh: ["夹克"] },
|
|
364
|
+
{ name: "jacket-sports", Icon: createLucideIcon("jacket-sports", jacketSports), category: "other", zh: ["运动夹克"] },
|
|
365
|
+
{ name: "japanese-yen-circle", Icon: createLucideIcon("japanese-yen-circle", japaneseYenCircle), category: "other", zh: ["圆形日元"] },
|
|
366
|
+
{ name: "japanese-yen-square", Icon: createLucideIcon("japanese-yen-square", japaneseYenSquare), category: "other", zh: ["方框日元"] },
|
|
367
|
+
{ name: "layout-grid-move-horizontal", Icon: createLucideIcon("layout-grid-move-horizontal", layoutGridMoveHorizontal), category: "other", zh: ["横向移动网格"] },
|
|
368
|
+
{ name: "layout-grid-move-vertical", Icon: createLucideIcon("layout-grid-move-vertical", layoutGridMoveVertical), category: "other", zh: ["纵向移动网格"] },
|
|
369
|
+
{ name: "layout-grid-plus", Icon: createLucideIcon("layout-grid-plus", layoutGridPlus), category: "other", zh: ["网格新增"] },
|
|
370
|
+
{ name: "layout-list-move", Icon: createLucideIcon("layout-list-move", layoutListMove), category: "other", zh: ["列表移动"] },
|
|
371
|
+
{ name: "life-jacket", Icon: createLucideIcon("life-jacket", lifeJacket), category: "other", zh: ["救生衣"] },
|
|
372
|
+
{ name: "ligature-square", Icon: createLucideIcon("ligature-square", ligatureSquare), category: "other", zh: ["方框连字"] },
|
|
373
|
+
{ name: "light-switch", Icon: createLucideIcon("light-switch", lightSwitch), category: "other", zh: ["电灯开关"] },
|
|
374
|
+
{ name: "lingerie", Icon: createLucideIcon("lingerie", lingerie), category: "other", zh: ["内衣"] },
|
|
375
|
+
{ name: "luggage-cabin", Icon: createLucideIcon("luggage-cabin", luggageCabin), category: "other", zh: ["登机箱"] },
|
|
376
|
+
{ name: "mailbox-flag", Icon: createLucideIcon("mailbox-flag", mailboxFlag), category: "other", zh: ["带旗邮箱"] },
|
|
377
|
+
{ name: "mask-snorkel", Icon: createLucideIcon("mask-snorkel", maskSnorkel), category: "other", zh: ["潜水镜"] },
|
|
378
|
+
{ name: "peace", Icon: createLucideIcon("peace", peace), category: "other", zh: ["和平手势"] },
|
|
379
|
+
{ name: "pilot", Icon: createLucideIcon("pilot", pilot), category: "other", zh: ["飞行员"] },
|
|
380
|
+
{ name: "pound-sterling-circle", Icon: createLucideIcon("pound-sterling-circle", poundSterlingCircle), category: "other", zh: ["圆形英镑"] },
|
|
381
|
+
{ name: "pound-sterling-square", Icon: createLucideIcon("pound-sterling-square", poundSterlingSquare), category: "other", zh: ["方框英镑"] },
|
|
382
|
+
{ name: "remove-formatting-square", Icon: createLucideIcon("remove-formatting-square", removeFormattingSquare), category: "other", zh: ["方框清除格式"] },
|
|
383
|
+
{ name: "russian-ruble-circle", Icon: createLucideIcon("russian-ruble-circle", russianRubleCircle), category: "other", zh: ["圆形卢布"] },
|
|
384
|
+
{ name: "russian-ruble-square", Icon: createLucideIcon("russian-ruble-square", russianRubleSquare), category: "other", zh: ["方框卢布"] },
|
|
385
|
+
{ name: "shirt-folded-buttons", Icon: createLucideIcon("shirt-folded-buttons", shirtFoldedButtons), category: "other", zh: ["折叠衬衫"] },
|
|
386
|
+
{ name: "shirt-long-sleeve", Icon: createLucideIcon("shirt-long-sleeve", shirtLongSleeve), category: "other", zh: ["长袖衬衫"] },
|
|
387
|
+
{ name: "shirt-t-ruler", Icon: createLucideIcon("shirt-t-ruler", shirtTRuler), category: "other", zh: ["尺码T恤"] },
|
|
388
|
+
{ name: "shirt-t-v-neck", Icon: createLucideIcon("shirt-t-v-neck", shirtTVNeck), category: "other", zh: ["V领T恤"] },
|
|
389
|
+
{ name: "shorts", Icon: createLucideIcon("shorts", shorts), category: "other", zh: ["短裤"] },
|
|
390
|
+
{ name: "shorts-boxer", Icon: createLucideIcon("shorts-boxer", shortsBoxer), category: "other", zh: ["平角内裤"] },
|
|
391
|
+
{ name: "skirt", Icon: createLucideIcon("skirt", skirt), category: "other", zh: ["裙子"] },
|
|
392
|
+
{ name: "slot-card", Icon: createLucideIcon("slot-card", slotCard), category: "other", zh: ["卡槽"] },
|
|
393
|
+
{ name: "slot-card-credit", Icon: createLucideIcon("slot-card-credit", slotCardCredit), category: "other", zh: ["银行卡槽"] },
|
|
394
|
+
{ name: "slot-disc", Icon: createLucideIcon("slot-disc", slotDisc), category: "other", zh: ["光盘槽"] },
|
|
395
|
+
{ name: "sneaker", Icon: createLucideIcon("sneaker", sneaker), category: "other", zh: ["运动鞋"] },
|
|
396
|
+
{ name: "socket-eu", Icon: createLucideIcon("socket-eu", socketEu), category: "other", zh: ["欧标插座"] },
|
|
397
|
+
{ name: "socket-uk", Icon: createLucideIcon("socket-uk", socketUk), category: "other", zh: ["英标插座"] },
|
|
398
|
+
{ name: "socket-usa", Icon: createLucideIcon("socket-usa", socketUsa), category: "other", zh: ["美标插座"] },
|
|
399
|
+
{ name: "socks", Icon: createLucideIcon("socks", socks), category: "other", zh: ["袜子"] },
|
|
400
|
+
{ name: "stairs", Icon: createLucideIcon("stairs", stairs), category: "other", zh: ["楼梯"] },
|
|
401
|
+
{ name: "stairs-arch", Icon: createLucideIcon("stairs-arch", stairsArch), category: "other", zh: ["拱形楼梯"] },
|
|
402
|
+
{ name: "star-north", Icon: createLucideIcon("star-north", starNorth), category: "other", zh: ["北极星"] },
|
|
403
|
+
{ name: "strikethrough-square", Icon: createLucideIcon("strikethrough-square", strikethroughSquare), category: "other", zh: ["方框删除线"] },
|
|
404
|
+
{ name: "sunlounger-parasol-sun", Icon: createLucideIcon("sunlounger-parasol-sun", sunloungerParasolSun), category: "other", zh: ["遮阳伞躺椅"] },
|
|
405
|
+
{ name: "sunlounger-parasol-sun-palm-tree", Icon: createLucideIcon("sunlounger-parasol-sun-palm-tree", sunloungerParasolSunPalmTree), category: "other", zh: ["遮阳伞躺椅棕榈树"] },
|
|
406
|
+
{ name: "sunlounger-parasol-table", Icon: createLucideIcon("sunlounger-parasol-table", sunloungerParasolTable), category: "other", zh: ["遮阳伞桌椅"] },
|
|
407
|
+
{ name: "swiss-franc-circle", Icon: createLucideIcon("swiss-franc-circle", swissFrancCircle), category: "other", zh: ["圆形瑞士法郎"] },
|
|
408
|
+
{ name: "swiss-franc-square", Icon: createLucideIcon("swiss-franc-square", swissFrancSquare), category: "other", zh: ["方框瑞士法郎"] },
|
|
409
|
+
{ name: "tab", Icon: createLucideIcon("tab", tab), category: "other", zh: ["标签页"] },
|
|
410
|
+
{ name: "tab-arrow-down", Icon: createLucideIcon("tab-arrow-down", tabArrowDown), category: "other", zh: ["标签页下箭头"] },
|
|
411
|
+
{ name: "tab-arrow-up-right", Icon: createLucideIcon("tab-arrow-up-right", tabArrowUpRight), category: "other", zh: ["标签页右上箭头"] },
|
|
412
|
+
{ name: "tab-dot", Icon: createLucideIcon("tab-dot", tabDot), category: "other", zh: ["标签页圆点"] },
|
|
413
|
+
{ name: "tab-plus", Icon: createLucideIcon("tab-plus", tabPlus), category: "other", zh: ["标签页新增"] },
|
|
414
|
+
{ name: "tab-slash", Icon: createLucideIcon("tab-slash", tabSlash), category: "other", zh: ["标签页斜杠"] },
|
|
415
|
+
{ name: "tab-text", Icon: createLucideIcon("tab-text", tabText), category: "other", zh: ["标签页文字"] },
|
|
416
|
+
{ name: "tab-x", Icon: createLucideIcon("tab-x", tabX), category: "other", zh: ["标签页关闭"] },
|
|
417
|
+
{ name: "text-square", Icon: createLucideIcon("text-square", textSquare), category: "other", zh: ["方框文字"] },
|
|
418
|
+
{ name: "tie", Icon: createLucideIcon("tie", tie), category: "other", zh: ["领带"] },
|
|
419
|
+
{ name: "tie-bow", Icon: createLucideIcon("tie-bow", tieBow), category: "other", zh: ["领结"] },
|
|
420
|
+
{ name: "tie-bow-ribbon", Icon: createLucideIcon("tie-bow-ribbon", tieBowRibbon), category: "other", zh: ["丝带领结"] },
|
|
421
|
+
{ name: "tire", Icon: createLucideIcon("tire", tire), category: "other", zh: ["轮胎"] },
|
|
422
|
+
{ name: "top-crop", Icon: createLucideIcon("top-crop", topCrop), category: "other", zh: ["短上衣"] },
|
|
423
|
+
{ name: "triangle-stripes", Icon: createLucideIcon("triangle-stripes", triangleStripes), category: "other", zh: ["条纹三角形"] },
|
|
424
|
+
{ name: "trousers", Icon: createLucideIcon("trousers", trousers), category: "other", zh: ["长裤"] },
|
|
425
|
+
{ name: "tuxedo", Icon: createLucideIcon("tuxedo", tuxedo), category: "other", zh: ["燕尾服"] },
|
|
426
|
+
{ name: "type-square", Icon: createLucideIcon("type-square", typeSquare), category: "other", zh: ["方框文字"] },
|
|
427
|
+
{ name: "underline-square", Icon: createLucideIcon("underline-square", underlineSquare), category: "other", zh: ["方框下划线"] },
|
|
428
|
+
{ name: "venn", Icon: createLucideIcon("venn", venn), category: "other", zh: ["文氏图"] },
|
|
429
|
+
{ name: "vest", Icon: createLucideIcon("vest", vest), category: "other", zh: ["背心"] },
|
|
430
|
+
{ name: "wardrobe", Icon: createLucideIcon("wardrobe", wardrobe), category: "other", zh: ["衣柜"] },
|
|
431
|
+
{ name: "watch-activity", Icon: createLucideIcon("watch-activity", watchActivity), category: "other", zh: ["运动手表"] },
|
|
432
|
+
{ name: "watch-alarm", Icon: createLucideIcon("watch-alarm", watchAlarm), category: "other", zh: ["闹钟手表"] },
|
|
433
|
+
{ name: "watch-bars", Icon: createLucideIcon("watch-bars", watchBars), category: "other", zh: ["手表条形"] },
|
|
434
|
+
{ name: "watch-charging", Icon: createLucideIcon("watch-charging", watchCharging), category: "other", zh: ["充电手表"] },
|
|
435
|
+
{ name: "watch-check", Icon: createLucideIcon("watch-check", watchCheck), category: "other", zh: ["手表确认"] },
|
|
436
|
+
{ name: "watch-loader", Icon: createLucideIcon("watch-loader", watchLoader), category: "other", zh: ["手表加载"] },
|
|
437
|
+
{ name: "watch-music", Icon: createLucideIcon("watch-music", watchMusic), category: "other", zh: ["手表音乐"] },
|
|
438
|
+
{ name: "watch-square", Icon: createLucideIcon("watch-square", watchSquare), category: "other", zh: ["方框手表"] },
|
|
439
|
+
{ name: "watch-square-alarm", Icon: createLucideIcon("watch-square-alarm", watchSquareAlarm), category: "other", zh: ["方框闹钟手表"] },
|
|
440
|
+
{ name: "watch-text", Icon: createLucideIcon("watch-text", watchText), category: "other", zh: ["手表文字"] },
|
|
441
|
+
{ name: "wave-circle", Icon: createLucideIcon("wave-circle", waveCircle), category: "other", zh: ["圆形波纹"] },
|
|
442
|
+
{ name: "waves-birds", Icon: createLucideIcon("waves-birds", wavesBirds), category: "other", zh: ["海浪飞鸟"] },
|
|
443
|
+
{ name: "wheel", Icon: createLucideIcon("wheel", wheel), category: "other", zh: ["车轮"] },
|
|
444
|
+
{ name: "windmill", Icon: createLucideIcon("windmill", windmill), category: "other", zh: ["风车"] },
|
|
445
|
+
{ name: "yin-yang", Icon: createLucideIcon("yin-yang", yinYang), category: "other", zh: ["阴阳"] },
|
|
446
|
+
];
|
|
447
|
+
|
|
448
|
+
/** name → 条目 查找表(LucideIconByName 渲染用) */
|
|
449
|
+
export const LAB_ICON_MAP: Record<string, LabIcon> = Object.fromEntries(
|
|
450
|
+
LAB_ICONS.map((icon) => [icon.name, icon])
|
|
451
|
+
);
|
|
452
|
+
|
|
453
|
+
/** 优先级分类 → 图标(靠前显示) */
|
|
454
|
+
export const LAB_ICONS_BY_CATEGORY: Record<LabCategory, LabIcon[]> = {
|
|
455
|
+
"food-beverage": LAB_ICONS.filter((i) => i.category === "food-beverage"),
|
|
456
|
+
gaming: LAB_ICONS.filter((i) => i.category === "gaming"),
|
|
457
|
+
home: LAB_ICONS.filter((i) => i.category === "home"),
|
|
458
|
+
animals: LAB_ICONS.filter((i) => i.category === "animals"),
|
|
459
|
+
nature: LAB_ICONS.filter((i) => i.category === "nature"),
|
|
460
|
+
people: LAB_ICONS.filter((i) => i.category === "people"),
|
|
461
|
+
seasons: LAB_ICONS.filter((i) => i.category === "seasons"),
|
|
462
|
+
other: LAB_ICONS.filter((i) => i.category === "other"),
|
|
463
|
+
};
|
|
@@ -15,11 +15,12 @@
|
|
|
15
15
|
// You should have received a copy of the GNU Affero General Public License
|
|
16
16
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
|
|
18
|
-
import type
|
|
18
|
+
import { useEffect, useState, type ReactNode } from "react";
|
|
19
19
|
import { FaceSlightlySmilingPlus } from "lucide-react";
|
|
20
20
|
import { cn } from "@/lib/utils";
|
|
21
21
|
import { CURATED_ICON_MAP } from "./curated-icons";
|
|
22
22
|
import { pascalToKebab } from "./icon-data";
|
|
23
|
+
import type { LabIcon } from "./lab-icons";
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* 旧数据兼容:PROJECT_ICONS 时代存的名字与 Lucide 官方名不一致的映射
|
|
@@ -44,7 +45,7 @@ function resolveIconName(name: string): string {
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
interface LucideIconByNameProps {
|
|
47
|
-
/** kebab-case
|
|
48
|
+
/** kebab-case 图标名(精选常规集 + Lab 集);无效渲染 fallback */
|
|
48
49
|
name?: string;
|
|
49
50
|
size?: number;
|
|
50
51
|
className?: string;
|
|
@@ -58,8 +59,33 @@ export function LucideIconByName({
|
|
|
58
59
|
className,
|
|
59
60
|
fallback,
|
|
60
61
|
}: LucideIconByNameProps) {
|
|
61
|
-
const name = rawName ? resolveIconName(rawName) :
|
|
62
|
-
const
|
|
62
|
+
const name = rawName ? resolveIconName(rawName) : undefined;
|
|
63
|
+
const curated = name ? CURATED_ICON_MAP[name] : undefined;
|
|
64
|
+
const [labEntry, setLabEntry] = useState<LabIcon | undefined>(undefined);
|
|
65
|
+
|
|
66
|
+
// Lab 图标按需加载:lab-icons.ts 含 351 个图标组件,
|
|
67
|
+
// 静态引入会把整包拖进主 bundle(本组件在 providers 层被同步引用)
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
if (!name || curated) return;
|
|
70
|
+
let alive = true;
|
|
71
|
+
const candidates = [name, /[a-z][A-Z]/.test(name) ? pascalToKebab(name) : name];
|
|
72
|
+
void import("./lab-icons").then((mod) => {
|
|
73
|
+
if (!alive) return;
|
|
74
|
+
for (const candidate of candidates) {
|
|
75
|
+
const hit = mod.LAB_ICON_MAP[candidate];
|
|
76
|
+
if (hit) {
|
|
77
|
+
setLabEntry(hit);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
setLabEntry(undefined);
|
|
82
|
+
});
|
|
83
|
+
return () => {
|
|
84
|
+
alive = false;
|
|
85
|
+
};
|
|
86
|
+
}, [name, curated]);
|
|
87
|
+
|
|
88
|
+
const found = curated ?? labEntry;
|
|
63
89
|
if (!found) {
|
|
64
90
|
return (
|
|
65
91
|
<>
|