melta-app 0.5.3 → 0.7.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 (298) hide show
  1. package/README.md +493 -186
  2. package/docs/architecture.md +99 -0
  3. package/eslint-rules/melta.d.mts +44 -0
  4. package/lib/module/a11y/tap-target.js +41 -0
  5. package/lib/module/a11y/tap-target.js.map +1 -0
  6. package/lib/module/components/ActionSheet.js +20 -6
  7. package/lib/module/components/ActionSheet.js.map +1 -1
  8. package/lib/module/components/Alert.js +11 -7
  9. package/lib/module/components/Alert.js.map +1 -1
  10. package/lib/module/components/Avatar.js +7 -2
  11. package/lib/module/components/Avatar.js.map +1 -1
  12. package/lib/module/components/BottomSheet.js +11 -3
  13. package/lib/module/components/BottomSheet.js.map +1 -1
  14. package/lib/module/components/Card.js +4 -3
  15. package/lib/module/components/Card.js.map +1 -1
  16. package/lib/module/components/Checkbox.js +8 -5
  17. package/lib/module/components/Checkbox.js.map +1 -1
  18. package/lib/module/components/EmptyState.js +2 -1
  19. package/lib/module/components/EmptyState.js.map +1 -1
  20. package/lib/module/components/Header.js.map +1 -1
  21. package/lib/module/components/Image.js +5 -3
  22. package/lib/module/components/Image.js.map +1 -1
  23. package/lib/module/components/Modal.js +12 -4
  24. package/lib/module/components/Modal.js.map +1 -1
  25. package/lib/module/components/Progress.js +2 -1
  26. package/lib/module/components/Progress.js.map +1 -1
  27. package/lib/module/components/Radio.js +11 -3
  28. package/lib/module/components/Radio.js.map +1 -1
  29. package/lib/module/components/Screen.js +28 -3
  30. package/lib/module/components/Screen.js.map +1 -1
  31. package/lib/module/components/Skeleton.js +2 -1
  32. package/lib/module/components/Skeleton.js.map +1 -1
  33. package/lib/module/components/Surface.js +2 -1
  34. package/lib/module/components/Surface.js.map +1 -1
  35. package/lib/module/components/TextField.js +16 -4
  36. package/lib/module/components/TextField.js.map +1 -1
  37. package/lib/module/components/Toast.js +17 -9
  38. package/lib/module/components/Toast.js.map +1 -1
  39. package/lib/module/components/Toggle.js +13 -4
  40. package/lib/module/components/Toggle.js.map +1 -1
  41. package/lib/module/components/alert.styles.js +12 -26
  42. package/lib/module/components/alert.styles.js.map +1 -1
  43. package/lib/module/components/avatar.styles.js +24 -2
  44. package/lib/module/components/avatar.styles.js.map +1 -1
  45. package/lib/module/components/card.validate.js.map +1 -1
  46. package/lib/module/components/checkbox.styles.js +5 -2
  47. package/lib/module/components/checkbox.styles.js.map +1 -1
  48. package/lib/module/components/index.js.map +1 -1
  49. package/lib/module/components/modal.styles.js +9 -0
  50. package/lib/module/components/modal.styles.js.map +1 -1
  51. package/lib/module/components/radio.styles.js +11 -2
  52. package/lib/module/components/radio.styles.js.map +1 -1
  53. package/lib/module/components/safe-area-registry.js +64 -13
  54. package/lib/module/components/safe-area-registry.js.map +1 -1
  55. package/lib/module/components/status-colors.js +53 -0
  56. package/lib/module/components/status-colors.js.map +1 -0
  57. package/lib/module/components/textfield.styles.js +15 -8
  58. package/lib/module/components/textfield.styles.js.map +1 -1
  59. package/lib/module/components/toast.styles.js +36 -25
  60. package/lib/module/components/toast.styles.js.map +1 -1
  61. package/lib/module/components/toggle.styles.js +20 -0
  62. package/lib/module/components/toggle.styles.js.map +1 -1
  63. package/lib/module/icons/Icon.js +4 -1
  64. package/lib/module/icons/Icon.js.map +1 -1
  65. package/lib/module/icons/icon.styles.js +32 -1
  66. package/lib/module/icons/icon.styles.js.map +1 -1
  67. package/lib/module/icons/index.js.map +1 -1
  68. package/lib/module/index.js.map +1 -1
  69. package/lib/module/primitives/Button.js +23 -11
  70. package/lib/module/primitives/Button.js.map +1 -1
  71. package/lib/module/primitives/Metric.js +2 -1
  72. package/lib/module/primitives/Metric.js.map +1 -1
  73. package/lib/module/primitives/Row.js.map +1 -1
  74. package/lib/module/primitives/Stack.js.map +1 -1
  75. package/lib/module/primitives/Tag.js +15 -7
  76. package/lib/module/primitives/Tag.js.map +1 -1
  77. package/lib/module/primitives/Text.js +28 -7
  78. package/lib/module/primitives/Text.js.map +1 -1
  79. package/lib/module/primitives/_internal/focus-ring.js.map +1 -1
  80. package/lib/module/primitives/button.styles.js +58 -8
  81. package/lib/module/primitives/button.styles.js.map +1 -1
  82. package/lib/module/primitives/index.js.map +1 -1
  83. package/lib/module/primitives/metric.styles.js +4 -1
  84. package/lib/module/primitives/metric.styles.js.map +1 -1
  85. package/lib/module/primitives/tag.styles.js +42 -3
  86. package/lib/module/primitives/tag.styles.js.map +1 -1
  87. package/lib/module/primitives/text.styles.js +10 -5
  88. package/lib/module/primitives/text.styles.js.map +1 -1
  89. package/lib/module/safe-area/index.js +11 -5
  90. package/lib/module/safe-area/index.js.map +1 -1
  91. package/lib/module/theme/ThemeProvider.js +5 -2
  92. package/lib/module/theme/ThemeProvider.js.map +1 -1
  93. package/lib/module/theme/define-theme.js +27 -1
  94. package/lib/module/theme/define-theme.js.map +1 -1
  95. package/lib/module/theme/index.js +7 -8
  96. package/lib/module/theme/index.js.map +1 -1
  97. package/lib/module/theme/letter-spacing.js +20 -0
  98. package/lib/module/theme/letter-spacing.js.map +1 -0
  99. package/lib/module/theme/line-height.js +52 -0
  100. package/lib/module/theme/line-height.js.map +1 -0
  101. package/lib/module/theme/native-theme.js +8 -7
  102. package/lib/module/theme/native-theme.js.map +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 -13
  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 +44 -0
  225. package/lib/typescript/src/theme/line-height.d.ts.map +1 -0
  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 +10 -1
  229. package/lib/typescript/src/theme/types.d.ts.map +1 -1
  230. package/llms.txt +2 -1
  231. package/package.json +22 -7
  232. package/src/a11y/tap-target.ts +38 -0
  233. package/src/components/ActionSheet.tsx +25 -15
  234. package/src/components/Alert.tsx +37 -10
  235. package/src/components/Avatar.tsx +12 -4
  236. package/src/components/BottomSheet.tsx +16 -13
  237. package/src/components/Card.tsx +9 -8
  238. package/src/components/Checkbox.tsx +12 -9
  239. package/src/components/EmptyState.tsx +7 -6
  240. package/src/components/Header.tsx +4 -4
  241. package/src/components/Image.tsx +9 -7
  242. package/src/components/Modal.tsx +22 -6
  243. package/src/components/Progress.tsx +5 -4
  244. package/src/components/Radio.tsx +11 -6
  245. package/src/components/Screen.tsx +66 -8
  246. package/src/components/Skeleton.tsx +6 -5
  247. package/src/components/Surface.tsx +5 -4
  248. package/src/components/TextField.tsx +25 -7
  249. package/src/components/Toast.tsx +33 -11
  250. package/src/components/Toggle.tsx +15 -6
  251. package/src/components/action-sheet.styles.ts +1 -1
  252. package/src/components/alert.styles.ts +13 -25
  253. package/src/components/avatar.styles.ts +25 -3
  254. package/src/components/bottom-sheet.styles.ts +1 -1
  255. package/src/components/card.styles.ts +1 -1
  256. package/src/components/card.validate.ts +2 -2
  257. package/src/components/checkbox.styles.ts +6 -3
  258. package/src/components/empty-state.styles.ts +1 -1
  259. package/src/components/header.styles.ts +1 -1
  260. package/src/components/image.styles.ts +1 -1
  261. package/src/components/index.ts +18 -18
  262. package/src/components/modal.styles.ts +11 -2
  263. package/src/components/progress.styles.ts +1 -1
  264. package/src/components/radio.styles.ts +11 -2
  265. package/src/components/safe-area-registry.ts +81 -14
  266. package/src/components/screen.styles.ts +1 -1
  267. package/src/components/skeleton.styles.ts +1 -1
  268. package/src/components/status-colors.ts +59 -0
  269. package/src/components/surface.styles.ts +1 -1
  270. package/src/components/textfield.styles.ts +18 -15
  271. package/src/components/toast.styles.ts +32 -25
  272. package/src/components/toggle.styles.ts +21 -1
  273. package/src/icons/Icon.tsx +13 -8
  274. package/src/icons/icon.styles.ts +38 -3
  275. package/src/icons/index.ts +3 -3
  276. package/src/index.ts +4 -4
  277. package/src/primitives/Button.tsx +28 -14
  278. package/src/primitives/Metric.tsx +5 -4
  279. package/src/primitives/Row.tsx +4 -4
  280. package/src/primitives/Stack.tsx +4 -4
  281. package/src/primitives/Tag.tsx +29 -11
  282. package/src/primitives/Text.tsx +42 -9
  283. package/src/primitives/_internal/focus-ring.tsx +1 -1
  284. package/src/primitives/button.styles.ts +63 -10
  285. package/src/primitives/index.ts +6 -6
  286. package/src/primitives/metric.styles.ts +9 -2
  287. package/src/primitives/row.styles.ts +1 -1
  288. package/src/primitives/stack.styles.ts +1 -1
  289. package/src/primitives/tag.styles.ts +43 -4
  290. package/src/primitives/text.styles.ts +10 -6
  291. package/src/safe-area/index.ts +21 -7
  292. package/src/theme/ThemeProvider.tsx +8 -5
  293. package/src/theme/define-theme.ts +33 -2
  294. package/src/theme/index.ts +18 -16
  295. package/src/theme/letter-spacing.ts +17 -0
  296. package/src/theme/line-height.ts +53 -0
  297. package/src/theme/native-theme.ts +9 -8
  298. package/src/theme/types.ts +10 -1
