@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.
Files changed (104) hide show
  1. package/README.md +63 -21
  2. package/app.plugin.js +97 -0
  3. package/lib/commonjs/docs/assets/highlight.css +16 -9
  4. package/lib/commonjs/docs/classes/sdk.Zello.html +49 -49
  5. package/lib/commonjs/docs/classes/types.ZelloAlertMessage.html +7 -7
  6. package/lib/commonjs/docs/classes/types.ZelloChannel.html +10 -10
  7. package/lib/commonjs/docs/classes/types.ZelloChannelUser.html +4 -4
  8. package/lib/commonjs/docs/classes/types.ZelloDispatchCall.html +4 -4
  9. package/lib/commonjs/docs/classes/types.ZelloDispatchChannel.html +11 -11
  10. package/lib/commonjs/docs/classes/types.ZelloGroupConversation.html +13 -13
  11. package/lib/commonjs/docs/classes/types.ZelloHistoryAlertMessage.html +8 -8
  12. package/lib/commonjs/docs/classes/types.ZelloHistoryImageMessage.html +7 -7
  13. package/lib/commonjs/docs/classes/types.ZelloHistoryLocationMessage.html +11 -11
  14. package/lib/commonjs/docs/classes/types.ZelloHistoryTextMessage.html +8 -8
  15. package/lib/commonjs/docs/classes/types.ZelloHistoryVoiceMessage.html +9 -9
  16. package/lib/commonjs/docs/classes/types.ZelloImageMessage.html +8 -8
  17. package/lib/commonjs/docs/classes/types.ZelloIncomingEmergency.html +7 -7
  18. package/lib/commonjs/docs/classes/types.ZelloIncomingVoiceMessage.html +7 -7
  19. package/lib/commonjs/docs/classes/types.ZelloLocationMessage.html +10 -10
  20. package/lib/commonjs/docs/classes/types.ZelloOutgoingEmergency.html +5 -5
  21. package/lib/commonjs/docs/classes/types.ZelloOutgoingVoiceMessage.html +7 -7
  22. package/lib/commonjs/docs/classes/types.ZelloRecentEntry.html +7 -7
  23. package/lib/commonjs/docs/classes/types.ZelloTextMessage.html +7 -7
  24. package/lib/commonjs/docs/classes/types.ZelloTranscription.html +7 -7
  25. package/lib/commonjs/docs/classes/types.ZelloTranslation.html +4 -4
  26. package/lib/commonjs/docs/classes/types.ZelloUser.html +10 -10
  27. package/lib/commonjs/docs/classes/types.ZelloUserSupportedFeatures.html +3 -3
  28. package/lib/commonjs/docs/enums/events.ZelloEvent.html +46 -46
  29. package/lib/commonjs/docs/enums/types.ZelloAccountStatus.html +3 -3
  30. package/lib/commonjs/docs/enums/types.ZelloChannelAlertLevel.html +3 -3
  31. package/lib/commonjs/docs/enums/types.ZelloChannelConnectionStatus.html +4 -4
  32. package/lib/commonjs/docs/enums/types.ZelloChannelType.html +5 -5
  33. package/lib/commonjs/docs/enums/types.ZelloConnectionError.html +4 -4
  34. package/lib/commonjs/docs/enums/types.ZelloConnectionState.html +5 -5
  35. package/lib/commonjs/docs/enums/types.ZelloContactType.html +5 -5
  36. package/lib/commonjs/docs/enums/types.ZelloDispatchCallStatus.html +5 -5
  37. package/lib/commonjs/docs/enums/types.ZelloOutgoingVoiceMessageError.html +3 -3
  38. package/lib/commonjs/docs/enums/types.ZelloOutgoingVoiceMessageState.html +6 -6
  39. package/lib/commonjs/docs/enums/types.ZelloRecentEntryType.html +6 -6
  40. package/lib/commonjs/docs/enums/types.ZelloUserStatus.html +5 -5
  41. package/lib/commonjs/docs/index.html +55 -24
  42. package/lib/commonjs/docs/interfaces/specs_NativeZelloSdk.Spec.html +31 -31
  43. package/lib/commonjs/docs/types/types.ZelloChannelOptions.html +9 -9
  44. package/lib/commonjs/docs/types/types.ZelloConfig.html +3 -3
  45. package/lib/commonjs/docs/types/types.ZelloConsoleSettings.html +7 -7
  46. package/lib/commonjs/docs/types/types.ZelloContact.html +4 -4
  47. package/lib/commonjs/docs/types/types.ZelloCredentials.html +4 -4
  48. package/lib/commonjs/docs/types/types.ZelloHistoryMessage.html +6 -6
  49. package/lib/commonjs/docs/types/types.ZelloMessage.html +5 -5
  50. package/lib/commonjs/docs/variables/specs_NativeZelloSdk.default.html +1 -1
  51. package/lib/module/docs/assets/highlight.css +16 -9
  52. package/lib/module/docs/classes/sdk.Zello.html +49 -49
  53. package/lib/module/docs/classes/types.ZelloAlertMessage.html +7 -7
  54. package/lib/module/docs/classes/types.ZelloChannel.html +10 -10
  55. package/lib/module/docs/classes/types.ZelloChannelUser.html +4 -4
  56. package/lib/module/docs/classes/types.ZelloDispatchCall.html +4 -4
  57. package/lib/module/docs/classes/types.ZelloDispatchChannel.html +11 -11
  58. package/lib/module/docs/classes/types.ZelloGroupConversation.html +13 -13
  59. package/lib/module/docs/classes/types.ZelloHistoryAlertMessage.html +8 -8
  60. package/lib/module/docs/classes/types.ZelloHistoryImageMessage.html +7 -7
  61. package/lib/module/docs/classes/types.ZelloHistoryLocationMessage.html +11 -11
  62. package/lib/module/docs/classes/types.ZelloHistoryTextMessage.html +8 -8
  63. package/lib/module/docs/classes/types.ZelloHistoryVoiceMessage.html +9 -9
  64. package/lib/module/docs/classes/types.ZelloImageMessage.html +8 -8
  65. package/lib/module/docs/classes/types.ZelloIncomingEmergency.html +7 -7
  66. package/lib/module/docs/classes/types.ZelloIncomingVoiceMessage.html +7 -7
  67. package/lib/module/docs/classes/types.ZelloLocationMessage.html +10 -10
  68. package/lib/module/docs/classes/types.ZelloOutgoingEmergency.html +5 -5
  69. package/lib/module/docs/classes/types.ZelloOutgoingVoiceMessage.html +7 -7
  70. package/lib/module/docs/classes/types.ZelloRecentEntry.html +7 -7
  71. package/lib/module/docs/classes/types.ZelloTextMessage.html +7 -7
  72. package/lib/module/docs/classes/types.ZelloTranscription.html +7 -7
  73. package/lib/module/docs/classes/types.ZelloTranslation.html +4 -4
  74. package/lib/module/docs/classes/types.ZelloUser.html +10 -10
  75. package/lib/module/docs/classes/types.ZelloUserSupportedFeatures.html +3 -3
  76. package/lib/module/docs/enums/events.ZelloEvent.html +46 -46
  77. package/lib/module/docs/enums/types.ZelloAccountStatus.html +3 -3
  78. package/lib/module/docs/enums/types.ZelloChannelAlertLevel.html +3 -3
  79. package/lib/module/docs/enums/types.ZelloChannelConnectionStatus.html +4 -4
  80. package/lib/module/docs/enums/types.ZelloChannelType.html +5 -5
  81. package/lib/module/docs/enums/types.ZelloConnectionError.html +4 -4
  82. package/lib/module/docs/enums/types.ZelloConnectionState.html +5 -5
  83. package/lib/module/docs/enums/types.ZelloContactType.html +5 -5
  84. package/lib/module/docs/enums/types.ZelloDispatchCallStatus.html +5 -5
  85. package/lib/module/docs/enums/types.ZelloOutgoingVoiceMessageError.html +3 -3
  86. package/lib/module/docs/enums/types.ZelloOutgoingVoiceMessageState.html +6 -6
  87. package/lib/module/docs/enums/types.ZelloRecentEntryType.html +6 -6
  88. package/lib/module/docs/enums/types.ZelloUserStatus.html +5 -5
  89. package/lib/module/docs/index.html +55 -24
  90. package/lib/module/docs/interfaces/specs_NativeZelloSdk.Spec.html +31 -31
  91. package/lib/module/docs/types/types.ZelloChannelOptions.html +9 -9
  92. package/lib/module/docs/types/types.ZelloConfig.html +3 -3
  93. package/lib/module/docs/types/types.ZelloConsoleSettings.html +7 -7
  94. package/lib/module/docs/types/types.ZelloContact.html +4 -4
  95. package/lib/module/docs/types/types.ZelloCredentials.html +4 -4
  96. package/lib/module/docs/types/types.ZelloHistoryMessage.html +6 -6
  97. package/lib/module/docs/types/types.ZelloMessage.html +5 -5
  98. package/lib/module/docs/variables/specs_NativeZelloSdk.default.html +1 -1
  99. package/package.json +23 -2
  100. package/react-native-zello-sdk.podspec +21 -47
  101. package/scripts/podfile-transform.js +416 -0
  102. package/scripts/setup-ios.js +248 -0
  103. package/scripts/zello_pods.rb +128 -0
  104. 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
