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.
- package/README.md +29 -2
- package/android/src/main/java/com/platformcomponents/ColorParser.kt +275 -0
- package/android/src/main/java/com/platformcomponents/PCContextMenuView.kt +1 -12
- package/android/src/main/java/com/platformcomponents/PCLiquidGlassView.kt +1 -22
- package/ios/PCDatePickerView.swift +1 -1
- package/ios/PCLiquidGlass.mm +3 -11
- package/ios/PCLiquidGlass.swift +265 -30
- package/ios/PCSegmentedControl.swift +259 -3
- package/lib/commonjs/LiquidGlass.js +1 -3
- package/lib/commonjs/LiquidGlass.js.map +1 -1
- package/lib/commonjs/LiquidGlassNativeComponent.ts +0 -11
- package/lib/module/LiquidGlass.js +1 -3
- package/lib/module/LiquidGlass.js.map +1 -1
- package/lib/module/LiquidGlassNativeComponent.ts +0 -11
- package/lib/typescript/commonjs/src/LiquidGlass.d.ts +0 -12
- package/lib/typescript/commonjs/src/LiquidGlass.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts +0 -9
- package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/LiquidGlass.d.ts +0 -12
- package/lib/typescript/module/src/LiquidGlass.d.ts.map +1 -1
- package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts +0 -9
- package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/LiquidGlass.tsx +0 -16
- package/src/LiquidGlassNativeComponent.ts +0 -11
package/ios/PCLiquidGlass.swift
CHANGED
|
@@ -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
|
|
299
|
+
// MARK: - UIColor parsing extension
|
|
326
300
|
|
|
327
301
|
private extension UIColor {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
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
|
|
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
|
-
|
|
176
|
-
|
|
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","
|
|
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":"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","ignoreList":[]}
|