@@ -5,11 +5,46 @@
5
5
  * 直接実行できる。recipes/app/avatar.recipe.json(melta-contracts の styleRefs)との
6
6
  * 機械照合は scripts/lib/avatar-conformance.test.ts が行う。
7
7
  */
8
- import type { FontWeightValue, NativeTheme, ThemeMode } from "../theme";
8
+ import type { FontWeightValue, NativeTheme, ThemeMode } from "../theme/index.js";
9
9
  export type AvatarSize = "small" | "medium" | "large";
10
10
  export type AvatarStatus = "online" | "away" | "offline";
11
+ /** サイズ軸(contract sizes の height と 1:1。recipe sizes の width/height/dotSize/fontSize に対応)。 */
12
+ export declare const AVATAR_SIZE_SPEC: {
13
+ readonly small: {
14
+ readonly box: 32;
15
+ readonly dot: 8;
16
+ readonly fontSize: "xs";
17
+ };
18
+ readonly medium: {
19
+ readonly box: 40;
20
+ readonly dot: 10;
21
+ readonly fontSize: "sm";
22
+ };
23
+ readonly large: {
24
+ readonly box: 48;
25
+ readonly dot: 12;
26
+ readonly fontSize: "base";
27
+ };
28
+ };
11
29
  /** group の重なり(-spacing.2 相当。負値 token が無いため recipe と同じ literal)。 */
12
30
  export declare const AVATAR_GROUP_OVERLAP = -8;
