react-native-platform-components 0.8.4 → 0.8.6

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.
@@ -62,15 +62,6 @@ public final class PCLiquidGlassView: UIVisualEffectView {
62
62
  didSet { applyColorScheme() }
63
63
  }
64
64
 
65
- /// Shadow radius for glow effect
66
- public var glassShadowRadius: CGFloat = 20 {
67
- didSet { applyShadow() }
68
- }
69
-
70
- /// Manual highlight state control (no-op on iOS 26+, use `interactive` instead)
71
- /// The native UIGlassEffect.isInteractive handles touch-based highlighting automatically
72
- public var isHighlighted: Bool = false
73
-
74
65
  /// Callback for press events with touch coordinates
75
66
  public var onPressCallback: ((CGFloat, CGFloat) -> Void)?
76
67
 
@@ -164,25 +155,11 @@ public final class PCLiquidGlassView: UIVisualEffectView {
164
155
  }
165
156
 
166
157
  applyCornerRadius()
167
- applyShadow()
168
158
  }
169
159
 
170
160
  private func applyCornerRadius() {
171
161
  layer.cornerRadius = glassCornerRadius
172
162
  layer.cornerCurve = .continuous
173
- // Don't clip to bounds - allow shadow to show
174
- }
175
-
176
- private func applyShadow() {
177
- if glassShadowRadius > 0 {
178
- layer.shadowColor = UIColor.white.cgColor
179
- layer.shadowOpacity = 0.2
180
- layer.shadowRadius = glassShadowRadius
181
- layer.shadowOffset = .zero
182
- layer.masksToBounds = false
183
- } else {
184
- layer.shadowOpacity = 0
185
- }
186
163
  }
187
164
 
188
165
  private func applyColorScheme() {
@@ -232,8 +209,6 @@ public final class PCLiquidGlassView: UIVisualEffectView {
232
209
  public var colorScheme: String = "system" {
233
210
  didSet { applyColorScheme() }
234
211
  }
235
- public var glassShadowRadius: CGFloat = 20
236
- public var isHighlighted: Bool = false
237
212
  public var onPressCallback: ((CGFloat, CGFloat) -> Void)?
238
213
 
239
214
  public override init(effect: UIVisualEffect?) {
@@ -304,7 +279,6 @@ public final class PCLiquidGlassView: UIVisualEffectView {
304
279
  private func applyCornerRadius() {
305
280
  layer.cornerRadius = glassCornerRadius
306
281
  layer.cornerCurve = .continuous
307
- clipsToBounds = glassCornerRadius > 0
308
282
  }
309
283
 
310
284
  private func applyColorScheme() {
@@ -322,12 +296,89 @@ public final class PCLiquidGlassView: UIVisualEffectView {
322
296
 
323
297
  #endif
324
298
 
325
- // MARK: - UIColor hex extension
299
+ // MARK: - UIColor parsing extension
326
300
 
327
301
  private extension UIColor {
328
- convenience init?(pcHex: String) {
329
- var hexSanitized = pcHex.trimmingCharacters(in: .whitespacesAndNewlines)
330
- hexSanitized = hexSanitized.replacingOccurrences(of: "#", with: "")
302
+ /// Parses color strings in React Native compatible formats:
303
+ /// - Hex: #RGB, #RRGGBB, #RRGGBBAA
304
+ /// - RGB: rgb(r, g, b) where r, g, b are 0-255
305
+ /// - RGBA: rgba(r, g, b, a) where r, g, b are 0-255 and a is 0-1
306
+ /// - HSL: hsl(h, s%, l%) where h is 0-360, s and l are 0-100
307
+ /// - HSLA: hsla(h, s%, l%, a) where h is 0-360, s and l are 0-100, a is 0-1
308
+ /// - Named colors: red, blue, transparent, etc. (CSS named colors)
309
+ convenience init?(pcColor: String) {
310
+ let trimmed = pcColor.trimmingCharacters(in: .whitespacesAndNewlines).lowercased()
311
+
312
+ // Try named colors first
313
+ if let namedColor = UIColor.namedColors[trimmed] {
314
+ self.init(red: namedColor.r, green: namedColor.g, blue: namedColor.b, alpha: namedColor.a)
315
+ return
316
+ }
317
+
318
+ // Try rgba format: rgba(r, g, b, a)
319
+ if trimmed.hasPrefix("rgba(") && trimmed.hasSuffix(")") {
320
+ let inner = String(trimmed.dropFirst(5).dropLast(1))
321
+ let components = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces) }
322
+ guard components.count == 4,
323
+ let r = Double(components[0]),
324
+ let g = Double(components[1]),
325
+ let b = Double(components[2]),
326
+ let a = Double(components[3]) else { return nil }
327
+ self.init(
328
+ red: CGFloat(r) / 255.0,
329
+ green: CGFloat(g) / 255.0,
330
+ blue: CGFloat(b) / 255.0,
331
+ alpha: CGFloat(a)
332
+ )
333
+ return
334
+ }
335
+
336
+ // Try rgb format: rgb(r, g, b)
337
+ if trimmed.hasPrefix("rgb(") && trimmed.hasSuffix(")") {
338
+ let inner = String(trimmed.dropFirst(4).dropLast(1))
339
+ let components = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces) }
340
+ guard components.count == 3,
341
+ let r = Double(components[0]),
342
+ let g = Double(components[1]),
343
+ let b = Double(components[2]) else { return nil }
344
+ self.init(
345
+ red: CGFloat(r) / 255.0,
346
+ green: CGFloat(g) / 255.0,
347
+ blue: CGFloat(b) / 255.0,
348
+ alpha: 1.0
349
+ )
350
+ return
351
+ }
352
+
353
+ // Try hsla format: hsla(h, s%, l%, a)
354
+ if trimmed.hasPrefix("hsla(") && trimmed.hasSuffix(")") {
355
+ let inner = String(trimmed.dropFirst(5).dropLast(1))
356
+ let components = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces).replacingOccurrences(of: "%", with: "") }
357
+ guard components.count == 4,
358
+ let h = Double(components[0]),
359
+ let s = Double(components[1]),
360
+ let l = Double(components[2]),
361
+ let a = Double(components[3]) else { return nil }
362
+ let rgb = UIColor.hslToRgb(h: h / 360.0, s: s / 100.0, l: l / 100.0)
363
+ self.init(red: rgb.r, green: rgb.g, blue: rgb.b, alpha: CGFloat(a))
364
+ return
365
+ }
366
+
367
+ // Try hsl format: hsl(h, s%, l%)
368
+ if trimmed.hasPrefix("hsl(") && trimmed.hasSuffix(")") {
369
+ let inner = String(trimmed.dropFirst(4).dropLast(1))
370
+ let components = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces).replacingOccurrences(of: "%", with: "") }
371
+ guard components.count == 3,
372
+ let h = Double(components[0]),
373
+ let s = Double(components[1]),
374
+ let l = Double(components[2]) else { return nil }
375
+ let rgb = UIColor.hslToRgb(h: h / 360.0, s: s / 100.0, l: l / 100.0)
376
+ self.init(red: rgb.r, green: rgb.g, blue: rgb.b, alpha: 1.0)
377
+ return
378
+ }
379
+
380
+ // Fall back to hex parsing
381
+ var hexSanitized = trimmed.replacingOccurrences(of: "#", with: "")
331
382
 
332
383
  var rgb: UInt64 = 0
333
384
  guard Scanner(string: hexSanitized).scanHexInt64(&rgb) else { return nil }
@@ -351,4 +402,188 @@ private extension UIColor {
351
402
  return nil
352
403
  }
353
404
  }
