💄Add business cards
This commit is contained in:
@@ -6,6 +6,10 @@
|
|||||||
objectVersion = 77;
|
objectVersion = 77;
|
||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
573DAF242CF0CC54006DF58A /* Lottie in Frameworks */ = {isa = PBXBuildFile; productRef = 573DAF232CF0CC54006DF58A /* Lottie */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
57282ACB2CBD2810000C443E /* AlloVoisinsSwiftUI.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AlloVoisinsSwiftUI.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
57282ACB2CBD2810000C443E /* AlloVoisinsSwiftUI.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AlloVoisinsSwiftUI.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
@@ -36,6 +40,7 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
573DAF242CF0CC54006DF58A /* Lottie in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -78,6 +83,7 @@
|
|||||||
);
|
);
|
||||||
name = AlloVoisinsSwiftUI;
|
name = AlloVoisinsSwiftUI;
|
||||||
packageProductDependencies = (
|
packageProductDependencies = (
|
||||||
|
573DAF232CF0CC54006DF58A /* Lottie */,
|
||||||
);
|
);
|
||||||
productName = AlloVoisinsSwiftUI;
|
productName = AlloVoisinsSwiftUI;
|
||||||
productReference = 57282ACB2CBD2810000C443E /* AlloVoisinsSwiftUI.app */;
|
productReference = 57282ACB2CBD2810000C443E /* AlloVoisinsSwiftUI.app */;
|
||||||
@@ -107,6 +113,9 @@
|
|||||||
);
|
);
|
||||||
mainGroup = 57282AC22CBD2810000C443E;
|
mainGroup = 57282AC22CBD2810000C443E;
|
||||||
minimizedProjectReferenceProxies = 1;
|
minimizedProjectReferenceProxies = 1;
|
||||||
|
packageReferences = (
|
||||||
|
573DAF222CF0CC54006DF58A /* XCRemoteSwiftPackageReference "lottie-spm" */,
|
||||||
|
);
|
||||||
preferredProjectObjectVersion = 77;
|
preferredProjectObjectVersion = 77;
|
||||||
productRefGroup = 57282ACC2CBD2810000C443E /* Products */;
|
productRefGroup = 57282ACC2CBD2810000C443E /* Products */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -343,6 +352,25 @@
|
|||||||
defaultConfigurationName = Release;
|
defaultConfigurationName = Release;
|
||||||
};
|
};
|
||||||
/* End XCConfigurationList section */
|
/* End XCConfigurationList section */
|
||||||
|
|
||||||
|
/* Begin XCRemoteSwiftPackageReference section */
|
||||||
|
573DAF222CF0CC54006DF58A /* XCRemoteSwiftPackageReference "lottie-spm" */ = {
|
||||||
|
isa = XCRemoteSwiftPackageReference;
|
||||||
|
repositoryURL = "https://github.com/airbnb/lottie-spm.git";
|
||||||
|
requirement = {
|
||||||
|
kind = upToNextMajorVersion;
|
||||||
|
minimumVersion = 4.5.0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
/* End XCRemoteSwiftPackageReference section */
|
||||||
|
|
||||||
|
/* Begin XCSwiftPackageProductDependency section */
|
||||||
|
573DAF232CF0CC54006DF58A /* Lottie */ = {
|
||||||
|
isa = XCSwiftPackageProductDependency;
|
||||||
|
package = 573DAF222CF0CC54006DF58A /* XCRemoteSwiftPackageReference "lottie-spm" */;
|
||||||
|
productName = Lottie;
|
||||||
|
};
|
||||||
|
/* End XCSwiftPackageProductDependency section */
|
||||||
};
|
};
|
||||||
rootObject = 57282AC32CBD2810000C443E /* Project object */;
|
rootObject = 57282AC32CBD2810000C443E /* Project object */;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"originHash" : "6b3386dc9ff1f3a74f1534de9c41d47137eae0901cfe819ed442f1b241549359",
|
||||||
|
"pins" : [
|
||||||
|
{
|
||||||
|
"identity" : "lottie-spm",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/airbnb/lottie-spm.git",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "b842598f1295f3ffa1475b1580672d1fe5b83580",
|
||||||
|
"version" : "4.5.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version" : 3
|
||||||
|
}
|
||||||
@@ -49,6 +49,7 @@ struct RegulatedProfessionEditProfilModal: View {
|
|||||||
|
|
||||||
VStack {
|
VStack {
|
||||||
SQButton("fermer", color: .sqNeutral(100), textColor: .white) {}
|
SQButton("fermer", color: .sqNeutral(100), textColor: .white) {}
|
||||||
|
.disabled(true)
|
||||||
}
|
}
|
||||||
.padding(.horizontal, 16)
|
.padding(.horizontal, 16)
|
||||||
.padding(.vertical, 24)
|
.padding(.vertical, 24)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
// Created by Victor on 12/06/2024.
|
// Created by Victor on 12/06/2024.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
import Lottie
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct SQButton: View {
|
struct SQButton: View {
|
||||||
@@ -18,6 +19,13 @@ struct SQButton: View {
|
|||||||
@Binding var isLoading: Bool
|
@Binding var isLoading: Bool
|
||||||
let action: () -> Void
|
let action: () -> Void
|
||||||
|
|
||||||
|
private var textWidth: CGFloat {
|
||||||
|
let font = UIFont.systemFont(ofSize: textSize)
|
||||||
|
let attributes = [NSAttributedString.Key.font: font]
|
||||||
|
let size = (title as NSString).size(withAttributes: attributes)
|
||||||
|
return size.width + (icon != nil ? 24 : 0)
|
||||||
|
}
|
||||||
|
|
||||||
init(_ title: String, color: Color = .sqNeutral(10), textColor: Color = .black, textSize: CGFloat = 16, font: SQTextFont = .demiBold, icon: SQIcon? = nil, isFull: Bool = true, isLoading: Binding<Bool> = .constant(false), action: @escaping () -> Void) {
|
init(_ title: String, color: Color = .sqNeutral(10), textColor: Color = .black, textSize: CGFloat = 16, font: SQTextFont = .demiBold, icon: SQIcon? = nil, isFull: Bool = true, isLoading: Binding<Bool> = .constant(false), action: @escaping () -> Void) {
|
||||||
self.title = title
|
self.title = title
|
||||||
self.color = color
|
self.color = color
|
||||||
@@ -34,37 +42,30 @@ struct SQButton: View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
self.action()
|
self.action()
|
||||||
}, label: {
|
}, label: {
|
||||||
if isLoading {
|
HStack {
|
||||||
ProgressView()
|
if isLoading {
|
||||||
.padding(.horizontal, 30)
|
LottieView(animation: .named("av_loader"))
|
||||||
.padding(.vertical, 12)
|
.looping()
|
||||||
.frame(height: 40, alignment: .center)
|
.frame(width: 20)
|
||||||
.background(isFull ? color : .clear)
|
} else {
|
||||||
.cornerRadius(100)
|
if icon != nil {
|
||||||
.overlay(
|
|
||||||
RoundedRectangle(cornerRadius: 100)
|
|
||||||
.inset(by: 0.5)
|
|
||||||
.stroke(color, lineWidth: 1)
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
HStack {
|
|
||||||
if (icon != nil) {
|
|
||||||
icon
|
icon
|
||||||
}
|
}
|
||||||
|
|
||||||
SQText(title, size: textSize, font: font, textColor: textColor)
|
SQText(title, size: textSize, font: font, textColor: textColor)
|
||||||
}
|
}
|
||||||
.padding(.horizontal, 30)
|
|
||||||
.padding(.vertical, 12)
|
|
||||||
.frame(height: 40, alignment: .center)
|
|
||||||
.background(isFull ? color : .clear)
|
|
||||||
.cornerRadius(100)
|
|
||||||
.overlay(
|
|
||||||
RoundedRectangle(cornerRadius: 100)
|
|
||||||
.inset(by: 0.5)
|
|
||||||
.stroke(color, lineWidth: 1)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
.frame(minWidth: textWidth)
|
||||||
|
.padding(.horizontal, 30)
|
||||||
|
.padding(.vertical, 12)
|
||||||
|
.frame(height: 40, alignment: .center)
|
||||||
|
.background(isFull ? color : .clear)
|
||||||
|
.cornerRadius(100)
|
||||||
|
.overlay(
|
||||||
|
RoundedRectangle(cornerRadius: 100)
|
||||||
|
.inset(by: 0.5)
|
||||||
|
.stroke(color.opacity(isFull ? 0 : 1), lineWidth: 1)
|
||||||
|
)
|
||||||
})
|
})
|
||||||
.buttonStyle(PlainButtonStyle())
|
.buttonStyle(PlainButtonStyle())
|
||||||
}
|
}
|
||||||
@@ -93,11 +94,12 @@ enum SQButtonStyle {
|
|||||||
|
|
||||||
#Preview {
|
#Preview {
|
||||||
VStack(spacing: 16) {
|
VStack(spacing: 16) {
|
||||||
|
SQButton("C'est parti !", color: .sqNeutral(100), isFull: false) {}
|
||||||
SQButton("C'est parti !") {}
|
SQButton("C'est parti !") {}
|
||||||
.sqStyle()
|
|
||||||
SQButton("C'est parti !", color: .sqOrange(50), textColor: .white) {}
|
SQButton("C'est parti !", color: .sqOrange(50), textColor: .white) {}
|
||||||
.sqStyle()
|
.disabled(true)
|
||||||
SQButton("Imprimer", color: .sqNeutral(100), textColor: .white, icon: SQIcon(.print, color: .white)) {}
|
SQButton("Imprimer", color: .sqNeutral(100), textColor: .white, icon: SQIcon(.print, color: .white)) {}
|
||||||
.sqStyle()
|
.disabled(true)
|
||||||
|
SQButton("C'est parti !", isLoading: .constant(true)) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,9 @@ struct SQColorPicker: View {
|
|||||||
VStack(alignment: .leading) {
|
VStack(alignment: .leading) {
|
||||||
SQText(title, size: 18, font: .bold)
|
SQText(title, size: 18, font: .bold)
|
||||||
SQText(subtitle ?? "")
|
SQText(subtitle ?? "")
|
||||||
|
.lineLimit(2)
|
||||||
|
.lineSpacing(1)
|
||||||
|
.fixedSize(horizontal: false, vertical: true)
|
||||||
}
|
}
|
||||||
HStack {
|
HStack {
|
||||||
ForEach(colors, id: \.self) { color in
|
ForEach(colors, id: \.self) { color in
|
||||||
@@ -76,7 +79,6 @@ struct SQColorPicker: View {
|
|||||||
|
|
||||||
private func colorDot(_ color: Color) -> some View {
|
private func colorDot(_ color: Color) -> some View {
|
||||||
HStack(alignment: .center, spacing: 8) {}
|
HStack(alignment: .center, spacing: 8) {}
|
||||||
.padding(4)
|
|
||||||
.frame(width: 32, height: 32, alignment: .center)
|
.frame(width: 32, height: 32, alignment: .center)
|
||||||
.background(color)
|
.background(color)
|
||||||
.cornerRadius(32)
|
.cornerRadius(32)
|
||||||
|
|||||||
@@ -7,14 +7,20 @@
|
|||||||
|
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
|
enum SQTextFieldType {
|
||||||
|
case text
|
||||||
|
case phoneNumber
|
||||||
|
}
|
||||||
|
|
||||||
struct SQTextField: View {
|
struct SQTextField: View {
|
||||||
var label: String
|
var label: String
|
||||||
var placeholder: String
|
var placeholder: String
|
||||||
|
var type: SQTextFieldType = .text
|
||||||
var errorText: String
|
var errorText: String
|
||||||
var icon: SQIcon?
|
var icon: SQIcon?
|
||||||
var isDisabled: Bool = false
|
var isDisabled: Bool = false
|
||||||
var isOptional: Bool = false
|
var isOptional: Bool = false
|
||||||
var isInError: Bool = false
|
@Binding var isInError: Bool
|
||||||
var minCharacters: Int?
|
var minCharacters: Int?
|
||||||
var maxCharacters: Int?
|
var maxCharacters: Int?
|
||||||
@Binding var text: String
|
@Binding var text: String
|
||||||
@@ -24,15 +30,16 @@ struct SQTextField: View {
|
|||||||
|
|
||||||
private var accentColor: Color = .sqNeutral(80)
|
private var accentColor: Color = .sqNeutral(80)
|
||||||
|
|
||||||
init(_ label: String, placeholder: String, errorText: String = "", text: Binding<String>, icon: SQIcon? = nil, isDisabled: Bool = false, isOptional: Bool = false, isInError: Bool = false, minCharacters: Int? = nil, maxCharacters: Int? = nil, infoAction: (() -> Void)? = nil, iconAction: (() -> Void)? = nil) {
|
init(_ label: String, placeholder: String, type: SQTextFieldType = .text, errorText: String = "", text: Binding<String>, icon: SQIcon? = nil, isDisabled: Bool = false, isOptional: Bool = false, isInError: Binding<Bool> = .constant(false), minCharacters: Int? = nil, maxCharacters: Int? = nil, infoAction: (() -> Void)? = nil, iconAction: (() -> Void)? = nil) {
|
||||||
self.label = label
|
self.label = label
|
||||||
self.placeholder = placeholder
|
self.placeholder = placeholder
|
||||||
|
self.type = type
|
||||||
self.errorText = errorText
|
self.errorText = errorText
|
||||||
self._text = text
|
self._text = text
|
||||||
self.icon = icon
|
self.icon = icon
|
||||||
self.isDisabled = isDisabled
|
self.isDisabled = isDisabled
|
||||||
self.isOptional = isOptional
|
self.isOptional = isOptional
|
||||||
self.isInError = isInError
|
self._isInError = isInError
|
||||||
self.minCharacters = minCharacters
|
self.minCharacters = minCharacters
|
||||||
self.maxCharacters = maxCharacters
|
self.maxCharacters = maxCharacters
|
||||||
self.infoAction = infoAction
|
self.infoAction = infoAction
|
||||||
@@ -57,17 +64,40 @@ struct SQTextField: View {
|
|||||||
}
|
}
|
||||||
// TextField
|
// TextField
|
||||||
HStack(spacing: 4) {
|
HStack(spacing: 4) {
|
||||||
TextField(placeholder, text: Binding(
|
if type == .phoneNumber {
|
||||||
get: { self.text },
|
TextField(placeholder, text: Binding(
|
||||||
set: { self.text = String($0.prefix(self.maxCharacters ?? Int.max)) }
|
get: { formatPhoneNumber(self.text) },
|
||||||
))
|
set: {
|
||||||
.font(.sq(.medium))
|
let filtered = $0.filter { $0.isNumber }
|
||||||
.tint(accentColor)
|
let truncated = String(filtered.prefix(10))
|
||||||
if let icon = icon {
|
self.text = truncated
|
||||||
Button {
|
self.isInError = !isValidPhoneNumber(truncated)
|
||||||
iconAction?()
|
}
|
||||||
} label: {
|
))
|
||||||
icon
|
.onReceive(self.text.publisher.collect()) {
|
||||||
|
self.text = String($0.prefix(10))
|
||||||
|
}
|
||||||
|
.keyboardType(.numberPad)
|
||||||
|
.font(.sq(.medium))
|
||||||
|
.foregroundStyle(Color.sqNeutral(100))
|
||||||
|
.tint(accentColor)
|
||||||
|
} else {
|
||||||
|
TextField(placeholder, text: Binding(
|
||||||
|
get: { self.text },
|
||||||
|
set: { self.text = String($0.prefix(self.maxCharacters ?? Int.max)) }
|
||||||
|
))
|
||||||
|
.onChange(of: self.text, perform: { _ in
|
||||||
|
self.isInError = false
|
||||||
|
})
|
||||||
|
.font(.sq(.medium))
|
||||||
|
.foregroundStyle(Color.sqNeutral(100))
|
||||||
|
.tint(accentColor)
|
||||||
|
if let icon = icon {
|
||||||
|
Button {
|
||||||
|
iconAction?()
|
||||||
|
} label: {
|
||||||
|
icon
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -77,7 +107,7 @@ struct SQTextField: View {
|
|||||||
.overlay(
|
.overlay(
|
||||||
RoundedRectangle(cornerRadius: 8)
|
RoundedRectangle(cornerRadius: 8)
|
||||||
.inset(by: 0.5)
|
.inset(by: 0.5)
|
||||||
.stroke(isFocused ? accentColor : isDisabled ? Color.sqNeutral(20) : Color.sqNeutral(30), lineWidth: 1)
|
.stroke(isInError ? .sqSemanticRed : isFocused ? accentColor : isDisabled ? Color.sqNeutral(20) : Color.sqNeutral(30), lineWidth: 1)
|
||||||
)
|
)
|
||||||
.focused($isFocused)
|
.focused($isFocused)
|
||||||
.disabled(isDisabled)
|
.disabled(isDisabled)
|
||||||
@@ -106,6 +136,25 @@ struct SQTextField: View {
|
|||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func formatPhoneNumber(_ number: String) -> String {
|
||||||
|
let numbers = number.filter { $0.isNumber }
|
||||||
|
var result = ""
|
||||||
|
|
||||||
|
for (index, char) in numbers.enumerated() {
|
||||||
|
if index > 0 && index % 2 == 0 {
|
||||||
|
result += " "
|
||||||
|
}
|
||||||
|
result += String(char)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
private func isValidPhoneNumber(_ number: String) -> Bool {
|
||||||
|
let numbers = number.filter { $0.isNumber }
|
||||||
|
return numbers.count == 10 && numbers.first == "0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#Preview {
|
#Preview {
|
||||||
@@ -113,6 +162,8 @@ struct SQTextField: View {
|
|||||||
SQTextField("Label name", placeholder: "Placeholder", text: .constant("Bonjour, "), minCharacters: 20)
|
SQTextField("Label name", placeholder: "Placeholder", text: .constant("Bonjour, "), minCharacters: 20)
|
||||||
SQTextField("Label name", placeholder: "Placeholder", text: .constant(""), isOptional: true)
|
SQTextField("Label name", placeholder: "Placeholder", text: .constant(""), isOptional: true)
|
||||||
SQTextField("Label name", placeholder: "Placeholder", text: .constant(""), isDisabled: true)
|
SQTextField("Label name", placeholder: "Placeholder", text: .constant(""), isDisabled: true)
|
||||||
|
SQTextField("Label name", placeholder: "Placeholder", errorText: "Champ invalide", text: .constant(""), isInError: .constant(true))
|
||||||
|
SQTextField("Téléphone", placeholder: "01 23 45 67 89", type: .phoneNumber, text: .constant(""))
|
||||||
}
|
}
|
||||||
.padding()
|
.padding()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,49 +12,66 @@ struct MarketingSupportSelectionView: View {
|
|||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
ScrollView {
|
ScrollView {
|
||||||
Spacer()
|
VStack(spacing: 16) {
|
||||||
.frame(height: 16)
|
Spacer()
|
||||||
// Visit cards
|
.frame(height: 16)
|
||||||
VStack(alignment: .leading, spacing: 0) {
|
// Visit cards
|
||||||
SQImage("visit_card_new", height: 200)
|
VStack(alignment: .leading, spacing: 0) {
|
||||||
.cornerRadius(8, corners: [.topLeft, .topRight])
|
SQImage("visit_card_new", height: 200)
|
||||||
SQText("Mes cartes de visite", size: 18, font: .bold)
|
.cornerRadius(8, corners: [.topLeft, .topRight])
|
||||||
|
HStack {
|
||||||
|
SQText("Mes cartes de visite", size: 18, font: .bold)
|
||||||
|
Spacer()
|
||||||
|
SQImage("for_pro_icon", height: 13)
|
||||||
|
}
|
||||||
.padding(16)
|
.padding(16)
|
||||||
}
|
}
|
||||||
.overlay(
|
.overlay(
|
||||||
RoundedRectangle(cornerRadius: 8)
|
RoundedRectangle(cornerRadius: 8)
|
||||||
.inset(by: 0.5)
|
.inset(by: 0.5)
|
||||||
.stroke(Color.sqNeutral(20), lineWidth: 1)
|
.stroke(Color.sqNeutral(20), lineWidth: 1)
|
||||||
)
|
)
|
||||||
.onTapGesture {
|
.onTapGesture {
|
||||||
self.goToNext.toggle()
|
self.goToNext.toggle()
|
||||||
}
|
}
|
||||||
|
.fixedSize(horizontal: true, vertical: false)
|
||||||
|
|
||||||
// Flyers
|
// Flyers
|
||||||
VStack(alignment: .leading, spacing: 0) {
|
VStack(alignment: .leading, spacing: 0) {
|
||||||
SQImage("flyers", height: 200)
|
SQImage("flyers", height: 200)
|
||||||
.cornerRadius(8, corners: [.topLeft, .topRight])
|
.cornerRadius(8, corners: [.topLeft, .topRight])
|
||||||
SQText("Mes prospetus", size: 18, font: .bold)
|
HStack {
|
||||||
|
SQText("Mes prospetus", size: 18, font: .bold)
|
||||||
|
Spacer()
|
||||||
|
SQImage("for_pro_icon", height: 13)
|
||||||
|
}
|
||||||
.padding(16)
|
.padding(16)
|
||||||
}
|
}
|
||||||
.overlay(
|
.overlay(
|
||||||
RoundedRectangle(cornerRadius: 8)
|
RoundedRectangle(cornerRadius: 8)
|
||||||
.inset(by: 0.5)
|
.inset(by: 0.5)
|
||||||
.stroke(Color.sqNeutral(20), lineWidth: 1)
|
.stroke(Color.sqNeutral(20), lineWidth: 1)
|
||||||
)
|
)
|
||||||
|
.fixedSize(horizontal: true, vertical: false)
|
||||||
|
|
||||||
// Quotes
|
// Quotes
|
||||||
VStack(alignment: .leading, spacing: 0) {
|
VStack(alignment: .center, spacing: 0) {
|
||||||
SQImage("quotes", height: 200)
|
SQImage("quotes", height: 200)
|
||||||
.cornerRadius(8, corners: [.topLeft, .topRight])
|
.cornerRadius(8, corners: [.topLeft, .topRight])
|
||||||
SQText("Mes prospetus", size: 18, font: .bold)
|
HStack {
|
||||||
|
SQText("Mes prospetus", size: 18, font: .bold)
|
||||||
|
Spacer()
|
||||||
|
SQImage("for_pro_icon", height: 13)
|
||||||
|
}
|
||||||
.padding(16)
|
.padding(16)
|
||||||
}
|
}
|
||||||
.overlay(
|
.overlay(
|
||||||
RoundedRectangle(cornerRadius: 8)
|
RoundedRectangle(cornerRadius: 8)
|
||||||
.inset(by: 0.5)
|
.inset(by: 0.5)
|
||||||
.stroke(Color.sqNeutral(20), lineWidth: 1)
|
.stroke(Color.sqNeutral(20), lineWidth: 1)
|
||||||
)
|
)
|
||||||
|
.fixedSize(horizontal: true, vertical: false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.scrollIndicators(.hidden)
|
.scrollIndicators(.hidden)
|
||||||
.sqNavigationBar(title: "Mes supports de communication")
|
.sqNavigationBar(title: "Mes supports de communication")
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"colors" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
|
"filename" : "badge.png",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
BIN
AlloVoisinsSwiftUI/Resources/Assets.xcassets/Images/for_pro_icon.imageset/badge.png
vendored
Normal file
BIN
AlloVoisinsSwiftUI/Resources/Assets.xcassets/Images/for_pro_icon.imageset/badge.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
1
AlloVoisinsSwiftUI/Resources/Lottie/av_loader.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/av_loader.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.1.1","a":"","k":"","d":"","tc":""},"fr":30,"ip":0,"op":61,"w":500,"h":500,"nm":"loading_6","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":60,"s":[360]}],"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[142,142,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[300,300],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.466666668653,0.54509806633,0.639215707779,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[0]},{"t":60,"s":[99]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[1]},{"t":50,"s":[100]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":60,"s":[3]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":30,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[142,142,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[300,300],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.466666668653,0.54509806633,0.639215707779,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":50,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0}],"markers":[]}
|
||||||
1
AlloVoisinsSwiftUI/Resources/Lottie/clap_animation.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/clap_animation.json
Normal file
File diff suppressed because one or more lines are too long
1
AlloVoisinsSwiftUI/Resources/Lottie/hourglass.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/hourglass.json
Normal file
File diff suppressed because one or more lines are too long
1
AlloVoisinsSwiftUI/Resources/Lottie/light_animation.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/light_animation.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
AlloVoisinsSwiftUI/Resources/Lottie/like_reaction.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/like_reaction.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.1.1","a":"","k":"","d":"","tc":""},"fr":29.9700012207031,"ip":0,"op":45.0000018328876,"w":1050,"h":1050,"nm":"heart","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"entier/heart-regular Silhouettes","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[0]},{"t":26.0000010590017,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[525,525,0],"ix":2},"a":{"a":0,"k":[525.5,455.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":17,"s":[70,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":26,"s":[100,100,100]},{"i":{"x":[0.7,0.7,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":29,"s":[85,85,100]},{"t":35.0000014255792,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0.021],[0,0],[0,0],[-93.516,-15.566],[0,-143.35],[0,0],[62.344,-58.037],[0,0],[21.123,0],[15.381,14.355],[0,0],[0,85.107],[0,0],[-141.258,23.543],[-66.855,-66.917]],"o":[[0,0],[0,0],[68.701,-66.958],[141.299,23.543],[0,0],[0,85.107],[0,0],[-15.381,14.355],[-21.123,0],[0,0],[-62.262,-58.037],[0,0],[0,-143.35],[91.67,-15.566],[-1.846,0]],"v":[[-24.609,-357.358],[-1.845,-332.749],[22.764,-357.317],[280.137,-439.184],[525,-150.024],[525,-138.129],[427.383,86.431],[56.807,432.397],[0,454.751],[-56.806,432.397],[-427.403,86.431],[-525,-138.129],[-525,-150.024],[-280.136,-439.184],[-24.609,-357.358]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.235294118524,0.454901963472,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[525.25,455],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Groupe 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"linéaire/heart-regular Silhouettes","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[100]},{"t":26.0000010590017,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[525,525,0],"ix":2},"a":{"a":0,"k":[525.5,455.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[1,1,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":10,"s":[100,100,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":17,"s":[70,70,100]},{"t":26.0000010590017,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[62.139,-10.335],[0,-95.157],[0,0],[-42.307,-39.375],[0,0],[0,0],[0,57.832],[0,0],[93.721,15.648],[44.502,-42.697]],"o":[[0,0],[-44.502,-42.697],[-93.823,15.648],[0,0],[0,57.832],[0,0],[0,0],[42.246,-39.375],[0,0],[0,-95.157],[-62.138,-10.335],[0,0]],"v":[[-1.846,-193.502],[-94.131,-289.479],[-263.936,-342.102],[-426.563,-150.024],[-426.563,-138.13],[-360.241,14.448],[0,350.775],[360.322,14.448],[426.562,-138.13],[426.562,-150.024],[263.935,-342.102],[94.131,-289.479]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0.02],[0,0],[0,0],[-93.515,-15.565],[0,-143.35],[0,0],[62.343,-58.037],[0,0],[21.123,0],[15.381,14.356],[0,0],[0,85.108],[0,0],[-141.258,23.543],[-66.855,-66.917]],"o":[[0,0],[0,0],[68.702,-66.958],[141.299,23.543],[0,0],[0,85.108],[0,0],[-15.381,14.356],[-21.123,0],[0,0],[-62.261,-58.037],[0,0],[0,-143.35],[91.67,-15.565],[-1.845,0]],"v":[[-24.61,-357.359],[-1.846,-332.75],[22.763,-357.318],[280.136,-439.185],[525,-150.024],[525,-138.13],[427.383,86.43],[56.806,432.396],[0,454.75],[-56.807,432.396],[-427.404,86.43],[-525,-138.13],[-525,-150.024],[-280.137,-439.185],[-24.61,-357.359]],"c":true},"ix":2},"nm":"Tracé 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Fusionner les tracés 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.090196080506,0.141176477075,0.20000000298,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[525.25,455.001],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Groupe 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0}],"markers":[]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.1.1","a":"","k":"","d":"","tc":""},"fr":29.9700012207031,"ip":0,"op":45.0000018328876,"w":1050,"h":1050,"nm":"heart white","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"entier/heart-regular Silhouettes","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[0]},{"t":26.0000010590017,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[525,525,0],"ix":2},"a":{"a":0,"k":[525.5,455.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":17,"s":[70,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":26,"s":[100,100,100]},{"i":{"x":[0.7,0.7,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":29,"s":[85,85,100]},{"t":35.0000014255792,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0.021],[0,0],[0,0],[-93.516,-15.566],[0,-143.35],[0,0],[62.344,-58.037],[0,0],[21.123,0],[15.381,14.355],[0,0],[0,85.107],[0,0],[-141.258,23.543],[-66.855,-66.917]],"o":[[0,0],[0,0],[68.701,-66.958],[141.299,23.543],[0,0],[0,85.107],[0,0],[-15.381,14.355],[-21.123,0],[0,0],[-62.262,-58.037],[0,0],[0,-143.35],[91.67,-15.566],[-1.846,0]],"v":[[-24.609,-357.358],[-1.845,-332.749],[22.764,-357.317],[280.137,-439.184],[525,-150.024],[525,-138.129],[427.383,86.431],[56.807,432.397],[0,454.751],[-56.806,432.397],[-427.403,86.431],[-525,-138.129],[-525,-150.024],[-280.136,-439.184],[-24.609,-357.358]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.235294118524,0.454901963472,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[525.25,455],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Groupe 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"linéaire/heart-regular Silhouettes","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[100]},{"t":26.0000010590017,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[525,525,0],"ix":2},"a":{"a":0,"k":[525.5,455.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[1,1,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":10,"s":[100,100,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":17,"s":[70,70,100]},{"t":26.0000010590017,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[62.139,-10.335],[0,-95.157],[0,0],[-42.307,-39.375],[0,0],[0,0],[0,57.832],[0,0],[93.721,15.648],[44.502,-42.697]],"o":[[0,0],[-44.502,-42.697],[-93.823,15.648],[0,0],[0,57.832],[0,0],[0,0],[42.246,-39.375],[0,0],[0,-95.157],[-62.138,-10.335],[0,0]],"v":[[-1.846,-193.502],[-94.131,-289.479],[-263.936,-342.102],[-426.563,-150.024],[-426.563,-138.13],[-360.241,14.448],[0,350.775],[360.322,14.448],[426.562,-138.13],[426.562,-150.024],[263.935,-342.102],[94.131,-289.479]],"c":true},"ix":2},"nm":"Tracé 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0.02],[0,0],[0,0],[-93.515,-15.565],[0,-143.35],[0,0],[62.343,-58.037],[0,0],[21.123,0],[15.381,14.356],[0,0],[0,85.108],[0,0],[-141.258,23.543],[-66.855,-66.917]],"o":[[0,0],[0,0],[68.702,-66.958],[141.299,23.543],[0,0],[0,85.108],[0,0],[-15.381,14.356],[-21.123,0],[0,0],[-62.261,-58.037],[0,0],[0,-143.35],[91.67,-15.565],[-1.845,0]],"v":[[-24.61,-357.359],[-1.846,-332.75],[22.763,-357.318],[280.136,-439.185],[525,-150.024],[525,-138.13],[427.383,86.43],[56.806,432.396],[0,454.75],[-56.807,432.396],[-427.404,86.43],[-525,-138.13],[-525,-150.024],[-280.137,-439.185],[-24.61,-357.359]],"c":true},"ix":2},"nm":"Tracé 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Fusionner les tracés 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fond 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[525.25,455.001],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformer "}],"nm":"Groupe 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":900.000036657751,"st":0,"bm":0}],"markers":[]}
|
||||||
1
AlloVoisinsSwiftUI/Resources/Lottie/location-dot.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/location-dot.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
AlloVoisinsSwiftUI/Resources/Lottie/luck_animation.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/luck_animation.json
Normal file
File diff suppressed because one or more lines are too long
1
AlloVoisinsSwiftUI/Resources/Lottie/no_splash_star.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/no_splash_star.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
AlloVoisinsSwiftUI/Resources/Lottie/pumpkin.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/pumpkin.json
Normal file
File diff suppressed because one or more lines are too long
1
AlloVoisinsSwiftUI/Resources/Lottie/splash_star.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/splash_star.json
Normal file
File diff suppressed because one or more lines are too long
1
AlloVoisinsSwiftUI/Resources/Lottie/start_screen.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/start_screen.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
AlloVoisinsSwiftUI/Resources/Lottie/trash_button.json
Normal file
1
AlloVoisinsSwiftUI/Resources/Lottie/trash_button.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user