31
+ /**
32
+ * initials の文字サイズ倍率の上限(size 別)。
33
+ *
34
+ * Avatar の器は **width = height の円**(recipe sizes の box)で、fontScale で伸びるのは
35
+ * 中身の文字だけ。器は伸びないので、上限を掛けないと OS の文字サイズ拡大で文字が円から
36
+ * はみ出す(円が楕円に見える / 文字が切れる)。
37
+ *
38
+ * 導出は「box ÷ その size が使う fontSize token の lineHeight」を**小数第1位で切り捨て**(安全側):
39
+ * small 32 ÷ 19(xs の lineHeight) = 1.68… → 1.6
40
+ * medium 40 ÷ 26(sm の lineHeight) = 1.53… → 1.5
41
+ * large 48 ÷ 36(base の lineHeight) = 1.33… → 1.3
42
+ *
43
+ * lineHeight(fontSize ではなく)を分母に採るのは、RN が確保する行ボックスの高さが
44
+ * 溢れの実体だから。theme を差し替えても壊れないよう、この導出そのものは
45
+ * avatar-conformance.test.ts が実 theme の値で再検算する。
46
+ */
47
+ export declare const AVATAR_INITIALS_MAX_FONT_SCALE: Record<AvatarSize, number>;
13
48
  /**
14
49
  * group variant(avatar.recipe の group.style / group.overlapStyle の 1:1 写像)。
15
50
  * container は横並び、2枚目以降の子に overlap(負 margin)を適用する。
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/avatar.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAExE,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AASzD,mEAAmE;AACnE,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI;IACzC,SAAS,EAAE;QAAE,aAAa,EAAE,KAAK,CAAA;KAAE,CAAC;IACpC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC,CAKA;AAED,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,QAAQ,CAAC;QACtB,cAAc,CAAC,EAAE,QAAQ,CAAC;KAC3B,CAAC;IACF,wCAAwC;IACxC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,4DAA4D;IAC5D,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,CAAC,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACnG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,GAAG,UAAU,EAC7B,IAAI,EAAE,UAAU,GACf,iBAAiB,CA4BnB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,YAAY,GACnB,MAAM,CASR"}
1
+ {"version":3,"file":"avatar.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/avatar.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEjF,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzD,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;CAInB,CAAC;AAEX,mEAAmE;AACnE,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAIrE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI;IACzC,SAAS,EAAE;QAAE,aAAa,EAAE,KAAK,CAAA;KAAE,CAAC;IACpC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC,CAKA;AAED,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,QAAQ,CAAC;QACtB,cAAc,CAAC,EAAE,QAAQ,CAAC;KAC3B,CAAC;IACF,wCAAwC;IACxC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,4DAA4D;IAC5D,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,CAAC,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACnG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,GAAG,UAAU,EAC7B,IAAI,EAAE,UAAU,GACf,iBAAiB,CA4BnB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,YAAY,GACnB,MAAM,CASR"}
@@ -12,7 +12,7 @@
12
12
  * - overlay の黒 50% は token 外の literal(modal と同じ)。
13
13
  * - sheet の下余白(SafeArea)は実装(BottomSheet.tsx)が SafeAreaView で加算する。
14
14
  */
15
- import type { FontWeightValue, NativeTheme, ThemeMode } from "../theme";
15
+ import type { FontWeightValue, NativeTheme, ThemeMode } from "../theme/index.js";
16
16
  /** overlay の黒 50%(token 外 literal。modal と同値)。 */
17
17
  export declare const BOTTOM_SHEET_OVERLAY_COLOR = "rgba(0,0,0,0.5)";
18
18
  export interface BottomSheetStyle {
@@ -1 +1 @@
1
- {"version":3,"file":"bottom-sheet.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/bottom-sheet.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAExE,iDAAiD;AAEjD,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,UAAU,CAAA;KAAE,CAAC;IAC/E,UAAU,EAAE;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE,CAAC;QACV,MAAM,EAAE,CAAC,CAAC;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,QAAQ,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,eAAe,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,gBAAgB,CA8B7F"}
1
+ {"version":3,"file":"bottom-sheet.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/bottom-sheet.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEjF,iDAAiD;AAEjD,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,UAAU,CAAA;KAAE,CAAC;IAC/E,UAAU,EAAE;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE,CAAC;QACV,MAAM,EAAE,CAAC,CAAC;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,QAAQ,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,eAAe,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,YAAY,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,gBAAgB,CA8B7F"}
@@ -6,7 +6,7 @@
6
6
  * との機械照合は scripts/lib/card-conformance.test.ts が行う。
7
7
  */
8
8
  import type { ViewStyle } from "react-native";
9
- import type { NativeTheme, ThemeMode } from "../theme";
9
+ import type { NativeTheme, ThemeMode } from "../theme/index.js";
10
10
  export type CardVariant = "basic" | "media" | "action" | "link";
11
11
  /** variant → インタラクティブ(Pressable)か。action/link のみ true(recipe pressedStyle の有無と対応)。 */
12
12
  export declare const CARD_INTERACTIVE: Record<CardVariant, boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"card.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/card.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAgB,MAAM,UAAU,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhE,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAKzD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,WAAW,EACpB,OAAO,UAAQ,GACd,SAAS,CAYX;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,WAAW,GACnB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAEjC"}
1
+ {"version":3,"file":"card.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/card.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAgB,MAAM,mBAAmB,CAAC;AAE9E,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhE,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAKzD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,WAAW,EACpB,OAAO,UAAQ,GACd,SAAS,CAYX;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,WAAW,GACnB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAEjC"}
@@ -8,7 +8,7 @@
8
8
  * 直接網羅できるようにしている。Card 側は結果を dev で1回だけ報告するだけ
9
9
  * (警告のラッチに依存せずに検査内容そのものをテストできる形にするため)。
10
10
  */