405
+
406
+ // Keep old name for backwards compatibility
407
+ convenience init?(pcHex: String) {
408
+ self.init(pcColor: pcHex)
409
+ }
410
+
411
+ // HSL to RGB conversion
412
+ private static func hslToRgb(h: Double, s: Double, l: Double) -> (r: CGFloat, g: CGFloat, b: CGFloat) {
413
+ if s == 0 {
414
+ return (CGFloat(l), CGFloat(l), CGFloat(l))
415
+ }
416
+
417
+ let q = l < 0.5 ? l * (1 + s) : l + s - l * s
418
+ let p = 2 * l - q
419
+
420
+ func hueToRgb(_ p: Double, _ q: Double, _ t: Double) -> Double {
421
+ var t = t
422
+ if t < 0 { t += 1 }
423
+ if t > 1 { t -= 1 }
424
+ if t < 1/6 { return p + (q - p) * 6 * t }
425
+ if t < 1/2 { return q }
426
+ if t < 2/3 { return p + (q - p) * (2/3 - t) * 6 }
427
+ return p
428
+ }
429
+
430
+ return (
431
+ CGFloat(hueToRgb(p, q, h + 1/3)),
432
+ CGFloat(hueToRgb(p, q, h)),
433
+ CGFloat(hueToRgb(p, q, h - 1/3))
434
+ )
435
+ }
436
+
437
+ // CSS named colors (React Native compatible)
438
+ private static let namedColors: [String: (r: CGFloat, g: CGFloat, b: CGFloat, a: CGFloat)] = [
439
+ "transparent": (0, 0, 0, 0),
440
+ "aliceblue": (240/255, 248/255, 255/255, 1),
441
+ "antiquewhite": (250/255, 235/255, 215/255, 1),
442
+ "aqua": (0, 255/255, 255/255, 1),
443
+ "aquamarine": (127/255, 255/255, 212/255, 1),
444
+ "azure": (240/255, 255/255, 255/255, 1),
445
+ "beige": (245/255, 245/255, 220/255, 1),
446
+ "bisque": (255/255, 228/255, 196/255, 1),
447
+ "black": (0, 0, 0, 1),
448
+ "blanchedalmond": (255/255, 235/255, 205/255, 1),
449
+ "blue": (0, 0, 255/255, 1),
450
+ "blueviolet": (138/255, 43/255, 226/255, 1),
451
+ "brown": (165/255, 42/255, 42/255, 1),
452
+ "burlywood": (222/255, 184/255, 135/255, 1),
453
+ "cadetblue": (95/255, 158/255, 160/255, 1),
454
+ "chartreuse": (127/255, 255/255, 0, 1),
455
+ "chocolate": (210/255, 105/255, 30/255, 1),
456
+ "coral": (255/255, 127/255, 80/255, 1),
457
+ "cornflowerblue": (100/255, 149/255, 237/255, 1),
458
+ "cornsilk": (255/255, 248/255, 220/255, 1),
459
+ "crimson": (220/255, 20/255, 60/255, 1),
460
+ "cyan": (0, 255/255, 255/255, 1),
461
+ "darkblue": (0, 0, 139/255, 1),
462
+ "darkcyan": (0, 139/255, 139/255, 1),
463
+ "darkgoldenrod": (184/255, 134/255, 11/255, 1),
464
+ "darkgray": (169/255, 169/255, 169/255, 1),
465
+ "darkgreen": (0, 100/255, 0, 1),
466
+ "darkgrey": (169/255, 169/255, 169/255, 1),
467
+ "darkkhaki": (189/255, 183/255, 107/255, 1),
468
+ "darkmagenta": (139/255, 0, 139/255, 1),
469
+ "darkolivegreen": (85/255, 107/255, 47/255, 1),
470
+ "darkorange": (255/255, 140/255, 0, 1),
471
+ "darkorchid": (153/255, 50/255, 204/255, 1),
472
+ "darkred": (139/255, 0, 0, 1),
473
+ "darksalmon": (233/255, 150/255, 122/255, 1),
474
+ "darkseagreen": (143/255, 188/255, 143/255, 1),
475
+ "darkslateblue": (72/255, 61/255, 139/255, 1),
476
+ "darkslategray": (47/255, 79/255, 79/255, 1),
477
+ "darkslategrey": (47/255, 79/255, 79/255, 1),
478
+ "darkturquoise": (0, 206/255, 209/255, 1),
479
+ "darkviolet": (148/255, 0, 211/255, 1),
480
+ "deeppink": (255/255, 20/255, 147/255, 1),
481
+ "deepskyblue": (0, 191/255, 255/255, 1),
482
+ "dimgray": (105/255, 105/255, 105/255, 1),
483
+ "dimgrey": (105/255, 105/255, 105/255, 1),
484
+ "dodgerblue": (30/255, 144/255, 255/255, 1),
485
+ "firebrick": (178/255, 34/255, 34/255, 1),
486
+ "floralwhite": (255/255, 250/255, 240/255, 1),
487
+ "forestgreen": (34/255, 139/255, 34/255, 1),
488
+ "fuchsia": (255/255, 0, 255/255, 1),
489
+ "gainsboro": (220/255, 220/255, 220/255, 1),
490
+ "ghostwhite": (248/255, 248/255, 255/255, 1),
491
+ "gold": (255/255, 215/255, 0, 1),
492
+ "goldenrod": (218/255, 165/255, 32/255, 1),
493
+ "gray": (128/255, 128/255, 128/255, 1),
494
+ "green": (0, 128/255, 0, 1),
495
+ "greenyellow": (173/255, 255/255, 47/255, 1),
496
+ "grey": (128/255, 128/255, 128/255, 1),
497
+ "honeydew": (240/255, 255/255, 240/255, 1),
498
+ "hotpink": (255/255, 105/255, 180/255, 1),
499
+ "indianred": (205/255, 92/255, 92/255, 1),
500
+ "indigo": (75/255, 0, 130/255, 1),
501
+ "ivory": (255/255, 255/255, 240/255, 1),
502
+ "khaki": (240/255, 230/255, 140/255, 1),
503
+ "lavender": (230/255, 230/255, 250/255, 1),
504
+ "lavenderblush": (255/255, 240/255, 245/255, 1),
505
+ "lawngreen": (124/255, 252/255, 0, 1),
506
+ "lemonchiffon": (255/255, 250/255, 205/255, 1),
507
+ "lightblue": (173/255, 216/255, 230/255, 1),
508
+ "lightcoral": (240/255, 128/255, 128/255, 1),
509
+ "lightcyan": (224/255, 255/255, 255/255, 1),
510
+ "lightgoldenrodyellow": (250/255, 250/255, 210/255, 1),
511
+ "lightgray": (211/255, 211/255, 211/255, 1),
512
+ "lightgreen": (144/255, 238/255, 144/255, 1),
513
+ "lightgrey": (211/255, 211/255, 211/255, 1),
514
+ "lightpink": (255/255, 182/255, 193/255, 1),
515
+ "lightsalmon": (255/255, 160/255, 122/255, 1),
516
+ "lightseagreen": (32/255, 178/255, 170/255, 1),
517
+ "lightskyblue": (135/255, 206/255, 250/255, 1),
518
+ "lightslategray": (119/255, 136/255, 153/255, 1),
519
+ "lightslategrey": (119/255, 136/255, 153/255, 1),
520
+ "lightsteelblue": (176/255, 196/255, 222/255, 1),
521
+ "lightyellow": (255/255, 255/255, 224/255, 1),
522
+ "lime": (0, 255/255, 0, 1),
523
+ "limegreen": (50/255, 205/255, 50/255, 1),
524
+ "linen": (250/255, 240/255, 230/255, 1),
525
+ "magenta": (255/255, 0, 255/255, 1),
526
+ "maroon": (128/255, 0, 0, 1),
527
+ "mediumaquamarine": (102/255, 205/255, 170/255, 1),
528
+ "mediumblue": (0, 0, 205/255, 1),
529
+ "mediumorchid": (186/255, 85/255, 211/255, 1),
530
+ "mediumpurple": (147/255, 112/255, 219/255, 1),
531
+ "mediumseagreen": (60/255, 179/255, 113/255, 1),
532
+ "mediumslateblue": (123/255, 104/255, 238/255, 1),
533
+ "mediumspringgreen": (0, 250/255, 154/255, 1),
534
+ "mediumturquoise": (72/255, 209/255, 204/255, 1),
535
+ "mediumvioletred": (199/255, 21/255, 133/255, 1),
536
+ "midnightblue": (25/255, 25/255, 112/255, 1),
537
+ "mintcream": (245/255, 255/255, 250/255, 1),
538
+ "mistyrose": (255/255, 228/255, 225/255, 1),
539
+ "moccasin": (255/255, 228/255, 181/255, 1),
540
+ "navajowhite": (255/255, 222/255, 173/255, 1),
541
+ "navy": (0, 0, 128/255, 1),
542
+ "oldlace": (253/255, 245/255, 230/255, 1),
543
+ "olive": (128/255, 128/255, 0, 1),
544
+ "olivedrab": (107/255, 142/255, 35/255, 1),
545
+ "orange": (255/255, 165/255, 0, 1),
546
+ "orangered": (255/255, 69/255, 0, 1),
547
+ "orchid": (218/255, 112/255, 214/255, 1),
548
+ "palegoldenrod": (238/255, 232/255, 170/255, 1),
549
+ "palegreen": (152/255, 251/255, 152/255, 1),
550
+ "paleturquoise": (175/255, 238/255, 238/255, 1),
551
+ "palevioletred": (219/255, 112/255, 147/255, 1),
552
+ "papayawhip": (255/255, 239/255, 213/255, 1),
553
+ "peachpuff": (255/255, 218/255, 185/255, 1),
554
+ "peru": (205/255, 133/255, 63/255, 1),
555
+ "pink": (255/255, 192/255, 203/255, 1),
556
+ "plum": (221/255, 160/255, 221/255, 1),
557
+ "powderblue": (176/255, 224/255, 230/255, 1),
558
+ "purple": (128/255, 0, 128/255, 1),
559
+ "rebeccapurple": (102/255, 51/255, 153/255, 1),
560
+ "red": (255/255, 0, 0, 1),
561
+ "rosybrown": (188/255, 143/255, 143/255, 1),
562
+ "royalblue": (65/255, 105/255, 225/255, 1),
563
+ "saddlebrown": (139/255, 69/255, 19/255, 1),
564
+ "salmon": (250/255, 128/255, 114/255, 1),
565
+ "sandybrown": (244/255, 164/255, 96/255, 1),
566
+ "seagreen": (46/255, 139/255, 87/255, 1),
567
+ "seashell": (255/255, 245/255, 238/255, 1),
568
+ "sienna": (160/255, 82/255, 45/255, 1),
569
+ "silver": (192/255, 192/255, 192/255, 1),
570
+ "skyblue": (135/255, 206/255, 235/255, 1),
571
+ "slateblue": (106/255, 90/255, 205/255, 1),
572
+ "slategray": (112/255, 128/255, 144/255, 1),
573
+ "slategrey": (112/255, 128/255, 144/255, 1),
574
+ "snow": (255/255, 250/255, 250/255, 1),
575
+ "springgreen": (0, 255/255, 127/255, 1),
576
+ "steelblue": (70/255, 130/255, 180/255, 1),
577
+ "tan": (210/255, 180/255, 140/255, 1),
578
+ "teal": (0, 128/255, 128/255, 1),
579
+ "thistle": (216/255, 191/255, 216/255, 1),
580
+ "tomato": (255/255, 99/255, 71/255, 1),
581
+ "turquoise": (64/255, 224/255, 208/255, 1),
582
+ "violet": (238/255, 130/255, 238/255, 1),
583
+ "wheat": (245/255, 222/255, 179/255, 1),
584
+ "white": (255/255, 255/255, 255/255, 1),
585
+ "whitesmoke": (245/255, 245/255, 245/255, 1),
586
+ "yellow": (255/255, 255/255, 0, 1),
587
+ "yellowgreen": (154/255, 205/255, 50/255, 1)
588
+ ]
354
589
  }
