@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.
@@ -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 f3 = resolveFa(name);
3361
3455
  if (f3) return f3;
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 f3 = resolveFa(name);
3334
3428
  if (f3) return f3;
3335
3429
  warnFallback(name, family);
3336
- return makeLucideAdapter(name);
3430
+ return makeLucideAdapter(name, true);
3337
3431
  }
3338
3432
  }
3339
3433
  }
@@ -898,53 +898,57 @@ function warnFallback(name, family) {
898
898
  );
899
899
  }
900
900
  }
901
- function makeLucideAdapter(name) {
901
+ function makeLucideAdapter(name, isFallback = false) {
902
902
  const LucideComp = resolveLucide(name);
903
- const Adapter = (props) => /* @__PURE__ */ jsxRuntime.jsx(
904
- LucideComp,
905
- {
906
- className: props.className,
907
- strokeWidth: props.strokeWidth,
908
- style: props.style,
909
- size: props.size
910
- }
911
- );
912
- Adapter.displayName = `Lucide.${name}`;
903
+ const Adapter = (props) => {
904
+ const stroke = props.strokeWidth ?? (isFallback ? 2 : void 0);
905
+ const style = isFallback ? { ...props.style ?? {}, strokeWidth: stroke ?? 2 } : props.style;
906
+ return /* @__PURE__ */ jsxRuntime.jsx(
907
+ LucideComp,
908
+ {
909
+ className: props.className,
910
+ strokeWidth: stroke,
911
+ style,
912
+ size: props.size
913
+ }
914
+ );
915
+ };
916
+ Adapter.displayName = `Lucide.${name}${isFallback ? ".fallback" : ""}`;
913
917
  return Adapter;
914
918
  }
915
919
  function resolveIconForFamily(name, family) {
916
920
  switch (family) {
917
921
  case "lucide":
918
- return makeLucideAdapter(name);
922
+ return makeLucideAdapter(name, false);
919
923
  case "phosphor-outline": {
920
924
  const p2 = resolvePhosphor(name, "regular");
921
925
  if (p2) return p2;
922
926
  warnFallback(name, family);
923
- return makeLucideAdapter(name);
927
+ return makeLucideAdapter(name, true);
924
928
  }
925
929
  case "phosphor-fill": {
926
930
  const p2 = resolvePhosphor(name, "fill");
927
931
  if (p2) return p2;
928
932
  warnFallback(name, family);
929
- return makeLucideAdapter(name);
933
+ return makeLucideAdapter(name, true);
930
934
  }
931
935
  case "phosphor-duotone": {
932
936
  const p2 = resolvePhosphor(name, "duotone");
933
937
  if (p2) return p2;
934
938
  warnFallback(name, family);
935
- return makeLucideAdapter(name);
939
+ return makeLucideAdapter(name, true);
936
940
  }
937
941
  case "tabler": {
938
942
  const t = resolveTabler(name);
939
943
  if (t) return t;
940
944
  warnFallback(name, family);
941
- return makeLucideAdapter(name);
945
+ return makeLucideAdapter(name, true);
942
946
  }
943
947
  case "fa-solid": {
944
948
  const f3 = resolveFa(name);
945
949
  if (f3) return f3;
946
950
  warnFallback(name, family);
947
- return makeLucideAdapter(name);
951
+ return makeLucideAdapter(name, true);
948
952
  }
949
953
  }
950
954
  }
@@ -1082,7 +1086,11 @@ var init_iconFamily = __esm({
1082
1086
  info: "InfoCircle"
1083
1087
  };
1084
1088
  faAliases = {
1085
- // lucide name → fa-solid suffix (after the `Fa` prefix)
1089
+ // lucide name → fa-solid suffix (after the `Fa` prefix).
1090
+ // react-icons/fa ships FontAwesome 5 — names like `FaFileText` don't exist
1091
+ // (FA renamed to `FaFileAlt`). When you see a console.warn from
1092
+ // [iconFamily] about an unmapped lucide name in this family, add the
1093
+ // closest FA5 sibling here so the fallback stays in-family.
1086
1094
  search: "Search",
1087
1095
  close: "Times",
1088
1096
  x: "Times",
@@ -1134,7 +1142,93 @@ var init_iconFamily = __esm({
1134
1142
  more: "EllipsisH",
1135
1143
  "more-vertical": "EllipsisV",
1136
1144
  info: "InfoCircle",
1137
- warning: "ExclamationTriangle"
1145
+ warning: "ExclamationTriangle",
1146
+ // Files (FA renamed FileText → FileAlt)
1147
+ file: "File",
1148
+ "file-text": "FileAlt",
1149
+ "file-plus": "FileMedical",
1150
+ "file-minus": "FileExcel",
1151
+ "file-check": "FileSignature",
1152
+ document: "FileAlt",
1153
+ // Charts (lucide BarChart2 / BarChart3 → FA ChartBar)
1154
+ "bar-chart": "ChartBar",
1155
+ "bar-chart-2": "ChartBar",
1156
+ "bar-chart-3": "ChartBar",
1157
+ "line-chart": "ChartLine",
1158
+ "pie-chart": "ChartPie",
1159
+ activity: "ChartLine",
1160
+ "trending-up": "ChartLine",
1161
+ "trending-down": "ChartLine",
1162
+ // Messages (lucide MessageCircle/MessageSquare → FA CommentDots/CommentAlt)
1163
+ message: "Comment",
1164
+ "message-circle": "CommentDots",
1165
+ "message-square": "CommentAlt",
1166
+ "messages-square": "Comments",
1167
+ comment: "Comment",
1168
+ comments: "Comments",
1169
+ inbox: "Inbox",
1170
+ // Support / help
1171
+ "life-buoy": "LifeRing",
1172
+ lifebuoy: "LifeRing",
1173
+ // Project / kanban (FA has no kanban; closest semantic is Tasks/Columns)
1174
+ kanban: "Tasks",
1175
+ columns: "Columns",
1176
+ rows: "Bars",
1177
+ layout: "ThLarge",
1178
+ grid: "Th",
1179
+ list: "List",
1180
+ table: "Table",
1181
+ // Storage / folders
1182
+ folder: "Folder",
1183
+ "folder-open": "FolderOpen",
1184
+ archive: "Archive",
1185
+ bookmark: "Bookmark",
1186
+ briefcase: "Briefcase",
1187
+ package: "Box",
1188
+ box: "Box",
1189
+ // Map / location
1190
+ map: "Map",
1191
+ "map-pin": "MapMarkerAlt",
1192
+ navigation: "LocationArrow",
1193
+ compass: "Compass",
1194
+ globe: "Globe",
1195
+ target: "Bullseye",
1196
+ // Media
1197
+ image: "Image",
1198
+ video: "Video",
1199
+ film: "Film",
1200
+ camera: "Camera",
1201
+ music: "Music",
1202
+ play: "Play",
1203
+ pause: "Pause",
1204
+ "skip-forward": "Forward",
1205
+ "skip-back": "Backward",
1206
+ volume: "VolumeUp",
1207
+ "volume-2": "VolumeUp",
1208
+ "volume-x": "VolumeMute",
1209
+ mic: "Microphone",
1210
+ "mic-off": "MicrophoneSlash",
1211
+ phone: "Phone",
1212
+ // Code / data
1213
+ code: "Code",
1214
+ terminal: "Terminal",
1215
+ database: "Database",
1216
+ server: "Server",
1217
+ cloud: "Cloud",
1218
+ wifi: "Wifi",
1219
+ // Security
1220
+ shield: "ShieldAlt",
1221
+ key: "Key",
1222
+ // Misc actions
1223
+ printer: "Print",
1224
+ save: "Save",
1225
+ link: "Link",
1226
+ unlink: "Unlink",
1227
+ paperclip: "Paperclip",
1228
+ flag: "Flag",
1229
+ tag: "Tag",
1230
+ tags: "Tags",
1231
+ zap: "Bolt"
1138
1232
  };
1139
1233
  warned = /* @__PURE__ */ new Set();
1140
1234
  }