11
- import type { CardVariant } from "./card.styles";
11
+ import type { CardVariant } from "./card.styles.js";
12
12
  export interface CardPropsForValidation {
13
13
  variant: CardVariant;
14
14
  onPress?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"card.validate.d.ts","sourceRoot":"","sources":["../../../../src/components/card.validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,aAAa,GACd,EAAE,sBAAsB,GAAG,MAAM,EAAE,CA0DnC"}
1
+ {"version":3,"file":"card.validate.d.ts","sourceRoot":"","sources":["../../../../src/components/card.validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,EACP,aAAa,GACd,EAAE,sBAAsB,GAAG,MAAM,EAAE,CA0DnC"}
@@ -5,17 +5,20 @@
5
5
  * 直接実行できる。recipes/app/checkbox.recipe.json(melta-contracts の styleRefs)との
6
6
  * 機械照合は scripts/lib/checkbox-conformance.test.ts が行う。
7
7
  */
8
- import type { NativeTheme, ThemeMode } from "../theme";
8
+ import type { NativeTheme, ThemeMode } from "../theme/index.js";
9
9
  /**
10
10
  * recipe 由来の literal 値テーブル(token 化されていない数値。conformance が recipe と照合する)。
11
11
  * - box は 20px(web の 16px より大きいのはタッチ前提、recipe description)
12
- * - hitSlop は (44 - box 20) / 2 = 12。行全体 Pressable に足して実タッチ領域 44pt を確保
12
+ * - 実効タップ標的 44pt は行の minHeight で確保(A11Y_MIN_TAP_TARGET_44。規約 10-(b):
13
+ * 背景を持たない行は hitSlop でなく寸法で満たす — 旧実装の四方 hitSlop 12 は行全体
14
+ * Pressable に効くため、縦積みの隣接 Checkbox と当たり判定が最大 24pt 重なっていた
15
+ * (Codex レビュー指摘)。Radio の option 行と同じ手当てに統一)
13
16
  */
14
17
  export declare const CHECKBOX_SPEC: {
15
18
  readonly boxSize: 20;
16
19
  readonly boxBorderWidth: 2;
17
20
  readonly disabledOpacity: 0.5;
18
- readonly hitSlop: 12;
21
+ readonly rowMinHeight: 44;
19
22
  };
20
23
  /** 見た目(色)に効く状態入力。disabled は opacity のみで色を変えないため含めない。 */
21
24
  export interface CheckboxStateInput {
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/checkbox.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,uFAAuF;IACvF,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EAAE,OAAO,EAAE,aAAqB,EAAE,KAAa,EAAE,EAAE,kBAAkB,GACpE,gBAAgB,CAuBlB"}
1
+ {"version":3,"file":"checkbox.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/checkbox.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,uFAAuF;IACvF,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EAAE,OAAO,EAAE,aAAqB,EAAE,KAAa,EAAE,EAAE,kBAAkB,GACpE,gBAAgB,CAuBlB"}
@@ -6,7 +6,7 @@
6
6
  * 直接実行できる。recipes/app/empty-state.recipe.json(melta-contracts の styleRefs)との
7
7
  * 機械照合は scripts/lib/empty-state-conformance.test.ts が行う。
8
8
  */
9
- import type { FontWeightValue, NativeTheme, ThemeMode } from "../theme";
9
+ import type { FontWeightValue, NativeTheme, ThemeMode } from "../theme/index.js";
10
10
  /**
11
11
  * default variant の構成キー(token キー)。
12
12
  * component は Text / View にこのキーをそのまま渡し、resolver は同じキーから style 値を解決する
@@ -1 +1 @@
1
- {"version":3,"file":"empty-state.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/empty-state.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAGV,eAAe,EACf,WAAW,EAGX,SAAS,EACV,MAAM,UAAU,CAAC;AAElB;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;CAkB5B,CAAC;AAEF,mGAAmG;AACnG,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,KAAK,EAAE;QACL,UAAU,EAAE,QAAQ,CAAC;QACrB,cAAc,EAAE,QAAQ,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,gDAAgD;IAChD,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,eAAe,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,QAAQ,CAAC;KACrB,CAAC;IACF,sDAAsD;IACtD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,QAAQ,CAAC;KACrB,CAAC;IACF,kDAAkD;IAClD,WAAW,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,gBAAgB,CAsB7F"}
1
+ {"version":3,"file":"empty-state.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/empty-state.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAGV,eAAe,EACf,WAAW,EAGX,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;CAkB5B,CAAC;AAEF,mGAAmG;AACnG,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,KAAK,EAAE;QACL,UAAU,EAAE,QAAQ,CAAC;QACrB,cAAc,EAAE,QAAQ,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,gDAAgD;IAChD,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,eAAe,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,QAAQ,CAAC;KACrB,CAAC;IACF,sDAAsD;IACtD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,QAAQ,CAAC;KACrB,CAAC;IACF,kDAAkD;IAClD,WAAW,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,gBAAgB,CAsB7F"}
@@ -5,7 +5,7 @@
5
5
  * 直接実行できる。recipes/app/header.recipe.json(melta-contracts の styleRefs)との
6
6
  * 機械照合は scripts/lib/header-conformance.test.ts が行う。
7
7
  */
8
- import type { NativeTheme, ThemeMode } from "../theme";
8
+ import type { NativeTheme, ThemeMode } from "../theme/index.js";
9
9
  export interface HeaderStyle {
10
10
  containerStyle: {
11
11
  flexDirection: "row";
@@ -1 +1 @@
1
- {"version":3,"file":"header.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/header.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE;QACd,aAAa,EAAE,KAAK,CAAC;QACrB,UAAU,EAAE,QAAQ,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,CAAC,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,cAAc,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,WAAW,CAcnF"}
1
+ {"version":3,"file":"header.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/header.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE;QACd,aAAa,EAAE,KAAK,CAAC;QACrB,UAAU,EAAE,QAAQ,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,iBAAiB,EAAE,CAAC,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,cAAc,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,WAAW,CAcnF"}
@@ -10,7 +10,7 @@
10
10
  * とは意図的な食い違い。recipe description に明記済み)。ここでは radius prop
11
11
  * (token キー限定)指定時のみ borderRadius + overflow:hidden を付ける。
12
12
  */
13
- import type { NativeTheme, RadiusKey } from "../theme";
13
+ import type { NativeTheme, RadiusKey } from "../theme/index.js";
14
14
  /**
15
15
  * ImageStyle / ViewStyle 双方に有効な共通サブセット。
16
16
  * 画像本体(RNImage)と error 時の fallback View で同じ shape を共用する。
@@ -1 +1 @@
1
- {"version":3,"file":"image.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/image.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,EAAE,WAAW,EAAE,MAAM,EAAE,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAO,GACzE,eAAe,CAMjB"}
1
+ {"version":3,"file":"image.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/image.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,EAAE,WAAW,EAAE,MAAM,EAAE,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAO,GACzE,eAAe,CAMjB"}
@@ -2,22 +2,22 @@
2
2
  * melta-app components の公開エントリ(設計書 §1)。
3
3
  * Surface はライブラリ公開(P1)で正式 export(契約 surface.contract.json + recipe を持つ implemented)。
4
4
  */
5
- export { Surface } from "./Surface";
6
- export { Image } from "./Image";
7
- export { Card } from "./Card";
8
- export { Skeleton } from "./Skeleton";
9
- export { EmptyState } from "./EmptyState";
10
- export { Screen } from "./Screen";
11
- export { Header } from "./Header";
12
- export { Avatar } from "./Avatar";
13
- export { TextField } from "./TextField";
14
- export { Toggle } from "./Toggle";
15
- export { Checkbox } from "./Checkbox";
16
- export { Radio } from "./Radio";
17
- export { Alert } from "./Alert";
18
- export { Toast } from "./Toast";
19
- export { Progress } from "./Progress";
20
- export { Modal } from "./Modal";
21
- export { ActionSheet } from "./ActionSheet";
22
- export { BottomSheet } from "./BottomSheet";
5
+ export { Surface } from "./Surface.js";
6
+ export { Image } from "./Image.js";
7
+ export { Card } from "./Card.js";
8
+ export { Skeleton } from "./Skeleton.js";
9
+ export { EmptyState } from "./EmptyState.js";
10
+ export { Screen } from "./Screen.js";
11
+ export { Header } from "./Header.js";
12
+ export { Avatar } from "./Avatar.js";
13
+ export { TextField } from "./TextField.js";
14
+ export { Toggle } from "./Toggle.js";
15
+ export { Checkbox } from "./Checkbox.js";
16
+ export { Radio } from "./Radio.js";
17
+ export { Alert } from "./Alert.js";
18
+ export { Toast } from "./Toast.js";
19
+ export { Progress } from "./Progress.js";
20
+ export { Modal } from "./Modal.js";
21
+ export { ActionSheet } from "./ActionSheet.js";
22
+ export { BottomSheet } from "./BottomSheet.js";
23
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
@@ -12,8 +12,19 @@
12
12
  * panelStyle 本体と分けて panelElevation で返す(Surface と同じ扱い)。
13
13
  * - sizes はタブレット以上で効く maxWidth(モバイルは width 100% - overlay padding が先に効く)。
14
14
  */
15
- import type { ElevationStyle, FontWeightValue, NativeTheme, ThemeMode } from "../theme";
16
- import type { SizeOf, VariantOf } from "../contracts/contract-types";
15
+ import type { ElevationStyle, FontWeightValue, NativeTheme, ThemeMode } from "../theme/index.js";
16
+ import type { SizeOf, VariantOf } from "../contracts/contract-types.js";
17
+ /**
18
+ * title 行の × の当たり判定(正典パターン: 視覚 24pt + hitSlop 10 = 実効 44pt)。
19
+ *
20
+ * 以前は hitSlop=spacing.2(8)だけで、× のグリフ幅(fontSize.xl の "×" ≈ 13pt)+ 8×2 =
21
+ * 実効 29pt しか無かった(Toast / Alert の × は正典パターン済みだったので Modal だけ取り残されていた)。
22
+ */
23
+ export declare const MODAL_CLOSE_TAP_TARGET: {
24
+ readonly minWidth: 24;
25
+ readonly minHeight: 24;
26
+ readonly hitSlop: 10;
27
+ };
17
28
  export type ModalVariant = VariantOf<"modal">;
18
29
  export type ModalSize = SizeOf<"modal">;
19
30
  /** size → panel の maxWidth(modal.recipe sizes の literal と 1:1)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"modal.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/modal.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAExC,mEAAmE;AACnE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAIrD,CAAC;AAEF,sEAAsE;AAEtE,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE;QACZ,IAAI,EAAE,CAAC,CAAC;QACR,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,QAAQ,CAAC;QACzB,UAAU,EAAE,QAAQ,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,sEAAsE;IACtE,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,WAAW,EAAE;QACX,aAAa,EAAE,KAAK,CAAC;QACrB,cAAc,EAAE,UAAU,CAAC;QAC3B,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EAAE,IAAe,EAAE,GAAE,eAAoB,GACxC,UAAU,CA+BZ"}
1
+ {"version":3,"file":"modal.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/modal.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAGxE;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;CAAuB,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAExC,mEAAmE;AACnE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAIrD,CAAC;AAEF,sEAAsE;AAEtE,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE;QACZ,IAAI,EAAE,CAAC,CAAC;QACR,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,QAAQ,CAAC;QACzB,UAAU,EAAE,QAAQ,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,sEAAsE;IACtE,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,WAAW,EAAE;QACX,aAAa,EAAE,KAAK,CAAC;QACrB,cAAc,EAAE,UAAU,CAAC;QAC3B,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EAAE,IAAe,EAAE,GAAE,eAAoB,GACxC,UAAU,CA+BZ"}
@@ -11,7 +11,7 @@
11
11
  * - track の背景は semantic border-default → dark mode では dark 側から解決する。
12
12
  * fill は primary.500 / status.success.base(mode 非依存)。
13
13
  */
14
- import type { NativeTheme, ThemeMode } from "../theme";
14
+ import type { NativeTheme, ThemeMode } from "../theme/index.js";
15
15
  export type ProgressVariant = "primary" | "success" | "indeterminate";
16
16
  /** track / fill の高さ(recipe の literal 8 = web h-2 の写像。token では無い raw px)。 */
17
17
  export declare const PROGRESS_TRACK_HEIGHT = 8;
@@ -1 +1 @@
1
- {"version":3,"file":"progress.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/progress.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC;AAEtE,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,iFAAiF;AACjF,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,+CAA+C;AAC/C,eAAO,MAAM,eAAe,QAAsC,CAAC;AAEnE,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,QAAQ,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,eAAe,GACvB,cAAc,CAgBhB"}
1
+ {"version":3,"file":"progress.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/progress.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAa,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC;AAEtE,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,iFAAiF;AACjF,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,+CAA+C;AAC/C,eAAO,MAAM,eAAe,QAAsC,CAAC;AAEnE,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE;QACV,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,QAAQ,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,eAAe,GACvB,cAAc,CAgBhB"}
@@ -10,15 +10,23 @@
10
10
  * variant 非依存の共通部として vertical にのみ載っている(recipe description)。
11
11
  * 実装ではこの共通部を variant に関わらず同値で返す(conformance が variant 間一致を照合)。
12
12
  */
13
- import type { FontWeightValue, NativeTheme, ThemeMode } from "../theme";
13
+ import type { FontWeightValue, NativeTheme, ThemeMode } from "../theme/index.js";
14
14
  export type RadioVariant = "vertical" | "horizontal" | "card-style";
15
- /** recipe 由来の literal 値テーブル(token 化されていない数値。conformance が recipe と照合する)。 */
15
+ /**
16
+ * recipe 由来の literal 値テーブル(token 化されていない数値。conformance が recipe と照合する)。
17
+ *
18
+ * `optionMinHeight` だけは recipe 外の a11y 手当て(A11Y_MIN_TAP_TARGET_44)。
19
+ * option 行の視覚高さは label(base)の lineHeight 36pt しかなく 44pt に届かないが、
20
+ * option 行は**背景を持たない**(card-style を除く。card は padding 16×2 で既に 68pt)ので
21
+ * hitSlop ではなく minHeight で下げ止める — 見た目は変わらず、hitSlop の重なりも原理的に起きない。
22
+ */
16
23
  export declare const RADIO_SPEC: {
17
24
  readonly circleSize: 20;
18
25
  readonly circleBorderWidth: 2;
19
26
  readonly dotSize: 10;
20
27
  readonly cardBorderWidth: 1;
21
28
  readonly disabledOpacity: 0.5;
29
+ readonly optionMinHeight: 44;
22
30
  };
23
31
  export interface RadioGroupResolved {
24
32
  /** variant 別レイアウト(vertical/card-style は縦積み、horizontal は wrap する横並び)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"radio.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/radio.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAExE,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,CAAC;AAEpE,4EAA4E;AAC5E,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,cAAc,EAAE;QAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,sCAAsC;IACtC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3F,8FAA8F;IAC9F,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,4EAA4E;IAC5E,eAAe,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACxG,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,cAAc,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,yCAAyC;IACzC,SAAS,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChG,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,YAAY,GACpB,kBAAkB,CA6CpB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EAAE,QAAQ,EAAE,KAAa,EAAE,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAClE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,cAAc,EAAE,QAAQ,CAAC;CAC1B,CAeA"}
1
+ {"version":3,"file":"radio.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/radio.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGjF,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,YAAY,CAAC;AAEpE;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,cAAc,EAAE;QAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,sCAAsC;IACtC,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3F,8FAA8F;IAC9F,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,4EAA4E;IAC5E,eAAe,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACxG,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,cAAc,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,yCAAyC;IACzC,SAAS,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChG,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,YAAY,GACpB,kBAAkB,CA6CpB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EAAE,QAAQ,EAAE,KAAa,EAAE,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAClE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,cAAc,EAAE,QAAQ,CAAC;CAC1B,CAeA"}
@@ -1,28 +1,64 @@
1
1
  /**
2
- * safe-area-registry — Screen が使う SafeAreaView 実装の差し替え点(adapter registry)。
2
+ * safe-area-registry — SafeArea 実装の差し替え点(adapter registry)。
3
3
  *
4
4
  * 本体エントリは依存ゼロ方針(P1)のため、default は RN core の SafeAreaView
5
5
  * (deprecated / iOS のみの最小対応)。react-native-safe-area-context を使う利用者は
6
6
  * subpath "melta-app/safe-area" の enableSafeAreaContext() をアプリ起動時に一度呼ぶと
7
- * Screen の SafeArea が context hook + View adapter に差し替わる(optional peer の前例 =
8
- * Icon × react-native-svg。ただし Screen は本体エントリ所属のため subpath 分離ではなく
9
- * registry で切り替える)。
7
+ * SafeArea が context hook + View adapter に差し替わる(optional peer の前例 =
8
+ * Icon × react-native-svg。ただし Screen / シート系は本体エントリ所属のため subpath 分離
9
+ * ではなく registry で切り替える)。
10
+ *
11
+ * 登録するのは**コンポーネントではなくファクトリ**(edges → コンポーネント)。
12
+ * 消費者ごとに必要な edge が違うため(Screen = 既定 or prop 指定 / ActionSheet・BottomSheet =
13
+ * 下端固定なので bottom + 左右のみ)、edges をグローバル 1 個で持てない。
14
+ *
15
+ * ⚠️ 生成物は edges の正規化キーで memo する。resolveSafeAreaView() は render 中に
16
+ * 呼ばれるので、毎回新しいコンポーネント型を返すと React が別 type とみなして
17
+ * subtree を unmount/remount する(state・入力中のテキストが消える)。
10
18
  *
11
19
  * ⚠️ RN 0.85 は react-native の SafeAreaView プロパティへの getter アクセス時点で
12
20
  * deprecation 警告を出す。adapter 登録済みの利用者に警告を出さないため、core への
13
- * アクセスは「未登録のまま Screen が render された時」まで遅延させる。
21
+ * アクセスは「未登録のまま render された時」まで遅延させる。
14
22
  */
15
23
  import type { ComponentType, ReactNode } from "react";
16
- import type { StyleProp, ViewStyle } from "react-native";
17
- /** Screen が SafeArea 実装に要求する最小 props(core / safe-area-context 両対応)。 */
24
+ import type { GestureResponderEvent, StyleProp, ViewStyle } from "react-native";
25
+ /**
26
+ * safe-area を適用する辺。react-native-safe-area-context の `Edge` と同値の union を
27
+ * 本体エントリ側に持つ(optional peer を型でも引かないため)。
28
+ */
29
+ export type SafeAreaEdge = "top" | "right" | "bottom" | "left";
30
+ /** 全 edge(未指定時の既定)。正規化の順序定義も兼ねる。 */
31
+ export declare const ALL_SAFE_AREA_EDGES: readonly ["top", "right", "bottom", "left"];
32
+ /** 消費者(Screen / シート系)が SafeArea 実装に要求する最小 props(core / safe-area-context 両対応)。 */
18
33
  export interface SafeAreaViewLikeProps {
19
34
  style?: StyleProp<ViewStyle>;
20
35
  testID?: string;
36
+ /** iOS: 背後の要素を a11y ツリーから隠す(modal 内のシートで使う)。 */
37
+ accessibilityViewIsModal?: boolean;
38
+ /** touch を claim して親(overlay)へ流さないために使う。 */
39
+ onStartShouldSetResponder?: (event: GestureResponderEvent) => boolean;
21
40
  children?: ReactNode;
22
41
  }
23
42
  export type SafeAreaViewLike = ComponentType<SafeAreaViewLikeProps>;
24
- /** SafeArea 実装を登録する(Screen の初回 render より前に呼ぶ)。 */
25
- export declare function setSafeAreaView(component: SafeAreaViewLike): void;
26
- /** 登録済み実装、無ければ RN core SafeAreaView(ここで初めて getter に触れる)。 */
27
- export declare function resolveSafeAreaView(): SafeAreaViewLike;
43
+ /** edges を受け取って SafeAreaView 相当を返すファクトリ(正規化済みの edges が渡る)。 */
44
+ export type SafeAreaViewFactory = (edges: readonly SafeAreaEdge[]) => SafeAreaViewLike;
45
+ /**
46
+ * SafeArea 実装のファクトリを登録する(初回 render より前に呼ぶ)。
47
+ *
48
+ * @param create edges → コンポーネントのファクトリ。同じ edges 集合には同じ参照が返るよう
49
+ * registry 側が memo するので、ファクトリ自体は毎回新規生成でよい。
50
+ * @param edges edges 未指定の消費者(= Screen の既定)に使う edge 集合。default は全 edge。
51
+ */
52
+ export declare function setSafeAreaView(create: SafeAreaViewFactory, edges?: readonly SafeAreaEdge[]): void;
53
+ /**
54
+ * edges に対応する SafeArea 実装を返す。同じ edges 集合には常に同じ参照を返す(memo)。
55
+ *
56
+ * @param edges 適用する辺。省略時は登録時の既定 edges(未登録なら全 edge)。
57
+ *
58
+ * ⚠️ 未登録時のフォールバックは RN core の SafeAreaView で、**edges は無視される**
59
+ * (core は「安全域と交差する辺すべて」に padding を入れる仕様で、辺を選べない。
60
+ * さらに Android では `Platform.select` により素の View = 完全 no-op)。
61
+ * edges 指定を実際に効かせたい場合は "melta-app/safe-area" の enableSafeAreaContext() が要る。
62
+ */
63
+ export declare function resolveSafeAreaView(edges?: readonly SafeAreaEdge[]): SafeAreaViewLike;
28
64
  //# sourceMappingURL=safe-area-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-area-registry.d.ts","sourceRoot":"","sources":["../../../../src/components/safe-area-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzD,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;AAIpE,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAEjE;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD"}
1
+ {"version":3,"file":"safe-area-registry.d.ts","sourceRoot":"","sources":["../../../../src/components/safe-area-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGhF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/D,oCAAoC;AACpC,eAAO,MAAM,mBAAmB,6CAKY,CAAC;AAE7C,kFAAkF;AAClF,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,4CAA4C;IAC5C,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC;IACtE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,qBAAqB,CAAC,CAAC;AAEpE,8DAA8D;AAC9D,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,gBAAgB,CAAC;AAavF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,mBAAmB,EAC3B,KAAK,GAAE,SAAS,YAAY,EAAwB,GACnD,IAAI,CAIN;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,gBAAgB,CAWrF"}
@@ -5,7 +5,7 @@
5
5
  * 直接実行できる。recipes/app/screen.recipe.json(melta-contracts の styleRefs)との
6
6
  * 機械照合は scripts/lib/screen-conformance.test.ts が行う。
7
7
  */
8
- import type { NativeTheme, SpacingKey, ThemeMode } from "../theme";
8
+ import type { NativeTheme, SpacingKey, ThemeMode } from "../theme/index.js";
9
9
  /** content の padding(spacing token キー限定 | "none")。default "4"(recipe に焼いてある)。 */
10
10
  export type ScreenPadding = SpacingKey | "none";
11
11
  export interface ScreenStyleProps {
@@ -1 +1 @@
1
- {"version":3,"file":"screen.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/screen.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnE,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC5B,qCAAqC;IACrC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,YAAY,EAAE;QAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EAAE,OAAO,EAAE,OAAa,EAAE,EAAE,gBAAgB,GAC3C,WAAW,CAQb"}
1
+ {"version":3,"file":"screen.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/screen.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE5E,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC5B,qCAAqC;IACrC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,YAAY,EAAE;QAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EAAE,OAAO,EAAE,OAAa,EAAE,EAAE,gBAAgB,GAC3C,WAAW,CAQb"}
@@ -5,7 +5,7 @@
5
5
  * 直接実行できる。recipes/app/skeleton.recipe.json(melta-contracts の styleRefs)との
6
6
  * 機械照合は scripts/lib/skeleton-conformance.test.ts が行う。
7
7
  */
8
- import type { ElevationStyle, NativeTheme, ThemeMode } from "../theme";
8
+ import type { ElevationStyle, NativeTheme, ThemeMode } from "../theme/index.js";
9
9
  export type SkeletonVariant = "text" | "circle" | "card";
10
10
  /** contract states(loading = pulse、loaded = Skeleton 自体をアンマウント)。 */
11
11
  export type SkeletonState = "loading" | "loaded";
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/skeleton.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,cAAc,EACd,WAAW,EAIX,SAAS,EACV,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AACzD,oEAAoE;AACpE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;CAU7B,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB;IAC3B,0BAA0B;;IAE1B,0BAA0B;;IAE1B,sCAAsC;;CAE9B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa;;;CAAgC,CAAC;AAE3D,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,IAAI,EAAE;QAAE,KAAK,EAAE,gBAAgB,GAAG;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACpD,MAAM,EAAE;QACN,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC;KACzF,CAAC;IACF,IAAI,EAAE;QACJ,6EAA6E;QAC7E,KAAK,EAAE;YACL,eAAe,EAAE,MAAM,CAAC;YACxB,YAAY,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,cAAc,CAAC;SAC3B,CAAC;QACF,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,qBAAqB,CAoClG;AAED,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE;QACP,2BAA2B;QAC3B,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3B,yDAAyD;QACzD,SAAS,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;KACzE,CAAC;IACF,8CAA8C;IAC9C,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KAAE,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAY7E"}
1
+ {"version":3,"file":"skeleton.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/skeleton.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,cAAc,EACd,WAAW,EAIX,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AACzD,oEAAoE;AACpE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;CAU7B,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB;IAC3B,0BAA0B;;IAE1B,0BAA0B;;IAE1B,sCAAsC;;CAE9B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa;;;CAAgC,CAAC;AAE3D,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,IAAI,EAAE;QAAE,KAAK,EAAE,gBAAgB,GAAG;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACpD,MAAM,EAAE;QACN,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC;KACzF,CAAC;IACF,IAAI,EAAE;QACJ,6EAA6E;QAC7E,KAAK,EAAE;YACL,eAAe,EAAE,MAAM,CAAC;YACxB,YAAY,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,cAAc,CAAC;SAC3B,CAAC;QACF,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,qBAAqB,CAoClG;AAED,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE;QACP,2BAA2B;QAC3B,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3B,yDAAyD;QACzD,SAAS,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;KACzE,CAAC;IACF,8CAA8C;IAC9C,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KAAE,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAY7E"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * status-colors — status 語彙(info / success / warning / error)→ 面の色(bg / text)の解決。
3
+ *
4
+ * Alert / Toast / TextField が同じ写像を各自に持っていた(Alert と Toast は完全重複、TextField は
5
+ * inline の同型ロジック)。status token の light/dark 切替と「error → token 上は danger」の
6
+ * 読み替えは**一箇所**にしないと、片方だけ直して drift する形になるためここへ集約する。
7
+ *
8
+ * react-native を import しない純粋モジュール(各 *.styles.ts と同じ規約)。
9
+ */
10
+ import type { NativeTheme, ThemeMode } from "../theme/index.js";
11
+ /** 契約側の status 語彙。token 側のキーとは error / danger だけ表記が違う。 */
12
+ export type StatusVariant = "info" | "success" | "warning" | "error";
13
+ /** theme.color.status のキー(token 側の表記)。 */
14
+ export type StatusTokenKey = keyof NativeTheme["color"]["status"];
15
+ /** 解決結果(subtle な面の背景色と、その上に載る文字色)。 */
16
+ export interface StatusSurfaceColors {
17
+ bg: string;
18
+ text: string;
19
+ }
20
+ /** 契約語彙 → token キー(error は token では danger)。 */
21
+ export declare function toStatusTokenKey(variant: Exclude<StatusVariant, "info">): StatusTokenKey;
22
+ /**
23
+ * status token の subtle 面 + text 色を mode で解決する。
24
+ * light は subtleLight / textLight、dark は subtleDark / textDark(recipe description の写像)。
25
+ */
26
+ export declare function resolveStatusTokenColors(theme: NativeTheme, mode: ThemeMode, key: StatusTokenKey): StatusSurfaceColors;
27
+ /**
28
+ * status 語彙 → 面の色。
29
+ * info だけ primary.50 / primary.800 固定(status token に info が無い既知の割り切り、web と同じ。
30
+ * mode 非依存)。それ以外は status token を mode で解決する。
31
+ */
32
+ export declare function resolveStatusVariantColors(theme: NativeTheme, mode: ThemeMode, variant: StatusVariant): StatusSurfaceColors;
33
+ //# sourceMappingURL=status-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-colors.d.ts","sourceRoot":"","sources":["../../../../src/components/status-colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEhE,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAErE,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;AAElE,sCAAsC;AACtC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gDAAgD;AAChD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,cAAc,CAExF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,cAAc,GAClB,mBAAmB,CAKrB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,aAAa,GACrB,mBAAmB,CAKrB"}
@@ -5,7 +5,7 @@
5
5
  * 直接実行できる。recipes/app/surface.recipe.json(melta-contracts の styleRefs)との
6
6
  * 機械照合は scripts/lib/surface-conformance.test.ts が行う。
7
7
  */
8
- import type { ElevationKey, ElevationStyle, NativeTheme, RadiusKey, SemanticColors, SpacingKey, ThemeMode } from "../theme";
8
+ import type { ElevationKey, ElevationStyle, NativeTheme, RadiusKey, SemanticColors, SpacingKey, ThemeMode } from "../theme/index.js";
9
9
  /** Surface の見た目 props(すべて token キー限定。デフォルトは recipe default variant と 1:1)。 */
10
10
  export interface SurfaceStyleProps {
11
11
  bg?: keyof SemanticColors;
@@ -1 +1 @@
1
- {"version":3,"file":"surface.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/surface.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,SAAS,EACT,cAAc,EACd,UAAU,EACV,SAAS,EACV,MAAM,UAAU,CAAC;AAElB,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EAAE,EAAiB,EAAE,MAAa,EAAE,SAAkB,EAAE,OAAO,EAAE,GAAE,iBAAsB,GACxF;IACD,IAAI,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,SAAS,EAAE,cAAc,CAAC;CAC3B,CASA"}
1
+ {"version":3,"file":"surface.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/surface.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,SAAS,EACT,cAAc,EACd,UAAU,EACV,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EAAE,EAAiB,EAAE,MAAa,EAAE,SAAkB,EAAE,OAAO,EAAE,GAAE,iBAAsB,GACxF;IACD,IAAI,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1E,SAAS,EAAE,cAAc,CAAC;CAC3B,CASA"}
@@ -14,23 +14,27 @@
14
14
  * - focus は state 差分(borderColor のみ)。resolveTextFieldFocusStyle で別関数にし、
15
15
  * conformance が recipe states.focus と照合する。
16
16
  */
17
- import type { NativeTheme, ThemeMode, FontSizeKey, FontWeightValue, SpacingKey } from "../theme";
17
+ import type { NativeTheme, ThemeMode, FontSizeKey, FontWeightValue, SpacingKey } from "../theme/index.js";
18
18
  /** 検証状態(textfield.contract の variant 語彙と 1:1)。 */
19
19
  export type TextFieldVariant = "default" | "error" | "success" | "disabled";
20
20
  export type TextFieldSize = "small" | "medium" | "large";
21
21
  /**
22
- * size → height / 横 padding / 入力文字 fontSize(textfield.recipe sizes と整合)。
23
- * height の literal は recipe の値を直書きし、conformance で recipe と照合する。
22
+ * size → 最小高さ / 横 padding / 入力文字 fontSize(textfield.recipe sizes と整合)。
23
+ * literal は recipe の値を直書きし、conformance で recipe と照合する。
24
+ *
25
+ * `minHeight`(`height` ではない)なのは fontScale 対策。height 固定だと OS の文字サイズ拡大で
26
+ * 入力文字が縦にクリップする(recipe 側も 0.7.0 で `minHeight` に変わっている)。
24
27
  */
25
28
  export declare const TEXTFIELD_SIZE_SPEC: Record<TextFieldSize, {
26
- height: number;
29
+ minHeight: number;
27
30
  px: SpacingKey;
28
31
  font: FontSizeKey;
29
32
  }>;
30
33
  /** resolver の出力(label → input → helperText / errorText の縦構成の各パート)。 */
31
34
  export interface TextFieldResolvedStyle {
32
35
  input: {
33
- height: number;
36
+ /** 下限(fontScale で伸びる余地を残す。height 固定は文字がクリップする)。 */
37
+ minHeight: number;
34
38
  paddingHorizontal: number;
35
39
  fontSize: number;
36
40
  borderWidth: number;
@@ -1 +1 @@
1
- {"version":3,"file":"textfield.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/textfield.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,eAAe,EACf,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,aAAa,EACb;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAKtD,CAAC;AAEF,sEAAsE;AACtE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,kEAAkE;QAClE,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,eAAe,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EACE,OAAmB,EACnB,IAAe,GAChB,GAAE;IAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAAC,IAAI,CAAC,EAAE,aAAa,CAAA;CAAO,GAC3D,sBAAsB,CAkDxB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAEtF"}
1
+ {"version":3,"file":"textfield.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/textfield.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,eAAe,EACf,UAAU,EACX,MAAM,mBAAmB,CAAC;AAG3B,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,aAAa,EACb;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAKzD,CAAC;AAEF,sEAAsE;AACtE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE;QACL,mDAAmD;QACnD,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,kEAAkE;QAClE,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,eAAe,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,EACE,OAAmB,EACnB,IAAe,GAChB,GAAE;IAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAAC,IAAI,CAAC,EAAE,aAAa,CAAA;CAAO,GAC3D,sBAAsB,CAgDxB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAEtF"}