@@ -168,12 +168,89 @@ public final class PCSegmentedControlView: UIControl {
168
168
  }
169
169
  }
170
170
 
171
- // MARK: - UIColor hex extension
171
+ // MARK: - UIColor parsing extension
172
172
 
173
173
  private extension UIColor {
174
+ /// Parses color strings in React Native compatible formats:
175
+ /// - Hex: #RGB, #RRGGBB, #RRGGBBAA
176
+ /// - RGB: rgb(r, g, b) where r, g, b are 0-255
177
+ /// - RGBA: rgba(r, g, b, a) where r, g, b are 0-255 and a is 0-1
178
+ /// - HSL: hsl(h, s%, l%) where h is 0-360, s and l are 0-100
179
+ /// - HSLA: hsla(h, s%, l%, a) where h is 0-360, s and l are 0-100, a is 0-1
180
+ /// - Named colors: red, blue, transparent, etc. (CSS named colors)
174
181
  convenience init?(hex: String) {
175
- var hexSanitized = hex.trimmingCharacters(in: .whitespacesAndNewlines)
176
- hexSanitized = hexSanitized.replacingOccurrences(of: "#", with: "")
182
+ let trimmed = hex.trimmingCharacters(in: .whitespacesAndNewlines).lowercased()
183
+
184
+ // Try named colors first
185
+ if let namedColor = UIColor.namedColors[trimmed] {
186
+ self.init(red: namedColor.r, green: namedColor.g, blue: namedColor.b, alpha: namedColor.a)
187
+ return
188
+ }
189
+
190
+ // Try rgba format: rgba(r, g, b, a)
191
+ if trimmed.hasPrefix("rgba(") && trimmed.hasSuffix(")") {
192
+ let inner = String(trimmed.dropFirst(5).dropLast(1))
193
+ let components = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces) }
194
+ guard components.count == 4,
195
+ let r = Double(components[0]),
196
+ let g = Double(components[1]),
197
+ let b = Double(components[2]),
198
+ let a = Double(components[3]) else { return nil }
199
+ self.init(
200
+ red: CGFloat(r) / 255.0,
201
+ green: CGFloat(g) / 255.0,
202
+ blue: CGFloat(b) / 255.0,
203
+ alpha: CGFloat(a)
204
+ )
205
+ return
206
+ }
207
+
208
+ // Try rgb format: rgb(r, g, b)
209
+ if trimmed.hasPrefix("rgb(") && trimmed.hasSuffix(")") {
210
+ let inner = String(trimmed.dropFirst(4).dropLast(1))
211
+ let components = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces) }
212
+ guard components.count == 3,
213
+ let r = Double(components[0]),
214
+ let g = Double(components[1]),
215
+ let b = Double(components[2]) else { return nil }
216
+ self.init(
217
+ red: CGFloat(r) / 255.0,
218
+ green: CGFloat(g) / 255.0,
219
+ blue: CGFloat(b) / 255.0,
220
+ alpha: 1.0
221
+ )
222
+ return
223
+ }
224
+
225
+ // Try hsla format: hsla(h, s%, l%, a)
226
+ if trimmed.hasPrefix("hsla(") && trimmed.hasSuffix(")") {
227
+ let inner = String(trimmed.dropFirst(5).dropLast(1))
228
+ let components = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces).replacingOccurrences(of: "%", with: "") }
229
+ guard components.count == 4,
230
+ let h = Double(components[0]),
231
+ let s = Double(components[1]),
232
+ let l = Double(components[2]),
233
+ let a = Double(components[3]) else { return nil }
234
+ let rgb = UIColor.hslToRgb(h: h / 360.0, s: s / 100.0, l: l / 100.0)
235
+ self.init(red: rgb.r, green: rgb.g, blue: rgb.b, alpha: CGFloat(a))
236
+ return
237
+ }
238
+
239
+ // Try hsl format: hsl(h, s%, l%)
240
+ if trimmed.hasPrefix("hsl(") && trimmed.hasSuffix(")") {
241
+ let inner = String(trimmed.dropFirst(4).dropLast(1))
242
+ let components = inner.split(separator: ",").map { $0.trimmingCharacters(in: .whitespaces).replacingOccurrences(of: "%", with: "") }
243
+ guard components.count == 3,
244
+ let h = Double(components[0]),
245
+ let s = Double(components[1]),
246
+ let l = Double(components[2]) else { return nil }
247
+ let rgb = UIColor.hslToRgb(h: h / 360.0, s: s / 100.0, l: l / 100.0)
248
+ self.init(red: rgb.r, green: rgb.g, blue: rgb.b, alpha: 1.0)
249
+ return
250
+ }
251
+
252
+ // Fall back to hex parsing
253
+ var hexSanitized = trimmed.replacingOccurrences(of: "#", with: "")
177
254
 
