@almadar/ui 5.1.2 → 5.1.4

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.
@@ -1212,53 +1212,57 @@ function warnFallback(name, family) {
1212
1212
  );
1213
1213
  }
1214
1214
  }
1215
- function makeLucideAdapter(name) {
1215
+ function makeLucideAdapter(name, isFallback = false) {
1216
1216
  const LucideComp = resolveLucide(name);
1217
- const Adapter = (props) => /* @__PURE__ */ jsx(
1218
- LucideComp,
1219
- {
1220
- className: props.className,
1221
- strokeWidth: props.strokeWidth,
1222
- style: props.style,
1223
- size: props.size
1224
- }
1225
- );
1226
- Adapter.displayName = `Lucide.${name}`;
1217
+ const Adapter = (props) => {
1218
+ const stroke = props.strokeWidth ?? (isFallback ? 2 : void 0);
1219
+ const style = isFallback ? { ...props.style ?? {}, strokeWidth: stroke ?? 2 } : props.style;
1220
+ return /* @__PURE__ */ jsx(
1221
+ LucideComp,
1222
+ {
1223
+ className: props.className,
1224
+ strokeWidth: stroke,
1225
+ style,
1226
+ size: props.size
1227
+ }
1228
+ );
1229
+ };
1230
+ Adapter.displayName = `Lucide.${name}${isFallback ? ".fallback" : ""}`;
1227
1231
  return Adapter;
1228
1232
  }
1229
1233
  function resolveIconForFamily(name, family) {
1230
1234
  switch (family) {
1231
1235
  case "lucide":
1232
- return makeLucideAdapter(name);
1236
+ return makeLucideAdapter(name, false);
1233
1237
  case "phosphor-outline": {
1234
1238
  const p2 = resolvePhosphor(name, "regular");
1235
1239
  if (p2) return p2;
1236
1240
  warnFallback(name, family);
1237
- return makeLucideAdapter(name);
1241
+ return makeLucideAdapter(name, true);
1238
1242
  }
1239
1243
  case "phosphor-fill": {
1240
1244
  const p2 = resolvePhosphor(name, "fill");
1241
1245
  if (p2) return p2;
1242
1246
  warnFallback(name, family);
1243
- return makeLucideAdapter(name);
1247
+ return makeLucideAdapter(name, true);
1244
1248
  }
1245
1249
  case "phosphor-duotone": {
1246
1250
  const p2 = resolvePhosphor(name, "duotone");
1247
1251
  if (p2) return p2;
1248
1252
  warnFallback(name, family);
1249
- return makeLucideAdapter(name);
1253
+ return makeLucideAdapter(name, true);
1250
1254
  }
1251
1255
  case "tabler": {
1252
1256
  const t = resolveTabler(name);
1253
1257
  if (t) return t;
1254
1258
  warnFallback(name, family);
1255
- return makeLucideAdapter(name);
1259
+ return makeLucideAdapter(name, true);
1256
1260
  }
1257
1261
  case "fa-solid": {
1258
1262
  const f3 = resolveFa(name);
1259
1263
  if (f3) return f3;
1260
1264
  warnFallback(name, family);
1261
- return makeLucideAdapter(name);
1265
+ return makeLucideAdapter(name, true);
1262
1266
  }
1263
1267
  }
1264
1268
  }
@@ -1396,7 +1400,11 @@ var init_iconFamily = __esm({
1396
1400
  info: "InfoCircle"
1397
1401
  };
1398
1402
  faAliases = {
1399
- // lucide name → fa-solid suffix (after the `Fa` prefix)
1403
+ // lucide name → fa-solid suffix (after the `Fa` prefix).
1404
+ // react-icons/fa ships FontAwesome 5 — names like `FaFileText` don't exist
1405
+ // (FA renamed to `FaFileAlt`). When you see a console.warn from
1406
+ // [iconFamily] about an unmapped lucide name in this family, add the
1407
+ // closest FA5 sibling here so the fallback stays in-family.
1400
1408
  search: "Search",
1401
1409
  close: "Times",
1402
1410
  x: "Times",
@@ -1448,7 +1456,93 @@ var init_iconFamily = __esm({
1448
1456
  more: "EllipsisH",
1449
1457
  "more-vertical": "EllipsisV",
1450
1458
  info: "InfoCircle",
1451
- warning: "ExclamationTriangle"
1459
+ warning: "ExclamationTriangle",
1460
+ // Files (FA renamed FileText → FileAlt)
1461
+ file: "File",
1462
+ "file-text": "FileAlt",
1463
+ "file-plus": "FileMedical",
1464
+ "file-minus": "FileExcel",
1465
+ "file-check": "FileSignature",
1466
+ document: "FileAlt",
1467
+ // Charts (lucide BarChart2 / BarChart3 → FA ChartBar)
1468
+ "bar-chart": "ChartBar",
1469
+ "bar-chart-2": "ChartBar",
1470
+ "bar-chart-3": "ChartBar",
1471
+ "line-chart": "ChartLine",
1472
+ "pie-chart": "ChartPie",
1473
+ activity: "ChartLine",
1474
+ "trending-up": "ChartLine",
1475
+ "trending-down": "ChartLine",
1476
+ // Messages (lucide MessageCircle/MessageSquare → FA CommentDots/CommentAlt)
1477
+ message: "Comment",
1478
+ "message-circle": "CommentDots",
1479
+ "message-square": "CommentAlt",
1480
+ "messages-square": "Comments",
1481
+ comment: "Comment",
1482
+ comments: "Comments",
1483
+ inbox: "Inbox",
1484
+ // Support / help
1485
+ "life-buoy": "LifeRing",
1486
+ lifebuoy: "LifeRing",
1487
+ // Project / kanban (FA has no kanban; closest semantic is Tasks/Columns)
1488
+ kanban: "Tasks",
1489
+ columns: "Columns",
1490
+ rows: "Bars",
1491
+ layout: "ThLarge",
1492
+ grid: "Th",
1493
+ list: "List",
1494
+ table: "Table",
1495
+ // Storage / folders
1496
+ folder: "Folder",
1497
+ "folder-open": "FolderOpen",
1498
+ archive: "Archive",
1499
+ bookmark: "Bookmark",
1500
+ briefcase: "Briefcase",
1501
+ package: "Box",
1502
+ box: "Box",
1503
+ // Map / location
1504
+ map: "Map",
1505
+ "map-pin": "MapMarkerAlt",
1506
+ navigation: "LocationArrow",
1507
+ compass: "Compass",
1508
+ globe: "Globe",
1509
+ target: "Bullseye",
1510
+ // Media
1511
+ image: "Image",
1512
+ video: "Video",
1513
+ film: "Film",
1514
+ camera: "Camera",
1515
+ music: "Music",
1516
+ play: "Play",
1517
+ pause: "Pause",
1518
+ "skip-forward": "Forward",
1519
+ "skip-back": "Backward",
1520
+ volume: "VolumeUp",
1521
+ "volume-2": "VolumeUp",
1522
+ "volume-x": "VolumeMute",
1523
+ mic: "Microphone",
1524
+ "mic-off": "MicrophoneSlash",
1525
+ phone: "Phone",
1526
+ // Code / data
1527
+ code: "Code",
1528
+ terminal: "Terminal",
1529
+ database: "Database",
1530
+ server: "Server",
1531
+ cloud: "Cloud",
1532
+ wifi: "Wifi",
1533
+ // Security
1534
+ shield: "ShieldAlt",
1535
+ key: "Key",
1536
+ // Misc actions
1537
+ printer: "Print",
1538
+ save: "Save",
1539
+ link: "Link",
1540
+ unlink: "Unlink",
1541
+ paperclip: "Paperclip",
1542
+ flag: "Flag",
1543
+ tag: "Tag",
1544
+ tags: "Tags",
1545
+ zap: "Bolt"
1452
1546
  };
1453
1547
  warned = /* @__PURE__ */ new Set();
1454
1548
  }
@@ -3231,7 +3231,11 @@ function resolveTabler(name) {
3231
3231
  return Adapter;
3232
3232
  }
3233
3233
  var faAliases = {
3234
- // lucide name → fa-solid suffix (after the `Fa` prefix)
3234
+ // lucide name → fa-solid suffix (after the `Fa` prefix).
3235
+ // react-icons/fa ships FontAwesome 5 — names like `FaFileText` don't exist
3236
+ // (FA renamed to `FaFileAlt`). When you see a console.warn from
3237
+ // [iconFamily] about an unmapped lucide name in this family, add the
3238
+ // closest FA5 sibling here so the fallback stays in-family.
3235
3239
  search: "Search",
3236
3240
  close: "Times",
3237
3241
  x: "Times",
@@ -3283,7 +3287,93 @@ var faAliases = {
3283
3287
  more: "EllipsisH",
3284
3288
  "more-vertical": "EllipsisV",
3285
3289
  info: "InfoCircle",
3286
- warning: "ExclamationTriangle"
3290
+ warning: "ExclamationTriangle",
3291
+ // Files (FA renamed FileText → FileAlt)
3292
+ file: "File",
3293
+ "file-text": "FileAlt",
3294
+ "file-plus": "FileMedical",
3295
+ "file-minus": "FileExcel",
3296
+ "file-check": "FileSignature",
3297
+ document: "FileAlt",
3298
+ // Charts (lucide BarChart2 / BarChart3 → FA ChartBar)
3299
+ "bar-chart": "ChartBar",
3300
+ "bar-chart-2": "ChartBar",
3301
+ "bar-chart-3": "ChartBar",
3302
+ "line-chart": "ChartLine",
3303
+ "pie-chart": "ChartPie",
3304
+ activity: "ChartLine",
3305
+ "trending-up": "ChartLine",
3306
+ "trending-down": "ChartLine",
3307
+ // Messages (lucide MessageCircle/MessageSquare → FA CommentDots/CommentAlt)
3308
+ message: "Comment",
3309
+ "message-circle": "CommentDots",
3310
+ "message-square": "CommentAlt",
3311
+ "messages-square": "Comments",
3312
+ comment: "Comment",
3313
+ comments: "Comments",
3314
+ inbox: "Inbox",
3315
+ // Support / help
3316
+ "life-buoy": "LifeRing",
3317
+ lifebuoy: "LifeRing",
3318
+ // Project / kanban (FA has no kanban; closest semantic is Tasks/Columns)
3319
+ kanban: "Tasks",
3320
+ columns: "Columns",
3321
+ rows: "Bars",
3322
+ layout: "ThLarge",
3323
+ grid: "Th",
3324
+ list: "List",
3325
+ table: "Table",
3326
+ // Storage / folders
3327
+ folder: "Folder",
3328
+ "folder-open": "FolderOpen",
3329
+ archive: "Archive",
3330
+ bookmark: "Bookmark",
3331
+ briefcase: "Briefcase",
3332
+ package: "Box",
3333
+ box: "Box",
3334
+ // Map / location
3335
+ map: "Map",
3336
+ "map-pin": "MapMarkerAlt",
3337
+ navigation: "LocationArrow",
3338
+ compass: "Compass",
3339
+ globe: "Globe",
3340
+ target: "Bullseye",
3341
+ // Media
3342
+ image: "Image",
3343
+ video: "Video",
3344
+ film: "Film",
3345
+ camera: "Camera",
3346
+ music: "Music",
3347
+ play: "Play",
3348
+ pause: "Pause",
3349
+ "skip-forward": "Forward",
3350
+ "skip-back": "Backward",
3351
+ volume: "VolumeUp",
3352
+ "volume-2": "VolumeUp",
3353
+ "volume-x": "VolumeMute",
3354
+ mic: "Microphone",
3355
+ "mic-off": "MicrophoneSlash",
3356
+ phone: "Phone",
3357
+ // Code / data
3358
+ code: "Code",
3359
+ terminal: "Terminal",
3360
+ database: "Database",
3361
+ server: "Server",
3362
+ cloud: "Cloud",
3363
+ wifi: "Wifi",
3364
+ // Security
3365
+ shield: "ShieldAlt",
3366
+ key: "Key",
3367
+ // Misc actions
3368
+ printer: "Print",
3369
+ save: "Save",
3370
+ link: "Link",
3371
+ unlink: "Unlink",
3372
+ paperclip: "Paperclip",
3373
+ flag: "Flag",
3374
+ tag: "Tag",
3375
+ tags: "Tags",
3376
+ zap: "Bolt"
3287
3377
  };
3288
3378
  function resolveFa(name) {
3289
3379
  const suffix = faAliases[name] ?? kebabToPascal(name);
@@ -3314,53 +3404,57 @@ function warnFallback(name, family) {
3314
3404
  );
3315
3405
  }
3316
3406
  }
3317
- function makeLucideAdapter(name) {
3407
+ function makeLucideAdapter(name, isFallback = false) {
3318
3408
  const LucideComp = resolveLucide(name);
3319
- const Adapter = (props) => /* @__PURE__ */ jsxRuntime.jsx(
3320
- LucideComp,
3321
- {
3322
- className: props.className,
3323
- strokeWidth: props.strokeWidth,
3324
- style: props.style,
3325
- size: props.size
3326
- }
3327
- );
3328
- Adapter.displayName = `Lucide.${name}`;
3409
+ const Adapter = (props) => {
3410
+ const stroke = props.strokeWidth ?? (isFallback ? 2 : void 0);
3411
+ const style = isFallback ? { ...props.style ?? {}, strokeWidth: stroke ?? 2 } : props.style;
3412
+ return /* @__PURE__ */ jsxRuntime.jsx(
3413
+ LucideComp,
3414
+ {
3415
+ className: props.className,
3416
+ strokeWidth: stroke,
3417
+ style,
3418
+ size: props.size
3419
+ }
3420
+ );
3421
+ };
3422
+ Adapter.displayName = `Lucide.${name}${isFallback ? ".fallback" : ""}`;
3329
3423
  return Adapter;
3330
3424
  }
3331
3425
  function resolveIconForFamily(name, family) {
3332
3426
  switch (family) {
3333
3427
  case "lucide":
3334
- return makeLucideAdapter(name);
3428
+ return makeLucideAdapter(name, false);
3335
3429
  case "phosphor-outline": {
3336
3430
  const p = resolvePhosphor(name, "regular");
3337
3431
  if (p) return p;
3338
3432
  warnFallback(name, family);
3339
- return makeLucideAdapter(name);
3433
+ return makeLucideAdapter(name, true);
3340
3434
  }
3341
3435
  case "phosphor-fill": {
3342
3436
  const p = resolvePhosphor(name, "fill");
3343
3437
  if (p) return p;
3344
3438
  warnFallback(name, family);
3345
- return makeLucideAdapter(name);
3439
+ return makeLucideAdapter(name, true);
3346
3440
  }
3347
3441
  case "phosphor-duotone": {
3348
3442
  const p = resolvePhosphor(name, "duotone");
3349
3443
  if (p) return p;
3350
3444
  warnFallback(name, family);
3351
- return makeLucideAdapter(name);
3445
+ return makeLucideAdapter(name, true);
3352
3446
  }
3353
3447
  case "tabler": {
3354
3448
  const t = resolveTabler(name);
3355
3449
  if (t) return t;
3356
3450
  warnFallback(name, family);
3357
- return makeLucideAdapter(name);
3451
+ return makeLucideAdapter(name, true);
3358
3452
  }
3359
3453
  case "fa-solid": {
3360
3454
  const f = resolveFa(name);
3361
3455
  if (f) return f;
3362
3456
  warnFallback(name, family);
3363
- return makeLucideAdapter(name);
3457
+ return makeLucideAdapter(name, true);
3364
3458
  }
3365
3459
  }
3366
3460
  }
@@ -3204,7 +3204,11 @@ function resolveTabler(name) {
3204
3204
  return Adapter;
3205
3205
  }
3206
3206
  var faAliases = {
3207
- // lucide name → fa-solid suffix (after the `Fa` prefix)
3207
+ // lucide name → fa-solid suffix (after the `Fa` prefix).
3208
+ // react-icons/fa ships FontAwesome 5 — names like `FaFileText` don't exist
3209
+ // (FA renamed to `FaFileAlt`). When you see a console.warn from
3210
+ // [iconFamily] about an unmapped lucide name in this family, add the
3211
+ // closest FA5 sibling here so the fallback stays in-family.
3208
3212
  search: "Search",
3209
3213
  close: "Times",
3210
3214
  x: "Times",
@@ -3256,7 +3260,93 @@ var faAliases = {
3256
3260
  more: "EllipsisH",
3257
3261
  "more-vertical": "EllipsisV",
3258
3262
  info: "InfoCircle",
3259
- warning: "ExclamationTriangle"
3263
+ warning: "ExclamationTriangle",
3264
+ // Files (FA renamed FileText → FileAlt)
3265
+ file: "File",
3266
+ "file-text": "FileAlt",
3267
+ "file-plus": "FileMedical",
3268
+ "file-minus": "FileExcel",
3269
+ "file-check": "FileSignature",
3270
+ document: "FileAlt",
3271
+ // Charts (lucide BarChart2 / BarChart3 → FA ChartBar)
3272
+ "bar-chart": "ChartBar",
3273
+ "bar-chart-2": "ChartBar",
3274
+ "bar-chart-3": "ChartBar",
3275
+ "line-chart": "ChartLine",
3276
+ "pie-chart": "ChartPie",
3277
+ activity: "ChartLine",
3278
+ "trending-up": "ChartLine",
3279
+ "trending-down": "ChartLine",
3280
+ // Messages (lucide MessageCircle/MessageSquare → FA CommentDots/CommentAlt)
3281
+ message: "Comment",
3282
+ "message-circle": "CommentDots",
3283
+ "message-square": "CommentAlt",
3284
+ "messages-square": "Comments",
3285
+ comment: "Comment",
3286
+ comments: "Comments",
3287
+ inbox: "Inbox",
3288
+ // Support / help
3289
+ "life-buoy": "LifeRing",
3290
+ lifebuoy: "LifeRing",
3291
+ // Project / kanban (FA has no kanban; closest semantic is Tasks/Columns)
3292
+ kanban: "Tasks",
3293
+ columns: "Columns",
3294
+ rows: "Bars",
3295
+ layout: "ThLarge",
3296
+ grid: "Th",
3297
+ list: "List",
3298
+ table: "Table",
3299
+ // Storage / folders
3300
+ folder: "Folder",
3301
+ "folder-open": "FolderOpen",
3302
+ archive: "Archive",
3303
+ bookmark: "Bookmark",
3304
+ briefcase: "Briefcase",
3305
+ package: "Box",
3306
+ box: "Box",
3307
+ // Map / location
3308
+ map: "Map",
3309
+ "map-pin": "MapMarkerAlt",
3310
+ navigation: "LocationArrow",
3311
+ compass: "Compass",
3312
+ globe: "Globe",
3313
+ target: "Bullseye",
3314
+ // Media
3315
+ image: "Image",
3316
+ video: "Video",
3317
+ film: "Film",
3318
+ camera: "Camera",
3319
+ music: "Music",
3320
+ play: "Play",
3321
+ pause: "Pause",
3322
+ "skip-forward": "Forward",
3323
+ "skip-back": "Backward",
3324
+ volume: "VolumeUp",
3325
+ "volume-2": "VolumeUp",
3326
+ "volume-x": "VolumeMute",
3327
+ mic: "Microphone",
3328
+ "mic-off": "MicrophoneSlash",
3329
+ phone: "Phone",
3330
+ // Code / data
3331
+ code: "Code",
3332
+ terminal: "Terminal",
3333
+ database: "Database",
3334
+ server: "Server",
3335
+ cloud: "Cloud",
3336
+ wifi: "Wifi",
3337
+ // Security
3338
+ shield: "ShieldAlt",
3339
+ key: "Key",
3340
+ // Misc actions
3341
+ printer: "Print",
3342
+ save: "Save",
3343
+ link: "Link",
3344
+ unlink: "Unlink",
3345
+ paperclip: "Paperclip",
3346
+ flag: "Flag",
3347
+ tag: "Tag",
3348
+ tags: "Tags",
3349
+ zap: "Bolt"
3260
3350
  };
3261
3351
  function resolveFa(name) {
3262
3352
  const suffix = faAliases[name] ?? kebabToPascal(name);
@@ -3287,53 +3377,57 @@ function warnFallback(name, family) {
3287
3377
  );
3288
3378
  }
3289
3379
  }
3290
- function makeLucideAdapter(name) {
3380
+ function makeLucideAdapter(name, isFallback = false) {
3291
3381
  const LucideComp = resolveLucide(name);
3292
- const Adapter = (props) => /* @__PURE__ */ jsx(
3293
- LucideComp,
3294
- {
3295
- className: props.className,
3296
- strokeWidth: props.strokeWidth,
3297
- style: props.style,
3298
- size: props.size
3299
- }
3300
- );
3301
- Adapter.displayName = `Lucide.${name}`;
3382
+ const Adapter = (props) => {
3383
+ const stroke = props.strokeWidth ?? (isFallback ? 2 : void 0);
3384
+ const style = isFallback ? { ...props.style ?? {}, strokeWidth: stroke ?? 2 } : props.style;
3385
+ return /* @__PURE__ */ jsx(
3386
+ LucideComp,
3387
+ {
3388
+ className: props.className,
3389
+ strokeWidth: stroke,
3390
+ style,
3391
+ size: props.size
3392
+ }
3393
+ );
3394
+ };
3395
+ Adapter.displayName = `Lucide.${name}${isFallback ? ".fallback" : ""}`;
3302
3396
  return Adapter;
3303
3397
  }
3304
3398
  function resolveIconForFamily(name, family) {
3305
3399
  switch (family) {
3306
3400
  case "lucide":
3307
- return makeLucideAdapter(name);
3401
+ return makeLucideAdapter(name, false);
3308
3402
  case "phosphor-outline": {
3309
3403
  const p = resolvePhosphor(name, "regular");
3310
3404
  if (p) return p;
3311
3405
  warnFallback(name, family);
3312
- return makeLucideAdapter(name);
3406
+ return makeLucideAdapter(name, true);
3313
3407
  }
3314
3408
  case "phosphor-fill": {
3315
3409
  const p = resolvePhosphor(name, "fill");
3316
3410
  if (p) return p;
3317
3411
  warnFallback(name, family);
3318
- return makeLucideAdapter(name);
3412
+ return makeLucideAdapter(name, true);
3319
3413
  }
3320
3414
  case "phosphor-duotone": {
3321
3415
  const p = resolvePhosphor(name, "duotone");
3322
3416
  if (p) return p;
3323
3417
  warnFallback(name, family);
3324
- return makeLucideAdapter(name);
3418
+ return makeLucideAdapter(name, true);
3325
3419
  }
3326
3420
  case "tabler": {
3327
3421
  const t = resolveTabler(name);
3328
3422
  if (t) return t;
3329
3423
  warnFallback(name, family);
3330
- return makeLucideAdapter(name);
3424
+ return makeLucideAdapter(name, true);
3331
3425
  }
3332
3426
  case "fa-solid": {
3333
3427
  const f = resolveFa(name);
3334
3428
  if (f) return f;
3335
3429
  warnFallback(name, family);
3336
- return makeLucideAdapter(name);
3430
+ return makeLucideAdapter(name, true);
3337
3431
  }
3338
3432
  }
3339
3433
  }