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
@@ -1 +1 @@
1
- {"version":3,"names":["Text","Metric","Tag","Button","Stack","Row"],"sourceRoot":"../../../src","sources":["primitives/index.ts"],"mappings":";;AAAA;;AAEA,SAASA,IAAI,QAAQ,WAAQ;AAC7B,SAASC,MAAM,QAAQ,aAAU;AACjC,SAASC,GAAG,QAAQ,UAAO;AAC3B,SAASC,MAAM,QAAQ,aAAU;AACjC,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,GAAG,QAAQ,UAAO","ignoreList":[]}
1
+ {"version":3,"names":["Text","Metric","Tag","Button","Stack","Row"],"sourceRoot":"../../../src","sources":["primitives/index.ts"],"mappings":";;AAAA;;AAEA,SAASA,IAAI,QAAQ,WAAW;AAChC,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,GAAG,QAAQ,UAAU;AAC9B,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,KAAK,QAAQ,YAAY;AAClC,SAASC,GAAG,QAAQ,UAAU","ignoreList":[]}
@@ -8,6 +8,8 @@
8
8
  * styleRefs)との機械照合は scripts/lib/metric-conformance.test.ts が行う。
9
9
  */
10
10
 
11
+ // theme index からの runtime import は ThemeProvider → react-native を引くため pure module を直接参照
12
+ import { clampLineHeight, minRatioOf } from "../theme/line-height.js";
11
13
  /**
12
14
  * size → value / unit の fontSize token(metric.recipe sizes と整合)。
13
15
  * unit は value の1段下の fontSize(ベースライン揃え用)。
@@ -34,7 +36,8 @@ export function resolveMetricStyles(theme, mode, size) {
34
36
  return {
35
37
  valueStyle: {
36
38
  fontSize: fontSize[font.value].fontSize,
37
- lineHeight: fontSize[font.value].lineHeight,
39
+ // カスタム theme の未クランプ値への防波堤(text.styles.ts と同じ。根拠は theme/line-height.ts)
40
+ lineHeight: clampLineHeight(fontSize[font.value].fontSize, fontSize[font.value].lineHeight, minRatioOf(theme)),
38
41
  fontWeight: theme.typography.fontWeight.bold,
39
42
  color: sem["text-heading"],
40
43
  fontVariant: ["tabular-nums"]
@@ -1 +1 @@
1
- {"version":3,"names":["METRIC_FONT","sm","value","unit","md","lg","resolveMetricStyles","theme","mode","size","sem","color","semantic","fontSize","typography","font","valueStyle","lineHeight","fontWeight","bold","fontVariant","unitStyle","medium","marginLeft","spacing","labelStyle"],"sourceRoot":"../../../src","sources":["primitives/metric.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAA0E,GAAG;EACxFC,EAAE,EAAE;IAAEC,KAAK,EAAE,IAAI;IAAEC,IAAI,EAAE;EAAO,CAAC;EACjCC,EAAE,EAAE;IAAEF,KAAK,EAAE,KAAK;IAAEC,IAAI,EAAE;EAAK,CAAC;EAChCE,EAAE,EAAE;IAAEH,KAAK,EAAE,KAAK;IAAEC,IAAI,EAAE;EAAK;AACjC,CAAC;AAyBD;AACA,OAAO,SAASG,mBAAmBA,CACjCC,KAAkB,EAClBC,IAAe,EACfC,IAAgB,EACF;EACd,MAAMC,GAAG,GAAGH,KAAK,CAACI,KAAK,CAACC,QAAQ,CAACJ,IAAI,CAAC;EACtC,MAAMK,QAAQ,GAAGN,KAAK,CAACO,UAAU,CAACD,QAAQ;EAC1C,MAAME,IAAI,GAAGf,WAAW,CAACS,IAAI,CAAC;EAC9B,OAAO;IACLO,UAAU,EAAE;MACVH,QAAQ,EAAEA,QAAQ,CAACE,IAAI,CAACb,KAAK,CAAC,CAACW,QAAQ;MACvCI,UAAU,EAAEJ,QAAQ,CAACE,IAAI,CAACb,KAAK,CAAC,CAACe,UAAU;MAC3CC,UAAU,EAAEX,KAAK,CAACO,UAAU,CAACI,UAAU,CAACC,IAAI;MAC5CR,KAAK,EAAED,GAAG,CAAC,cAAc,CAAC;MAC1BU,WAAW,EAAE,CAAC,cAAc;IAC9B,CAAC;IACDC,SAAS,EAAE;MACTR,QAAQ,EAAEA,QAAQ,CAACE,IAAI,CAACZ,IAAI,CAAC,CAACU,QAAQ;MACtCK,UAAU,EAAEX,KAAK,CAACO,UAAU,CAACI,UAAU,CAACI,MAAM;MAC9CX,KAAK,EAAED,GAAG,CAAC,YAAY,CAAC;MACxBa,UAAU,EAAEhB,KAAK,CAACiB,OAAO,CAAC,GAAG;IAC/B,CAAC;IACDC,UAAU,EAAE;MACVZ,QAAQ,EAAEA,QAAQ,CAACZ,EAAE,CAACY,QAAQ;MAC9BF,KAAK,EAAED,GAAG,CAAC,YAAY;IACzB;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["clampLineHeight","minRatioOf","METRIC_FONT","sm","value","unit","md","lg","resolveMetricStyles","theme","mode","size","sem","color","semantic","fontSize","typography","font","valueStyle","lineHeight","fontWeight","bold","fontVariant","unitStyle","medium","marginLeft","spacing","labelStyle"],"sourceRoot":"../../../src","sources":["primitives/metric.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA,SAASA,eAAe,EAAEC,UAAU,QAAQ,yBAAyB;AAIrE;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAA0E,GAAG;EACxFC,EAAE,EAAE;IAAEC,KAAK,EAAE,IAAI;IAAEC,IAAI,EAAE;EAAO,CAAC;EACjCC,EAAE,EAAE;IAAEF,KAAK,EAAE,KAAK;IAAEC,IAAI,EAAE;EAAK,CAAC;EAChCE,EAAE,EAAE;IAAEH,KAAK,EAAE,KAAK;IAAEC,IAAI,EAAE;EAAK;AACjC,CAAC;AAyBD;AACA,OAAO,SAASG,mBAAmBA,CACjCC,KAAkB,EAClBC,IAAe,EACfC,IAAgB,EACF;EACd,MAAMC,GAAG,GAAGH,KAAK,CAACI,KAAK,CAACC,QAAQ,CAACJ,IAAI,CAAC;EACtC,MAAMK,QAAQ,GAAGN,KAAK,CAACO,UAAU,CAACD,QAAQ;EAC1C,MAAME,IAAI,GAAGf,WAAW,CAACS,IAAI,CAAC;EAC9B,OAAO;IACLO,UAAU,EAAE;MACVH,QAAQ,EAAEA,QAAQ,CAACE,IAAI,CAACb,KAAK,CAAC,CAACW,QAAQ;MACvC;MACAI,UAAU,EAAEnB,eAAe,CACzBe,QAAQ,CAACE,IAAI,CAACb,KAAK,CAAC,CAACW,QAAQ,EAC7BA,QAAQ,CAACE,IAAI,CAACb,KAAK,CAAC,CAACe,UAAU,EAC/BlB,UAAU,CAACQ,KAAK,CAClB,CAAC;MACDW,UAAU,EAAEX,KAAK,CAACO,UAAU,CAACI,UAAU,CAACC,IAAI;MAC5CR,KAAK,EAAED,GAAG,CAAC,cAAc,CAAC;MAC1BU,WAAW,EAAE,CAAC,cAAc;IAC9B,CAAC;IACDC,SAAS,EAAE;MACTR,QAAQ,EAAEA,QAAQ,CAACE,IAAI,CAACZ,IAAI,CAAC,CAACU,QAAQ;MACtCK,UAAU,EAAEX,KAAK,CAACO,UAAU,CAACI,UAAU,CAACI,MAAM;MAC9CX,KAAK,EAAED,GAAG,CAAC,YAAY,CAAC;MACxBa,UAAU,EAAEhB,KAAK,CAACiB,OAAO,CAAC,GAAG;IAC/B,CAAC;IACDC,UAAU,EAAE;MACVZ,QAAQ,EAAEA,QAAQ,CAACZ,EAAE,CAACY,QAAQ;MAC9BF,KAAK,EAAED,GAAG,CAAC,YAAY;IACzB;EACF,CAAC;AACH","ignoreList":[]}
@@ -8,6 +8,45 @@
8
8
  * 機械照合は scripts/lib/tag-conformance.test.ts が行う。
9
9
  */
10
10
 