178
255
  var rgb: UInt64 = 0
179
256
  guard Scanner(string: hexSanitized).scanHexInt64(&rgb) else { return nil }
@@ -197,4 +274,183 @@ private extension UIColor {
197
274
  return nil
198
275
  }
199
276
  }
277
+
278
+ // HSL to RGB conversion
279
+ private static func hslToRgb(h: Double, s: Double, l: Double) -> (r: CGFloat, g: CGFloat, b: CGFloat) {
280
+ if s == 0 {
281
+ return (CGFloat(l), CGFloat(l), CGFloat(l))
282
+ }
283
+
284
+ let q = l < 0.5 ? l * (1 + s) : l + s - l * s
285
+ let p = 2 * l - q
286
+
287
+ func hueToRgb(_ p: Double, _ q: Double, _ t: Double) -> Double {
288
+ var t = t
289
+ if t < 0 { t += 1 }
290
+ if t > 1 { t -= 1 }
291
+ if t < 1/6 { return p + (q - p) * 6 * t }
292
+ if t < 1/2 { return q }
293
+ if t < 2/3 { return p + (q - p) * (2/3 - t) * 6 }
294
+ return p
295
+ }
296
+
297
+ return (
298
+ CGFloat(hueToRgb(p, q, h + 1/3)),
299
+ CGFloat(hueToRgb(p, q, h)),
300
+ CGFloat(hueToRgb(p, q, h - 1/3))
301
+ )
302
+ }
303
+
304
+ // CSS named colors (React Native compatible)
305
+ private static let namedColors: [String: (r: CGFloat, g: CGFloat, b: CGFloat, a: CGFloat)] = [
306
+ "transparent": (0, 0, 0, 0),
307
+ "aliceblue": (240/255, 248/255, 255/255, 1),
308
+ "antiquewhite": (250/255, 235/255, 215/255, 1),
309
+ "aqua": (0, 255/255, 255/255, 1),
310
+ "aquamarine": (127/255, 255/255, 212/255, 1),
311
+ "azure": (240/255, 255/255, 255/255, 1),
312
+ "beige": (245/255, 245/255, 220/255, 1),
313
+ "bisque": (255/255, 228/255, 196/255, 1),
314
+ "black": (0, 0, 0, 1),
315
+ "blanchedalmond": (255/255, 235/255, 205/255, 1),
316
+ "blue": (0, 0, 255/255, 1),
317
+ "blueviolet": (138/255, 43/255, 226/255, 1),
318
+ "brown": (165/255, 42/255, 42/255, 1),
319
+ "burlywood": (222/255, 184/255, 135/255, 1),
320
+ "cadetblue": (95/255, 158/255, 160/255, 1),
321
+ "chartreuse": (127/255, 255/255, 0, 1),
322
+ "chocolate": (210/255, 105/255, 30/255, 1),
323
+ "coral": (255/255, 127/255, 80/255, 1),
324
+ "cornflowerblue": (100/255, 149/255, 237/255, 1),
325
+ "cornsilk": (255/255, 248/255, 220/255, 1),
326
+ "crimson": (220/255, 20/255, 60/255, 1),
327
+ "cyan": (0, 255/255, 255/255, 1),
328
+ "darkblue": (0, 0, 139/255, 1),
329
+ "darkcyan": (0, 139/255, 139/255, 1),
330
+ "darkgoldenrod": (184/255, 134/255, 11/255, 1),
331
+ "darkgray": (169/255, 169/255, 169/255, 1),
332
+ "darkgreen": (0, 100/255, 0, 1),
333
+ "darkgrey": (169/255, 169/255, 169/255, 1),
334
+ "darkkhaki": (189/255, 183/255, 107/255, 1),
335
+ "darkmagenta": (139/255, 0, 139/255, 1),
336
+ "darkolivegreen": (85/255, 107/255, 47/255, 1),
337
+ "darkorange": (255/255, 140/255, 0, 1),
338
+ "darkorchid": (153/255, 50/255, 204/255, 1),
339
+ "darkred": (139/255, 0, 0, 1),
340
+ "darksalmon": (233/255, 150/255, 122/255, 1),
341
+ "darkseagreen": (143/255, 188/255, 143/255, 1),
342
+ "darkslateblue": (72/255, 61/255, 139/255, 1),
343
+ "darkslategray": (47/255, 79/255, 79/255, 1),
344
+ "darkslategrey": (47/255, 79/255, 79/255, 1),
345
+ "darkturquoise": (0, 206/255, 209/255, 1),
346
+ "darkviolet": (148/255, 0, 211/255, 1),
347
+ "deeppink": (255/255, 20/255, 147/255, 1),
348
+ "deepskyblue": (0, 191/255, 255/255, 1),
349
+ "dimgray": (105/255, 105/255, 105/255, 1),
350
+ "dimgrey": (105/255, 105/255, 105/255, 1),
351
+ "dodgerblue": (30/255, 144/255, 255/255, 1),
352
+ "firebrick": (178/255, 34/255, 34/255, 1),
353
+ "floralwhite": (255/255, 250/255, 240/255, 1),
354
+ "forestgreen": (34/255, 139/255, 34/255, 1),
355
+ "fuchsia": (255/255, 0, 255/255, 1),
356
+ "gainsboro": (220/255, 220/255, 220/255, 1),
357
+ "ghostwhite": (248/255, 248/255, 255/255, 1),
358
+ "gold": (255/255, 215/255, 0, 1),
359
+ "goldenrod": (218/255, 165/255, 32/255, 1),
360
+ "gray": (128/255, 128/255, 128/255, 1),
361
+ "green": (0, 128/255, 0, 1),
362
+ "greenyellow": (173/255, 255/255, 47/255, 1),
363
+ "grey": (128/255, 128/255, 128/255, 1),
364
+ "honeydew": (240/255, 255/255, 240/255, 1),
365
+ "hotpink": (255/255, 105/255, 180/255, 1),
366
+ "indianred": (205/255, 92/255, 92/255, 1),
367
+ "indigo": (75/255, 0, 130/255, 1),
368
+ "ivory": (255/255, 255/255, 240/255, 1),
369
+ "khaki": (240/255, 230/255, 140/255, 1),
370
+ "lavender": (230/255, 230/255, 250/255, 1),
371
+ "lavenderblush": (255/255, 240/255, 245/255, 1),
372
+ "lawngreen": (124/255, 252/255, 0, 1),
373
+ "lemonchiffon": (255/255, 250/255, 205/255, 1),
374
+ "lightblue": (173/255, 216/255, 230/255, 1),
375
+ "lightcoral": (240/255, 128/255, 128/255, 1),
376
+ "lightcyan": (224/255, 255/255, 255/255, 1),
377
+ "lightgoldenrodyellow": (250/255, 250/255, 210/255, 1),
378
+ "lightgray": (211/255, 211/255, 211/255, 1),
379
+ "lightgreen": (144/255, 238/255, 144/255, 1),
380
+ "lightgrey": (211/255, 211/255, 211/255, 1),
381
+ "lightpink": (255/255, 182/255, 193/255, 1),
382
+ "lightsalmon": (255/255, 160/255, 122/255, 1),
383
+ "lightseagreen": (32/255, 178/255, 170/255, 1),
384
+ "lightskyblue": (135/255, 206/255, 250/255, 1),
385
+ "lightslategray": (119/255, 136/255, 153/255, 1),
386
+ "lightslategrey": (119/255, 136/255, 153/255, 1),
387
+ "lightsteelblue": (176/255, 196/255, 222/255, 1),
388
+ "lightyellow": (255/255, 255/255, 224/255, 1),
389
+ "lime": (0, 255/255, 0, 1),
390
+ "limegreen": (50/255, 205/255, 50/255, 1),
391
+ "linen": (250/255, 240/255, 230/255, 1),
392
+ "magenta": (255/255, 0, 255/255, 1),
393
+ "maroon": (128/255, 0, 0, 1),
394
+ "mediumaquamarine": (102/255, 205/255, 170/255, 1),
395
+ "mediumblue": (0, 0, 205/255, 1),
396
+ "mediumorchid": (186/255, 85/255, 211/255, 1),
397
+ "mediumpurple": (147/255, 112/255, 219/255, 1),
398
+ "mediumseagreen": (60/255, 179/255, 113/255, 1),
399
+ "mediumslateblue": (123/255, 104/255, 238/255, 1),
400
+ "mediumspringgreen": (0, 250/255, 154/255, 1),
401
+ "mediumturquoise": (72/255, 209/255, 204/255, 1),
402
+ "mediumvioletred": (199/255, 21/255, 133/255, 1),
403
+ "midnightblue": (25/255, 25/255, 112/255, 1),
404
+ "mintcream": (245/255, 255/255, 250/255, 1),
405
+ "mistyrose": (255/255, 228/255, 225/255, 1),
406
+ "moccasin": (255/255, 228/255, 181/255, 1),
407
+ "navajowhite": (255/255, 222/255, 173/255, 1),
408
+ "navy": (0, 0, 128/255, 1),
409
+ "oldlace": (253/255, 245/255, 230/255, 1),
410
+ "olive": (128/255, 128/255, 0, 1),
411
+ "olivedrab": (107/255, 142/255, 35/255, 1),
412
+ "orange": (255/255, 165/255, 0, 1),
413
+ "orangered": (255/255, 69/255, 0, 1),
414
+ "orchid": (218/255, 112/255, 214/255, 1),
415
+ "palegoldenrod": (238/255, 232/255, 170/255, 1),
416
+ "palegreen": (152/255, 251/255, 152/255, 1),
417
+ "paleturquoise": (175/255, 238/255, 238/255, 1),
418
+ "palevioletred": (219/255, 112/255, 147/255, 1),
419
+ "papayawhip": (255/255, 239/255, 213/255, 1),
420
+ "peachpuff": (255/255, 218/255, 185/255, 1),
421
+ "peru": (205/255, 133/255, 63/255, 1),
422
+ "pink": (255/255, 192/255, 203/255, 1),
423
+ "plum": (221/255, 160/255, 221/255, 1),
424
+ "powderblue": (176/255, 224/255, 230/255, 1),
425
+ "purple": (128/255, 0, 128/255, 1),
426
+ "rebeccapurple": (102/255, 51/255, 153/255, 1),
427
+ "red": (255/255, 0, 0, 1),
428
+ "rosybrown": (188/255, 143/255, 143/255, 1),
429
+ "royalblue": (65/255, 105/255, 225/255, 1),
430
+ "saddlebrown": (139/255, 69/255, 19/255, 1),
431
+ "salmon": (250/255, 128/255, 114/255, 1),
432
+ "sandybrown": (244/255, 164/255, 96/255, 1),
433
+ "seagreen": (46/255, 139/255, 87/255, 1),
434
+ "seashell": (255/255, 245/255, 238/255, 1),
435
+ "sienna": (160/255, 82/255, 45/255, 1),
436
+ "silver": (192/255, 192/255, 192/255, 1),
437
+ "skyblue": (135/255, 206/255, 235/255, 1),
438
+ "slateblue": (106/255, 90/255, 205/255, 1),
439
+ "slategray": (112/255, 128/255, 144/255, 1),
440
+ "slategrey": (112/255, 128/255, 144/255, 1),
441
+ "snow": (255/255, 250/255, 250/255, 1),
442
+ "springgreen": (0, 255/255, 127/255, 1),
443
+ "steelblue": (70/255, 130/255, 180/255, 1),
444
+ "tan": (210/255, 180/255, 140/255, 1),
445
+ "teal": (0, 128/255, 128/255, 1),
446
+ "thistle": (216/255, 191/255, 216/255, 1),
447
+ "tomato": (255/255, 99/255, 71/255, 1),
448
+ "turquoise": (64/255, 224/255, 208/255, 1),
449
+ "violet": (238/255, 130/255, 238/255, 1),
450
+ "wheat": (245/255, 222/255, 179/255, 1),
451
+ "white": (255/255, 255/255, 255/255, 1),
452
+ "whitesmoke": (245/255, 245/255, 245/255, 1),
453
+ "yellow": (255/255, 255/255, 0, 1),
454
+ "yellowgreen": (154/255, 205/255, 50/255, 1)
455
+ ]
200
456
  }
