@conscience-technology/ctds 0.3.1 → 0.3.2

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.
@@ -129,18 +129,115 @@ import {
129
129
  ClipboardText as PhClipboardText,
130
130
  Camera as PhCamera,
131
131
  Globe as PhGlobe,
132
+ Folder as PhFolder,
133
+ FolderOpen as PhFolderOpen,
134
+ FolderSimple as PhFolderSimple,
135
+ File as PhFile,
136
+ FileText as PhFileText,
137
+ Link as PhLink,
138
+ Lock as PhLock,
139
+ LockOpen as PhLockOpen,
140
+ Key as PhKey,
141
+ SignOut as PhSignOut,
142
+ SignIn as PhSignIn,
143
+ CloudArrowUp as PhCloudUp,
144
+ CloudArrowDown as PhCloudDown,
145
+ Cloud as PhCloud,
146
+ MapPin as PhMapPin,
147
+ PaperPlaneTilt as PhPaperPlane,
148
+ ChatCenteredDots as PhChatCenteredDots,
149
+ Hash as PhHash,
150
+ At as PhAt,
151
+ PushPin as PhPushPin,
152
+ Bookmark as PhBookmark,
153
+ Flag as PhFlag,
154
+ Lightning as PhLightning,
155
+ Lightbulb as PhLightbulb,
156
+ Fire as PhFire,
157
+ Users as PhUsers,
158
+ UsersThree as PhUsersThree,
159
+ PlusCircle as PhPlusCircle,
160
+ MinusCircle as PhMinusCircle,
161
+ XCircle as PhXCircle,
162
+ ArrowLeft as PhArrowLeft,
163
+ ArrowUp as PhArrowUp,
164
+ ArrowDown as PhArrowDown,
165
+ ArrowClockwise as PhArrowClockwise,
166
+ ArrowCounterClockwise as PhArrowCounterClockwise,
167
+ ArrowsClockwise as PhArrowsClockwise,
168
+ ArrowsLeftRight as PhArrowsLeftRight,
169
+ ArrowsOutSimple as PhArrowsOut,
170
+ ArrowsInSimple as PhArrowsIn,
171
+ CornersOut as PhCornersOut,
172
+ CornersIn as PhCornersIn,
173
+ Play as PhPlay,
174
+ Pause as PhPause,
175
+ Stop as PhStop,
176
+ SkipForward as PhSkipForward,
177
+ SkipBack as PhSkipBack,
178
+ SpeakerHigh as PhSpeakerHigh,
179
+ SpeakerLow as PhSpeakerLow,
180
+ SpeakerX as PhSpeakerX,
181
+ Microphone as PhMicrophone,
182
+ MicrophoneSlash as PhMicrophoneSlash,
183
+ Headphones as PhHeadphones,
184
+ MusicNote as PhMusicNote,
185
+ Image as PhImage,
186
+ VideoCamera as PhVideoCamera,
187
+ Paperclip as PhPaperclip,
188
+ LinkSimple as PhLinkSimple,
189
+ FloppyDisk as PhFloppyDisk,
190
+ Printer as PhPrinter,
191
+ Package as PhPackage,
192
+ Gift as PhGift,
193
+ ShoppingCart as PhShoppingCart,
194
+ CurrencyDollar as PhCurrencyDollar,
195
+ CreditCard as PhCreditCard,
196
+ Wallet as PhWallet,
197
+ Receipt as PhReceipt,
198
+ Coins as PhCoins,
199
+ Buildings as PhBuildings,
200
+ Factory as PhFactory,
201
+ Storefront as PhStorefront,
202
+ Truck as PhTruck,
203
+ Airplane as PhAirplane,
204
+ Car as PhCar,
205
+ Bicycle as PhBicycle,
206
+ MapTrifold as PhMapTrifold,
207
+ NavigationArrow as PhNavigation,
208
+ Shield as PhShield,
209
+ ShieldCheck as PhShieldCheck,
210
+ Lifebuoy as PhLifebuoy,
211
+ Question as PhQuestion,
212
+ Smiley as PhSmiley,
213
+ SmileyMeh as PhSmileyMeh,
214
+ SmileySad as PhSmileySad,
215
+ ThumbsUp as PhThumbsUp,
216
+ ThumbsDown as PhThumbsDown,
217
+ HandWaving as PhHandWaving,
218
+ Trophy as PhTrophy,
219
+ Medal as PhMedal,
220
+ Crown as PhCrown,
221
+ Flower as PhFlower,
222
+ Leaf as PhLeaf,
223
+ Tree as PhTree,
132
224
  } from "@phosphor-icons/react";
133
225
 
134
226
  // Solar (Linear = regular, Bold = fill) ───────────────────────────