11
+ import { CANONICAL_TAP_TARGET } from "../a11y/tap-target.js";
12
+ import { clampLineHeight, minRatioOf } from "../theme/line-height.js";
13
+ /** label の fontSize token キー(component / resolver / 検算が同じキーを読む SSOT)。 */
14
+ export const TAG_SPEC = {
15
+ /** basic / removable の label。 */
16
+ labelFont: "xs",
17
+ /** filter-chip の label(押せる要素なので一段大きい)。 */
18
+ chipLabelFont: "sm"
19
+ };
20
+
21
+ /**
22
+ * removable の × の当たり判定(正典パターン: 視覚 24pt + hitSlop 10 = 実効 44pt)。
23
+ * 親 Tag の高さ(padding 駆動で 34pt 前後)を超えられないので × 自身に持たせる。
24
+ */
25
+ export const TAG_REMOVE_TAP_TARGET = CANONICAL_TAP_TARGET;
26
+
27
+ /**
28
+ * filter-chip(押せる chip 本体)の縦 hitSlop。
29
+ *
30
+ * chip は背景と枠を持つので minHeight で伸ばすと**見た目が変わる**(他 variant と高さが揃わない)。
31
+ * よって視覚寸法は据え置き、当たり判定だけ広げる:
32
+ * 視覚高さ 34pt(paddingVertical 4 × 2 + label sm の lineHeight 26)+ 5 × 2 = 44pt。
33
+ *
34
+ * padding 駆動なので fontScale で視覚高さ自体が伸びる = 拡大時に過剰な当たり判定にならない。
35
+ * ⚠️ literal で持つ(resolveTagFilterChipVisualHeight から導出しない)。導出にすると
36
+ * 寸法変更に hitSlop が黙って追随し、conformance が fail-open になる。
37
+ */
38
+ export const TAG_FILTER_CHIP_VERTICAL_HIT_SLOP = 5;
39
+
40
+ /**
41
+ * filter-chip の視覚高さ(padding 駆動)。conformance が 44pt 到達を検算するための実測値。
42
+ * = paddingVertical × 2 + label(sm)の lineHeight。
43
+ */
44
+ export function resolveTagFilterChipVisualHeight(theme) {
45
+ const font = theme.typography.fontSize[TAG_SPEC.chipLabelFont];
46
+ const lineHeight = clampLineHeight(font.fontSize, font.lineHeight, minRatioOf(theme));
47
+ return resolveTagBase(theme).paddingVertical * 2 + lineHeight;
48
+ }
49
+
11
50
  /** 共通形状(px-3 py-1 gap-1 rounded-full。tag.recipe の全 variant style と共通の寸法キー)。 */
