@zelloptt/react-native-zello-sdk 3.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -21
- package/app.plugin.js +97 -0
- package/lib/commonjs/docs/assets/highlight.css +16 -9
- package/lib/commonjs/docs/classes/sdk.Zello.html +49 -49
- package/lib/commonjs/docs/classes/types.ZelloAlertMessage.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloChannel.html +10 -10
- package/lib/commonjs/docs/classes/types.ZelloChannelUser.html +4 -4
- package/lib/commonjs/docs/classes/types.ZelloDispatchCall.html +4 -4
- package/lib/commonjs/docs/classes/types.ZelloDispatchChannel.html +11 -11
- package/lib/commonjs/docs/classes/types.ZelloGroupConversation.html +13 -13
- package/lib/commonjs/docs/classes/types.ZelloHistoryAlertMessage.html +8 -8
- package/lib/commonjs/docs/classes/types.ZelloHistoryImageMessage.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloHistoryLocationMessage.html +11 -11
- package/lib/commonjs/docs/classes/types.ZelloHistoryTextMessage.html +8 -8
- package/lib/commonjs/docs/classes/types.ZelloHistoryVoiceMessage.html +9 -9
- package/lib/commonjs/docs/classes/types.ZelloImageMessage.html +8 -8
- package/lib/commonjs/docs/classes/types.ZelloIncomingEmergency.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloIncomingVoiceMessage.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloLocationMessage.html +10 -10
- package/lib/commonjs/docs/classes/types.ZelloOutgoingEmergency.html +5 -5
- package/lib/commonjs/docs/classes/types.ZelloOutgoingVoiceMessage.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloRecentEntry.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloTextMessage.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloTranscription.html +7 -7
- package/lib/commonjs/docs/classes/types.ZelloTranslation.html +4 -4
- package/lib/commonjs/docs/classes/types.ZelloUser.html +10 -10
- package/lib/commonjs/docs/classes/types.ZelloUserSupportedFeatures.html +3 -3
- package/lib/commonjs/docs/enums/events.ZelloEvent.html +46 -46
- package/lib/commonjs/docs/enums/types.ZelloAccountStatus.html +3 -3
- package/lib/commonjs/docs/enums/types.ZelloChannelAlertLevel.html +3 -3
- package/lib/commonjs/docs/enums/types.ZelloChannelConnectionStatus.html +4 -4
- package/lib/commonjs/docs/enums/types.ZelloChannelType.html +5 -5
- package/lib/commonjs/docs/enums/types.ZelloConnectionError.html +4 -4
- package/lib/commonjs/docs/enums/types.ZelloConnectionState.html +5 -5
- package/lib/commonjs/docs/enums/types.ZelloContactType.html +5 -5
- package/lib/commonjs/docs/enums/types.ZelloDispatchCallStatus.html +5 -5
- package/lib/commonjs/docs/enums/types.ZelloOutgoingVoiceMessageError.html +3 -3
- package/lib/commonjs/docs/enums/types.ZelloOutgoingVoiceMessageState.html +6 -6
- package/lib/commonjs/docs/enums/types.ZelloRecentEntryType.html +6 -6
- package/lib/commonjs/docs/enums/types.ZelloUserStatus.html +5 -5
- package/lib/commonjs/docs/index.html +55 -24
- package/lib/commonjs/docs/interfaces/specs_NativeZelloSdk.Spec.html +31 -31
- package/lib/commonjs/docs/types/types.ZelloChannelOptions.html +9 -9
- package/lib/commonjs/docs/types/types.ZelloConfig.html +3 -3
- package/lib/commonjs/docs/types/types.ZelloConsoleSettings.html +7 -7
- package/lib/commonjs/docs/types/types.ZelloContact.html +4 -4
- package/lib/commonjs/docs/types/types.ZelloCredentials.html +4 -4
- package/lib/commonjs/docs/types/types.ZelloHistoryMessage.html +6 -6
- package/lib/commonjs/docs/types/types.ZelloMessage.html +5 -5
- package/lib/commonjs/docs/variables/specs_NativeZelloSdk.default.html +1 -1
- package/lib/module/docs/assets/highlight.css +16 -9
- package/lib/module/docs/classes/sdk.Zello.html +49 -49
- package/lib/module/docs/classes/types.ZelloAlertMessage.html +7 -7
- package/lib/module/docs/classes/types.ZelloChannel.html +10 -10
- package/lib/module/docs/classes/types.ZelloChannelUser.html +4 -4
- package/lib/module/docs/classes/types.ZelloDispatchCall.html +4 -4
- package/lib/module/docs/classes/types.ZelloDispatchChannel.html +11 -11
- package/lib/module/docs/classes/types.ZelloGroupConversation.html +13 -13
- package/lib/module/docs/classes/types.ZelloHistoryAlertMessage.html +8 -8
- package/lib/module/docs/classes/types.ZelloHistoryImageMessage.html +7 -7
- package/lib/module/docs/classes/types.ZelloHistoryLocationMessage.html +11 -11
- package/lib/module/docs/classes/types.ZelloHistoryTextMessage.html +8 -8
- package/lib/module/docs/classes/types.ZelloHistoryVoiceMessage.html +9 -9
- package/lib/module/docs/classes/types.ZelloImageMessage.html +8 -8
- package/lib/module/docs/classes/types.ZelloIncomingEmergency.html +7 -7
- package/lib/module/docs/classes/types.ZelloIncomingVoiceMessage.html +7 -7
- package/lib/module/docs/classes/types.ZelloLocationMessage.html +10 -10
- package/lib/module/docs/classes/types.ZelloOutgoingEmergency.html +5 -5
- package/lib/module/docs/classes/types.ZelloOutgoingVoiceMessage.html +7 -7
- package/lib/module/docs/classes/types.ZelloRecentEntry.html +7 -7
- package/lib/module/docs/classes/types.ZelloTextMessage.html +7 -7
- package/lib/module/docs/classes/types.ZelloTranscription.html +7 -7
- package/lib/module/docs/classes/types.ZelloTranslation.html +4 -4
- package/lib/module/docs/classes/types.ZelloUser.html +10 -10
- package/lib/module/docs/classes/types.ZelloUserSupportedFeatures.html +3 -3
- package/lib/module/docs/enums/events.ZelloEvent.html +46 -46
- package/lib/module/docs/enums/types.ZelloAccountStatus.html +3 -3
- package/lib/module/docs/enums/types.ZelloChannelAlertLevel.html +3 -3
- package/lib/module/docs/enums/types.ZelloChannelConnectionStatus.html +4 -4
- package/lib/module/docs/enums/types.ZelloChannelType.html +5 -5
- package/lib/module/docs/enums/types.ZelloConnectionError.html +4 -4
- package/lib/module/docs/enums/types.ZelloConnectionState.html +5 -5
- package/lib/module/docs/enums/types.ZelloContactType.html +5 -5
- package/lib/module/docs/enums/types.ZelloDispatchCallStatus.html +5 -5
- package/lib/module/docs/enums/types.ZelloOutgoingVoiceMessageError.html +3 -3
- package/lib/module/docs/enums/types.ZelloOutgoingVoiceMessageState.html +6 -6
- package/lib/module/docs/enums/types.ZelloRecentEntryType.html +6 -6
- package/lib/module/docs/enums/types.ZelloUserStatus.html +5 -5
- package/lib/module/docs/index.html +55 -24
- package/lib/module/docs/interfaces/specs_NativeZelloSdk.Spec.html +31 -31
- package/lib/module/docs/types/types.ZelloChannelOptions.html +9 -9
- package/lib/module/docs/types/types.ZelloConfig.html +3 -3
- package/lib/module/docs/types/types.ZelloConsoleSettings.html +7 -7
- package/lib/module/docs/types/types.ZelloContact.html +4 -4
- package/lib/module/docs/types/types.ZelloCredentials.html +4 -4
- package/lib/module/docs/types/types.ZelloHistoryMessage.html +6 -6
- package/lib/module/docs/types/types.ZelloMessage.html +5 -5
- package/lib/module/docs/variables/specs_NativeZelloSdk.default.html +1 -1
- package/package.json +23 -2
- package/react-native-zello-sdk.podspec +21 -47
- package/scripts/podfile-transform.js +416 -0
- package/scripts/setup-ios.js +248 -0
- package/scripts/zello_pods.rb +128 -0
- package/scripts/zello_sdk_requirement.rb +12 -0
package/README.md
CHANGED
|
@@ -30,38 +30,80 @@ npm install @zelloptt/react-native-zello-sdk
|
|
|
30
30
|
|
|
31
31
|
Before getting started, please reference the [iOS Installation Guide](https://developers.zello.com/sdk/latest/ios/documentation/zellosdk/getting-started). There is no need to add the native `ZelloSDK` to your project directly — this library declares it for you.
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
The native ZelloSDK is consumed through **Swift Package Manager only** (product `ZelloSDKUmbrella` from [`github.com/zelloptt/ios-mobile-sdk`](https://github.com/zelloptt/ios-mobile-sdk)); it is no longer available through CocoaPods. React Native itself still requires CocoaPods, so the React Native layer of this library stays a CocoaPod and a small Podfile helper wires the Swift package into your app.
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
Requirements:
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
- **React Native 0.86 or later**: the podspec uses React Native's `spm_dependency` and raises during `pod install` on older versions.
|
|
38
|
+
- **iOS 17.0 or later**, in **both** places: `platform :ios, '17.0'` in your `Podfile`, and the `IPHONEOS_DEPLOYMENT_TARGET` of your app target and of any app extension (for example the Notification Service Extension).
|
|
39
|
+
- Native ZelloSDK `3.3.2` or later, below `4.0.0`. The requirement is `upToNextMajorVersion` from `3.3.2`; a fresh resolve picks the newest `3.x`, while a committed `Package.resolved` keeps its pin until you use *File > Packages > Update to Latest Package Versions*.
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
- **Swift Package Manager (recommended):** set `ZELLO_USE_SPM=1` before installing pods:
|
|
42
|
-
```sh
|
|
43
|
-
ZELLO_USE_SPM=1 bundle exec pod install
|
|
44
|
-
```
|
|
45
|
-
This pulls ZelloSDK from [`github.com/zelloptt/ios-mobile-sdk`](https://github.com/zelloptt/ios-mobile-sdk) (product `ZelloSDKUmbrella`, up to the next major from `2.0.0`) as prebuilt XCFrameworks. Also add the `ZelloSDKUmbrella` package product to your **Notification Service Extension** target.
|
|
41
|
+
#### Setup
|
|
46
42
|
|
|
47
|
-
|
|
43
|
+
```sh
|
|
44
|
+
npm install @zelloptt/react-native-zello-sdk@4
|
|
45
|
+
npx @zelloptt/react-native-zello-sdk setup-ios
|
|
46
|
+
cd ios && bundle exec pod install
|
|
47
|
+
```
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
`setup-ios` edits only your `Podfile` (it never touches the `.xcodeproj`): it prints a diff and asks for confirmation. Options: `--dry-run` (print the diff only), `--yes` (non-interactive), `--project-root <dir>` / `--podfile <path>` (monorepos), `--app-target <name>` and `--extension-target <name>` (repeatable) when the targets cannot be detected. Only top-level `Podfile` targets whose name contains `Extension`, `NSE` or `Widget` are detected as extensions; list any other extension with `--extension-target`. It exits with code `2` and changes nothing when it needs a manual step.
|
|
50
|
+
|
|
51
|
+
Or make the changes yourself:
|
|
50
52
|
|
|
51
53
|
```ruby
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
# Podfile — before `prepare_react_native_project!`
|
|
55
|
+
require Pod::Executable.execute_command('node', ['-p',
|
|
56
|
+
"require.resolve('@zelloptt/react-native-zello-sdk/scripts/zello_pods.rb', {paths: [process.argv[1]]})",
|
|
57
|
+
__dir__]).strip
|
|
58
|
+
|
|
59
|
+
platform :ios, '17.0'
|
|
60
|
+
|
|
61
|
+
target 'MyApp' do
|
|
62
|
+
# ...
|
|
63
|
+
post_install do |installer|
|
|
64
|
+
zello_post_install(installer, app_target: 'MyApp', extension_targets: ['NotificationServiceExtension'])
|
|
65
|
+
react_native_post_install(installer, config[:reactNativePath])
|
|
59
66
|
end
|
|
60
|
-
# ...your existing react_native_post_install(...) call...
|
|
61
67
|
end
|
|
62
68
|
```
|
|
63
69
|
|
|
64
|
-
|
|
70
|
+
`zello_post_install` adds the package to your Xcode project, links `ZelloSDKUmbrella` into the app and embeds it, and links it (without embedding) into the listed extension targets. It is idempotent, and raises with an explanation if the deployment target is below 17.0 or a `ZelloSDK` pod is still present. Open the `.xcworkspace` afterwards; Xcode resolves the package on first build.
|
|
71
|
+
|
|
72
|
+
If your app project already references `github.com/zelloptt/ios-mobile-sdk`, `zello_post_install` keeps your version requirement unless it is an *Up to Next Major Version* rule with a lower minimum than `3.3.2`; then it raises the minimum to `3.3.2`. The bridge pod always requires `3.3.2` up to the next major, and Xcode resolves one version that satisfies both.
|
|
73
|
+
|
|
74
|
+
Static and dynamic `use_frameworks!` as well as no `use_frameworks!` are all supported. With static or no `use_frameworks!`, `pod install` prints `[SPM] WARNING!!! Pod react-native-zello-sdk is using swift package(s) ZelloSDKUmbrella with static linking, this might cause linker errors`; this is expected, because `zello_post_install` links the dynamic `ZelloSDKUmbrella` into the app.
|
|
75
|
+
|
|
76
|
+
#### Upgrading from 3.x
|
|
77
|
+
|
|
78
|
+
1. Run the three commands above. `setup-ios` removes `pod 'ZelloSDK'`, the CocoaPods resilient-pods `post_install` workaround (`BUILD_LIBRARY_FOR_DISTRIBUTION` for `PhoneNumberKit`, `SnowplowTracker`, `CocoaLumberjack`, `PromisesSwift`) and raises `platform :ios` to `17.0`. If you did it by hand, remove those as well as any `ZELLO_USE_SPM` setting and any manually added `ZelloSDKUmbrella` package reference in your extension targets.
|
|
79
|
+
2. Raise the app and extension deployment targets to 17.0 if they are lower.
|
|
80
|
+
3. Do a **Clean Build Folder** in Xcode (or `rm -rf ios/build`) once: frameworks previously embedded by CocoaPods can linger in an incremental build and clash with the new ones.
|
|
81
|
+
|
|
82
|
+
#### Troubleshooting (Swift Package Manager)
|
|
83
|
+
|
|
84
|
+
- `[CP] Copy Pods Resources ... Operation not permitted` with static or no `use_frameworks!`: set `ENABLE_USER_SCRIPT_SANDBOXING = NO` on the app and extension targets.
|
|
85
|
+
- `Multiple commands produce '*.ttf'` with static or no `use_frameworks!`: remove the duplicated font files from the app target's *Copy Bundle Resources* phase (keep them in `UIAppFonts`); CocoaPods already copies them.
|
|
86
|
+
- **PhoneNumberKit:** ZelloSDK pulls PhoneNumberKit via Swift Package Manager — the `marmelroy/PhoneNumberKit` 3.x on native `3.3.2`, the 5.x from the PhoneNumberKit organization's repository on `3.3.3` and later. These are two different repositories sharing one package identity, so:
|
|
87
|
+
- an app that depends on `marmelroy/PhoneNumberKit` itself gets *package 'phonenumberkit' is required using two different URLs* once `3.3.3` resolves — switch your dependency to the PhoneNumberKit organization repository, or drop it;
|
|
88
|
+
- builds that disable automatic resolution (`-onlyUsePackageVersionsFromResolvedFile`) fail until their `Package.resolved` is updated;
|
|
89
|
+
- a PhoneNumberKit **pod** next to the Swift package duplicates classes — remove the pod.
|
|
90
|
+
|
|
91
|
+
#### Expo
|
|
92
|
+
|
|
93
|
+
Add the config plugin, plus `expo-build-properties` to raise the app's deployment target, to `app.json`:
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"expo": {
|
|
98
|
+
"plugins": [
|
|
99
|
+
["expo-build-properties", { "ios": { "deploymentTarget": "17.0" } }],
|
|
100
|
+
["@zelloptt/react-native-zello-sdk", { "extensionTargets": ["NotificationServiceExtension"] }]
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The plugin applies the same Podfile changes as `setup-ios` on `expo prebuild`, and sets the deployment target of the listed `extensionTargets` to 17.0. Expo applies plugin mods in reverse order, so list it **before** any plugin that creates the extension target; prebuild fails if a listed extension target is not in the Xcode project. Expo apps use no `use_frameworks!` unless `ios.useFrameworks` is set.
|
|
65
107
|
|
|
66
108
|
#### Troubleshooting
|
|
67
109
|
|
package/app.plugin.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Expo config plugin: migrates the generated Podfile to the SwiftPM-based native ZelloSDK and
|
|
5
|
+
* makes sure extension targets meet the iOS 17.0 deployment target.
|
|
6
|
+
*
|
|
7
|
+
* "plugins": [["@zelloptt/react-native-zello-sdk", { "extensionTargets": ["NotificationServiceExtension"] }]]
|
|
8
|
+
*
|
|
9
|
+
* The app's deployment target itself comes from `expo-build-properties`
|
|
10
|
+
* (`ios.deploymentTarget: "17.0"`). Expo runs mods in reverse plugin order, so list this plugin
|
|
11
|
+
* before any plugin that creates the extension target.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const {
|
|
15
|
+
createRunOncePlugin,
|
|
16
|
+
withPodfile,
|
|
17
|
+
withXcodeProject,
|
|
18
|
+
} = require('expo/config-plugins');
|
|
19
|
+
const {
|
|
20
|
+
MIN_IOS,
|
|
21
|
+
compareVersions,
|
|
22
|
+
transformPodfile,
|
|
23
|
+
} = require('./scripts/podfile-transform');
|
|
24
|
+
const pkg = require('./package.json');
|
|
25
|
+
|
|
26
|
+
const unquote = (s) => String(s).replace(/^"(.*)"$/, '$1');
|
|
27
|
+
|
|
28
|
+
/** Raises IPHONEOS_DEPLOYMENT_TARGET to MIN_IOS on the named native targets (xcode project object). */
|
|
29
|
+
function setExtensionDeploymentTarget(project, extensionTargets) {
|
|
30
|
+
const lists = project.pbxXCConfigurationList();
|
|
31
|
+
const configs = project.pbxXCBuildConfigurationSection();
|
|
32
|
+
const sections = project.pbxNativeTargetSection();
|
|
33
|
+
const targets = Object.keys(sections)
|
|
34
|
+
.map((key) => sections[key])
|
|
35
|
+
.filter((target) => typeof target === 'object');
|
|
36
|
+
const missing = extensionTargets.filter(
|
|
37
|
+
(name) => !targets.some((target) => unquote(target.name) === name)
|
|
38
|
+
);
|
|
39
|
+
if (missing.length) {
|
|
40
|
+
throw new Error(
|
|
41
|
+
`[react-native-zello-sdk] Extension target(s) ${missing.join(', ')} not found in the Xcode project. ` +
|
|
42
|
+
'List @zelloptt/react-native-zello-sdk before the plugin that creates them (Expo runs mods in reverse order).'
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
targets.forEach((target) => {
|
|
46
|
+
if (!extensionTargets.includes(unquote(target.name))) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const list = lists[target.buildConfigurationList];
|
|
50
|
+
(list ? list.buildConfigurations : []).forEach(({ value }) => {
|
|
51
|
+
const settings = configs[value].buildSettings;
|
|
52
|
+
const current = settings.IPHONEOS_DEPLOYMENT_TARGET;
|
|
53
|
+
if (!current || compareVersions(unquote(current), MIN_IOS) < 0) {
|
|
54
|
+
settings.IPHONEOS_DEPLOYMENT_TARGET = MIN_IOS;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
return project;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function withZelloSdk(config, props = {}) {
|
|
62
|
+
const extensionTargets = (props && props.extensionTargets) || [];
|
|
63
|
+
if (
|
|
64
|
+
!Array.isArray(extensionTargets) ||
|
|
65
|
+
!extensionTargets.every((name) => typeof name === 'string' && name)
|
|
66
|
+
) {
|
|
67
|
+
throw new Error(
|
|
68
|
+
'[react-native-zello-sdk] `extensionTargets` must be an array of target names (strings).'
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
config = withPodfile(config, (cfg) => {
|
|
73
|
+
const result = transformPodfile(cfg.modResults.contents, {
|
|
74
|
+
appTarget: cfg.modRequest.projectName,
|
|
75
|
+
extensionTargets,
|
|
76
|
+
});
|
|
77
|
+
if (result.manual.length) {
|
|
78
|
+
throw new Error(
|
|
79
|
+
`[react-native-zello-sdk] Could not migrate the Podfile:\n - ${result.manual.join('\n - ')}` +
|
|
80
|
+
(result.snippet ? `\n\n${result.snippet}` : '')
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
cfg.modResults.contents = result.content;
|
|
84
|
+
return cfg;
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
if (extensionTargets.length) {
|
|
88
|
+
config = withXcodeProject(config, (cfg) => {
|
|
89
|
+
setExtensionDeploymentTarget(cfg.modResults, extensionTargets);
|
|
90
|
+
return cfg;
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return config;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
module.exports = createRunOncePlugin(withZelloSdk, pkg.name, pkg.version);
|
|
97
|
+
module.exports.setExtensionDeploymentTarget = setExtensionDeploymentTarget;
|
|
@@ -5,16 +5,18 @@
|
|
|
5
5
|
--dark-hl-1: #D4D4D4;
|
|
6
6
|
--light-hl-2: #A31515;
|
|
7
7
|
--dark-hl-2: #CE9178;
|
|
8
|
-
--light-hl-3: #
|
|
8
|
+
--light-hl-3: #0451A5;
|
|
9
9
|
--dark-hl-3: #9CDCFE;
|
|
10
|
-
--light-hl-4: #
|
|
11
|
-
--dark-hl-4: #
|
|
12
|
-
--light-hl-5: #
|
|
13
|
-
--dark-hl-5: #
|
|
14
|
-
--light-hl-6: #
|
|
15
|
-
--dark-hl-6: #
|
|
16
|
-
--light-hl-7: #
|
|
17
|
-
--dark-hl-7: #
|
|
10
|
+
--light-hl-4: #001080;
|
|
11
|
+
--dark-hl-4: #9CDCFE;
|
|
12
|
+
--light-hl-5: #000000;
|
|
13
|
+
--dark-hl-5: #C8C8C8;
|
|
14
|
+
--light-hl-6: #0000FF;
|
|
15
|
+
--dark-hl-6: #569CD6;
|
|
16
|
+
--light-hl-7: #0070C1;
|
|
17
|
+
--dark-hl-7: #4FC1FF;
|
|
18
|
+
--light-hl-8: #008000;
|
|
19
|
+
--dark-hl-8: #6A9955;
|
|
18
20
|
--light-code-background: #FFFFFF;
|
|
19
21
|
--dark-code-background: #1E1E1E;
|
|
20
22
|
}
|
|
@@ -28,6 +30,7 @@
|
|
|
28
30
|
--hl-5: var(--light-hl-5);
|
|
29
31
|
--hl-6: var(--light-hl-6);
|
|
30
32
|
--hl-7: var(--light-hl-7);
|
|
33
|
+
--hl-8: var(--light-hl-8);
|
|
31
34
|
--code-background: var(--light-code-background);
|
|
32
35
|
} }
|
|
33
36
|
|
|
@@ -40,6 +43,7 @@
|
|
|
40
43
|
--hl-5: var(--dark-hl-5);
|
|
41
44
|
--hl-6: var(--dark-hl-6);
|
|
42
45
|
--hl-7: var(--dark-hl-7);
|
|
46
|
+
--hl-8: var(--dark-hl-8);
|
|
43
47
|
--code-background: var(--dark-code-background);
|
|
44
48
|
} }
|
|
45
49
|
|
|
@@ -52,6 +56,7 @@
|
|
|
52
56
|
--hl-5: var(--light-hl-5);
|
|
53
57
|
--hl-6: var(--light-hl-6);
|
|
54
58
|
--hl-7: var(--light-hl-7);
|
|
59
|
+
--hl-8: var(--light-hl-8);
|
|
55
60
|
--code-background: var(--light-code-background);
|
|
56
61
|
}
|
|
57
62
|
|
|
@@ -64,6 +69,7 @@
|
|
|
64
69
|
--hl-5: var(--dark-hl-5);
|
|
65
70
|
--hl-6: var(--dark-hl-6);
|
|
66
71
|
--hl-7: var(--dark-hl-7);
|
|
72
|
+
--hl-8: var(--dark-hl-8);
|
|
67
73
|
--code-background: var(--dark-code-background);
|
|
68
74
|
}
|
|
69
75
|
|
|
@@ -75,4 +81,5 @@
|
|
|
75
81
|
.hl-5 { color: var(--hl-5); }
|
|
76
82
|
.hl-6 { color: var(--hl-6); }
|
|
77
83
|
.hl-7 { color: var(--hl-7); }
|
|
84
|
+
.hl-8 { color: var(--hl-8); }
|
|
78
85
|
pre, code, math[display='block'] { background: var(--code-background); }
|