@namiml/expo-sdk 3.4.5 → 3.4.6-dev.202607162357

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namiml/expo-sdk",
3
- "version": "3.4.5",
3
+ "version": "3.4.6-dev.202607162357",
4
4
  "type": "module",
5
5
  "description": "Nami Expo SDK — paywall and subscription management for Expo apps",
6
6
  "main": "./dist/index.cjs",
@@ -29,8 +29,8 @@
29
29
  "prepublishOnly": "yarn clean && yarn build:prod"
30
30
  },
31
31
  "dependencies": {
32
- "@namiml/expo-nami-iap": "3.4.5",
33
- "@namiml/sdk-core": "3.4.5",
32
+ "@namiml/expo-nami-iap": "3.4.6-dev.202607162357",
33
+ "@namiml/sdk-core": "3.4.6-dev.202607162357",
34
34
  "react-native-qrcode-svg": "^6.3.21",
35
35
  "react-native-safe-area-context": "^5.6.0",
36
36
  "react-native-svg": "^15.15.4"
@@ -4,6 +4,7 @@ import { usePaywallContext } from '../../context/PaywallContext';
4
4
  import { applyStyles, textStyles, childSpacingStyle, parseSize, parseColor } from '../../utils/styles';
5
5
  import { resolveFontDescriptor } from '../../utils/fonts';
6
6
  import { buildSmartTextReplacements, interpolateSmartText } from '../../utils/smartText';
7
+ import { textAccessibilityRole } from '../../utils/rendering';
7
8
  import { formatDate, isValidISODate } from '@namiml/sdk-core';
8
9
  import { useInheritedFocusedStyle } from '../../context/FocusContext';
9
10
 
@@ -251,6 +252,7 @@ export const NamiText: React.FC<Props> = ({ component, scaleFactor, isSymbol, pa
251
252
  numberOfLines={numberOfLines}
252
253
  ellipsizeMode={ellipsizeMode}
253
254
  allowFontScaling={false}
255
+ accessibilityRole={textAccessibilityRole(component)}
254
256
  >
255
257
  {hasInlineFormatting ? (
256
258
  inlineTokens.map((token: MarkdownToken, index: number) => {
@@ -270,3 +270,13 @@ function testObjectMatches(
270
270
  if (operator === 'lte') return value <= expected;
271
271
  return false;
272
272
  }
273
+
274
+ /**
275
+ * WCAG 1.3.1 (NAM-1451): title-type text is a structural heading.
276
+ * Boolean heading only — RN cannot express heading levels.
277
+ */
278
+ export function textAccessibilityRole(
279
+ component: { textType?: string },
280
+ ): 'header' | undefined {
281
+ return component.textType === 'title' ? 'header' : undefined;
282
+ }