melta-app 0.6.0 → 0.8.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 (296) hide show
  1. package/README.md +231 -21
  2. package/docs/architecture.md +12 -5
  3. package/eslint-rules/melta.d.mts +45 -0
  4. package/eslint-rules/melta.mjs +32 -5
  5. package/lib/module/a11y/tap-target.js +41 -0
  6. package/lib/module/a11y/tap-target.js.map +1 -0
  7. package/lib/module/components/ActionSheet.js +20 -6
  8. package/lib/module/components/ActionSheet.js.map +1 -1
  9. package/lib/module/components/Alert.js +11 -7
  10. package/lib/module/components/Alert.js.map +1 -1
  11. package/lib/module/components/Avatar.js +7 -2
  12. package/lib/module/components/Avatar.js.map +1 -1
  13. package/lib/module/components/BottomSheet.js +11 -3
  14. package/lib/module/components/BottomSheet.js.map +1 -1
  15. package/lib/module/components/Card.js +4 -3
  16. package/lib/module/components/Card.js.map +1 -1
  17. package/lib/module/components/Checkbox.js +8 -5
  18. package/lib/module/components/Checkbox.js.map +1 -1
  19. package/lib/module/components/EmptyState.js +2 -1
  20. package/lib/module/components/EmptyState.js.map +1 -1
  21. package/lib/module/components/Header.js.map +1 -1
  22. package/lib/module/components/Image.js +5 -3
  23. package/lib/module/components/Image.js.map +1 -1
  24. package/lib/module/components/Modal.js +12 -4
  25. package/lib/module/components/Modal.js.map +1 -1
  26. package/lib/module/components/Progress.js +2 -1
  27. package/lib/module/components/Progress.js.map +1 -1
  28. package/lib/module/components/Radio.js +11 -3
  29. package/lib/module/components/Radio.js.map +1 -1
  30. package/lib/module/components/Screen.js +28 -3
  31. package/lib/module/components/Screen.js.map +1 -1
  32. package/lib/module/components/Skeleton.js +2 -1
  33. package/lib/module/components/Skeleton.js.map +1 -1
  34. package/lib/module/components/Surface.js +2 -1
  35. package/lib/module/components/Surface.js.map +1 -1
  36. package/lib/module/components/TextField.js +16 -4
  37. package/lib/module/components/TextField.js.map +1 -1
  38. package/lib/module/components/Toast.js +17 -9
  39. package/lib/module/components/Toast.js.map +1 -1
  40. package/lib/module/components/Toggle.js +13 -4
  41. package/lib/module/components/Toggle.js.map +1 -1
  42. package/lib/module/components/alert.styles.js +12 -26
  43. package/lib/module/components/alert.styles.js.map +1 -1
  44. package/lib/module/components/avatar.styles.js +24 -2
  45. package/lib/module/components/avatar.styles.js.map +1 -1
  46. package/lib/module/components/card.validate.js.map +1 -1
  47. package/lib/module/components/checkbox.styles.js +5 -2
  48. package/lib/module/components/checkbox.styles.js.map +1 -1
  49. package/lib/module/components/index.js.map +1 -1
  50. package/lib/module/components/modal.styles.js +9 -0
  51. package/lib/module/components/modal.styles.js.map +1 -1
  52. package/lib/module/components/radio.styles.js +11 -2
  53. package/lib/module/components/radio.styles.js.map +1 -1
  54. package/lib/module/components/safe-area-registry.js +64 -13
  55. package/lib/module/components/safe-area-registry.js.map +1 -1
  56. package/lib/module/components/status-colors.js +53 -0
  57. package/lib/module/components/status-colors.js.map +1 -0
  58. package/lib/module/components/textfield.styles.js +15 -8
  59. package/lib/module/components/textfield.styles.js.map +1 -1
  60. package/lib/module/components/toast.styles.js +36 -25
  61. package/lib/module/components/toast.styles.js.map +1 -1
  62. package/lib/module/components/toggle.styles.js +20 -0
  63. package/lib/module/components/toggle.styles.js.map +1 -1
  64. package/lib/module/icons/Icon.js +4 -1
  65. package/lib/module/icons/Icon.js.map +1 -1
  66. package/lib/module/icons/icon.styles.js +32 -1
  67. package/lib/module/icons/icon.styles.js.map +1 -1
  68. package/lib/module/icons/index.js.map +1 -1
  69. package/lib/module/index.js.map +1 -1
  70. package/lib/module/primitives/Button.js +23 -11
  71. package/lib/module/primitives/Button.js.map +1 -1
  72. package/lib/module/primitives/Metric.js +2 -1
  73. package/lib/module/primitives/Metric.js.map +1 -1
  74. package/lib/module/primitives/Row.js.map +1 -1
  75. package/lib/module/primitives/Stack.js.map +1 -1
  76. package/lib/module/primitives/Tag.js +15 -7
  77. package/lib/module/primitives/Tag.js.map +1 -1
  78. package/lib/module/primitives/Text.js +13 -5
  79. package/lib/module/primitives/Text.js.map +1 -1
  80. package/lib/module/primitives/_internal/focus-ring.js.map +1 -1
  81. package/lib/module/primitives/button.styles.js +58 -8
  82. package/lib/module/primitives/button.styles.js.map +1 -1
  83. package/lib/module/primitives/index.js.map +1 -1
  84. package/lib/module/primitives/metric.styles.js +2 -2
  85. package/lib/module/primitives/metric.styles.js.map +1 -1
  86. package/lib/module/primitives/tag.styles.js +42 -3
  87. package/lib/module/primitives/tag.styles.js.map +1 -1
  88. package/lib/module/primitives/text.styles.js +6 -7
  89. package/lib/module/primitives/text.styles.js.map +1 -1
  90. package/lib/module/safe-area/index.js +11 -5
  91. package/lib/module/safe-area/index.js.map +1 -1
  92. package/lib/module/theme/ThemeProvider.js +5 -2
  93. package/lib/module/theme/ThemeProvider.js.map +1 -1
  94. package/lib/module/theme/define-theme.js +14 -1
  95. package/lib/module/theme/define-theme.js.map +1 -1
  96. package/lib/module/theme/index.js +6 -8
  97. package/lib/module/theme/index.js.map +1 -1
  98. package/lib/module/theme/letter-spacing.js +20 -0
  99. package/lib/module/theme/letter-spacing.js.map +1 -0
  100. package/lib/module/theme/line-height.js +18 -2
  101. package/lib/module/theme/line-height.js.map +1 -1
  102. package/lib/module/theme/native-theme.js +1 -1
  103. package/lib/typescript/src/a11y/tap-target.d.ts +34 -0
  104. package/lib/typescript/src/a11y/tap-target.d.ts.map +1 -0
  105. package/lib/typescript/src/components/ActionSheet.d.ts +8 -1
  106. package/lib/typescript/src/components/ActionSheet.d.ts.map +1 -1
  107. package/lib/typescript/src/components/Alert.d.ts +9 -2
  108. package/lib/typescript/src/components/Alert.d.ts.map +1 -1
  109. package/lib/typescript/src/components/Avatar.d.ts +1 -1
  110. package/lib/typescript/src/components/Avatar.d.ts.map +1 -1
  111. package/lib/typescript/src/components/BottomSheet.d.ts +4 -1
  112. package/lib/typescript/src/components/BottomSheet.d.ts.map +1 -1
  113. package/lib/typescript/src/components/Card.d.ts +2 -2
  114. package/lib/typescript/src/components/Checkbox.d.ts +3 -3
  115. package/lib/typescript/src/components/Checkbox.d.ts.map +1 -1
  116. package/lib/typescript/src/components/Image.d.ts +4 -3
  117. package/lib/typescript/src/components/Image.d.ts.map +1 -1
  118. package/lib/typescript/src/components/Modal.d.ts +9 -3
  119. package/lib/typescript/src/components/Modal.d.ts.map +1 -1
  120. package/lib/typescript/src/components/Progress.d.ts +1 -1
  121. package/lib/typescript/src/components/Progress.d.ts.map +1 -1
  122. package/lib/typescript/src/components/Radio.d.ts +3 -2
  123. package/lib/typescript/src/components/Radio.d.ts.map +1 -1
  124. package/lib/typescript/src/components/Screen.d.ts +28 -5
  125. package/lib/typescript/src/components/Screen.d.ts.map +1 -1
  126. package/lib/typescript/src/components/Skeleton.d.ts +1 -1
  127. package/lib/typescript/src/components/Skeleton.d.ts.map +1 -1
  128. package/lib/typescript/src/components/Surface.d.ts +1 -1
  129. package/lib/typescript/src/components/Surface.d.ts.map +1 -1
  130. package/lib/typescript/src/components/TextField.d.ts +11 -4
  131. package/lib/typescript/src/components/TextField.d.ts.map +1 -1
  132. package/lib/typescript/src/components/Toast.d.ts +10 -3
  133. package/lib/typescript/src/components/Toast.d.ts.map +1 -1
  134. package/lib/typescript/src/components/Toggle.d.ts +3 -2
  135. package/lib/typescript/src/components/Toggle.d.ts.map +1 -1
  136. package/lib/typescript/src/components/action-sheet.styles.d.ts +1 -1
  137. package/lib/typescript/src/components/action-sheet.styles.d.ts.map +1 -1
  138. package/lib/typescript/src/components/alert.styles.d.ts +14 -14
  139. package/lib/typescript/src/components/alert.styles.d.ts.map +1 -1
  140. package/lib/typescript/src/components/avatar.styles.d.ts +36 -1
  141. package/lib/typescript/src/components/avatar.styles.d.ts.map +1 -1
  142. package/lib/typescript/src/components/bottom-sheet.styles.d.ts +1 -1
  143. package/lib/typescript/src/components/bottom-sheet.styles.d.ts.map +1 -1
  144. package/lib/typescript/src/components/card.styles.d.ts +1 -1
  145. package/lib/typescript/src/components/card.styles.d.ts.map +1 -1
  146. package/lib/typescript/src/components/card.validate.d.ts +1 -1
  147. package/lib/typescript/src/components/card.validate.d.ts.map +1 -1
  148. package/lib/typescript/src/components/checkbox.styles.d.ts +6 -3
  149. package/lib/typescript/src/components/checkbox.styles.d.ts.map +1 -1
  150. package/lib/typescript/src/components/empty-state.styles.d.ts +1 -1
  151. package/lib/typescript/src/components/empty-state.styles.d.ts.map +1 -1
  152. package/lib/typescript/src/components/header.styles.d.ts +1 -1
  153. package/lib/typescript/src/components/header.styles.d.ts.map +1 -1
  154. package/lib/typescript/src/components/image.styles.d.ts +1 -1
  155. package/lib/typescript/src/components/image.styles.d.ts.map +1 -1
  156. package/lib/typescript/src/components/index.d.ts +18 -18
  157. package/lib/typescript/src/components/index.d.ts.map +1 -1
  158. package/lib/typescript/src/components/modal.styles.d.ts +13 -2
  159. package/lib/typescript/src/components/modal.styles.d.ts.map +1 -1
  160. package/lib/typescript/src/components/progress.styles.d.ts +1 -1
  161. package/lib/typescript/src/components/progress.styles.d.ts.map +1 -1
  162. package/lib/typescript/src/components/radio.styles.d.ts +10 -2
  163. package/lib/typescript/src/components/radio.styles.d.ts.map +1 -1
  164. package/lib/typescript/src/components/safe-area-registry.d.ts +47 -11
  165. package/lib/typescript/src/components/safe-area-registry.d.ts.map +1 -1
  166. package/lib/typescript/src/components/screen.styles.d.ts +1 -1
  167. package/lib/typescript/src/components/screen.styles.d.ts.map +1 -1
  168. package/lib/typescript/src/components/skeleton.styles.d.ts +1 -1
  169. package/lib/typescript/src/components/skeleton.styles.d.ts.map +1 -1
  170. package/lib/typescript/src/components/status-colors.d.ts +33 -0
  171. package/lib/typescript/src/components/status-colors.d.ts.map +1 -0
  172. package/lib/typescript/src/components/surface.styles.d.ts +1 -1
  173. package/lib/typescript/src/components/surface.styles.d.ts.map +1 -1
  174. package/lib/typescript/src/components/textfield.styles.d.ts +9 -5
  175. package/lib/typescript/src/components/textfield.styles.d.ts.map +1 -1
  176. package/lib/typescript/src/components/toast.styles.d.ts +34 -14
  177. package/lib/typescript/src/components/toast.styles.d.ts.map +1 -1
  178. package/lib/typescript/src/components/toggle.styles.d.ts +17 -1
  179. package/lib/typescript/src/components/toggle.styles.d.ts.map +1 -1
  180. package/lib/typescript/src/icons/Icon.d.ts +12 -6
  181. package/lib/typescript/src/icons/Icon.d.ts.map +1 -1
  182. package/lib/typescript/src/icons/icon.styles.d.ts +14 -2
  183. package/lib/typescript/src/icons/icon.styles.d.ts.map +1 -1
  184. package/lib/typescript/src/icons/index.d.ts +3 -3
  185. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  186. package/lib/typescript/src/index.d.ts +4 -4
  187. package/lib/typescript/src/index.d.ts.map +1 -1
  188. package/lib/typescript/src/primitives/Button.d.ts +8 -4
  189. package/lib/typescript/src/primitives/Button.d.ts.map +1 -1
  190. package/lib/typescript/src/primitives/Metric.d.ts +1 -1
  191. package/lib/typescript/src/primitives/Metric.d.ts.map +1 -1
  192. package/lib/typescript/src/primitives/Row.d.ts +2 -2
  193. package/lib/typescript/src/primitives/Row.d.ts.map +1 -1
  194. package/lib/typescript/src/primitives/Stack.d.ts +2 -2
  195. package/lib/typescript/src/primitives/Stack.d.ts.map +1 -1
  196. package/lib/typescript/src/primitives/Tag.d.ts +2 -2
  197. package/lib/typescript/src/primitives/Tag.d.ts.map +1 -1
  198. package/lib/typescript/src/primitives/Text.d.ts +20 -6
  199. package/lib/typescript/src/primitives/Text.d.ts.map +1 -1
  200. package/lib/typescript/src/primitives/button.styles.d.ts +44 -7
  201. package/lib/typescript/src/primitives/button.styles.d.ts.map +1 -1
  202. package/lib/typescript/src/primitives/index.d.ts +6 -6
  203. package/lib/typescript/src/primitives/index.d.ts.map +1 -1
  204. package/lib/typescript/src/primitives/metric.styles.d.ts +1 -1
  205. package/lib/typescript/src/primitives/metric.styles.d.ts.map +1 -1
  206. package/lib/typescript/src/primitives/row.styles.d.ts +1 -1
  207. package/lib/typescript/src/primitives/row.styles.d.ts.map +1 -1
  208. package/lib/typescript/src/primitives/stack.styles.d.ts +1 -1
  209. package/lib/typescript/src/primitives/stack.styles.d.ts.map +1 -1
  210. package/lib/typescript/src/primitives/tag.styles.d.ts +34 -1
  211. package/lib/typescript/src/primitives/tag.styles.d.ts.map +1 -1
  212. package/lib/typescript/src/primitives/text.styles.d.ts +2 -4
  213. package/lib/typescript/src/primitives/text.styles.d.ts.map +1 -1
  214. package/lib/typescript/src/safe-area/index.d.ts +19 -5
  215. package/lib/typescript/src/safe-area/index.d.ts.map +1 -1
  216. package/lib/typescript/src/theme/ThemeProvider.d.ts +2 -2
  217. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  218. package/lib/typescript/src/theme/define-theme.d.ts +15 -2
  219. package/lib/typescript/src/theme/define-theme.d.ts.map +1 -1
  220. package/lib/typescript/src/theme/index.d.ts +14 -14
  221. package/lib/typescript/src/theme/index.d.ts.map +1 -1
  222. package/lib/typescript/src/theme/letter-spacing.d.ts +15 -0
  223. package/lib/typescript/src/theme/letter-spacing.d.ts.map +1 -0
  224. package/lib/typescript/src/theme/line-height.d.ts +19 -2
  225. package/lib/typescript/src/theme/line-height.d.ts.map +1 -1
  226. package/lib/typescript/src/theme/native-theme.d.ts +1 -1
  227. package/lib/typescript/src/theme/native-theme.d.ts.map +1 -1
  228. package/lib/typescript/src/theme/types.d.ts +1 -1
  229. package/package.json +22 -7
  230. package/src/a11y/tap-target.ts +38 -0
  231. package/src/components/ActionSheet.tsx +25 -15
  232. package/src/components/Alert.tsx +37 -10
  233. package/src/components/Avatar.tsx +12 -4
  234. package/src/components/BottomSheet.tsx +16 -13
  235. package/src/components/Card.tsx +9 -8
  236. package/src/components/Checkbox.tsx +12 -9
  237. package/src/components/EmptyState.tsx +7 -6
  238. package/src/components/Header.tsx +4 -4
  239. package/src/components/Image.tsx +9 -7
  240. package/src/components/Modal.tsx +22 -6
  241. package/src/components/Progress.tsx +5 -4
  242. package/src/components/Radio.tsx +11 -6
  243. package/src/components/Screen.tsx +66 -8
  244. package/src/components/Skeleton.tsx +6 -5
  245. package/src/components/Surface.tsx +5 -4
  246. package/src/components/TextField.tsx +25 -7
  247. package/src/components/Toast.tsx +33 -11
  248. package/src/components/Toggle.tsx +15 -6
  249. package/src/components/action-sheet.styles.ts +1 -1
  250. package/src/components/alert.styles.ts +13 -25
  251. package/src/components/avatar.styles.ts +25 -3
  252. package/src/components/bottom-sheet.styles.ts +1 -1
  253. package/src/components/card.styles.ts +1 -1
  254. package/src/components/card.validate.ts +2 -2
  255. package/src/components/checkbox.styles.ts +6 -3
  256. package/src/components/empty-state.styles.ts +1 -1
  257. package/src/components/header.styles.ts +1 -1
  258. package/src/components/image.styles.ts +1 -1
  259. package/src/components/index.ts +18 -18
  260. package/src/components/modal.styles.ts +11 -2
  261. package/src/components/progress.styles.ts +1 -1
  262. package/src/components/radio.styles.ts +11 -2
  263. package/src/components/safe-area-registry.ts +81 -14
  264. package/src/components/screen.styles.ts +1 -1
  265. package/src/components/skeleton.styles.ts +1 -1
  266. package/src/components/status-colors.ts +59 -0
  267. package/src/components/surface.styles.ts +1 -1
  268. package/src/components/textfield.styles.ts +18 -15
  269. package/src/components/toast.styles.ts +32 -25
  270. package/src/components/toggle.styles.ts +21 -1
  271. package/src/icons/Icon.tsx +13 -8
  272. package/src/icons/icon.styles.ts +38 -3
  273. package/src/icons/index.ts +3 -3
  274. package/src/index.ts +4 -4
  275. package/src/primitives/Button.tsx +28 -14
  276. package/src/primitives/Metric.tsx +5 -4
  277. package/src/primitives/Row.tsx +4 -4
  278. package/src/primitives/Stack.tsx +4 -4
  279. package/src/primitives/Tag.tsx +29 -11
  280. package/src/primitives/Text.tsx +28 -11
  281. package/src/primitives/_internal/focus-ring.tsx +1 -1
  282. package/src/primitives/button.styles.ts +63 -10
  283. package/src/primitives/index.ts +6 -6
  284. package/src/primitives/metric.styles.ts +3 -3
  285. package/src/primitives/row.styles.ts +1 -1
  286. package/src/primitives/stack.styles.ts +1 -1
  287. package/src/primitives/tag.styles.ts +43 -4
  288. package/src/primitives/text.styles.ts +7 -12
  289. package/src/safe-area/index.ts +21 -7
  290. package/src/theme/ThemeProvider.tsx +8 -5
  291. package/src/theme/define-theme.ts +15 -2
  292. package/src/theme/index.ts +14 -17
  293. package/src/theme/letter-spacing.ts +17 -0
  294. package/src/theme/line-height.ts +18 -2
  295. package/src/theme/native-theme.ts +2 -2
  296. package/src/theme/types.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","Pressable","View","Text","useTheme","CONTRACTS","RADIO_SPEC","resolveRadioCircleStyle","resolveRadioGroupStyle","jsx","_jsx","jsxs","_jsxs","Radio","label","options","value","onChange","variant","error","disabled","testID","theme","mode","hasError","group","circles","unselected","selected","style","opacity","disabledOpacity","undefined","children","weight","color","marginBottom","groupLabelStyle","accessibilityRole","containerStyle","map","option","optionDisabled","onPress","accessibilityState","checked","accessibilityLabel","cardStyle","cardSelectedStyle","flexDirection","alignItems","description","gap","optionGap","dotStyle","flexShrink","accessibilityLiveRegion","errorTextStyle","marginTop","__contract","radio"],"sourceRoot":"../../../src","sources":["components/Radio.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","Pressable","View","Text","useTheme","CONTRACTS","RADIO_SPEC","resolveRadioCircleStyle","resolveRadioGroupStyle","jsx","_jsx","jsxs","_jsxs","Radio","label","options","value","onChange","variant","error","disabled","testID","theme","mode","hasError","group","circles","unselected","selected","style","opacity","disabledOpacity","undefined","children","weight","color","marginBottom","groupLabelStyle","accessibilityRole","containerStyle","map","option","optionDisabled","onPress","accessibilityState","checked","accessibilityLabel","minHeight","optionMinHeight","justifyContent","cardStyle","cardSelectedStyle","flexDirection","alignItems","description","gap","optionGap","dotStyle","flexShrink","accessibilityLiveRegion","errorTextStyle","marginTop","__contract","radio"],"sourceRoot":"../../../src","sources":["components/Radio.tsx"],"mappings":"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","ignoreList":[]}
