react-car-logo 0.2.2 → 1.0.0

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.
Files changed (135) hide show
  1. package/README.md +46 -46
  2. package/dist/ReactCarLogo.d.ts +4 -0
  3. package/dist/allLogos.d.ts +1 -40
  4. package/dist/brands.d.ts +2 -0
  5. package/dist/index.d.ts +3 -41
  6. package/dist/index.esm.js +61 -641
  7. package/dist/index.js +60 -718
  8. package/dist/types.d.ts +15 -10
  9. package/package.json +1 -6
  10. package/src/ReactCarLogo.tsx +32 -0
  11. package/src/allLogos.ts +3 -43
  12. package/src/brands.ts +51 -0
  13. package/src/index.ts +3 -46
  14. package/src/types.ts +59 -10
  15. package/dist/logos/Abarth.d.ts +0 -5
  16. package/dist/logos/Abarth.js +0 -20
  17. package/dist/logos/AlfaRomeo.d.ts +0 -5
  18. package/dist/logos/AlfaRomeo.js +0 -20
  19. package/dist/logos/Alpine.d.ts +0 -5
  20. package/dist/logos/Alpine.js +0 -20
  21. package/dist/logos/Arash.d.ts +0 -5
  22. package/dist/logos/Arash.js +0 -20
  23. package/dist/logos/AstonMartin.d.ts +0 -5
  24. package/dist/logos/AstonMartin.js +0 -20
  25. package/dist/logos/Audi.d.ts +0 -5
  26. package/dist/logos/Audi.js +0 -20
  27. package/dist/logos/BMW.d.ts +0 -5
  28. package/dist/logos/BMW.js +0 -20
  29. package/dist/logos/Bentley.d.ts +0 -5
  30. package/dist/logos/Bentley.js +0 -20
  31. package/dist/logos/Brabus.d.ts +0 -5
  32. package/dist/logos/Brabus.js +0 -20
  33. package/dist/logos/Bugatti.d.ts +0 -5
  34. package/dist/logos/Bugatti.js +0 -20
  35. package/dist/logos/Chevrolet.d.ts +0 -5
  36. package/dist/logos/Chevrolet.js +0 -20
  37. package/dist/logos/DeTomaso.d.ts +0 -5
  38. package/dist/logos/DeTomaso.js +0 -20
  39. package/dist/logos/Dodge.d.ts +0 -5
  40. package/dist/logos/Dodge.js +0 -20
  41. package/dist/logos/Ferrari.d.ts +0 -5
  42. package/dist/logos/Ferrari.js +0 -20
  43. package/dist/logos/Ford.d.ts +0 -5
  44. package/dist/logos/Ford.js +0 -20
  45. package/dist/logos/Gumpert.d.ts +0 -5
  46. package/dist/logos/Gumpert.js +0 -20
  47. package/dist/logos/Hennessey.d.ts +0 -5
  48. package/dist/logos/Hennessey.js +0 -20
  49. package/dist/logos/Jaguar.d.ts +0 -5
  50. package/dist/logos/Jaguar.js +0 -20
  51. package/dist/logos/Koenigsegg.d.ts +0 -5
  52. package/dist/logos/Koenigsegg.js +0 -20
  53. package/dist/logos/Lamborghini.d.ts +0 -5
  54. package/dist/logos/Lamborghini.js +0 -20
  55. package/dist/logos/Lotus.d.ts +0 -5
  56. package/dist/logos/Lotus.js +0 -20
  57. package/dist/logos/Maserati.d.ts +0 -5
  58. package/dist/logos/Maserati.js +0 -20
  59. package/dist/logos/Maybach.d.ts +0 -5
  60. package/dist/logos/Maybach.js +0 -20
  61. package/dist/logos/McLaren.d.ts +0 -5
  62. package/dist/logos/McLaren.js +0 -20
  63. package/dist/logos/MercedesAMG.d.ts +0 -5
  64. package/dist/logos/MercedesAMG.js +0 -20
  65. package/dist/logos/Mosler.d.ts +0 -5
  66. package/dist/logos/Mosler.js +0 -20
  67. package/dist/logos/Pagani.d.ts +0 -5
  68. package/dist/logos/Pagani.js +0 -20
  69. package/dist/logos/Pininfarina.d.ts +0 -5
  70. package/dist/logos/Pininfarina.js +0 -20
  71. package/dist/logos/Polestar.d.ts +0 -5
  72. package/dist/logos/Polestar.js +0 -20
  73. package/dist/logos/Porsche.d.ts +0 -5
  74. package/dist/logos/Porsche.js +0 -20
  75. package/dist/logos/Radical.d.ts +0 -5
  76. package/dist/logos/Radical.js +0 -20
  77. package/dist/logos/Rimac.d.ts +0 -5
  78. package/dist/logos/Rimac.js +0 -20
  79. package/dist/logos/RollsRoyce.d.ts +0 -5
  80. package/dist/logos/RollsRoyce.js +0 -20
  81. package/dist/logos/SSC.d.ts +0 -5
  82. package/dist/logos/SSC.js +0 -20
  83. package/dist/logos/Saleen.d.ts +0 -5
  84. package/dist/logos/Saleen.js +0 -20
  85. package/dist/logos/Shelby.d.ts +0 -5
  86. package/dist/logos/Shelby.js +0 -20
  87. package/dist/logos/Spyker.d.ts +0 -5
  88. package/dist/logos/Spyker.js +0 -20
  89. package/dist/logos/TVR.d.ts +0 -5
  90. package/dist/logos/TVR.js +0 -20
  91. package/dist/logos/WMotors.d.ts +0 -5
  92. package/dist/logos/WMotors.js +0 -20
  93. package/dist/logos/Zenvo.d.ts +0 -5
  94. package/dist/logos/Zenvo.js +0 -20
  95. package/dist/types-B2mOhqdm.js +0 -44
  96. package/src/logos/Abarth.tsx +0 -39
  97. package/src/logos/AlfaRomeo.tsx +0 -39
  98. package/src/logos/Alpine.tsx +0 -39
  99. package/src/logos/Arash.tsx +0 -39
  100. package/src/logos/AstonMartin.tsx +0 -39
  101. package/src/logos/Audi.tsx +0 -39
  102. package/src/logos/BMW.tsx +0 -39
  103. package/src/logos/Bentley.tsx +0 -39
  104. package/src/logos/Brabus.tsx +0 -39
  105. package/src/logos/Bugatti.tsx +0 -39
  106. package/src/logos/Chevrolet.tsx +0 -39
  107. package/src/logos/DeTomaso.tsx +0 -39
  108. package/src/logos/Dodge.tsx +0 -39
  109. package/src/logos/Ferrari.tsx +0 -39
  110. package/src/logos/Ford.tsx +0 -39
  111. package/src/logos/Gumpert.tsx +0 -39
  112. package/src/logos/Hennessey.tsx +0 -39
  113. package/src/logos/Jaguar.tsx +0 -39
  114. package/src/logos/Koenigsegg.tsx +0 -39
  115. package/src/logos/Lamborghini.tsx +0 -39
  116. package/src/logos/Lotus.tsx +0 -39
  117. package/src/logos/Maserati.tsx +0 -39
  118. package/src/logos/Maybach.tsx +0 -39
  119. package/src/logos/McLaren.tsx +0 -39
  120. package/src/logos/MercedesAMG.tsx +0 -39
  121. package/src/logos/Mosler.tsx +0 -39
  122. package/src/logos/Pagani.tsx +0 -39
  123. package/src/logos/Pininfarina.tsx +0 -39
  124. package/src/logos/Polestar.tsx +0 -39
  125. package/src/logos/Porsche.tsx +0 -39
  126. package/src/logos/Radical.tsx +0 -39
  127. package/src/logos/Rimac.tsx +0 -39
  128. package/src/logos/RollsRoyce.tsx +0 -39
  129. package/src/logos/SSC.tsx +0 -39
  130. package/src/logos/Saleen.tsx +0 -39
  131. package/src/logos/Shelby.tsx +0 -39
  132. package/src/logos/Spyker.tsx +0 -39
  133. package/src/logos/TVR.tsx +0 -39
  134. package/src/logos/WMotors.tsx +0 -39
  135. package/src/logos/Zenvo.tsx +0 -39
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # react-car-logo
2
2
 
