forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
1import {type StyleProp, type TextStyle, type ViewStyle} from 'react-native'
2import Svg, {Ellipse, Line, Path, Rect} from 'react-native-svg'
3
4// Copyright (c) 2020 Refactoring UI Inc.
5// https://github.com/tailwindlabs/heroicons/blob/master/LICENSE
6export function MagnifyingGlassIcon({
7 style,
8 size,
9 strokeWidth = 2,
10 color = 'currentColor',
11}: {
12 style?: StyleProp<ViewStyle>
13 size?: string | number
14 strokeWidth?: number
15 color?: string
16}) {
17 return (
18 <Svg
19 fill="none"
20 viewBox="0 0 24 24"
21 strokeWidth={strokeWidth}
22 stroke={color}
23 width={size || 24}
24 height={size || 24}
25 style={style}>
26 <Path
27 strokeLinecap="round"
28 strokeLinejoin="round"
29 d="M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z"
30 />
31 </Svg>
32 )
33}
34
35export function MagnifyingGlassIcon2({
36 style,
37 size,
38 strokeWidth = 2,
39}: {
40 style?: StyleProp<ViewStyle>
41 size?: string | number
42 strokeWidth?: number
43}) {
44 return (
45 <Svg
46 fill="none"
47 viewBox="0 0 24 24"
48 strokeWidth={strokeWidth}
49 stroke="currentColor"
50 width={size || 24}
51 height={size || 24}
52 style={style}>
53 <Ellipse cx="12" cy="10.5" rx="9" ry="9" />
54 <Line x1="18.5" y1="17" x2="22" y2="20.5" strokeLinecap="round" />
55 </Svg>
56 )
57}
58
59export function CogIcon({
60 style,
61 size,
62 strokeWidth = 1.5,
63}: {
64 style?: StyleProp<ViewStyle>
65 size?: string | number
66 strokeWidth: number
67}) {
68 return (
69 <Svg
70 fill="none"
71 viewBox="0 0 24 24"
72 width={size || 32}
73 height={size || 32}
74 strokeWidth={strokeWidth}
75 stroke="currentColor"
76 style={style}>
77 <Path
78 strokeLinecap="round"
79 strokeLinejoin="round"
80 d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.324.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 011.37.49l1.296 2.247a1.125 1.125 0 01-.26 1.431l-1.003.827c-.293.24-.438.613-.431.992a6.759 6.759 0 010 .255c-.007.378.138.75.43.99l1.005.828c.424.35.534.954.26 1.43l-1.298 2.247a1.125 1.125 0 01-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.57 6.57 0 01-.22.128c-.331.183-.581.495-.644.869l-.213 1.28c-.09.543-.56.941-1.11.941h-2.594c-.55 0-1.02-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 01-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 01-1.369-.49l-1.297-2.247a1.125 1.125 0 01.26-1.431l1.004-.827c.292-.24.437-.613.43-.992a6.932 6.932 0 010-.255c.007-.378-.138-.75-.43-.99l-1.004-.828a1.125 1.125 0 01-.26-1.43l1.297-2.247a1.125 1.125 0 011.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.087.22-.128.332-.183.582-.495.644-.869l.214-1.281z"
81 />
82 <Path
83 strokeLinecap="round"
84 strokeLinejoin="round"
85 d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
86 />
87 </Svg>
88 )
89}
90
91// Copyright (c) 2020 Refactoring UI Inc.
92// https://github.com/tailwindlabs/heroicons/blob/master/LICENSE
93export function UserGroupIcon({
94 style,
95 size,
96}: {
97 style?: StyleProp<ViewStyle>
98 size?: string | number
99}) {
100 return (
101 <Svg
102 fill="none"
103 viewBox="0 0 24 24"
104 width={size || 32}
105 height={size || 32}
106 strokeWidth={2}
107 stroke="currentColor"
108 style={style}>
109 <Path
110 strokeLinecap="round"
111 strokeLinejoin="round"
112 d="M18 18.72a9.094 9.094 0 003.741-.479 3 3 0 00-4.682-2.72m.94 3.198l.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0112 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 016 18.719m12 0a5.971 5.971 0 00-.941-3.197m0 0A5.995 5.995 0 0012 12.75a5.995 5.995 0 00-5.058 2.772m0 0a3 3 0 00-4.681 2.72 8.986 8.986 0 003.74.477m.94-3.197a5.971 5.971 0 00-.94 3.197M15 6.75a3 3 0 11-6 0 3 3 0 016 0zm6 3a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0zm-13.5 0a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0z"
113 />
114 </Svg>
115 )
116}
117
118export function SquareIcon({
119 style,
120 size,
121 strokeWidth = 1.3,
122}: {
123 style?: StyleProp<TextStyle>
124 size?: string | number
125 strokeWidth?: number
126}) {
127 return (
128 <Svg
129 fill="none"
130 viewBox="0 0 24 24"
131 strokeWidth={strokeWidth || 1}
132 stroke="currentColor"
133 width={size || 24}
134 height={size || 24}
135 style={style}>
136 <Rect x="6" y="6" width="12" height="12" strokeLinejoin="round" />
137 </Svg>
138 )
139}
140
141export function RectWideIcon({
142 style,
143 size,
144 strokeWidth = 1.3,
145}: {
146 style?: StyleProp<TextStyle>
147 size?: string | number
148 strokeWidth?: number
149}) {
150 return (
151 <Svg
152 fill="none"
153 viewBox="0 0 24 24"
154 strokeWidth={strokeWidth || 1}
155 stroke="currentColor"
156 width={size || 24}
157 height={size || 24}
158 style={style}>
159 <Rect x="4" y="6" width="16" height="12" strokeLinejoin="round" />
160 </Svg>
161 )
162}
163
164export function RectTallIcon({
165 style,
166 size,
167 strokeWidth = 1.3,
168}: {
169 style?: StyleProp<TextStyle>
170 size?: string | number
171 strokeWidth?: number
172}) {
173 return (
174 <Svg
175 fill="none"
176 viewBox="0 0 24 24"
177 strokeWidth={strokeWidth || 1}
178 stroke="currentColor"
179 width={size || 24}
180 height={size || 24}
181 style={style}>
182 <Rect x="6" y="4" width="12" height="16" strokeLinejoin="round" />
183 </Svg>
184 )
185}
186
187export function ComposeIcon2({
188 style,
189 size,
190 strokeWidth = 1.5,
191}: {
192 style?: StyleProp<TextStyle>
193 size?: string | number
194 strokeWidth?: number
195}) {
196 return (
197 <Svg
198 viewBox="0 0 24 24"
199 stroke="currentColor"
200 fill="none"
201 width={size || 24}
202 height={size || 24}
203 style={style}>
204 <Path
205 d="M 20 9 L 20 16 C 20 18.209 18.209 20 16 20 L 8 20 C 5.791 20 4 18.209 4 16 L 4 8 C 4 5.791 5.791 4 8 4 L 15 4"
206 strokeWidth={strokeWidth}
207 />
208 <Line
209 strokeLinecap="round"
210 x1="10"
211 y1="14"
212 x2="18.5"
213 y2="5.5"
214 strokeWidth={strokeWidth * 1.5}
215 />
216 <Line
217 strokeLinecap="round"
218 x1="20.5"
219 y1="3.5"
220 x2="21"
221 y2="3"
222 strokeWidth={strokeWidth * 1.5}
223 />
224 </Svg>
225 )
226}
227
228export function InfoCircleIcon({
229 style,
230 size,
231 strokeWidth = 1.5,
232}: {
233 style?: StyleProp<TextStyle>
234 size?: string | number
235 strokeWidth?: number
236}) {
237 return (
238 <Svg
239 fill="none"
240 viewBox="0 0 24 24"
241 strokeWidth={strokeWidth}
242 stroke="currentColor"
243 width={size}
244 height={size}
245 style={style}>
246 <Path
247 strokeLinecap="round"
248 strokeLinejoin="round"
249 d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"
250 />
251 </Svg>
252 )
253}
254
255export function HandIcon({
256 style,
257 size,
258 strokeWidth = 1.5,
259}: {
260 style?: StyleProp<TextStyle>
261 size?: string | number
262 strokeWidth?: number
263}) {
264 return (
265 <Svg
266 width={size}
267 height={size}
268 viewBox="0 0 76 76"
269 stroke="currentColor"
270 strokeWidth={strokeWidth}
271 strokeLinecap="round"
272 fill="none"
273 style={style}>
274 <Path d="M33.5 37V11.5C33.5 8.46243 31.0376 6 28 6V6C24.9624 6 22.5 8.46243 22.5 11.5V48V48C22.5 48.5802 21.8139 48.8874 21.3811 48.501L13.2252 41.2189C10.72 38.9821 6.81945 39.4562 4.92296 42.228L4.77978 42.4372C3.17708 44.7796 3.50863 47.9385 5.56275 49.897L16.0965 59.9409C20.9825 64.5996 26.7533 68.231 33.0675 70.6201V70.6201C38.8234 72.798 45.1766 72.798 50.9325 70.6201L51.9256 70.2444C57.4044 68.1713 61.8038 63.9579 64.1113 58.5735V58.5735C65.6874 54.8962 66.5 50.937 66.5 46.9362V22.5C66.5 19.4624 64.0376 17 61 17V17C57.9624 17 55.5 19.4624 55.5 22.5V36.5" />
275 <Path d="M55.5 37V11.5C55.5 8.46243 53.0376 6 50 6V6C46.9624 6 44.5 8.46243 44.5 11.5V37" />
276 <Path d="M44.5 37V8.5C44.5 5.46243 42.0376 3 39 3V3C35.9624 3 33.5 5.46243 33.5 8.5V37" />
277 </Svg>
278 )
279}
280
281export function HashtagIcon({
282 style,
283 size,
284 strokeWidth = 1.5,
285}: {
286 style?: StyleProp<TextStyle>
287 size?: string | number
288 strokeWidth?: number
289}) {
290 return (
291 <Svg
292 fill="none"
293 stroke="currentColor"
294 viewBox="0 0 30 30"
295 strokeWidth={strokeWidth}
296 width={size}
297 height={size}
298 style={style}>
299 <Path d="M2 10H28" strokeLinecap="round" />
300 <Path d="M2 20H28" strokeLinecap="round" />
301 <Path d="M11 3L9 27" strokeLinecap="round" />
302 <Path d="M21 3L19 27" strokeLinecap="round" />
303 </Svg>
304 )
305}
306
307// Copyright (c) 2020 Refactoring UI Inc.
308// https://github.com/tailwindlabs/heroicons/blob/master/LICENSE
309export function ShieldExclamation({
310 style,
311 size,
312 strokeWidth = 1.5,
313}: {
314 style?: StyleProp<TextStyle>
315 size?: string | number
316 strokeWidth?: number
317}) {
318 let color = 'currentColor'
319 if (
320 style &&
321 typeof style === 'object' &&
322 'color' in style &&
323 typeof style.color === 'string'
324 ) {
325 color = style.color
326 }
327 return (
328 <Svg
329 width={size}
330 height={size}
331 fill="none"
332 viewBox="0 0 24 24"
333 strokeWidth={strokeWidth || 1.5}
334 stroke={color}
335 style={style}>
336 <Path
337 strokeLinecap="round"
338 strokeLinejoin="round"
339 d="M12 9v3.75m0-10.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.249-8.25-3.286zm0 13.036h.008v.008H12v-.008z"
340 />
341 </Svg>
342 )
343}