Move Compound Inspector into the project.
This commit is contained in:
23
compound-ios/.gitignore
vendored
Normal file
23
compound-ios/.gitignore
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
.DS_Store
|
||||||
|
/.build
|
||||||
|
/Packages
|
||||||
|
/*.xcodeproj
|
||||||
|
xcuserdata/
|
||||||
|
DerivedData/
|
||||||
|
.swiftpm/config/registries.json
|
||||||
|
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
|
||||||
|
.netrc
|
||||||
|
.nova
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# Cocoapods in Inspector app
|
||||||
|
Inspector/Pods
|
||||||
|
|
||||||
|
# Ridiculous workaround to unignore the Package.resolved file to keep Xcode Cloud happy.
|
||||||
|
# https://stackoverflow.com/a/16318111/730924
|
||||||
|
Inspector/Inspector.xcworkspace/*
|
||||||
|
!Inspector/Inspector.xcworkspace/xcshareddata
|
||||||
|
Inspector/Inspector.xcworkspace/xcshareddata/*
|
||||||
|
!Inspector/Inspector.xcworkspace/xcshareddata/swiftpm
|
||||||
|
Inspector/Inspector.xcworkspace/xcshareddata/swiftpm/*
|
||||||
|
!Inspector/Inspector.xcworkspace/xcshareddata/swiftpm/Package.resolved
|
||||||
534
compound-ios/Inspector/Inspector.xcodeproj/project.pbxproj
Normal file
534
compound-ios/Inspector/Inspector.xcodeproj/project.pbxproj
Normal file
@@ -0,0 +1,534 @@
|
|||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 55;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
70AC7B23011C802F750E470E /* Pods_Compound_Inspector.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2E28F45EEA9A8DE6AFB10E9 /* Pods_Compound_Inspector.framework */; };
|
||||||
|
912974102A864F5E004BEA88 /* ListScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9129740F2A864F5E004BEA88 /* ListScreen.swift */; };
|
||||||
|
9132C62D2A72708400EAEF3D /* ActionSheetScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9132C62C2A72708400EAEF3D /* ActionSheetScreen.swift */; };
|
||||||
|
9132C62F2A72785500EAEF3D /* AlertScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9132C62E2A72785400EAEF3D /* AlertScreen.swift */; };
|
||||||
|
9132C6312A7280A500EAEF3D /* ContextMenuScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9132C6302A7280A500EAEF3D /* ContextMenuScreen.swift */; };
|
||||||
|
9132C6332A72850200EAEF3D /* ShareSheetScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9132C6322A72850200EAEF3D /* ShareSheetScreen.swift */; };
|
||||||
|
9132C6352A72868B00EAEF3D /* NavigationBarScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9132C6342A72868B00EAEF3D /* NavigationBarScreen.swift */; };
|
||||||
|
917C22F629C37A9D00B35660 /* AllCases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917C22F529C37A9D00B35660 /* AllCases.swift */; };
|
||||||
|
917C22F829C380A200B35660 /* FontsScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917C22F729C380A200B35660 /* FontsScreen.swift */; };
|
||||||
|
917F561C28256DB800D19543 /* CompoundInspectorApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917F561B28256DB800D19543 /* CompoundInspectorApp.swift */; };
|
||||||
|
917F562028256DB900D19543 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 917F561F28256DB900D19543 /* Assets.xcassets */; };
|
||||||
|
917F562F28256DD800D19543 /* SidebarList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917F562E28256DD800D19543 /* SidebarList.swift */; };
|
||||||
|
9184AC022825741600227C3A /* ScreenContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9184AC012825741600227C3A /* ScreenContent.swift */; };
|
||||||
|
9188246A2A2DE882001606AE /* Screen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 918824692A2DE882001606AE /* Screen.swift */; };
|
||||||
|
91B2EA9928CA05B900A90A83 /* Compound in Frameworks */ = {isa = PBXBuildFile; productRef = 91B2EA9828CA05B900A90A83 /* Compound */; };
|
||||||
|
91B2EA9C28CA064800A90A83 /* ColorsScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91B2EA9B28CA064800A90A83 /* ColorsScreen.swift */; };
|
||||||
|
91B946812A29062300F187EF /* IconsScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91B946802A29062300F187EF /* IconsScreen.swift */; };
|
||||||
|
91CA00362AD7D83200121E0F /* ButtonsScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917F562A28256DCD00D19543 /* ButtonsScreen.swift */; };
|
||||||
|
91DE5A702E1801970000C59A /* GradientsScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91DE5A6F2E1801970000C59A /* GradientsScreen.swift */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
|
918854B628258CE100DC2377 /* Embed Frameworks */ = {
|
||||||
|
isa = PBXCopyFilesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
dstPath = "";
|
||||||
|
dstSubfolderSpec = 10;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
name = "Embed Frameworks";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
9129740F2A864F5E004BEA88 /* ListScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListScreen.swift; sourceTree = "<group>"; };
|
||||||
|
9132C62C2A72708400EAEF3D /* ActionSheetScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionSheetScreen.swift; sourceTree = "<group>"; };
|
||||||
|
9132C62E2A72785400EAEF3D /* AlertScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertScreen.swift; sourceTree = "<group>"; };
|
||||||
|
9132C6302A7280A500EAEF3D /* ContextMenuScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextMenuScreen.swift; sourceTree = "<group>"; };
|
||||||
|
9132C6322A72850200EAEF3D /* ShareSheetScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareSheetScreen.swift; sourceTree = "<group>"; };
|
||||||
|
9132C6342A72868B00EAEF3D /* NavigationBarScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationBarScreen.swift; sourceTree = "<group>"; };
|
||||||
|
9139E78228257ECF00091740 /* Entitlements.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Entitlements.entitlements; sourceTree = "<group>"; };
|
||||||
|
917C22F529C37A9D00B35660 /* AllCases.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllCases.swift; sourceTree = "<group>"; };
|
||||||
|
917C22F729C380A200B35660 /* FontsScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontsScreen.swift; sourceTree = "<group>"; };
|
||||||
|
917F561828256DB800D19543 /* Compound Inspector.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Compound Inspector.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
917F561B28256DB800D19543 /* CompoundInspectorApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundInspectorApp.swift; sourceTree = "<group>"; };
|
||||||
|
917F561F28256DB900D19543 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
|
917F562A28256DCD00D19543 /* ButtonsScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonsScreen.swift; sourceTree = "<group>"; };
|
||||||
|
917F562E28256DD800D19543 /* SidebarList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SidebarList.swift; sourceTree = "<group>"; };
|
||||||
|
917F563028256DDC00D19543 /* TextFieldsScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldsScreen.swift; sourceTree = "<group>"; };
|
||||||
|
9184AC012825741600227C3A /* ScreenContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenContent.swift; sourceTree = "<group>"; };
|
||||||
|
918824692A2DE882001606AE /* Screen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Screen.swift; sourceTree = "<group>"; };
|
||||||
|
91AB476A2A0E774E00D961AE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
91B2EA9728CA048200A90A83 /* compound-ios */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "compound-ios"; path = ..; sourceTree = "<group>"; };
|
||||||
|
91B2EA9B28CA064800A90A83 /* ColorsScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorsScreen.swift; sourceTree = "<group>"; };
|
||||||
|
91B946802A29062300F187EF /* IconsScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconsScreen.swift; sourceTree = "<group>"; };
|
||||||
|
91DE5A6F2E1801970000C59A /* GradientsScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GradientsScreen.swift; sourceTree = "<group>"; };
|
||||||
|
9F9AF07976782861ECA2764C /* Pods-Compound Inspector.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compound Inspector.release.xcconfig"; path = "Target Support Files/Pods-Compound Inspector/Pods-Compound Inspector.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
B62609A3377EA1D9C59FCD20 /* Pods-Compound Inspector.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Compound Inspector.debug.xcconfig"; path = "Target Support Files/Pods-Compound Inspector/Pods-Compound Inspector.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
D2E28F45EEA9A8DE6AFB10E9 /* Pods_Compound_Inspector.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Compound_Inspector.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
917F561528256DB800D19543 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
91B2EA9928CA05B900A90A83 /* Compound in Frameworks */,
|
||||||
|
70AC7B23011C802F750E470E /* Pods_Compound_Inspector.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
479BE2D4B06E029EC43A69EA /* Pods */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
B62609A3377EA1D9C59FCD20 /* Pods-Compound Inspector.debug.xcconfig */,
|
||||||
|
9F9AF07976782861ECA2764C /* Pods-Compound Inspector.release.xcconfig */,
|
||||||
|
);
|
||||||
|
path = Pods;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
9132C62B2A72707500EAEF3D /* System Components */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
9132C62C2A72708400EAEF3D /* ActionSheetScreen.swift */,
|
||||||
|
9132C62E2A72785400EAEF3D /* AlertScreen.swift */,
|
||||||
|
9132C6302A7280A500EAEF3D /* ContextMenuScreen.swift */,
|
||||||
|
9132C6342A72868B00EAEF3D /* NavigationBarScreen.swift */,
|
||||||
|
9132C6322A72850200EAEF3D /* ShareSheetScreen.swift */,
|
||||||
|
);
|
||||||
|
path = "System Components";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
9145A25028CCACF7001B3451 /* Resources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
91AB476A2A0E774E00D961AE /* Info.plist */,
|
||||||
|
917F561F28256DB900D19543 /* Assets.xcassets */,
|
||||||
|
9139E78228257ECF00091740 /* Entitlements.entitlements */,
|
||||||
|
);
|
||||||
|
path = Resources;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
9145A25128CCAD08001B3451 /* Tokens */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
917C22F529C37A9D00B35660 /* AllCases.swift */,
|
||||||
|
91B2EA9B28CA064800A90A83 /* ColorsScreen.swift */,
|
||||||
|
917C22F729C380A200B35660 /* FontsScreen.swift */,
|
||||||
|
91B946802A29062300F187EF /* IconsScreen.swift */,
|
||||||
|
91DE5A6F2E1801970000C59A /* GradientsScreen.swift */,
|
||||||
|
);
|
||||||
|
path = Tokens;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
917F560F28256DB800D19543 = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
917F561A28256DB800D19543 /* Sources */,
|
||||||
|
9145A25028CCACF7001B3451 /* Resources */,
|
||||||
|
91B2EA9728CA048200A90A83 /* compound-ios */,
|
||||||
|
918854C42825941400DC2377 /* Frameworks */,
|
||||||
|
917F561928256DB800D19543 /* Products */,
|
||||||
|
479BE2D4B06E029EC43A69EA /* Pods */,
|
||||||
|
);
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
917F561928256DB800D19543 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
917F561828256DB800D19543 /* Compound Inspector.app */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
917F561A28256DB800D19543 /* Sources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
917F561B28256DB800D19543 /* CompoundInspectorApp.swift */,
|
||||||
|
917F562E28256DD800D19543 /* SidebarList.swift */,
|
||||||
|
918824692A2DE882001606AE /* Screen.swift */,
|
||||||
|
9184AC012825741600227C3A /* ScreenContent.swift */,
|
||||||
|
9145A25128CCAD08001B3451 /* Tokens */,
|
||||||
|
91B2EA9A28CA05F300A90A83 /* Components */,
|
||||||
|
9132C62B2A72707500EAEF3D /* System Components */,
|
||||||
|
);
|
||||||
|
path = Sources;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
918854C42825941400DC2377 /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
D2E28F45EEA9A8DE6AFB10E9 /* Pods_Compound_Inspector.framework */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
91B2EA9A28CA05F300A90A83 /* Components */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
917F562A28256DCD00D19543 /* ButtonsScreen.swift */,
|
||||||
|
9129740F2A864F5E004BEA88 /* ListScreen.swift */,
|
||||||
|
917F563028256DDC00D19543 /* TextFieldsScreen.swift */,
|
||||||
|
);
|
||||||
|
path = Components;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
917F561728256DB800D19543 /* Compound Inspector */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 917F562628256DB900D19543 /* Build configuration list for PBXNativeTarget "Compound Inspector" */;
|
||||||
|
buildPhases = (
|
||||||
|
D4FE755DC8D0EE69F5B625AE /* [CP] Check Pods Manifest.lock */,
|
||||||
|
917F561428256DB800D19543 /* Sources */,
|
||||||
|
917F561528256DB800D19543 /* Frameworks */,
|
||||||
|
917F561628256DB800D19543 /* Resources */,
|
||||||
|
918854B628258CE100DC2377 /* Embed Frameworks */,
|
||||||
|
C53AB9B0B1E0708816C8E056 /* [CP] Embed Pods Frameworks */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = "Compound Inspector";
|
||||||
|
packageProductDependencies = (
|
||||||
|
91B2EA9828CA05B900A90A83 /* Compound */,
|
||||||
|
);
|
||||||
|
productName = "Component Library";
|
||||||
|
productReference = 917F561828256DB800D19543 /* Compound Inspector.app */;
|
||||||
|
productType = "com.apple.product-type.application";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
917F561028256DB800D19543 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
BuildIndependentTargetsInParallel = 1;
|
||||||
|
LastSwiftUpdateCheck = 1330;
|
||||||
|
LastUpgradeCheck = 1330;
|
||||||
|
TargetAttributes = {
|
||||||
|
917F561728256DB800D19543 = {
|
||||||
|
CreatedOnToolsVersion = 13.3;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
buildConfigurationList = 917F561328256DB800D19543 /* Build configuration list for PBXProject "Inspector" */;
|
||||||
|
compatibilityVersion = "Xcode 13.0";
|
||||||
|
developmentRegion = en;
|
||||||
|
hasScannedForEncodings = 0;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
Base,
|
||||||
|
);
|
||||||
|
mainGroup = 917F560F28256DB800D19543;
|
||||||
|
productRefGroup = 917F561928256DB800D19543 /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
917F561728256DB800D19543 /* Compound Inspector */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXResourcesBuildPhase section */
|
||||||
|
917F561628256DB800D19543 /* Resources */ = {
|
||||||
|
isa = PBXResourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
917F562028256DB900D19543 /* Assets.xcassets in Resources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
|
C53AB9B0B1E0708816C8E056 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Compound Inspector/Pods-Compound Inspector-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Compound Inspector/Pods-Compound Inspector-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Compound Inspector/Pods-Compound Inspector-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
D4FE755DC8D0EE69F5B625AE /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-Compound Inspector-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
917F561428256DB800D19543 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
91B946812A29062300F187EF /* IconsScreen.swift in Sources */,
|
||||||
|
9132C6352A72868B00EAEF3D /* NavigationBarScreen.swift in Sources */,
|
||||||
|
917F562F28256DD800D19543 /* SidebarList.swift in Sources */,
|
||||||
|
91DE5A702E1801970000C59A /* GradientsScreen.swift in Sources */,
|
||||||
|
917C22F629C37A9D00B35660 /* AllCases.swift in Sources */,
|
||||||
|
9132C62D2A72708400EAEF3D /* ActionSheetScreen.swift in Sources */,
|
||||||
|
917F561C28256DB800D19543 /* CompoundInspectorApp.swift in Sources */,
|
||||||
|
9132C6332A72850200EAEF3D /* ShareSheetScreen.swift in Sources */,
|
||||||
|
917C22F829C380A200B35660 /* FontsScreen.swift in Sources */,
|
||||||
|
9188246A2A2DE882001606AE /* Screen.swift in Sources */,
|
||||||
|
9184AC022825741600227C3A /* ScreenContent.swift in Sources */,
|
||||||
|
912974102A864F5E004BEA88 /* ListScreen.swift in Sources */,
|
||||||
|
9132C6312A7280A500EAEF3D /* ContextMenuScreen.swift in Sources */,
|
||||||
|
9132C62F2A72785500EAEF3D /* AlertScreen.swift in Sources */,
|
||||||
|
91CA00362AD7D83200121E0F /* ButtonsScreen.swift in Sources */,
|
||||||
|
91B2EA9C28CA064800A90A83 /* ColorsScreen.swift in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
917F562428256DB900D19543 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||||
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_COMMA = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||||
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||||
|
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
ENABLE_TESTABILITY = YES;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
|
MTL_FAST_MATH = YES;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
917F562528256DB900D19543 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||||
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_COMMA = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||||
|
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||||
|
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||||
|
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||||
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
|
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
|
GCC_NO_COMMON_BLOCKS = YES;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
|
||||||
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
MTL_FAST_MATH = YES;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
SWIFT_COMPILATION_MODE = wholemodule;
|
||||||
|
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||||
|
VALIDATE_PRODUCT = YES;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
917F562728256DB900D19543 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = B62609A3377EA1D9C59FCD20 /* Pods-Compound Inspector.debug.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = "accent-color";
|
||||||
|
CODE_SIGN_ENTITLEMENTS = Resources/Entitlements.entitlements;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
CURRENT_PROJECT_VERSION = 2;
|
||||||
|
DEVELOPMENT_TEAM = 7J4U792NQT;
|
||||||
|
ENABLE_PREVIEWS = YES;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
INFOPLIST_FILE = Resources/Info.plist;
|
||||||
|
INFOPLIST_KEY_CFBundleDisplayName = Compound;
|
||||||
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.graphics-design";
|
||||||
|
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||||
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||||
|
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||||
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = io.element.compound.inspector;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SUPPORTS_MACCATALYST = YES;
|
||||||
|
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||||
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
917F562828256DB900D19543 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 9F9AF07976782861ECA2764C /* Pods-Compound Inspector.release.xcconfig */;
|
||||||
|
buildSettings = {
|
||||||
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = "accent-color";
|
||||||
|
CODE_SIGN_ENTITLEMENTS = Resources/Entitlements.entitlements;
|
||||||
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
CURRENT_PROJECT_VERSION = 2;
|
||||||
|
DEVELOPMENT_TEAM = 7J4U792NQT;
|
||||||
|
ENABLE_PREVIEWS = YES;
|
||||||
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
|
INFOPLIST_FILE = Resources/Info.plist;
|
||||||
|
INFOPLIST_KEY_CFBundleDisplayName = Compound;
|
||||||
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.graphics-design";
|
||||||
|
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
||||||
|
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
||||||
|
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
||||||
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
|
MARKETING_VERSION = 1.0;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = io.element.compound.inspector;
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SUPPORTS_MACCATALYST = YES;
|
||||||
|
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||||
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
SWIFT_VERSION = 5.0;
|
||||||
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
917F561328256DB800D19543 /* Build configuration list for PBXProject "Inspector" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
917F562428256DB900D19543 /* Debug */,
|
||||||
|
917F562528256DB900D19543 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
917F562628256DB900D19543 /* Build configuration list for PBXNativeTarget "Compound Inspector" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
917F562728256DB900D19543 /* Debug */,
|
||||||
|
917F562828256DB900D19543 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
|
||||||
|
/* Begin XCSwiftPackageProductDependency section */
|
||||||
|
91B2EA9828CA05B900A90A83 /* Compound */ = {
|
||||||
|
isa = XCSwiftPackageProductDependency;
|
||||||
|
productName = Compound;
|
||||||
|
};
|
||||||
|
/* End XCSwiftPackageProductDependency section */
|
||||||
|
};
|
||||||
|
rootObject = 917F561028256DB800D19543 /* Project object */;
|
||||||
|
}
|
||||||
7
compound-ios/Inspector/Inspector.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
7
compound-ios/Inspector/Inspector.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Workspace
|
||||||
|
version = "1.0">
|
||||||
|
<FileRef
|
||||||
|
location = "self:">
|
||||||
|
</FileRef>
|
||||||
|
</Workspace>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IDEDidComputeMac32BitWarning</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"pins" : [
|
||||||
|
{
|
||||||
|
"identity" : "flex",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/FLEXTool/FLEX",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "ac50a6d36b738a15a6d3b6b51683d8a152319f59",
|
||||||
|
"version" : "4.7.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version" : 2
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>FILEHEADER</key>
|
||||||
|
<string>
|
||||||
|
// Copyright ___YEAR___ New Vector Ltd
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
// Please see LICENSE in the repository root for full details.
|
||||||
|
//</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
"pins" : [
|
||||||
|
{
|
||||||
|
"identity" : "compound-design-tokens",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/element-hq/compound-design-tokens.git",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "be5d26dfd4ad659b0d3b3aec1ad1cccd0dc8d063",
|
||||||
|
"version" : "6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identity" : "sfsafesymbols",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/SFSafeSymbols/SFSafeSymbols.git",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "3dd282d3269b061853a3b3bcd23a509d2aa166ce",
|
||||||
|
"version" : "6.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identity" : "swift-custom-dump",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/pointfreeco/swift-custom-dump",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "82645ec760917961cfa08c9c0c7104a57a0fa4b1",
|
||||||
|
"version" : "1.3.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identity" : "swift-snapshot-testing",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/pointfreeco/swift-snapshot-testing",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "1be8144023c367c5de701a6313ed29a3a10bf59b",
|
||||||
|
"version" : "1.18.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identity" : "swift-syntax",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/swiftlang/swift-syntax",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "74203046135342e4a4a627476dd6caf8b28fe11b",
|
||||||
|
"version" : "509.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identity" : "swiftui-introspect",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/siteline/SwiftUI-Introspect.git",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "a08b87f96b41055577721a6e397562b21ad52454",
|
||||||
|
"version" : "26.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identity" : "xctest-dynamic-overlay",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/pointfreeco/xctest-dynamic-overlay",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "39de59b2d47f7ef3ca88a039dff3084688fe27f4",
|
||||||
|
"version" : "1.5.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version" : 2
|
||||||
|
}
|
||||||
8
compound-ios/Inspector/Podfile
Normal file
8
compound-ios/Inspector/Podfile
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
platform :ios, '16.0'
|
||||||
|
|
||||||
|
target 'Compound Inspector' do
|
||||||
|
# Comment the next line if you don't want to use dynamic frameworks
|
||||||
|
use_frameworks!
|
||||||
|
|
||||||
|
pod "HyperioniOS"
|
||||||
|
end
|
||||||
27
compound-ios/Inspector/Podfile.lock
Normal file
27
compound-ios/Inspector/Podfile.lock
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
PODS:
|
||||||
|
- HyperioniOS (1.2.0):
|
||||||
|
- HyperioniOS/AttributesInspector (= 1.2.0)
|
||||||
|
- HyperioniOS/Core (= 1.2.0)
|
||||||
|
- HyperioniOS/Measurements (= 1.2.0)
|
||||||
|
- HyperioniOS/SlowAnimations (= 1.2.0)
|
||||||
|
- HyperioniOS/AttributesInspector (1.2.0):
|
||||||
|
- HyperioniOS/Core
|
||||||
|
- HyperioniOS/Core (1.2.0)
|
||||||
|
- HyperioniOS/Measurements (1.2.0):
|
||||||
|
- HyperioniOS/Core
|
||||||
|
- HyperioniOS/SlowAnimations (1.2.0):
|
||||||
|
- HyperioniOS/Core
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- HyperioniOS
|
||||||
|
|
||||||
|
SPEC REPOS:
|
||||||
|
trunk:
|
||||||
|
- HyperioniOS
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
HyperioniOS: 4412ec61a390caadffcaaf3364733b06e103cf63
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: 30e97949fb1de5c74fc24378bbfdbbace5bd8b80
|
||||||
|
|
||||||
|
COCOAPODS: 1.16.2
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "Icon.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"platform" : "ios",
|
||||||
|
"size" : "1024x1024"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 659 KiB |
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
"colors" : [
|
||||||
|
{
|
||||||
|
"color" : {
|
||||||
|
"color-space" : "srgb",
|
||||||
|
"components" : {
|
||||||
|
"alpha" : "1.000",
|
||||||
|
"blue" : "0.133",
|
||||||
|
"green" : "0.114",
|
||||||
|
"red" : "0.106"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"color" : {
|
||||||
|
"color-space" : "srgb",
|
||||||
|
"components" : {
|
||||||
|
"alpha" : "1.000",
|
||||||
|
"blue" : "0.949",
|
||||||
|
"green" : "0.933",
|
||||||
|
"red" : "0.922"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "contrast",
|
||||||
|
"value" : "high"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"color" : {
|
||||||
|
"color-space" : "srgb",
|
||||||
|
"components" : {
|
||||||
|
"alpha" : "1.000",
|
||||||
|
"blue" : "0.129",
|
||||||
|
"green" : "0.110",
|
||||||
|
"red" : "0.102"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"idiom" : "universal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearances" : [
|
||||||
|
{
|
||||||
|
"appearance" : "luminosity",
|
||||||
|
"value" : "dark"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearance" : "contrast",
|
||||||
|
"value" : "high"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"color" : {
|
||||||
|
"color-space" : "srgb",
|
||||||
|
"components" : {
|
||||||
|
"alpha" : "1.000",
|
||||||
|
"blue" : "0.969",
|
||||||
|
"green" : "0.961",
|
||||||
|
"red" : "0.949"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"idiom" : "universal"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>com.apple.security.app-sandbox</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
8
compound-ios/Inspector/Resources/Info.plist
Normal file
8
compound-ios/Inspector/Resources/Info.plist
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>ITSAppUsesNonExemptEncryption</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Compound
|
||||||
|
import SwiftUI
|
||||||
|
|
||||||
|
struct ButtonsScreen: View {
|
||||||
|
var body: some View {
|
||||||
|
ScreenContent(navigationTitle: "Buttons") {
|
||||||
|
CompoundButtonStyle_Previews.states
|
||||||
|
SendButton_Previews.states
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ButtonsScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
ButtonsScreen()
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 700))
|
||||||
|
}
|
||||||
|
}
|
||||||
26
compound-ios/Inspector/Sources/Components/ListScreen.swift
Normal file
26
compound-ios/Inspector/Sources/Components/ListScreen.swift
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
import HyperionCore
|
||||||
|
|
||||||
|
struct ListScreen: View {
|
||||||
|
var body: some View {
|
||||||
|
ListRow_Previews.previews
|
||||||
|
.navigationTitle("Lists")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ListScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
ListScreen()
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 700))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import DesignKit
|
||||||
|
|
||||||
|
struct TextFieldsScreen: View {
|
||||||
|
var body: some View {
|
||||||
|
ScreenContent(navigationTitle: "Text Fields") {
|
||||||
|
BorderedInputFieldStyle_Previews.states
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct TextFieldsScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
TextFieldsScreen()
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 700))
|
||||||
|
}
|
||||||
|
}
|
||||||
87
compound-ios/Inspector/Sources/CompoundInspectorApp.swift
Normal file
87
compound-ios/Inspector/Sources/CompoundInspectorApp.swift
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
import HyperionCore
|
||||||
|
|
||||||
|
@main
|
||||||
|
struct CompoundInspectorApp: App {
|
||||||
|
@State private var colorScheme: ColorScheme = .light
|
||||||
|
@State private var dynamicTypeSize: DynamicTypeSize = .large
|
||||||
|
|
||||||
|
private var isDark: Bool { colorScheme == .dark }
|
||||||
|
private var preferredColorScheme: ColorScheme? { ProcessInfo.processInfo.isMacCatalystApp ? colorScheme : nil }
|
||||||
|
|
||||||
|
var body: some Scene {
|
||||||
|
WindowGroup {
|
||||||
|
NavigationSplitView {
|
||||||
|
SidebarList()
|
||||||
|
.navigationTitle("Components")
|
||||||
|
.navigationDestination(for: Screen.self) { screen in
|
||||||
|
screen
|
||||||
|
#if targetEnvironment(macCatalyst)
|
||||||
|
.dynamicTypeSize(dynamicTypeSize)
|
||||||
|
#endif
|
||||||
|
.navigationBarTitleDisplayMode(.inline)
|
||||||
|
.toolbar { screenToolbar }
|
||||||
|
}
|
||||||
|
} detail: {
|
||||||
|
EmptyView()
|
||||||
|
}
|
||||||
|
.accentColor(.compound.textActionPrimary)
|
||||||
|
.preferredColorScheme(preferredColorScheme)
|
||||||
|
.introspect(.window, on: .supportedVersions) { window in
|
||||||
|
// Apply the tint colour to alerts and confirmation dialogs
|
||||||
|
window.tintColor = .compound.textActionPrimary
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.commands {
|
||||||
|
CommandMenu("Options") {
|
||||||
|
Button("Hyperion", action: HyperionManager.sharedInstance().togglePluginDrawer)
|
||||||
|
.keyboardShortcut("i", modifiers: [.command, .option])
|
||||||
|
|
||||||
|
Divider()
|
||||||
|
|
||||||
|
Button("Toggle Appearance", action: toggleDarkMode)
|
||||||
|
.keyboardShortcut("a", modifiers: [.command, .shift])
|
||||||
|
|
||||||
|
#if targetEnvironment(macCatalyst)
|
||||||
|
textSizePicker
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var textSizePicker: some View {
|
||||||
|
Picker("Text Size", selection: $dynamicTypeSize) {
|
||||||
|
ForEach(DynamicTypeSize.allCases, id: \.self) { size in
|
||||||
|
Text(String(describing: size)).tag(size)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewBuilder
|
||||||
|
var screenToolbar: some View {
|
||||||
|
#if targetEnvironment(macCatalyst)
|
||||||
|
Menu {
|
||||||
|
textSizePicker
|
||||||
|
.pickerStyle(.inline)
|
||||||
|
} label: {
|
||||||
|
Image(systemName: "textformat.size")
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Button(action: HyperionManager.sharedInstance().togglePluginDrawer) {
|
||||||
|
Image(systemName: "ruler")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func toggleDarkMode() {
|
||||||
|
colorScheme = isDark ? .light : .dark
|
||||||
|
}
|
||||||
|
}
|
||||||
63
compound-ios/Inspector/Sources/Screen.swift
Normal file
63
compound-ios/Inspector/Sources/Screen.swift
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
|
||||||
|
/// A screen of components/tokens that can be navigated to.
|
||||||
|
enum Screen: Hashable, View {
|
||||||
|
/// Colour tokens
|
||||||
|
case colors
|
||||||
|
/// Gradients assembled from colour tokens
|
||||||
|
case gradients
|
||||||
|
/// Font tokens
|
||||||
|
case fonts
|
||||||
|
/// Icon tokens
|
||||||
|
case icons
|
||||||
|
/// Size tokens
|
||||||
|
case sizes
|
||||||
|
|
||||||
|
/// List styles and components
|
||||||
|
case list
|
||||||
|
/// Label styles
|
||||||
|
case labels
|
||||||
|
/// Button styles
|
||||||
|
case buttons
|
||||||
|
/// Text field styles.
|
||||||
|
case textFields
|
||||||
|
|
||||||
|
/// The system's confirmation dialog component
|
||||||
|
case actionSheet
|
||||||
|
/// The system's alert component
|
||||||
|
case alert
|
||||||
|
/// The system's context menu component
|
||||||
|
case contextMenu
|
||||||
|
/// The system's navigation bar component
|
||||||
|
case navigationBar
|
||||||
|
/// The system's share sheet component
|
||||||
|
case shareSheet
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
switch self {
|
||||||
|
case .colors: ColorsScreen()
|
||||||
|
case .gradients: GradientsScreen()
|
||||||
|
case .fonts: FontsScreen()
|
||||||
|
case .icons: IconsScreen()
|
||||||
|
|
||||||
|
case .list: ListScreen()
|
||||||
|
case .sizes: EmptyView()
|
||||||
|
case .labels: EmptyView()
|
||||||
|
case .buttons: ButtonsScreen()
|
||||||
|
case .textFields: EmptyView()
|
||||||
|
|
||||||
|
case .actionSheet: ActionSheetScreen()
|
||||||
|
case .alert: AlertScreen()
|
||||||
|
case .contextMenu: ContextMenuScreen()
|
||||||
|
case .navigationBar: NavigationBarScreen()
|
||||||
|
case .shareSheet: ShareSheetScreen()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
34
compound-ios/Inspector/Sources/ScreenContent.swift
Normal file
34
compound-ios/Inspector/Sources/ScreenContent.swift
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
|
||||||
|
/// A helper to provider a default layout for the content of a screen.
|
||||||
|
struct ScreenContent<Content: View>: View {
|
||||||
|
let navigationTitle: String
|
||||||
|
@ViewBuilder var content: () -> Content
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
ScrollView {
|
||||||
|
LazyVStack(spacing: 16) {
|
||||||
|
content()
|
||||||
|
}
|
||||||
|
.padding()
|
||||||
|
}
|
||||||
|
.navigationTitle(navigationTitle)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ComponentsContainer_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
ScreenContent(navigationTitle: "Buttons") {
|
||||||
|
Button("Confirm") { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
81
compound-ios/Inspector/Sources/SidebarList.swift
Normal file
81
compound-ios/Inspector/Sources/SidebarList.swift
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
|
||||||
|
struct SidebarList: View {
|
||||||
|
var body: some View {
|
||||||
|
List {
|
||||||
|
tokensSection
|
||||||
|
componentsSection
|
||||||
|
systemComponentsSection
|
||||||
|
}
|
||||||
|
.navigationTitle("Components")
|
||||||
|
.listStyle(.sidebar)
|
||||||
|
.tint(.compound.iconAccentTertiary)
|
||||||
|
}
|
||||||
|
|
||||||
|
var tokensSection: some View {
|
||||||
|
Section("Tokens") {
|
||||||
|
NavigationLink(value: Screen.colors) {
|
||||||
|
Label("Colours", systemImage: "paintpalette")
|
||||||
|
}
|
||||||
|
NavigationLink(value: Screen.gradients) {
|
||||||
|
Label("Gradients", systemImage: "lightspectrum.horizontal")
|
||||||
|
}
|
||||||
|
NavigationLink(value: Screen.fonts) {
|
||||||
|
Label("Typography", systemImage: "character")
|
||||||
|
}
|
||||||
|
NavigationLink(value: Screen.icons) {
|
||||||
|
Label("Icons", systemImage: "pencil.and.outline")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var componentsSection: some View {
|
||||||
|
Section("Components") {
|
||||||
|
NavigationLink(value: Screen.buttons) {
|
||||||
|
Label("Buttons", systemImage: "rectangle.and.hand.point.up.left")
|
||||||
|
}
|
||||||
|
NavigationLink(value: Screen.list) {
|
||||||
|
Label("List", systemImage: "list.bullet.clipboard")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var systemComponentsSection: some View {
|
||||||
|
Section("System Components") {
|
||||||
|
NavigationLink(value: Screen.actionSheet) {
|
||||||
|
Label("Action Sheets", systemImage: "window.shade.closed")
|
||||||
|
}
|
||||||
|
|
||||||
|
NavigationLink(value: Screen.alert) {
|
||||||
|
Label("Alerts", systemImage: "exclamationmark.triangle")
|
||||||
|
}
|
||||||
|
|
||||||
|
NavigationLink(value: Screen.contextMenu) {
|
||||||
|
Label("Context Menus", systemImage: "contextualmenu.and.cursorarrow")
|
||||||
|
}
|
||||||
|
|
||||||
|
NavigationLink(value: Screen.navigationBar) {
|
||||||
|
Label("Navigation Bar", systemImage: "window.shade.open")
|
||||||
|
}
|
||||||
|
|
||||||
|
NavigationLink(value: Screen.shareSheet) {
|
||||||
|
Label("Share Sheet", systemImage: "square.and.arrow.up")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ContentView_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
SidebarList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
|
||||||
|
struct ActionSheetScreen: View {
|
||||||
|
@State private var isPresentingConfirmationDialog = true
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
ScreenContent(navigationTitle: "Action Sheets") {
|
||||||
|
Text("This component will be rendered differently when running on macOS.")
|
||||||
|
.font(.footnote)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
.multilineTextAlignment(.center)
|
||||||
|
}
|
||||||
|
.toolbar {
|
||||||
|
ToolbarItem(placement: .bottomBar) {
|
||||||
|
Button("Show Sheet") {
|
||||||
|
isPresentingConfirmationDialog = true
|
||||||
|
}
|
||||||
|
.confirmationDialog("A Short Title is Best",
|
||||||
|
isPresented: $isPresentingConfirmationDialog) {
|
||||||
|
Button("Default") { }
|
||||||
|
Button("Default") { }
|
||||||
|
Button("Default") { }
|
||||||
|
Button("Disabled") { }
|
||||||
|
.disabled(true) // This hides the button on iOS 16 😐
|
||||||
|
Button("Destructive", role: .destructive) { }
|
||||||
|
} message: {
|
||||||
|
Text("A message should be a short, complete sentence.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ActionSheetScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
ActionSheetScreen()
|
||||||
|
}
|
||||||
|
.introspect(.window, on: .supportedVersions) { window in
|
||||||
|
// Fix the tint colour like the App strut does.
|
||||||
|
window.tintColor = .compound.textActionPrimary
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 750))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
|
||||||
|
struct AlertScreen: View {
|
||||||
|
@State private var isPresentingActionAlert = false
|
||||||
|
@State private var isPresentingActionAndCancelAlert = false
|
||||||
|
@State private var isPresentingDestructiveAlert = false
|
||||||
|
@State private var isPresentingTextFieldAlert = false
|
||||||
|
@State private var textFieldValue = ""
|
||||||
|
|
||||||
|
private let title = "A Short Title is Best"
|
||||||
|
private let message = "A message should be a short, complete sentence."
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
ScreenContent(navigationTitle: "Alerts") {
|
||||||
|
Text("This component will be rendered differently when running on macOS.")
|
||||||
|
.font(.footnote)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
.multilineTextAlignment(.center)
|
||||||
|
|
||||||
|
Button("Action") { isPresentingActionAlert = true }
|
||||||
|
.padding(.top)
|
||||||
|
.alert(title, isPresented: $isPresentingActionAlert) {
|
||||||
|
Button("Action") { }
|
||||||
|
} message: {
|
||||||
|
Text(message)
|
||||||
|
}
|
||||||
|
|
||||||
|
Button("Action and Cancel") { isPresentingActionAndCancelAlert = true }
|
||||||
|
.padding(.top)
|
||||||
|
.alert(title, isPresented: $isPresentingActionAndCancelAlert) {
|
||||||
|
Button("Action") { }
|
||||||
|
Button("Cancel", role: .cancel) { }
|
||||||
|
} message: {
|
||||||
|
Text(message)
|
||||||
|
}
|
||||||
|
|
||||||
|
Button("Destructive") { isPresentingDestructiveAlert = true }
|
||||||
|
.padding(.top)
|
||||||
|
.alert(title, isPresented: $isPresentingDestructiveAlert) {
|
||||||
|
Button("Action") { }
|
||||||
|
Button("Destructive", role: .destructive) { }
|
||||||
|
Button("Cancel", role: .cancel) { }
|
||||||
|
} message: {
|
||||||
|
Text(message)
|
||||||
|
}
|
||||||
|
|
||||||
|
Button("TextField") { isPresentingTextFieldAlert = true }
|
||||||
|
.padding(.top)
|
||||||
|
.alert(title, isPresented: $isPresentingTextFieldAlert) {
|
||||||
|
TextField("Input", text: $textFieldValue, prompt: Text("Placeholder"))
|
||||||
|
Button("Action") { }
|
||||||
|
Button("Cancel", role: .cancel) { }
|
||||||
|
} message: {
|
||||||
|
Text(message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct AlertScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
AlertScreen()
|
||||||
|
}
|
||||||
|
.introspect(.window, on: .supportedVersions) { window in
|
||||||
|
// Fix the tint colour like the App strut does.
|
||||||
|
window.tintColor = .compound.textActionPrimary
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 750))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
|
||||||
|
struct ContextMenuScreen: View {
|
||||||
|
var body: some View {
|
||||||
|
ScreenContent(navigationTitle: "Context Menus") {
|
||||||
|
Text("This component will be rendered differently when running on macOS.")
|
||||||
|
.font(.footnote)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
.multilineTextAlignment(.center)
|
||||||
|
|
||||||
|
Text("Actions")
|
||||||
|
.padding()
|
||||||
|
.contentShape(.contextMenuPreview, RoundedRectangle(cornerRadius: 12))
|
||||||
|
.contextMenu {
|
||||||
|
Section {
|
||||||
|
Button { } label: {
|
||||||
|
Label("Action", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
Button { } label: {
|
||||||
|
Label("Action", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
Button { } label: {
|
||||||
|
Label("Disabled", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
.disabled(true)
|
||||||
|
Button(role: .destructive) { } label: {
|
||||||
|
Label("Destructive", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Section {
|
||||||
|
Button { } label: {
|
||||||
|
Label("Action", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
Button { } label: {
|
||||||
|
Label("Action", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text("Toggles")
|
||||||
|
.padding()
|
||||||
|
.contentShape(.contextMenuPreview, RoundedRectangle(cornerRadius: 12))
|
||||||
|
.contextMenu {
|
||||||
|
Section {
|
||||||
|
Toggle(isOn: .constant(true)) {
|
||||||
|
Label("Toggle", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
Toggle(isOn: .constant(false)) {
|
||||||
|
Label("Toggle", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
Toggle(isOn: .constant(false)) {
|
||||||
|
Label("Disabled", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
.disabled(true)
|
||||||
|
}
|
||||||
|
Section {
|
||||||
|
Toggle(isOn: .constant(true)) {
|
||||||
|
Label("Toggle", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
Toggle(isOn: .constant(true)) {
|
||||||
|
Label("Toggle", systemImage: "square.dashed")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ContextMenuScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
ContextMenuScreen()
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 750))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
|
||||||
|
struct NavigationBarScreen: View {
|
||||||
|
enum TitleMode {
|
||||||
|
case large
|
||||||
|
case inline
|
||||||
|
case hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
enum BackButtonMode {
|
||||||
|
case navigation
|
||||||
|
case cancellationAction
|
||||||
|
case hidden
|
||||||
|
}
|
||||||
|
|
||||||
|
@State private var titleMode = TitleMode.inline
|
||||||
|
@State private var backButtonMode = BackButtonMode.navigation
|
||||||
|
@State private var hasConfirmationAction = true
|
||||||
|
@State private var hasPrimaryAction = false
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
Form {
|
||||||
|
Section {
|
||||||
|
ListRow(kind: .custom {
|
||||||
|
Text("This component may be rendered differently when running on macOS.")
|
||||||
|
.font(.compound.bodySM)
|
||||||
|
.foregroundColor(.compound.textSecondary)
|
||||||
|
.multilineTextAlignment(.center)
|
||||||
|
.frame(maxWidth: .infinity)
|
||||||
|
.listRowBackground(Color.clear)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
ListRow(label: .plain(title: "Title"),
|
||||||
|
kind: .picker(selection: $titleMode, items: [
|
||||||
|
(title: "Large", tag: .large),
|
||||||
|
(title: "Inline", tag: .inline),
|
||||||
|
(title: "Hidden", tag: .hidden)
|
||||||
|
]))
|
||||||
|
ListRow(label: .plain(title: "Back Button"),
|
||||||
|
kind: .picker(selection: $backButtonMode, items: [
|
||||||
|
(title: "Navigation", tag: .navigation),
|
||||||
|
(title: "Cancelation Action", tag: .cancellationAction),
|
||||||
|
(title: "Hidden", tag: .hidden)
|
||||||
|
]))
|
||||||
|
|
||||||
|
ListRow(label: .plain(title: "Confirmation Action"),
|
||||||
|
kind: .toggle($hasConfirmationAction))
|
||||||
|
ListRow(label: .plain(title: "Primary Action"),
|
||||||
|
kind: .toggle($hasPrimaryAction))
|
||||||
|
} header: {
|
||||||
|
Text("Configuration")
|
||||||
|
.compoundListSectionHeader()
|
||||||
|
}
|
||||||
|
|
||||||
|
Section {
|
||||||
|
ListRow(kind: .custom {
|
||||||
|
VStack {
|
||||||
|
Text("Empty section to make the form scrollable")
|
||||||
|
.font(.compound.bodySM)
|
||||||
|
.foregroundColor(.compound.textSecondary)
|
||||||
|
Spacer(minLength: 500)
|
||||||
|
}
|
||||||
|
.padding(ListRowPadding.insets)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.compoundList()
|
||||||
|
.navigationTitle(titleMode == .hidden ? "" : "Navigation Bar")
|
||||||
|
.navigationBarTitleDisplayMode(titleMode == .large ? .large : .inline)
|
||||||
|
.navigationBarBackButtonHidden(backButtonMode != .navigation)
|
||||||
|
.toolbar {
|
||||||
|
if hasConfirmationAction {
|
||||||
|
ToolbarItem(placement: .confirmationAction) {
|
||||||
|
Button("Confirm") { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if hasPrimaryAction {
|
||||||
|
ToolbarItem(placement: .primaryAction) {
|
||||||
|
Button("Primary") { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if backButtonMode == .cancellationAction {
|
||||||
|
ToolbarItem(placement: .cancellationAction) {
|
||||||
|
Button("Cancel") { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct NavigationBarScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
NavigationBarScreen()
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 750))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
|
||||||
|
struct ShareSheetScreen: View {
|
||||||
|
var body: some View {
|
||||||
|
ScreenContent(navigationTitle: "Share Sheets") {
|
||||||
|
Text("This component will be rendered differently when running on macOS.")
|
||||||
|
.font(.footnote)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
.multilineTextAlignment(.center)
|
||||||
|
|
||||||
|
ShareLink(item: URL(string: "https://element.io")!, subject: Text("The subject"), message: Text("The message"))
|
||||||
|
.padding(.top)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ShareSheetScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
ShareSheetScreen()
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 750))
|
||||||
|
}
|
||||||
|
}
|
||||||
66
compound-ios/Inspector/Sources/Tokens/AllCases.swift
Normal file
66
compound-ios/Inspector/Sources/Tokens/AllCases.swift
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Compound
|
||||||
|
import SwiftUI
|
||||||
|
|
||||||
|
protocol AllValues {
|
||||||
|
associatedtype ValueType
|
||||||
|
var allValues: [(name: String, value: ValueType)] { get }
|
||||||
|
}
|
||||||
|
|
||||||
|
extension AllValues {
|
||||||
|
var allValues: [(name: String, value: ValueType)] {
|
||||||
|
var values: [(name: String, value: ValueType)] = []
|
||||||
|
let mirror = Mirror(reflecting: self)
|
||||||
|
|
||||||
|
for property in mirror.children {
|
||||||
|
if let label = property.label, let value = property.value as? ValueType {
|
||||||
|
values.append((label, value))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return values
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension CompoundColors: AllValues { typealias ValueType = Color }
|
||||||
|
extension CompoundColorTokens: AllValues { typealias ValueType = Color }
|
||||||
|
extension CompoundGradients: AllValues { typealias ValueType = Gradient }
|
||||||
|
extension CompoundFonts: AllValues { typealias ValueType = Font }
|
||||||
|
extension CompoundIcons: AllValues { typealias ValueType = Image }
|
||||||
|
|
||||||
|
extension CompoundColors {
|
||||||
|
var allColors: [(name: String, value: Color)] {
|
||||||
|
CompoundColorTokens().allValues + allValues
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension CompoundIcons {
|
||||||
|
var allKeyPaths: [(name: String, value: KeyPath<CompoundIcons, Image>)] {
|
||||||
|
var icons: [(name: String, value: KeyPath<CompoundIcons, Image>)] = []
|
||||||
|
let mirror = Mirror(reflecting: self)
|
||||||
|
|
||||||
|
for property in mirror.children {
|
||||||
|
if let label = property.label {
|
||||||
|
let keyPath = \CompoundIcons.[checkedMirrorDescendant: label] as PartialKeyPath
|
||||||
|
|
||||||
|
if let imageKeyPath = keyPath as? KeyPath<CompoundIcons, Image> {
|
||||||
|
icons.append((label, imageKeyPath))
|
||||||
|
} else {
|
||||||
|
print("Nope")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return icons
|
||||||
|
}
|
||||||
|
|
||||||
|
private subscript(checkedMirrorDescendant key: String) -> Any {
|
||||||
|
return Mirror(reflecting: self).descendant(key)!
|
||||||
|
}
|
||||||
|
}
|
||||||
85
compound-ios/Inspector/Sources/Tokens/ColorsScreen.swift
Normal file
85
compound-ios/Inspector/Sources/Tokens/ColorsScreen.swift
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
|
||||||
|
struct ColorsScreen: View {
|
||||||
|
var body: some View {
|
||||||
|
ScreenContent(navigationTitle: "Colors") {
|
||||||
|
ForEach(Color.compound.allColors, id: \.name) { color in
|
||||||
|
ColorItem(color: color.value, name: color.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ColorItem: View {
|
||||||
|
let color: Color
|
||||||
|
let name: String
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
HStack {
|
||||||
|
swatch
|
||||||
|
|
||||||
|
VStack(alignment: .leading) {
|
||||||
|
Text(name)
|
||||||
|
.font(.compound.bodyLG)
|
||||||
|
.foregroundColor(.compound.textPrimary)
|
||||||
|
Text(color.hexValue())
|
||||||
|
.font(.compound.bodySM.monospaced())
|
||||||
|
.foregroundColor(.compound.textSecondary)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var swatch: some View {
|
||||||
|
swatchShape
|
||||||
|
.foregroundColor(color)
|
||||||
|
.frame(height: 40)
|
||||||
|
.aspectRatio(1, contentMode: .fit)
|
||||||
|
.overlay {
|
||||||
|
swatchShape
|
||||||
|
.strokeBorder(Color.compound.iconPrimary, lineWidth: 1.5)
|
||||||
|
.opacity(0.2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var swatchShape: some InsettableShape {
|
||||||
|
RoundedRectangle(cornerRadius: 12, style: .continuous)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private extension Color {
|
||||||
|
func hexValue() -> String {
|
||||||
|
let uiColor = UIColor(self)
|
||||||
|
|
||||||
|
var red: CGFloat = 0
|
||||||
|
var green: CGFloat = 0
|
||||||
|
var blue: CGFloat = 0
|
||||||
|
var alpha: CGFloat = 0
|
||||||
|
|
||||||
|
uiColor.getRed(&red, green: &green, blue: &blue, alpha: &alpha)
|
||||||
|
|
||||||
|
return "#\(red.asHex)\(green.asHex)\(blue.asHex)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private extension CGFloat {
|
||||||
|
var asHex: String {
|
||||||
|
String(format:"%02X", Int((self * 255).rounded()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ColorsScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
ColorsScreen()
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 700))
|
||||||
|
}
|
||||||
|
}
|
||||||
40
compound-ios/Inspector/Sources/Tokens/FontsScreen.swift
Normal file
40
compound-ios/Inspector/Sources/Tokens/FontsScreen.swift
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
|
||||||
|
struct FontsScreen: View {
|
||||||
|
var body: some View {
|
||||||
|
ScreenContent(navigationTitle: "Fonts") {
|
||||||
|
ForEach(Font.compound.allValues, id: \.name) { font in
|
||||||
|
FontItem(font: font.value, name: font.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct FontItem: View {
|
||||||
|
let font: Font
|
||||||
|
let name: String
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
Text(name)
|
||||||
|
.font(font)
|
||||||
|
.foregroundColor(.compound.textPrimary)
|
||||||
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct FontsScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
FontsScreen()
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 750))
|
||||||
|
}
|
||||||
|
}
|
||||||
61
compound-ios/Inspector/Sources/Tokens/GradientsScreen.swift
Normal file
61
compound-ios/Inspector/Sources/Tokens/GradientsScreen.swift
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2025 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
|
||||||
|
struct GradientsScreen: View {
|
||||||
|
var body: some View {
|
||||||
|
ScreenContent(navigationTitle: "Colors") {
|
||||||
|
ForEach(Gradient.compound.allValues, id: \.name) { gradient in
|
||||||
|
GradientItem(gradient: gradient.value, name: gradient.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct GradientItem: View {
|
||||||
|
let gradient: Gradient
|
||||||
|
let name: String
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
HStack {
|
||||||
|
swatch
|
||||||
|
|
||||||
|
VStack(alignment: .leading) {
|
||||||
|
Text(name)
|
||||||
|
.font(.compound.bodyLG)
|
||||||
|
.foregroundColor(.compound.textPrimary)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var swatch: some View {
|
||||||
|
swatchShape
|
||||||
|
.foregroundStyle(gradient)
|
||||||
|
.frame(height: 40)
|
||||||
|
.aspectRatio(1, contentMode: .fit)
|
||||||
|
.overlay {
|
||||||
|
swatchShape
|
||||||
|
.strokeBorder(Color.compound.iconPrimary, lineWidth: 1.5)
|
||||||
|
.opacity(0.2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var swatchShape: some InsettableShape {
|
||||||
|
RoundedRectangle(cornerRadius: 12, style: .continuous)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct GradientsScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
ColorsScreen()
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 700))
|
||||||
|
}
|
||||||
|
}
|
||||||
47
compound-ios/Inspector/Sources/Tokens/IconsScreen.swift
Normal file
47
compound-ios/Inspector/Sources/Tokens/IconsScreen.swift
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2023, 2024 New Vector Ltd.
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
|
// Please see LICENSE files in the repository root for full details.
|
||||||
|
//
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
import Compound
|
||||||
|
|
||||||
|
struct IconsScreen: View {
|
||||||
|
let icons = Image.compound.allValues.sorted(by: { $0.name < $1.name })
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
ScreenContent(navigationTitle: "Icons") {
|
||||||
|
ForEach(icons, id: \.name) { icon in
|
||||||
|
IconItem(icon: icon.value, name: icon.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct IconItem: View {
|
||||||
|
let icon: Image
|
||||||
|
let name: String
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
Label {
|
||||||
|
Text(name)
|
||||||
|
.foregroundColor(.compound.textPrimary)
|
||||||
|
} icon: {
|
||||||
|
CompoundIcon(customImage: icon)
|
||||||
|
.foregroundColor(.compound.iconSecondary)
|
||||||
|
}
|
||||||
|
.font(.compound.bodyLG)
|
||||||
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct IconsScreen_Previews: PreviewProvider {
|
||||||
|
static var previews: some View {
|
||||||
|
NavigationStack {
|
||||||
|
IconsScreen()
|
||||||
|
}
|
||||||
|
.previewLayout(.fixed(width: 375, height: 750))
|
||||||
|
}
|
||||||
|
}
|
||||||
11
compound-ios/Inspector/ci_scripts/ci_post_clone.sh
Executable file
11
compound-ios/Inspector/ci_scripts/ci_post_clone.sh
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Build dependencies
|
||||||
|
echo "Installing CocoaPods"
|
||||||
|
brew install cocoapods
|
||||||
|
|
||||||
|
# Project dependencies
|
||||||
|
echo "Installing Pods"
|
||||||
|
pod install
|
||||||
Reference in New Issue
Block a user