3
- PNG logo components for the top 50 exotic & luxury car brands. React & React Native compatible. Tree-shakeable. TypeScript.
3
+ PNG logo components for 40 exotic & luxury car brands. One component, pass the make as a slug. React & React Native compatible. TypeScript.
4
4
 
5
5
  ## Installation
6
6
 
@@ -11,63 +11,63 @@ npm install react-car-logo
11
11
  ## Quick Start
12
12
 
13
13
  ```tsx
14
- import { Ferrari, McLaren } from 'react-car-logo';
15
-
16
- // Or tree-shaken single import:
17
- import Ferrari from 'react-car-logo/logos/Ferrari';
18
-
19
- <Ferrari size="md" /> // 160px (default)
20
- <Ferrari size="sm" /> // 80px
21
- <Ferrari size="lg" /> // 320px
22
- <Ferrari width={240} /> // custom override
23
- <Ferrari alt="Ferrari Logo" /> // accessible alt
14
+ import { ReactCarLogo } from 'react-car-logo';
15
+
16
+ <ReactCarLogo name="ferrari" /> // 160px (default)
17
+ <ReactCarLogo name="ferrari" size="icon" /> // 32px
18
+ <ReactCarLogo name="ferrari" size="sm" /> // 80px
19
+ <ReactCarLogo name="ferrari" size="lg" /> // 320px
20
+ <ReactCarLogo name="ferrari" width={240} /> // custom override
21
+ <ReactCarLogo name="ferrari" alt="Logo" /> // accessible alt
24
22
  ```
