huspy-icons 0.3.60 → 0.3.61

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.
@@ -44,4 +44,17 @@ interface IconProps extends Omit<TextProps, 'children'> {
44
44
  */
45
45
  declare const Icon: ({ name, size, color, style, ...props }: IconProps) => React.JSX.Element | null;
46
46
 
47
- export { Icon, type IconName, type IconProps, fontFamily, glyphMap };
47
+ /**
48
+ * Set of icon names that should not be flipped or swapped in RTL layout.
49
+ * O(1) lookup: ICONS_NO_FLIP_RTL.has(iconName)
50
+ */
51
+ declare const ICONS_NO_FLIP_RTL: ReadonlySet<string>;
52
+
53
+ /**
54
+ * Map from LTR icon name to RTL icon name (font/glyphMap format).
55
+ * Only entries that have a dedicated RTL variant are present.
56
+ * Usage: isRtl && ICON_RTL_MAP[iconName] ? ICON_RTL_MAP[iconName] : iconName
57
+ */
58
+ declare const ICON_RTL_MAP: Record<string, string>;
59
+
60
+ export { ICONS_NO_FLIP_RTL, ICON_RTL_MAP, Icon, type IconName, type IconProps, fontFamily, glyphMap };
@@ -30,6 +30,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/native/index.ts
31
31
  var native_exports = {};
32
32
  __export(native_exports, {
33
+ ICONS_NO_FLIP_RTL: () => ICONS_NO_FLIP_RTL,
34
+ ICON_RTL_MAP: () => ICON_RTL_MAP,
33
35
  Icon: () => Icon_default,
34
36
  fontFamily: () => fontFamily,
35
37
  glyphMap: () => glyphMap
@@ -280,8 +282,405 @@ var Icon = ({ name, size = 16, color = "#000", style, ...props }) => {
280
282
  );
281
283
  };
282
284
  var Icon_default = Icon;
285
+
286
+ // src/icons-no-flip-rtl.ts
287
+ var ICONS_NO_FLIP_RTL_NAMES = [
288
+ "3D",
289
+ "AC",
290
+ "Barbeque",
291
+ "Bug",
292
+ "Circle",
293
+ "Circle-off",
294
+ "Facotry",
295
+ "Floor",
296
+ "Gas station",
297
+ "Gym",
298
+ "IA",
299
+ "Lift",
300
+ "Office-briefcase",
301
+ "Other commercial",
302
+ "Patio",
303
+ "Penthouse",
304
+ "Star",
305
+ "Storage",
306
+ "Swimming-Pool",
307
+ "Terrace",
308
+ "Walk-in closet",
309
+ "Arrow-down-long-stem",
310
+ "accessibility",
311
+ "add",
312
+ "add-solid",
313
+ "air:conditioner",
314
+ "alert",
315
+ "alert-circle",
316
+ "alert-octagon",
317
+ "alert-triangle",
318
+ "archive",
319
+ "arrow-big-down",
320
+ "arrow-big-down-dash",
321
+ "arrow-big-up",
322
+ "arrow-big-up-dash",
323
+ "arrow-down",
324
+ "arrow-down-0-1",
325
+ "arrow-down-1-0",
326
+ "arrow-down-a-z",
327
+ "arrow-down-circle",
328
+ "arrow-down-from-line",
329
+ "arrow-down-narrow-wide",
330
+ "arrow-down-to-dot",
331
+ "arrow-down-to-line",
332
+ "arrow-down-z-a",
333
+ "arrow-left-right",
334
+ "arrow-up",
335
+ "arrow-up-0-1",
336
+ "arrow-up-circle",
337
+ "arrow-up-down",
338
+ "arrow-up-from-dot",
339
+ "arrow-up-from-line",
340
+ "arrow-up-to-line",
341
+ "arrow-up-wide-narrow",
342
+ "arrows-up-from-line",
343
+ "balcony-window",
344
+ "bank",
345
+ "bath",
346
+ "bed",
347
+ "bed-double",
348
+ "bed-single",
349
+ "bell",
350
+ "bell-off",
351
+ "bell-ring",
352
+ "binoculars",
353
+ "bricks",
354
+ "briefcase",
355
+ "brush",
356
+ "building",
357
+ "bus",
358
+ "calculator",
359
+ "calendar",
360
+ "calendar-off",
361
+ "calendar-x",
362
+ "camera",
363
+ "camera-professional",
364
+ "cancel",
365
+ "cancel-circle-solid",
366
+ "cancel-circle-stroke",
367
+ "cancel-oct",
368
+ "cancel-square",
369
+ "card:board:glasses",
370
+ "car-front",
371
+ "castle",
372
+ "category:01",
373
+ "category:02",
374
+ "chalet-adosado",
375
+ "chalet-independet",
376
+ "chalet-pareado",
377
+ "check",
378
+ "check-check",
379
+ "check-circle",
380
+ "check-circle-2",
381
+ "check-circle-Solid",
382
+ "check-square",
383
+ "chevron-down",
384
+ "chevron-down-circle",
385
+ "chevron-down-square",
386
+ "chevron-up",
387
+ "chevron-up-circle",
388
+ "chevron-up-square",
389
+ "chevrons-down",
390
+ "chevrons-down-up",
391
+ "chevrons-left-right",
392
+ "chevrons-right-left",
393
+ "chevrons-up",
394
+ "chevrons-up-down",
395
+ "church",
396
+ "classic building",
397
+ "closet",
398
+ "collections",
399
+ "collections-minus",
400
+ "collections-plus",
401
+ "comission",
402
+ "companion",
403
+ "compass",
404
+ "conseiger",
405
+ "confetti",
406
+ "construction",
407
+ "contact",
408
+ "copy",
409
+ "credits",
410
+ "cup-soda",
411
+ "data-tech",
412
+ "delete",
413
+ "delete-solid",
414
+ "dishwhaser",
415
+ "documents",
416
+ "door-open",
417
+ "doorman",
418
+ "dot-circle-Solid",
419
+ "download",
420
+ "download-cloud",
421
+ "duplex",
422
+ "edit",
423
+ "electric",
424
+ "elevator",
425
+ "equipped kitchen",
426
+ "eye-hidden",
427
+ "eye-visible",
428
+ "face-id",
429
+ "facebook",
430
+ "fingerprint",
431
+ "fingerprint-android",
432
+ "fire",
433
+ "floor",
434
+ "folder",
435
+ "forward",
436
+ "furnished",
437
+ "garage",
438
+ "garden",
439
+ "gas:heating",
440
+ "hammer",
441
+ "handshake",
442
+ "heart:outlined",
443
+ "heart-matches",
444
+ "heart-matches:outlined",
445
+ "heart-solid",
446
+ "heating",
447
+ "history",
448
+ "hotel",
449
+ "image",
450
+ "image-minus",
451
+ "image-off",
452
+ "image-plus",
453
+ "images:gallery",
454
+ "instagram",
455
+ "keys:01",
456
+ "keys:02",
457
+ "lamp",
458
+ "Land",
459
+ "laptop-2",
460
+ "li:x-square",
461
+ "linkedin",
462
+ "loader",
463
+ "loft",
464
+ "logout",
465
+ "lock",
466
+ "mail",
467
+ "maids-room",
468
+ "maids-service",
469
+ "map",
470
+ "map-pin",
471
+ "map-pin-off",
472
+ "maximaze",
473
+ "messages-square",
474
+ "mic",
475
+ "microwave",
476
+ "minimize",
477
+ "monumetal",
478
+ "mortgage",
479
+ "outside",
480
+ "paddleTennis",
481
+ "parking",
482
+ "parking-square",
483
+ "partyHall",
484
+ "patio",
485
+ "pause",
486
+ "pause-fill",
487
+ "payments",
488
+ "pencil-line",
489
+ "pent:house",
490
+ "pet",
491
+ "phone",
492
+ "phone-call",
493
+ "phone-forwarded",
494
+ "phone-incoming",
495
+ "phone-missed",
496
+ "phone-off",
497
+ "phone-outgoing",
498
+ "play-linear",
499
+ "play-solid",
500
+ "plus",
501
+ "promotion",
502
+ "rewind",
503
+ "rotate-ccw",
504
+ "rotate-cw",
505
+ "sale",
506
+ "sauna",
507
+ "sea",
508
+ "search",
509
+ "search-check",
510
+ "search-code",
511
+ "search-slash",
512
+ "search-x",
513
+ "send",
514
+ "share",
515
+ "shield-alert",
516
+ "skip-back",
517
+ "skip-forward",
518
+ "slack",
519
+ "smiley/linear/bad",
520
+ "smiley/linear/good",
521
+ "smiley/linear/regular",
522
+ "smiley/linear/super:bad",
523
+ "smiley/linear/super:good",
524
+ "smiley/solid/bad",
525
+ "smiley/solid/good",
526
+ "smiley/solid/regular",
527
+ "smiley/solid/super:bad",
528
+ "smiley/solid/super:good",
529
+ "storage",
530
+ "store",
531
+ "swiper:arrows",
532
+ "tennis",
533
+ "terrace",
534
+ "thumbs-down",
535
+ "thumbs-up",
536
+ "thumbs-up-solid",
537
+ "time",
538
+ "touch-android",
539
+ "touch-ios",
540
+ "tower",
541
+ "town-house",
542
+ "trash",
543
+ "trash-2",
544
+ "twitch",
545
+ "twitter",
546
+ "update:refresh",
547
+ "upload",
548
+ "user",
549
+ "user-plus",
550
+ "user-square",
551
+ "villa",
552
+ "walk-in-closet",
553
+ "warehouse",
554
+ "washing-machine",
555
+ "whasingmachine",
556
+ "whatsapp",
557
+ "wifi",
558
+ "youtube",
559
+ "distance",
560
+ "funnel",
561
+ "euro",
562
+ "properties-filled",
563
+ "properties-linear",
564
+ "properties-search-empty",
565
+ "rent",
566
+ "restaurant",
567
+ "size-2d",
568
+ "size-3d",
569
+ "semi-detached",
570
+ "status-dot",
571
+ "no-buildable-plot",
572
+ "notes",
573
+ "note",
574
+ "more-horizontal",
575
+ "minus",
576
+ "map-pin",
577
+ "magic-wand",
578
+ "link",
579
+ "leads-linear",
580
+ "leads-filled",
581
+ "info",
582
+ "icon-slot",
583
+ "home-linear",
584
+ "home-filled",
585
+ "help-circle",
586
+ "gym",
587
+ "gas-station",
588
+ "filter",
589
+ "file",
590
+ "file-type",
591
+ "file-text",
592
+ "file-spreadsheet",
593
+ "file-lock",
594
+ "file-input",
595
+ "factory",
596
+ "face-ios-light",
597
+ "face-ios-bold",
598
+ "face-android",
599
+ "external_link",
600
+ "explore-linear",
601
+ "explore-filled",
602
+ "edit",
603
+ "concierge",
604
+ "collections",
605
+ "classic-building",
606
+ "circle-off",
607
+ "chevron-down",
608
+ "chevron-up",
609
+ "chevron-right",
610
+ "chevron-left",
611
+ "cancel",
612
+ "building",
613
+ "building-delete",
614
+ "building-2",
615
+ "bed-double",
616
+ "barbeque",
617
+ "balcony-window",
618
+ "arrow-up",
619
+ "arrow-right",
620
+ "arrow-left",
621
+ "arrow-down",
622
+ "arrow-down-right",
623
+ "arrow-down-left",
624
+ "air-conditioner",
625
+ "ai",
626
+ "add-note",
627
+ "pin_map_solid",
628
+ "phone-linear",
629
+ "pet",
630
+ "pent-house",
631
+ "parking",
632
+ "paddle-tennis",
633
+ "outside",
634
+ "other-commercial",
635
+ "office-briefcase",
636
+ "no-buildable-plot",
637
+ "monumental",
638
+ "mortgage",
639
+ "manage-rtl",
640
+ "mail",
641
+ "maids-service",
642
+ "maids-room",
643
+ "laptop-2",
644
+ "keys_01",
645
+ "lift",
646
+ "loft",
647
+ "images-gallery",
648
+ "image-off",
649
+ "equipped-kitchen"
650
+ ];
651
+ var ICONS_NO_FLIP_RTL = new Set(ICONS_NO_FLIP_RTL_NAMES);
652
+
653
+ // src/icon-rtl-map.ts
654
+ var RTL_ICON_NAMES = [
655
+ "calendar-check.rtl",
656
+ "calendar-clock.rtl",
657
+ "calendar-search.rtl",
658
+ "calendar-sync.rtl",
659
+ "file-check.rtl",
660
+ "file-key-2.rtl",
661
+ "file-key.rtl",
662
+ "file-search-2.rtl",
663
+ "file-search.rtl",
664
+ "file-signature.rtl",
665
+ "file-video.rtl",
666
+ "mail-check.rtl",
667
+ "mail-search.rtl",
668
+ "manage.rtl",
669
+ "mortgage.rtl",
670
+ "tasks.rtl",
671
+ "user-check.rtl"
672
+ ];
673
+ var ICON_RTL_MAP = Object.fromEntries(
674
+ RTL_ICON_NAMES.map((name) => {
675
+ const ltrName = name.replace(/\.rtl$/, "");
676
+ const rtlName = name.replace(/\.rtl$/, "-rtl");
677
+ return [ltrName, rtlName];
678
+ })
679
+ );
283
680
  // Annotate the CommonJS export names for ESM import in node:
284
681
  0 && (module.exports = {
682
+ ICONS_NO_FLIP_RTL,
683
+ ICON_RTL_MAP,
285
684
  Icon,
286
685
  fontFamily,
287
686
  glyphMap
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/native/index.ts","../../src/native/Icon.tsx","../../src/native/glyphMap.ts"],"sourcesContent":["/**\n * Huspy Icons - React Native (Font-based)\n * \n * This package provides icon components for React Native using a custom font.\n * \n * @example\n * ```tsx\n * import { Icon } from 'huspy-icons/native';\n * \n * function MyComponent() {\n * return <Icon name=\"arrow-left\" size={24} color=\"#000\" />;\n * }\n * ```\n */\n\nexport { default as Icon } from './Icon';\nexport type { IconProps, IconName } from './Icon';\nexport { glyphMap, fontFamily } from './glyphMap';\n\n","import * as React from 'react';\nimport { Text, TextProps } from 'react-native';\nimport { glyphMap, fontFamily, IconName } from './glyphMap';\n\n/**\n * Props for the Icon component (React Native)\n */\nexport interface IconProps extends Omit<TextProps, 'children'> {\n /**\n * Name of the icon to display\n */\n name: IconName;\n\n /**\n * Size of the icon (default: 16)\n */\n size?: number;\n\n /**\n * Color of the icon (default: inherits from parent or 'black')\n */\n color?: string;\n}\n\n/**\n * Icon component for React Native\n *\n * Renders icons using a custom font (HuspyIcons)\n *\n * @example\n * ```tsx\n * <Icon name=\"arrow-left\" size={24} color=\"#000\" />\n * ```\n */\nconst Icon = ({ name, size = 16, color = '#000', style, ...props }: IconProps) => {\n const codepoint = glyphMap[name];\n\n if (!codepoint) {\n if (__DEV__) {\n console.warn(`Icon \"${name}\" not found in HuspyIcons font`);\n }\n return null;\n }\n\n // Convert codepoint to character\n const glyph = String.fromCharCode(codepoint);\n\n return (\n <Text\n {...props}\n style={[\n {\n fontFamily: fontFamily,\n fontSize: size,\n color: color,\n // Ensure icon doesn't inherit text styles\n fontWeight: 'normal',\n fontStyle: 'normal',\n // Prevent text selection and ensure proper rendering\n includeFontPadding: false, // Android: removes extra padding\n textAlignVertical: 'center', // Android: centers the glyph vertically\n },\n style,\n ]}\n // Accessibility\n accessible\n accessibilityLabel={props.accessibilityLabel || name}\n accessibilityRole=\"image\"\n >\n {glyph}\n </Text>\n );\n};\n\nexport default Icon;\nexport type { IconName };\n","// Auto-generated by generate-font.js - do not edit manually\n// Source: icons-src/*.svg → dist/fonts/HuspyIcons.*\n\n/**\n * Available icon names in the HuspyIcons font\n */\nexport type IconName = 'wifi' | 'whatsapp' | 'washing-machine' | 'warehouse' | 'walk-in-closet' | 'villa' | 'user' | 'user-square' | 'user-plus' | 'user-check-rtl' | 'upload' | 'trash' | 'trash-2' | 'town-house' | 'tower' | 'touch-ios' | 'touch-android' | 'time' | 'thumbs-up' | 'thumbs-down' | 'thermometer-snowflake' | 'terrace' | 'tennis' | 'tasks' | 'tasks-rtl' | 'swimming-pool' | 'store' | 'storage' | 'status-dot' | 'size-3d' | 'size-2d' | 'shield-alert' | 'share' | 'semi-detached' | 'search' | 'search-x' | 'sea' | 'sauna' | 'sale' | 'rotate-cw' | 'restaurant' | 'rent' | 'properties-search-empty' | 'properties-linear' | 'properties-filled' | 'promotion' | 'plus' | 'play-solid' | 'pin_map_solid' | 'pin' | 'phone-linear' | 'pet' | 'pent-house' | 'pencil-line' | 'payments' | 'patio' | 'party-hall' | 'parking' | 'paddle-tennis' | 'outside' | 'other-commercial' | 'office-briefcase' | 'notes' | 'note' | 'no-buildable-plot' | 'mortgage' | 'mortgage-rtl' | 'more-horizontal' | 'monumental' | 'minus' | 'map' | 'map-pin' | 'map-pin-2' | 'manage-rtl' | 'mail' | 'mail-search-rtl' | 'mail-check-rtl' | 'maids-service' | 'maids-room' | 'magic-wand' | 'logout' | 'loft' | 'lock' | 'loader' | 'link' | 'lift' | 'leads-linear' | 'leads-filled' | 'laptop-2' | 'keys_01' | 'info' | 'images-gallery' | 'image' | 'image-off' | 'icon-slot' | 'home-linear' | 'home-filled' | 'history' | 'help-circle' | 'heating' | 'handshake' | 'gym' | 'gas-station' | 'gas-heating' | 'garden' | 'garage' | 'furnished' | 'floor' | 'filter' | 'file' | 'file-video-rtl' | 'file-type' | 'file-text' | 'file-spreadsheet' | 'file-signature' | 'file-signature-rtl' | 'file-search-rtl' | 'file-search-2-rtl' | 'file-lock' | 'file-key' | 'file-key-rtl' | 'file-key-2-rtl' | 'file-input' | 'file-check' | 'file-check-rtl' | 'factory' | 'face-ios-light' | 'face-ios-bold' | 'face-android' | 'eye-visible' | 'eye-hidden' | 'external_link' | 'explore-linear' | 'explore-filled' | 'equipped-kitchen' | 'electric' | 'edit' | 'duplex' | 'download' | 'doorman' | 'door-open' | 'dishwasher' | 'copy' | 'contact' | 'concierge' | 'collections' | 'closet' | 'classic-building' | 'circle-off' | 'chevron-up' | 'chevron-right' | 'chevron-left' | 'chevron-down' | 'check' | 'check-circle-2' | 'check-check' | 'chalet-pareado' | 'chalet-independet' | 'chalet-adosado' | 'cancel' | 'cancel-circle-stroke' | 'cancel-circle-solid' | 'camera' | 'calendar' | 'calendar-x' | 'calendar-sync-rtl' | 'calendar-search-rtl' | 'calendar-clock' | 'calendar-clock-rtl' | 'calendar-check' | 'calendar-check-rtl' | 'building' | 'building-delete' | 'building-2' | 'bell' | 'bed-double' | 'bath' | 'barbeque' | 'balcony-window' | 'arrow-up' | 'arrow-up-right' | 'arrow-up-left' | 'arrow-up-down' | 'arrow-right' | 'arrow-left' | 'arrow-left-right' | 'arrow-down' | 'arrow-down-right' | 'arrow-down-left' | 'archive' | 'alert' | 'alert-triangle' | 'alert-circle' | 'air-conditioner' | 'ai' | 'add-note' | 'accessibility';\n\n/**\n * Mapping of icon names to unicode codepoints\n * Used by the Icon component to render the correct glyph\n */\nexport const glyphMap: Record<IconName, number> = {\n \"wifi\": 61697,\n \"whatsapp\": 61698,\n \"washing-machine\": 61699,\n \"warehouse\": 61700,\n \"walk-in-closet\": 61701,\n \"villa\": 61702,\n \"user\": 61703,\n \"user-square\": 61704,\n \"user-plus\": 61705,\n \"user-check-rtl\": 61706,\n \"upload\": 61707,\n \"trash\": 61708,\n \"trash-2\": 61709,\n \"town-house\": 61710,\n \"tower\": 61711,\n \"touch-ios\": 61712,\n \"touch-android\": 61713,\n \"time\": 61714,\n \"thumbs-up\": 61715,\n \"thumbs-down\": 61716,\n \"thermometer-snowflake\": 61717,\n \"terrace\": 61718,\n \"tennis\": 61719,\n \"tasks\": 61720,\n \"tasks-rtl\": 61721,\n \"swimming-pool\": 61722,\n \"store\": 61723,\n \"storage\": 61724,\n \"status-dot\": 61725,\n \"size-3d\": 61726,\n \"size-2d\": 61727,\n \"shield-alert\": 61728,\n \"share\": 61729,\n \"semi-detached\": 61730,\n \"search\": 61731,\n \"search-x\": 61732,\n \"sea\": 61733,\n \"sauna\": 61734,\n \"sale\": 61735,\n \"rotate-cw\": 61736,\n \"restaurant\": 61737,\n \"rent\": 61738,\n \"properties-search-empty\": 61739,\n \"properties-linear\": 61740,\n \"properties-filled\": 61741,\n \"promotion\": 61742,\n \"plus\": 61743,\n \"play-solid\": 61744,\n \"pin_map_solid\": 61745,\n \"pin\": 61746,\n \"phone-linear\": 61747,\n \"pet\": 61748,\n \"pent-house\": 61749,\n \"pencil-line\": 61750,\n \"payments\": 61751,\n \"patio\": 61752,\n \"party-hall\": 61753,\n \"parking\": 61754,\n \"paddle-tennis\": 61755,\n \"outside\": 61756,\n \"other-commercial\": 61757,\n \"office-briefcase\": 61758,\n \"notes\": 61759,\n \"note\": 61760,\n \"no-buildable-plot\": 61761,\n \"mortgage\": 61762,\n \"mortgage-rtl\": 61763,\n \"more-horizontal\": 61764,\n \"monumental\": 61765,\n \"minus\": 61766,\n \"map\": 61767,\n \"map-pin\": 61768,\n \"map-pin-2\": 61769,\n \"manage-rtl\": 61770,\n \"mail\": 61771,\n \"mail-search-rtl\": 61772,\n \"mail-check-rtl\": 61773,\n \"maids-service\": 61774,\n \"maids-room\": 61775,\n \"magic-wand\": 61776,\n \"logout\": 61777,\n \"loft\": 61778,\n \"lock\": 61779,\n \"loader\": 61780,\n \"link\": 61781,\n \"lift\": 61782,\n \"leads-linear\": 61783,\n \"leads-filled\": 61784,\n \"laptop-2\": 61785,\n \"keys_01\": 61786,\n \"info\": 61787,\n \"images-gallery\": 61788,\n \"image\": 61789,\n \"image-off\": 61790,\n \"icon-slot\": 61791,\n \"home-linear\": 61792,\n \"home-filled\": 61793,\n \"history\": 61794,\n \"help-circle\": 61795,\n \"heating\": 61796,\n \"handshake\": 61797,\n \"gym\": 61798,\n \"gas-station\": 61799,\n \"gas-heating\": 61800,\n \"garden\": 61801,\n \"garage\": 61802,\n \"furnished\": 61803,\n \"floor\": 61804,\n \"filter\": 61805,\n \"file\": 61806,\n \"file-video-rtl\": 61807,\n \"file-type\": 61808,\n \"file-text\": 61809,\n \"file-spreadsheet\": 61810,\n \"file-signature\": 61811,\n \"file-signature-rtl\": 61812,\n \"file-search-rtl\": 61813,\n \"file-search-2-rtl\": 61814,\n \"file-lock\": 61815,\n \"file-key\": 61816,\n \"file-key-rtl\": 61817,\n \"file-key-2-rtl\": 61818,\n \"file-input\": 61819,\n \"file-check\": 61820,\n \"file-check-rtl\": 61821,\n \"factory\": 61822,\n \"face-ios-light\": 61823,\n \"face-ios-bold\": 61824,\n \"face-android\": 61825,\n \"eye-visible\": 61826,\n \"eye-hidden\": 61827,\n \"external_link\": 61828,\n \"explore-linear\": 61829,\n \"explore-filled\": 61830,\n \"equipped-kitchen\": 61831,\n \"electric\": 61832,\n \"edit\": 61833,\n \"duplex\": 61834,\n \"download\": 61835,\n \"doorman\": 61836,\n \"door-open\": 61837,\n \"dishwasher\": 61838,\n \"copy\": 61839,\n \"contact\": 61840,\n \"concierge\": 61841,\n \"collections\": 61842,\n \"closet\": 61843,\n \"classic-building\": 61844,\n \"circle-off\": 61845,\n \"chevron-up\": 61846,\n \"chevron-right\": 61847,\n \"chevron-left\": 61848,\n \"chevron-down\": 61849,\n \"check\": 61850,\n \"check-circle-2\": 61851,\n \"check-check\": 61852,\n \"chalet-pareado\": 61853,\n \"chalet-independet\": 61854,\n \"chalet-adosado\": 61855,\n \"cancel\": 61856,\n \"cancel-circle-stroke\": 61857,\n \"cancel-circle-solid\": 61858,\n \"camera\": 61859,\n \"calendar\": 61860,\n \"calendar-x\": 61861,\n \"calendar-sync-rtl\": 61862,\n \"calendar-search-rtl\": 61863,\n \"calendar-clock\": 61864,\n \"calendar-clock-rtl\": 61865,\n \"calendar-check\": 61866,\n \"calendar-check-rtl\": 61867,\n \"building\": 61868,\n \"building-delete\": 61869,\n \"building-2\": 61870,\n \"bell\": 61871,\n \"bed-double\": 61872,\n \"bath\": 61873,\n \"barbeque\": 61874,\n \"balcony-window\": 61875,\n \"arrow-up\": 61876,\n \"arrow-up-right\": 61877,\n \"arrow-up-left\": 61878,\n \"arrow-up-down\": 61879,\n \"arrow-right\": 61880,\n \"arrow-left\": 61881,\n \"arrow-left-right\": 61882,\n \"arrow-down\": 61883,\n \"arrow-down-right\": 61884,\n \"arrow-down-left\": 61885,\n \"archive\": 61886,\n \"alert\": 61887,\n \"alert-triangle\": 61888,\n \"alert-circle\": 61889,\n \"air-conditioner\": 61890,\n \"ai\": 61891,\n \"add-note\": 61892,\n \"accessibility\": 61893\n};\n\n/**\n * Font family name for React Native\n */\nexport const fontFamily = 'HuspyIcons';\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/native/index.ts","../../src/native/Icon.tsx","../../src/native/glyphMap.ts","../../src/icons-no-flip-rtl.ts","../../src/icon-rtl-map.ts"],"sourcesContent":["/**\n * Huspy Icons - React Native (Font-based)\n * \n * This package provides icon components for React Native using a custom font.\n * \n * @example\n * ```tsx\n * import { Icon } from 'huspy-icons/native';\n * \n * function MyComponent() {\n * return <Icon name=\"arrow-left\" size={24} color=\"#000\" />;\n * }\n * ```\n */\n\nexport { default as Icon } from './Icon';\nexport type { IconProps, IconName } from './Icon';\nexport { glyphMap, fontFamily } from './glyphMap';\nexport { ICONS_NO_FLIP_RTL, ICON_RTL_MAP } from '../rtl';\n\n","import * as React from 'react';\nimport { Text, TextProps } from 'react-native';\nimport { glyphMap, fontFamily, IconName } from './glyphMap';\n\n/**\n * Props for the Icon component (React Native)\n */\nexport interface IconProps extends Omit<TextProps, 'children'> {\n /**\n * Name of the icon to display\n */\n name: IconName;\n\n /**\n * Size of the icon (default: 16)\n */\n size?: number;\n\n /**\n * Color of the icon (default: inherits from parent or 'black')\n */\n color?: string;\n}\n\n/**\n * Icon component for React Native\n *\n * Renders icons using a custom font (HuspyIcons)\n *\n * @example\n * ```tsx\n * <Icon name=\"arrow-left\" size={24} color=\"#000\" />\n * ```\n */\nconst Icon = ({ name, size = 16, color = '#000', style, ...props }: IconProps) => {\n const codepoint = glyphMap[name];\n\n if (!codepoint) {\n if (__DEV__) {\n console.warn(`Icon \"${name}\" not found in HuspyIcons font`);\n }\n return null;\n }\n\n // Convert codepoint to character\n const glyph = String.fromCharCode(codepoint);\n\n return (\n <Text\n {...props}\n style={[\n {\n fontFamily: fontFamily,\n fontSize: size,\n color: color,\n // Ensure icon doesn't inherit text styles\n fontWeight: 'normal',\n fontStyle: 'normal',\n // Prevent text selection and ensure proper rendering\n includeFontPadding: false, // Android: removes extra padding\n textAlignVertical: 'center', // Android: centers the glyph vertically\n },\n style,\n ]}\n // Accessibility\n accessible\n accessibilityLabel={props.accessibilityLabel || name}\n accessibilityRole=\"image\"\n >\n {glyph}\n </Text>\n );\n};\n\nexport default Icon;\nexport type { IconName };\n","// Auto-generated by generate-font.js - do not edit manually\n// Source: icons-src/*.svg → dist/fonts/HuspyIcons.*\n\n/**\n * Available icon names in the HuspyIcons font\n */\nexport type IconName = 'wifi' | 'whatsapp' | 'washing-machine' | 'warehouse' | 'walk-in-closet' | 'villa' | 'user' | 'user-square' | 'user-plus' | 'user-check-rtl' | 'upload' | 'trash' | 'trash-2' | 'town-house' | 'tower' | 'touch-ios' | 'touch-android' | 'time' | 'thumbs-up' | 'thumbs-down' | 'thermometer-snowflake' | 'terrace' | 'tennis' | 'tasks' | 'tasks-rtl' | 'swimming-pool' | 'store' | 'storage' | 'status-dot' | 'size-3d' | 'size-2d' | 'shield-alert' | 'share' | 'semi-detached' | 'search' | 'search-x' | 'sea' | 'sauna' | 'sale' | 'rotate-cw' | 'restaurant' | 'rent' | 'properties-search-empty' | 'properties-linear' | 'properties-filled' | 'promotion' | 'plus' | 'play-solid' | 'pin_map_solid' | 'pin' | 'phone-linear' | 'pet' | 'pent-house' | 'pencil-line' | 'payments' | 'patio' | 'party-hall' | 'parking' | 'paddle-tennis' | 'outside' | 'other-commercial' | 'office-briefcase' | 'notes' | 'note' | 'no-buildable-plot' | 'mortgage' | 'mortgage-rtl' | 'more-horizontal' | 'monumental' | 'minus' | 'map' | 'map-pin' | 'map-pin-2' | 'manage-rtl' | 'mail' | 'mail-search-rtl' | 'mail-check-rtl' | 'maids-service' | 'maids-room' | 'magic-wand' | 'logout' | 'loft' | 'lock' | 'loader' | 'link' | 'lift' | 'leads-linear' | 'leads-filled' | 'laptop-2' | 'keys_01' | 'info' | 'images-gallery' | 'image' | 'image-off' | 'icon-slot' | 'home-linear' | 'home-filled' | 'history' | 'help-circle' | 'heating' | 'handshake' | 'gym' | 'gas-station' | 'gas-heating' | 'garden' | 'garage' | 'furnished' | 'floor' | 'filter' | 'file' | 'file-video-rtl' | 'file-type' | 'file-text' | 'file-spreadsheet' | 'file-signature' | 'file-signature-rtl' | 'file-search-rtl' | 'file-search-2-rtl' | 'file-lock' | 'file-key' | 'file-key-rtl' | 'file-key-2-rtl' | 'file-input' | 'file-check' | 'file-check-rtl' | 'factory' | 'face-ios-light' | 'face-ios-bold' | 'face-android' | 'eye-visible' | 'eye-hidden' | 'external_link' | 'explore-linear' | 'explore-filled' | 'equipped-kitchen' | 'electric' | 'edit' | 'duplex' | 'download' | 'doorman' | 'door-open' | 'dishwasher' | 'copy' | 'contact' | 'concierge' | 'collections' | 'closet' | 'classic-building' | 'circle-off' | 'chevron-up' | 'chevron-right' | 'chevron-left' | 'chevron-down' | 'check' | 'check-circle-2' | 'check-check' | 'chalet-pareado' | 'chalet-independet' | 'chalet-adosado' | 'cancel' | 'cancel-circle-stroke' | 'cancel-circle-solid' | 'camera' | 'calendar' | 'calendar-x' | 'calendar-sync-rtl' | 'calendar-search-rtl' | 'calendar-clock' | 'calendar-clock-rtl' | 'calendar-check' | 'calendar-check-rtl' | 'building' | 'building-delete' | 'building-2' | 'bell' | 'bed-double' | 'bath' | 'barbeque' | 'balcony-window' | 'arrow-up' | 'arrow-up-right' | 'arrow-up-left' | 'arrow-up-down' | 'arrow-right' | 'arrow-left' | 'arrow-left-right' | 'arrow-down' | 'arrow-down-right' | 'arrow-down-left' | 'archive' | 'alert' | 'alert-triangle' | 'alert-circle' | 'air-conditioner' | 'ai' | 'add-note' | 'accessibility';\n\n/**\n * Mapping of icon names to unicode codepoints\n * Used by the Icon component to render the correct glyph\n */\nexport const glyphMap: Record<IconName, number> = {\n \"wifi\": 61697,\n \"whatsapp\": 61698,\n \"washing-machine\": 61699,\n \"warehouse\": 61700,\n \"walk-in-closet\": 61701,\n \"villa\": 61702,\n \"user\": 61703,\n \"user-square\": 61704,\n \"user-plus\": 61705,\n \"user-check-rtl\": 61706,\n \"upload\": 61707,\n \"trash\": 61708,\n \"trash-2\": 61709,\n \"town-house\": 61710,\n \"tower\": 61711,\n \"touch-ios\": 61712,\n \"touch-android\": 61713,\n \"time\": 61714,\n \"thumbs-up\": 61715,\n \"thumbs-down\": 61716,\n \"thermometer-snowflake\": 61717,\n \"terrace\": 61718,\n \"tennis\": 61719,\n \"tasks\": 61720,\n \"tasks-rtl\": 61721,\n \"swimming-pool\": 61722,\n \"store\": 61723,\n \"storage\": 61724,\n \"status-dot\": 61725,\n \"size-3d\": 61726,\n \"size-2d\": 61727,\n \"shield-alert\": 61728,\n \"share\": 61729,\n \"semi-detached\": 61730,\n \"search\": 61731,\n \"search-x\": 61732,\n \"sea\": 61733,\n \"sauna\": 61734,\n \"sale\": 61735,\n \"rotate-cw\": 61736,\n \"restaurant\": 61737,\n \"rent\": 61738,\n \"properties-search-empty\": 61739,\n \"properties-linear\": 61740,\n \"properties-filled\": 61741,\n \"promotion\": 61742,\n \"plus\": 61743,\n \"play-solid\": 61744,\n \"pin_map_solid\": 61745,\n \"pin\": 61746,\n \"phone-linear\": 61747,\n \"pet\": 61748,\n \"pent-house\": 61749,\n \"pencil-line\": 61750,\n \"payments\": 61751,\n \"patio\": 61752,\n \"party-hall\": 61753,\n \"parking\": 61754,\n \"paddle-tennis\": 61755,\n \"outside\": 61756,\n \"other-commercial\": 61757,\n \"office-briefcase\": 61758,\n \"notes\": 61759,\n \"note\": 61760,\n \"no-buildable-plot\": 61761,\n \"mortgage\": 61762,\n \"mortgage-rtl\": 61763,\n \"more-horizontal\": 61764,\n \"monumental\": 61765,\n \"minus\": 61766,\n \"map\": 61767,\n \"map-pin\": 61768,\n \"map-pin-2\": 61769,\n \"manage-rtl\": 61770,\n \"mail\": 61771,\n \"mail-search-rtl\": 61772,\n \"mail-check-rtl\": 61773,\n \"maids-service\": 61774,\n \"maids-room\": 61775,\n \"magic-wand\": 61776,\n \"logout\": 61777,\n \"loft\": 61778,\n \"lock\": 61779,\n \"loader\": 61780,\n \"link\": 61781,\n \"lift\": 61782,\n \"leads-linear\": 61783,\n \"leads-filled\": 61784,\n \"laptop-2\": 61785,\n \"keys_01\": 61786,\n \"info\": 61787,\n \"images-gallery\": 61788,\n \"image\": 61789,\n \"image-off\": 61790,\n \"icon-slot\": 61791,\n \"home-linear\": 61792,\n \"home-filled\": 61793,\n \"history\": 61794,\n \"help-circle\": 61795,\n \"heating\": 61796,\n \"handshake\": 61797,\n \"gym\": 61798,\n \"gas-station\": 61799,\n \"gas-heating\": 61800,\n \"garden\": 61801,\n \"garage\": 61802,\n \"furnished\": 61803,\n \"floor\": 61804,\n \"filter\": 61805,\n \"file\": 61806,\n \"file-video-rtl\": 61807,\n \"file-type\": 61808,\n \"file-text\": 61809,\n \"file-spreadsheet\": 61810,\n \"file-signature\": 61811,\n \"file-signature-rtl\": 61812,\n \"file-search-rtl\": 61813,\n \"file-search-2-rtl\": 61814,\n \"file-lock\": 61815,\n \"file-key\": 61816,\n \"file-key-rtl\": 61817,\n \"file-key-2-rtl\": 61818,\n \"file-input\": 61819,\n \"file-check\": 61820,\n \"file-check-rtl\": 61821,\n \"factory\": 61822,\n \"face-ios-light\": 61823,\n \"face-ios-bold\": 61824,\n \"face-android\": 61825,\n \"eye-visible\": 61826,\n \"eye-hidden\": 61827,\n \"external_link\": 61828,\n \"explore-linear\": 61829,\n \"explore-filled\": 61830,\n \"equipped-kitchen\": 61831,\n \"electric\": 61832,\n \"edit\": 61833,\n \"duplex\": 61834,\n \"download\": 61835,\n \"doorman\": 61836,\n \"door-open\": 61837,\n \"dishwasher\": 61838,\n \"copy\": 61839,\n \"contact\": 61840,\n \"concierge\": 61841,\n \"collections\": 61842,\n \"closet\": 61843,\n \"classic-building\": 61844,\n \"circle-off\": 61845,\n \"chevron-up\": 61846,\n \"chevron-right\": 61847,\n \"chevron-left\": 61848,\n \"chevron-down\": 61849,\n \"check\": 61850,\n \"check-circle-2\": 61851,\n \"check-check\": 61852,\n \"chalet-pareado\": 61853,\n \"chalet-independet\": 61854,\n \"chalet-adosado\": 61855,\n \"cancel\": 61856,\n \"cancel-circle-stroke\": 61857,\n \"cancel-circle-solid\": 61858,\n \"camera\": 61859,\n \"calendar\": 61860,\n \"calendar-x\": 61861,\n \"calendar-sync-rtl\": 61862,\n \"calendar-search-rtl\": 61863,\n \"calendar-clock\": 61864,\n \"calendar-clock-rtl\": 61865,\n \"calendar-check\": 61866,\n \"calendar-check-rtl\": 61867,\n \"building\": 61868,\n \"building-delete\": 61869,\n \"building-2\": 61870,\n \"bell\": 61871,\n \"bed-double\": 61872,\n \"bath\": 61873,\n \"barbeque\": 61874,\n \"balcony-window\": 61875,\n \"arrow-up\": 61876,\n \"arrow-up-right\": 61877,\n \"arrow-up-left\": 61878,\n \"arrow-up-down\": 61879,\n \"arrow-right\": 61880,\n \"arrow-left\": 61881,\n \"arrow-left-right\": 61882,\n \"arrow-down\": 61883,\n \"arrow-down-right\": 61884,\n \"arrow-down-left\": 61885,\n \"archive\": 61886,\n \"alert\": 61887,\n \"alert-triangle\": 61888,\n \"alert-circle\": 61889,\n \"air-conditioner\": 61890,\n \"ai\": 61891,\n \"add-note\": 61892,\n \"accessibility\": 61893\n};\n\n/**\n * Font family name for React Native\n */\nexport const fontFamily = 'HuspyIcons';\n","/**\n * Icons that should not be flipped or swapped in RTL layout.\n * Use ICONS_NO_FLIP_RTL.has(iconName) for O(1) lookup.\n * Curated list — naming as provided.\n */\nconst ICONS_NO_FLIP_RTL_NAMES = [\n '3D',\n 'AC',\n 'Barbeque',\n 'Bug',\n 'Circle',\n 'Circle-off',\n 'Facotry',\n 'Floor',\n 'Gas station',\n 'Gym',\n 'IA',\n 'Lift',\n 'Office-briefcase',\n 'Other commercial',\n 'Patio',\n 'Penthouse',\n 'Star',\n 'Storage',\n 'Swimming-Pool',\n 'Terrace',\n 'Walk-in closet',\n 'Arrow-down-long-stem',\n 'accessibility',\n 'add',\n 'add-solid',\n 'air:conditioner',\n 'alert',\n 'alert-circle',\n 'alert-octagon',\n 'alert-triangle',\n 'archive',\n 'arrow-big-down',\n 'arrow-big-down-dash',\n 'arrow-big-up',\n 'arrow-big-up-dash',\n 'arrow-down',\n 'arrow-down-0-1',\n 'arrow-down-1-0',\n 'arrow-down-a-z',\n 'arrow-down-circle',\n 'arrow-down-from-line',\n 'arrow-down-narrow-wide',\n 'arrow-down-to-dot',\n 'arrow-down-to-line',\n 'arrow-down-z-a',\n 'arrow-left-right',\n 'arrow-up',\n 'arrow-up-0-1',\n 'arrow-up-circle',\n 'arrow-up-down',\n 'arrow-up-from-dot',\n 'arrow-up-from-line',\n 'arrow-up-to-line',\n 'arrow-up-wide-narrow',\n 'arrows-up-from-line',\n 'balcony-window',\n 'bank',\n 'bath',\n 'bed',\n 'bed-double',\n 'bed-single',\n 'bell',\n 'bell-off',\n 'bell-ring',\n 'binoculars',\n 'bricks',\n 'briefcase',\n 'brush',\n 'building',\n 'bus',\n 'calculator',\n 'calendar',\n 'calendar-off',\n 'calendar-x',\n 'camera',\n 'camera-professional',\n 'cancel',\n 'cancel-circle-solid',\n 'cancel-circle-stroke',\n 'cancel-oct',\n 'cancel-square',\n 'card:board:glasses',\n 'car-front',\n 'castle',\n 'category:01',\n 'category:02',\n 'chalet-adosado',\n 'chalet-independet',\n 'chalet-pareado',\n 'check',\n 'check-check',\n 'check-circle',\n 'check-circle-2',\n 'check-circle-Solid',\n 'check-square',\n 'chevron-down',\n 'chevron-down-circle',\n 'chevron-down-square',\n 'chevron-up',\n 'chevron-up-circle',\n 'chevron-up-square',\n 'chevrons-down',\n 'chevrons-down-up',\n 'chevrons-left-right',\n 'chevrons-right-left',\n 'chevrons-up',\n 'chevrons-up-down',\n 'church',\n 'classic building',\n 'closet',\n 'collections',\n 'collections-minus',\n 'collections-plus',\n 'comission',\n 'companion',\n 'compass',\n 'conseiger',\n 'confetti',\n 'construction',\n 'contact',\n 'copy',\n 'credits',\n 'cup-soda',\n 'data-tech',\n 'delete',\n 'delete-solid',\n 'dishwhaser',\n 'documents',\n 'door-open',\n 'doorman',\n 'dot-circle-Solid',\n 'download',\n 'download-cloud',\n 'duplex',\n 'edit',\n 'electric',\n 'elevator',\n 'equipped kitchen',\n 'eye-hidden',\n 'eye-visible',\n 'face-id',\n 'facebook',\n 'fingerprint',\n 'fingerprint-android',\n 'fire',\n 'floor',\n 'folder',\n 'forward',\n 'furnished',\n 'garage',\n 'garden',\n 'gas:heating',\n 'hammer',\n 'handshake',\n 'heart:outlined',\n 'heart-matches',\n 'heart-matches:outlined',\n 'heart-solid',\n 'heating',\n 'history',\n 'hotel',\n 'image',\n 'image-minus',\n 'image-off',\n 'image-plus',\n 'images:gallery',\n 'instagram',\n 'keys:01',\n 'keys:02',\n 'lamp',\n 'Land',\n 'laptop-2',\n 'li:x-square',\n 'linkedin',\n 'loader',\n 'loft',\n 'logout',\n 'lock',\n 'mail',\n 'maids-room',\n 'maids-service',\n 'map',\n 'map-pin',\n 'map-pin-off',\n 'maximaze',\n 'messages-square',\n 'mic',\n 'microwave',\n 'minimize',\n 'monumetal',\n 'mortgage',\n 'outside',\n 'paddleTennis',\n 'parking',\n 'parking-square',\n 'partyHall',\n 'patio',\n 'pause',\n 'pause-fill',\n 'payments',\n 'pencil-line',\n 'pent:house',\n 'pet',\n 'phone',\n 'phone-call',\n 'phone-forwarded',\n 'phone-incoming',\n 'phone-missed',\n 'phone-off',\n 'phone-outgoing',\n 'play-linear',\n 'play-solid',\n 'plus',\n 'promotion',\n 'rewind',\n 'rotate-ccw',\n 'rotate-cw',\n 'sale',\n 'sauna',\n 'sea',\n 'search',\n 'search-check',\n 'search-code',\n 'search-slash',\n 'search-x',\n 'send',\n 'share',\n 'shield-alert',\n 'skip-back',\n 'skip-forward',\n 'slack',\n 'smiley/linear/bad',\n 'smiley/linear/good',\n 'smiley/linear/regular',\n 'smiley/linear/super:bad',\n 'smiley/linear/super:good',\n 'smiley/solid/bad',\n 'smiley/solid/good',\n 'smiley/solid/regular',\n 'smiley/solid/super:bad',\n 'smiley/solid/super:good',\n 'storage',\n 'store',\n 'swiper:arrows',\n 'tennis',\n 'terrace',\n 'thumbs-down',\n 'thumbs-up',\n 'thumbs-up-solid',\n 'time',\n 'touch-android',\n 'touch-ios',\n 'tower',\n 'town-house',\n 'trash',\n 'trash-2',\n 'twitch',\n 'twitter',\n 'update:refresh',\n 'upload',\n 'user',\n 'user-plus',\n 'user-square',\n 'villa',\n 'walk-in-closet',\n 'warehouse',\n 'washing-machine',\n 'whasingmachine',\n 'whatsapp',\n 'wifi',\n 'youtube',\n 'distance',\n 'funnel',\n 'euro',\n 'properties-filled',\n 'properties-linear',\n 'properties-search-empty',\n 'rent',\n 'restaurant',\n 'size-2d',\n 'size-3d',\n 'semi-detached',\n 'status-dot',\n 'no-buildable-plot',\n 'notes',\n 'note',\n 'more-horizontal',\n 'minus',\n 'map-pin',\n 'magic-wand',\n 'link',\n 'leads-linear',\n 'leads-filled',\n 'info',\n 'icon-slot',\n 'home-linear',\n 'home-filled',\n 'help-circle',\n 'gym',\n 'gas-station',\n 'filter',\n 'file',\n 'file-type',\n 'file-text',\n 'file-spreadsheet',\n 'file-lock',\n 'file-input',\n 'factory',\n 'face-ios-light',\n 'face-ios-bold',\n 'face-android',\n 'external_link',\n 'explore-linear',\n 'explore-filled',\n 'edit',\n 'concierge',\n 'collections',\n 'classic-building',\n 'circle-off',\n 'chevron-down',\n 'chevron-up',\n 'chevron-right',\n 'chevron-left',\n 'cancel',\n 'building',\n 'building-delete',\n 'building-2',\n 'bed-double',\n 'barbeque',\n 'balcony-window',\n 'arrow-up',\n 'arrow-right',\n 'arrow-left',\n 'arrow-down',\n 'arrow-down-right',\n 'arrow-down-left',\n 'air-conditioner',\n 'ai',\n 'add-note',\n 'pin_map_solid',\n 'phone-linear',\n 'pet',\n 'pent-house',\n 'parking',\n 'paddle-tennis',\n 'outside',\n 'other-commercial',\n 'office-briefcase',\n 'no-buildable-plot',\n 'monumental',\n 'mortgage',\n 'manage-rtl',\n 'mail',\n 'maids-service',\n 'maids-room',\n 'laptop-2',\n 'keys_01',\n 'lift',\n 'loft',\n 'images-gallery',\n 'image-off',\n 'equipped-kitchen',\n];\n\n/**\n * Set of icon names that should not be flipped or swapped in RTL layout.\n * O(1) lookup: ICONS_NO_FLIP_RTL.has(iconName)\n */\nexport const ICONS_NO_FLIP_RTL: ReadonlySet<string> = new Set(ICONS_NO_FLIP_RTL_NAMES);\n","// Auto-generated by scripts/generate-rtl-map.js - do not edit manually\n// Source: icons-src/*.rtl.svg\n\n/**\n * LTR → RTL icon name mapping.\n * Key = LTR icon name (name without the .rtl suffix).\n * Value = RTL icon name as in the font (e.g. calendar-check-rtl).\n */\nconst RTL_ICON_NAMES = [\n 'calendar-check.rtl',\n 'calendar-clock.rtl',\n 'calendar-search.rtl',\n 'calendar-sync.rtl',\n 'file-check.rtl',\n 'file-key-2.rtl',\n 'file-key.rtl',\n 'file-search-2.rtl',\n 'file-search.rtl',\n 'file-signature.rtl',\n 'file-video.rtl',\n 'mail-check.rtl',\n 'mail-search.rtl',\n 'manage.rtl',\n 'mortgage.rtl',\n 'tasks.rtl',\n 'user-check.rtl',\n];\n\n/**\n * Map from LTR icon name to RTL icon name (font/glyphMap format).\n * Only entries that have a dedicated RTL variant are present.\n * Usage: isRtl && ICON_RTL_MAP[iconName] ? ICON_RTL_MAP[iconName] : iconName\n */\nexport const ICON_RTL_MAP: Record<string, string> = Object.fromEntries(\n RTL_ICON_NAMES.map((name) => {\n const ltrName = name.replace(/\\.rtl$/, '');\n const rtlName = name.replace(/\\.rtl$/, '-rtl'); // font uses -rtl\n return [ltrName, rtlName];\n })\n) as Record<string, string>;\n"],"mappings":"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AAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMO,IAAM,oBAAyC,IAAI,IAAI,uBAAuB;;;AC9WrF,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAOO,IAAM,eAAuC,OAAO;AAAA,EACzD,eAAe,IAAI,CAAC,SAAS;AAC3B,UAAM,UAAU,KAAK,QAAQ,UAAU,EAAE;AACzC,UAAM,UAAU,KAAK,QAAQ,UAAU,MAAM;AAC7C,WAAO,CAAC,SAAS,OAAO;AAAA,EAC1B,CAAC;AACH;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "huspy-icons",
3
- "version": "0.3.60",
3
+ "version": "0.3.61",
4
4
  "description": "Cross-platform icon package for Huspy - React and React Native compatible",
5
5
  "author": "Huspy",
6
6
  "license": "MIT",
@@ -42,10 +42,11 @@
42
42
  "svgo": "svgo -f icons-src -o icons-src --config=svgo.config.js",
43
43
  "gen:react": "svgr icons-src -d src/react --ext tsx --typescript --icon && node scripts/add-size-prop.js --react",
44
44
  "gen:native": "node scripts/generate-font.js",
45
+ "gen:rtl": "node scripts/generate-rtl-map.js",
45
46
  "gen:types": "node scripts/generate-types.js",
46
- "gen": "npm run svgo && npm run gen:react && npm run gen:native && npm run gen:types",
47
+ "gen": "npm run svgo && npm run gen:react && npm run gen:native && npm run gen:rtl && npm run gen:types",
47
48
  "build": "tsup",
48
- "prepare": "npm run svgo && npm run gen:react && npm run gen:native && npm run gen:types && npm run build",
49
+ "prepare": "npm run svgo && npm run gen:react && npm run gen:native && npm run gen:rtl && npm run gen:types && npm run build",
49
50
  "typecheck": "tsc --noEmit",
50
51
  "version:patch": "node scripts/bump-version.js patch",
51
52
  "version:minor": "node scripts/bump-version.js minor",
@@ -0,0 +1,40 @@
1
+ // Auto-generated by scripts/generate-rtl-map.js - do not edit manually
2
+ // Source: icons-src/*.rtl.svg
3
+
4
+ /**
5
+ * LTR → RTL icon name mapping.
6
+ * Key = LTR icon name (name without the .rtl suffix).
7
+ * Value = RTL icon name as in the font (e.g. calendar-check-rtl).
8
+ */
9
+ const RTL_ICON_NAMES = [
10
+ 'calendar-check.rtl',
11
+ 'calendar-clock.rtl',
12
+ 'calendar-search.rtl',
13
+ 'calendar-sync.rtl',
14
+ 'file-check.rtl',
15
+ 'file-key-2.rtl',
16
+ 'file-key.rtl',
17
+ 'file-search-2.rtl',
18
+ 'file-search.rtl',
19
+ 'file-signature.rtl',
20
+ 'file-video.rtl',
21
+ 'mail-check.rtl',
22
+ 'mail-search.rtl',
23
+ 'manage.rtl',
24
+ 'mortgage.rtl',
25
+ 'tasks.rtl',
26
+ 'user-check.rtl',
27
+ ];
28
+
29
+ /**
30
+ * Map from LTR icon name to RTL icon name (font/glyphMap format).
31
+ * Only entries that have a dedicated RTL variant are present.
32
+ * Usage: isRtl && ICON_RTL_MAP[iconName] ? ICON_RTL_MAP[iconName] : iconName
33
+ */
34
+ export const ICON_RTL_MAP: Record<string, string> = Object.fromEntries(
35
+ RTL_ICON_NAMES.map((name) => {
36
+ const ltrName = name.replace(/\.rtl$/, '');
37
+ const rtlName = name.replace(/\.rtl$/, '-rtl'); // font uses -rtl
38
+ return [ltrName, rtlName];
39
+ })
40
+ ) as Record<string, string>;
@@ -0,0 +1,375 @@
1
+ /**
2
+ * Icons that should not be flipped or swapped in RTL layout.
3
+ * Use ICONS_NO_FLIP_RTL.has(iconName) for O(1) lookup.
4
+ * Curated list — naming as provided.
5
+ */
6
+ const ICONS_NO_FLIP_RTL_NAMES = [
7
+ '3D',
8
+ 'AC',
9
+ 'Barbeque',
10
+ 'Bug',
11
+ 'Circle',
12
+ 'Circle-off',
13
+ 'Facotry',
14
+ 'Floor',
15
+ 'Gas station',
16
+ 'Gym',
17
+ 'IA',
18
+ 'Lift',
19
+ 'Office-briefcase',
20
+ 'Other commercial',
21
+ 'Patio',
22
+ 'Penthouse',
23
+ 'Star',
24
+ 'Storage',
25
+ 'Swimming-Pool',
26
+ 'Terrace',
27
+ 'Walk-in closet',
28
+ 'Arrow-down-long-stem',
29
+ 'accessibility',
30
+ 'add',
31
+ 'add-solid',
32
+ 'air:conditioner',
33
+ 'alert',
34
+ 'alert-circle',
35
+ 'alert-octagon',
36
+ 'alert-triangle',
37
+ 'archive',
38
+ 'arrow-big-down',
39
+ 'arrow-big-down-dash',
40
+ 'arrow-big-up',
41
+ 'arrow-big-up-dash',
42
+ 'arrow-down',
43
+ 'arrow-down-0-1',
44
+ 'arrow-down-1-0',
45
+ 'arrow-down-a-z',
46
+ 'arrow-down-circle',
47
+ 'arrow-down-from-line',
48
+ 'arrow-down-narrow-wide',
49
+ 'arrow-down-to-dot',
50
+ 'arrow-down-to-line',
51
+ 'arrow-down-z-a',
52
+ 'arrow-left-right',
53
+ 'arrow-up',
54
+ 'arrow-up-0-1',
55
+ 'arrow-up-circle',
56
+ 'arrow-up-down',
57
+ 'arrow-up-from-dot',
58
+ 'arrow-up-from-line',
59
+ 'arrow-up-to-line',
60
+ 'arrow-up-wide-narrow',
61
+ 'arrows-up-from-line',
62
+ 'balcony-window',
63
+ 'bank',
64
+ 'bath',
65
+ 'bed',
66
+ 'bed-double',
67
+ 'bed-single',
68
+ 'bell',
69
+ 'bell-off',
70
+ 'bell-ring',
71
+ 'binoculars',
72
+ 'bricks',
73
+ 'briefcase',
74
+ 'brush',
75
+ 'building',
76
+ 'bus',
77
+ 'calculator',
78
+ 'calendar',
79
+ 'calendar-off',
80
+ 'calendar-x',
81
+ 'camera',
82
+ 'camera-professional',
83
+ 'cancel',
84
+ 'cancel-circle-solid',
85
+ 'cancel-circle-stroke',
86
+ 'cancel-oct',
87
+ 'cancel-square',
88
+ 'card:board:glasses',
89
+ 'car-front',
90
+ 'castle',
91
+ 'category:01',
92
+ 'category:02',
93
+ 'chalet-adosado',
94
+ 'chalet-independet',
95
+ 'chalet-pareado',
96
+ 'check',
97
+ 'check-check',
98
+ 'check-circle',
99
+ 'check-circle-2',
100
+ 'check-circle-Solid',
101
+ 'check-square',
102
+ 'chevron-down',
103
+ 'chevron-down-circle',
104
+ 'chevron-down-square',
105
+ 'chevron-up',
106
+ 'chevron-up-circle',
107
+ 'chevron-up-square',
108
+ 'chevrons-down',
109
+ 'chevrons-down-up',
110
+ 'chevrons-left-right',
111
+ 'chevrons-right-left',
112
+ 'chevrons-up',
113
+ 'chevrons-up-down',
114
+ 'church',
115
+ 'classic building',
116
+ 'closet',
117
+ 'collections',
118
+ 'collections-minus',
119
+ 'collections-plus',
120
+ 'comission',
121
+ 'companion',
122
+ 'compass',
123
+ 'conseiger',
124
+ 'confetti',
125
+ 'construction',
126
+ 'contact',
127
+ 'copy',
128
+ 'credits',
129
+ 'cup-soda',
130
+ 'data-tech',
131
+ 'delete',
132
+ 'delete-solid',
133
+ 'dishwhaser',
134
+ 'documents',
135
+ 'door-open',
136
+ 'doorman',
137
+ 'dot-circle-Solid',
138
+ 'download',
139
+ 'download-cloud',
140
+ 'duplex',
141
+ 'edit',
142
+ 'electric',
143
+ 'elevator',
144
+ 'equipped kitchen',
145
+ 'eye-hidden',
146
+ 'eye-visible',
147
+ 'face-id',
148
+ 'facebook',
149
+ 'fingerprint',
150
+ 'fingerprint-android',
151
+ 'fire',
152
+ 'floor',
153
+ 'folder',
154
+ 'forward',
155
+ 'furnished',
156
+ 'garage',
157
+ 'garden',
158
+ 'gas:heating',
159
+ 'hammer',
160
+ 'handshake',
161
+ 'heart:outlined',
162
+ 'heart-matches',
163
+ 'heart-matches:outlined',
164
+ 'heart-solid',
165
+ 'heating',
166
+ 'history',
167
+ 'hotel',
168
+ 'image',
169
+ 'image-minus',
170
+ 'image-off',
171
+ 'image-plus',
172
+ 'images:gallery',
173
+ 'instagram',
174
+ 'keys:01',
175
+ 'keys:02',
176
+ 'lamp',
177
+ 'Land',
178
+ 'laptop-2',
179
+ 'li:x-square',
180
+ 'linkedin',
181
+ 'loader',
182
+ 'loft',
183
+ 'logout',
184
+ 'lock',
185
+ 'mail',
186
+ 'maids-room',
187
+ 'maids-service',
188
+ 'map',
189
+ 'map-pin',
190
+ 'map-pin-off',
191
+ 'maximaze',
192
+ 'messages-square',
193
+ 'mic',
194
+ 'microwave',
195
+ 'minimize',
196
+ 'monumetal',
197
+ 'mortgage',
198
+ 'outside',
199
+ 'paddleTennis',
200
+ 'parking',
201
+ 'parking-square',
202
+ 'partyHall',
203
+ 'patio',
204
+ 'pause',
205
+ 'pause-fill',
206
+ 'payments',
207
+ 'pencil-line',
208
+ 'pent:house',
209
+ 'pet',
210
+ 'phone',
211
+ 'phone-call',
212
+ 'phone-forwarded',
213
+ 'phone-incoming',
214
+ 'phone-missed',
215
+ 'phone-off',
216
+ 'phone-outgoing',
217
+ 'play-linear',
218
+ 'play-solid',
219
+ 'plus',
220
+ 'promotion',
221
+ 'rewind',
222
+ 'rotate-ccw',
223
+ 'rotate-cw',
224
+ 'sale',
225
+ 'sauna',
226
+ 'sea',
227
+ 'search',
228
+ 'search-check',
229
+ 'search-code',
230
+ 'search-slash',
231
+ 'search-x',
232
+ 'send',
233
+ 'share',
234
+ 'shield-alert',
235
+ 'skip-back',
236
+ 'skip-forward',
237
+ 'slack',
238
+ 'smiley/linear/bad',
239
+ 'smiley/linear/good',
240
+ 'smiley/linear/regular',
241
+ 'smiley/linear/super:bad',
242
+ 'smiley/linear/super:good',
243
+ 'smiley/solid/bad',
244
+ 'smiley/solid/good',
245
+ 'smiley/solid/regular',
246
+ 'smiley/solid/super:bad',
247
+ 'smiley/solid/super:good',
248
+ 'storage',
249
+ 'store',
250
+ 'swiper:arrows',
251
+ 'tennis',
252
+ 'terrace',
253
+ 'thumbs-down',
254
+ 'thumbs-up',
255
+ 'thumbs-up-solid',
256
+ 'time',
257
+ 'touch-android',
258
+ 'touch-ios',
259
+ 'tower',
260
+ 'town-house',
261
+ 'trash',
262
+ 'trash-2',
263
+ 'twitch',
264
+ 'twitter',
265
+ 'update:refresh',
266
+ 'upload',
267
+ 'user',
268
+ 'user-plus',
269
+ 'user-square',
270
+ 'villa',
271
+ 'walk-in-closet',
272
+ 'warehouse',
273
+ 'washing-machine',
274
+ 'whasingmachine',
275
+ 'whatsapp',
276
+ 'wifi',
277
+ 'youtube',
278
+ 'distance',
279
+ 'funnel',
280
+ 'euro',
281
+ 'properties-filled',
282
+ 'properties-linear',
283
+ 'properties-search-empty',
284
+ 'rent',
285
+ 'restaurant',
286
+ 'size-2d',
287
+ 'size-3d',
288
+ 'semi-detached',
289
+ 'status-dot',
290
+ 'no-buildable-plot',
291
+ 'notes',
292
+ 'note',
293
+ 'more-horizontal',
294
+ 'minus',
295
+ 'map-pin',
296
+ 'magic-wand',
297
+ 'link',
298
+ 'leads-linear',
299
+ 'leads-filled',
300
+ 'info',
301
+ 'icon-slot',
302
+ 'home-linear',
303
+ 'home-filled',
304
+ 'help-circle',
305
+ 'gym',
306
+ 'gas-station',
307
+ 'filter',
308
+ 'file',
309
+ 'file-type',
310
+ 'file-text',
311
+ 'file-spreadsheet',
312
+ 'file-lock',
313
+ 'file-input',
314
+ 'factory',
315
+ 'face-ios-light',
316
+ 'face-ios-bold',
317
+ 'face-android',
318
+ 'external_link',
319
+ 'explore-linear',
320
+ 'explore-filled',
321
+ 'edit',
322
+ 'concierge',
323
+ 'collections',
324
+ 'classic-building',
325
+ 'circle-off',
326
+ 'chevron-down',
327
+ 'chevron-up',
328
+ 'chevron-right',
329
+ 'chevron-left',
330
+ 'cancel',
331
+ 'building',
332
+ 'building-delete',
333
+ 'building-2',
334
+ 'bed-double',
335
+ 'barbeque',
336
+ 'balcony-window',
337
+ 'arrow-up',
338
+ 'arrow-right',
339
+ 'arrow-left',
340
+ 'arrow-down',
341
+ 'arrow-down-right',
342
+ 'arrow-down-left',
343
+ 'air-conditioner',
344
+ 'ai',
345
+ 'add-note',
346
+ 'pin_map_solid',
347
+ 'phone-linear',
348
+ 'pet',
349
+ 'pent-house',
350
+ 'parking',
351
+ 'paddle-tennis',
352
+ 'outside',
353
+ 'other-commercial',
354
+ 'office-briefcase',
355
+ 'no-buildable-plot',
356
+ 'monumental',
357
+ 'mortgage',
358
+ 'manage-rtl',
359
+ 'mail',
360
+ 'maids-service',
361
+ 'maids-room',
362
+ 'laptop-2',
363
+ 'keys_01',
364
+ 'lift',
365
+ 'loft',
366
+ 'images-gallery',
367
+ 'image-off',
368
+ 'equipped-kitchen',
369
+ ];
370
+
371
+ /**
372
+ * Set of icon names that should not be flipped or swapped in RTL layout.
373
+ * O(1) lookup: ICONS_NO_FLIP_RTL.has(iconName)
374
+ */
375
+ export const ICONS_NO_FLIP_RTL: ReadonlySet<string> = new Set(ICONS_NO_FLIP_RTL_NAMES);
@@ -16,4 +16,5 @@
16
16
  export { default as Icon } from './Icon';
17
17
  export type { IconProps, IconName } from './Icon';
18
18
  export { glyphMap, fontFamily } from './glyphMap';
19
+ export { ICONS_NO_FLIP_RTL, ICON_RTL_MAP } from '../rtl';
19
20
 
package/src/rtl.ts ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * RTL utilities for Huspy Icons.
3
+ * Re-exports the no-flip set and LTR→RTL map for use in RTL-aware layouts.
4
+ */
5
+ export { ICONS_NO_FLIP_RTL } from './icons-no-flip-rtl';
6
+ export { ICON_RTL_MAP } from './icon-rtl-map';