@@ -15,19 +15,27 @@
15
15
  * react-native-safe-area-context 利用者は subpath "melta-app/safe-area" の
16
16
  * enableSafeAreaContext() で context hook + View adapter に差し替えられる
17
17
  * (rally-nav dogfood 由来、RN 0.85 Fabric/Android の初回 inset flash 対応)。
18
+ * 適用する edge は `edges` prop(省略時は enableSafeAreaContext の既定)。
18
19
  */
19
20
 
20
- import { useMemo } from "react";
21
+ import { useEffect, useMemo } from "react";
21
22
  import { ScrollView, View } from "react-native";
22
23
  import { resolveSafeAreaView } from "./safe-area-registry.js";
24
+ import { isDev } from "../theme/define-theme.js";
23
25
  import { useTheme } from "../theme/index.js";
24
26
  import { CONTRACTS } from "../contracts/contract-types.js";
25
27
  import { resolveScreenStyle } from "./screen.styles.js";
28
+
29
+ /** dev 警告の重複抑止(inline object の scrollViewProps で毎 render 鳴らさない)。 */
26
30
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
31
+ const warned = new Set();
27
32
  export function Screen({
28
33
  variant = "scroll",
29
34
  padding = "4",
35
+ edges,
30
36
  header,
37
+ scrollViewProps,
38
+ scrollViewRef,
31
39
  style,
32
40
  testID,
33
41
  children
@@ -43,12 +51,29 @@ export function Screen({
43
51
  variant,
44
52
  padding
45
53
  }), [theme, mode, variant, padding]);
46
- const SafeArea = resolveSafeAreaView();
54
+
55
+ // fixed には内部 ScrollView が無い=渡された prop は黙って捨てられる。dev で気づけるようにする。
56
+ const ignoresScrollProps = variant === "fixed" && (scrollViewProps != null || scrollViewRef != null);
57
+ useEffect(() => {
58
+ if (!isDev || !ignoresScrollProps) return;
59
+ const message = 'melta: Screen variant="fixed" では scrollViewProps / scrollViewRef は適用されない' + "(内部 ScrollView が無いため)。variant=\"scroll\" にするか prop を外すこと。";
60
+ if (warned.has(message)) return;
61
+ warned.add(message);
62
+ console.warn(message);
63
+ }, [ignoresScrollProps]);
64
+ const SafeArea = resolveSafeAreaView(edges);
47
65
  return /*#__PURE__*/_jsxs(SafeArea, {
48
66
  style: [safeAreaStyle, style],
49
67
  testID: testID,
50
68
  children: [header, variant === "scroll" ? /*#__PURE__*/_jsx(ScrollView, {
51
- contentContainerStyle: contentStyle,
69
+ ref: scrollViewRef
70
+ // iOS の既定 0 は onScroll が 1 ドラッグ 1 発しか来ない(スクロール連動ヘッダが動かない)。
71
+ // spread より前に置いて消費者が上書きできるようにする。
72
+ ,
73
+ scrollEventThrottle: 16,
74
+ ...scrollViewProps,
75
+ // contentContainerStyle は素の spread だと DS の padding ごと消えるため配列合成(後勝ち)。
76
+ contentContainerStyle: [contentStyle, scrollViewProps?.contentContainerStyle],
52
77
  children: children
53
78
  }) : /*#__PURE__*/_jsx(View, {
54
79
  style: contentStyle,
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","ScrollView","View","resolveSafeAreaView","useTheme","CONTRACTS","resolveScreenStyle","jsx","_jsx","jsxs","_jsxs","Screen","variant","padding","header","style","testID","children","theme","mode","safeAreaStyle","contentStyle","SafeArea","contentContainerStyle","__contract","screen"],"sourceRoot":"../../../src","sources":["components/Screen.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAwB,OAAO;AAC/C,SAASC,UAAU,EAAEC,IAAI,QAAwC,cAAc;AAC/E,SAASC,mBAAmB,QAAQ,yBAAsB;AAC1D,SAASC,QAAQ,QAAQ,mBAAU;AACnC,SAASC,SAAS,QAAwB,gCAA6B;AACvE,SAASC,kBAAkB,QAA8C,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAc3F,OAAO,SAASC,MAAMA,CAAC;EACrBC,OAAO,GAAG,QAAQ;EAClBC,OAAO,GAAG,GAAG;EACbC,MAAM;EACNC,KAAK;EACLC,MAAM;EACNC;AACW,CAAC,EAAE;EACd,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGf,QAAQ,CAAC,CAAC;EAElC,MAAM;IAAEgB,aAAa;IAAEC;EAAa,CAAC,GAAGrB,OAAO,CAC7C,MAAMM,kBAAkB,CAACY,KAAK,EAAEC,IAAI,EAAE;IAAEP,OAAO;IAAEC;EAAQ,CAAC,CAAC,EAC3D,CAACK,KAAK,EAAEC,IAAI,EAAEP,OAAO,EAAEC,OAAO,CAChC,CAAC;EAED,MAAMS,QAAQ,GAAGnB,mBAAmB,CAAC,CAAC;EAEtC,oBACEO,KAAA,CAACY,QAAQ;IAACP,KAAK,EAAE,CAACK,aAAa,EAAEL,KAAK,CAAE;IAACC,MAAM,EAAEA,MAAO;IAAAC,QAAA,GACrDH,MAAM,EACNF,OAAO,KAAK,QAAQ,gBACnBJ,IAAA,CAACP,UAAU;MAACsB,qBAAqB,EAAEF,YAAa;MAAAJ,QAAA,EAAEA;IAAQ,CAAa,CAAC,gBAExET,IAAA,CAACN,IAAI;MAACa,KAAK,EAAEM,YAAa;MAAAJ,QAAA,EAAEA;IAAQ,CAAO,CAC5C;EAAA,CACO,CAAC;AAEf;AAEAN,MAAM,CAACa,UAAU,GAAGnB,SAAS,CAACoB,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","ScrollView","View","resolveSafeAreaView","isDev","useTheme","CONTRACTS","resolveScreenStyle","jsx","_jsx","jsxs","_jsxs","warned","Set","Screen","variant","padding","edges","header","scrollViewProps","scrollViewRef","style","testID","children","theme","mode","safeAreaStyle","contentStyle","ignoresScrollProps","message","has","add","console","warn","SafeArea","ref","scrollEventThrottle","contentContainerStyle","__contract","screen"],"sourceRoot":"../../../src","sources":["components/Screen.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,EAAEC,OAAO,QAAkC,OAAO;AACpE,SACEC,UAAU,EACVC,IAAI,QAIC,cAAc;AACrB,SAASC,mBAAmB,QAA2B,yBAAyB;AAChF,SAASC,KAAK,QAAQ,0BAA0B;AAChD,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,SAAS,QAAwB,gCAAgC;AAC1E,SAASC,kBAAkB,QAA8C,oBAAoB;;AAE7F;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,MAAM,GAAG,IAAIC,GAAG,CAAS,CAAC;AAmChC,OAAO,SAASC,MAAMA,CAAC;EACrBC,OAAO,GAAG,QAAQ;EAClBC,OAAO,GAAG,GAAG;EACbC,KAAK;EACLC,MAAM;EACNC,eAAe;EACfC,aAAa;EACbC,KAAK;EACLC,MAAM;EACNC;AACW,CAAC,EAAE;EACd,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGpB,QAAQ,CAAC,CAAC;EAElC,MAAM;IAAEqB,aAAa;IAAEC;EAAa,CAAC,GAAG3B,OAAO,CAC7C,MAAMO,kBAAkB,CAACiB,KAAK,EAAEC,IAAI,EAAE;IAAEV,OAAO;IAAEC;EAAQ,CAAC,CAAC,EAC3D,CAACQ,KAAK,EAAEC,IAAI,EAAEV,OAAO,EAAEC,OAAO,CAChC,CAAC;;EAED;EACA,MAAMY,kBAAkB,GACtBb,OAAO,KAAK,OAAO,KAAKI,eAAe,IAAI,IAAI,IAAIC,aAAa,IAAI,IAAI,CAAC;EAC3ErB,SAAS,CAAC,MAAM;IACd,IAAI,CAACK,KAAK,IAAI,CAACwB,kBAAkB,EAAE;IACnC,MAAMC,OAAO,GACX,0EAA0E,GAC1E,2DAA2D;IAC7D,IAAIjB,MAAM,CAACkB,GAAG,CAACD,OAAO,CAAC,EAAE;IACzBjB,MAAM,CAACmB,GAAG,CAACF,OAAO,CAAC;IACnBG,OAAO,CAACC,IAAI,CAACJ,OAAO,CAAC;EACvB,CAAC,EAAE,CAACD,kBAAkB,CAAC,CAAC;EAExB,MAAMM,QAAQ,GAAG/B,mBAAmB,CAACc,KAAK,CAAC;EAE3C,oBACEN,KAAA,CAACuB,QAAQ;IAACb,KAAK,EAAE,CAACK,aAAa,EAAEL,KAAK,CAAE;IAACC,MAAM,EAAEA,MAAO;IAAAC,QAAA,GACrDL,MAAM,EACNH,OAAO,KAAK,QAAQ,gBACnBN,IAAA,CAACR,UAAU;MACTkC,GAAG,EAAEf;MACL;MACA;MAAA;MACAgB,mBAAmB,EAAE,EAAG;MAAA,GACpBjB,eAAe;MACnB;MACAkB,qBAAqB,EAAE,CAACV,YAAY,EAAER,eAAe,EAAEkB,qBAAqB,CAAE;MAAAd,QAAA,EAE7EA;IAAQ,CACC,CAAC,gBAEbd,IAAA,CAACP,IAAI;MAACmB,KAAK,EAAEM,YAAa;MAAAJ,QAAA,EAAEA;IAAQ,CAAO,CAC5C;EAAA,CACO,CAAC;AAEf;AAEAT,MAAM,CAACwB,UAAU,GAAGhC,SAAS,CAACiC,MAAM","ignoreList":[]}
@@ -164,6 +164,7 @@ export function Skeleton({
164
164
  });
165
165
  }
166
166
 
167
- // Phase 2 conformance test 用の contract メタ(§2 A-3)。
167
+ // conformance test 用の contract メタ(§2 A-3)。scripts/lib/conformance.test.ts が
168
+ // 「この宣言が正しい contract を指しているか」を静的スキャンで照合する。
168
169
  Skeleton.__contract = CONTRACTS.skeleton;
169
170
  //# sourceMappingURL=Skeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useRef","AccessibilityInfo","Animated","View","Surface","useTheme","CONTRACTS","CARD_SURFACE_SPEC","PULSE_OPACITY","SKELETON_METRICS","resolveSkeletonStates","resolveSkeletonVariants","jsx","_jsx","jsxs","_jsxs","Skeleton","variant","width","lines","accessibilityLabel","style","testID","theme","mode","styles","opacity","Value","from","current","cancelled","loop","anim","loading","animation","isReduceMotionEnabled","then","reduce","sequence","timing","toValue","opacityTo","duration","useNativeDriver","opacityFrom","start","stop","a11y","accessible","accessibilityState","busy","circle","barStyle","card","borderWidth","borderColor","children","gap","spacing","flexDirection","alignItems","circleSize","height","borderRadius","radius","full","backgroundColor","flex","textBar","text","Array","length","_unused","i","__contract","skeleton"],"sourceRoot":"../../../src","sources":["components/Skeleton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useRef","AccessibilityInfo","Animated","View","Surface","useTheme","CONTRACTS","CARD_SURFACE_SPEC","PULSE_OPACITY","SKELETON_METRICS","resolveSkeletonStates","resolveSkeletonVariants","jsx","_jsx","jsxs","_jsxs","Skeleton","variant","width","lines","accessibilityLabel","style","testID","theme","mode","styles","opacity","Value","from","current","cancelled","loop","anim","loading","animation","isReduceMotionEnabled","then","reduce","sequence","timing","toValue","opacityTo","duration","useNativeDriver","opacityFrom","start","stop","a11y","accessible","accessibilityState","busy","circle","barStyle","card","borderWidth","borderColor","children","gap","spacing","flexDirection","alignItems","circleSize","height","borderRadius","radius","full","backgroundColor","flex","textBar","text","Array","length","_unused","i","__contract","skeleton"],"sourceRoot":"../../../src","sources":["components/Skeleton.tsx"],"mappings":"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","ignoreList":[]}
@@ -44,6 +44,7 @@ export function Surface({
44
44
  });
45
45
  }
46
46
 
47
- // Phase 2 conformance test 用の contract メタ(§2 A-3)。
47
+ // conformance test 用の contract メタ(§2 A-3)。scripts/lib/conformance.test.ts が
48
+ // 「この宣言が正しい contract を指しているか」を静的スキャンで照合する。
48
49
  Surface.__contract = CONTRACTS.surface;
49
50
  //# sourceMappingURL=Surface.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["View","useTheme","CONTRACTS","resolveSurfaceStyle","jsx","_jsx","Surface","bg","radius","elevation","padding","style","testID","children","theme","mode","resolved","base","__contract","surface"],"sourceRoot":"../../../src","sources":["components/Surface.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,IAAI,QAAwC,cAAc;AACnE,SAASC,QAAQ,QAAQ,mBAAU;AACnC,SAASC,SAAS,QAAQ,gCAA6B;AACvD,SAASC,mBAAmB,QAAgC,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ/E,OAAO,SAASC,OAAOA,CAAC;EAAEC,EAAE;EAAEC,MAAM;EAAEC,SAAS;EAAEC,OAAO;EAAEC,KAAK;EAAEC,MAAM;EAAEC;AAAuB,CAAC,EAAE;EACjG,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGd,QAAQ,CAAC,CAAC;EAClC,MAAMe,QAAQ,GAAGb,mBAAmB,CAACW,KAAK,EAAEC,IAAI,EAAE;IAAER,EAAE;IAAEC,MAAM;IAAEC,SAAS;IAAEC;EAAQ,CAAC,CAAC;EACrF,oBACEL,IAAA,CAACL,IAAI;IAACY,MAAM,EAAEA,MAAO;IAACD,KAAK,EAAE,CAACK,QAAQ,CAACC,IAAI,EAAED,QAAQ,CAACP,SAAS,EAAEE,KAAK,CAAE;IAAAE,QAAA,EACrEA;EAAQ,CACL,CAAC;AAEX;;AAEA;AACAP,OAAO,CAACY,UAAU,GAAGhB,SAAS,CAACiB,OAAO","ignoreList":[]}
1
+ {"version":3,"names":["View","useTheme","CONTRACTS","resolveSurfaceStyle","jsx","_jsx","Surface","bg","radius","elevation","padding","style","testID","children","theme","mode","resolved","base","__contract","surface"],"sourceRoot":"../../../src","sources":["components/Surface.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,IAAI,QAAwC,cAAc;AACnE,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,SAAS,QAAQ,gCAAgC;AAC1D,SAASC,mBAAmB,QAAgC,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQlF,OAAO,SAASC,OAAOA,CAAC;EAAEC,EAAE;EAAEC,MAAM;EAAEC,SAAS;EAAEC,OAAO;EAAEC,KAAK;EAAEC,MAAM;EAAEC;AAAuB,CAAC,EAAE;EACjG,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGd,QAAQ,CAAC,CAAC;EAClC,MAAMe,QAAQ,GAAGb,mBAAmB,CAACW,KAAK,EAAEC,IAAI,EAAE;IAAER,EAAE;IAAEC,MAAM;IAAEC,SAAS;IAAEC;EAAQ,CAAC,CAAC;EACrF,oBACEL,IAAA,CAACL,IAAI;IAACY,MAAM,EAAEA,MAAO;IAACD,KAAK,EAAE,CAACK,QAAQ,CAACC,IAAI,EAAED,QAAQ,CAACP,SAAS,EAAEE,KAAK,CAAE;IAAAE,QAAA,EACrEA;EAAQ,CACL,CAAC;AAEX;;AAEA;AACA;AACAP,OAAO,CAACY,UAAU,GAAGhB,SAAS,CAACiB,OAAO","ignoreList":[]}
@@ -8,7 +8,8 @@
8
8
  * editable=false + accessibilityState.disabled を併せて適用する(recipe description の規約)。
9
9
  * - error 時は errorText を必ずテキストで表示する(FORM_NO_COLOR_ONLY_ERROR = 色だけで伝えない)。
10
10
  * RN には aria-describedby 相当が無いため、(a) errorText を input の accessibilityLabel に合成
11
- * (再フォーカス時に読み上げ)、(b) errorText 側に accessibilityLiveRegion="polite"(Android は
11
+ * (再フォーカス時に読み上げ。合成文は formatErrorAccessibilityLabel で差し替え可能 = i18n フック。
12
+ * 既定は日本語)、(b) errorText 側に accessibilityLiveRegion="polite"(Android は
12
13
  * 出現時に通知。iOS の即時通知が要る画面は submit 時に announceForAccessibility を併用する —
13
14
  * docs/patterns.md 参照)。
14
15
  * - focus は内部 state(onFocus/onBlur)で recipe states.focus の inputStyle 差分
@@ -28,7 +29,7 @@ import { CONTRACTS } from "../contracts/contract-types.js";
28
29
  import { resolveTextFieldStyle, resolveTextFieldFocusStyle } from "./textfield.styles.js";
29
30
 
30
31
  /**
31
- * Android の EditText は固定 height と組み合わさると既定の縦 padding で文字が
32
+ * Android の EditText は高さ下限(minHeight)と組み合わさると既定の縦 padding で文字が
32
33
  * 上寄り・下端切れになるため、縦 padding を殺して縦センターに揃える。
33
34
  * textAlignVertical は Android 専用、paddingVertical: 0 は iOS の見た目を変えない
34
35
  * (iOS の単一行入力は元々縦センター)。
@@ -54,6 +55,15 @@ export function resolveInputVerticalFix(os) {
54
55
  /* eslint-enable melta/no-raw-spacing */
55
56
 
56
57
  const INPUT_VERTICAL_FIX = resolveInputVerticalFix(Platform.OS);
58
+
59
+ /**
60
+ * error 時の accessibilityLabel 合成の既定(日本語)。
61
+ * props で差し替え可能(formatErrorAccessibilityLabel)。既定値を変えると
62
+ * 既存アプリの VoiceOver 読み上げが変わるので、既定は日本語のまま据え置く。
63
+ */
64
+ function defaultErrorAccessibilityLabel(label, errorText) {
65
+ return `${label}。エラー: ${errorText}`;
66
+ }
57
67
  export function TextField({
58
68
  label,
59
69
  value,
@@ -64,6 +74,7 @@ export function TextField({
64
74
  size = "medium",
65
75
  helperText,
66
76
  errorText,
77
+ formatErrorAccessibilityLabel = defaultErrorAccessibilityLabel,
67
78
  keyboardType,
68
79
  autoCapitalize,
69
80
  autoCorrect,
@@ -108,7 +119,7 @@ export function TextField({
108
119
  maxLength: maxLength,
109
120
  returnKeyType: returnKeyType,
110
121
  onSubmitEditing: onSubmitEditing,
111
- accessibilityLabel: showError ? `${label}。エラー: ${errorText}` : label,
122
+ accessibilityLabel: showError ? formatErrorAccessibilityLabel(label, errorText) : label,
112
123
  accessibilityState: {
113
124
  disabled
114
125
  },
@@ -132,6 +143,7 @@ export function TextField({
132
143
  });
133
144
  }
134
145
 
135
- // Phase 2 conformance test 用の contract メタ(§2 A-3)。
146
+ // conformance test 用の contract メタ(§2 A-3)。scripts/lib/conformance.test.ts が
147
+ // 「この宣言が正しい contract を指しているか」を静的スキャンで照合する。
136
148
  TextField.__contract = CONTRACTS.textfield;
137
149
  //# sourceMappingURL=TextField.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useState","Platform","TextInput","View","Text","RNText","useTheme","CONTRACTS","resolveTextFieldStyle","resolveTextFieldFocusStyle","jsx","_jsx","jsxs","_jsxs","resolveInputVerticalFix","os","paddingVertical","paddingBottom","textAlignVertical","INPUT_VERTICAL_FIX","OS","TextField","label","value","onChangeText","placeholder","variant","disabled","size","helperText","errorText","keyboardType","autoCapitalize","autoCorrect","maxLength","returnKeyType","onSubmitEditing","onBlur","onFocus","style","testID","theme","mode","colors","focused","setFocused","effectiveVariant","resolved","focusStyle","showError","children","placeholderTextColor","editable","accessibilityLabel","accessibilityState","e","input","accessibilityLiveRegion","__contract","textfield"],"sourceRoot":"../../../src","sources":["components/TextField.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","useState","Platform","TextInput","View","Text","RNText","useTheme","CONTRACTS","resolveTextFieldStyle","resolveTextFieldFocusStyle","jsx","_jsx","jsxs","_jsxs","resolveInputVerticalFix","os","paddingVertical","paddingBottom","textAlignVertical","INPUT_VERTICAL_FIX","OS","defaultErrorAccessibilityLabel","label","errorText","TextField","value","onChangeText","placeholder","variant","disabled","size","helperText","formatErrorAccessibilityLabel","keyboardType","autoCapitalize","autoCorrect","maxLength","returnKeyType","onSubmitEditing","onBlur","onFocus","style","testID","theme","mode","colors","focused","setFocused","effectiveVariant","resolved","focusStyle","showError","children","placeholderTextColor","editable","accessibilityLabel","accessibilityState","e","input","accessibilityLiveRegion","__contract","textfield"],"sourceRoot":"../../../src","sources":["components/TextField.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,9 @@
7
7
  * - presentational component。表示位置・キュー・自動消滅はアプリ層の責務
8
8
  * (entering/visible/dismissing のアニメ state は Phase 外、recipe description)。
9
9
  * - closeButton は契約 anatomy で必須 → onClose を required prop にして型で強制。
10
- * Pressable + テキスト ×(accessibilityLabel="閉じる" 必須)。
10
+ * Pressable + テキスト ×(accessibilityLabel は既定 "閉じる"、closeAccessibilityLabel で差し替え可能)。
11
+ * - action と × は隣接する 2 つの操作要素。当たり判定が重なると押し違いが起きるので、
12
+ * 横 hitSlop を gap の 1/2 に絞る(toast.styles.ts の TOAST_TAP_TARGET)。
11
13
  * - a11y(§2 web→RN mapping): web の role=status + aria-live=polite を
12
14
  * accessibilityLiveRegion="polite"(Android のみ有効)に落とす。
13
15
  * - elevation は theme.elevation.sm(iOS shadow* + Android elevation の複合値)を container に
@@ -22,7 +24,7 @@ import { Pressable, View } from "react-native";
22
24
  import { Text } from "../primitives/Text.js";
23
25
  import { useTheme } from "../theme/index.js";
24
26
  import { CONTRACTS } from "../contracts/contract-types.js";
25
- import { TOAST_SPEC, resolveToastStyles } from "./toast.styles.js";
27
+ import { TOAST_SPEC, TOAST_TAP_TARGET, resolveToastStyles } from "./toast.styles.js";
26
28
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
27
29
  export function Toast({
28
30
  variant,
@@ -31,6 +33,7 @@ export function Toast({
31
33
  onClose,
32
34
  actionLabel,
33
35
  onAction,
36
+ closeAccessibilityLabel = "閉じる",
34
37
  style,
35
38
  testID
36
39
  }) {
@@ -65,10 +68,14 @@ export function Toast({
65
68
  },
66
69
  children: description
67
70
  })]
68
- }), actionLabel != null && onAction != null && /*#__PURE__*/_jsx(Pressable, {
71
+ }), actionLabel != null && onAction != null &&
72
+ /*#__PURE__*/
73
+ // 横 hitSlop は gap/2(= 6)まで。10 のままだと隣の × と当たり判定が 8pt 重なり、
74
+ // 手前に描かれる × が勝って「元に戻す」が押せない(toast.styles.ts の TOAST_TAP_TARGET 参照)。
75
+ _jsx(Pressable, {
69
76
  onPress: onAction,
70
77
  accessibilityRole: "button",
71
- hitSlop: 10,
78
+ hitSlop: TOAST_TAP_TARGET.hitSlop,
72
79
  children: /*#__PURE__*/_jsx(Text, {
73
80
  variant: TOAST_SPEC.messageFont,
74
81
  weight: TOAST_SPEC.messageWeight,
@@ -81,11 +88,11 @@ export function Toast({
81
88
  }), /*#__PURE__*/_jsx(Pressable, {
82
89
  onPress: onClose,
83
90
  accessibilityRole: "button",
84
- accessibilityLabel: "\u9589\u3058\u308B",
85
- hitSlop: 10,
91
+ accessibilityLabel: closeAccessibilityLabel,
92
+ hitSlop: TOAST_TAP_TARGET.hitSlop,
86
93
  style: {
87
- minWidth: 24,
88
- minHeight: 24,
94
+ minWidth: TOAST_TAP_TARGET.closeMinWidth,
95
+ minHeight: TOAST_TAP_TARGET.closeMinHeight,
89
96
  alignItems: "center",
90
97
  justifyContent: "center"
91
98
  },
@@ -100,6 +107,7 @@ export function Toast({
100
107
  });
101
108
  }
102
109
 
103
- // Phase 2 conformance test 用の contract メタ(§2 A-3)。
110
+ // conformance test 用の contract メタ(§2 A-3)。scripts/lib/conformance.test.ts が
111
+ // 「この宣言が正しい contract を指しているか」を静的スキャンで照合する。
104
112
  Toast.__contract = CONTRACTS.toast;
105
113
  //# sourceMappingURL=Toast.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","Pressable","View","Text","useTheme","CONTRACTS","TOAST_SPEC","resolveToastStyles","jsx","_jsx","jsxs","_jsxs","Toast","variant","message","description","onClose","actionLabel","onAction","style","testID","theme","mode","styles","accessibilityLiveRegion","containerStyle","elevation","children","flex","gap","spacing","messageFont","weight","messageWeight","color","messageStyle","onPress","accessibilityRole","hitSlop","textDecorationLine","accessibilityLabel","minWidth","minHeight","alignItems","justifyContent","__contract","toast"],"sourceRoot":"../../../src","sources":["components/Toast.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","Pressable","View","Text","useTheme","CONTRACTS","TOAST_SPEC","TOAST_TAP_TARGET","resolveToastStyles","jsx","_jsx","jsxs","_jsxs","Toast","variant","message","description","onClose","actionLabel","onAction","closeAccessibilityLabel","style","testID","theme","mode","styles","accessibilityLiveRegion","containerStyle","elevation","children","flex","gap","spacing","messageFont","weight","messageWeight","color","messageStyle","onPress","accessibilityRole","hitSlop","textDecorationLine","accessibilityLabel","minWidth","closeMinWidth","minHeight","closeMinHeight","alignItems","justifyContent","__contract","toast"],"sourceRoot":"../../../src","sources":["components/Toast.tsx"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,8 @@
10
10
  * flex-start / flex-end を切り替える(アニメは Phase 外)。
11
11
  * - disabled: recipe states.disabled の opacity + accessibilityState.disabled + onPress 無効。
12
12
  * - a11y: accessibilityRole="switch" + accessibilityState.checked。label があれば右に表示し、
13
- * Pressable 全体がタップ領域 + accessibilityLabel になる。
13
+ * Pressable 全体がタップ領域 + accessibilityLabel になる。実効タップ標的 44pt は
14
+ * 縦 hitSlop で確保する(TOGGLE_VERTICAL_HIT_SLOP、A11Y_MIN_TAP_TARGET_44)。
14
15
  * - 色・寸法の決定は pure resolver(toggle.styles.ts)に分離。
15
16
  * recipes/app/toggle.recipe.json との機械照合は scripts/lib/toggle-conformance.test.ts が行う。
16
17
  */
@@ -20,7 +21,7 @@ import { Pressable, View } from "react-native";
20
21
  import { Text } from "../primitives/Text.js";
21
22
  import { useTheme } from "../theme/index.js";
22
23
  import { CONTRACTS } from "../contracts/contract-types.js";
23
- import { resolveToggleStyle, TOGGLE_DISABLED_OPACITY } from "./toggle.styles.js";
24
+ import { resolveToggleStyle, TOGGLE_DISABLED_OPACITY, TOGGLE_VERTICAL_HIT_SLOP } from "./toggle.styles.js";
24
25
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
26
  export function Toggle({
26
27
  value,
@@ -48,7 +49,14 @@ export function Toggle({
48
49
  checked: value,
49
50
  disabled
50
51
  },
51
- accessibilityLabel: label,
52
+ accessibilityLabel: label
53
+ // track(24/28pt)も label 付きの行(36pt)も 44pt に届かないので縦 hitSlop で補う。
54
+ // 値の根拠は toggle.styles.ts の TOGGLE_VERTICAL_HIT_SLOP。
55
+ ,
56
+ hitSlop: {
57
+ top: TOGGLE_VERTICAL_HIT_SLOP[size],
58
+ bottom: TOGGLE_VERTICAL_HIT_SLOP[size]
59
+ },
52
60
  testID: testID,
53
61
  style: [{
54
62
  flexDirection: "row",
@@ -72,6 +80,7 @@ export function Toggle({
72
80
  });
73
81
  }
74
82
 
75
- // Phase 2 conformance test 用の contract メタ(§2 A-3)。
83
+ // conformance test 用の contract メタ(§2 A-3)。scripts/lib/conformance.test.ts が
84
+ // 「この宣言が正しい contract を指しているか」を静的スキャンで照合する。
76
85
  Toggle.__contract = CONTRACTS.toggle;
77
86
  //# sourceMappingURL=Toggle.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","Pressable","View","Text","useTheme","CONTRACTS","resolveToggleStyle","TOGGLE_DISABLED_OPACITY","jsx","_jsx","jsxs","_jsxs","Toggle","value","onValueChange","label","size","disabled","style","testID","theme","mode","variant","resolved","onPress","accessibilityRole","accessibilityState","checked","accessibilityLabel","flexDirection","alignItems","alignSelf","gap","spacing","opacity","children","track","justifyContent","thumb","__contract","toggle"],"sourceRoot":"../../../src","sources":["components/Toggle.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,SAAS,EAAEC,IAAI,QAAwC,cAAc;AAC9E,SAASC,IAAI,QAAQ,uBAAoB;AACzC,SAASC,QAAQ,QAAQ,mBAAU;AACnC,SAASC,SAAS,QAAQ,gCAA6B;AACvD,SACEC,kBAAkB,EAClBC,uBAAuB,QAGlB,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAczB,OAAO,SAASC,MAAMA,CAAC;EACrBC,KAAK;EACLC,aAAa;EACbC,KAAK;EACLC,IAAI,GAAG,QAAQ;EACfC,QAAQ,GAAG,KAAK;EAChBC,KAAK;EACLC;AACW,CAAC,EAAE;EACd,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGjB,QAAQ,CAAC,CAAC;EAElC,MAAMkB,OAAsB,GAAGT,KAAK,GAAG,IAAI,GAAG,KAAK;EACnD,MAAMU,QAAQ,GAAGvB,OAAO,CACtB,MAAMM,kBAAkB,CAACc,KAAK,EAAEC,IAAI,EAAE;IAAEC,OAAO;IAAEN;EAAK,CAAC,CAAC,EACxD,CAACI,KAAK,EAAEC,IAAI,EAAEC,OAAO,EAAEN,IAAI,CAC7B,CAAC;EAED,oBACEL,KAAA,CAACV,SAAS;IACRuB,OAAO,EAAEA,CAAA,KAAMV,aAAa,GAAG,CAACD,KAAK,CAAE;IACvCI,QAAQ,EAAEA,QAAS;IACnBQ,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAE;MAAEC,OAAO,EAAEd,KAAK;MAAEI;IAAS,CAAE;IACjDW,kBAAkB,EAAEb,KAAM;IAC1BI,MAAM,EAAEA,MAAO;IACfD,KAAK,EAAE,CACL;MACEW,aAAa,EAAE,KAAK;MACpBC,UAAU,EAAE,QAAQ;MACpBC,SAAS,EAAE,YAAY;MACvBC,GAAG,EAAEZ,KAAK,CAACa,OAAO,CAAC,GAAG,CAAC;MACvBC,OAAO,EAAEjB,QAAQ,GAAGV,uBAAuB,GAAG;IAChD,CAAC,EACDW,KAAK,CACL;IAAAiB,QAAA,gBAEF1B,IAAA,CAACP,IAAI;MACHgB,KAAK,EAAE,CACLK,QAAQ,CAACa,KAAK,EACd;QACEP,aAAa,EAAE,KAAK;QACpBC,UAAU,EAAE,QAAQ;QACpBO,cAAc,EAAExB,KAAK,GAAG,UAAU,GAAG;MACvC,CAAC,CACD;MAAAsB,QAAA,eAEF1B,IAAA,CAACP,IAAI;QAACgB,KAAK,EAAEK,QAAQ,CAACe;MAAM,CAAE;IAAC,CAC3B,CAAC,EACNvB,KAAK,IAAI,IAAI,iBAAIN,IAAA,CAACN,IAAI;MAAAgC,QAAA,EAAEpB;IAAK,CAAO,CAAC;EAAA,CAC7B,CAAC;AAEhB;;AAEA;AACAH,MAAM,CAAC2B,UAAU,GAAGlC,SAAS,CAACmC,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","Pressable","View","Text","useTheme","CONTRACTS","resolveToggleStyle","TOGGLE_DISABLED_OPACITY","TOGGLE_VERTICAL_HIT_SLOP","jsx","_jsx","jsxs","_jsxs","Toggle","value","onValueChange","label","size","disabled","style","testID","theme","mode","variant","resolved","onPress","accessibilityRole","accessibilityState","checked","accessibilityLabel","hitSlop","top","bottom","flexDirection","alignItems","alignSelf","gap","spacing","opacity","children","track","justifyContent","thumb","__contract","toggle"],"sourceRoot":"../../../src","sources":["components/Toggle.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,SAAS,EAAEC,IAAI,QAAwC,cAAc;AAC9E,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,SAAS,QAAQ,gCAAgC;AAC1D,SACEC,kBAAkB,EAClBC,uBAAuB,EACvBC,wBAAwB,QAGnB,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAc5B,OAAO,SAASC,MAAMA,CAAC;EACrBC,KAAK;EACLC,aAAa;EACbC,KAAK;EACLC,IAAI,GAAG,QAAQ;EACfC,QAAQ,GAAG,KAAK;EAChBC,KAAK;EACLC;AACW,CAAC,EAAE;EACd,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGlB,QAAQ,CAAC,CAAC;EAElC,MAAMmB,OAAsB,GAAGT,KAAK,GAAG,IAAI,GAAG,KAAK;EACnD,MAAMU,QAAQ,GAAGxB,OAAO,CACtB,MAAMM,kBAAkB,CAACe,KAAK,EAAEC,IAAI,EAAE;IAAEC,OAAO;IAAEN;EAAK,CAAC,CAAC,EACxD,CAACI,KAAK,EAAEC,IAAI,EAAEC,OAAO,EAAEN,IAAI,CAC7B,CAAC;EAED,oBACEL,KAAA,CAACX,SAAS;IACRwB,OAAO,EAAEA,CAAA,KAAMV,aAAa,GAAG,CAACD,KAAK,CAAE;IACvCI,QAAQ,EAAEA,QAAS;IACnBQ,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAE;MAAEC,OAAO,EAAEd,KAAK;MAAEI;IAAS,CAAE;IACjDW,kBAAkB,EAAEb;IACpB;IACA;IAAA;IACAc,OAAO,EAAE;MACPC,GAAG,EAAEvB,wBAAwB,CAACS,IAAI,CAAC;MACnCe,MAAM,EAAExB,wBAAwB,CAACS,IAAI;IACvC,CAAE;IACFG,MAAM,EAAEA,MAAO;IACfD,KAAK,EAAE,CACL;MACEc,aAAa,EAAE,KAAK;MACpBC,UAAU,EAAE,QAAQ;MACpBC,SAAS,EAAE,YAAY;MACvBC,GAAG,EAAEf,KAAK,CAACgB,OAAO,CAAC,GAAG,CAAC;MACvBC,OAAO,EAAEpB,QAAQ,GAAGX,uBAAuB,GAAG;IAChD,CAAC,EACDY,KAAK,CACL;IAAAoB,QAAA,gBAEF7B,IAAA,CAACR,IAAI;MACHiB,KAAK,EAAE,CACLK,QAAQ,CAACgB,KAAK,EACd;QACEP,aAAa,EAAE,KAAK;QACpBC,UAAU,EAAE,QAAQ;QACpBO,cAAc,EAAE3B,KAAK,GAAG,UAAU,GAAG;MACvC,CAAC,CACD;MAAAyB,QAAA,eAEF7B,IAAA,CAACR,IAAI;QAACiB,KAAK,EAAEK,QAAQ,CAACkB;MAAM,CAAE;IAAC,CAC3B,CAAC,EACN1B,KAAK,IAAI,IAAI,iBAAIN,IAAA,CAACP,IAAI;MAAAoC,QAAA,EAAEvB;IAAK,CAAO,CAAC;EAAA,CAC7B,CAAC;AAEhB;;AAEA;AACA;AACAH,MAAM,CAAC8B,UAAU,GAAGtC,SAAS,CAACuC,MAAM","ignoreList":[]}
@@ -9,14 +9,23 @@
9
9
  *
10
10
  * - RN では border を持たず bg subtle + text 色で表現する(status token に border 用の中間色が
11
11
  * 無いため。COLOR_ONLY_FORBIDDEN は title/message のテキストと icon slot で担保、recipe description)。
12
- * - dark mode は status.*.subtleDark / textDark 側を解決する。info variant のみ primary 固定
13
- * (dark token が無い既知の割り切り、web と同じ)。
12
+ * - status 色(mode ごとの subtle / text、info の primary 固定)の解決は status-colors.ts が SSOT。
14
13
  */
15
14
 
15
+ import { resolveStatusVariantColors } from "./status-colors.js";
16
+ import { CANONICAL_TAP_TARGET } from "../a11y/tap-target.js";
17
+
18
+ /** alert.contract の variant 語彙(status 共通語彙と 1:1)。 */
19
+
16
20
  /**
17
21
  * 構成キー(token キー)。component は Text にこのキーをそのまま渡し、resolver は同じキーから
18
22
  * style 値を解決する(component と resolver が別々のキーを持って drift する事故を防ぐ SSOT)。
19
23
  */
24
+ /**
25
+ * × の当たり判定(正典パターン: 視覚 24pt + hitSlop 10 = 実効 44pt)。
26
+ * Alert の × は右端に単独で立つ(Toast と違い隣接する操作要素が無い)ので横も 10 のままでよい。
27
+ */
28
+ export const ALERT_CLOSE_TAP_TARGET = CANONICAL_TAP_TARGET;
20
29
  export const ALERT_SPEC = {
21
30
  padding: "4",
22
31
  gap: "3",
@@ -28,35 +37,12 @@ export const ALERT_SPEC = {
28
37
 
29
38
  /** slot 構成(alert.recipe 各 variant の containerStyle / titleStyle / messageStyle と 1:1)。 */
30
39
 
31
- /**
32
- * variant → bg / text 色の解決。
33
- * - info: primary.50 / primary.800 固定(mode 非依存)。
34
- * - success / warning / error: status token(error は status キー上は danger)。
35
- * light は subtleLight / textLight、dark は subtleDark / textDark(recipe description の写像)。
36
- */
37
- export function resolveAlertColors(theme, mode, variant) {
38
- if (variant === "info") {
39
- return {
40
- bg: theme.color.primary["50"],
41
- text: theme.color.primary["800"]
42
- };
43
- }
44
- const status = theme.color.status[variant === "error" ? "danger" : variant];
45
- return mode === "dark" ? {
46
- bg: status.subtleDark,
47
- text: status.textDark
48
- } : {
49
- bg: status.subtleLight,
50
- text: status.textLight
51
- };
52
- }
53
-
54
40
  /** variant → 全 slot の style 解決(alert.recipe styleRefs の 1:1 写像)。 */
55
41
  export function resolveAlertStyles(theme, mode, variant) {
56
42
  const {
57
43
  bg,
58
44
  text
59
- } = resolveAlertColors(theme, mode, variant);
45
+ } = resolveStatusVariantColors(theme, mode, variant);
60
46
  return {
61
47
  containerStyle: {
62
48
  backgroundColor: bg,
@@ -1 +1 @@
1
- {"version":3,"names":["ALERT_SPEC","padding","gap","radius","titleFont","titleWeight","messageFont","resolveAlertColors","theme","mode","variant","bg","color","primary","text","status","subtleDark","textDark","subtleLight","textLight","resolveAlertStyles","containerStyle","backgroundColor","borderRadius","spacing","flexDirection","alignItems","titleStyle","fontSize","typography","fontWeight","messageStyle"],"sourceRoot":"../../../src","sources":["components/alert.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA,OAAO,MAAMA,UAAU,GAAG;EACxBC,OAAO,EAAE,GAAG;EACZC,GAAG,EAAE,GAAG;EACRC,MAAM,EAAE,IAAI;EACZC,SAAS,EAAE,MAAM;EACjBC,WAAW,EAAE,QAAQ;EACrBC,WAAW,EAAE;AACf,CAOC;;AAED;;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,KAAkB,EAClBC,IAAe,EACfC,OAAqB,EACS;EAC9B,IAAIA,OAAO,KAAK,MAAM,EAAE;IACtB,OAAO;MAAEC,EAAE,EAAEH,KAAK,CAACI,KAAK,CAACC,OAAO,CAAC,IAAI,CAAC;MAAEC,IAAI,EAAEN,KAAK,CAACI,KAAK,CAACC,OAAO,CAAC,KAAK;IAAE,CAAC;EAC5E;EACA,MAAME,MAAM,GAAGP,KAAK,CAACI,KAAK,CAACG,MAAM,CAACL,OAAO,KAAK,OAAO,GAAG,QAAQ,GAAGA,OAAO,CAAC;EAC3E,OAAOD,IAAI,KAAK,MAAM,GAClB;IAAEE,EAAE,EAAEI,MAAM,CAACC,UAAU;IAAEF,IAAI,EAAEC,MAAM,CAACE;EAAS,CAAC,GAChD;IAAEN,EAAE,EAAEI,MAAM,CAACG,WAAW;IAAEJ,IAAI,EAAEC,MAAM,CAACI;EAAU,CAAC;AACxD;;AAEA;AACA,OAAO,SAASC,kBAAkBA,CAChCZ,KAAkB,EAClBC,IAAe,EACfC,OAAqB,EACR;EACb,MAAM;IAAEC,EAAE;IAAEG;EAAK,CAAC,GAAGP,kBAAkB,CAACC,KAAK,EAAEC,IAAI,EAAEC,OAAO,CAAC;EAC7D,OAAO;IACLW,cAAc,EAAE;MACdC,eAAe,EAAEX,EAAE;MACnBY,YAAY,EAAEf,KAAK,CAACL,MAAM,CAACH,UAAU,CAACG,MAAM,CAAC;MAC7CF,OAAO,EAAEO,KAAK,CAACgB,OAAO,CAACxB,UAAU,CAACC,OAAO,CAAC;MAC1CwB,aAAa,EAAE,KAAK;MACpBC,UAAU,EAAE,YAAY;MACxBxB,GAAG,EAAEM,KAAK,CAACgB,OAAO,CAACxB,UAAU,CAACE,GAAG;IACnC,CAAC;IACDyB,UAAU,EAAE;MACVf,KAAK,EAAEE,IAAI;MACXc,QAAQ,EAAEpB,KAAK,CAACqB,UAAU,CAACD,QAAQ,CAAC5B,UAAU,CAACI,SAAS,CAAC,CAACwB,QAAQ;MAClEE,UAAU,EAAEtB,KAAK,CAACqB,UAAU,CAACC,UAAU,CAAC9B,UAAU,CAACK,WAAW;IAChE,CAAC;IACD0B,YAAY,EAAE;MACZnB,KAAK,EAAEE,IAAI;MACXc,QAAQ,EAAEpB,KAAK,CAACqB,UAAU,CAACD,QAAQ,CAAC5B,UAAU,CAACM,WAAW,CAAC,CAACsB;IAC9D;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["resolveStatusVariantColors","CANONICAL_TAP_TARGET","ALERT_CLOSE_TAP_TARGET","ALERT_SPEC","padding","gap","radius","titleFont","titleWeight","messageFont","resolveAlertStyles","theme","mode","variant","bg","text","containerStyle","backgroundColor","borderRadius","spacing","flexDirection","alignItems","titleStyle","color","fontSize","typography","fontWeight","messageStyle"],"sourceRoot":"../../../src","sources":["components/alert.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA,SAASA,0BAA0B,QAA4B,oBAAoB;AACnF,SAASC,oBAAoB,QAAQ,uBAAuB;;AAE5D;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGD,oBAAoB;AAE1D,OAAO,MAAME,UAAU,GAAG;EACxBC,OAAO,EAAE,GAAG;EACZC,GAAG,EAAE,GAAG;EACRC,MAAM,EAAE,IAAI;EACZC,SAAS,EAAE,MAAM;EACjBC,WAAW,EAAE,QAAQ;EACrBC,WAAW,EAAE;AACf,CAOC;;AAED;;AAuBA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,KAAkB,EAClBC,IAAe,EACfC,OAAqB,EACR;EACb,MAAM;IAAEC,EAAE;IAAEC;EAAK,CAAC,GAAGf,0BAA0B,CAACW,KAAK,EAAEC,IAAI,EAAEC,OAAO,CAAC;EACrE,OAAO;IACLG,cAAc,EAAE;MACdC,eAAe,EAAEH,EAAE;MACnBI,YAAY,EAAEP,KAAK,CAACL,MAAM,CAACH,UAAU,CAACG,MAAM,CAAC;MAC7CF,OAAO,EAAEO,KAAK,CAACQ,OAAO,CAAChB,UAAU,CAACC,OAAO,CAAC;MAC1CgB,aAAa,EAAE,KAAK;MACpBC,UAAU,EAAE,YAAY;MACxBhB,GAAG,EAAEM,KAAK,CAACQ,OAAO,CAAChB,UAAU,CAACE,GAAG;IACnC,CAAC;IACDiB,UAAU,EAAE;MACVC,KAAK,EAAER,IAAI;MACXS,QAAQ,EAAEb,KAAK,CAACc,UAAU,CAACD,QAAQ,CAACrB,UAAU,CAACI,SAAS,CAAC,CAACiB,QAAQ;MAClEE,UAAU,EAAEf,KAAK,CAACc,UAAU,CAACC,UAAU,CAACvB,UAAU,CAACK,WAAW;IAChE,CAAC;IACDmB,YAAY,EAAE;MACZJ,KAAK,EAAER,IAAI;MACXS,QAAQ,EAAEb,KAAK,CAACc,UAAU,CAACD,QAAQ,CAACrB,UAAU,CAACM,WAAW,CAAC,CAACe;IAC9D;EACF,CAAC;AACH","ignoreList":[]}
@@ -9,7 +9,7 @@
9
9
  */
10
10
 
11
11
  /** サイズ軸(contract sizes の height と 1:1。recipe sizes の width/height/dotSize/fontSize に対応)。 */
12
- const SIZE_TABLE = {
12
+ export const AVATAR_SIZE_SPEC = {
13
13
  small: {
14
14
  box: 32,
15
15
  dot: 8,
@@ -30,6 +30,28 @@ const SIZE_TABLE = {
30
30
  /** group の重なり(-spacing.2 相当。負値 token が無いため recipe と同じ literal)。 */
31
31
  export const AVATAR_GROUP_OVERLAP = -8;
32
32
 
33
+ /**
34
+ * initials の文字サイズ倍率の上限(size 別)。
35
+ *
36
+ * Avatar の器は **width = height の円**(recipe sizes の box)で、fontScale で伸びるのは
37
+ * 中身の文字だけ。器は伸びないので、上限を掛けないと OS の文字サイズ拡大で文字が円から
38
+ * はみ出す(円が楕円に見える / 文字が切れる)。
39
+ *
40
+ * 導出は「box ÷ その size が使う fontSize token の lineHeight」を**小数第1位で切り捨て**(安全側):
41
+ * small 32 ÷ 19(xs の lineHeight) = 1.68… → 1.6
42
+ * medium 40 ÷ 26(sm の lineHeight) = 1.53… → 1.5
43
+ * large 48 ÷ 36(base の lineHeight) = 1.33… → 1.3
44
+ *
45
+ * lineHeight(fontSize ではなく)を分母に採るのは、RN が確保する行ボックスの高さが
46
+ * 溢れの実体だから。theme を差し替えても壊れないよう、この導出そのものは
47
+ * avatar-conformance.test.ts が実 theme の値で再検算する。
48
+ */
49
+ export const AVATAR_INITIALS_MAX_FONT_SCALE = {
50
+ small: 1.6,
51
+ medium: 1.5,
52
+ large: 1.3
53
+ };
54
+
33
55
  /**
34
56
  * group variant(avatar.recipe の group.style / group.overlapStyle の 1:1 写像)。
35
57
  * container は横並び、2枚目以降の子に overlap(負 margin)を適用する。
@@ -48,7 +70,7 @@ export function resolveAvatarGroupStyle() {
48
70
  * variant / size → Avatar style の解決(avatar.recipe styleRefs の 1:1 写像)。
49
71
  */
50
72
  export function resolveAvatarStyle(theme, mode, variant, size) {
51
- const s = SIZE_TABLE[size];
73
+ const s = AVATAR_SIZE_SPEC[size];
52
74
  return {
53
75
  container: {
54
76
  width: s.box,
@@ -1 +1 @@
1
- {"version":3,"names":["SIZE_TABLE","small","box","dot","fontSize","medium","large","AVATAR_GROUP_OVERLAP","resolveAvatarGroupStyle","container","flexDirection","overlap","marginLeft","resolveAvatarStyle","theme","mode","variant","size","s","width","height","borderRadius","radius","full","overflow","backgroundColor","color","primary","alignItems","justifyContent","text","fontWeight","typography","borderWidth","borderColor","semantic","resolveAvatarStatusColor","status","success","base","warning"],"sourceRoot":"../../../src","sources":["components/avatar.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA,MAAMA,UAAU,GAAG;EACjBC,KAAK,EAAE;IAAEC,GAAG,EAAE,EAAE;IAAEC,GAAG,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAK,CAAC;EAC1CC,MAAM,EAAE;IAAEH,GAAG,EAAE,EAAE;IAAEC,GAAG,EAAE,EAAE;IAAEC,QAAQ,EAAE;EAAK,CAAC;EAC5CE,KAAK,EAAE;IAAEJ,GAAG,EAAE,EAAE;IAAEC,GAAG,EAAE,EAAE;IAAEC,QAAQ,EAAE;EAAO;AAC9C,CAAU;;AAEV;AACA,OAAO,MAAMG,oBAAoB,GAAG,CAAC,CAAC;;AAEtC;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CAAA,EAGrC;EACA,OAAO;IACLC,SAAS,EAAE;MAAEC,aAAa,EAAE;IAAM,CAAC;IACnCC,OAAO,EAAE;MAAEC,UAAU,EAAEL;IAAqB;EAC9C,CAAC;AACH;AAmBA;AACA;AACA;AACA,OAAO,SAASM,kBAAkBA,CAChCC,KAAkB,EAClBC,IAAe,EACfC,OAA6B,EAC7BC,IAAgB,EACG;EACnB,MAAMC,CAAC,GAAGlB,UAAU,CAACiB,IAAI,CAAC;EAC1B,OAAO;IACLR,SAAS,EAAE;MACTU,KAAK,EAAED,CAAC,CAAChB,GAAG;MACZkB,MAAM,EAAEF,CAAC,CAAChB,GAAG;MACbmB,YAAY,EAAEP,KAAK,CAACQ,MAAM,CAACC,IAAI;MAC/B,IAAIP,OAAO,KAAK,OAAO,GACnB;QAAEQ,QAAQ,EAAE;MAAkB,CAAC,GAC/B;QACEC,eAAe,EAAEX,KAAK,CAACY,KAAK,CAACC,OAAO,CAAC,IAAI,CAAC;QAC1CC,UAAU,EAAE,QAAiB;QAC7BC,cAAc,EAAE;MAClB,CAAC;IACP,CAAC;IACDC,IAAI,EAAE;MACJJ,KAAK,EAAEZ,KAAK,CAACY,KAAK,CAACC,OAAO,CAAC,KAAK,CAAC;MACjCI,UAAU,EAAEjB,KAAK,CAACkB,UAAU,CAACD,UAAU,CAAC1B,MAAM;MAC9CD,QAAQ,EAAEU,KAAK,CAACkB,UAAU,CAAC5B,QAAQ,CAACc,CAAC,CAACd,QAAQ,CAAC,CAACA;IAClD,CAAC;IACDD,GAAG,EAAE;MACHgB,KAAK,EAAED,CAAC,CAACf,GAAG;MACZiB,MAAM,EAAEF,CAAC,CAACf,GAAG;MACbkB,YAAY,EAAEP,KAAK,CAACQ,MAAM,CAACC,IAAI;MAC/BU,WAAW,EAAE,CAAC;MACdC,WAAW,EAAEpB,KAAK,CAACY,KAAK,CAACS,QAAQ,CAACpB,IAAI,CAAC,CAAC,YAAY;IACtD;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASqB,wBAAwBA,CACtCtB,KAAkB,EAClBC,IAAe,EACfsB,MAAoB,EACZ;EACR,QAAQA,MAAM;IACZ,KAAK,QAAQ;MACX,OAAOvB,KAAK,CAACY,KAAK,CAACW,MAAM,CAACC,OAAO,CAACC,IAAI;IACxC,KAAK,MAAM;MACT,OAAOzB,KAAK,CAACY,KAAK,CAACW,MAAM,CAACG,OAAO,CAACD,IAAI;IACxC,KAAK,SAAS;MACZ,OAAOzB,KAAK,CAACY,KAAK,CAACS,QAAQ,CAACpB,IAAI,CAAC,CAAC,eAAe,CAAC;EACtD;AACF","ignoreList":[]}
1
+ {"version":3,"names":["AVATAR_SIZE_SPEC","small","box","dot","fontSize","medium","large","AVATAR_GROUP_OVERLAP","AVATAR_INITIALS_MAX_FONT_SCALE","resolveAvatarGroupStyle","container","flexDirection","overlap","marginLeft","resolveAvatarStyle","theme","mode","variant","size","s","width","height","borderRadius","radius","full","overflow","backgroundColor","color","primary","alignItems","justifyContent","text","fontWeight","typography","borderWidth","borderColor","semantic","resolveAvatarStatusColor","status","success","base","warning"],"sourceRoot":"../../../src","sources":["components/avatar.styles.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["isValidElement","CARD_INTERACTIVE","validateCardProps","variant","onPress","primaryAction","Object","prototype","hasOwnProperty","call","String","keys","join","problems","push"],"sourceRoot":"../../../src","sources":["components/card.validate.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,cAAc,QAAQ,OAAO;AAEtC,SAASC,gBAAgB,QAAQ,kBAAe;AAQhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAC;EAChCC,OAAO;EACPC,OAAO;EACPC;AACsB,CAAC,EAAY;EACnC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAOF,OAAO,KAAK,QAAQ,EAAE;IAC/B,OAAO,CACL,kCAAkCA,OAAO,KAAK,IAAI,GAAG,MAAM,GAAG,OAAOA,OAAO,IAAI,CACjF;EACH;EACA,IAAI,CAACG,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACR,gBAAgB,EAAEE,OAAO,CAAC,EAAE;IACpE,OAAO,CACL,mBAAmBO,MAAM,CAACP,OAAO,CAAC,WAAW,GAC3C,GAAGG,MAAM,CAACK,IAAI,CAACV,gBAAgB,CAAC,CAACW,IAAI,CAAC,KAAK,CAAC,UAAU,CACzD;EACH;EAEA,IAAI,CAACX,gBAAgB,CAACE,OAAO,CAAC,EAAE;IAC9B,MAAMU,QAAkB,GAAG,EAAE;IAC7B,IAAIT,OAAO,IAAI,IAAI,EAAE;MACnBS,QAAQ,CAACC,IAAI,CAAC,iBAAiBX,OAAO,yCAAyC,CAAC;IAClF;IACA,IAAIE,aAAa,IAAI,IAAI,EAAE;MACzBQ,QAAQ,CAACC,IAAI,CAAC,iBAAiBX,OAAO,+CAA+C,CAAC;IACxF;IACA,OAAOU,QAAQ;EACjB;EAEA,MAAMA,QAAkB,GAAG,EAAE;EAE7B,IAAIT,OAAO,IAAI,IAAI,EAAE;IACnBS,QAAQ,CAACC,IAAI,CACX,iBAAiBX,OAAO,wCAC1B,CAAC;EACH,CAAC,MAAM,IAAI,OAAOC,OAAO,KAAK,UAAU,EAAE;IACxCS,QAAQ,CAACC,IAAI,CAAC,iBAAiBX,OAAO,sBAAsB,OAAOC,OAAO,IAAI,CAAC;EACjF;EAEA,IAAIC,aAAa,IAAI,IAAI,EAAE;IACzBQ,QAAQ,CAACC,IAAI,CACX,iBAAiBX,OAAO,wCAAwC,GAC9D,2CAA2C,GAC3C,qDACJ,CAAC;EACH,CAAC,MAAM,IAAI,eAACH,cAAc,CAACK,aAAa,CAAC,EAAE;IACzCQ,QAAQ,CAACC,IAAI,CACX,iBAAiBX,OAAO,mCAAmC,OAAOE,aAAa,IAAI,GACjF,qBACJ,CAAC;EACH;EAEA,OAAOQ,QAAQ;AACjB","ignoreList":[]}
1
+ {"version":3,"names":["isValidElement","CARD_INTERACTIVE","validateCardProps","variant","onPress","primaryAction","Object","prototype","hasOwnProperty","call","String","keys","join","problems","push"],"sourceRoot":"../../../src","sources":["components/card.validate.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,cAAc,QAAQ,OAAO;AAEtC,SAASC,gBAAgB,QAAQ,kBAAkB;AAQnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAC;EAChCC,OAAO;EACPC,OAAO;EACPC;AACsB,CAAC,EAAY;EACnC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAOF,OAAO,KAAK,QAAQ,EAAE;IAC/B,OAAO,CACL,kCAAkCA,OAAO,KAAK,IAAI,GAAG,MAAM,GAAG,OAAOA,OAAO,IAAI,CACjF;EACH;EACA,IAAI,CAACG,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACR,gBAAgB,EAAEE,OAAO,CAAC,EAAE;IACpE,OAAO,CACL,mBAAmBO,MAAM,CAACP,OAAO,CAAC,WAAW,GAC3C,GAAGG,MAAM,CAACK,IAAI,CAACV,gBAAgB,CAAC,CAACW,IAAI,CAAC,KAAK,CAAC,UAAU,CACzD;EACH;EAEA,IAAI,CAACX,gBAAgB,CAACE,OAAO,CAAC,EAAE;IAC9B,MAAMU,QAAkB,GAAG,EAAE;IAC7B,IAAIT,OAAO,IAAI,IAAI,EAAE;MACnBS,QAAQ,CAACC,IAAI,CAAC,iBAAiBX,OAAO,yCAAyC,CAAC;IAClF;IACA,IAAIE,aAAa,IAAI,IAAI,EAAE;MACzBQ,QAAQ,CAACC,IAAI,CAAC,iBAAiBX,OAAO,+CAA+C,CAAC;IACxF;IACA,OAAOU,QAAQ;EACjB;EAEA,MAAMA,QAAkB,GAAG,EAAE;EAE7B,IAAIT,OAAO,IAAI,IAAI,EAAE;IACnBS,QAAQ,CAACC,IAAI,CACX,iBAAiBX,OAAO,wCAC1B,CAAC;EACH,CAAC,MAAM,IAAI,OAAOC,OAAO,KAAK,UAAU,EAAE;IACxCS,QAAQ,CAACC,IAAI,CAAC,iBAAiBX,OAAO,sBAAsB,OAAOC,OAAO,IAAI,CAAC;EACjF;EAEA,IAAIC,aAAa,IAAI,IAAI,EAAE;IACzBQ,QAAQ,CAACC,IAAI,CACX,iBAAiBX,OAAO,wCAAwC,GAC9D,2CAA2C,GAC3C,qDACJ,CAAC;EACH,CAAC,MAAM,IAAI,eAACH,cAAc,CAACK,aAAa,CAAC,EAAE;IACzCQ,QAAQ,CAACC,IAAI,CACX,iBAAiBX,OAAO,mCAAmC,OAAOE,aAAa,IAAI,GACjF,qBACJ,CAAC;EACH;EAEA,OAAOQ,QAAQ;AACjB","ignoreList":[]}
@@ -11,13 +11,16 @@
11
11
  /**
12
12
  * recipe 由来の literal 値テーブル(token 化されていない数値。conformance が recipe と照合する)。
13
13
  * - box は 20px(web の 16px より大きいのはタッチ前提、recipe description)
14
- * - hitSlop は (44 - box 20) / 2 = 12。行全体 Pressable に足して実タッチ領域 44pt を確保
14
+ * - 実効タップ標的 44pt は行の minHeight で確保(A11Y_MIN_TAP_TARGET_44。規約 10-(b):
15
+ * 背景を持たない行は hitSlop でなく寸法で満たす — 旧実装の四方 hitSlop 12 は行全体
16
+ * Pressable に効くため、縦積みの隣接 Checkbox と当たり判定が最大 24pt 重なっていた
17
+ * (Codex レビュー指摘)。Radio の option 行と同じ手当てに統一)
15
18
  */
16
19
  export const CHECKBOX_SPEC = {
17
20
  boxSize: 20,
18
21
  boxBorderWidth: 2,
19
22
  disabledOpacity: 0.5,
20
- hitSlop: 12
23
+ rowMinHeight: 44
21
24
  };
22
25
 
23
26
  /** 見た目(色)に効く状態入力。disabled は opacity のみで色を変えないため含めない。 */
@@ -1 +1 @@
1
- {"version":3,"names":["CHECKBOX_SPEC","boxSize","boxBorderWidth","disabledOpacity","hitSlop","resolveCheckboxStyle","theme","mode","checked","indeterminate","error","sem","color","semantic","filled","boxStyle","width","height","borderWidth","borderColor","status","danger","base","primary","borderRadius","radius","sm","backgroundColor","labelStyle","fontSize","typography","gap","spacing","markColor"],"sourceRoot":"../../../src","sources":["components/checkbox.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,GAAG;EAC3BC,OAAO,EAAE,EAAE;EACXC,cAAc,EAAE,CAAC;EACjBC,eAAe,EAAE,GAAG;EACpBC,OAAO,EAAE;AACX,CAAU;;AAEV;;AA2BA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCC,KAAkB,EAClBC,IAAe,EACf;EAAEC,OAAO;EAAEC,aAAa,GAAG,KAAK;EAAEC,KAAK,GAAG;AAA0B,CAAC,EACnD;EAClB,MAAMC,GAAG,GAAGL,KAAK,CAACM,KAAK,CAACC,QAAQ,CAACN,IAAI,CAAC;EACtC,MAAMO,MAAM,GAAGN,OAAO,IAAIC,aAAa;EACvC,OAAO;IACLM,QAAQ,EAAE;MACRC,KAAK,EAAEhB,aAAa,CAACC,OAAO;MAC5BgB,MAAM,EAAEjB,aAAa,CAACC,OAAO;MAC7BiB,WAAW,EAAElB,aAAa,CAACE,cAAc;MACzCiB,WAAW,EAAET,KAAK,GACdJ,KAAK,CAACM,KAAK,CAACQ,MAAM,CAACC,MAAM,CAACC,IAAI,GAC9BR,MAAM,GACJR,KAAK,CAACM,KAAK,CAACW,OAAO,CAAC,KAAK,CAAC,GAC1BZ,GAAG,CAAC,eAAe,CAAC;MAC1Ba,YAAY,EAAElB,KAAK,CAACmB,MAAM,CAACC,EAAE;MAC7BC,eAAe,EAAEb,MAAM,GAAGR,KAAK,CAACM,KAAK,CAACW,OAAO,CAAC,KAAK,CAAC,GAAGZ,GAAG,CAAC,UAAU;IACvE,CAAC;IACDiB,UAAU,EAAE;MACVC,QAAQ,EAAEvB,KAAK,CAACwB,UAAU,CAACD,QAAQ,CAACP,IAAI,CAACO,QAAQ;MACjDjB,KAAK,EAAED,GAAG,CAAC,cAAc;IAC3B,CAAC;IACDoB,GAAG,EAAEzB,KAAK,CAAC0B,OAAO,CAAC,GAAG,CAAC;IACvBC,SAAS,EAAEtB,GAAG,CAAC,gBAAgB;EACjC,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["CHECKBOX_SPEC","boxSize","boxBorderWidth","disabledOpacity","rowMinHeight","resolveCheckboxStyle","theme","mode","checked","indeterminate","error","sem","color","semantic","filled","boxStyle","width","height","borderWidth","borderColor","status","danger","base","primary","borderRadius","radius","sm","backgroundColor","labelStyle","fontSize","typography","gap","spacing","markColor"],"sourceRoot":"../../../src","sources":["components/checkbox.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,GAAG;EAC3BC,OAAO,EAAE,EAAE;EACXC,cAAc,EAAE,CAAC;EACjBC,eAAe,EAAE,GAAG;EACpBC,YAAY,EAAE;AAChB,CAAU;;AAEV;;AA2BA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCC,KAAkB,EAClBC,IAAe,EACf;EAAEC,OAAO;EAAEC,aAAa,GAAG,KAAK;EAAEC,KAAK,GAAG;AAA0B,CAAC,EACnD;EAClB,MAAMC,GAAG,GAAGL,KAAK,CAACM,KAAK,CAACC,QAAQ,CAACN,IAAI,CAAC;EACtC,MAAMO,MAAM,GAAGN,OAAO,IAAIC,aAAa;EACvC,OAAO;IACLM,QAAQ,EAAE;MACRC,KAAK,EAAEhB,aAAa,CAACC,OAAO;MAC5BgB,MAAM,EAAEjB,aAAa,CAACC,OAAO;MAC7BiB,WAAW,EAAElB,aAAa,CAACE,cAAc;MACzCiB,WAAW,EAAET,KAAK,GACdJ,KAAK,CAACM,KAAK,CAACQ,MAAM,CAACC,MAAM,CAACC,IAAI,GAC9BR,MAAM,GACJR,KAAK,CAACM,KAAK,CAACW,OAAO,CAAC,KAAK,CAAC,GAC1BZ,GAAG,CAAC,eAAe,CAAC;MAC1Ba,YAAY,EAAElB,KAAK,CAACmB,MAAM,CAACC,EAAE;MAC7BC,eAAe,EAAEb,MAAM,GAAGR,KAAK,CAACM,KAAK,CAACW,OAAO,CAAC,KAAK,CAAC,GAAGZ,GAAG,CAAC,UAAU;IACvE,CAAC;IACDiB,UAAU,EAAE;MACVC,QAAQ,EAAEvB,KAAK,CAACwB,UAAU,CAACD,QAAQ,CAACP,IAAI,CAACO,QAAQ;MACjDjB,KAAK,EAAED,GAAG,CAAC,cAAc;IAC3B,CAAC;IACDoB,GAAG,EAAEzB,KAAK,CAAC0B,OAAO,CAAC,GAAG,CAAC;IACvBC,SAAS,EAAEtB,GAAG,CAAC,gBAAgB;EACjC,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Surface","Image","Card","Skeleton","EmptyState","Screen","Header","Avatar","TextField","Toggle","Checkbox","Radio","Alert","Toast","Progress","Modal","ActionSheet","BottomSheet"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,cAAW;AACnC,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,IAAI,QAAQ,WAAQ;AAC7B,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,MAAM,QAAQ,aAAU;AACjC,SAASC,MAAM,QAAQ,aAAU;AACjC,SAASC,MAAM,QAAQ,aAAU;AACjC,SAASC,SAAS,QAAQ,gBAAa;AACvC,SAASC,MAAM,QAAQ,aAAU;AACjC,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,WAAW,QAAQ,kBAAe","ignoreList":[]}
1
+ {"version":3,"names":["Surface","Image","Card","Skeleton","EmptyState","Screen","Header","Avatar","TextField","Toggle","Checkbox","Radio","Alert","Toast","Progress","Modal","ActionSheet","BottomSheet"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,cAAc;AACtC,SAASC,KAAK,QAAQ,YAAY;AAClC,SAASC,IAAI,QAAQ,WAAW;AAChC,SAASC,QAAQ,QAAQ,eAAe;AACxC,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,QAAQ,QAAQ,eAAe;AACxC,SAASC,KAAK,QAAQ,YAAY;AAClC,SAASC,KAAK,QAAQ,YAAY;AAClC,SAASC,KAAK,QAAQ,YAAY;AAClC,SAASC,QAAQ,QAAQ,eAAe;AACxC,SAASC,KAAK,QAAQ,YAAY;AAClC,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAASC,WAAW,QAAQ,kBAAkB","ignoreList":[]}