25
23
 
26
24
  ## Size Presets
27
25
 
28
- | Prop value | Renders at | Fetches PNG | Best for |
29
- | ----------- | ---------- | ----------- | ----------------------- |
30
- | `size="sm"` | 80px | 160px (2x) | Nav, tables, thumbnails |
31
- | `size="md"` | 160px | 320px (2x) | Cards, lists (default) |
32
- | `size="lg"` | 320px | 640px (2x) | Hero, detail views |
33
- | `width={N}` | Npx | 640px | Any custom size |
26
+ | Prop value | Renders at | Best for |
27
+ | ------------- | ---------- | ---------------------------- |
28
+ | `size="icon"` | 32px | Inline icons, small UI |
29
+ | `size="sm"` | 80px | Nav, tables, thumbnails |
30
+ | `size="md"` | 160px | Cards, lists (default) |
31
+ | `size="lg"` | 320px | Hero, detail views |
32
+ | `width={N}` | Npx | Any custom size |
34
33
 
35
34
  ## Props
36
35
 
37
- | Prop | Type | Default | Description |
38
- | ----------- | ----------------------- | ---------- | ------------------------------------------------ |
39
- | `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | Size preset |
40
- | `width` | `number` | -- | Custom width in px (overrides size) |
41
- | `height` | `number` | -- | Custom height in px (overrides size) |
42
- | `alt` | `string` | brand name | Accessible alt text |
43
- | `loading` | `'lazy' \| 'eager'` | `'lazy'` | Native loading strategy |
44
- | `className` | `string` | -- | CSS class(es) |
45
- | `style` | `CSSProperties` | -- | Inline styles (merged with `objectFit: contain`) |
46
- | `...rest` | `ImgHTMLAttributes` | -- | Any standard `<img>` attribute |
36
+ | Prop | Type | Default | Description |
37
+ | ----------- | ----------------------------------- | ---------- | ------------------------------------------------ |
38
+ | `name` | `BrandName` | (required) | Brand slug, e.g. `"ferrari"`, `"rolls-royce"` |
39
+ | `size` | `'icon' \| 'sm' \| 'md' \| 'lg'` | `'md'` | Size preset |
40
+ | `width` | `number` | -- | Custom width in px (overrides size) |
41
+ | `height` | `number` | -- | Custom height in px (overrides size) |
42
+ | `alt` | `string` | brand name | Accessible alt text |
43
+ | `loading` | `'lazy' \| 'eager'` | `'lazy'` | Native loading strategy |
44
+ | `className` | `string` | -- | CSS class(es) |
45
+ | `style` | `CSSProperties` | -- | Inline styles (merged with `objectFit: contain`) |
46
+ | `...rest` | `ImgHTMLAttributes` | -- | Any standard `<img>` attribute |
47
47
 
48
48
  ## Brand Metadata
49
49
 
50
- Each brand exports a `meta` object alongside the component:
50
+ Access metadata for any brand via the `brands` registry:
51
51
 
52
52
  ```tsx