- #### Native ZelloSDK: CocoaPods (default) or Swift Package Manager
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
- The native ZelloSDK can be consumed two ways. **Full CocoaPods removal is not yet possible** because React Native itself still requires CocoaPods for its core (Swift-Package-Manager-only React Native is an [in-progress RN proposal](https://github.com/react-native-community/discussions-and-proposals/pull/994)). So, like [`sentry-react-native`](https://github.com/getsentry/sentry-react-native/issues/5780), the React Native layer stays on CocoaPods while the native ZelloSDK can opt into SPM.
35
+ Requirements:
36
36
 
37
- > [!NOTE]
38
- > CocoaPods support for the native ZelloSDK is **deprecated** (still supported); Swift Package Manager is the recommended path going forward.
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
- - **CocoaPods (default):** just `bundle exec pod install` — the `ZelloSDK` pod is pulled automatically.
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
- #### CocoaPods: required build setting (Xcode 16/26+)
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
- When using the **CocoaPods** path, ZelloSDK's prebuilt binary links library-evolution ("resilient") symbols from its Swift dependencies. You must build those pods for distribution in your `Podfile` `post_install`, or the app will crash at launch with `dyld: Symbol not found`:
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
- post_install do |installer|
53
- installer.pods_project.targets.each do |target|
54
- if %w[PhoneNumberKit SnowplowTracker CocoaLumberjack PromisesSwift].include?(target.name)
55
- target.build_configurations.each do |config|
56
- config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
57
- end
58
- end
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
- The **SPM** path does not need this — its XCFrameworks are already built resiliently.
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: #001080;
8
+ --light-hl-3: #0451A5;
9
9
  --dark-hl-3: #9CDCFE;
10
- --light-hl-4: #000000;
11
- --dark-hl-4: #C8C8C8;
12
- --light-hl-5: #0000FF;
13
- --dark-hl-5: #569CD6;
14
- --light-hl-6: #0070C1;
15
- --dark-hl-6: #4FC1FF;
16
- --light-hl-7: #008000;
17
- --dark-hl-7: #6A9955;
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); }