12
51
  export function resolveTagBase(theme) {
13
52
  return {
@@ -35,7 +74,7 @@ export function resolveTagVariant(theme, mode, variant, selected = false) {
35
74
  return {
36
75
  bg: sem["bg-page-alt"],
37
76
  textColor: sem["text-default"],
38
- font: "xs"
77
+ font: TAG_SPEC.labelFont
39
78
  };
40
79
  case "filter-chip":
41
80
  return selected ? {
@@ -43,13 +82,13 @@ export function resolveTagVariant(theme, mode, variant, selected = false) {
43
82
  borderWidth: 1,
44
83
  border: c.primary["200"],
45
84
  textColor: c.primary["700"],
46
- font: "sm"
85
+ font: TAG_SPEC.chipLabelFont
47
86
  } : {
48
87
  bg: sem["bg-surface"],
49
88
  borderWidth: 1,
50
89
  border: sem["border-default"],
51
90
  textColor: sem["text-default"],
52
- font: "sm"
91
+ font: TAG_SPEC.chipLabelFont
53
92
  };
54
93
  }
55
94
  }
@@ -1 +1 @@
1
- {"version":3,"names":["resolveTagBase","theme","gap","spacing","paddingHorizontal","paddingVertical","borderRadius","radius","full","resolveTagVariant","mode","variant","selected","c","color","sem","semantic","bg","textColor","font","primary","borderWidth","border"],"sourceRoot":"../../../src","sources":["primitives/tag.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA,OAAO,SAASA,cAAcA,CAACC,KAAkB,EAK/C;EACA,OAAO;IACLC,GAAG,EAAED,KAAK,CAACE,OAAO,CAAC,GAAG,CAAC;IACvBC,iBAAiB,EAAEH,KAAK,CAACE,OAAO,CAAC,GAAG,CAAC;IACrCE,eAAe,EAAEJ,KAAK,CAACE,OAAO,CAAC,GAAG,CAAC;IACnCG,YAAY,EAAEL,KAAK,CAACM,MAAM,CAACC;EAC7B,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAC/BR,KAAkB,EAClBS,IAAe,EACfC,OAAmB,EACnBC,QAAQ,GAAG,KAAK,EAC6E;EAC7F,MAAMC,CAAC,GAAGZ,KAAK,CAACa,KAAK;EACrB,MAAMC,GAAG,GAAGF,CAAC,CAACG,QAAQ,CAACN,IAAI,CAAC;EAC5B,QAAQC,OAAO;IACb,KAAK,OAAO;IACZ,KAAK,WAAW;MACd,OAAO;QAAEM,EAAE,EAAEF,GAAG,CAAC,aAAa,CAAC;QAAEG,SAAS,EAAEH,GAAG,CAAC,cAAc,CAAC;QAAEI,IAAI,EAAE;MAAK,CAAC;IAC/E,KAAK,aAAa;MAChB,OAAOP,QAAQ,GACX;QACEK,EAAE,EAAEJ,CAAC,CAACO,OAAO,CAAC,IAAI,CAAC;QACnBC,WAAW,EAAE,CAAC;QACdC,MAAM,EAAET,CAAC,CAACO,OAAO,CAAC,KAAK,CAAC;QACxBF,SAAS,EAAEL,CAAC,CAACO,OAAO,CAAC,KAAK,CAAC;QAC3BD,IAAI,EAAE;MACR,CAAC,GACD;QACEF,EAAE,EAAEF,GAAG,CAAC,YAAY,CAAC;QACrBM,WAAW,EAAE,CAAC;QACdC,MAAM,EAAEP,GAAG,CAAC,gBAAgB,CAAC;QAC7BG,SAAS,EAAEH,GAAG,CAAC,cAAc,CAAC;QAC9BI,IAAI,EAAE;MACR,CAAC;EACT;AACF","ignoreList":[]}
1
+ {"version":3,"names":["CANONICAL_TAP_TARGET","clampLineHeight","minRatioOf","TAG_SPEC","labelFont","chipLabelFont","TAG_REMOVE_TAP_TARGET","TAG_FILTER_CHIP_VERTICAL_HIT_SLOP","resolveTagFilterChipVisualHeight","theme","font","typography","fontSize","lineHeight","resolveTagBase","paddingVertical","gap","spacing","paddingHorizontal","borderRadius","radius","full","resolveTagVariant","mode","variant","selected","c","color","sem","semantic","bg","textColor","primary","borderWidth","border"],"sourceRoot":"../../../src","sources":["primitives/tag.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,oBAAoB,QAAQ,uBAAuB;AAC5D,SAASC,eAAe,EAAEC,UAAU,QAAQ,yBAAyB;AAIrE;AACA,OAAO,MAAMC,QAAQ,GAAG;EACtB;EACAC,SAAS,EAAE,IAAI;EACf;EACAC,aAAa,EAAE;AACjB,CAA2E;;AAE3E;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGN,oBAAoB;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,iCAAiC,GAAG,CAAC;;AAElD;AACA;AACA;AACA;AACA,OAAO,SAASC,gCAAgCA,CAACC,KAAkB,EAAU;EAC3E,MAAMC,IAAI,GAAGD,KAAK,CAACE,UAAU,CAACC,QAAQ,CAACT,QAAQ,CAACE,aAAa,CAAC;EAC9D,MAAMQ,UAAU,GAAGZ,eAAe,CAACS,IAAI,CAACE,QAAQ,EAAEF,IAAI,CAACG,UAAU,EAAEX,UAAU,CAACO,KAAK,CAAC,CAAC;EACrF,OAAOK,cAAc,CAACL,KAAK,CAAC,CAACM,eAAe,GAAG,CAAC,GAAGF,UAAU;AAC/D;;AAEA;AACA,OAAO,SAASC,cAAcA,CAACL,KAAkB,EAK/C;EACA,OAAO;IACLO,GAAG,EAAEP,KAAK,CAACQ,OAAO,CAAC,GAAG,CAAC;IACvBC,iBAAiB,EAAET,KAAK,CAACQ,OAAO,CAAC,GAAG,CAAC;IACrCF,eAAe,EAAEN,KAAK,CAACQ,OAAO,CAAC,GAAG,CAAC;IACnCE,YAAY,EAAEV,KAAK,CAACW,MAAM,CAACC;EAC7B,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAC/Bb,KAAkB,EAClBc,IAAe,EACfC,OAAmB,EACnBC,QAAQ,GAAG,KAAK,EAC6E;EAC7F,MAAMC,CAAC,GAAGjB,KAAK,CAACkB,KAAK;EACrB,MAAMC,GAAG,GAAGF,CAAC,CAACG,QAAQ,CAACN,IAAI,CAAC;EAC5B,QAAQC,OAAO;IACb,KAAK,OAAO;IACZ,KAAK,WAAW;MACd,OAAO;QAAEM,EAAE,EAAEF,GAAG,CAAC,aAAa,CAAC;QAAEG,SAAS,EAAEH,GAAG,CAAC,cAAc,CAAC;QAAElB,IAAI,EAAEP,QAAQ,CAACC;MAAU,CAAC;IAC7F,KAAK,aAAa;MAChB,OAAOqB,QAAQ,GACX;QACEK,EAAE,EAAEJ,CAAC,CAACM,OAAO,CAAC,IAAI,CAAC;QACnBC,WAAW,EAAE,CAAC;QACdC,MAAM,EAAER,CAAC,CAACM,OAAO,CAAC,KAAK,CAAC;QACxBD,SAAS,EAAEL,CAAC,CAACM,OAAO,CAAC,KAAK,CAAC;QAC3BtB,IAAI,EAAEP,QAAQ,CAACE;MACjB,CAAC,GACD;QACEyB,EAAE,EAAEF,GAAG,CAAC,YAAY,CAAC;QACrBK,WAAW,EAAE,CAAC;QACdC,MAAM,EAAEN,GAAG,CAAC,gBAAgB,CAAC;QAC7BG,SAAS,EAAEH,GAAG,CAAC,cAAc,CAAC;QAC9BlB,IAAI,EAAEP,QAAQ,CAACE;MACjB,CAAC;EACT;AACF","ignoreList":[]}
@@ -8,6 +8,11 @@
8
8
  * 機械照合は scripts/lib/text-conformance.test.ts が行う。
9
9
  */
10
10
 
11
+ // theme index からの runtime import は ThemeProvider → react-native を引くため、
12
+ // pure module(line-height.ts / letter-spacing.ts)を直接参照する。
13
+ import { clampLineHeight, minRatioOf } from "../theme/line-height.js";
14
+ import { resolveLetterSpacing } from "../theme/letter-spacing.js";
15
+
11
16
  /** letterSpacing の切替軸(text.recipe description の role prop に対応)。 */
12
17
 
13
18
  /** Text の形状 style(mode 非依存部分。文字色は render 時に semantic colors から取る)。 */
@@ -15,16 +20,16 @@
15
20
  /**
16
21
  * variant / role / weight → 形状解決(text.recipe styleRefs の 1:1 写像)。
17
22
  * - fontSize token は複合値(px + lineHeight 比率)。theme 生成時に lineHeight は px 化済み。
18
- * - letterSpacing は em 比率 token のため fontSize × ratio で pt 化する。
19
- * theme の resolveLetterSpacing と同一式だが、theme index 経由の runtime import は
20
- * ThemeProvider → react-native を引くため、pure に保つ目的でここでは式を直書きする。
23
+ * - letterSpacing は em 比率 token のため fontSize × ratio で pt 化する(resolveLetterSpacing)。
21
24
  */
22
25
  export function resolveTextShape(theme, variant, role, weight) {
23
26
  const fs = theme.typography.fontSize[variant];
24
27
  return {
25
28
  fontSize: fs.fontSize,
26
- lineHeight: fs.lineHeight,
27
- letterSpacing: fs.fontSize * theme.typography.letterSpacingRatio[role],
29
+ // 既定 theme は codegen 時点でクランプ済みだが、defineTheme で注入されたカスタム theme の
30
+ // 値はここが最初の防波堤(機序と下限の根拠は theme/line-height.ts)。
31
+ lineHeight: clampLineHeight(fs.fontSize, fs.lineHeight, minRatioOf(theme)),
32
+ letterSpacing: resolveLetterSpacing(fs.fontSize, theme.typography.letterSpacingRatio[role]),
28
33
  ...(weight ? {
29
34
  fontWeight: theme.typography.fontWeight[weight]
30
35
  } : null)
@@ -1 +1 @@
1
- {"version":3,"names":["resolveTextShape","theme","variant","role","weight","fs","typography","fontSize","lineHeight","letterSpacing","letterSpacingRatio","fontWeight"],"sourceRoot":"../../../src","sources":["primitives/text.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;;AAGA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,gBAAgBA,CAC9BC,KAAkB,EAClBC,OAAoB,EACpBC,IAAc,EACdC,MAAsB,EACX;EACX,MAAMC,EAAE,GAAGJ,KAAK,CAACK,UAAU,CAACC,QAAQ,CAACL,OAAO,CAAC;EAC7C,OAAO;IACLK,QAAQ,EAAEF,EAAE,CAACE,QAAQ;IACrBC,UAAU,EAAEH,EAAE,CAACG,UAAU;IACzBC,aAAa,EAAEJ,EAAE,CAACE,QAAQ,GAAGN,KAAK,CAACK,UAAU,CAACI,kBAAkB,CAACP,IAAI,CAAC;IACtE,IAAIC,MAAM,GAAG;MAAEO,UAAU,EAAEV,KAAK,CAACK,UAAU,CAACK,UAAU,CAACP,MAAM;IAAE,CAAC,GAAG,IAAI;EACzE,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["clampLineHeight","minRatioOf","resolveLetterSpacing","resolveTextShape","theme","variant","role","weight","fs","typography","fontSize","lineHeight","letterSpacing","letterSpacingRatio","fontWeight"],"sourceRoot":"../../../src","sources":["primitives/text.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA,SAASA,eAAe,EAAEC,UAAU,QAAQ,yBAAyB;AACrE,SAASC,oBAAoB,QAAQ,4BAA4B;;AAEjE;;AAGA;;AAQA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,KAAkB,EAClBC,OAAoB,EACpBC,IAAc,EACdC,MAAsB,EACX;EACX,MAAMC,EAAE,GAAGJ,KAAK,CAACK,UAAU,CAACC,QAAQ,CAACL,OAAO,CAAC;EAC7C,OAAO;IACLK,QAAQ,EAAEF,EAAE,CAACE,QAAQ;IACrB;IACA;IACAC,UAAU,EAAEX,eAAe,CAACQ,EAAE,CAACE,QAAQ,EAAEF,EAAE,CAACG,UAAU,EAAEV,UAAU,CAACG,KAAK,CAAC,CAAC;IAC1EQ,aAAa,EAAEV,oBAAoB,CAACM,EAAE,CAACE,QAAQ,EAAEN,KAAK,CAACK,UAAU,CAACI,kBAAkB,CAACP,IAAI,CAAC,CAAC;IAC3F,IAAIC,MAAM,GAAG;MAAEO,UAAU,EAAEV,KAAK,CAACK,UAAU,CAACK,UAAU,CAACP,MAAM;IAAE,CAAC,GAAG,IAAI;EACzE,CAAC;AACH","ignoreList":[]}
@@ -13,9 +13,10 @@
13
13
  * import { enableSafeAreaContext } from "melta-app/safe-area";
14
14
  * enableSafeAreaContext();
15
15
  *
16
- * これで Screen の SafeArea が useSafeAreaInsets() + View の adapter に切り替わる。
17
- * Provider の context 値を render 中に同期参照して padding を付けるため、native
18
- * SafeAreaView の layout/state 更新を待たず、初回 render から inset が反映される。
16
+ * これで Screen / ActionSheet / BottomSheet の SafeArea が useSafeAreaInsets() + View の
17
+ * adapter に切り替わる。Provider の context 値を render 中に同期参照して padding を付けるため、
18
+ * native SafeAreaView の layout/state 更新を待たず、初回 render から inset が反映される。
19
+ * Android でも効く(RN core の SafeAreaView は Android では完全 no-op)。
19
20
  *
20
21
  * ⚠️ 前提: アプリの root に SafeAreaProvider が必要(無いと useSafeAreaInsets が throw
21
22
  * する)。初回 render から正しい inset を使うには Provider に initialMetrics も渡す。
@@ -75,8 +76,13 @@ function createContextSafeAreaView(selectedEdges) {
75
76
  return ContextSafeAreaView;
76
77
  }
77
78
 
78
- /** Screen の SafeArea を context 同期参照の View adapter に切り替える。 */
79
+ /**
80
+ * melta の SafeArea を context 同期参照の View adapter に切り替える。
81
+ *
82
+ * registry には**ファクトリ**を渡す(消費者ごとに edges が違うため)。同じ edges 集合には
83
+ * 同じコンポーネント参照が返るよう memo するのは registry 側の責務。
84
+ */
79
85
  export function enableSafeAreaContext(options = {}) {
80
- setSafeAreaView(createContextSafeAreaView(options.edges ?? ALL_EDGES));
86
+ setSafeAreaView(createContextSafeAreaView, options.edges ?? ALL_EDGES);
81
87
  }
82
88
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createElement","useMemo","I18nManager","StyleSheet","View","useSafeAreaInsets","setSafeAreaView","ALL_EDGES","additivePadding","style","insets","edges","flat","flatten","num","value","isRTL","baseVertical","edge","paddingTop","paddingBottom","paddingVertical","padding","baseHorizontal","paddingLeft","paddingRight","paddingHorizontal","out","has","top","bottom","left","right","createContextSafeAreaView","selectedEdges","Set","ContextSafeAreaView","props","paddingStyle","displayName","enableSafeAreaContext","options"],"sourceRoot":"../../../src","sources":["safe-area/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createElement","useMemo","I18nManager","StyleSheet","View","useSafeAreaInsets","setSafeAreaView","ALL_EDGES","additivePadding","style","insets","edges","flat","flatten","num","value","isRTL","baseVertical","edge","paddingTop","paddingBottom","paddingVertical","padding","baseHorizontal","paddingLeft","paddingRight","paddingHorizontal","out","has","top","bottom","left","right","createContextSafeAreaView","selectedEdges","Set","ContextSafeAreaView","props","paddingStyle","displayName","enableSafeAreaContext","options"],"sourceRoot":"../../../src","sources":["safe-area/index.ts"],"mappings":"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","ignoreList":[]}
@@ -23,8 +23,11 @@ const ThemeContext = /*#__PURE__*/createContext(null);
23
23
 
24
24
  /**
25
25
  * 既定 theme。melta-contracts 由来の codegen 結果を注入経路と同じ形に通す(自分でも dogfood する)。
26
- * 副作用として dev では `nativeTheme` の入れ子オブジェクト(トークン群)も freeze される
27
- * — 生成物のトークンを実行時に書き換える経路は元々無いので、意図した副作用として許容する。
26
+ *
27
+ * dev で freeze されるのは **`defineTheme()` の戻り値**(= `useTheme().theme` として配られる
28
+ * 解決済み theme)で、入れ子のトークン群まで再帰的に凍る。公開 export の `nativeTheme` 自体は
29
+ * `defineTheme` 内の `cloneTokenTree` で参照が切り離されているので**凍らない**
30
+ * (0.4.3 で意図的にこう変えた: 凍らせると `{ ...nativeTheme }` からの正当な派生が dev で壊れるため)。
28
31
  */
29
32
  const DEFAULT_THEME = defineTheme({
30
33
  ...nativeTheme,
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useMemo","useColorScheme","nativeTheme","defineTheme","isDev","resolveMode","jsx","_jsx","ThemeContext","DEFAULT_THEME","id","reportedViolations","WeakMap","reportViolation","theme","violation","reported","get","undefined","Set","set","has","requested","add","console","error","colorScheme","resolved","ThemeProvider","children","forcedMode","system","activeTheme","mode","capabilities","value","colors","color","semantic","Error","Provider","useTheme","ctx"],"sourceRoot":"../../../src","sources":["theme/ThemeProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useMemo","useColorScheme","nativeTheme","defineTheme","isDev","resolveMode","jsx","_jsx","ThemeContext","DEFAULT_THEME","id","reportedViolations","WeakMap","reportViolation","theme","violation","reported","get","undefined","Set","set","has","requested","add","console","error","colorScheme","resolved","ThemeProvider","children","forcedMode","system","activeTheme","mode","capabilities","value","colors","color","semantic","Error","Provider","useTheme","ctx"],"sourceRoot":"../../../src","sources":["theme/ThemeProvider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAwB,OAAO;AAC1E,SAASC,cAAc,QAAQ,cAAc;AAC7C,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,WAAW,EAAEC,KAAK,EAAEC,WAAW,QAAsF,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAsBlJ,MAAMC,YAAY,gBAAGV,aAAa,CAA2B,IAAI,CAAC;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMW,aAAkC,GAAGN,WAAW,CAAC;EAAE,GAAGD,WAAW;EAAEQ,EAAE,EAAE;AAAQ,CAAC,CAAC;;AAEvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,IAAIC,OAAO,CAAsC,CAAC;AAE7E,SAASC,eAAeA,CAACC,KAA0B,EAAEC,SAA6B,EAAQ;EACxF,IAAIC,QAAQ,GAAGL,kBAAkB,CAACM,GAAG,CAACH,KAAK,CAAC;EAC5C,IAAIE,QAAQ,KAAKE,SAAS,EAAE;IAC1BF,QAAQ,GAAG,IAAIG,GAAG,CAAC,CAAC;IACpBR,kBAAkB,CAACS,GAAG,CAACN,KAAK,EAAEE,QAAQ,CAAC;EACzC;EACA,IAAIA,QAAQ,CAACK,GAAG,CAACN,SAAS,CAACO,SAAS,CAAC,EAAE;EACvCN,QAAQ,CAACO,GAAG,CAACR,SAAS,CAACO,SAAS,CAAC;EACjCE,OAAO,CAACC,KAAK,CACX,sBAAsBV,SAAS,CAACO,SAAS,uBAAuB,GAC9D,eAAeP,SAAS,CAACW,WAAW,SAASX,SAAS,CAACY,QAAQ,UAAU,GACzE,qEACJ,CAAC;AACH;AAoBA,OAAO,SAASC,aAAaA,CAAC;EAAEC,QAAQ;EAAEC,UAAU;EAAEhB;AAA0B,CAAC,EAAE;EACjF,MAAMiB,MAAM,GAAG9B,cAAc,CAAC,CAAC;EAC/B,MAAM+B,WAAW,GAAGlB,KAAK,IAAIL,aAAa;EAE1C,MAAM;IAAEwB,IAAI;IAAElB;EAAU,CAAC,GAAGV,WAAW,CACrC2B,WAAW,CAACE,YAAY,CAACR,WAAW,EACpCI,UAAU,EACVC,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,OAC/B,CAAC;EACD,IAAI3B,KAAK,IAAIW,SAAS,EAAEF,eAAe,CAACmB,WAAW,EAAEjB,SAAS,CAAC;EAE/D,MAAMoB,KAAK,GAAGnC,OAAO,CAAoB,MAAM;IAC7C,MAAMoC,MAAM,GAAGJ,WAAW,CAACK,KAAK,CAACC,QAAQ,CAACL,IAAI,CAAC;IAC/C,IAAI,CAACG,MAAM,EAAE;MACX;MACA;MACA,MAAM,IAAIG,KAAK,CACb,iBAAiBP,WAAW,CAACtB,EAAE,IAAI,UAAU,aAAauB,IAAI,oBAChE,CAAC;IACH;IACA,OAAO;MACL;MACA;MACA;MACA;MACAnB,KAAK,EAAEkB,WAAqC;MAC5CC,IAAI;MACJG,MAAM;MACNF,YAAY,EAAEF,WAAW,CAACE;IAC5B,CAAC;EACH,CAAC,EAAE,CAACF,WAAW,EAAEC,IAAI,CAAC,CAAC;EAEvB,oBAAO1B,IAAA,CAACC,YAAY,CAACgC,QAAQ;IAACL,KAAK,EAAEA,KAAM;IAAAN,QAAA,EAAEA;EAAQ,CAAwB,CAAC;AAChF;AAEA,OAAO,SAASY,QAAQA,CAAA,EAAsB;EAC5C,MAAMC,GAAG,GAAG3C,UAAU,CAACS,YAAY,CAAC;EACpC,IAAI,CAACkC,GAAG,EAAE;IACR,MAAM,IAAIH,KAAK,CAAC,yCAAyC,CAAC;EAC5D;EACA,OAAOG,GAAG;AACZ","ignoreList":[]}
@@ -167,13 +167,19 @@ const FONT_WEIGHT_KEYS = keysOf({
167
167
  * プロパティにも true を返すので、それで判定すると「持っていない mode に置いた番人の getter」を
168
168
  * 値として数えてしまい、解決後の theme に対して常に light / dark 両方を返す(0.4.0 の不具合)。
169
169
  * 入力(素のデータプロパティ)と解決後(番人つき)のどちらに対しても正しく答える必要がある。
170
+ *
171
+ * @experimental 公開しているが安定 API ではない。挙動・シグネチャは予告なく変わりうる。
170
172
  */
171
173
  export function declaredModes(semantic) {
172
174
  const withValue = new Set(Object.keys(semantic));
173
175
  return MODES.filter(mode => withValue.has(mode));
174
176
  }
175
177
 
176
- /** colorScheme capability を `color.semantic` のキー集合から導出する。 */
178
+ /**
179
+ * colorScheme capability を `color.semantic` のキー集合から導出する。
180
+ *
181
+ * @experimental 公開しているが安定 API ではない。挙動・シグネチャは予告なく変わりうる。
182
+ */
177
183
  export function deriveColorScheme(semantic) {
178
184
  const modes = declaredModes(semantic);
179
185
  if (modes.length === 2) return "light-dark";
@@ -188,6 +194,8 @@ export function deriveColorScheme(semantic) {
188
194
  * 未知の値は**黙って light-dark 扱いにしない**。TypeScript を使わない消費者や、将来
189
195
  * capability の値が増えたときに、誤った値が「両対応の theme」として通ってしまうと、
190
196
  * 持っていない mode で描画されて初めて壊れる(=原因から遠い場所で落ちる)。
197
+ *
198
+ * @experimental 公開しているが安定 API ではない。挙動・シグネチャは予告なく変わりうる。
191
199
  */
192
200
  export function supportedModes(colorScheme) {
193
201
  switch (colorScheme) {
@@ -218,6 +226,8 @@ export function supportedModes(colorScheme) {
218
226
  * - **`forcedMode` との不一致は報告する**。宣言同士の矛盾=呼び出し側の間違いなので violation を返す。
219
227
  * ただし throw はしない(clamp して描き続ける)。厳格に落としたいテストや compiler が
220
228
  * violation を error に昇格させる側の責務にする。
229
+ *
230
+ * @experimental 公開しているが安定 API ではない。挙動・シグネチャ・violation の内容は予告なく変わりうる。
221
231
  */
222
232
  export function resolveMode(colorScheme, forcedMode, systemMode) {
223
233
  const supported = supportedModes(colorScheme);
@@ -310,6 +320,19 @@ export function validateTheme(options) {
310
320
  problems.push(`${where}: ${label} に欠けているキー — ${missing.join(", ")}`);
311
321
  }
312
322
  }
323
+
324
+ // minLineHeightRatio は任意欄だが、書くなら実在しうる比率であること
325
+ // (0.9 のような「詰め」を宣言されると clamp が下限の意味を失う。上限は設けない——
326
+ // 行間をいくら広げても字形は欠けないので、広い分には嘘にならない)。
327
+ // missingKeys と同じ方針で **accessor は呼ばない**(値の直読みは消費者の開発用プローブを
328
+ // 発火させ、「defineTheme は accessor を1度も呼ばない」契約を破る)。data property のみ検査する。
329
+ const minRatioDesc = options.typography !== null && typeof options.typography === "object" ? Object.getOwnPropertyDescriptor(options.typography, "minLineHeightRatio") : undefined;
330
+ if (minRatioDesc !== undefined && "value" in minRatioDesc && minRatioDesc.value !== undefined) {
331
+ const minRatio = minRatioDesc.value;
332
+ if (typeof minRatio !== "number" || !Number.isFinite(minRatio) || minRatio < 1) {
333
+ problems.push(`${where}: typography.minLineHeightRatio が不正 — ${String(minRatio)}(フォント実測の 1 以上の有限数を宣言する。根拠は theme/line-height.ts)`);
334
+ }
335
+ }
313
336
  const status = options.color?.status;
314
337
  if (status !== null && typeof status === "object") {
315
338
  for (const kind of STATUS_KINDS) {
@@ -414,6 +437,9 @@ function deepFreeze(value) {
414
437
  *
415
438
  * dev では validateTheme を1回通し、問題があれば throw する(構造が壊れた theme は
416
439
  * 後段で必ず事故になるので早く落とす)。production では検査ごと省く。
440
+ *
441
+ * dev では**戻り値だけ**が入れ子まで再帰 freeze される。入力オブジェクトと公開 export の
442
+ * `nativeTheme` は `cloneTokenTree` で参照を切ってあるので凍らない(0.4.3 で意図的にこうした)。
417
443
  */
418
444
  export function defineTheme(options) {
419
445
  if (isDev) {
@@ -1 +1 @@
1
- {"version":3,"names":["isDev","__DEV__","globalThis","process","env","NODE_ENV","keysOf","map","Object","keys","MODES","light","dark","SEMANTIC_KEYS","PRIMARY_KEYS","STATUS_KINDS","success","warning","danger","STATUS_COLOR_KEYS","base","subtleLight","textLight","subtleDark","textDark","SPACING_KEYS","RADIUS_KEYS","sm","md","lg","full","ELEVATION_KEYS","none","overlay","FONT_SIZE_KEYS","xxs","xs","xl","FONT_WEIGHT_KEYS","normal","medium","semibold","bold","declaredModes","semantic","withValue","Set","filter","mode","has","deriveColorScheme","modes","length","Error","supportedModes","colorScheme","unknown","String","resolveMode","forcedMode","systemMode","supported","requested","includes","resolved","undefined","violation","kind","missingKeys","target","key","descriptor","getOwnPropertyDescriptor","value","validateTheme","options","problems","where","id","color","push","unknownModes","missing","join","groups","primary","spacing","radius","elevation","typography","fontSize","fontWeight","status","label","prototype","hasOwnProperty","call","installMissingModeGuards","defineProperty","enumerable","configurable","get","isPlainObject","proto","getPrototypeOf","cloneTokenTree","Array","isArray","item","source","getOwnPropertyDescriptors","Reflect","ownKeys","defineProperties","deepFreeze","isFrozen","freeze","descriptors","values","defineTheme","owned","theme","capabilities","$$melta"],"sourceRoot":"../../../src","sources":["theme/define-theme.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,KAAc,GACzB,OAAOC,OAAO,KAAK,WAAW,GAC1BA,OAAO,GACNC,UAAU,CAAmDC,OAAO,EAAEC,GAAG,EAAEC,QAAQ,KACpF,aAAa;;AAEnB;AACA;AACA;;AAEA;;AAGA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;;AAMA;;AAUA;AACA;AACA;;AAEA,SAASC,MAAMA,CAAmBC,GAAM,EAAe;EACrD,OAAOC,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC;AACzB;AAEA,MAAMG,KAAK,GAAGJ,MAAM,CAA0B;EAAEK,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAK,CAAC,CAAC;AAE1E,MAAMC,aAAa,GAAGP,MAAM,CAAqC;EAC/D,SAAS,EAAE,IAAI;EACf,aAAa,EAAE,IAAI;EACnB,YAAY,EAAE,IAAI;EAClB,gBAAgB,EAAE,IAAI;EACtB,cAAc,EAAE,IAAI;EACpB,cAAc,EAAE,IAAI;EACpB,YAAY,EAAE,IAAI;EAClB,gBAAgB,EAAE,IAAI;EACtB,eAAe,EAAE,IAAI;EACrB,UAAU,EAAE,IAAI;EAChB,cAAc,EAAE,IAAI;EACpB,aAAa,EAAE,IAAI;EACnB,gBAAgB,EAAE;AACpB,CAAC,CAAC;AAEF,MAAMQ,YAAY,GAAGR,MAAM,CAA6B;EACtD,IAAI,EAAE,IAAI;EACV,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,KAAK,EAAE;AACT,CAAC,CAAC;AAEF,MAAMS,YAAY,GAAGT,MAAM,CAA2C;EACpEU,OAAO,EAAE,IAAI;EACbC,OAAO,EAAE,IAAI;EACbC,MAAM,EAAE;AACV,CAAC,CAAC;AAEF,MAAMC,iBAAiB,GAAGb,MAAM,CAAmC;EACjEc,IAAI,EAAE,IAAI;EACVC,WAAW,EAAE,IAAI;EACjBC,SAAS,EAAE,IAAI;EACfC,UAAU,EAAE,IAAI;EAChBC,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,MAAMC,YAAY,GAAGnB,MAAM,CAA2B;EACpD,GAAG,EAAE,IAAI;EACT,GAAG,EAAE,IAAI;EACT,GAAG,EAAE,IAAI;EACT,GAAG,EAAE,IAAI;EACT,GAAG,EAAE,IAAI;EACT,GAAG,EAAE,IAAI;EACT,GAAG,EAAE,IAAI;EACT,IAAI,EAAE,IAAI;EACV,IAAI,EAAE,IAAI;EACV,IAAI,EAAE,IAAI;EACV,IAAI,EAAE;AACR,CAAC,CAAC;AAEF,MAAMoB,WAAW,GAAGpB,MAAM,CAA0B;EAClDqB,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE;AACR,CAAC,CAAC;AAEF,MAAMC,cAAc,GAAGzB,MAAM,CAA6B;EACxD0B,IAAI,EAAE,IAAI;EACVL,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,IAAI;EACRK,OAAO,EAAE;AACX,CAAC,CAAC;AAEF,MAAMC,cAAc,GAAG5B,MAAM,CAA4B;EACvD6B,GAAG,EAAE,IAAI;EACTC,EAAE,EAAE,IAAI;EACRT,EAAE,EAAE,IAAI;EACRP,IAAI,EAAE,IAAI;EACVS,EAAE,EAAE,IAAI;EACRQ,EAAE,EAAE,IAAI;EACR,KAAK,EAAE,IAAI;EACX,KAAK,EAAE;AACT,CAAC,CAAC;AAEF,MAAMC,gBAAgB,GAAGhC,MAAM,CAA8B;EAC3DiC,MAAM,EAAE,IAAI;EACZC,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,IAAI;EACdC,IAAI,EAAE;AACR,CAAC,CAAC;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,QAAoD,EAAe;EAC/F,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAACtC,MAAM,CAACC,IAAI,CAACmC,QAAQ,CAAC,CAAC;EAChD,OAAOlC,KAAK,CAACqC,MAAM,CAAEC,IAAI,IAAKH,SAAS,CAACI,GAAG,CAACD,IAAI,CAAC,CAAC;AACpD;;AAEA;AACA,OAAO,SAASE,iBAAiBA,CAC/BN,QAAoD,EAC7B;EACvB,MAAMO,KAAK,GAAGR,aAAa,CAACC,QAAQ,CAAC;EACrC,IAAIO,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY;EAC3C,IAAID,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,OAAO,aAAa;EAC7C,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,OAAO,cAAc;EAC/C,MAAM,IAAIE,KAAK,CACb,oEACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACC,WAAkC,EAAe;EAC9E,QAAQA,WAAW;IACjB,KAAK,YAAY;MACf,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,KAAK,aAAa;MAChB,OAAO,CAAC,MAAM,CAAC;IACjB,KAAK,cAAc;MACjB,OAAO,CAAC,OAAO,CAAC;IAClB;MAAS;QACP,MAAMC,OAAc,GAAGD,WAAW;QAClC,MAAM,IAAIF,KAAK,CAAC,sCAAsCI,MAAM,CAACD,OAAO,CAAC,IAAI,CAAC;MAC5E;EACF;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,WAAWA,CACzBH,WAAkC,EAClCI,UAAiC,EACjCC,UAAqB,EACgC;EACrD,MAAMC,SAAS,GAAGP,cAAc,CAACC,WAAW,CAAC;EAC7C,MAAMO,SAAS,GAAGH,UAAU,IAAIC,UAAU;EAC1C;EACA,IAAI,CAAElD,KAAK,CAAcqD,QAAQ,CAACD,SAAS,CAAC,EAAE;IAC5C,MAAM,IAAIT,KAAK,CAAC,oBAAoBI,MAAM,CAACK,SAAS,CAAC,oBAAoB,CAAC;EAC5E;EACA,IAAID,SAAS,CAACE,QAAQ,CAACD,SAAS,CAAC,EAAE,OAAO;IAAEd,IAAI,EAAEc;EAAU,CAAC;EAE7D,MAAME,QAAQ,GAAGH,SAAS,CAAC,CAAC,CAAC;EAC7B;EACA,IAAIF,UAAU,KAAKM,SAAS,EAAE,OAAO;IAAEjB,IAAI,EAAEgB;EAAS,CAAC;EACvD,OAAO;IACLhB,IAAI,EAAEgB,QAAQ;IACdE,SAAS,EAAE;MAAEC,IAAI,EAAE,yBAAyB;MAAEL,SAAS;MAAEE,QAAQ;MAAET;IAAY;EACjF,CAAC;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASa,WAAWA,CAACC,MAA0B,EAAE5D,IAAkC,EAAY;EAC7F,IAAI4D,MAAM,KAAK,IAAI,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE,OAAO,CAAC,GAAG5D,IAAI,CAAC,CAACF,GAAG,CAACkD,MAAM,CAAC;EAC/E,OAAOhD,IAAI,CACRsC,MAAM,CAAEuB,GAAG,IAAK;IACf,MAAMC,UAAU,GAAG/D,MAAM,CAACgE,wBAAwB,CAACH,MAAM,EAAEC,GAAG,CAAC;IAC/D,IAAIC,UAAU,KAAKN,SAAS,EAAE,OAAO,IAAI;IACzC;IACA,IAAI,EAAE,OAAO,IAAIM,UAAU,CAAC,EAAE,OAAO,KAAK;IAC1C,OAAOA,UAAU,CAACE,KAAK,KAAKR,SAAS;EACvC,CAAC,CAAC,CACD1D,GAAG,CAACkD,MAAM,CAAC;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASiB,aAAaA,CAACC,OAAqB,EAAY;EAC7D,MAAMC,QAAkB,GAAG,EAAE;EAC7B,MAAMC,KAAK,GAAGF,OAAO,CAACG,EAAE,GAAG,UAAUH,OAAO,CAACG,EAAE,GAAG,GAAG,OAAO;EAE5D,MAAMlC,QAAQ,GAAG+B,OAAO,CAACI,KAAK,EAAEnC,QAAQ;EACxC,IAAIA,QAAQ,KAAK,IAAI,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;IACrDgC,QAAQ,CAACI,IAAI,CAAC,GAAGH,KAAK,sBAAsB,CAAC;IAC7C,OAAOD,QAAQ;EACjB;EAEA,MAAMK,YAAY,GAAGzE,MAAM,CAACC,IAAI,CAACmC,QAAQ,CAAC,CAACG,MAAM,CAC9CuB,GAAG,IAAK,CAAE5D,KAAK,CAAcqD,QAAQ,CAACO,GAAG,CAC5C,CAAC;EACD,KAAK,MAAMA,GAAG,IAAIW,YAAY,EAAE;IAC9BL,QAAQ,CAACI,IAAI,CAAC,GAAGH,KAAK,4BAA4BP,GAAG,oBAAoB,CAAC;EAC5E;EAEA,MAAMnB,KAAK,GAAGR,aAAa,CAACC,QAAQ,CAAC;EACrC,IAAIO,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;IACtBwB,QAAQ,CAACI,IAAI,CAAC,GAAGH,KAAK,yCAAyC,CAAC;EAClE;EACA,KAAK,MAAM7B,IAAI,IAAIG,KAAK,EAAE;IACxB,MAAM+B,OAAO,GAAGd,WAAW,CAACxB,QAAQ,CAACI,IAAI,CAAC,EAAEnC,aAAa,CAAC;IAC1D,IAAIqE,OAAO,CAAC9B,MAAM,GAAG,CAAC,EAAE;MACtBwB,QAAQ,CAACI,IAAI,CAAC,GAAGH,KAAK,oBAAoB7B,IAAI,cAAckC,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACnF;EACF;EAEA,MAAMC,MAAyD,GAAG,CAChE,CAAC,eAAe,EAAET,OAAO,CAACI,KAAK,EAAEM,OAAO,EAAEvE,YAAY,CAAC,EACvD,CAAC,SAAS,EAAE6D,OAAO,CAACW,OAAO,EAAE7D,YAAY,CAAC,EAC1C,CAAC,QAAQ,EAAEkD,OAAO,CAACY,MAAM,EAAE7D,WAAW,CAAC,EACvC,CAAC,WAAW,EAAEiD,OAAO,CAACa,SAAS,EAAEzD,cAAc,CAAC,EAChD,CAAC,qBAAqB,EAAE4C,OAAO,CAACc,UAAU,EAAEC,QAAQ,EAAExD,cAAc,CAAC,EACrE,CAAC,uBAAuB,EAAEyC,OAAO,CAACc,UAAU,EAAEE,UAAU,EAAErD,gBAAgB,CAAC,EAC3E,CAAC,cAAc,EAAEqC,OAAO,CAACI,KAAK,EAAEa,MAAM,EAAE7E,YAAY,CAAC,CACtD;EACD,KAAK,MAAM,CAAC8E,KAAK,EAAExB,MAAM,EAAE5D,IAAI,CAAC,IAAI2E,MAAM,EAAE;IAC1C,MAAMF,OAAO,GAAGd,WAAW,CAACC,MAAM,EAAE5D,IAAI,CAAC;IACzC,IAAIyE,OAAO,CAAC9B,MAAM,GAAG,CAAC,EAAE;MACtBwB,QAAQ,CAACI,IAAI,CAAC,GAAGH,KAAK,KAAKgB,KAAK,eAAeX,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtE;EACF;EAEA,MAAMS,MAAM,GAAGjB,OAAO,CAACI,KAAK,EAAEa,MAAM;EACpC,IAAIA,MAAM,KAAK,IAAI,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IACjD,KAAK,MAAMzB,IAAI,IAAIpD,YAAY,EAAE;MAC/B,IAAI,CAACP,MAAM,CAACsF,SAAS,CAACC,cAAc,CAACC,IAAI,CAACJ,MAAM,EAAEzB,IAAI,CAAC,EAAE;MACzD,MAAMe,OAAO,GAAGd,WAAW,CAACwB,MAAM,CAACzB,IAAI,CAAC,EAAEhD,iBAAiB,CAAC;MAC5D,IAAI+D,OAAO,CAAC9B,MAAM,GAAG,CAAC,EAAE;QACtBwB,QAAQ,CAACI,IAAI,CAAC,GAAGH,KAAK,kBAAkBV,IAAI,eAAee,OAAO,CAACC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;MAClF;IACF;EACF;EAEA,OAAOP,QAAQ;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqB,wBAAwBA,CAC/BrD,QAAoD,EACpDiC,KAAa,EACbtB,WAAkC,EAC5B;EACN,KAAK,MAAMP,IAAI,IAAItC,KAAK,EAAE;IACxB,IAAIF,MAAM,CAACsF,SAAS,CAACC,cAAc,CAACC,IAAI,CAACpD,QAAQ,EAAEI,IAAI,CAAC,EAAE;IAC1DxC,MAAM,CAAC0F,cAAc,CAACtD,QAAQ,EAAEI,IAAI,EAAE;MACpCmD,UAAU,EAAE,KAAK;MACjBC,YAAY,EAAE,IAAI;MAClBC,GAAGA,CAAA,EAAU;QACX,MAAM,IAAIhD,KAAK,CACb,UAAUwB,KAAK,kBAAkBtB,WAAW,uBAAuBP,IAAI,SAAS,GAC9E,iEACJ,CAAC;MACH;IACF,CAAC,CAAC;EACJ;AACF;;AAEA;AACA,SAASsD,aAAaA,CAAC7B,KAAc,EAAyC;EAC5E,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE,OAAO,KAAK;EAC7D,MAAM8B,KAAc,GAAG/F,MAAM,CAACgG,cAAc,CAAC/B,KAAK,CAAC;EACnD,OAAO8B,KAAK,KAAK/F,MAAM,CAACsF,SAAS,IAAIS,KAAK,KAAK,IAAI;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,cAAcA,CAAIhC,KAAQ,EAAK;EACtC,IAAIiC,KAAK,CAACC,OAAO,CAAClC,KAAK,CAAC,EAAE,OAAOA,KAAK,CAAClE,GAAG,CAAEqG,IAAa,IAAKH,cAAc,CAACG,IAAI,CAAC,CAAC;EACnF,IAAI,CAACN,aAAa,CAAC7B,KAAK,CAAC,EAAE,OAAOA,KAAK;EAEvC,MAAMoC,MAAM,GAAGrG,MAAM,CAACsG,yBAAyB,CAACrC,KAAK,CAAC;EACtD,MAAMJ,MAA6B,GAAG,CAAC,CAAC;EACxC,KAAK,MAAMC,GAAG,IAAIyC,OAAO,CAACC,OAAO,CAACH,MAAM,CAAC,EAAE;IACzC,MAAMtC,UAAU,GAAGsC,MAAM,CAACvC,GAAG,CAA8C;IAC3ED,MAAM,CAACC,GAAG,CAAW,GACnB,OAAO,IAAIC,UAAU,GACjB;MAAE,GAAGA,UAAU;MAAEE,KAAK,EAAEgC,cAAc,CAAClC,UAAU,CAACE,KAAK;IAAE,CAAC,GAC1DF,UAAU;EAClB;EACA,OAAO/D,MAAM,CAACyG,gBAAgB,CAAC,CAAC,CAAC,EAAE5C,MAAM,CAAC;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS6C,UAAUA,CAACzC,KAAc,EAAQ;EACxC,IAAI,CAAC6B,aAAa,CAAC7B,KAAK,CAAC,IAAI,CAACiC,KAAK,CAACC,OAAO,CAAClC,KAAK,CAAC,EAAE;EACpD,IAAIjE,MAAM,CAAC2G,QAAQ,CAAC1C,KAAK,CAAC,EAAE;EAC5BjE,MAAM,CAAC4G,MAAM,CAAC3C,KAAK,CAAC;EACpB,MAAM4C,WAAW,GAAG7G,MAAM,CAACsG,yBAAyB,CAACrC,KAAK,CAAC;EAC3D,KAAK,MAAMF,UAAU,IAAI/D,MAAM,CAAC8G,MAAM,CAAqBD,WAAW,CAAC,EAAE;IACvE;IACA,IAAI,OAAO,IAAI9C,UAAU,EAAE2C,UAAU,CAAC3C,UAAU,CAACE,KAAK,CAAC;EACzD;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS8C,WAAWA,CAAC5C,OAAqB,EAAuB;EACtE,IAAI3E,KAAK,EAAE;IACT,MAAM4E,QAAQ,GAAGF,aAAa,CAACC,OAAO,CAAC;IACvC,IAAIC,QAAQ,CAACxB,MAAM,GAAG,CAAC,EAAE;MACvB,MAAM,IAAIC,KAAK,CAAC,0BAA0BuB,QAAQ,CAACO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACpE;EACF;;EAEA;EACA;EACA;EACA,MAAMqC,KAAK,GAAGf,cAAc,CAAC9B,OAAO,CAAC;EACrC,MAAM/B,QAAQ,GAAG4E,KAAK,CAACzC,KAAK,CAACnC,QAAQ;EACrC,MAAMW,WAAW,GAAGL,iBAAiB,CAACN,QAAQ,CAAC;EAE/C,MAAM6E,KAA0B,GAAG;IACjC,GAAGD,KAAK;IACRE,YAAY,EAAE;MAAEnE;IAAY,CAAC;IAC7BoE,OAAO,EAAE;EACX,CAAC;;EAED;EACA;EACA1B,wBAAwB,CAACrD,QAAQ,EAAE+B,OAAO,CAACG,EAAE,GAAG,UAAUH,OAAO,CAACG,EAAE,GAAG,GAAG,OAAO,EAAEvB,WAAW,CAAC;EAE/F,IAAIvD,KAAK,EAAEkH,UAAU,CAACO,KAAK,CAAC;EAE5B,OAAOA,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["isDev","__DEV__","globalThis","process","env","NODE_ENV","keysOf","map","Object","keys","MODES","light","dark","SEMANTIC_KEYS","PRIMARY_KEYS","STATUS_KINDS","success","warning","danger","STATUS_COLOR_KEYS","base","subtleLight","textLight","subtleDark","textDark","SPACING_KEYS","RADIUS_KEYS","sm","md","lg","full","ELEVATION_KEYS","none","overlay","FONT_SIZE_KEYS","xxs","xs","xl","FONT_WEIGHT_KEYS","normal","medium","semibold","bold","declaredModes","semantic","withValue","Set","filter","mode","has","deriveColorScheme","modes","length","Error","supportedModes","colorScheme","unknown","String","resolveMode","forcedMode","systemMode","supported","requested","includes","resolved","undefined","violation","kind","missingKeys","target","key","descriptor","getOwnPropertyDescriptor","value","validateTheme","options","problems","where","id","color","push","unknownModes","missing","join","groups","primary","spacing","radius","elevation","typography","fontSize","fontWeight","status","label","minRatioDesc","minRatio","Number","isFinite","prototype","hasOwnProperty","call","installMissingModeGuards","defineProperty","enumerable","configurable","get","isPlainObject","proto","getPrototypeOf","cloneTokenTree","Array","isArray","item","source","getOwnPropertyDescriptors","Reflect","ownKeys","defineProperties","deepFreeze","isFrozen","freeze","descriptors","values","defineTheme","owned","theme","capabilities","$$melta"],"sourceRoot":"../../../src","sources":["theme/define-theme.ts"],"mappings":"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","ignoreList":[]}
@@ -10,18 +10,17 @@ export * from "./types.js";
10
10
  export { nativeTheme } from "./native-theme.js";
11
11
  export { ThemeProvider, useTheme } from "./ThemeProvider.js";
12
12
  export { defineTheme } from "./define-theme.js";
13
+ export { DEFAULT_MIN_LINE_HEIGHT_RATIO, minLineHeightFor, clampLineHeight } from "./line-height.js";
14
+ /**
15
+ * letterSpacingRatio(em 相当の比率)を適用先の fontSize から letterSpacing(pt) に解決する helper。
16
+ * 実体は pure module(./letter-spacing)。resolver 側は index を経由せず直接 import する
17
+ * (index は ThemeProvider = react-native を引くため)。
18
+ */
19
+ export { resolveLetterSpacing } from "./letter-spacing.js";
13
20
  /**
14
21
  * 以下は theme の解決規則を外から検証・再利用するためのヘルパ。
15
22
  * **@experimental — 安定 API ではない。** 挙動・シグネチャ・メッセージは予告なく変わりうる。
16
23
  * アプリの実行時ロジックが依存する場合は、useTheme().capabilities を使うほうが安全。
17
24
  */
18
25
  export { validateTheme, resolveMode, supportedModes, deriveColorScheme, declaredModes } from "./define-theme.js";
19
- /**
20
- * letterSpacingRatio(em 相当の比率)を、適用先の fontSize から RN の letterSpacing(pt) に解決する。
21
- * 例: resolveLetterSpacing(18, theme.typography.letterSpacingRatio.body)
22
- * theme.typography.letterSpacingRatio.* をそのまま style.letterSpacing に入れる誤用を避けるための helper。
23
- */
24
- export function resolveLetterSpacing(fontSize, ratio) {
25
- return fontSize * ratio;
26
- }
27
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["nativeTheme","ThemeProvider","useTheme","defineTheme","validateTheme","resolveMode","supportedModes","deriveColorScheme","declaredModes","resolveLetterSpacing","fontSize","ratio"],"sourceRoot":"../../../src","sources":["theme/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAS;AACvB,SAASA,WAAW,QAAQ,mBAAgB;AAC5C,SAASC,aAAa,EAAEC,QAAQ,QAAQ,oBAAiB;AAEzD,SAASC,WAAW,QAAQ,mBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA,SACEC,aAAa,EACbC,WAAW,EACXC,cAAc,EACdC,iBAAiB,EACjBC,aAAa,QACR,mBAAgB;AASvB;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAACC,QAAgB,EAAEC,KAAa,EAAU;EAC5E,OAAOD,QAAQ,GAAGC,KAAK;AACzB","ignoreList":[]}
1
+ {"version":3,"names":["nativeTheme","ThemeProvider","useTheme","defineTheme","DEFAULT_MIN_LINE_HEIGHT_RATIO","minLineHeightFor","clampLineHeight","resolveLetterSpacing","validateTheme","resolveMode","supportedModes","deriveColorScheme","declaredModes"],"sourceRoot":"../../../src","sources":["theme/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAY;AAC1B,SAASA,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,aAAa,EAAEC,QAAQ,QAAQ,oBAAoB;AAE5D,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SACEC,6BAA6B,EAC7BC,gBAAgB,EAChBC,eAAe,QACV,kBAAkB;AACzB;AACA;AACA;AACA;AACA;AACA,SAASC,oBAAoB,QAAQ,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA,SACEC,aAAa,EACbC,WAAW,EACXC,cAAc,EACdC,iBAAiB,EACjBC,aAAa,QACR,mBAAmB","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * letter-spacing — letterSpacingRatio(em 相当の比率)→ RN の letterSpacing(pt) の解決。
5
+ *
6
+ * theme/index.ts は ThemeProvider(react-native 依存)を re-export するので、pure style resolver や
7
+ * node テストから index 経由でこの helper を引くと RN を巻き込んでしまう。そのため実体は
8
+ * line-height.ts と同じく **pure module** に置き、index.ts は re-export だけする
9
+ * (公開 API の位置と名前は不変)。以前は index.ts に実体があり、pure 側は同じ式を直書きしていた。
10
+ */
11
+
12
+ /**
13
+ * letterSpacingRatio(em 相当の比率)を、適用先の fontSize から RN の letterSpacing(pt) に解決する。
14
+ * 例: resolveLetterSpacing(18, theme.typography.letterSpacingRatio.body)
15
+ * theme.typography.letterSpacingRatio.* をそのまま style.letterSpacing に入れる誤用を避けるための helper。
16
+ */
17
+ export function resolveLetterSpacing(fontSize, ratio) {
18
+ return fontSize * ratio;
19
+ }
20
+ //# sourceMappingURL=letter-spacing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["resolveLetterSpacing","fontSize","ratio"],"sourceRoot":"../../../src","sources":["theme/letter-spacing.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,oBAAoBA,CAACC,QAAgB,EAAEC,KAAa,EAAU;EAC5E,OAAOD,QAAQ,GAAGC,KAAK;AACzB","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * line-height — 行間の安全下限(フォントの字形を欠かせない最小 lineHeight)。
5
+ *
6
+ * なぜ要るか(2026-08-05 modelog dogfood で実害):
7
+ * RN Android の CustomLineHeightSpan は `leading = lineHeight - (ascent + descent)` を計算し、
8
+ * leading が負になると不足分を行の上下から半分ずつ削って帳尻を合わせる。削られた領域の字形
9
+ * (濁点は行の上端にある)は Text 既定の overflow: hidden で消える——「ギ」が「チ」に見える。
10
+ * web はこの機序を持たないため、web の実描画検査では検出できない(Android 実機のみで発現)。
11
+ *
12
+ * 下限は使用フォントのメトリクス(ascent + descent)に依存するが、melta はフォントを同梱しない
13
+ * (system フォント運用)ので、既定は **Android の日本語 system フォント Noto Sans CJK JP の
14
+ * 実測 1.448**(hhea: (1160 + 288) / 1000。AOSP 版・Google Fonts 版とも同値、2026-08-06 実測)
15
+ * を切り上げた 1.45 とする。iOS(Hiragino 1.50 相当)にはこの clip 機序が無いので基準にしない。
16
+ *
17
+ * フォントを同梱する消費者は、そのフォントの実測比率を theme の
18
+ * `typography.minLineHeightRatio` で宣言する(例: LINE Seed JP = 1.61)。
19
+ * 宣言が既定より小さいラテン専用フォント(例: Inter 1.21)も同じ口で下げられる。
20
+ */
21
+
22
+ /**
23
+ * 既定の最小行間比。Android system 日本語フォント(Noto Sans CJK JP)の実測 1.448 の切り上げ。
24
+ * theme が `typography.minLineHeightRatio` を宣言しない場合にこの値へ倒れる(日本語安全側)。
25
+ */
26
+ export const DEFAULT_MIN_LINE_HEIGHT_RATIO = 1.45;
27
+
28
+ /**
29
+ * theme が宣言する最小行間比を取り出す(未宣言なら既定へ倒す)。
30
+ * `theme.typography.minLineHeightRatio ?? DEFAULT_MIN_LINE_HEIGHT_RATIO` を各 resolver が
31
+ * 写経すると、既定へ倒す規則が一箇所ずつ腐る(片方だけ ?? を落とす等)ためここに集約する。
32
+ */
33
+ export function minRatioOf(theme) {
34
+ return theme.typography.minLineHeightRatio ?? DEFAULT_MIN_LINE_HEIGHT_RATIO;
35
+ }
36
+
37
+ /**
38
+ * fontSize に対する安全な最小 lineHeight(px)。
39
+ * **切り上げ**であることが要点: 四捨五入だと 32 × 1.45 = 46.4 → 46 で下限を割る。
40
+ */
41
+ export function minLineHeightFor(fontSize, minRatio) {
42
+ return Math.ceil(fontSize * minRatio);
43
+ }
44
+
45
+ /**
46
+ * 宣言された lineHeight を安全下限でクランプする。
47
+ * 宣言値が下限以上ならそのまま(意匠の行間はどこまでも広げられる。詰める方向だけを止める)。
48
+ */
49
+ export function clampLineHeight(fontSize, declaredLineHeight, minRatio) {
50
+ return Math.max(declaredLineHeight, minLineHeightFor(fontSize, minRatio));
51
+ }
52
+ //# sourceMappingURL=line-height.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_MIN_LINE_HEIGHT_RATIO","minRatioOf","theme","typography","minLineHeightRatio","minLineHeightFor","fontSize","minRatio","Math","ceil","clampLineHeight","declaredLineHeight","max"],"sourceRoot":"../../../src","sources":["theme/line-height.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMA,6BAA6B,GAAG,IAAI;;AAEjD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,KAAsD,EAAU;EACzF,OAAOA,KAAK,CAACC,UAAU,CAACC,kBAAkB,IAAIJ,6BAA6B;AAC7E;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,gBAAgBA,CAACC,QAAgB,EAAEC,QAAgB,EAAU;EAC3E,OAAOC,IAAI,CAACC,IAAI,CAACH,QAAQ,GAAGC,QAAQ,CAAC;AACvC;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASG,eAAeA,CAC7BJ,QAAgB,EAChBK,kBAA0B,EAC1BJ,QAAgB,EACR;EACR,OAAOC,IAAI,CAACI,GAAG,CAACD,kBAAkB,EAAEN,gBAAgB,CAACC,QAAQ,EAAEC,QAAQ,CAAC,CAAC;AAC3E","ignoreList":[]}
@@ -38,7 +38,7 @@ export const nativeTheme = {
38
38
  },
39
39
  "dark": {
40
40
  "bg-page": "#0f172a",
41
- "bg-page-alt": "#1e293b",
41
+ "bg-page-alt": "#334155",
42
42
  "bg-surface": "#1e293b",
43
43
  "bg-surface-alt": "#0f172a",
44
44
  "text-heading": "#f1f5f9",
@@ -81,11 +81,11 @@ export const nativeTheme = {
81
81
  "fontSize": {
82
82
  "xxs": {
83
83
  "fontSize": 10,
84
- "lineHeight": 14
84
+ "lineHeight": 15
85
85
  },
86
86
  "xs": {
87
87
  "fontSize": 13,
88
- "lineHeight": 18
88
+ "lineHeight": 19
89
89
  },
90
90
  "sm": {
91
91
  "fontSize": 15,
@@ -101,15 +101,15 @@ export const nativeTheme = {
101
101
  },
102
102
  "xl": {
103
103
  "fontSize": 22,
104
- "lineHeight": 31
104
+ "lineHeight": 32
105
105
  },
106
106
  "2xl": {
107
107
  "fontSize": 26,
108
- "lineHeight": 36
108
+ "lineHeight": 38
109
109
  },
110
110
  "3xl": {
111
111
  "fontSize": 32,
112
- "lineHeight": 45
112
+ "lineHeight": 47
113
113
  }
114
114
  },
115
115
  "fontWeight": {
@@ -121,7 +121,8 @@ export const nativeTheme = {
121
121
  "letterSpacingRatio": {
122
122
  "heading": 0.01,
123
123
  "body": 0.02
124
- }
124
+ },
125
+ "minLineHeightRatio": 1.45
125
126
  },
126
127
  "spacing": {
127
128
  "1": 4,
@@ -1 +1 @@
1
- {"version":3,"names":["nativeTheme"],"sourceRoot":"../../../src","sources":["theme/native-theme.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["nativeTheme"],"sourceRoot":"../../../src","sources":["theme/native-theme.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * tap-target — 実効タップ標的 44pt(横断方針)の数値 SSOT。
3
+ *
4
+ * 正本は melta-contracts の `A11Y_MIN_TAP_TARGET_44`(rules.json):
5
+ * 「すべての操作要素は実効タップ標的 44pt を下回らない。視覚寸法は契約どおり据え置き、
6
+ * 当たり判定だけを広げる。app は視覚 24pt + hitSlop 10 の正典パターンか minHeight で下限を保証する
7
+ * (height 固定は fontScale でクリップするので使わない)」。
8
+ *
9
+ * ここは「44」という数と正典パターンの寸法を**一箇所**に置くための pure module。
10
+ * 各コンポーネントの hitSlop 値そのものは **literal で各 `*.styles.ts` に置く**(ここから
11
+ * 自動導出しない)。導出にすると視覚寸法が変わったとき hitSlop も一緒に動いてしまい、
12
+ * conformance テスト(scripts/lib/tap-target-conformance.test.ts)が構造的に fail-open になるため。
13
+ *
14
+ * react-native を import しない純粋モジュール(`*.styles.ts` と同じ規約)。
15
+ */
16
+ /** 実効タップ標的の下限(pt)。WCAG 2.2 SC 2.5.5(AAA)水準を melta の横断方針として採る。 */
17
+ export declare const MIN_TAP_TARGET = 44;
18
+ /**
19
+ * 正典パターン: 視覚 24pt の箱 + hitSlop 10 → 実効 44pt。
20
+ * 背景を持たない小さな操作要素(Tag removable の × / Toast の × / Alert の × / Modal の ×)はこれ。
21
+ */
22
+ export declare const CANONICAL_TAP_TARGET: {
23
+ readonly minWidth: 24;
24
+ readonly minHeight: 24;
25
+ readonly hitSlop: 10;
26
+ };
27
+ /**
28
+ * 視覚寸法 `visual` を実効 44pt に届かせるのに必要な**片側** hitSlop(切り上げ = 安全側)。
29
+ *
30
+ * ⚠️ 実装の hitSlop 値をこの関数で計算しないこと(上のコメント参照)。
31
+ * 使うのは (a) 値を決めるときの検算、(b) conformance テストの期待値算出。
32
+ */
33
+ export declare function requiredHitSlop(visual: number): number;
34
+ //# sourceMappingURL=tap-target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tap-target.d.ts","sourceRoot":"","sources":["../../../../src/a11y/tap-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,iEAAiE;AACjE,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD"}