@@ -38,9 +38,7 @@ function LiquidGlass(props) {
38
38
  effect: ios.effect,
39
39
  interactive: ios.interactive ? 'true' : 'false',
40
40
  tintColor: ios.tintColor,
41
- colorScheme: ios.colorScheme,
42
- shadowRadius: ios.shadowRadius,
43
- isHighlighted: ios.isHighlighted ? 'true' : 'false'
41
+ colorScheme: ios.colorScheme
44
42
  };
45
43
  }, [ios]);
46
44
 
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_LiquidGlassNativeComponent","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isLiquidGlassSupported","exports","Platform","OS","parseInt","String","Version","LiquidGlass","props","style","cornerRadius","ios","android","children","onPress","viewProps","nativeIos","useMemo","undefined","effect","interactive","tintColor","colorScheme","shadowRadius","isHighlighted","nativeAndroid","fallbackBackgroundColor","handlePress","useCallback","event","x","nativeEvent","y","jsx","onGlassPress"],"sourceRoot":"../../src","sources":["LiquidGlass.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_LiquidGlassNativeComponent","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isLiquidGlassSupported","exports","Platform","OS","parseInt","String","Version","LiquidGlass","props","style","cornerRadius","ios","android","children","onPress","viewProps","nativeIos","useMemo","undefined","effect","interactive","tintColor","colorScheme","nativeAndroid","fallbackBackgroundColor","handlePress","useCallback","event","x","nativeEvent","y","jsx","onGlassPress"],"sourceRoot":"../../src","sources":["LiquidGlass.tsx"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,2BAAA,GAAAC,sBAAA,CAAAH,OAAA;AAIsC,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAM,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AARtC;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMgB,sBAA+B,GAAAC,OAAA,CAAAD,sBAAA,GAC1CE,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAIC,QAAQ,CAACC,MAAM,CAACH,qBAAQ,CAACI,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;AA+EhE,SAASC,WAAWA,CAACC,KAAuB,EAAsB;EACvE,MAAM;IACJC,KAAK;IACLC,YAAY,GAAG,CAAC;IAChBC,GAAG;IACHC,OAAO;IACPC,QAAQ;IACRC,OAAO;IACP,GAAGC;EACL,CAAC,GAAGP,KAAK;;EAET;EACA,MAAMQ,SAAS,GAAG,IAAAC,cAAO,EAAC,MAAM;IAC9B,IAAIf,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,CAACQ,GAAG,EAAE,OAAOO,SAAS;IACnD,OAAO;MACLC,MAAM,EAAER,GAAG,CAACQ,MAAM;MAClBC,WAAW,EAAET,GAAG,CAACS,WAAW,GAAG,MAAM,GAAG,OAAO;MAC/CC,SAAS,EAAEV,GAAG,CAACU,SAAS;MACxBC,WAAW,EAAEX,GAAG,CAACW;IACnB,CAAC;EACH,CAAC,EAAE,CAACX,GAAG,CAAC,CAAC;;EAET;EACA,MAAMY,aAAa,GAAG,IAAAN,cAAO,EAAC,MAAM;IAClC,IAAIf,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI,CAACS,OAAO,EAAE,OAAOM,SAAS;IAC3D,OAAO;MACLM,uBAAuB,EAAEZ,OAAO,CAACY;IACnC,CAAC;EACH,CAAC,EAAE,CAACZ,OAAO,CAAC,CAAC;;EAEb;EACA,MAAMa,WAAW,GAAG,IAAAC,kBAAW,EAC5BC,KAAgD,IAAK;IACpDb,OAAO,GAAG;MAAEc,CAAC,EAAED,KAAK,CAACE,WAAW,CAACD,CAAC;MAAEE,CAAC,EAAEH,KAAK,CAACE,WAAW,CAACC;IAAE,CAAC,CAAC;EAC/D,CAAC,EACD,CAAChB,OAAO,CACV,CAAC;EAED,oBACE,IAAAlC,WAAA,CAAAmD,GAAA,EAACrD,2BAAA,CAAAK,OAAiB;IAChB0B,KAAK,EAAEA,KAAM;IACbC,YAAY,EAAEA,YAAa;IAC3BC,GAAG,EAAEK,SAAU;IACfJ,OAAO,EAAEW,aAAc;IACvBS,YAAY,EAAElB,OAAO,GAAGW,WAAW,GAAGP,SAAU;IAAA,GAC5CH,SAAS;IAAAF,QAAA,EAEZA;EAAQ,CACQ,CAAC;AAExB","ignoreList":[]}