53
- import { FerrariMeta } from 'react-car-logo';
53
+ import { brands } from 'react-car-logo';
54
54
 
55
- console.log(FerrariMeta.title); // "Ferrari"
56
- console.log(FerrariMeta.country); // "Italy"
57
- console.log(FerrariMeta.hex); // "CD212A"
58
- console.log(FerrariMeta.founded); // 1939
55
+ console.log(brands.ferrari.title); // "Ferrari"
56
+ console.log(brands.ferrari.country); // "Italy"
57
+ console.log(brands.ferrari.hex); // "CD212A"
58
+ console.log(brands.ferrari.founded); // 1939
59
59
  ```
60
60
 
61
61
  ## Dynamic Rendering
62
62
 
63
- For rendering logos from string keys:
63
+ Pass any slug string to render logos dynamically -- perfect for data-driven UIs:
64
64
 
65
65
  ```tsx
66
- import * as CarLogos from 'react-car-logo/allLogos';
66
+ import { ReactCarLogo } from 'react-car-logo';
67
+ import type { BrandName } from 'react-car-logo';
67
68
 
68
- const brandName = 'Ferrari';
69
- const Logo = CarLogos[brandName as keyof typeof CarLogos];
70
- <Logo size="md" />;
69
+ const make = 'ferrari' as BrandName;
70
+ <ReactCarLogo name={make} size="md" />;
71
71
  ```
72
72
 
73
73
  ## React Native
@@ -76,26 +76,26 @@ Use the metadata `pngUrl` with React Native's `Image`:
76
76
 
77
77
  ```tsx
78
78
  import { Image } from 'react-native';
79
- import { FerrariMeta } from 'react-car-logo';
79
+ import { brands } from 'react-car-logo';
80
80
 