227
+ // phosphor 이름 → solar의 가장 자연스러운 대응. 여러 phosphor 이름이 같은 solar
228
+ // 아이콘으로 수렴해도 OK (phosphor 가짓수가 더 많아서 당연). placeholder 최소화.
135
229
  import {
230
+ CheckSquareLinear as SoCheckL, CheckSquareBold as SoCheckB,
136
231
  DangerTriangleLinear as SoWarningL, DangerTriangleBold as SoWarningB,
137
232
  StarLinear as SoStarL, StarBold as SoStarB,
138
233
  HeartLinear as SoHeartL, HeartBold as SoHeartB,
139
234
  UserLinear as SoUserL, UserBold as SoUserB,
235
+ UserCircleLinear as SoUserCircleL, UserCircleBold as SoUserCircleB,
140
236
  MagniferLinear as SoSearchL, MagniferBold as SoSearchB,
141
237
  SettingsLinear as SoGearL, SettingsBold as SoGearB,
142
238
  TrashBinMinimalisticLinear as SoTrashL, TrashBinMinimalisticBold as SoTrashB,
143
239
  ArrowRightLinear as SoArrowRightL, ArrowRightBold as SoArrowRightB,
240
+ CloseCircleLinear as SoXL, CloseCircleBold as SoXB,
144
241
  SunLinear as SoSunL, SunBold as SoSunB,
145
242
  MoonLinear as SoMoonL, MoonBold as SoMoonB,
146
243
  AltArrowDownLinear as SoCaretDownL, AltArrowDownBold as SoCaretDownB,
@@ -161,17 +258,157 @@ import {
161
258
  ListLinear as SoListL, ListBold as SoListB,
162
259
  Widget5Linear as SoWidget5L, Widget5Bold as SoWidget5B,
163
260
  Widget2Linear as SoWidget2L, Widget2Bold as SoWidget2B,
261
+ Widget4Linear as SoWidget4L, Widget4Bold as SoWidget4B,
262
+ WidgetLinear as SoWidgetL, WidgetBold as SoWidgetB,
263
+ HomeLinear as SoHomeL, HomeBold as SoHomeB,
264
+ PaletteLinear as SoPaletteL, PaletteBold as SoPaletteB,
265
+ RulerLinear as SoRulerL, RulerBold as SoRulerB,
266
+ TagLinear as SoTagL, TagBold as SoTagB,
267
+ MinusCircleLinear as SoMinusL, MinusCircleBold as SoMinusB,
268
+ AddCircleLinear as SoPlusL, AddCircleBold as SoPlusB,
269
+ MinusSquareLinear as SoMinusSquareL, MinusSquareBold as SoMinusSquareB,
270
+ LayersMinimalisticLinear as SoStackL, LayersMinimalisticBold as SoStackB,
271
+ SoundwaveLinear as SoWaveformL, SoundwaveBold as SoWaveformB,
272
+ DevicesLinear as SoDevicesL, DevicesBold as SoDevicesB,
273
+ CursorLinear as SoCursorL, CursorBold as SoCursorB,
274
+ KeyboardLinear as SoKeyboardL, KeyboardBold as SoKeyboardB,
275
+ TextSelectionLinear as SoSelectionL, TextSelectionBold as SoSelectionB,
276
+ RecordCircleLinear as SoRadioL, RecordCircleBold as SoRadioB,
277
+ TuningLinear as SoSlidersL, TuningBold as SoSlidersB,
278
+ CalendarLinear as SoCalendarL, CalendarBold as SoCalendarB,
279
+ CalendarMinimalisticLinear as SoCalendarBlankL, CalendarMinimalisticBold as SoCalendarBlankB,
280
+ CalendarMarkLinear as SoCalendarDotsL, CalendarMarkBold as SoCalendarDotsB,
281
+ ClockCircleLinear as SoClockL, ClockCircleBold as SoClockB,
282
+ UploadLinear as SoUploadL, UploadBold as SoUploadB,
283
+ DownloadLinear as SoDownloadL, DownloadBold as SoDownloadB,
284
+ CardLinear as SoCardL, CardBold as SoCardB,
285
+ GalleryLinear as SoCardsL, GalleryBold as SoCardsB,
286
+ ChartLinear as SoChartL, ChartBold as SoChartB,
287
+ GraphUpLinear as SoTrendUpL, GraphUpBold as SoTrendUpB,
288
+ GraphDownLinear as SoTrendDownL, GraphDownBold as SoTrendDownB,
289
+ ChecklistMinimalisticLinear as SoListDashesL, ChecklistMinimalisticBold as SoListDashesB,
290
+ ChecklistLinear as SoListBulletsL, ChecklistBold as SoListBulletsB,
291
+ SidebarMinimalisticLinear as SoSidebarL, SidebarMinimalisticBold as SoSidebarB,
292
+ SidebarCodeLinear as SoSidebarSimpleL, SidebarCodeBold as SoSidebarSimpleB,
293
+ MenuDotsLinear as SoDotsThreeL, MenuDotsBold as SoDotsThreeB,
294
+ CompassLinear as SoCompassL, CompassBold as SoCompassB,
295
+ CheckCircleLinear as SoCheckCircleL, CheckCircleBold as SoCheckCircleB,
296
+ DangerCircleLinear as SoWarningCircleL, DangerCircleBold as SoWarningCircleB,
297
+ ChatRoundLinear as SoChatCircleL, ChatRoundBold as SoChatCircleB,
298
+ ChatRoundDotsLinear as SoChatTextL, ChatRoundDotsBold as SoChatTextB,
299
+ WiFiRouterLinear as SoBroadcastL, WiFiRouterBold as SoBroadcastB,
300
+ BellLinear as SoBellL, BellBold as SoBellB,
301
+ SpeakerLinear as SoMegaphoneL, SpeakerBold as SoMegaphoneB,
302
+ PlaybackSpeedLinear as SoSpeedometerL, PlaybackSpeedBold as SoSpeedometerB,
303
+ RefreshLinear as SoCircleNotchL, RefreshBold as SoCircleNotchB,
304
+ AddSquareLinear as SoRowsPlusBottomL, AddSquareBold as SoRowsPlusBottomB,
305
+ CodeSquareLinear as SoBracketsSquareL, CodeSquareBold as SoBracketsSquareB,
306
+ LetterLinear as SoEnvelopeL, LetterBold as SoEnvelopeB,
307
+ EyeLinear as SoEyeL, EyeBold as SoEyeB,
308
+ EyeClosedLinear as SoEyeSlashL, EyeClosedBold as SoEyeSlashB,
309
+ CameraLinear as SoCameraL, CameraBold as SoCameraB,
310
+ EarthLinear as SoGlobeL, EarthBold as SoGlobeB,
311
+ TextLinear as SoTextL, TextBold as SoTextB,
312
+ CommandLinear as SoCommandL, CommandBold as SoCommandB,
313
+ BranchingPathsUpLinear as SoPathL, BranchingPathsUpBold as SoPathB,
314
+ ForbiddenCircleLinear as SoEmptyL, ForbiddenCircleBold as SoEmptyB,
315
+ WindowFrameLinear as SoSquareL, WindowFrameBold as SoSquareB,
316
+ HamburgerMenuLinear as SoLineSegmentsL, HamburgerMenuBold as SoLineSegmentsB,
317
+ DropperLinear as SoPaintBucketL, DropperBold as SoPaintBucketB,
318
+ FlipHorizontalLinear as SoSplitHorizontalL, FlipHorizontalBold as SoSplitHorizontalB,
319
+ FlipVerticalLinear as SoSplitVerticalL, FlipVerticalBold as SoSplitVerticalB,
320
+ FolderLinear as SoFolderL, FolderBold as SoFolderB,
321
+ FolderOpenLinear as SoFolderOpenL, FolderOpenBold as SoFolderOpenB,
322
+ Folder2Linear as SoFolderSimpleL, Folder2Bold as SoFolderSimpleB,
323
+ FileLinear as SoFileL, FileBold as SoFileB,
324
+ LinkLinear as SoLinkL, LinkBold as SoLinkB,
325
+ LockLinear as SoLockL, LockBold as SoLockB,
326
+ KeyLinear as SoKeyL, KeyBold as SoKeyB,
327
+ Logout3Linear as SoSignOutL, Logout3Bold as SoSignOutB,
328
+ LoginLinear as SoSignInL, LoginBold as SoSignInB,
329
+ CloudUploadLinear as SoCloudUpL, CloudUploadBold as SoCloudUpB,
330
+ CloudDownloadLinear as SoCloudDownL, CloudDownloadBold as SoCloudDownB,
331
+ CloudLinear as SoCloudL, CloudBold as SoCloudB,
332
+ PinLinear as SoMapPinL, PinBold as SoMapPinB,
333
+ PlainLinear as SoPaperPlaneL, PlainBold as SoPaperPlaneB,
334
+ ChatDotsLinear as SoChatCenteredDotsL, ChatDotsBold as SoChatCenteredDotsB,
335
+ HashtagLinear as SoHashL, HashtagBold as SoHashB,
336
+ MailboxLinear as SoAtL, MailboxBold as SoAtB,
337
+ PinLinear as SoPushPinL, PinBold as SoPushPinB,
338
+ BookmarkLinear as SoBookmarkL, BookmarkBold as SoBookmarkB,
339
+ FlagLinear as SoFlagL, FlagBold as SoFlagB,
340
+ BoltLinear as SoLightningL, BoltBold as SoLightningB,
341
+ LightbulbLinear as SoLightbulbL, LightbulbBold as SoLightbulbB,
342
+ FireLinear as SoFireL, FireBold as SoFireB,
343
+ UsersGroupTwoRoundedLinear as SoUsersL, UsersGroupTwoRoundedBold as SoUsersB,
344
+ UsersGroupRoundedLinear as SoUsersThreeL, UsersGroupRoundedBold as SoUsersThreeB,
345
+ AddCircleLinear as SoPlusCircleL, AddCircleBold as SoPlusCircleB,
346
+ CloseCircleLinear as SoXCircleL, CloseCircleBold as SoXCircleB,
347
+ ArrowLeftLinear as SoArrowLeftL, ArrowLeftBold as SoArrowLeftB,
348
+ ArrowUpLinear as SoArrowUpL, ArrowUpBold as SoArrowUpB,
349
+ ArrowDownLinear as SoArrowDownL, ArrowDownBold as SoArrowDownB,
350
+ RefreshLinear as SoArrowClockwiseL, RefreshBold as SoArrowClockwiseB,
351
+ UndoLeftLinear as SoArrowCCWL, UndoLeftBold as SoArrowCCWB,
352
+ TransferHorizontalLinear as SoArrowsLeftRightL, TransferHorizontalBold as SoArrowsLeftRightB,
353
+ FullScreenLinear as SoArrowsOutL, FullScreenBold as SoArrowsOutB,
354
+ MinimizeLinear as SoArrowsInL, MinimizeBold as SoArrowsInB,
355
+ PlayLinear as SoPlayL, PlayBold as SoPlayB,
356
+ PauseLinear as SoPauseL, PauseBold as SoPauseB,
357
+ StopLinear as SoStopL, StopBold as SoStopB,
358
+ ForwardLinear as SoSkipForwardL, ForwardBold as SoSkipForwardB,
359
+ RewindBackLinear as SoSkipBackL, RewindBackBold as SoSkipBackB,
360
+ VolumeLoudLinear as SoSpeakerHighL, VolumeLoudBold as SoSpeakerHighB,
361
+ VolumeSmallLinear as SoSpeakerLowL, VolumeSmallBold as SoSpeakerLowB,
362
+ MutedLinear as SoSpeakerXL, MutedBold as SoSpeakerXB,
363
+ MicrophoneLinear as SoMicrophoneL, MicrophoneBold as SoMicrophoneB,
364
+ HeadphonesRoundLinear as SoHeadphonesL, HeadphonesRoundBold as SoHeadphonesB,
365
+ MusicNotesLinear as SoMusicNoteL, MusicNotesBold as SoMusicNoteB,
366
+ GalleryWideLinear as SoImageL, GalleryWideBold as SoImageB,
367
+ VideocameraLinear as SoVideoCameraL, VideocameraBold as SoVideoCameraB,
368
+ PaperclipLinear as SoPaperclipL, PaperclipBold as SoPaperclipB,
369
+ DisketteLinear as SoFloppyDiskL, DisketteBold as SoFloppyDiskB,
370
+ PrinterLinear as SoPrinterL, PrinterBold as SoPrinterB,
371
+ BoxLinear as SoPackageL, BoxBold as SoPackageB,
372
+ GiftLinear as SoGiftL, GiftBold as SoGiftB,
373
+ CartLargeLinear as SoShoppingCartL, CartLargeBold as SoShoppingCartB,
374
+ DollarLinear as SoDollarL, DollarBold as SoDollarB,
375
+ WalletLinear as SoWalletL, WalletBold as SoWalletB,
376
+ BillLinear as SoBillL, BillBold as SoBillB,
377
+ BuildingsLinear as SoBuildingsL, BuildingsBold as SoBuildingsB,
378
+ ShopLinear as SoStorefrontL, ShopBold as SoStorefrontB,
379
+ DeliveryLinear as SoTruckL, DeliveryBold as SoTruckB,
380
+ BicyclingLinear as SoBicycleL, BicyclingBold as SoBicycleB,
381
+ MapLinear as SoMapTrifoldL, MapBold as SoMapTrifoldB,
382
+ ShieldLinear as SoShieldL, ShieldBold as SoShieldB,
383
+ ShieldCheckLinear as SoShieldCheckL, ShieldCheckBold as SoShieldCheckB,
384
+ HelpLinear as SoLifebuoyL, HelpBold as SoLifebuoyB,
385
+ QuestionCircleLinear as SoQuestionL, QuestionCircleBold as SoQuestionB,
386
+ EmojiFunnyCircleLinear as SoSmileyL, EmojiFunnyCircleBold as SoSmileyB,
387
+ LikeLinear as SoThumbsUpL, LikeBold as SoThumbsUpB,
388
+ DislikeLinear as SoThumbsDownL, DislikeBold as SoThumbsDownB,
389
+ CupFirstLinear as SoTrophyL, CupFirstBold as SoTrophyB,
390
+ MedalRibbonStarLinear as SoMedalL, MedalRibbonStarBold as SoMedalB,
391
+ CrownLinear as SoCrownL, CrownBold as SoCrownB,
392
+ LeafLinear as SoLeafL, LeafBold as SoLeafB,
164
393
  } from "solar-icon-set";
165
394
 
166
395
  // Lucide ──────────────────────────────────────────────────────────
396
+ // phosphor 이름 → lucide의 가장 자연스러운 대응. 수렴 OK.
167
397
  import {
168
398
  Check as LuCheck,
169
399
  AlertTriangle as LuWarning,
400
+ AlertCircle as LuWarningCircle,
401
+ CheckCircle as LuCheckCircle,
402
+ CheckSquare as LuCheckSquare,
403
+ ShieldCheck as LuSealCheck,
170
404
  Star as LuStar,
171
405
  Heart as LuHeart,
172
406
  User as LuUser,
407
+ UserCircle as LuUserCircle,
408
+ IdCard as LuIdCard,
173
409
  Search as LuSearch,
174
410
  Settings as LuGear,
411
+ SlidersHorizontal as LuSliders,
175
412
  Trash as LuTrash,
176
413
  ArrowRight as LuArrowRight,
177
414
  X as LuX,
@@ -184,6 +421,8 @@ import {
184
421
  ChevronsUpDown as LuCaretUpDown,
185
422
  ChevronsLeft as LuCaretDoubleLeft,
186
423
  ChevronsRight as LuCaretDoubleRight,
424
+ ArrowDownCircle as LuCaretCircleDown,
425
+ ArrowUpDown as LuArrowsVertical,
187
426
  Columns as LuColumns,
188
427
  Scissors as LuScissors,
189
428
  Copy as LuCopy,
@@ -198,119 +437,160 @@ import {
198
437
  LayoutGrid as LuLayoutGrid,
199
438
  Grid3X3 as LuGrid3X3,
200
439
  Square as LuSquare,
440
+ Home as LuHouse,
441
+ Palette as LuPalette,
442
+ Ruler as LuRuler,
443
+ Tag as LuTag,
444
+ Minus as LuMinus,
445
+ Plus as LuPlus,
446
+ MinusSquare as LuMinusSquare,
447
+ Type as LuTextAa,
448
+ PaintBucket as LuPaintBucket,
449
+ Layers as LuStack,
450
+ AudioWaveform as LuWaveform,
451
+ MousePointer as LuCursorClick,
452
+ Keyboard as LuKeyboard,
453
+ TextSelection as LuSelection,
454
+ Circle as LuRadioButton,
455
+ ToggleRight as LuToggleRight,
456
+ ToggleLeft as LuToggleLeft,
457
+ Calendar as LuCalendar,
458
+ Clock as LuClock,
459
+ Upload as LuUpload,
460
+ Download as LuDownload,
461
+ Table as LuTable,
462
+ CreditCard as LuCards,
463
+ LineChart as LuChartLine,
464
+ TrendingUp as LuTrendUp,
465
+ TrendingDown as LuTrendDown,
466
+ CircleOff as LuEmpty,
467
+ ListChecks as LuListBullets,
468
+ AlignJustify as LuListDashes,
469
+ Minus as LuLineSegments,
470
+ LayoutTemplate as LuTabs,
471
+ Route as LuPath,
472
+ PanelLeft as LuSidebar,
473
+ PanelLeftClose as LuSidebarSimple,
474
+ MoreHorizontal as LuDotsThree,
475
+ Compass as LuCompass,
476
+ MessageCircle as LuChatCircle,
477
+ MessageSquare as LuChatText,
478
+ Radio as LuBroadcast,
479
+ Bell as LuBell,
480
+ Megaphone as LuMegaphone,
481
+ Gauge as LuSpeedometer,
482
+ Loader2 as LuCircleNotch,
483
+ Command as LuCommand,
484
+ PlusSquare as LuRowsPlusBottom,
485
+ Code as LuBracketsSquare,
486
+ Mail as LuEnvelope,
487
+ Eye as LuEye,
488
+ EyeOff as LuEyeSlash,
489
+ Camera as LuCamera,
490
+ Globe as LuGlobe,
491
+ Rows as LuRows,
492
+ RectangleHorizontal as LuRectangle,
493
+ SplitSquareVertical as LuSplitVertical,
494
+ SplitSquareHorizontal as LuSplitHorizontal,
495
+ Grid as LuGridNine,
496
+ LayoutDashboard as LuLayout,
497
+ Pilcrow as LuTextbox,
498
+ MonitorSmartphone as LuDevices,
499
+ Footprints as LuSteps,
500
+ Contrast as LuSquareHalf,
501
+ Folder as LuFolder,
502
+ FolderOpen as LuFolderOpen,
503
+ File as LuFile,
504
+ Link as LuLink,
505
+ Link2 as LuLinkSimple,
506
+ Lock as LuLock,
507
+ Unlock as LuLockOpen,
508
+ Key as LuKey,
509
+ LogOut as LuSignOut,
510
+ LogIn as LuSignIn,
511
+ CloudUpload as LuCloudUp,
512
+ CloudDownload as LuCloudDown,
513
+ Cloud as LuCloud,
514
+ MapPin as LuMapPin,
515
+ Send as LuPaperPlane,
516
+ Hash as LuHash,
517
+ AtSign as LuAt,
518
+ Pin as LuPushPin,
519
+ Bookmark as LuBookmark,
520
+ Flag as LuFlag,
521
+ Zap as LuLightning,
522
+ Lightbulb as LuLightbulb,
523
+ Flame as LuFire,
524
+ Users as LuUsers,
525
+ UsersRound as LuUsersThree,
526
+ PlusCircle as LuPlusCircle,
527
+ MinusCircle as LuMinusCircleBig,
528
+ XCircle as LuXCircle,
529
+ ArrowLeft as LuArrowLeft,
530
+ ArrowUp as LuArrowUp,
531
+ ArrowDown as LuArrowDown,
532
+ RotateCw as LuArrowClockwise,
533
+ RotateCcw as LuArrowCCW,
534
+ Repeat as LuArrowsClockwise,
535
+ ArrowLeftRight as LuArrowsLeftRight,
536
+ Maximize2 as LuArrowsOut,
537
+ Minimize2 as LuArrowsIn,
538
+ Play as LuPlay,
539
+ Pause as LuPause,
540
+ Square as LuStop,
541
+ SkipForward as LuSkipForward,
542
+ SkipBack as LuSkipBack,
543
+ Volume2 as LuSpeakerHigh,
544
+ Volume as LuSpeakerLow,
545
+ VolumeX as LuSpeakerX,
546
+ Mic as LuMicrophone,
547
+ MicOff as LuMicrophoneSlash,
548
+ Headphones as LuHeadphones,
549
+ Music as LuMusicNote,
550
+ Image as LuImage,
551
+ Video as LuVideoCamera,
552
+ Paperclip as LuPaperclip,
553
+ Save as LuFloppyDisk,
554
+ Printer as LuPrinter,
555
+ Package as LuPackage,
556
+ Gift as LuGift,
557
+ ShoppingCart as LuShoppingCart,
558
+ DollarSign as LuCurrencyDollar,
559
+ CreditCard as LuCreditCard,
560
+ Wallet as LuWallet,
561
+ Receipt as LuReceipt,
562
+ Coins as LuCoins,
563
+ Building2 as LuBuildings,
564
+ Factory as LuFactory,
565
+ Store as LuStorefront,
566
+ Truck as LuTruck,
567
+ Plane as LuAirplane,
568
+ Car as LuCar,
569
+ Bike as LuBicycle,
570
+ Map as LuMapTrifold,
571
+ Navigation as LuNavigation,
572
+ Shield as LuShield,
573
+ LifeBuoy as LuLifebuoy,
574
+ HelpCircle as LuQuestion,
575
+ Smile as LuSmiley,
576
+ Meh as LuSmileyMeh,
577
+ Frown as LuSmileySad,
578
+ ThumbsUp as LuThumbsUp,
579
+ ThumbsDown as LuThumbsDown,
580
+ Hand as LuHandWaving,
581
+ Trophy as LuTrophy,
582
+ Medal as LuMedal,
583
+ Crown as LuCrown,
584
+ Flower as LuFlower,
585
+ Leaf as LuLeaf,
586
+ Trees as LuTree,
201
587
  } from "lucide-react";
202
588
 
203
- // 표준 아이콘 이름. family별 세트가 서로 완전히 겹칠 필요 없음 — 각 family에
204
- // 있는 것만 렌더하고 나머지는 family별 placeholder로 떨어진다.
205
- export type IconName =
206
- | "check"
207
- | "warning"
208
- | "star"
209
- | "heart"
210
- | "user"
211
- | "search"
212
- | "gear"
213
- | "trash"
214
- | "arrow-right"
215
- | "arrows-down-up"
216
- | "x"
217
- | "sun"
218
- | "moon"
219
- | "caret-down"
220
- | "caret-left"
221
- | "caret-right"
222
- | "caret-up"
223
- | "caret-up-down"
224
- | "caret-double-left"
225
- | "caret-double-right"
226
- | "columns"
227
- | "house"
228
- | "palette"
229
- | "ruler"
230
- | "square"
231
- | "text-aa"
232
- | "paint-bucket"
233
- | "stack"
234
- | "waveform"
235
- | "devices"
236
- | "squares-four"
237
- | "cursor-click"
238
- | "split-vertical"
239
- | "rectangle"
240
- | "list"
241
- | "rows"
242
- | "seal-check"
243
- | "user-circle"
244
- | "info"
245
- | "tag"
246
- | "minus"
247
- | "plus"
248
- | "placeholder"
249
- | "textbox"
250
- | "keyboard"
251
- | "article"
252
- | "selection"
253
- | "check-square"
254
- | "radio-button"
255
- | "toggle-right"
256
- | "toggle-left"
257
- | "sliders"
258
- | "calendar"
259
- | "calendar-blank"
260
- | "calendar-dots"
261
- | "clock"
262
- | "upload-simple"
263
- | "download-simple"
264
- | "identification-card"
265
- | "table"
266
- | "grid-four"
267
- | "list-bullets"
268
- | "cards"
269
- | "chart-line"
270
- | "trend-up"
271
- | "trend-down"
272
- | "empty"
273
- | "list-dashes"
274
- | "line-segments"
275
- | "tabs"
276
- | "path"
277
- | "sidebar"
278
- | "sidebar-simple"
279
- | "dots-three"
280
- | "compass"
281
- | "steps"
282
- | "warning-circle"
283
- | "check-circle"
284
- | "square-half"
285
- | "chat-circle"
286
- | "chat-text"
287
- | "broadcast"
288
- | "bell"
289
- | "megaphone"
290
- | "speedometer"
291
- | "circle-notch"
292
- | "dots-three-outline"
293
- | "caret-circle-down"
294
- | "command"
295
- | "rows-plus-bottom"
296
- | "minus-square"
297
- | "brackets-square"
298
- | "grid-nine"
299
- | "arrows-vertical"
300
- | "split-horizontal"
301
- | "layout"
302
- | "envelope"
303
- | "eye"
304
- | "eye-slash"
305
- | "arrow-square-out"
306
- | "pencil-simple"
307
- | "share-network"
308
- | "copy"
309
- | "copy-simple"
310
- | "scissors"
311
- | "clipboard-text"
312
- | "camera"
313
- | "globe";
589
+ /**
590
+ * IconName — phosphor 기준 kebab-case 이름. 매핑 테이블이 커지며 유니온 유지보수
591
+ * 비용이 커져 string 별칭으로 완화. 등록 안 된 이름은 MissingIcon(사각형+대각선) fallback.
592
+ */
593
+ export type IconName = string;
314
594
 
315
595
  type AnyComp = React.ComponentType<any>;
316
596
  // Solar는 weight별 두 컴포넌트가 필요. 다른 family는 단일 컴포넌트.
@@ -425,19 +705,121 @@ const phosphorSet: Partial<Record<IconName, AnyComp>> = {
425
705
  "clipboard-text": PhClipboardText,
426
706
  camera: PhCamera,
427
707
  globe: PhGlobe,
708
+ folder: PhFolder,
709
+ "folder-open": PhFolderOpen,
710
+ "folder-simple": PhFolderSimple,
711
+ file: PhFile,
712
+ "file-text": PhFileText,
713
+ link: PhLink,
714
+ lock: PhLock,
715
+ "lock-open": PhLockOpen,
716
+ key: PhKey,
717
+ "sign-out": PhSignOut,
718
+ "sign-in": PhSignIn,
719
+ "cloud-up": PhCloudUp,
720
+ "cloud-down": PhCloudDown,
721
+ cloud: PhCloud,
722
+ "map-pin": PhMapPin,
723
+ "paper-plane": PhPaperPlane,
724
+ "chat-centered-dots": PhChatCenteredDots,
725
+ hash: PhHash,
726
+ at: PhAt,
727
+ "push-pin": PhPushPin,
728
+ bookmark: PhBookmark,
729
+ flag: PhFlag,
730
+ lightning: PhLightning,
731
+ lightbulb: PhLightbulb,
732
+ fire: PhFire,
733
+ users: PhUsers,
734
+ "users-three": PhUsersThree,
735
+ "plus-circle": PhPlusCircle,
736
+ "minus-circle": PhMinusCircle,
737
+ "x-circle": PhXCircle,
738
+ "arrow-left": PhArrowLeft,
739
+ "arrow-up": PhArrowUp,
740
+ "arrow-down": PhArrowDown,
741
+ "arrow-clockwise": PhArrowClockwise,
742
+ "arrow-counter-clockwise": PhArrowCounterClockwise,
743
+ "arrows-clockwise": PhArrowsClockwise,
744
+ "arrows-left-right": PhArrowsLeftRight,
745
+ "arrows-out": PhArrowsOut,
746
+ "arrows-in": PhArrowsIn,
747
+ "corners-out": PhCornersOut,
748
+ "corners-in": PhCornersIn,
749
+ play: PhPlay,
750
+ pause: PhPause,
751
+ stop: PhStop,
752
+ "skip-forward": PhSkipForward,
753
+ "skip-back": PhSkipBack,
754
+ "speaker-high": PhSpeakerHigh,
755
+ "speaker-low": PhSpeakerLow,
756
+ "speaker-x": PhSpeakerX,
757
+ microphone: PhMicrophone,
758
+ "microphone-slash": PhMicrophoneSlash,
759
+ headphones: PhHeadphones,
760
+ "music-note": PhMusicNote,
761
+ image: PhImage,
762
+ "video-camera": PhVideoCamera,
763
+ paperclip: PhPaperclip,
764
+ "link-simple": PhLinkSimple,
765
+ "floppy-disk": PhFloppyDisk,
766
+ printer: PhPrinter,
767
+ package: PhPackage,
768
+ gift: PhGift,
769
+ "shopping-cart": PhShoppingCart,
770
+ "currency-dollar": PhCurrencyDollar,
771
+ "credit-card": PhCreditCard,
772
+ wallet: PhWallet,
773
+ receipt: PhReceipt,
774
+ coins: PhCoins,
775
+ buildings: PhBuildings,
776
+ factory: PhFactory,
777
+ storefront: PhStorefront,
778
+ truck: PhTruck,
779
+ airplane: PhAirplane,
780
+ car: PhCar,
781
+ bicycle: PhBicycle,
782
+ "map-trifold": PhMapTrifold,
783
+ navigation: PhNavigation,
784
+ shield: PhShield,
785
+ "shield-check": PhShieldCheck,
786
+ lifebuoy: PhLifebuoy,
787
+ question: PhQuestion,
788
+ smiley: PhSmiley,
789
+ "smiley-meh": PhSmileyMeh,
790
+ "smiley-sad": PhSmileySad,
791
+ "thumbs-up": PhThumbsUp,
792
+ "thumbs-down": PhThumbsDown,
793
+ "hand-waving": PhHandWaving,
794
+ trophy: PhTrophy,
795
+ medal: PhMedal,
796
+ crown: PhCrown,
797
+ flower: PhFlower,
798
+ leaf: PhLeaf,
799
+ tree: PhTree,
428
800
  };
429
801
 
430
- /* solar 세트 — 라이브러리에 자연스러운 1:1 대응이 있는 것만.
431
- 매핑 안 된 이름은 solar family에서 placeholder로 떨어진다. */
802
+ /* solar 세트 — phosphor 이름 → solar의 가장 자연스러운 대응.
803
+ phosphor가 가짓수가 더 풍부해서 "여러 phosphor 이름이 같은 solar 아이콘으로 수렴"하는 건
804
+ 당연. placeholder 최소화가 목적. */
432
805
  const solarSet: Partial<Record<IconName, SolarPair>> = {
806
+ check: { regular: SoCheckL, fill: SoCheckB },
433
807
  warning: { regular: SoWarningL, fill: SoWarningB },
808
+ "warning-circle": { regular: SoWarningCircleL, fill: SoWarningCircleB },
809
+ "check-circle": { regular: SoCheckCircleL, fill: SoCheckCircleB },
810
+ "check-square": { regular: SoCheckL, fill: SoCheckB },
811
+ "seal-check": { regular: SoCheckCircleL, fill: SoCheckCircleB },
434
812
  star: { regular: SoStarL, fill: SoStarB },
435
813
  heart: { regular: SoHeartL, fill: SoHeartB },
436
814
  user: { regular: SoUserL, fill: SoUserB },
815
+ "user-circle": { regular: SoUserCircleL, fill: SoUserCircleB },
816
+ "identification-card": { regular: SoCardL, fill: SoCardB },
437
817
  search: { regular: SoSearchL, fill: SoSearchB },
438
818
  gear: { regular: SoGearL, fill: SoGearB },
819
+ sliders: { regular: SoSlidersL, fill: SoSlidersB },
439
820
  trash: { regular: SoTrashL, fill: SoTrashB },
440
821
  "arrow-right": { regular: SoArrowRightL, fill: SoArrowRightB },
822
+ x: { regular: SoXL, fill: SoXB },
441
823
  sun: { regular: SoSunL, fill: SoSunB },
442
824
  moon: { regular: SoMoonL, fill: SoMoonB },
443
825
  "caret-down": { regular: SoCaretDownL, fill: SoCaretDownB },
@@ -447,11 +829,69 @@ const solarSet: Partial<Record<IconName, SolarPair>> = {
447
829
  "caret-up-down": { regular: SoCaretUpDownL, fill: SoCaretUpDownB },
448
830
  "caret-double-left": { regular: SoCaretDoubleLeftL, fill: SoCaretDoubleLeftB },
449
831
  "caret-double-right": { regular: SoCaretDoubleRightL, fill: SoCaretDoubleRightB },
832
+ "caret-circle-down": { regular: SoCaretDownL, fill: SoCaretDownB },
833
+ "arrows-vertical": { regular: SoCaretUpDownL, fill: SoCaretUpDownB },
834
+ columns: { regular: SoWidget4L, fill: SoWidget4B },
835
+ layout: { regular: SoWidgetL, fill: SoWidgetB },
836
+ house: { regular: SoHomeL, fill: SoHomeB },
837
+ palette: { regular: SoPaletteL, fill: SoPaletteB },
838
+ ruler: { regular: SoRulerL, fill: SoRulerB },
839
+ tag: { regular: SoTagL, fill: SoTagB },
840
+ minus: { regular: SoMinusL, fill: SoMinusB },
841
+ plus: { regular: SoPlusL, fill: SoPlusB },
842
+ "minus-square": { regular: SoMinusSquareL, fill: SoMinusSquareB },
843
+ "text-aa": { regular: SoTextL, fill: SoTextB },
844
+ stack: { regular: SoStackL, fill: SoStackB },
845
+ waveform: { regular: SoWaveformL, fill: SoWaveformB },
846
+ devices: { regular: SoDevicesL, fill: SoDevicesB },
450
847
  "squares-four": { regular: SoWidget5L, fill: SoWidget5B },
848
+ "cursor-click": { regular: SoCursorL, fill: SoCursorB },
849
+ rectangle: { regular: SoCardL, fill: SoCardB },
451
850
  list: { regular: SoListL, fill: SoListB },
851
+ "list-bullets": { regular: SoListBulletsL, fill: SoListBulletsB },
852
+ "list-dashes": { regular: SoListDashesL, fill: SoListDashesB },
853
+ rows: { regular: SoWidget2L, fill: SoWidget2B },
854
+ textbox: { regular: SoTextL, fill: SoTextB },
855
+ keyboard: { regular: SoKeyboardL, fill: SoKeyboardB },
452
856
  info: { regular: SoInfoCircleL, fill: SoInfoCircleB },
453
857
  article: { regular: SoDocumentTextL, fill: SoDocumentTextB },
454
858
  "grid-four": { regular: SoWidget2L, fill: SoWidget2B },
859
+ "grid-nine": { regular: SoWidget5L, fill: SoWidget5B },
860
+ selection: { regular: SoSelectionL, fill: SoSelectionB },
861
+ "radio-button": { regular: SoRadioL, fill: SoRadioB },
862
+ "toggle-right": { regular: SoRadioL, fill: SoRadioB },
863
+ "toggle-left": { regular: SoRadioL, fill: SoRadioB },
864
+ calendar: { regular: SoCalendarL, fill: SoCalendarB },
865
+ "calendar-blank": { regular: SoCalendarBlankL, fill: SoCalendarBlankB },
866
+ "calendar-dots": { regular: SoCalendarDotsL, fill: SoCalendarDotsB },
867
+ clock: { regular: SoClockL, fill: SoClockB },
868
+ "upload-simple": { regular: SoUploadL, fill: SoUploadB },
869
+ "download-simple": { regular: SoDownloadL, fill: SoDownloadB },
870
+ table: { regular: SoWidget4L, fill: SoWidget4B },
871
+ cards: { regular: SoCardsL, fill: SoCardsB },
872
+ "chart-line": { regular: SoChartL, fill: SoChartB },
873
+ "trend-up": { regular: SoTrendUpL, fill: SoTrendUpB },
874
+ "trend-down": { regular: SoTrendDownL, fill: SoTrendDownB },
875
+ tabs: { regular: SoWidget4L, fill: SoWidget4B },
876
+ path: { regular: SoPathL, fill: SoPathB },
877
+ sidebar: { regular: SoSidebarL, fill: SoSidebarB },
878
+ "sidebar-simple": { regular: SoSidebarSimpleL, fill: SoSidebarSimpleB },
879
+ "dots-three": { regular: SoDotsThreeL, fill: SoDotsThreeB },
880
+ "dots-three-outline": { regular: SoDotsThreeL, fill: SoDotsThreeB },
881
+ compass: { regular: SoCompassL, fill: SoCompassB },
882
+ "chat-circle": { regular: SoChatCircleL, fill: SoChatCircleB },
883
+ "chat-text": { regular: SoChatTextL, fill: SoChatTextB },
884
+ broadcast: { regular: SoBroadcastL, fill: SoBroadcastB },
885
+ bell: { regular: SoBellL, fill: SoBellB },
886
+ megaphone: { regular: SoMegaphoneL, fill: SoMegaphoneB },
887
+ speedometer: { regular: SoSpeedometerL, fill: SoSpeedometerB },
888
+ "circle-notch": { regular: SoCircleNotchL, fill: SoCircleNotchB },
889
+ command: { regular: SoCommandL, fill: SoCommandB },
890
+ "rows-plus-bottom": { regular: SoRowsPlusBottomL, fill: SoRowsPlusBottomB },
891
+ "brackets-square": { regular: SoBracketsSquareL, fill: SoBracketsSquareB },
892
+ envelope: { regular: SoEnvelopeL, fill: SoEnvelopeB },
893
+ eye: { regular: SoEyeL, fill: SoEyeB },
894
+ "eye-slash": { regular: SoEyeSlashL, fill: SoEyeSlashB },
455
895
  "arrow-square-out": { regular: SoSquareTopUpL, fill: SoSquareTopUpB },
456
896
  "pencil-simple": { regular: SoPenL, fill: SoPenB },
457
897
  "share-network": { regular: SoShareL, fill: SoShareB },
@@ -459,17 +899,127 @@ const solarSet: Partial<Record<IconName, SolarPair>> = {
459
899
  "copy-simple": { regular: SoCopyL, fill: SoCopyB },
460
900
  scissors: { regular: SoScissorsL, fill: SoScissorsB },
461
901
  "clipboard-text": { regular: SoClipboardTextL, fill: SoClipboardTextB },
902
+ camera: { regular: SoCameraL, fill: SoCameraB },
903
+ globe: { regular: SoGlobeL, fill: SoGlobeB },
904
+ empty: { regular: SoEmptyL, fill: SoEmptyB },
905
+ placeholder: { regular: SoSquareL, fill: SoSquareB },
906
+ square: { regular: SoSquareL, fill: SoSquareB },
907
+ "square-half": { regular: SoSquareL, fill: SoSquareB },
908
+ steps: { regular: SoPathL, fill: SoPathB },
909
+ "line-segments": { regular: SoLineSegmentsL, fill: SoLineSegmentsB },
910
+ "paint-bucket": { regular: SoPaintBucketL, fill: SoPaintBucketB },
911
+ "split-horizontal": { regular: SoSplitHorizontalL, fill: SoSplitHorizontalB },
912
+ "split-vertical": { regular: SoSplitVerticalL, fill: SoSplitVerticalB },
913
+ folder: { regular: SoFolderL, fill: SoFolderB },
914
+ "folder-open": { regular: SoFolderOpenL, fill: SoFolderOpenB },
915
+ "folder-simple": { regular: SoFolderSimpleL, fill: SoFolderSimpleB },
916
+ file: { regular: SoFileL, fill: SoFileB },
917
+ "file-text": { regular: SoDocumentTextL, fill: SoDocumentTextB },
918
+ link: { regular: SoLinkL, fill: SoLinkB },
919
+ "link-simple": { regular: SoLinkL, fill: SoLinkB },
920
+ lock: { regular: SoLockL, fill: SoLockB },
921
+ "lock-open": { regular: SoLockL, fill: SoLockB },
922
+ key: { regular: SoKeyL, fill: SoKeyB },
923
+ "sign-out": { regular: SoSignOutL, fill: SoSignOutB },
924
+ "sign-in": { regular: SoSignInL, fill: SoSignInB },
925
+ "cloud-up": { regular: SoCloudUpL, fill: SoCloudUpB },
926
+ "cloud-down": { regular: SoCloudDownL, fill: SoCloudDownB },
927
+ cloud: { regular: SoCloudL, fill: SoCloudB },
928
+ "map-pin": { regular: SoMapPinL, fill: SoMapPinB },
929
+ "push-pin": { regular: SoPushPinL, fill: SoPushPinB },
930
+ "paper-plane": { regular: SoPaperPlaneL, fill: SoPaperPlaneB },
931
+ "chat-centered-dots": { regular: SoChatCenteredDotsL, fill: SoChatCenteredDotsB },
932
+ hash: { regular: SoHashL, fill: SoHashB },
933
+ at: { regular: SoAtL, fill: SoAtB },
934
+ bookmark: { regular: SoBookmarkL, fill: SoBookmarkB },
935
+ flag: { regular: SoFlagL, fill: SoFlagB },
936
+ lightning: { regular: SoLightningL, fill: SoLightningB },
937
+ lightbulb: { regular: SoLightbulbL, fill: SoLightbulbB },
938
+ fire: { regular: SoFireL, fill: SoFireB },
939
+ users: { regular: SoUsersL, fill: SoUsersB },
940
+ "users-three": { regular: SoUsersThreeL, fill: SoUsersThreeB },
941
+ "plus-circle": { regular: SoPlusCircleL, fill: SoPlusCircleB },
942
+ "minus-circle": { regular: SoMinusL, fill: SoMinusB },
943
+ "x-circle": { regular: SoXCircleL, fill: SoXCircleB },
944
+ "arrow-left": { regular: SoArrowLeftL, fill: SoArrowLeftB },
945
+ "arrow-up": { regular: SoArrowUpL, fill: SoArrowUpB },
946
+ "arrow-down": { regular: SoArrowDownL, fill: SoArrowDownB },
947
+ "arrow-clockwise": { regular: SoArrowClockwiseL, fill: SoArrowClockwiseB },
948
+ "arrow-counter-clockwise": { regular: SoArrowCCWL, fill: SoArrowCCWB },
949
+ "arrows-clockwise": { regular: SoArrowClockwiseL, fill: SoArrowClockwiseB },
950
+ "arrows-left-right": { regular: SoArrowsLeftRightL, fill: SoArrowsLeftRightB },
951
+ "arrows-out": { regular: SoArrowsOutL, fill: SoArrowsOutB },
952
+ "arrows-in": { regular: SoArrowsInL, fill: SoArrowsInB },
953
+ "corners-out": { regular: SoArrowsOutL, fill: SoArrowsOutB },
954
+ "corners-in": { regular: SoArrowsInL, fill: SoArrowsInB },
955
+ play: { regular: SoPlayL, fill: SoPlayB },
956
+ pause: { regular: SoPauseL, fill: SoPauseB },
957
+ stop: { regular: SoStopL, fill: SoStopB },
958
+ "skip-forward": { regular: SoSkipForwardL, fill: SoSkipForwardB },
959
+ "skip-back": { regular: SoSkipBackL, fill: SoSkipBackB },
960
+ "speaker-high": { regular: SoSpeakerHighL, fill: SoSpeakerHighB },
961
+ "speaker-low": { regular: SoSpeakerLowL, fill: SoSpeakerLowB },
962
+ "speaker-x": { regular: SoSpeakerXL, fill: SoSpeakerXB },
963
+ microphone: { regular: SoMicrophoneL, fill: SoMicrophoneB },
964
+ "microphone-slash": { regular: SoSpeakerXL, fill: SoSpeakerXB },
965
+ headphones: { regular: SoHeadphonesL, fill: SoHeadphonesB },
966
+ "music-note": { regular: SoMusicNoteL, fill: SoMusicNoteB },
967
+ image: { regular: SoImageL, fill: SoImageB },
968
+ "video-camera": { regular: SoVideoCameraL, fill: SoVideoCameraB },
969
+ paperclip: { regular: SoPaperclipL, fill: SoPaperclipB },
970
+ "floppy-disk": { regular: SoFloppyDiskL, fill: SoFloppyDiskB },
971
+ printer: { regular: SoPrinterL, fill: SoPrinterB },
972
+ package: { regular: SoPackageL, fill: SoPackageB },
973
+ gift: { regular: SoGiftL, fill: SoGiftB },
974
+ "shopping-cart": { regular: SoShoppingCartL, fill: SoShoppingCartB },
975
+ "currency-dollar": { regular: SoDollarL, fill: SoDollarB },
976
+ "credit-card": { regular: SoCardL, fill: SoCardB },
977
+ wallet: { regular: SoWalletL, fill: SoWalletB },
978
+ receipt: { regular: SoBillL, fill: SoBillB },
979
+ coins: { regular: SoDollarL, fill: SoDollarB },
980
+ buildings: { regular: SoBuildingsL, fill: SoBuildingsB },
981
+ factory: { regular: SoBuildingsL, fill: SoBuildingsB },
982
+ storefront: { regular: SoStorefrontL, fill: SoStorefrontB },
983
+ truck: { regular: SoTruckL, fill: SoTruckB },
984
+ airplane: { regular: SoPaperPlaneL, fill: SoPaperPlaneB },
985
+ car: { regular: SoTruckL, fill: SoTruckB },
986
+ bicycle: { regular: SoBicycleL, fill: SoBicycleB },
987
+ "map-trifold": { regular: SoMapTrifoldL, fill: SoMapTrifoldB },
988
+ navigation: { regular: SoCompassL, fill: SoCompassB },
989
+ shield: { regular: SoShieldL, fill: SoShieldB },
990
+ "shield-check": { regular: SoShieldCheckL, fill: SoShieldCheckB },
991
+ lifebuoy: { regular: SoLifebuoyL, fill: SoLifebuoyB },
992
+ question: { regular: SoQuestionL, fill: SoQuestionB },
993
+ smiley: { regular: SoSmileyL, fill: SoSmileyB },
994
+ "smiley-meh": { regular: SoSmileyL, fill: SoSmileyB },
995
+ "smiley-sad": { regular: SoSmileyL, fill: SoSmileyB },
996
+ "thumbs-up": { regular: SoThumbsUpL, fill: SoThumbsUpB },
997
+ "thumbs-down": { regular: SoThumbsDownL, fill: SoThumbsDownB },
998
+ "hand-waving": { regular: SoHeartL, fill: SoHeartB },
999
+ trophy: { regular: SoTrophyL, fill: SoTrophyB },
1000
+ medal: { regular: SoMedalL, fill: SoMedalB },
1001
+ crown: { regular: SoCrownL, fill: SoCrownB },
1002
+ flower: { regular: SoLeafL, fill: SoLeafB },
1003
+ leaf: { regular: SoLeafL, fill: SoLeafB },
1004
+ tree: { regular: SoLeafL, fill: SoLeafB },
462
1005
  };
463
1006
 
464
- /* lucide 세트 — 자연스러운 대응이 있는 것만. */
1007
+ /* lucide 세트 — phosphor 이름 → lucide의 가장 자연스러운 대응. 수렴 OK. */
465
1008
  const lucideSet: Partial<Record<IconName, AnyComp>> = {
466
1009
  check: LuCheck,
467
1010
  warning: LuWarning,
1011
+ "warning-circle": LuWarningCircle,
1012
+ "check-circle": LuCheckCircle,
1013
+ "check-square": LuCheckSquare,
1014
+ "seal-check": LuSealCheck,
468
1015
  star: LuStar,
469
1016
  heart: LuHeart,
470
1017
  user: LuUser,
1018
+ "user-circle": LuUserCircle,
1019
+ "identification-card": LuIdCard,
471
1020
  search: LuSearch,
472
1021
  gear: LuGear,
1022
+ sliders: LuSliders,
473
1023
  trash: LuTrash,
474
1024
  "arrow-right": LuArrowRight,
475
1025
  x: LuX,
@@ -482,8 +1032,72 @@ const lucideSet: Partial<Record<IconName, AnyComp>> = {
482
1032
  "caret-up-down": LuCaretUpDown,
483
1033
  "caret-double-left": LuCaretDoubleLeft,
484
1034
  "caret-double-right": LuCaretDoubleRight,
1035
+ "caret-circle-down": LuCaretCircleDown,
1036
+ "arrows-vertical": LuArrowsVertical,
485
1037
  columns: LuColumns,
486
1038
  square: LuSquare,
1039
+ placeholder: LuSquare,
1040
+ rectangle: LuRectangle,
1041
+ layout: LuLayout,
1042
+ house: LuHouse,
1043
+ palette: LuPalette,
1044
+ ruler: LuRuler,
1045
+ tag: LuTag,
1046
+ minus: LuMinus,
1047
+ plus: LuPlus,
1048
+ "minus-square": LuMinusSquare,
1049
+ "text-aa": LuTextAa,
1050
+ "paint-bucket": LuPaintBucket,
1051
+ stack: LuStack,
1052
+ waveform: LuWaveform,
1053
+ "cursor-click": LuCursorClick,
1054
+ keyboard: LuKeyboard,
1055
+ textbox: LuTextbox,
1056
+ selection: LuSelection,
1057
+ "radio-button": LuRadioButton,
1058
+ "toggle-right": LuToggleRight,
1059
+ "toggle-left": LuToggleLeft,
1060
+ calendar: LuCalendar,
1061
+ "calendar-blank": LuCalendar,
1062
+ "calendar-dots": LuCalendar,
1063
+ clock: LuClock,
1064
+ "upload-simple": LuUpload,
1065
+ "download-simple": LuDownload,
1066
+ table: LuTable,
1067
+ cards: LuCards,
1068
+ "chart-line": LuChartLine,
1069
+ "trend-up": LuTrendUp,
1070
+ "trend-down": LuTrendDown,
1071
+ empty: LuEmpty,
1072
+ "list-bullets": LuListBullets,
1073
+ "list-dashes": LuListDashes,
1074
+ "line-segments": LuLineSegments,
1075
+ rows: LuRows,
1076
+ tabs: LuTabs,
1077
+ path: LuPath,
1078
+ sidebar: LuSidebar,
1079
+ "sidebar-simple": LuSidebarSimple,
1080
+ "dots-three": LuDotsThree,
1081
+ "dots-three-outline": LuDotsThree,
1082
+ compass: LuCompass,
1083
+ "chat-circle": LuChatCircle,
1084
+ "chat-text": LuChatText,
1085
+ broadcast: LuBroadcast,
1086
+ bell: LuBell,
1087
+ megaphone: LuMegaphone,
1088
+ speedometer: LuSpeedometer,
1089
+ "circle-notch": LuCircleNotch,
1090
+ command: LuCommand,
1091
+ "rows-plus-bottom": LuRowsPlusBottom,
1092
+ "brackets-square": LuBracketsSquare,
1093
+ "grid-nine": LuGridNine,
1094
+ "split-vertical": LuSplitVertical,
1095
+ "split-horizontal": LuSplitHorizontal,
1096
+ envelope: LuEnvelope,
1097
+ eye: LuEye,
1098
+ "eye-slash": LuEyeSlash,
1099
+ camera: LuCamera,
1100
+ globe: LuGlobe,
487
1101
  "squares-four": LuGrid3X3,
488
1102
  list: LuList,
489
1103
  info: LuInfo,
@@ -496,6 +1110,101 @@ const lucideSet: Partial<Record<IconName, AnyComp>> = {
496
1110
  "copy-simple": LuFiles,
497
1111
  scissors: LuScissors,
498
1112
  "clipboard-text": LuClipboardType,
1113
+ devices: LuDevices,
1114
+ steps: LuSteps,
1115
+ "square-half": LuSquareHalf,
1116
+ folder: LuFolder,
1117
+ "folder-open": LuFolderOpen,
1118
+ "folder-simple": LuFolder,
1119
+ file: LuFile,
1120
+ "file-text": LuFileText,
1121
+ link: LuLink,
1122
+ "link-simple": LuLinkSimple,
1123
+ lock: LuLock,
1124
+ "lock-open": LuLockOpen,
1125
+ key: LuKey,
1126
+ "sign-out": LuSignOut,
1127
+ "sign-in": LuSignIn,
1128
+ "cloud-up": LuCloudUp,
1129
+ "cloud-down": LuCloudDown,
1130
+ cloud: LuCloud,
1131
+ "map-pin": LuMapPin,
1132
+ "push-pin": LuPushPin,
1133
+ "paper-plane": LuPaperPlane,
1134
+ "chat-centered-dots": LuChatText,
1135
+ hash: LuHash,
1136
+ at: LuAt,
1137
+ bookmark: LuBookmark,
1138
+ flag: LuFlag,
1139
+ lightning: LuLightning,
1140
+ lightbulb: LuLightbulb,
1141
+ fire: LuFire,
1142
+ users: LuUsers,
1143
+ "users-three": LuUsersThree,
1144
+ "plus-circle": LuPlusCircle,
1145
+ "minus-circle": LuMinusCircleBig,
1146
+ "x-circle": LuXCircle,
1147
+ "arrow-left": LuArrowLeft,
1148
+ "arrow-up": LuArrowUp,
1149
+ "arrow-down": LuArrowDown,
1150
+ "arrow-clockwise": LuArrowClockwise,
1151
+ "arrow-counter-clockwise": LuArrowCCW,
1152
+ "arrows-clockwise": LuArrowsClockwise,
1153
+ "arrows-left-right": LuArrowsLeftRight,
1154
+ "arrows-out": LuArrowsOut,
1155
+ "arrows-in": LuArrowsIn,
1156
+ "corners-out": LuArrowsOut,
1157
+ "corners-in": LuArrowsIn,
1158
+ play: LuPlay,
1159
+ pause: LuPause,
1160
+ stop: LuStop,
1161
+ "skip-forward": LuSkipForward,
1162
+ "skip-back": LuSkipBack,
1163
+ "speaker-high": LuSpeakerHigh,
1164
+ "speaker-low": LuSpeakerLow,
1165
+ "speaker-x": LuSpeakerX,
1166
+ microphone: LuMicrophone,
1167
+ "microphone-slash": LuMicrophoneSlash,
1168
+ headphones: LuHeadphones,
1169
+ "music-note": LuMusicNote,
1170
+ image: LuImage,
1171
+ "video-camera": LuVideoCamera,
1172
+ paperclip: LuPaperclip,
1173
+ "floppy-disk": LuFloppyDisk,
1174
+ printer: LuPrinter,
1175
+ package: LuPackage,
1176
+ gift: LuGift,
1177
+ "shopping-cart": LuShoppingCart,
1178
+ "currency-dollar": LuCurrencyDollar,
1179
+ "credit-card": LuCreditCard,
1180
+ wallet: LuWallet,
1181
+ receipt: LuReceipt,
1182
+ coins: LuCoins,
1183
+ buildings: LuBuildings,
1184
+ factory: LuFactory,
1185
+ storefront: LuStorefront,
1186
+ truck: LuTruck,
1187
+ airplane: LuAirplane,
1188
+ car: LuCar,
1189
+ bicycle: LuBicycle,
1190
+ "map-trifold": LuMapTrifold,
1191
+ navigation: LuNavigation,
1192
+ shield: LuShield,
1193
+ "shield-check": LuSealCheck,
1194
+ lifebuoy: LuLifebuoy,
1195
+ question: LuQuestion,
1196
+ smiley: LuSmiley,
1197
+ "smiley-meh": LuSmileyMeh,
1198
+ "smiley-sad": LuSmileySad,
1199
+ "thumbs-up": LuThumbsUp,
1200
+ "thumbs-down": LuThumbsDown,
1201
+ "hand-waving": LuHandWaving,
1202
+ trophy: LuTrophy,
1203
+ medal: LuMedal,
1204
+ crown: LuCrown,
1205
+ flower: LuFlower,
1206
+ leaf: LuLeaf,
1207
+ tree: LuTree,
499
1208
  };
500
1209
 
501
1210
  /* family 공통 fallback — 매핑 없는 아이콘 호출 시 "사각형 + 대각선" 금지표시 느낌.