@ankhorage/zora 25.8.15 → 25.8.16

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 25.8.16
4
+
5
+ ### Patch Changes
6
+
7
+ - 63c778f: Update dependencies: `@react-native-vector-icons/fontawesome5`, `@react-native-vector-icons/fontawesome6`, `@react-native-vector-icons/fontawesome`, `@react-native-vector-icons/ionicons`, `@react-native-vector-icons/material-design-icons`.
8
+
3
9
  ## 25.8.15
4
10
 
5
11
  ### Patch Changes
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # @ankhorage/zora
5
5
 
6
- ![license: MIT](././paradox/badges/license.svg) ![npm: v25.8.15](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![paradox: warnings](././paradox/badges/docs.svg)
6
+ ![license: MIT](././paradox/badges/license.svg) ![npm: v25.8.16](././paradox/badges/npm.svg) ![runtime: bun](././paradox/badges/runtime.svg) ![typescript: strict](././paradox/badges/typescript.svg) ![eslint: checked](././paradox/badges/eslint.svg) ![prettier: checked](././paradox/badges/prettier.svg) ![build: checked](././paradox/badges/build.svg) ![tests: checked](././paradox/badges/tests.svg) ![paradox: warnings](././paradox/badges/docs.svg)
7
7
 
8
8
  Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.
9
9
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ankhorage/zora",
3
3
  "type": "module",
4
- "version": "25.8.15",
4
+ "version": "25.8.16",
5
5
  "description": "Opinionated React Native and React Native Web UI kit built on @ankhorage/surface.",
6
6
  "homepage": "https://github.com/ankhorage/zora#readme",
7
7
  "bugs": {
@@ -26,11 +26,11 @@
26
26
  "ui-kit"
27
27
  ],
28
28
  "peerDependencies": {
29
- "@react-native-vector-icons/fontawesome": "^13.1.3",
30
- "@react-native-vector-icons/fontawesome5": "^13.1.3",
31
- "@react-native-vector-icons/fontawesome6": "^13.1.4",
32
- "@react-native-vector-icons/ionicons": "^13.1.3",
33
- "@react-native-vector-icons/material-design-icons": "^13.1.3",
29
+ "@react-native-vector-icons/fontawesome": "^13.1.3 || ^14.0.0",
30
+ "@react-native-vector-icons/fontawesome5": "^13.1.3 || ^14.0.0",
31
+ "@react-native-vector-icons/fontawesome6": "^13.1.4 || ^14.0.0",
32
+ "@react-native-vector-icons/ionicons": "^13.1.3 || ^14.0.0",
33
+ "@react-native-vector-icons/material-design-icons": "^13.1.3 || ^14.0.0",
34
34
  "react": "19.2.3",
35
35
  "react-native": "0.86.x",
36
36
  "react-native-gesture-handler": "~2.32.0",
@@ -151,11 +151,11 @@
151
151
  "devDependencies": {
152
152
  "@ankhorage/devtools": "^2.3.18",
153
153
  "@ankhorage/paradox": "^0.3.5",
154
- "@react-native-vector-icons/fontawesome": "^13.1.5",
155
- "@react-native-vector-icons/fontawesome5": "^13.1.5",
156
- "@react-native-vector-icons/fontawesome6": "^13.1.5",
157
- "@react-native-vector-icons/ionicons": "^13.1.5",
158
- "@react-native-vector-icons/material-design-icons": "^13.1.5",
154
+ "@react-native-vector-icons/fontawesome": "^14.0.0",
155
+ "@react-native-vector-icons/fontawesome5": "^14.0.0",
156
+ "@react-native-vector-icons/fontawesome6": "^14.0.0",
157
+ "@react-native-vector-icons/ionicons": "^14.0.0",
158
+ "@react-native-vector-icons/material-design-icons": "^14.0.0",
159
159
  "@types/bun": "^1.4.2",
160
160
  "@types/node": "^26.6.5",
161
161
  "@types/react": "^19.3.0",
@@ -29,6 +29,26 @@ const RNVI_PLUGINS = [
29
29
  '@react-native-vector-icons/fontawesome6',
30
30
  '@react-native-vector-icons/ionicons',
31
31
  ] as const;
32
+ const EXPO_57_GRID_WORKSPACES_CONTRACT = {
33
+ expo: '~57.0.30',
34
+ metroConfig: '0.86.3',
35
+ typesReact: '~19.2.18',
36
+ zora: '25.8.15',
37
+ } as const;
38
+ const GRID_WORKSPACES_MANIFEST = 'examples/grid-workspaces/package.json';
39
+
40
+ function readRenovatePackageRule(packageName: string): string {
41
+ const renovateSource = readFileSync(join(ROOT, 'renovate.json5'), 'utf8');
42
+ const packageMatcher = `matchPackageNames: ['${packageName}'],`;
43
+ const ruleStart = renovateSource.lastIndexOf(' {', renovateSource.indexOf(packageMatcher));
44
+ const ruleEnd = renovateSource.indexOf('\n },', renovateSource.indexOf(packageMatcher));
45
+
46
+ if (ruleStart === -1 || ruleEnd === -1) {
47
+ throw new Error(`Expected a Renovate rule for ${packageName}.`);
48
+ }
49
+
50
+ return renovateSource.slice(ruleStart, ruleEnd);
51
+ }
32
52
 
33
53
  function readJson(path: string): Record<string, unknown> {
34
54
  const value: unknown = JSON.parse(readFileSync(path, 'utf8'));
@@ -137,6 +157,36 @@ describe('Expo 57 example boundary', () => {
137
157
  expect(scaffoldSource).not.toContain('ZoraTabBar');
138
158
  });
139
159
 
160
+ test('pins Grid Workspaces native tooling to the Expo 57 React Native contract', () => {
161
+ const packageJson = readExamplePackage('examples/grid-workspaces');
162
+ const dependencies = readRecord(packageJson, 'dependencies');
163
+ const development = readRecord(packageJson, 'devDependencies');
164
+
165
+ expect(dependencies.expo).toBe(EXPO_57_GRID_WORKSPACES_CONTRACT.expo);
166
+ expect(dependencies['@ankhorage/zora']).toBe(EXPO_57_GRID_WORKSPACES_CONTRACT.zora);
167
+ expect(dependencies['@react-native/metro-config']).toBe(
168
+ EXPO_57_GRID_WORKSPACES_CONTRACT.metroConfig,
169
+ );
170
+ expect(development['@types/react']).toBe(EXPO_57_GRID_WORKSPACES_CONTRACT.typesReact);
171
+ });
172
+
173
+ test('limits Grid Workspaces native-tooling Renovate constraints to its manifest', () => {
174
+ const packageJson = readJson(join(ROOT, 'package.json'));
175
+ const development = readRecord(packageJson, 'devDependencies');
176
+
177
+ for (const [packageName, allowedVersion] of [
178
+ ['@react-native/metro-config', EXPO_57_GRID_WORKSPACES_CONTRACT.metroConfig],
179
+ ['@types/react', EXPO_57_GRID_WORKSPACES_CONTRACT.typesReact],
180
+ ]) {
181
+ const renovateRule = readRenovatePackageRule(packageName);
182
+
183
+ expect(renovateRule).toContain(`matchFileNames: ['${GRID_WORKSPACES_MANIFEST}'],`);
184
+ expect(renovateRule).toContain(`allowedVersions: '${allowedVersion}',`);
185
+ }
186
+
187
+ expect(development['@types/react']).not.toBe(EXPO_57_GRID_WORKSPACES_CONTRACT.typesReact);
188
+ });
189
+
140
190
  test('uses Navigator native tabs in every router example', () => {
141
191
  for (const directory of ROUTER_EXAMPLE_DIRS) {
142
192
  const packageJson = readExamplePackage(directory);