81
- <Image source={{ uri: FerrariMeta.pngUrl }} style={{ width: 160, height: 160 }} />;
81
+ <Image source={{ uri: brands.ferrari.pngUrl }} style={{ width: 160, height: 160 }} />;
82
82
  ```
83
83
 
84
- ## All 50 Brands
84
+ ## All 40 Brands
85
85
 
86
- **Italian:** Ferrari, Lamborghini, Maserati, Alfa Romeo, Pagani, De Tomaso, Pininfarina, Dallara, Abarth, Italdesign
86
+ **Italian:** Ferrari, Lamborghini, Maserati, Alfa Romeo, Pagani, De Tomaso, Pininfarina, Abarth
87
87
 
88
- **German:** Porsche, BMW, Mercedes-AMG, Brabus, Audi, Maybach, RUF, Gumpert, Apollo
88
+ **German:** Porsche, BMW, Mercedes-AMG, Brabus, Audi, Maybach, Gumpert
89
89
 
90
- **British:** McLaren, Bentley, Rolls-Royce, Aston Martin, Lotus, Jaguar, Noble, TVR, Radical, Arash, Lister
90
+ **British:** McLaren, Bentley, Rolls-Royce, Aston Martin, Lotus, Jaguar, TVR, Radical, Arash
91
91
 
92
92
  **French:** Bugatti, Alpine
93
93
 
94
- **American:** Shelby, Dodge, Chevrolet, Ford, Saleen, Hennessey, SSC, Mosler, Czinger, Glickenhaus
94
+ **American:** Shelby, Dodge, Chevrolet, Ford, Saleen, Hennessey, SSC, Mosler
95
95
 
96
96
  **Swedish:** Koenigsegg, Polestar
97
97
 
98
- **Other:** Rimac (Croatia), Zenvo (Denmark), Spyker (Netherlands), W Motors (UAE), Lykan (UAE), Icona (Italy)
98
+ **Other:** Rimac (Croatia), Zenvo (Denmark), Spyker (Netherlands), W Motors (UAE)
99
99
 
100
100
  ## Legal
101
101
 
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type { ReactCarLogoProps } from "./types";
3
+ export declare const ReactCarLogo: React.FC<ReactCarLogoProps>;
4
+ export default ReactCarLogo;
@@ -1,40 +1 @@
1
- export { Abarth } from "./logos/Abarth";
2
- export { AlfaRomeo } from "./logos/AlfaRomeo";
3
- export { Alpine } from "./logos/Alpine";
4
- export { Arash } from "./logos/Arash";
5
- export { AstonMartin } from "./logos/AstonMartin";
6
- export { Audi } from "./logos/Audi";
7
- export { Bentley } from "./logos/Bentley";
8
- export { BMW } from "./logos/BMW";
9
- export { Brabus } from "./logos/Brabus";
10
- export { Bugatti } from "./logos/Bugatti";
11
- export { Chevrolet } from "./logos/Chevrolet";
12
- export { DeTomaso } from "./logos/DeTomaso";
13
- export { Dodge } from "./logos/Dodge";
14
- export { Ferrari } from "./logos/Ferrari";
15
- export { Ford } from "./logos/Ford";
16
- export { Gumpert } from "./logos/Gumpert";
17
- export { Hennessey } from "./logos/Hennessey";
18
- export { Jaguar } from "./logos/Jaguar";
19
- export { Koenigsegg } from "./logos/Koenigsegg";
20
- export { Lamborghini } from "./logos/Lamborghini";
21
- export { Lotus } from "./logos/Lotus";
22
- export { Maserati } from "./logos/Maserati";
23
- export { Maybach } from "./logos/Maybach";
24
- export { McLaren } from "./logos/McLaren";
25
- export { MercedesAMG } from "./logos/MercedesAMG";
26
- export { Mosler } from "./logos/Mosler";
27
- export { Pagani } from "./logos/Pagani";
28
- export { Pininfarina } from "./logos/Pininfarina";
29
- export { Polestar } from "./logos/Polestar";
30
- export { Porsche } from "./logos/Porsche";
31
- export { Radical } from "./logos/Radical";
32
- export { Rimac } from "./logos/Rimac";
33
- export { RollsRoyce } from "./logos/RollsRoyce";
34
- export { Saleen } from "./logos/Saleen";
35
- export { Shelby } from "./logos/Shelby";
36
- export { Spyker } from "./logos/Spyker";
37
- export { SSC } from "./logos/SSC";
38
- export { TVR } from "./logos/TVR";
39
- export { WMotors } from "./logos/WMotors";
40
- export { Zenvo } from "./logos/Zenvo";
1
+ export { ReactCarLogo, brands } from "./index";
@@ -0,0 +1,2 @@
1
+ import type { CarLogoMeta, BrandName } from "./types";
2
+ export declare const brands: Record<BrandName, CarLogoMeta>;
package/dist/index.d.ts CHANGED
@@ -1,42 +1,4 @@
1
- export { Abarth, meta as AbarthMeta } from "./logos/Abarth";
2
- export { AlfaRomeo, meta as AlfaRomeoMeta } from "./logos/AlfaRomeo";
3
- export { Alpine, meta as AlpineMeta } from "./logos/Alpine";
4
- export { Arash, meta as ArashMeta } from "./logos/Arash";
5
- export { AstonMartin, meta as AstonMartinMeta } from "./logos/AstonMartin";
6
- export { Audi, meta as AudiMeta } from "./logos/Audi";
7
- export { Bentley, meta as BentleyMeta } from "./logos/Bentley";
8
- export { BMW, meta as BMWMeta } from "./logos/BMW";
9
- export { Brabus, meta as BrabusMeta } from "./logos/Brabus";
10
- export { Bugatti, meta as BugattiMeta } from "./logos/Bugatti";
11
- export { Chevrolet, meta as ChevroletMeta } from "./logos/Chevrolet";
12
- export { DeTomaso, meta as DeTomasoMeta } from "./logos/DeTomaso";
13
- export { Dodge, meta as DodgeMeta } from "./logos/Dodge";
14
- export { Ferrari, meta as FerrariMeta } from "./logos/Ferrari";
15
- export { Ford, meta as FordMeta } from "./logos/Ford";
16
- export { Gumpert, meta as GumpertMeta } from "./logos/Gumpert";
17
- export { Hennessey, meta as HennesseyMeta } from "./logos/Hennessey";
18
- export { Jaguar, meta as JaguarMeta } from "./logos/Jaguar";
19
- export { Koenigsegg, meta as KoenigseggMeta } from "./logos/Koenigsegg";
20
- export { Lamborghini, meta as LamborghiniMeta } from "./logos/Lamborghini";
21
- export { Lotus, meta as LotusMeta } from "./logos/Lotus";
22
- export { Maserati, meta as MaseratiMeta } from "./logos/Maserati";
23
- export { Maybach, meta as MaybachMeta } from "./logos/Maybach";
24
- export { McLaren, meta as McLarenMeta } from "./logos/McLaren";
25
- export { MercedesAMG, meta as MercedesAMGMeta } from "./logos/MercedesAMG";
26
- export { Mosler, meta as MoslerMeta } from "./logos/Mosler";
27
- export { Pagani, meta as PaganiMeta } from "./logos/Pagani";
28
- export { Pininfarina, meta as PininfarinaMeta } from "./logos/Pininfarina";
29
- export { Polestar, meta as PolestarMeta } from "./logos/Polestar";
30
- export { Porsche, meta as PorscheMeta } from "./logos/Porsche";
31
- export { Radical, meta as RadicalMeta } from "./logos/Radical";
32
- export { Rimac, meta as RimacMeta } from "./logos/Rimac";
33
- export { RollsRoyce, meta as RollsRoyceMeta } from "./logos/RollsRoyce";
34
- export { Saleen, meta as SaleenMeta } from "./logos/Saleen";
35
- export { Shelby, meta as ShelbyMeta } from "./logos/Shelby";
36
- export { Spyker, meta as SpykerMeta } from "./logos/Spyker";
37
- export { SSC, meta as SSCMeta } from "./logos/SSC";
38
- export { TVR, meta as TVRMeta } from "./logos/TVR";
39
- export { WMotors, meta as WMotorsMeta } from "./logos/WMotors";
40
- export { Zenvo, meta as ZenvoMeta } from "./logos/Zenvo";
41
- export type { CarLogoProps, CarLogoMeta, LogoSize } from "./types";
1
+ export { ReactCarLogo } from "./ReactCarLogo";
2
+ export { brands } from "./brands";
3
+ export type { ReactCarLogoProps, CarLogoMeta, LogoSize, BrandName } from "./types";
42
4
  export { SIZE_MAP, CDN_WIDTH_MAP } from "./types";