├── .github └── FUNDING.yml ├── .gitignore ├── .swift-version ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CustomDynamicType.podspec ├── CustomDynamicType.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcuserdata │ └── beppe.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ └── xcschememanagement.plist ├── ExampleFonts ├── NewYorkMedium-Bold.otf ├── NewYorkMedium-Medium.otf ├── NewYorkMedium-Regular.otf └── NewYorkMedium-Semibold.otf ├── LICENSE.md ├── Media ├── Banner.png └── Dynamic.gif ├── Package.resolved ├── Package.swift ├── README.md ├── Sources ├── CustomDynamicFontNames.swift ├── CustomDynamicType.swift ├── Font+CustomDynamicType.swift ├── Internal │ ├── CustomDynamicType_internal.swift │ ├── Font.swift │ └── UIFont.swift ├── UIFont+CustomDynamicType.swift └── UILabel+CustomDynamicType.swift ├── SwiftUIExample ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── ContentView.swift ├── Info.plist ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json └── SwiftUIExampleApp.swift ├── Tests └── CustomDynamicTypeTests.swift ├── UIKitExample ├── AppDelegate.swift ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Info.plist ├── SceneDelegate.swift └── ViewController.swift └── docs ├── css ├── chunk-c0335d80.10a2f091.css ├── documentation-topic.1d1eec04.css ├── documentation-topic~topic.b6287bcf.css ├── documentation-topic~topic~tutorials-overview.d6f5411c.css ├── index.038e887c.css ├── topic.d8c126f3.css └── tutorials-overview.c249c765.css ├── data └── documentation │ ├── customdynamictype.json │ └── customdynamictype │ ├── customdynamicfontnames.json │ ├── customdynamicfontnames │ └── init(ultralight:thin:light:regular:medium:semibold:bold:heavy:black:).json │ ├── customdynamictype.json │ ├── customdynamictype │ └── setup(with:).json │ ├── swiftui.json │ ├── swiftui │ ├── font.json │ └── font │ │ └── font(style:overrideweight:).json │ ├── uikit.json │ └── uikit │ ├── uifont.json │ ├── uifont │ └── font(style:overrideweight:).json │ ├── uilabel.json │ └── uilabel │ └── setfont(style:overrideweight:).json ├── developer-og-twitter.jpg ├── developer-og.jpg ├── documentation └── customdynamictype │ ├── customdynamicfontnames │ ├── index.html │ └── init(ultralight:thin:light:regular:medium:semibold:bold:heavy:black:) │ │ └── index.html │ ├── customdynamictype │ ├── index.html │ └── setup(with:) │ │ └── index.html │ ├── index.html │ ├── swiftui │ ├── font │ │ ├── font(style:overrideweight:) │ │ │ └── index.html │ │ └── index.html │ └── index.html │ └── uikit │ ├── index.html │ ├── uifont │ ├── font(style:overrideweight:) │ │ └── index.html │ └── index.html │ └── uilabel │ ├── index.html │ └── setfont(style:overrideweight:) │ └── index.html ├── favicon.ico ├── favicon.svg ├── img ├── added-icon.d6f7e47d.svg ├── deprecated-icon.015b4f17.svg ├── modified-icon.f496e73d.svg └── no-image@2x.df2a0a50.png ├── index.html ├── index ├── availability.index ├── data.mdb ├── index.json └── navigator.index ├── js ├── chunk-2d0d3105.cd72cc8e.js ├── chunk-c0335d80.76a68cc5.js ├── chunk-vendors.ba2dd0cb.js ├── documentation-topic.57e91f8a.js ├── documentation-topic~topic.1679ec90.js ├── documentation-topic~topic~tutorials-overview.90c61522.js ├── highlight-js-bash.1b52852f.js ├── highlight-js-c.d1db3f17.js ├── highlight-js-cpp.eaddddbe.js ├── highlight-js-css.75eab1fe.js ├── highlight-js-custom-markdown.7cffc4b3.js ├── highlight-js-custom-swift.5cda5c20.js ├── highlight-js-diff.62d66733.js ├── highlight-js-http.163e45b6.js ├── highlight-js-java.8326d9d8.js ├── highlight-js-javascript.acb8a8eb.js ├── highlight-js-json.471128d2.js ├── highlight-js-llvm.6100b125.js ├── highlight-js-markdown.90077643.js ├── highlight-js-objectivec.bcdf5156.js ├── highlight-js-perl.757d7b6f.js ├── highlight-js-php.cc8d6c27.js ├── highlight-js-python.c214ed92.js ├── highlight-js-ruby.f889d392.js ├── highlight-js-scss.62ee18da.js ├── highlight-js-shell.dd7f411f.js ├── highlight-js-swift.84f3e88c.js ├── highlight-js-xml.9c3688c7.js ├── index.e8a5d294.js ├── topic.8cd0c0c4.js └── tutorials-overview.2a32cd6f.js └── metadata.json /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: neobeppe 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: ['https://paypal.me/giuseppetravasoni'] 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | Assets/ 6 | build/ 7 | html/ 8 | .build 9 | *.pbxuser 10 | !default.pbxuser 11 | *.mode1v3 12 | !default.mode1v3 13 | *.mode2v3 14 | !default.mode2v3 15 | *.perspectivev3 16 | !default.perspectivev3 17 | xcuserdata 18 | *.xccheckout 19 | *.moved-aside 20 | DerivedData 21 | *.hmap 22 | *.ipa 23 | *.dot 24 | .docc-build/ 25 | .swiftpm/ 26 | -------------------------------------------------------------------------------- /.swift-version: -------------------------------------------------------------------------------- 1 | 5.3 -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at giuseppe@travasoni.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | When contributing to this repository, please first discuss the change you wish to make via issue, 4 | email, or any other method with the owners of this repository before making a change. 5 | 6 | Please note we have a code of conduct, please follow it in all your interactions with the project. 7 | 8 | ## Pull Request Process 9 | 10 | 1. Ensure any install or build dependencies are removed before the end of the layer when doing a 11 | build. 12 | 2. Update the README.md with details of changes to the interface, this includes new environment 13 | variables, exposed ports, useful file locations and container parameters. 14 | 3. Increase the version numbers in any examples files and the README.md to the new version that this 15 | Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/). 16 | 4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you 17 | do not have permission to do that, you may request the second reviewer to merge it for you 18 | -------------------------------------------------------------------------------- /CustomDynamicType.podspec: -------------------------------------------------------------------------------- 1 | 2 | Pod::Spec.new do |s| 3 | s.name = 'CustomDynamicType' 4 | s.version = '1.0.0' 5 | s.summary = 'Seamlessly integrate custom fonts into iOS Dynamic Type' 6 | 7 | s.description = <<-DESC 8 | CustomDynamicType is a versatile Swift library designed to seamlessly integrate custom fonts into iOS Dynamic Type. 9 | This library is not just a means to enhance your app's aesthetic appeal with personalized fonts; it's a commitment to inclusivity. 10 | DESC 11 | 12 | s.homepage = 'https://github.com/neobeppe/CustomDynamicType' 13 | s.license = { :type => 'MIT', :file => 'LICENSE.md' } 14 | s.author = { 'Giuseppe Travasoni' => 'giuseppe.travasoni@gmail.com' } 15 | s.source = { :git => 'https://github.com/neobeppe/CustomDynamicType.git', :tag => s.version.to_s } 16 | 17 | s.ios.deployment_target = '14.0' 18 | s.source_files = 'Sources/**/*' 19 | s.frameworks = 'UIKit', 'SwiftUI' 20 | 21 | s.swift_version = '5.3' 22 | 23 | end 24 | -------------------------------------------------------------------------------- /CustomDynamicType.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CustomDynamicType.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CustomDynamicType.xcodeproj/xcuserdata/beppe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /CustomDynamicType.xcodeproj/xcuserdata/beppe.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | CustomDynamicType.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 2 11 | 12 | SwiftUIExample.xcscheme_^#shared#^_ 13 | 14 | orderHint 15 | 1 16 | 17 | UIKitExample.xcscheme_^#shared#^_ 18 | 19 | orderHint 20 | 0 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /ExampleFonts/NewYorkMedium-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/ExampleFonts/NewYorkMedium-Bold.otf -------------------------------------------------------------------------------- /ExampleFonts/NewYorkMedium-Medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/ExampleFonts/NewYorkMedium-Medium.otf -------------------------------------------------------------------------------- /ExampleFonts/NewYorkMedium-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/ExampleFonts/NewYorkMedium-Regular.otf -------------------------------------------------------------------------------- /ExampleFonts/NewYorkMedium-Semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/ExampleFonts/NewYorkMedium-Semibold.otf -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Giuseppe Travasoni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /Media/Banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/Media/Banner.png -------------------------------------------------------------------------------- /Media/Dynamic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/Media/Dynamic.gif -------------------------------------------------------------------------------- /Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "pins" : [ 3 | { 4 | "identity" : "swift-docc-plugin", 5 | "kind" : "remoteSourceControl", 6 | "location" : "https://github.com/apple/swift-docc-plugin", 7 | "state" : { 8 | "revision" : "26ac5758409154cc448d7ab82389c520fa8a8247", 9 | "version" : "1.3.0" 10 | } 11 | }, 12 | { 13 | "identity" : "swift-docc-symbolkit", 14 | "kind" : "remoteSourceControl", 15 | "location" : "https://github.com/apple/swift-docc-symbolkit", 16 | "state" : { 17 | "revision" : "b45d1f2ed151d057b54504d653e0da5552844e34", 18 | "version" : "1.0.0" 19 | } 20 | } 21 | ], 22 | "version" : 2 23 | } 24 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.3 2 | 3 | import PackageDescription 4 | 5 | let package = Package( 6 | name: "CustomDynamicType", 7 | platforms: [ 8 | .iOS(.v14) 9 | ], 10 | products: [ 11 | .library( 12 | name: "CustomDynamicType", 13 | targets: ["CustomDynamicType"]), 14 | ], 15 | targets: [ 16 | .target( 17 | name: "CustomDynamicType", 18 | path: "Sources" 19 | ), 20 | .testTarget( 21 | name: "CustomDynamicTypeTests", 22 | dependencies: ["CustomDynamicType"], 23 | path: "Tests" 24 | ) 25 | ] 26 | ) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # CustomDynamicType - Bridging Custom Fonts and Accessibility in iOS 3 | 4 | [![Version](https://img.shields.io/cocoapods/v/CustomDynamicType.svg?style=flat)](http://cocoapods.org/pods/CustomDynamicType) 5 | [![License](https://img.shields.io/cocoapods/l/CustomDynamicType.svg?style=flat)](https://github.com/neobeppe/CustomDynamicType/blob/main/LICENSE.md) 6 | [![Swift Compatibility](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fneobeppe%2FCustomDynamicType%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/neobeppe/CustomDynamicType) 7 | [![Platform Compatibility](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fneobeppe%2FCustomDynamicType%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/neobeppe/CustomDynamicType) 8 | 9 | 10 | 11 | ![Banner](Media/Banner.png?raw=true) 12 | 13 | ## Introduction 14 | Welcome to CustomDynamicType, a versatile Swift library designed to seamlessly integrate custom fonts into iOS Dynamic Type. This library is not just a means to enhance your app's aesthetic appeal with personalized fonts; it's a commitment to inclusivity. 15 | 16 | This solution is tailored for both UIKit and SwiftUI, providing a smooth and adaptable experience across different iOS development environments. 17 | 18 | With CustomDynamicType, you can now ensure that your custom fonts fully support and embrace Apple's extensive accessibility features. 19 | 20 | 21 | Whether you're building a new app or refining an existing one, CustomDynamicType is your gateway to creating a more accessible and visually appealing iOS application. Join us in redefining the boundaries of design and accessibility in the iOS ecosystem. 22 | 23 | ## Usage 24 | 25 | Integrating CustomDynamicType into your iOS application is straightforward, allowing you to use custom fonts while fully supporting accessibility. Follow these steps to set it up: 26 | 27 | ### Step 1: Define Your Custom Fonts 28 | 29 | First, define the custom fonts for your application. CustomDynamicType supports various font weights: 30 | 31 | - `ultraLight`: Optional, for ultra light font variant. 32 | - `thin`: Optional, for thin font variant. 33 | - `light`: Optional, for light font variant. 34 | - `regular`: **Required**, for regular font weight. 35 | - `medium`: Optional, for medium font variant. 36 | - `semibold`: **Required**, for semi-bold font variant. 37 | - `bold`: Optional, for bold font variant. 38 | - `heavy`: Optional, for heavy font variant. 39 | - `black`: Optional, for black font variant. 40 | 41 | Ensure these fonts are included in your project and configured in your application’s Info.plist, if it's the first time integrating a custom font follow [Apple documentation](https://developer.apple.com/documentation/uikit/text_display_and_fonts/adding_a_custom_font_to_your_app). 42 | 43 | ### Step 2: Initialize CustomDynamicType 44 | 45 | In your AppDelegate's `application(_:didFinishLaunchingWithOptions:)` method, initialize CustomDynamicType: 46 | 47 | ```swift 48 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 49 | 50 | let fontNames = CustomDynamicFontNames( 51 | ultraLight: "YourFontName-UltraLight", 52 | thin: "YourFontName-Thin", 53 | light: "YourFontName-Light", 54 | regular: "YourFontName-Regular", // Required 55 | medium: "YourFontName-Medium", 56 | semibold: "YourFontName-SemiBold", // Required 57 | bold: "YourFontName-Bold", 58 | heavy: "YourFontName-Heavy", 59 | black: "YourFontName-Black" 60 | ) 61 | CustomDynamicType.setup(with: fontNames) 62 | 63 | return true 64 | } 65 | ``` 66 | 67 | Replace `"YourFontName"` with your actual font names. `regular` and `semibold` are required because Apple default implementation relays on those weights, others are optional. 68 | 69 | ### UIKit Integration 70 | 71 | Apply custom fonts to UILabels easily. Example: 72 | 73 | ```swift 74 | let label = UILabel() 75 | label.setFont(style: .largeTitle) 76 | 77 | let boldLabel = UILabel() 78 | boldLabel.setFont(style: .body, overrideWeight: .bold) 79 | ``` 80 | 81 | In these examples, `setFont(style:overrideWeight:)` is used to apply the desired font style to each UILabel. `overrideWeight` parameter is optional and support any variant of `UIFont.Weight` (`ultraLight`, `thin`, `light`, `regular`, `medium`, `semibold`, `bold`, `heavy`, `black`) but remember that you need to setup the library with corrisponding font name otherwise it will fallback on the regular one. 82 | 83 | ### SwiftUI Integration 84 | 85 | Apply custom fonts to Text views in SwiftUI. Example: 86 | 87 | ```swift 88 | Text("Title text") 89 | .font(Font.font(style: .largeTitle)) 90 | Text("Another text but for the body") 91 | .font(Font.font(style: .body, overrideWeight: .bold)) 92 | ``` 93 | 94 | In SwiftUI, you use `Font.font(style:overrideWeight:)` to set the font style and optional weight for your Text views. `overrideWeight` parameter is optional and support any variant of `Font.Weight` (`ultraLight`, `thin`, `light`, `regular`, `medium`, `semibold`, `bold`, `heavy`, `black`) but remember that you need to setup the library with corrisponding font name otherwise it will fallback on the regular one. 95 | 96 | By incorporating these methods into your iOS applications, you can maintain a consistent and accessible font style across both UIKit and SwiftUI platforms. CustomDynamicType ensures that your custom fonts are not just visually appealing but also fully compatible with Apple's accessibility features. 97 | 98 | ![Animation](Media/Dynamic.gif?raw=true) 99 | 100 | ## Documentation 101 | 102 | Full documentation is availbale at [this link](https://neobeppe.github.io/CustomDynamicType/documentation/customdynamictype/) 103 | 104 | ## Installation 105 | 106 | #### [Swift Package Manager](https://github.com/apple/swift-package-manager) 107 | 108 | Add dependency to `Package.swift` file. 109 | 110 | ```swift 111 | dependencies: [ 112 | .package(url: "https://github.com/neobeppe/CustomDynamicType.git", .upToNextMajor(from: "1.0.0")) 113 | ] 114 | ``` 115 | 116 | #### [CocoaPods](http://cocoapods.org) 117 | CustomDynamicType is available through CocoaPods. To install it, simply add the following line to your Podfile: 118 | 119 | ```ruby 120 | pod 'CustomDynamicType' 121 | ``` 122 | 123 | ## License 124 | 125 | CustomDynamicType is available under the MIT license. See the LICENSE file for more info. 126 | -------------------------------------------------------------------------------- /Sources/CustomDynamicFontNames.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CustomDynamicFontNames.swift 3 | // CustomDynamicFontNames 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import Foundation 9 | 10 | /// Configuration struct that contains font names for desired supported weight, remember to register font files into your Info.plist file 11 | public struct CustomDynamicFontNames { 12 | 13 | let ultraLight: String? 14 | let thin: String? 15 | let light: String? 16 | let regular: String 17 | let medium: String? 18 | let semibold: String 19 | let bold: String? 20 | let heavy: String? 21 | let black: String? 22 | 23 | /// Init configuration names struct 24 | /// 25 | /// `regular` and `semibold` are required because Apple default implementation relays on those weights, others are optional. 26 | public init(ultraLight: String? = nil, thin: String? = nil, light: String? = nil, regular: String, medium: String? = nil, semibold: String, bold: String? = nil, heavy: String? = nil, black: String? = nil) { 27 | 28 | self.ultraLight = ultraLight 29 | self.thin = thin 30 | self.light = light 31 | self.regular = regular 32 | self.medium = medium 33 | self.semibold = semibold 34 | self.bold = bold 35 | self.heavy = heavy 36 | self.black = black 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Sources/CustomDynamicType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CustomDynamicType.swift 3 | // CustomDynamicType 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import UIKit 9 | 10 | /// Static struct to be used to initialize library 11 | public struct CustomDynamicType { 12 | 13 | /// Setup library before using UILabel or Font method, tipically in your AppDelegate's `application(_:didFinishLaunchingWithOptions:)` method 14 | /// 15 | /// Parameters 16 | /// - names: ``CustomDynamicFontNames`` required to setup library with correct font names 17 | public static func setup(with names: CustomDynamicFontNames) { 18 | CustomDynamicType_internal.shared.names = names 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Sources/Font+CustomDynamicType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Font+CustomDynamicType.swift 3 | // CustomDynamicType 4 | // 5 | // Created by Giuseppe Travasoni on 01/12/23. 6 | // 7 | 8 | import SwiftUI 9 | import UIKit 10 | 11 | public extension Font { 12 | 13 | ///Get the desired font style. 14 | /// 15 | ///Parameters: 16 | ///- style: any possible `Font.TextStyle` system style (`.largeTitle`, `.title`, `.title2`, `.title3`, `.headline`, `.subheadline`, `.body`, `.callout`, `.footnote`, `.caption`, `.caption2`) 17 | ///- overrideWeight: (optional) support any variant of `Font.Weight` (`ultraLight`, `thin`, `light`, `regular`, `medium`, `semibold`, `bold`, `heavy`, `black`). Remember that you need to setup the library with corrisponding font name otherwise it will fallback on the regular one. 18 | static func font(style: Font.TextStyle, overrideWeight: Font.Weight? = nil) -> Font { 19 | let size = UIFont.preferredFont(forTextStyle: style.UIKitStyle).pointSize 20 | return Font.custom(overrideWeight?.UIKitWeight.name ?? style.UIKitStyle.name, size: size, relativeTo: style) 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Sources/Internal/CustomDynamicType_internal.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CustomDynamicType_internal.swift 3 | // CustomDynamicType 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import Foundation 9 | 10 | internal class CustomDynamicType_internal { 11 | static let shared = CustomDynamicType_internal() 12 | var names: CustomDynamicFontNames? 13 | } 14 | -------------------------------------------------------------------------------- /Sources/Internal/Font.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Font.swift 3 | // CustomDynamicType 4 | // 5 | // Created by Giuseppe Travasoni on 01/12/23. 6 | // 7 | 8 | import SwiftUI 9 | import UIKit 10 | 11 | extension Font.TextStyle { 12 | 13 | var UIKitStyle: UIFont.TextStyle { 14 | switch self { 15 | case .largeTitle: return .largeTitle 16 | case .title: return .title1 17 | case .title2: return .title2 18 | case .title3: return .title2 19 | case .headline: return .headline 20 | case .subheadline: return .subheadline 21 | case .body: return .body 22 | case .callout: return .callout 23 | case .footnote: return .footnote 24 | case .caption: return .caption1 25 | case .caption2: return .caption2 26 | default: return .body 27 | } 28 | } 29 | } 30 | 31 | extension Font.Weight { 32 | 33 | var UIKitWeight: UIFont.Weight { 34 | switch self { 35 | case .ultraLight: return .ultraLight 36 | case .thin: return .thin 37 | case .light: return .thin 38 | case .regular: return .regular 39 | case .medium: return .medium 40 | case .semibold: return .semibold 41 | case .bold: return .bold 42 | case .heavy: return .heavy 43 | case .black: return .black 44 | default: return .regular 45 | } 46 | } 47 | 48 | } 49 | 50 | -------------------------------------------------------------------------------- /Sources/Internal/UIFont.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIFont.swift 3 | // CustomDynamicType 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import UIKit 9 | 10 | extension UIFont.TextStyle { 11 | 12 | var name: String { 13 | let font = UIFont.preferredFont(forTextStyle: self) 14 | return font.weight.name ?? CustomDynamicType_internal.shared.names?.regular ?? font.fontName 15 | } 16 | } 17 | 18 | extension UIFont.Weight { 19 | 20 | var name: String? { 21 | switch self { 22 | case .ultraLight: 23 | return CustomDynamicType_internal.shared.names?.ultraLight 24 | case .thin: 25 | return CustomDynamicType_internal.shared.names?.thin 26 | case .light: 27 | return CustomDynamicType_internal.shared.names?.light 28 | case .regular: 29 | return CustomDynamicType_internal.shared.names?.regular 30 | case .medium: 31 | return CustomDynamicType_internal.shared.names?.medium 32 | case .semibold: 33 | return CustomDynamicType_internal.shared.names?.semibold 34 | case .bold: 35 | return CustomDynamicType_internal.shared.names?.bold 36 | case .heavy: 37 | return CustomDynamicType_internal.shared.names?.heavy 38 | case .black: 39 | return CustomDynamicType_internal.shared.names?.black 40 | default: 41 | return nil 42 | } 43 | } 44 | } 45 | 46 | 47 | extension UIFont { 48 | 49 | var weight: UIFont.Weight { 50 | guard let attributes = fontDescriptor.object(forKey: .traits) as? NSDictionary, 51 | let weight = (attributes[UIFontDescriptor.TraitKey.weight] as? NSNumber)?.floatValue else { 52 | return UIFont.Weight(rawValue: UIFont.Weight.regular.rawValue) 53 | } 54 | return UIFont.Weight(rawValue: CGFloat(weight)) 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Sources/UIFont+CustomDynamicType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIFont+CustomDynamicType.swift 3 | // CustomDynamicType 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import UIKit 9 | 10 | public extension UIFont { 11 | 12 | ///Get the desired font style. 13 | /// 14 | ///Parameters: 15 | ///- style: any possible `UIFont.TextStyle` system style (`.largeTitle`, `.title1`, `.title2`, `.title3`, `.headline`, `.subheadline`, `.body`, `.callout`, `.footnote`, `.caption1`, `.caption2`) 16 | ///- overrideWeight: (optional) support any variant of `UIFont.Weight` (`ultraLight`, `thin`, `light`, `regular`, `medium`, `semibold`, `bold`, `heavy`, `black`). Remember that you need to setup the library with corrisponding font name otherwise it will fallback on the regular one. 17 | static func font(style: UIFont.TextStyle, overrideWeight: UIFont.Weight? = nil) -> UIFont { 18 | let size = UIFont.preferredFont(forTextStyle: style).pointSize 19 | let font = UIFont(name: overrideWeight?.name ?? style.name, 20 | size: size) ?? UIFont.systemFont(ofSize: size) 21 | return UIFontMetrics(forTextStyle: style).scaledFont(for: font) 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Sources/UILabel+CustomDynamicType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UILabel+CustomDynamicType.swift 3 | // CustomDynamicType 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import UIKit 9 | 10 | public extension UILabel { 11 | 12 | ///Apply the desired font style to each UILabel. 13 | /// 14 | ///Parameters: 15 | ///- style: any possible `UIFont.TextStyle` system style (`.largeTitle`, `.title1`, `.title2`, `.title3`, `.headline`, `.subheadline`, `.body`, `.callout`, `.footnote`, `.caption1`, `.caption2`) 16 | ///- overrideWeight: (optional) support any variant of `UIFont.Weight` (`ultraLight`, `thin`, `light`, `regular`, `medium`, `semibold`, `bold`, `heavy`, `black`). Remember that you need to setup the library with corrisponding font name otherwise it will fallback on the regular one. 17 | func setFont(style: UIFont.TextStyle, overrideWeight: UIFont.Weight? = nil) { 18 | self.font = UIFont.font(style: style, overrideWeight: overrideWeight) 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /SwiftUIExample/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SwiftUIExample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /SwiftUIExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SwiftUIExample/ContentView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContentView.swift 3 | // SwiftUIExample 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import SwiftUI 9 | import CustomDynamicType 10 | 11 | struct ContentView: View { 12 | var body: some View { 13 | ScrollView { 14 | VStack(alignment: .leading, spacing: 12.0) { 15 | Text("There is no strife, no prejudice, no national conflict in outer space as yet.") 16 | .font(Font.font(style: .largeTitle, overrideWeight: .bold)) 17 | Text("Its hazards are hostile to us all.") 18 | .font(Font.font(style: .headline)) 19 | Text("Its conquest deserves the best of all mankind, and its opportunity for peaceful cooperation many never come again.") 20 | .font(Font.font(style: .title)) 21 | Text("But why, some say, the moon? Why choose this as our goal?") 22 | .font(Font.font(style: .footnote)) 23 | }.padding() 24 | } 25 | } 26 | } 27 | 28 | #Preview { 29 | ContentView() 30 | } 31 | -------------------------------------------------------------------------------- /SwiftUIExample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIAppFonts 6 | 7 | NewYorkMedium-Bold.otf 8 | NewYorkMedium-Medium.otf 9 | NewYorkMedium-Regular.otf 10 | NewYorkMedium-Semibold.otf 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /SwiftUIExample/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SwiftUIExample/SwiftUIExampleApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SwiftUIExampleApp.swift 3 | // SwiftUIExample 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import SwiftUI 9 | import CustomDynamicType 10 | 11 | @main 12 | struct SwiftUIExampleApp: App { 13 | @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate 14 | var body: some Scene { 15 | WindowGroup { 16 | ContentView() 17 | } 18 | } 19 | } 20 | 21 | class AppDelegate: NSObject, UIApplicationDelegate { 22 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { 23 | let fontNames = CustomDynamicFontNames(regular: "NewYorkMedium-Regular", 24 | medium: "NewYorkMedium-Medium", 25 | semibold: "NewYorkMedium-Semibold", 26 | bold: "NewYorkMedium-Bold") 27 | CustomDynamicType.setup(with: fontNames) 28 | 29 | return true 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Tests/CustomDynamicTypeTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CustomDynamicTypeTests.swift 3 | // CustomDynamicTypeTests 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import XCTest 9 | @testable import CustomDynamicType 10 | 11 | final class CustomDynamicTypeTests: XCTestCase { 12 | 13 | override func setUpWithError() throws { 14 | let fontNames = CustomDynamicFontNames(regular: "NewYorkMedium-Regular", 15 | medium: "NewYorkMedium-Medium", 16 | semibold: "NewYorkMedium-Semibold", 17 | bold: "NewYorkMedium-Bold") 18 | CustomDynamicType.setup(with: fontNames) 19 | } 20 | 21 | func testSetup() throws { 22 | XCTAssert(CustomDynamicType_internal.shared.names?.regular == "NewYorkMedium-Regular") 23 | XCTAssert(CustomDynamicType_internal.shared.names?.medium == "NewYorkMedium-Medium") 24 | XCTAssert(CustomDynamicType_internal.shared.names?.semibold == "NewYorkMedium-Semibold") 25 | XCTAssert(CustomDynamicType_internal.shared.names?.bold == "NewYorkMedium-Bold") 26 | } 27 | 28 | func testWeightNames() throws { 29 | XCTAssert(UIFont.Weight.regular.name == "NewYorkMedium-Regular") 30 | XCTAssert(UIFont.Weight.medium.name == "NewYorkMedium-Medium") 31 | XCTAssert(UIFont.Weight.semibold.name == "NewYorkMedium-Semibold") 32 | XCTAssert(UIFont.Weight.bold.name == "NewYorkMedium-Bold") 33 | XCTAssertNil(UIFont.Weight.ultraLight.name) 34 | XCTAssertNil(UIFont.Weight.thin.name) 35 | XCTAssertNil(UIFont.Weight.light.name) 36 | XCTAssertNil(UIFont.Weight.heavy.name) 37 | XCTAssertNil(UIFont.Weight.black.name) 38 | XCTAssertNil(UIFont.Weight(rawValue: -1).name) 39 | } 40 | 41 | func testTextSyleName() throws { 42 | XCTAssert(UIFont.TextStyle.body.name == "NewYorkMedium-Regular") 43 | XCTAssert(UIFont.TextStyle.largeTitle.name == "NewYorkMedium-Regular") 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /UIKitExample/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // UIKitExample 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import UIKit 9 | import CustomDynamicType 10 | 11 | @main 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 15 | 16 | let fontNames = CustomDynamicFontNames(regular: "NewYorkMedium-Regular", 17 | medium: "NewYorkMedium-Medium", 18 | semibold: "NewYorkMedium-Semibold", 19 | bold: "NewYorkMedium-Bold") 20 | CustomDynamicType.setup(with: fontNames) 21 | 22 | return true 23 | } 24 | 25 | // MARK: UISceneSession Lifecycle 26 | 27 | func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { 28 | // Called when a new scene session is being created. 29 | // Use this method to select a configuration to create the new scene with. 30 | return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) 31 | } 32 | 33 | func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { 34 | // Called when the user discards a scene session. 35 | // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. 36 | // Use this method to release any resources that were specific to the discarded scenes, as they will not return. 37 | } 38 | 39 | 40 | } 41 | 42 | -------------------------------------------------------------------------------- /UIKitExample/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /UIKitExample/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "platform" : "ios", 6 | "size" : "1024x1024" 7 | } 8 | ], 9 | "info" : { 10 | "author" : "xcode", 11 | "version" : 1 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /UIKitExample/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /UIKitExample/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /UIKitExample/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 28 | 34 | 40 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /UIKitExample/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIAppFonts 6 | 7 | NewYorkMedium-Bold.otf 8 | NewYorkMedium-Medium.otf 9 | NewYorkMedium-Regular.otf 10 | NewYorkMedium-Semibold.otf 11 | 12 | UIApplicationSceneManifest 13 | 14 | UIApplicationSupportsMultipleScenes 15 | 16 | UISceneConfigurations 17 | 18 | UIWindowSceneSessionRoleApplication 19 | 20 | 21 | UISceneConfigurationName 22 | Default Configuration 23 | UISceneDelegateClassName 24 | $(PRODUCT_MODULE_NAME).SceneDelegate 25 | UISceneStoryboardFile 26 | Main 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /UIKitExample/SceneDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.swift 3 | // UIKitExample 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import UIKit 9 | 10 | class SceneDelegate: UIResponder, UIWindowSceneDelegate { 11 | 12 | var window: UIWindow? 13 | 14 | 15 | func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { 16 | // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. 17 | // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. 18 | // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). 19 | guard let _ = (scene as? UIWindowScene) else { return } 20 | } 21 | 22 | func sceneDidDisconnect(_ scene: UIScene) { 23 | // Called as the scene is being released by the system. 24 | // This occurs shortly after the scene enters the background, or when its session is discarded. 25 | // Release any resources associated with this scene that can be re-created the next time the scene connects. 26 | // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). 27 | } 28 | 29 | func sceneDidBecomeActive(_ scene: UIScene) { 30 | // Called when the scene has moved from an inactive state to an active state. 31 | // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. 32 | } 33 | 34 | func sceneWillResignActive(_ scene: UIScene) { 35 | // Called when the scene will move from an active state to an inactive state. 36 | // This may occur due to temporary interruptions (ex. an incoming phone call). 37 | } 38 | 39 | func sceneWillEnterForeground(_ scene: UIScene) { 40 | // Called as the scene transitions from the background to the foreground. 41 | // Use this method to undo the changes made on entering the background. 42 | } 43 | 44 | func sceneDidEnterBackground(_ scene: UIScene) { 45 | // Called as the scene transitions from the foreground to the background. 46 | // Use this method to save data, release shared resources, and store enough scene-specific state information 47 | // to restore the scene back to its current state. 48 | } 49 | 50 | 51 | } 52 | 53 | -------------------------------------------------------------------------------- /UIKitExample/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // UIKitExample 4 | // 5 | // Created by Giuseppe Travasoni on 30/11/23. 6 | // 7 | 8 | import UIKit 9 | import CustomDynamicType 10 | 11 | class ViewController: UIViewController { 12 | 13 | @IBOutlet weak var label1: UILabel! 14 | @IBOutlet weak var label2: UILabel! 15 | @IBOutlet weak var label3: UILabel! 16 | @IBOutlet weak var label4: UILabel! 17 | 18 | override func viewDidLoad() { 19 | super.viewDidLoad() 20 | 21 | label1.setFont(style: .largeTitle) 22 | label1.text = "There is no strife, no prejudice, no national conflict in outer space as yet." 23 | label1.numberOfLines = 0 24 | 25 | label2.setFont(style: .headline) 26 | label2.text = "Its hazards are hostile to us all." 27 | label2.numberOfLines = 0 28 | 29 | label3.setFont(style: .title2) 30 | label3.text = "Its conquest deserves the best of all mankind, and its opportunity for peaceful cooperation many never come again." 31 | label3.numberOfLines = 0 32 | 33 | label4.setFont(style: .body, overrideWeight: .bold) 34 | label4.text = "But why, some say, the moon? Why choose this as our goal?" 35 | label4.numberOfLines = 0 36 | 37 | } 38 | 39 | 40 | } 41 | 42 | -------------------------------------------------------------------------------- /docs/css/chunk-c0335d80.10a2f091.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */[data-v-20945666] .code-listing{background:var(--background,var(--color-code-background));color:var(--text,var(--color-code-plain));border-color:var(--colors-grid,var(--color-grid));border-width:var(--code-border-width,1px);border-style:var(--code-border-style,solid)}[data-v-20945666] .code-listing pre{padding:var(--code-block-style-elements-padding)}[data-v-20945666] .code-listing pre>code{font-size:.88235rem;line-height:1.66667;font-weight:400;font-family:var(--typography-html-font-mono,Menlo,monospace)}[data-v-20945666] *+.code-listing,[data-v-20945666] *+.endpoint-example,[data-v-20945666] *+.inline-image-container,[data-v-20945666] *+aside,[data-v-20945666] *+figure,[data-v-20945666] .code-listing+*,[data-v-20945666] .endpoint-example+*,[data-v-20945666] .inline-image-container+*,[data-v-20945666] aside+*,[data-v-20945666] figure+*{margin-top:var(--spacing-stacked-margin-xlarge)}[data-v-20945666] *+dl,[data-v-20945666] dl+*{margin-top:var(--spacing-stacked-margin-large)}[data-v-20945666] img{display:block;margin:auto;max-width:100%}[data-v-20945666] ol,[data-v-20945666] ol li:not(:first-child),[data-v-20945666] ul,[data-v-20945666] ul li:not(:first-child){margin-top:var(--spacing-stacked-margin-large)}@media only screen and (max-width:735px){[data-v-20945666] ol,[data-v-20945666] ul{margin-left:1.25rem}}[data-v-20945666] dt:not(:first-child){margin-top:var(--spacing-stacked-margin-large)}[data-v-20945666] dd{margin-left:2em}.badge[data-v-8d6893ae]{--badge-color:var(--color-badge-default);--badge-dark-color:var(--color-badge-dark-default);font-size:.70588rem;line-height:1.33333;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif);display:inline-block;padding:2px 10px;white-space:nowrap;background:none;border-radius:var(--badge-border-radius,calc(var(--border-radius, 4px) - 1px));border-style:var(--badge-border-style,solid);border-width:var(--badge-border-width,1px);margin-left:10px;color:var(--badge-color)}.theme-dark .badge[data-v-8d6893ae]{--badge-color:var(--badge-dark-color)}.badge-deprecated[data-v-8d6893ae]{--badge-color:var(--color-badge-deprecated);--badge-dark-color:var(--color-badge-dark-deprecated)}.badge-beta[data-v-8d6893ae]{--badge-color:var(--color-badge-beta);--badge-dark-color:var(--color-badge-dark-beta)}.topic-icon-wrapper[data-v-03cf3183]{display:flex;align-items:center;justify-content:center;height:1.47059rem;flex:0 0 1.294rem;width:1.294rem;margin-right:1rem}.topic-icon[data-v-03cf3183]{height:.88235rem;transform:scale(1);-webkit-transform:scale(1);overflow:visible}.topic-icon[data-v-03cf3183] img{margin:0;display:block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.topic-icon.curly-brackets-icon[data-v-03cf3183]{height:1rem}.token-method[data-v-3fd63d6c]{font-weight:700}.token-keyword[data-v-3fd63d6c]{color:var(--syntax-keyword,var(--color-syntax-keywords))}.token-number[data-v-3fd63d6c]{color:var(--syntax-number,var(--color-syntax-numbers))}.token-string[data-v-3fd63d6c]{color:var(--syntax-string,var(--color-syntax-strings))}.attribute-link[data-v-3fd63d6c],.token-attribute[data-v-3fd63d6c]{color:var(--syntax-attribute,var(--color-syntax-keywords))}.token-internalParam[data-v-3fd63d6c]{color:var(--color-syntax-param-internal-name)}.type-identifier-link[data-v-3fd63d6c]{color:var(--syntax-type,var(--color-syntax-other-type-names))}.token-removed[data-v-3fd63d6c]{background-color:var(--color-highlight-red)}.token-added[data-v-3fd63d6c]{background-color:var(--color-highlight-green)}.decorator[data-v-06ec7395],.label[data-v-06ec7395]{color:var(--colors-secondary-label,var(--color-secondary-label))}.label[data-v-06ec7395]{font-size:1rem;line-height:1.47059;font-weight:400;font-family:var(--typography-html-font,"Helvetica Neue","Helvetica","Arial",sans-serif)}.empty-token[data-v-06ec7395]{font-size:0}.empty-token[data-v-06ec7395]:after{content:"\00a0";font-size:1rem}.conditional-constraints[data-v-1548fd90] code{color:var(--colors-secondary-label,var(--color-secondary-label))}.abstract[data-v-52205924],.link-block[data-v-52205924] .badge{margin-left:2.294rem}.link-block .badge+.badge[data-v-52205924]{margin-left:1rem}.link[data-v-52205924]{display:flex}.link-block .badge[data-v-52205924]{margin-top:.5rem}.link-block.has-inline-element[data-v-52205924]{display:flex;align-items:flex-start;flex-flow:row wrap}.link-block.has-inline-element .badge[data-v-52205924]{margin-left:1rem;margin-top:0}.link-block .has-adjacent-elements[data-v-52205924]{padding-top:5px;padding-bottom:5px;display:inline-flex}.link-block[data-v-52205924],.link[data-v-52205924]{box-sizing:inherit}.link-block.changed[data-v-52205924],.link.changed[data-v-52205924]{padding-right:1rem;padding-left:2.17647rem;padding-top:8px;padding-bottom:8px;display:inline-flex;width:100%;box-sizing:border-box}.link-block.changed.changed[data-v-52205924],.link.changed.changed[data-v-52205924]{padding-right:1rem}@media only screen and (max-width:735px){.link-block.changed[data-v-52205924],.link.changed[data-v-52205924]{padding-left:0;padding-right:0}.link-block.changed.changed[data-v-52205924],.link.changed.changed[data-v-52205924]{padding-right:17px;padding-left:2.17647rem}}@media only screen and (max-width:735px){.link-block.changed[data-v-52205924],.link.changed[data-v-52205924]{padding-left:0;padding-right:0}}.abstract .topic-required[data-v-52205924]:not(:first-child){margin-top:4px}.topic-required[data-v-52205924]{font-size:.8em}.deprecated[data-v-52205924]{text-decoration:line-through}.conditional-constraints[data-v-52205924]{font-size:.82353rem;margin-top:4px} -------------------------------------------------------------------------------- /docs/css/documentation-topic~topic.b6287bcf.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */.generic-modal[data-v-795f7b59]{position:fixed;top:0;left:0;right:0;bottom:0;margin:0;z-index:11000;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;background:none;overflow:auto}.modal-fullscreen[data-v-795f7b59]{align-items:stretch}.modal-fullscreen .container[data-v-795f7b59]{margin:0;flex:1;width:100%;height:100%;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.modal-standard[data-v-795f7b59]{padding:20px}.modal-standard .container[data-v-795f7b59]{padding:60px;border-radius:var(--border-radius,4px)}@media screen{[data-color-scheme=dark] .modal-standard .container[data-v-795f7b59]{background:#1d1d1f}}@media screen and (prefers-color-scheme:dark){[data-color-scheme=auto] .modal-standard .container[data-v-795f7b59]{background:#1d1d1f}}@media only screen and (max-width:735px){.modal-standard[data-v-795f7b59]{padding:0;align-items:stretch}.modal-standard .container[data-v-795f7b59]{margin:20px 0 0;padding:50px 30px;flex:1;width:100%;border-bottom-left-radius:0;border-bottom-right-radius:0}}.backdrop[data-v-795f7b59]{overflow:auto;background:var(--backdrop-background,rgba(0,0,0,.4));-webkit-overflow-scrolling:touch;width:100%;height:100%;position:fixed}.container[data-v-795f7b59]{margin-left:auto;margin-right:auto;width:980px;background:var(--colors-generic-modal-background,var(--color-generic-modal-background));z-index:1;position:relative;overflow:auto;max-width:100%}@media only screen and (max-width:1250px){.container[data-v-795f7b59]{width:692px}}@media only screen and (max-width:735px){.container[data-v-795f7b59]{width:87.5%}}@media only screen and (max-width:320px){.container[data-v-795f7b59]{width:215px}}.close[data-v-795f7b59]{position:absolute;z-index:9999;top:22px;left:22px;width:17px;height:17px;color:#666;cursor:pointer;background:none;border:0;display:flex;align-items:center}.close .close-icon[data-v-795f7b59]{fill:currentColor;width:100%;height:100%}.theme-dark .container[data-v-795f7b59]{background:#000}.theme-dark .container .close[data-v-795f7b59]{color:#b0b0b0}.theme-code .container[data-v-795f7b59]{background-color:var(--code-background,var(--color-code-background))} -------------------------------------------------------------------------------- /docs/data/documentation/customdynamictype.json: -------------------------------------------------------------------------------- 1 | {"schemaVersion":{"major":0,"minor":3,"patch":0},"hierarchy":{"paths":[[]]},"sections":[],"variants":[{"paths":["\/documentation\/customdynamictype"],"traits":[{"interfaceLanguage":"swift"}]}],"kind":"symbol","topicSections":[{"title":"Structures","identifiers":["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicFontNames","doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicType"]},{"title":"Extended Modules","identifiers":["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI","doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit"]}],"identifier":{"url":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","interfaceLanguage":"swift"},"metadata":{"modules":[{"name":"CustomDynamicType"}],"title":"CustomDynamicType","roleHeading":"Framework","symbolKind":"module","externalID":"CustomDynamicType","role":"collection"},"references":{"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","title":"CustomDynamicType","type":"topic","kind":"symbol","url":"\/documentation\/customdynamictype","role":"collection","abstract":[]},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/UIKit":{"kind":"symbol","url":"\/documentation\/customdynamictype\/uikit","type":"topic","title":"UIKit","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit","abstract":[],"role":"collection"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/SwiftUI":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI","abstract":[],"title":"SwiftUI","role":"collection","url":"\/documentation\/customdynamictype\/swiftui","type":"topic","kind":"symbol"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/CustomDynamicFontNames":{"title":"CustomDynamicFontNames","type":"topic","url":"\/documentation\/customdynamictype\/customdynamicfontnames","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicFontNames","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"CustomDynamicFontNames"}],"kind":"symbol","abstract":[{"text":"Configuration struct that contains font names for desired supported weight, remember to register font files into your Info.plist file","type":"text"}],"navigatorTitle":[{"kind":"identifier","text":"CustomDynamicFontNames"}]},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/CustomDynamicType":{"abstract":[{"text":"Static struct to be used to initialize library","type":"text"}],"type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"text":" ","kind":"text"},{"text":"CustomDynamicType","kind":"identifier"}],"role":"symbol","navigatorTitle":[{"text":"CustomDynamicType","kind":"identifier"}],"title":"CustomDynamicType","kind":"symbol","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicType","url":"\/documentation\/customdynamictype\/customdynamictype"}}} -------------------------------------------------------------------------------- /docs/data/documentation/customdynamictype/customdynamicfontnames.json: -------------------------------------------------------------------------------- 1 | {"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicFontNames"},"variants":[{"paths":["\/documentation\/customdynamictype\/customdynamicfontnames"],"traits":[{"interfaceLanguage":"swift"}]}],"hierarchy":{"paths":[["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType"]]},"abstract":[{"text":"Configuration struct that contains font names for desired supported weight, remember to register font files into your Info.plist file","type":"text"}],"kind":"symbol","topicSections":[{"identifiers":["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicFontNames\/init(ultraLight:thin:light:regular:medium:semibold:bold:heavy:black:)"],"title":"Initializers"}],"primaryContentSections":[{"declarations":[{"languages":["swift"],"tokens":[{"kind":"keyword","text":"struct"},{"text":" ","kind":"text"},{"text":"CustomDynamicFontNames","kind":"identifier"}],"platforms":["iOS"]}],"kind":"declarations"}],"schemaVersion":{"minor":3,"patch":0,"major":0},"sections":[],"metadata":{"roleHeading":"Structure","role":"symbol","navigatorTitle":[{"kind":"identifier","text":"CustomDynamicFontNames"}],"externalID":"s:17CustomDynamicType0aB9FontNamesV","title":"CustomDynamicFontNames","fragments":[{"kind":"keyword","text":"struct"},{"text":" ","kind":"text"},{"text":"CustomDynamicFontNames","kind":"identifier"}],"symbolKind":"struct","modules":[{"name":"CustomDynamicType"}]},"references":{"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/CustomDynamicFontNames/init(ultraLight:thin:light:regular:medium:semibold:bold:heavy:black:)":{"url":"\/documentation\/customdynamictype\/customdynamicfontnames\/init(ultralight:thin:light:regular:medium:semibold:bold:heavy:black:)","title":"init(ultraLight:thin:light:regular:medium:semibold:bold:heavy:black:)","fragments":[{"text":"init","kind":"identifier"},{"text":"(","kind":"text"},{"text":"ultraLight","kind":"externalParam"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"thin"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"text":"?, ","kind":"text"},{"text":"light","kind":"externalParam"},{"kind":"text","text":": "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"?, ","kind":"text"},{"kind":"externalParam","text":"regular"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"String","preciseIdentifier":"s:SS"},{"text":", ","kind":"text"},{"kind":"externalParam","text":"medium"},{"kind":"text","text":": "},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"kind":"text","text":"?, "},{"text":"semibold","kind":"externalParam"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":", ","kind":"text"},{"kind":"externalParam","text":"bold"},{"text":": ","kind":"text"},{"text":"String","kind":"typeIdentifier","preciseIdentifier":"s:SS"},{"text":"?, ","kind":"text"},{"text":"heavy","kind":"externalParam"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"kind":"text","text":"?, "},{"kind":"externalParam","text":"black"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:SS","text":"String","kind":"typeIdentifier"},{"text":"?)","kind":"text"}],"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicFontNames\/init(ultraLight:thin:light:regular:medium:semibold:bold:heavy:black:)","abstract":[{"text":"Init configuration names struct","type":"text"}],"type":"topic","role":"symbol","kind":"symbol"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType":{"title":"CustomDynamicType","type":"topic","url":"\/documentation\/customdynamictype","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","role":"collection","kind":"symbol","abstract":[]},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/CustomDynamicFontNames":{"title":"CustomDynamicFontNames","type":"topic","url":"\/documentation\/customdynamictype\/customdynamicfontnames","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicFontNames","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"CustomDynamicFontNames"}],"kind":"symbol","abstract":[{"text":"Configuration struct that contains font names for desired supported weight, remember to register font files into your Info.plist file","type":"text"}],"navigatorTitle":[{"kind":"identifier","text":"CustomDynamicFontNames"}]}}} -------------------------------------------------------------------------------- /docs/data/documentation/customdynamictype/customdynamictype.json: -------------------------------------------------------------------------------- 1 | {"kind":"symbol","metadata":{"symbolKind":"struct","roleHeading":"Structure","externalID":"s:17CustomDynamicTypeAAV","navigatorTitle":[{"kind":"identifier","text":"CustomDynamicType"}],"title":"CustomDynamicType","fragments":[{"text":"struct","kind":"keyword"},{"text":" ","kind":"text"},{"text":"CustomDynamicType","kind":"identifier"}],"role":"symbol","modules":[{"name":"CustomDynamicType"}]},"identifier":{"url":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicType","interfaceLanguage":"swift"},"hierarchy":{"paths":[["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType"]]},"abstract":[{"text":"Static struct to be used to initialize library","type":"text"}],"topicSections":[{"title":"Type Methods","identifiers":["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicType\/setup(with:)"]}],"primaryContentSections":[{"declarations":[{"tokens":[{"text":"struct","kind":"keyword"},{"kind":"text","text":" "},{"text":"CustomDynamicType","kind":"identifier"}],"platforms":["iOS"],"languages":["swift"]}],"kind":"declarations"}],"schemaVersion":{"major":0,"minor":3,"patch":0},"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/customdynamictype\/customdynamictype"]}],"sections":[],"references":{"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","abstract":[],"kind":"symbol","type":"topic","url":"\/documentation\/customdynamictype","role":"collection","title":"CustomDynamicType"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/CustomDynamicType":{"abstract":[{"text":"Static struct to be used to initialize library","type":"text"}],"type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"text":" ","kind":"text"},{"text":"CustomDynamicType","kind":"identifier"}],"role":"symbol","navigatorTitle":[{"text":"CustomDynamicType","kind":"identifier"}],"title":"CustomDynamicType","kind":"symbol","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicType","url":"\/documentation\/customdynamictype\/customdynamictype"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/CustomDynamicType/setup(with:)":{"kind":"symbol","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"kind":"text","text":" "},{"text":"setup","kind":"identifier"},{"kind":"text","text":"("},{"text":"with","kind":"externalParam"},{"text":": ","kind":"text"},{"text":"CustomDynamicFontNames","kind":"typeIdentifier","preciseIdentifier":"s:17CustomDynamicType0aB9FontNamesV"},{"kind":"text","text":")"}],"abstract":[{"type":"text","text":"Setup library before using UILabel or Font method, tipically in your AppDelegate’s "},{"code":"application(_:didFinishLaunchingWithOptions:)","type":"codeVoice"},{"type":"text","text":" method"}],"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicType\/setup(with:)","title":"setup(with:)","type":"topic","url":"\/documentation\/customdynamictype\/customdynamictype\/setup(with:)","role":"symbol"}}} -------------------------------------------------------------------------------- /docs/data/documentation/customdynamictype/customdynamictype/setup(with:).json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"platforms":["iOS"],"tokens":[{"kind":"keyword","text":"static"},{"text":" ","kind":"text"},{"text":"func","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"setup"},{"text":"(","kind":"text"},{"kind":"externalParam","text":"with"},{"kind":"text","text":" "},{"text":"names","kind":"internalParam"},{"kind":"text","text":": "},{"preciseIdentifier":"s:17CustomDynamicType0aB9FontNamesV","text":"CustomDynamicFontNames","kind":"typeIdentifier","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicFontNames"},{"text":")","kind":"text"}],"languages":["swift"]}]},{"kind":"content","content":[{"type":"heading","level":2,"text":"Discussion","anchor":"discussion"},{"type":"paragraph","inlineContent":[{"text":"Parameters","type":"text"}]},{"items":[{"content":[{"type":"paragraph","inlineContent":[{"type":"text","text":"names: "},{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicFontNames","type":"reference","isActive":true},{"type":"text","text":" required to setup library with correct font names"}]}]}],"type":"unorderedList"}]}],"metadata":{"externalID":"s:17CustomDynamicTypeAAV5setup4withyAA0aB9FontNamesV_tFZ","symbolKind":"method","role":"symbol","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"text":"setup","kind":"identifier"},{"text":"(","kind":"text"},{"kind":"externalParam","text":"with"},{"text":": ","kind":"text"},{"preciseIdentifier":"s:17CustomDynamicType0aB9FontNamesV","kind":"typeIdentifier","text":"CustomDynamicFontNames"},{"text":")","kind":"text"}],"title":"setup(with:)","roleHeading":"Type Method","modules":[{"name":"CustomDynamicType"}]},"variants":[{"paths":["\/documentation\/customdynamictype\/customdynamictype\/setup(with:)"],"traits":[{"interfaceLanguage":"swift"}]}],"sections":[],"schemaVersion":{"major":0,"minor":3,"patch":0},"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicType\/setup(with:)"},"kind":"symbol","hierarchy":{"paths":[["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicType"]]},"abstract":[{"type":"text","text":"Setup library before using UILabel or Font method, tipically in your AppDelegate’s "},{"code":"application(_:didFinishLaunchingWithOptions:)","type":"codeVoice"},{"type":"text","text":" method"}],"references":{"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","title":"CustomDynamicType","type":"topic","kind":"symbol","url":"\/documentation\/customdynamictype","role":"collection","abstract":[]},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/CustomDynamicType":{"abstract":[{"text":"Static struct to be used to initialize library","type":"text"}],"type":"topic","fragments":[{"kind":"keyword","text":"struct"},{"text":" ","kind":"text"},{"text":"CustomDynamicType","kind":"identifier"}],"role":"symbol","navigatorTitle":[{"text":"CustomDynamicType","kind":"identifier"}],"title":"CustomDynamicType","kind":"symbol","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicType","url":"\/documentation\/customdynamictype\/customdynamictype"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/CustomDynamicType/setup(with:)":{"type":"topic","kind":"symbol","url":"\/documentation\/customdynamictype\/customdynamictype\/setup(with:)","role":"symbol","fragments":[{"text":"static","kind":"keyword"},{"kind":"text","text":" "},{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"setup"},{"text":"(","kind":"text"},{"kind":"externalParam","text":"with"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"s:17CustomDynamicType0aB9FontNamesV","text":"CustomDynamicFontNames"},{"text":")","kind":"text"}],"abstract":[{"type":"text","text":"Setup library before using UILabel or Font method, tipically in your AppDelegate’s "},{"type":"codeVoice","code":"application(_:didFinishLaunchingWithOptions:)"},{"type":"text","text":" method"}],"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicType\/setup(with:)","title":"setup(with:)"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/CustomDynamicFontNames":{"title":"CustomDynamicFontNames","type":"topic","url":"\/documentation\/customdynamictype\/customdynamicfontnames","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/CustomDynamicFontNames","role":"symbol","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"CustomDynamicFontNames"}],"kind":"symbol","abstract":[{"text":"Configuration struct that contains font names for desired supported weight, remember to register font files into your Info.plist file","type":"text"}],"navigatorTitle":[{"kind":"identifier","text":"CustomDynamicFontNames"}]}}} -------------------------------------------------------------------------------- /docs/data/documentation/customdynamictype/swiftui.json: -------------------------------------------------------------------------------- 1 | {"identifier":{"url":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI","interfaceLanguage":"swift"},"sections":[],"topicSections":[{"identifiers":["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI\/Font"],"title":"Extended Structures"}],"hierarchy":{"paths":[["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType"]]},"metadata":{"title":"SwiftUI","role":"collection","externalID":"s:m:s:e:s:7SwiftUI4FontV17CustomDynamicTypeE4font5style14overrideWeightA2C9TextStyleO_AC0J0VSgtFZ","symbolKind":"extension","roleHeading":"Extended Module","modules":[{"name":"CustomDynamicType"}]},"schemaVersion":{"minor":3,"patch":0,"major":0},"kind":"symbol","variants":[{"paths":["\/documentation\/customdynamictype\/swiftui"],"traits":[{"interfaceLanguage":"swift"}]}],"references":{"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/SwiftUI/Font":{"navigatorTitle":[{"kind":"identifier","text":"Font"}],"abstract":[],"url":"\/documentation\/customdynamictype\/swiftui\/font","fragments":[{"kind":"keyword","text":"extension"},{"text":" ","kind":"text"},{"text":"Font","kind":"identifier","preciseIdentifier":"s:7SwiftUI4FontV"}],"role":"symbol","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI\/Font","title":"Font","type":"topic","kind":"symbol"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/SwiftUI":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI","abstract":[],"title":"SwiftUI","role":"collection","url":"\/documentation\/customdynamictype\/swiftui","type":"topic","kind":"symbol"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","title":"CustomDynamicType","type":"topic","kind":"symbol","url":"\/documentation\/customdynamictype","role":"collection","abstract":[]}}} -------------------------------------------------------------------------------- /docs/data/documentation/customdynamictype/swiftui/font.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"declarations":[{"platforms":["iOS"],"tokens":[{"kind":"keyword","text":"extension"},{"kind":"text","text":" "},{"text":"Font","preciseIdentifier":"s:7SwiftUI4FontV","kind":"typeIdentifier"}],"languages":["swift"]}],"kind":"declarations"}],"kind":"symbol","identifier":{"url":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI\/Font","interfaceLanguage":"swift"},"sections":[],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/customdynamictype\/swiftui\/font"]}],"hierarchy":{"paths":[["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI"]]},"topicSections":[{"identifiers":["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI\/Font\/font(style:overrideWeight:)"],"title":"Type Methods"}],"schemaVersion":{"patch":0,"major":0,"minor":3},"metadata":{"extendedModule":"SwiftUI","symbolKind":"extension","role":"symbol","roleHeading":"Extended Structure","navigatorTitle":[{"text":"Font","kind":"identifier"}],"fragments":[{"text":"extension","kind":"keyword"},{"text":" ","kind":"text"},{"preciseIdentifier":"s:7SwiftUI4FontV","text":"Font","kind":"identifier"}],"title":"Font","externalID":"s:e:s:7SwiftUI4FontV17CustomDynamicTypeE4font5style14overrideWeightA2C9TextStyleO_AC0J0VSgtFZ","modules":[{"name":"CustomDynamicType","relatedModules":["SwiftUI"]}]},"references":{"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/SwiftUI":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI","abstract":[],"title":"SwiftUI","role":"collection","url":"\/documentation\/customdynamictype\/swiftui","type":"topic","kind":"symbol"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/SwiftUI/Font/font(style:overrideWeight:)":{"title":"font(style:overrideWeight:)","fragments":[{"text":"static","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"text":"font","kind":"identifier"},{"kind":"text","text":"("},{"text":"style","kind":"externalParam"},{"kind":"text","text":": "},{"preciseIdentifier":"s:7SwiftUI4FontV","kind":"typeIdentifier","text":"Font"},{"text":".","kind":"text"},{"preciseIdentifier":"s:7SwiftUI4FontV9TextStyleO","kind":"typeIdentifier","text":"TextStyle"},{"kind":"text","text":", "},{"text":"overrideWeight","kind":"externalParam"},{"text":": ","kind":"text"},{"text":"Font","preciseIdentifier":"s:7SwiftUI4FontV","kind":"typeIdentifier"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"s:7SwiftUI4FontV6WeightV","text":"Weight"},{"text":"?) -> ","kind":"text"},{"text":"Font","preciseIdentifier":"s:7SwiftUI4FontV","kind":"typeIdentifier"}],"kind":"symbol","role":"symbol","type":"topic","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI\/Font\/font(style:overrideWeight:)","url":"\/documentation\/customdynamictype\/swiftui\/font\/font(style:overrideweight:)","abstract":[{"text":"Get the desired font style.","type":"text"}]},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/SwiftUI/Font":{"navigatorTitle":[{"kind":"identifier","text":"Font"}],"abstract":[],"url":"\/documentation\/customdynamictype\/swiftui\/font","fragments":[{"kind":"keyword","text":"extension"},{"text":" ","kind":"text"},{"text":"Font","kind":"identifier","preciseIdentifier":"s:7SwiftUI4FontV"}],"role":"symbol","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/SwiftUI\/Font","title":"Font","type":"topic","kind":"symbol"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","title":"CustomDynamicType","type":"topic","kind":"symbol","url":"\/documentation\/customdynamictype","role":"collection","abstract":[]}}} -------------------------------------------------------------------------------- /docs/data/documentation/customdynamictype/uikit.json: -------------------------------------------------------------------------------- 1 | {"identifier":{"url":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit","interfaceLanguage":"swift"},"sections":[],"kind":"symbol","hierarchy":{"paths":[["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType"]]},"schemaVersion":{"minor":3,"major":0,"patch":0},"metadata":{"roleHeading":"Extended Module","symbolKind":"extension","modules":[{"name":"CustomDynamicType"}],"role":"collection","externalID":"s:m:s:e:s:So6UIFontC17CustomDynamicTypeE4font5style14overrideWeightABSo0A9TextStylea_So0aH0aSgtFZ","title":"UIKit"},"topicSections":[{"identifiers":["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UIFont","doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UILabel"],"title":"Extended Classes"}],"variants":[{"traits":[{"interfaceLanguage":"swift"}],"paths":["\/documentation\/customdynamictype\/uikit"]}],"references":{"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/UIKit/UIFont":{"abstract":[],"title":"UIFont","role":"symbol","url":"\/documentation\/customdynamictype\/uikit\/uifont","type":"topic","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"UIFont"}],"fragments":[{"text":"extension","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","preciseIdentifier":"c:objc(cs)UIFont","text":"UIFont"}],"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UIFont"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/UIKit":{"kind":"symbol","url":"\/documentation\/customdynamictype\/uikit","type":"topic","title":"UIKit","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit","abstract":[],"role":"collection"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/UIKit/UILabel":{"abstract":[],"type":"topic","fragments":[{"text":"extension","kind":"keyword"},{"text":" ","kind":"text"},{"preciseIdentifier":"c:objc(cs)UILabel","text":"UILabel","kind":"identifier"}],"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"UILabel"}],"title":"UILabel","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UILabel","kind":"symbol","url":"\/documentation\/customdynamictype\/uikit\/uilabel"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","title":"CustomDynamicType","type":"topic","kind":"symbol","url":"\/documentation\/customdynamictype","role":"collection","abstract":[]}}} -------------------------------------------------------------------------------- /docs/data/documentation/customdynamictype/uikit/uifont.json: -------------------------------------------------------------------------------- 1 | {"identifier":{"url":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UIFont","interfaceLanguage":"swift"},"variants":[{"paths":["\/documentation\/customdynamictype\/uikit\/uifont"],"traits":[{"interfaceLanguage":"swift"}]}],"hierarchy":{"paths":[["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit"]]},"kind":"symbol","topicSections":[{"title":"Type Methods","identifiers":["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UIFont\/font(style:overrideWeight:)"]}],"primaryContentSections":[{"declarations":[{"tokens":[{"text":"extension","kind":"keyword"},{"text":" ","kind":"text"},{"text":"UIFont","kind":"typeIdentifier","preciseIdentifier":"c:objc(cs)UIFont"}],"languages":["swift"],"platforms":["iOS"]}],"kind":"declarations"}],"sections":[],"schemaVersion":{"major":0,"minor":3,"patch":0},"metadata":{"fragments":[{"kind":"keyword","text":"extension"},{"text":" ","kind":"text"},{"text":"UIFont","preciseIdentifier":"c:objc(cs)UIFont","kind":"identifier"}],"navigatorTitle":[{"kind":"identifier","text":"UIFont"}],"symbolKind":"extension","role":"symbol","title":"UIFont","externalID":"s:e:s:So6UIFontC17CustomDynamicTypeE4font5style14overrideWeightABSo0A9TextStylea_So0aH0aSgtFZ","extendedModule":"UIKit","roleHeading":"Extended Class","modules":[{"relatedModules":["UIKit"],"name":"CustomDynamicType"}]},"references":{"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/UIKit":{"kind":"symbol","url":"\/documentation\/customdynamictype\/uikit","type":"topic","title":"UIKit","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit","abstract":[],"role":"collection"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/UIKit/UIFont/font(style:overrideWeight:)":{"abstract":[{"type":"text","text":"Get the desired font style."}],"kind":"symbol","fragments":[{"text":"static","kind":"keyword"},{"kind":"text","text":" "},{"text":"func","kind":"keyword"},{"kind":"text","text":" "},{"kind":"identifier","text":"font"},{"text":"(","kind":"text"},{"text":"style","kind":"externalParam"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"UIFont","preciseIdentifier":"c:objc(cs)UIFont"},{"text":".","kind":"text"},{"kind":"typeIdentifier","preciseIdentifier":"c:@T@UIFontTextStyle","text":"TextStyle"},{"text":", ","kind":"text"},{"kind":"externalParam","text":"overrideWeight"},{"kind":"text","text":": "},{"kind":"typeIdentifier","preciseIdentifier":"c:objc(cs)UIFont","text":"UIFont"},{"kind":"text","text":"."},{"kind":"typeIdentifier","preciseIdentifier":"c:@T@UIFontWeight","text":"Weight"},{"text":"?) -> ","kind":"text"},{"text":"UIFont","kind":"typeIdentifier","preciseIdentifier":"c:objc(cs)UIFont"}],"role":"symbol","title":"font(style:overrideWeight:)","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UIFont\/font(style:overrideWeight:)","url":"\/documentation\/customdynamictype\/uikit\/uifont\/font(style:overrideweight:)","type":"topic"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/UIKit/UIFont":{"abstract":[],"title":"UIFont","role":"symbol","url":"\/documentation\/customdynamictype\/uikit\/uifont","type":"topic","kind":"symbol","navigatorTitle":[{"kind":"identifier","text":"UIFont"}],"fragments":[{"text":"extension","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","preciseIdentifier":"c:objc(cs)UIFont","text":"UIFont"}],"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UIFont"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","title":"CustomDynamicType","type":"topic","kind":"symbol","url":"\/documentation\/customdynamictype","role":"collection","abstract":[]}}} -------------------------------------------------------------------------------- /docs/data/documentation/customdynamictype/uikit/uilabel.json: -------------------------------------------------------------------------------- 1 | {"sections":[],"identifier":{"interfaceLanguage":"swift","url":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UILabel"},"hierarchy":{"paths":[["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit"]]},"variants":[{"paths":["\/documentation\/customdynamictype\/uikit\/uilabel"],"traits":[{"interfaceLanguage":"swift"}]}],"metadata":{"symbolKind":"extension","extendedModule":"UIKit","role":"symbol","modules":[{"name":"CustomDynamicType","relatedModules":["UIKit"]}],"title":"UILabel","roleHeading":"Extended Class","externalID":"s:e:s:So7UILabelC17CustomDynamicTypeE7setFont5style14overrideWeightySo15UIFontTextStylea_So0jI0aSgtF","fragments":[{"text":"extension","kind":"keyword"},{"text":" ","kind":"text"},{"preciseIdentifier":"c:objc(cs)UILabel","kind":"identifier","text":"UILabel"}],"navigatorTitle":[{"text":"UILabel","kind":"identifier"}]},"kind":"symbol","primaryContentSections":[{"declarations":[{"tokens":[{"kind":"keyword","text":"extension"},{"kind":"text","text":" "},{"preciseIdentifier":"c:objc(cs)UILabel","text":"UILabel","kind":"typeIdentifier"}],"platforms":["iOS"],"languages":["swift"]}],"kind":"declarations"}],"schemaVersion":{"patch":0,"major":0,"minor":3},"topicSections":[{"identifiers":["doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UILabel\/setFont(style:overrideWeight:)"],"title":"Instance Methods"}],"references":{"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/UIKit/UILabel":{"abstract":[],"type":"topic","fragments":[{"text":"extension","kind":"keyword"},{"text":" ","kind":"text"},{"preciseIdentifier":"c:objc(cs)UILabel","text":"UILabel","kind":"identifier"}],"role":"symbol","navigatorTitle":[{"kind":"identifier","text":"UILabel"}],"title":"UILabel","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UILabel","kind":"symbol","url":"\/documentation\/customdynamictype\/uikit\/uilabel"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/UIKit":{"kind":"symbol","url":"\/documentation\/customdynamictype\/uikit","type":"topic","title":"UIKit","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit","abstract":[],"role":"collection"},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType":{"title":"CustomDynamicType","type":"topic","url":"\/documentation\/customdynamictype","identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType","role":"collection","kind":"symbol","abstract":[]},"doc://app.truescreen.CustomDynamicType/documentation/CustomDynamicType/UIKit/UILabel/setFont(style:overrideWeight:)":{"identifier":"doc:\/\/app.truescreen.CustomDynamicType\/documentation\/CustomDynamicType\/UIKit\/UILabel\/setFont(style:overrideWeight:)","type":"topic","title":"setFont(style:overrideWeight:)","kind":"symbol","url":"\/documentation\/customdynamictype\/uikit\/uilabel\/setfont(style:overrideweight:)","role":"symbol","abstract":[{"type":"text","text":"Apply the desired font style to each UILabel."}],"fragments":[{"text":"func","kind":"keyword"},{"text":" ","kind":"text"},{"kind":"identifier","text":"setFont"},{"text":"(","kind":"text"},{"kind":"externalParam","text":"style"},{"text":": ","kind":"text"},{"kind":"typeIdentifier","text":"UIFont","preciseIdentifier":"c:objc(cs)UIFont"},{"kind":"text","text":"."},{"kind":"typeIdentifier","text":"TextStyle","preciseIdentifier":"c:@T@UIFontTextStyle"},{"text":", ","kind":"text"},{"kind":"externalParam","text":"overrideWeight"},{"text":": ","kind":"text"},{"preciseIdentifier":"c:objc(cs)UIFont","text":"UIFont","kind":"typeIdentifier"},{"text":".","kind":"text"},{"text":"Weight","kind":"typeIdentifier","preciseIdentifier":"c:@T@UIFontWeight"},{"text":"?)","kind":"text"}]}}} -------------------------------------------------------------------------------- /docs/developer-og-twitter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/docs/developer-og-twitter.jpg -------------------------------------------------------------------------------- /docs/developer-og.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/docs/developer-og.jpg -------------------------------------------------------------------------------- /docs/documentation/customdynamictype/customdynamicfontnames/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/customdynamicfontnames/init(ultralight:thin:light:regular:medium:semibold:bold:heavy:black:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/customdynamictype/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/customdynamictype/setup(with:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/swiftui/font/font(style:overrideweight:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/swiftui/font/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/swiftui/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/uikit/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/uikit/uifont/font(style:overrideweight:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/uikit/uifont/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/uikit/uilabel/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/documentation/customdynamictype/uikit/uilabel/setfont(style:overrideweight:)/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/docs/favicon.ico -------------------------------------------------------------------------------- /docs/favicon.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /docs/img/added-icon.d6f7e47d.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /docs/img/deprecated-icon.015b4f17.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /docs/img/modified-icon.f496e73d.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /docs/img/no-image@2x.df2a0a50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/docs/img/no-image@2x.df2a0a50.png -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | Documentation
-------------------------------------------------------------------------------- /docs/index/availability.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/docs/index/availability.index -------------------------------------------------------------------------------- /docs/index/data.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/docs/index/data.mdb -------------------------------------------------------------------------------- /docs/index/index.json: -------------------------------------------------------------------------------- 1 | {"interfaceLanguages":{"swift":[{"children":[{"title":"Structures","type":"groupMarker"},{"children":[{"title":"Initializers","type":"groupMarker"},{"path":"\/documentation\/customdynamictype\/customdynamicfontnames\/init(ultralight:thin:light:regular:medium:semibold:bold:heavy:black:)","title":"init(ultraLight: String?, thin: String?, light: String?, regular: String, medium: String?, semibold: String, bold: String?, heavy: String?, black: String?)","type":"init"}],"path":"\/documentation\/customdynamictype\/customdynamicfontnames","title":"CustomDynamicFontNames","type":"struct"},{"children":[{"title":"Type Methods","type":"groupMarker"},{"path":"\/documentation\/customdynamictype\/customdynamictype\/setup(with:)","title":"static func setup(with: CustomDynamicFontNames)","type":"method"}],"path":"\/documentation\/customdynamictype\/customdynamictype","title":"CustomDynamicType","type":"struct"},{"title":"Extended Modules","type":"groupMarker"},{"children":[{"title":"Extended Structures","type":"groupMarker"},{"children":[{"title":"Type Methods","type":"groupMarker"},{"path":"\/documentation\/customdynamictype\/swiftui\/font\/font(style:overrideweight:)","title":"static func font(style: Font.TextStyle, overrideWeight: Font.Weight?) -> Font","type":"method"}],"path":"\/documentation\/customdynamictype\/swiftui\/font","title":"Font","type":"extension"}],"path":"\/documentation\/customdynamictype\/swiftui","title":"SwiftUI","type":"extension"},{"children":[{"title":"Extended Classes","type":"groupMarker"},{"children":[{"title":"Type Methods","type":"groupMarker"},{"path":"\/documentation\/customdynamictype\/uikit\/uifont\/font(style:overrideweight:)","title":"static func font(style: UIFont.TextStyle, overrideWeight: UIFont.Weight?) -> UIFont","type":"method"}],"path":"\/documentation\/customdynamictype\/uikit\/uifont","title":"UIFont","type":"extension"},{"children":[{"title":"Instance Methods","type":"groupMarker"},{"path":"\/documentation\/customdynamictype\/uikit\/uilabel\/setfont(style:overrideweight:)","title":"func setFont(style: UIFont.TextStyle, overrideWeight: UIFont.Weight?)","type":"method"}],"path":"\/documentation\/customdynamictype\/uikit\/uilabel","title":"UILabel","type":"extension"}],"path":"\/documentation\/customdynamictype\/uikit","title":"UIKit","type":"extension"}],"path":"\/documentation\/customdynamictype","title":"CustomDynamicType","type":"module"}]},"schemaVersion":{"major":0,"minor":1,"patch":1}} -------------------------------------------------------------------------------- /docs/index/navigator.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/neobeppe/CustomDynamicType/db8c08e269d3108507d3cca8f97f60a8fa5ce11f/docs/index/navigator.index -------------------------------------------------------------------------------- /docs/js/highlight-js-bash.1b52852f.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-bash"],{f0f8:function(e,s){function t(e){const s=e.regex,t={},n={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(c);const o={className:"",begin:/\\"/},r={className:"string",begin:/'/,end:/'/},l={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},p=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],d=e.SHEBANG({binary:`(${p.join("|")})`,relevance:10}),h={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},m=["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],u=["true","false"],b={match:/(\/[a-z._-]+)+/},g=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],f=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias"],w=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],k=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:m,literal:u,built_in:[...g,...f,"set","shopt",...w,...k]},contains:[d,e.SHEBANG(),h,l,e.HASH_COMMENT_MODE,i,b,c,o,r,t]}}e.exports=t}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-c.d1db3f17.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-c"],{"1fe5":function(e,n){function s(e){const n=e.regex,s=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),t="decltype\\(auto\\)",a="[a-zA-Z_]\\w*::",i="<[^<>]+>",r="("+t+"|"+n.optional(a)+"[a-zA-Z_]\\w*"+n.optional(i)+")",l={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},o="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+o+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"string"}),{className:"string",begin:/<.*?>/},s,e.C_BLOCK_COMMENT_MODE]},g={className:"title",begin:n.optional(a)+e.IDENT_RE,relevance:0},p=n.optional(a)+e.IDENT_RE+"\\s*\\(",m=["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],_=["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],f={keyword:m,type:_,literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},b=[u,l,s,e.C_BLOCK_COMMENT_MODE,d,c],w={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:f,contains:b.concat([{begin:/\(/,end:/\)/,keywords:f,contains:b.concat(["self"]),relevance:0}]),relevance:0},h={begin:"("+r+"[\\*&\\s]+)+"+p,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:f,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:t,keywords:f,relevance:0},{begin:p,returnBegin:!0,contains:[e.inherit(g,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:[s,e.C_BLOCK_COMMENT_MODE,c,d,l,{begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:["self",s,e.C_BLOCK_COMMENT_MODE,c,d,l]}]},l,s,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C",aliases:["h"],keywords:f,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:u,strings:c,keywords:f}}}e.exports=s}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-cpp.eaddddbe.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-cpp"],{"0209":function(e,t){function n(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="<[^<>]+>",s="(?!struct)("+a+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional(r)+")",c={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",l={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+o+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},d={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},u={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},p={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},_=t.optional(i)+e.IDENT_RE+"\\s*\\(",m=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],g=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],f=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],b=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],h=["NULL","false","nullopt","nullptr","true"],w=["_Pragma"],y={type:g,keyword:m,literal:h,built_in:w,_type_hints:f},v={className:"function.dispatch",relevance:0,keywords:{_hint:b},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},k=[v,u,c,n,e.C_BLOCK_COMMENT_MODE,d,l],x={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:y,contains:k.concat([{begin:/\(/,end:/\)/,keywords:y,contains:k.concat(["self"]),relevance:0}]),relevance:0},E={className:"function",begin:"("+s+"[\\*&\\s]+)+"+_,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:y,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:y,relevance:0},{begin:_,returnBegin:!0,contains:[p],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[l,d]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:y,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,l,d,c,{begin:/\(/,end:/\)/,keywords:y,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,l,d,c]}]},c,n,e.C_BLOCK_COMMENT_MODE,u]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:y,illegal:"",keywords:y,contains:["self",c]},{begin:e.IDENT_RE+"::",keywords:y},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}e.exports=n}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-custom-markdown.7cffc4b3.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-custom-markdown","highlight-js-markdown"],{"04b0":function(n,e){function a(n){const e=n.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},t={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},c={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},d=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,d,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},g={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},o={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};g.contains.push(o),o.contains.push(g);let r=[a,l];g.contains=g.contains.concat(r),o.contains=o.contains.concat(r),r=r.concat(g,o);const b={className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:r},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:r}]}]},u={className:"quote",begin:"^>\\s+",contains:r,end:"$"};return{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[b,a,t,g,o,u,s,i,l,c]}}n.exports=a},"84cb":function(n,e,a){"use strict";a.r(e);var i=a("04b0"),s=a.n(i);const t={begin:"",returnBegin:!0,contains:[{className:"link",begin:"doc:",end:">",excludeEnd:!0}]},c={className:"link",begin:/`{2}(?!`)/,end:/`{2}(?!`)/,excludeBegin:!0,excludeEnd:!0},d={begin:"^>\\s+[Note:|Tip:|Important:|Experiment:|Warning:]",end:"$",returnBegin:!0,contains:[{className:"quote",begin:"^>",end:"\\s+"},{className:"type",begin:"Note|Tip|Important|Experiment|Warning",end:":"},{className:"quote",begin:".*",end:"$",endsParent:!0}]},l={begin:"@",end:"[{\\)\\s]",returnBegin:!0,contains:[{className:"title",begin:"@",end:"[\\s+(]",excludeEnd:!0},{begin:":",end:"[,\\)\n\t]",excludeBegin:!0,keywords:{literal:"true false null undefined"},contains:[{className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",endsWithParent:!0,excludeEnd:!0},{className:"string",variants:[{begin:/"""/,end:/"""/},{begin:/"/,end:/"/}],endsParent:!0},{className:"link",begin:"http|https",endsWithParent:!0,excludeEnd:!0}]}]};e["default"]=function(n){const e=s()(n),a=e.contains.find(({className:n})=>"code"===n);a.variants=a.variants.filter(({begin:n})=>!n.includes("( {4}|\\t)"));const i=[...e.contains.filter(({className:n})=>"code"!==n),a];return{...e,contains:[c,t,d,l,...i]}}}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-diff.62d66733.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-diff"],{"48b8":function(e,n){function a(e){const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}e.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-http.163e45b6.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-http"],{c01d:function(e,n){function a(e){const n=e.regex,a="HTTP/(2|1\\.[01])",s=/[A-Za-z][A-Za-z0-9-]*/,t={className:"attribute",begin:n.concat("^",s,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},i=[t,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",end:/$/,contains:[{className:"meta",begin:a},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:i}},{begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:i}},e.inherit(t,{relevance:0})]}}e.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-java.8326d9d8.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-java"],{"332f":function(e,a){var n="[0-9](_*[0-9])*",s=`\\.(${n})`,i="[0-9a-fA-F](_*[0-9a-fA-F])*",t={className:"number",variants:[{begin:`(\\b(${n})((${s})|\\.)?|(${s}))[eE][+-]?(${n})[fFdD]?\\b`},{begin:`\\b(${n})((${s})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${s})[fFdD]?\\b`},{begin:`\\b(${n})[fFdD]\\b`},{begin:`\\b0[xX]((${i})\\.?|(${i})?\\.(${i}))[pP][+-]?(${n})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${i})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function r(e,a,n){return-1===n?"":e.replace(a,s=>r(e,a,n-1))}function c(e){e.regex;const a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",n=a+r("(?:<"+a+"~~~(?:\\s*,\\s*"+a+"~~~)*>)?",/~~~/g,2),s=["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do"],i=["super","this"],c=["false","true","null"],l=["char","boolean","long","float","int","byte","short","double"],o={keyword:s,literal:c,type:l,built_in:i},b={className:"meta",begin:"@"+a,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},_={className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:o,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{begin:[a,/\s+/,a,/\s+/,/=/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,a],className:{1:"keyword",3:"title.class"},contains:[_,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+n+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:o,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,t,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},t,b]}}e.exports=c}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-javascript.acb8a8eb.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-javascript"],{"4dd1":function(e,n){const a="[A-Za-z$_][0-9A-Za-z$_]*",t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],s=["true","false","null","undefined","NaN","Infinity"],c=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],r=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],i=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],o=["arguments","this","super","console","window","document","localStorage","module","global"],l=[].concat(i,c,r);function b(e){const n=e.regex,b=(e,{after:n})=>{const a="",end:""},u=/<[A-Za-z0-9\\._:-]+\s*\/>/,m={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,t=e.input[a];if("<"===t||","===t)return void n.ignoreMatch();let s;">"===t&&(b(e,{after:a})||n.ignoreMatch());const c=e.input.substr(a);(s=c.match(/^\s+extends\s+/))&&0===s.index&&n.ignoreMatch()}},E={$pattern:a,keyword:t,literal:s,built_in:l,"variable.language":o},A="[0-9](_?[0-9])*",y=`\\.(${A})`,N="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",f={className:"number",variants:[{begin:`(\\b(${N})((${y})|\\.)?|(${y}))[eE][+-]?(${A})\\b`},{begin:`\\b(${N})\\b((${y})\\b|\\.)?|(${y})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:E,contains:[]},_={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},p={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,h],subLanguage:"css"}},v={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,h]},w=e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:d+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),S={className:"comment",variants:[w,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},R=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,_,p,v,f];h.contains=R.concat({begin:/\{/,end:/\}/,keywords:E,contains:["self"].concat(R)});const k=[].concat(S,h.contains),O=k.concat([{begin:/\(/,end:/\)/,keywords:E,contains:["self"].concat(k)}]),I={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:E,contains:O},x={variants:[{match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,n.concat(d,"(",n.concat(/\./,d),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,d],scope:{1:"keyword",3:"title.class"}}]},T={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]+|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+/),className:"title.class",keywords:{_:[...c,...r]}},C={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},M={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[I],illegal:/%/},B={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function $(e){return n.concat("(?!",e.join("|"),")")}const D={match:n.concat(/\b/,$([...i,"super"]),d,n.lookahead(/\(/)),className:"title.function",relevance:0},U={begin:n.concat(/\./,n.lookahead(n.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Z={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},I]},z="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",F={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,n.lookahead(z)],className:{1:"keyword",3:"title.function"},contains:[I]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:E,exports:{PARAMS_CONTAINS:O,CLASS_REFERENCE:T},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),C,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,_,p,v,S,f,T,{className:"attr",begin:d+n.lookahead(":"),relevance:0},F,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[S,e.REGEXP_MODE,{className:"function",begin:z,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:E,contains:O}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:g.begin,end:g.end},{match:u},{begin:m.begin,"on:begin":m.isTrulyOpeningTag,end:m.end}],subLanguage:"xml",contains:[{begin:m.begin,end:m.end,skip:!0,contains:["self"]}]}]},M,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[I,e.inherit(e.TITLE_MODE,{begin:d,className:"title.function"})]},{match:/\.\.\./,relevance:0},U,{match:"\\$"+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[I]},D,B,x,Z,{match:/\$[(.]/}]}}e.exports=b}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-json.471128d2.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-json"],{"5ad2":function(n,e){function a(n){const e={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},a={match:/[{}[\],:]/,className:"punctuation",relevance:0},s={beginKeywords:["true","false","null"].join(" ")};return{name:"JSON",contains:[e,a,n.QUOTE_STRING_MODE,s,n.C_NUMBER_MODE,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}n.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-llvm.6100b125.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-llvm"],{"7c30":function(e,n){function a(e){const n=e.regex,a=/([-a-zA-Z$._][\w$.-]*)/,t={className:"type",begin:/\bi\d+(?=\s|\b)/},i={className:"operator",relevance:0,begin:/=/},c={className:"punctuation",relevance:0,begin:/,/},l={className:"number",variants:[{begin:/0[xX][a-fA-F0-9]+/},{begin:/-?\d+(?:[.]\d+)?(?:[eE][-+]?\d+(?:[.]\d+)?)?/}],relevance:0},r={className:"symbol",variants:[{begin:/^\s*[a-z]+:/}],relevance:0},s={className:"variable",variants:[{begin:n.concat(/%/,a)},{begin:/%\d+/},{begin:/#\d+/}]},o={className:"title",variants:[{begin:n.concat(/@/,a)},{begin:/@\d+/},{begin:n.concat(/!/,a)},{begin:n.concat(/!\d+/,a)},{begin:/!\d+/}]};return{name:"LLVM IR",keywords:"begin end true false declare define global constant private linker_private internal available_externally linkonce linkonce_odr weak weak_odr appending dllimport dllexport common default hidden protected extern_weak external thread_local zeroinitializer undef null to tail target triple datalayout volatile nuw nsw nnan ninf nsz arcp fast exact inbounds align addrspace section alias module asm sideeffect gc dbg linker_private_weak attributes blockaddress initialexec localdynamic localexec prefix unnamed_addr ccc fastcc coldcc x86_stdcallcc x86_fastcallcc arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ptx_kernel intel_ocl_bicc msp430_intrcc spir_func spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc cc c signext zeroext inreg sret nounwind noreturn noalias nocapture byval nest readnone readonly inlinehint noinline alwaysinline optsize ssp sspreq noredzone noimplicitfloat naked builtin cold nobuiltin noduplicate nonlazybind optnone returns_twice sanitize_address sanitize_memory sanitize_thread sspstrong uwtable returned type opaque eq ne slt sgt sle sge ult ugt ule uge oeq one olt ogt ole oge ord uno ueq une x acq_rel acquire alignstack atomic catch cleanup filter inteldialect max min monotonic nand personality release seq_cst singlethread umax umin unordered xchg add fadd sub fsub mul fmul udiv sdiv fdiv urem srem frem shl lshr ashr and or xor icmp fcmp phi call trunc zext sext fptrunc fpext uitofp sitofp fptoui fptosi inttoptr ptrtoint bitcast addrspacecast select va_arg ret br switch invoke unwind unreachable indirectbr landingpad resume malloc alloca free load store getelementptr extractelement insertelement shufflevector getresult extractvalue insertvalue atomicrmw cmpxchg fence argmemonly double",contains:[t,e.COMMENT(/;\s*$/,null,{relevance:0}),e.COMMENT(/;/,/$/),e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:/"/,end:/[^\\]"/}]},o,c,i,s,r,l]}}e.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-markdown.90077643.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-markdown"],{"04b0":function(n,e){function a(n){const e=n.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},c={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},t={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},g=/[A-Za-z][A-Za-z0-9+.-]*/,d={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,g,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},l={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},o={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};l.contains.push(o),o.contains.push(l);let b=[a,d];l.contains=l.contains.concat(b),o.contains=o.contains.concat(b),b=b.concat(l,o);const r={className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:b},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:b}]}]},m={className:"quote",begin:"^>\\s+",contains:b,end:"$"};return{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[r,a,c,l,o,m,s,i,d,t]}}n.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-objectivec.bcdf5156.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-objectivec"],{"9bf2":function(e,n){function _(e){const n={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},_=/[a-zA-Z@][a-zA-Z0-9_]*/,i=["int","float","while","char","export","sizeof","typedef","const","struct","for","union","unsigned","long","volatile","static","bool","mutable","if","do","return","goto","void","enum","else","break","extern","asm","case","short","default","double","register","explicit","signed","typename","this","switch","continue","wchar_t","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","super","unichar","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],t=["false","true","FALSE","TRUE","nil","YES","NO","NULL"],a=["BOOL","dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],o={$pattern:_,keyword:i,literal:t,built_in:a},s={$pattern:_,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:o,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+s.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:s,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}e.exports=_}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-perl.757d7b6f.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-perl"],{"6a51":function(e,n){function t(e){const n=e.regex,t=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],s=/[dualxmsipngr]{0,12}/,r={$pattern:/[\w.]+/,keyword:t.join(" ")},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:r},a={begin:/->\{/,end:/\}/},o={variants:[{begin:/\$\d/},{begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,r="\\1")=>{const i="\\1"===r?r:n.concat(r,t);return n.concat(n.concat("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,r,s)},d=(e,t,r)=>n.concat(n.concat("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,r,s),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),a,{className:"string",contains:c,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:l("s|tr|y",n.either(...g,{capture:!0}))},{begin:l("s|tr|y","\\(","\\)")},{begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",n.either(...g,{capture:!0}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:r,contains:p}}e.exports=t}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-php.cc8d6c27.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-php"],{2907:function(e,r){function t(e){const r={className:"variable",begin:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*(?![A-Za-z0-9])(?![$])"},t={className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'"}),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},c={className:"number",variants:[{begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?"}],relevance:0},s={keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield",literal:"false null true",built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"};return{case_insensitive:!0,keywords:s,contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:s,contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,c]}]},{className:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";",contains:[e.UNDERSCORE_TITLE_MODE]},l,c]}}e.exports=t}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-python.c214ed92.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-python"],{9510:function(e,n){function a(e){const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,i=["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],s=["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],t=["__debug__","Ellipsis","False","None","NotImplemented","True"],r=["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"],l={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:s,literal:t,type:r},o={className:"meta",begin:/^(>>>|\.\.\.) /},b={className:"subst",begin:/\{/,end:/\}/,keywords:l,illegal:/#/},c={begin:/\{\{/,relevance:0},d={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,o],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,o],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,o,c,b]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,o,c,b]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,c,b]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,c,b]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},p="[0-9](_?[0-9])*",g=`(\\b(${p}))?\\.(${p})|\\b(${p})\\.`,m={className:"number",relevance:0,variants:[{begin:`(\\b(${p})|(${g}))[eE][+-]?(${p})[jJ]?\\b`},{begin:`(${g})[jJ]?`},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${p})[jJ]\\b`}]},_={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:l,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},u={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:["self",o,m,d,e.HASH_COMMENT_MODE]}]};return b.contains=[d,m,o],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:l,illegal:/(<\/|->|\?)|=>/,contains:[o,m,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},d,_,e.HASH_COMMENT_MODE,{match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[u]},{variants:[{match:[/class/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/class/,/\s+/,a]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[m,u,d]}]}}e.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-ruby.f889d392.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-ruby"],{"82cb":function(e,n){function a(e){const n=e.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__",built_in:"proc lambda",literal:"true false nil"},s={className:"doctag",begin:"@[A-Za-z]+"},b={begin:"#<",end:">"},c=[e.COMMENT("#","$",{contains:[s]}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10}),e.COMMENT("^__END__","\\n$")],r={className:"subst",begin:/#\{/,end:/\}/,keywords:i},d={className:"string",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,r]})]}]},t="[1-9](_?[0-9])*|0",o="[0-9](_?[0-9])*",g={className:"number",relevance:0,variants:[{begin:`\\b(${t})(\\.(${o}))?([eE][+-]?(${o})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)",endsParent:!0,keywords:i},_=[d,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE,relevance:0}]}].concat(c)},{className:"function",begin:n.concat(/def\s+/,n.lookahead(a+"\\s*(\\(|;|$)")),relevance:0,keywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:a}),l].concat(c)},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[d,{begin:a}],relevance:0},g,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,r],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(b,c),relevance:0}].concat(b,c);r.contains=_,l.contains=_;const w="[>?]>",E="[\\w#]+\\(\\w+\\):\\d+:\\d+>",u="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",N=[{begin:/^\s*=>/,starts:{end:"$",contains:_}},{className:"meta",begin:"^("+w+"|"+E+"|"+u+")(?=[ ])",starts:{end:"$",contains:_}}];return c.unshift(b),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(N).concat(c).concat(_)}}e.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-shell.dd7f411f.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-shell"],{b65b:function(s,n){function e(s){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}s.exports=e}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-xml.9c3688c7.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-xml"],{"8dcb":function(e,n){function a(e){const n=e.regex,a=n.concat(/[A-Z_]/,n.optional(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),s=/[A-Za-z0-9._:-]+/,t={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},c=e.inherit(i,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{className:"string"}),r=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),g={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,r,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[i,c,r,l]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},t,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[g],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[g],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:a,relevance:0,starts:g}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(a,/>/))),contains:[{className:"name",begin:a,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}e.exports=a}}]); -------------------------------------------------------------------------------- /docs/metadata.json: -------------------------------------------------------------------------------- 1 | {"schemaVersion":{"major":0,"patch":0,"minor":1},"bundleDisplayName":"CustomDynamicType","bundleIdentifier":"app.truescreen.CustomDynamicType"} --------------------------------------------------------------------------------