melta-app 0.6.0 → 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 (295) hide show
  1. package/README.md +220 -12
  2. package/docs/architecture.md +11 -4
  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 +13 -5
  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 +2 -2
  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 +6 -7
  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 +14 -1
  94. package/lib/module/theme/define-theme.js.map +1 -1
  95. package/lib/module/theme/index.js +6 -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 +9 -0
  100. package/lib/module/theme/line-height.js.map +1 -1
  101. package/lib/module/theme/native-theme.js +1 -1
  102. package/lib/typescript/src/a11y/tap-target.d.ts +34 -0
  103. package/lib/typescript/src/a11y/tap-target.d.ts.map +1 -0
  104. package/lib/typescript/src/components/ActionSheet.d.ts +8 -1
  105. package/lib/typescript/src/components/ActionSheet.d.ts.map +1 -1
  106. package/lib/typescript/src/components/Alert.d.ts +9 -2
  107. package/lib/typescript/src/components/Alert.d.ts.map +1 -1
  108. package/lib/typescript/src/components/Avatar.d.ts +1 -1
  109. package/lib/typescript/src/components/Avatar.d.ts.map +1 -1
  110. package/lib/typescript/src/components/BottomSheet.d.ts +4 -1
  111. package/lib/typescript/src/components/BottomSheet.d.ts.map +1 -1
  112. package/lib/typescript/src/components/Card.d.ts +2 -2
  113. package/lib/typescript/src/components/Checkbox.d.ts +3 -3
  114. package/lib/typescript/src/components/Checkbox.d.ts.map +1 -1
  115. package/lib/typescript/src/components/Image.d.ts +4 -3
  116. package/lib/typescript/src/components/Image.d.ts.map +1 -1
  117. package/lib/typescript/src/components/Modal.d.ts +9 -3
  118. package/lib/typescript/src/components/Modal.d.ts.map +1 -1
  119. package/lib/typescript/src/components/Progress.d.ts +1 -1
  120. package/lib/typescript/src/components/Progress.d.ts.map +1 -1
  121. package/lib/typescript/src/components/Radio.d.ts +3 -2
  122. package/lib/typescript/src/components/Radio.d.ts.map +1 -1
  123. package/lib/typescript/src/components/Screen.d.ts +28 -5
  124. package/lib/typescript/src/components/Screen.d.ts.map +1 -1
  125. package/lib/typescript/src/components/Skeleton.d.ts +1 -1
  126. package/lib/typescript/src/components/Skeleton.d.ts.map +1 -1
  127. package/lib/typescript/src/components/Surface.d.ts +1 -1
  128. package/lib/typescript/src/components/Surface.d.ts.map +1 -1
  129. package/lib/typescript/src/components/TextField.d.ts +11 -4
  130. package/lib/typescript/src/components/TextField.d.ts.map +1 -1
  131. package/lib/typescript/src/components/Toast.d.ts +10 -3
  132. package/lib/typescript/src/components/Toast.d.ts.map +1 -1
  133. package/lib/typescript/src/components/Toggle.d.ts +3 -2
  134. package/lib/typescript/src/components/Toggle.d.ts.map +1 -1
  135. package/lib/typescript/src/components/action-sheet.styles.d.ts +1 -1
  136. package/lib/typescript/src/components/action-sheet.styles.d.ts.map +1 -1
  137. package/lib/typescript/src/components/alert.styles.d.ts +14 -14
  138. package/lib/typescript/src/components/alert.styles.d.ts.map +1 -1
  139. package/lib/typescript/src/components/avatar.styles.d.ts +36 -1
  140. package/lib/typescript/src/components/avatar.styles.d.ts.map +1 -1
  141. package/lib/typescript/src/components/bottom-sheet.styles.d.ts +1 -1
  142. package/lib/typescript/src/components/bottom-sheet.styles.d.ts.map +1 -1
  143. package/lib/typescript/src/components/card.styles.d.ts +1 -1
  144. package/lib/typescript/src/components/card.styles.d.ts.map +1 -1
  145. package/lib/typescript/src/components/card.validate.d.ts +1 -1
  146. package/lib/typescript/src/components/card.validate.d.ts.map +1 -1
  147. package/lib/typescript/src/components/checkbox.styles.d.ts +6 -3
  148. package/lib/typescript/src/components/checkbox.styles.d.ts.map +1 -1
  149. package/lib/typescript/src/components/empty-state.styles.d.ts +1 -1
  150. package/lib/typescript/src/components/empty-state.styles.d.ts.map +1 -1
  151. package/lib/typescript/src/components/header.styles.d.ts +1 -1
  152. package/lib/typescript/src/components/header.styles.d.ts.map +1 -1
  153. package/lib/typescript/src/components/image.styles.d.ts +1 -1
  154. package/lib/typescript/src/components/image.styles.d.ts.map +1 -1
  155. package/lib/typescript/src/components/index.d.ts +18 -18
  156. package/lib/typescript/src/components/index.d.ts.map +1 -1
  157. package/lib/typescript/src/components/modal.styles.d.ts +13 -2
  158. package/lib/typescript/src/components/modal.styles.d.ts.map +1 -1
  159. package/lib/typescript/src/components/progress.styles.d.ts +1 -1
  160. package/lib/typescript/src/components/progress.styles.d.ts.map +1 -1
  161. package/lib/typescript/src/components/radio.styles.d.ts +10 -2
  162. package/lib/typescript/src/components/radio.styles.d.ts.map +1 -1
  163. package/lib/typescript/src/components/safe-area-registry.d.ts +47 -11
  164. package/lib/typescript/src/components/safe-area-registry.d.ts.map +1 -1
  165. package/lib/typescript/src/components/screen.styles.d.ts +1 -1
  166. package/lib/typescript/src/components/screen.styles.d.ts.map +1 -1
  167. package/lib/typescript/src/components/skeleton.styles.d.ts +1 -1
  168. package/lib/typescript/src/components/skeleton.styles.d.ts.map +1 -1
  169. package/lib/typescript/src/components/status-colors.d.ts +33 -0
  170. package/lib/typescript/src/components/status-colors.d.ts.map +1 -0
  171. package/lib/typescript/src/components/surface.styles.d.ts +1 -1
  172. package/lib/typescript/src/components/surface.styles.d.ts.map +1 -1
  173. package/lib/typescript/src/components/textfield.styles.d.ts +9 -5
  174. package/lib/typescript/src/components/textfield.styles.d.ts.map +1 -1
  175. package/lib/typescript/src/components/toast.styles.d.ts +34 -14
  176. package/lib/typescript/src/components/toast.styles.d.ts.map +1 -1
  177. package/lib/typescript/src/components/toggle.styles.d.ts +17 -1
  178. package/lib/typescript/src/components/toggle.styles.d.ts.map +1 -1
  179. package/lib/typescript/src/icons/Icon.d.ts +12 -6
  180. package/lib/typescript/src/icons/Icon.d.ts.map +1 -1
  181. package/lib/typescript/src/icons/icon.styles.d.ts +14 -2
  182. package/lib/typescript/src/icons/icon.styles.d.ts.map +1 -1
  183. package/lib/typescript/src/icons/index.d.ts +3 -3
  184. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  185. package/lib/typescript/src/index.d.ts +4 -4
  186. package/lib/typescript/src/index.d.ts.map +1 -1
  187. package/lib/typescript/src/primitives/Button.d.ts +8 -4
  188. package/lib/typescript/src/primitives/Button.d.ts.map +1 -1
  189. package/lib/typescript/src/primitives/Metric.d.ts +1 -1
  190. package/lib/typescript/src/primitives/Metric.d.ts.map +1 -1
  191. package/lib/typescript/src/primitives/Row.d.ts +2 -2
  192. package/lib/typescript/src/primitives/Row.d.ts.map +1 -1
  193. package/lib/typescript/src/primitives/Stack.d.ts +2 -2
  194. package/lib/typescript/src/primitives/Stack.d.ts.map +1 -1
  195. package/lib/typescript/src/primitives/Tag.d.ts +2 -2
  196. package/lib/typescript/src/primitives/Tag.d.ts.map +1 -1
  197. package/lib/typescript/src/primitives/Text.d.ts +20 -6
  198. package/lib/typescript/src/primitives/Text.d.ts.map +1 -1
  199. package/lib/typescript/src/primitives/button.styles.d.ts +44 -7
  200. package/lib/typescript/src/primitives/button.styles.d.ts.map +1 -1
  201. package/lib/typescript/src/primitives/index.d.ts +6 -6
  202. package/lib/typescript/src/primitives/index.d.ts.map +1 -1
  203. package/lib/typescript/src/primitives/metric.styles.d.ts +1 -1
  204. package/lib/typescript/src/primitives/metric.styles.d.ts.map +1 -1
  205. package/lib/typescript/src/primitives/row.styles.d.ts +1 -1
  206. package/lib/typescript/src/primitives/row.styles.d.ts.map +1 -1
  207. package/lib/typescript/src/primitives/stack.styles.d.ts +1 -1
  208. package/lib/typescript/src/primitives/stack.styles.d.ts.map +1 -1
  209. package/lib/typescript/src/primitives/tag.styles.d.ts +34 -1
  210. package/lib/typescript/src/primitives/tag.styles.d.ts.map +1 -1
  211. package/lib/typescript/src/primitives/text.styles.d.ts +2 -4
  212. package/lib/typescript/src/primitives/text.styles.d.ts.map +1 -1
  213. package/lib/typescript/src/safe-area/index.d.ts +19 -5
  214. package/lib/typescript/src/safe-area/index.d.ts.map +1 -1
  215. package/lib/typescript/src/theme/ThemeProvider.d.ts +2 -2
  216. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
  217. package/lib/typescript/src/theme/define-theme.d.ts +15 -2
  218. package/lib/typescript/src/theme/define-theme.d.ts.map +1 -1
  219. package/lib/typescript/src/theme/index.d.ts +14 -14
  220. package/lib/typescript/src/theme/index.d.ts.map +1 -1
  221. package/lib/typescript/src/theme/letter-spacing.d.ts +15 -0
  222. package/lib/typescript/src/theme/letter-spacing.d.ts.map +1 -0
  223. package/lib/typescript/src/theme/line-height.d.ts +10 -0
  224. package/lib/typescript/src/theme/line-height.d.ts.map +1 -1
  225. package/lib/typescript/src/theme/native-theme.d.ts +1 -1
  226. package/lib/typescript/src/theme/native-theme.d.ts.map +1 -1
  227. package/lib/typescript/src/theme/types.d.ts +1 -1
  228. package/package.json +22 -7
  229. package/src/a11y/tap-target.ts +38 -0
  230. package/src/components/ActionSheet.tsx +25 -15
  231. package/src/components/Alert.tsx +37 -10
  232. package/src/components/Avatar.tsx +12 -4
  233. package/src/components/BottomSheet.tsx +16 -13
  234. package/src/components/Card.tsx +9 -8
  235. package/src/components/Checkbox.tsx +12 -9
  236. package/src/components/EmptyState.tsx +7 -6
  237. package/src/components/Header.tsx +4 -4
  238. package/src/components/Image.tsx +9 -7
  239. package/src/components/Modal.tsx +22 -6
  240. package/src/components/Progress.tsx +5 -4
  241. package/src/components/Radio.tsx +11 -6
  242. package/src/components/Screen.tsx +66 -8
  243. package/src/components/Skeleton.tsx +6 -5
  244. package/src/components/Surface.tsx +5 -4
  245. package/src/components/TextField.tsx +25 -7
  246. package/src/components/Toast.tsx +33 -11
  247. package/src/components/Toggle.tsx +15 -6
  248. package/src/components/action-sheet.styles.ts +1 -1
  249. package/src/components/alert.styles.ts +13 -25
  250. package/src/components/avatar.styles.ts +25 -3
  251. package/src/components/bottom-sheet.styles.ts +1 -1
  252. package/src/components/card.styles.ts +1 -1
  253. package/src/components/card.validate.ts +2 -2
  254. package/src/components/checkbox.styles.ts +6 -3
  255. package/src/components/empty-state.styles.ts +1 -1
  256. package/src/components/header.styles.ts +1 -1
  257. package/src/components/image.styles.ts +1 -1
  258. package/src/components/index.ts +18 -18
  259. package/src/components/modal.styles.ts +11 -2
  260. package/src/components/progress.styles.ts +1 -1
  261. package/src/components/radio.styles.ts +11 -2
  262. package/src/components/safe-area-registry.ts +81 -14
  263. package/src/components/screen.styles.ts +1 -1
  264. package/src/components/skeleton.styles.ts +1 -1
  265. package/src/components/status-colors.ts +59 -0
  266. package/src/components/surface.styles.ts +1 -1
  267. package/src/components/textfield.styles.ts +18 -15
  268. package/src/components/toast.styles.ts +32 -25
  269. package/src/components/toggle.styles.ts +21 -1
  270. package/src/icons/Icon.tsx +13 -8
  271. package/src/icons/icon.styles.ts +38 -3
  272. package/src/icons/index.ts +3 -3
  273. package/src/index.ts +4 -4
  274. package/src/primitives/Button.tsx +28 -14
  275. package/src/primitives/Metric.tsx +5 -4
  276. package/src/primitives/Row.tsx +4 -4
  277. package/src/primitives/Stack.tsx +4 -4
  278. package/src/primitives/Tag.tsx +29 -11
  279. package/src/primitives/Text.tsx +28 -11
  280. package/src/primitives/_internal/focus-ring.tsx +1 -1
  281. package/src/primitives/button.styles.ts +63 -10
  282. package/src/primitives/index.ts +6 -6
  283. package/src/primitives/metric.styles.ts +3 -3
  284. package/src/primitives/row.styles.ts +1 -1
  285. package/src/primitives/stack.styles.ts +1 -1
  286. package/src/primitives/tag.styles.ts +43 -4
  287. package/src/primitives/text.styles.ts +7 -12
  288. package/src/safe-area/index.ts +21 -7
  289. package/src/theme/ThemeProvider.tsx +8 -5
  290. package/src/theme/define-theme.ts +15 -2
  291. package/src/theme/index.ts +14 -17
  292. package/src/theme/letter-spacing.ts +17 -0
  293. package/src/theme/line-height.ts +9 -0
  294. package/src/theme/native-theme.ts +2 -2
  295. package/src/theme/types.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","Text","RNText","View","useTheme","CONTRACTS","resolveMetricStyles","jsx","_jsx","jsxs","_jsxs","Metric","value","unit","label","size","align","style","testID","theme","mode","styles","a11yLabel","filter","Boolean","join","accessible","accessibilityLabel","alignItems","children","flexDirection","valueStyle","unitStyle","labelStyle","__contract","metric"],"sourceRoot":"../../../src","sources":["primitives/Metric.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,IAAI,IAAIC,MAAM,EAAEC,IAAI,QAAwC,cAAc;AACnF,SAASC,QAAQ,QAAQ,mBAAU;AACnC,SAASC,SAAS,QAAqB,gCAA6B;AACpE,SAASC,mBAAmB,QAAQ,oBAAiB;;AAEjB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAepC,OAAO,SAASC,MAAMA,CAAC;EACrBC,KAAK;EACLC,IAAI;EACJC,KAAK;EACLC,IAAI,GAAG,IAAI;EACXC,KAAK,GAAG,OAAO;EACfC,KAAK;EACLC;AACW,CAAC,EAAE;EACd,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGhB,QAAQ,CAAC,CAAC;;EAElC;EACA,MAAMiB,MAAM,GAAGrB,OAAO,CAAC,MAAMM,mBAAmB,CAACa,KAAK,EAAEC,IAAI,EAAEL,IAAI,CAAC,EAAE,CAACI,KAAK,EAAEC,IAAI,EAAEL,IAAI,CAAC,CAAC;EAEzF,MAAMO,SAAS,GAAG,CAACV,KAAK,EAAEC,IAAI,EAAEC,KAAK,CAAC,CAACS,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;EAEhE,oBACEf,KAAA,CAACP,IAAI;IACHe,MAAM,EAAEA,MAAO;IACfQ,UAAU;IACVC,kBAAkB,EAAEL,SAAU;IAC9BL,KAAK,EAAE,CAAC;MAAEW,UAAU,EAAEZ,KAAK,KAAK,QAAQ,GAAG,QAAQ,GAAG;IAAa,CAAC,EAAEC,KAAK,CAAE;IAAAY,QAAA,gBAE7EnB,KAAA,CAACP,IAAI;MAACc,KAAK,EAAE;QAAEa,aAAa,EAAE,KAAK;QAAEF,UAAU,EAAE;MAAW,CAAE;MAAAC,QAAA,gBAC5DrB,IAAA,CAACN,MAAM;QAACe,KAAK,EAAEI,MAAM,CAACU,UAAW;QAAAF,QAAA,EAAEjB;MAAK,CAAS,CAAC,EACjDC,IAAI,IAAI,IAAI,iBAAIL,IAAA,CAACN,MAAM;QAACe,KAAK,EAAEI,MAAM,CAACW,SAAU;QAAAH,QAAA,EAAEhB;MAAI,CAAS,CAAC;IAAA,CAC7D,CAAC,EACNC,KAAK,IAAI,IAAI,iBAAIN,IAAA,CAACN,MAAM;MAACe,KAAK,EAAEI,MAAM,CAACY,UAAW;MAAAJ,QAAA,EAAEf;IAAK,CAAS,CAAC;EAAA,CAChE,CAAC;AAEX;;AAEA;AACAH,MAAM,CAACuB,UAAU,GAAG7B,SAAS,CAAC8B,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","Text","RNText","View","useTheme","CONTRACTS","resolveMetricStyles","jsx","_jsx","jsxs","_jsxs","Metric","value","unit","label","size","align","style","testID","theme","mode","styles","a11yLabel","filter","Boolean","join","accessible","accessibilityLabel","alignItems","children","flexDirection","valueStyle","unitStyle","labelStyle","__contract","metric"],"sourceRoot":"../../../src","sources":["primitives/Metric.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,IAAI,IAAIC,MAAM,EAAEC,IAAI,QAAwC,cAAc;AACnF,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,SAAS,QAAqB,gCAAgC;AACvE,SAASC,mBAAmB,QAAQ,oBAAoB;;AAEpB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAepC,OAAO,SAASC,MAAMA,CAAC;EACrBC,KAAK;EACLC,IAAI;EACJC,KAAK;EACLC,IAAI,GAAG,IAAI;EACXC,KAAK,GAAG,OAAO;EACfC,KAAK;EACLC;AACW,CAAC,EAAE;EACd,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGhB,QAAQ,CAAC,CAAC;;EAElC;EACA,MAAMiB,MAAM,GAAGrB,OAAO,CAAC,MAAMM,mBAAmB,CAACa,KAAK,EAAEC,IAAI,EAAEL,IAAI,CAAC,EAAE,CAACI,KAAK,EAAEC,IAAI,EAAEL,IAAI,CAAC,CAAC;EAEzF,MAAMO,SAAS,GAAG,CAACV,KAAK,EAAEC,IAAI,EAAEC,KAAK,CAAC,CAACS,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;EAEhE,oBACEf,KAAA,CAACP,IAAI;IACHe,MAAM,EAAEA,MAAO;IACfQ,UAAU;IACVC,kBAAkB,EAAEL,SAAU;IAC9BL,KAAK,EAAE,CAAC;MAAEW,UAAU,EAAEZ,KAAK,KAAK,QAAQ,GAAG,QAAQ,GAAG;IAAa,CAAC,EAAEC,KAAK,CAAE;IAAAY,QAAA,gBAE7EnB,KAAA,CAACP,IAAI;MAACc,KAAK,EAAE;QAAEa,aAAa,EAAE,KAAK;QAAEF,UAAU,EAAE;MAAW,CAAE;MAAAC,QAAA,gBAC5DrB,IAAA,CAACN,MAAM;QAACe,KAAK,EAAEI,MAAM,CAACU,UAAW;QAAAF,QAAA,EAAEjB;MAAK,CAAS,CAAC,EACjDC,IAAI,IAAI,IAAI,iBAAIL,IAAA,CAACN,MAAM;QAACe,KAAK,EAAEI,MAAM,CAACW,SAAU;QAAAH,QAAA,EAAEhB;MAAI,CAAS,CAAC;IAAA,CAC7D,CAAC,EACNC,KAAK,IAAI,IAAI,iBAAIN,IAAA,CAACN,MAAM;MAACe,KAAK,EAAEI,MAAM,CAACY,UAAW;MAAAJ,QAAA,EAAEf;IAAK,CAAS,CAAC;EAAA,CAChE,CAAC;AAEX;;AAEA;AACA;AACAH,MAAM,CAACuB,UAAU,GAAG7B,SAAS,CAAC8B,MAAM","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","View","useTheme","CONTRACTS","resolveRowStyle","jsx","_jsx","Row","gap","align","justify","wrap","style","testID","children","theme","layout","__contract","row"],"sourceRoot":"../../../src","sources":["primitives/Row.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAwB,OAAO;AAC/C,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,QAAQ,QAAQ,mBAAU;AAEnC,SAASC,SAAS,QAAQ,gCAA6B;AACvD,SAASC,eAAe,QAAuD,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAgB9F,OAAO,SAASC,GAAGA,CAAC;EAClBC,GAAG;EACHC,KAAK,GAAG,QAAQ;EAChBC,OAAO,GAAG,OAAO;EACjBC,IAAI,GAAG,KAAK;EACZC,KAAK;EACLC,MAAM;EACNC;AACQ,CAAC,EAAE;EACX,MAAM;IAAEC;EAAM,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAE5B,MAAMc,MAAM,GAAGhB,OAAO,CACpB,MAAMI,eAAe,CAACW,KAAK,EAAE;IAAEP,GAAG;IAAEC,KAAK;IAAEC,OAAO;IAAEC;EAAK,CAAC,CAAC,EAC3D,CAACI,KAAK,EAAEP,GAAG,EAAEC,KAAK,EAAEC,OAAO,EAAEC,IAAI,CACnC,CAAC;EAED,oBACEL,IAAA,CAACL,IAAI;IAACW,KAAK,EAAE,CAACI,MAAM,EAAEJ,KAAK,CAAE;IAACC,MAAM,EAAEA,MAAO;IAAAC,QAAA,EAC1CA;EAAQ,CACL,CAAC;AAEX;AAEAP,GAAG,CAACU,UAAU,GAAGd,SAAS,CAACe,GAAG","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","View","useTheme","CONTRACTS","resolveRowStyle","jsx","_jsx","Row","gap","align","justify","wrap","style","testID","children","theme","layout","__contract","row"],"sourceRoot":"../../../src","sources":["primitives/Row.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAwB,OAAO;AAC/C,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,QAAQ,QAAQ,mBAAmB;AAE5C,SAASC,SAAS,QAAQ,gCAAgC;AAC1D,SAASC,eAAe,QAAuD,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAgBjG,OAAO,SAASC,GAAGA,CAAC;EAClBC,GAAG;EACHC,KAAK,GAAG,QAAQ;EAChBC,OAAO,GAAG,OAAO;EACjBC,IAAI,GAAG,KAAK;EACZC,KAAK;EACLC,MAAM;EACNC;AACQ,CAAC,EAAE;EACX,MAAM;IAAEC;EAAM,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAE5B,MAAMc,MAAM,GAAGhB,OAAO,CACpB,MAAMI,eAAe,CAACW,KAAK,EAAE;IAAEP,GAAG;IAAEC,KAAK;IAAEC,OAAO;IAAEC;EAAK,CAAC,CAAC,EAC3D,CAACI,KAAK,EAAEP,GAAG,EAAEC,KAAK,EAAEC,OAAO,EAAEC,IAAI,CACnC,CAAC;EAED,oBACEL,IAAA,CAACL,IAAI;IAACW,KAAK,EAAE,CAACI,MAAM,EAAEJ,KAAK,CAAE;IAACC,MAAM,EAAEA,MAAO;IAAAC,QAAA,EAC1CA;EAAQ,CACL,CAAC;AAEX;AAEAP,GAAG,CAACU,UAAU,GAAGd,SAAS,CAACe,GAAG","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","View","useTheme","CONTRACTS","resolveStackStyle","jsx","_jsx","Stack","gap","align","style","testID","children","theme","layout","__contract","stack"],"sourceRoot":"../../../src","sources":["primitives/Stack.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAwB,OAAO;AAC/C,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,QAAQ,QAAQ,mBAAU;AAEnC,SAASC,SAAS,QAAQ,gCAA6B;AACvD,SAASC,iBAAiB,QAA0C,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAYrF,OAAO,SAASC,KAAKA,CAAC;EAAEC,GAAG;EAAEC,KAAK,GAAG,SAAS;EAAEC,KAAK;EAAEC,MAAM;EAAEC;AAAqB,CAAC,EAAE;EACrF,MAAM;IAAEC;EAAM,CAAC,GAAGX,QAAQ,CAAC,CAAC;EAE5B,MAAMY,MAAM,GAAGd,OAAO,CACpB,MAAMI,iBAAiB,CAACS,KAAK,EAAE;IAAEL,GAAG;IAAEC;EAAM,CAAC,CAAC,EAC9C,CAACI,KAAK,EAAEL,GAAG,EAAEC,KAAK,CACpB,CAAC;EAED,oBACEH,IAAA,CAACL,IAAI;IAACS,KAAK,EAAE,CAACI,MAAM,EAAEJ,KAAK,CAAE;IAACC,MAAM,EAAEA,MAAO;IAAAC,QAAA,EAC1CA;EAAQ,CACL,CAAC;AAEX;AAEAL,KAAK,CAACQ,UAAU,GAAGZ,SAAS,CAACa,KAAK","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","View","useTheme","CONTRACTS","resolveStackStyle","jsx","_jsx","Stack","gap","align","style","testID","children","theme","layout","__contract","stack"],"sourceRoot":"../../../src","sources":["primitives/Stack.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAwB,OAAO;AAC/C,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,QAAQ,QAAQ,mBAAmB;AAE5C,SAASC,SAAS,QAAQ,gCAAgC;AAC1D,SAASC,iBAAiB,QAA0C,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAYxF,OAAO,SAASC,KAAKA,CAAC;EAAEC,GAAG;EAAEC,KAAK,GAAG,SAAS;EAAEC,KAAK;EAAEC,MAAM;EAAEC;AAAqB,CAAC,EAAE;EACrF,MAAM;IAAEC;EAAM,CAAC,GAAGX,QAAQ,CAAC,CAAC;EAE5B,MAAMY,MAAM,GAAGd,OAAO,CACpB,MAAMI,iBAAiB,CAACS,KAAK,EAAE;IAAEL,GAAG;IAAEC;EAAM,CAAC,CAAC,EAC9C,CAACI,KAAK,EAAEL,GAAG,EAAEC,KAAK,CACpB,CAAC;EAED,oBACEH,IAAA,CAACL,IAAI;IAACS,KAAK,EAAE,CAACI,MAAM,EAAEJ,KAAK,CAAE;IAACC,MAAM,EAAEA,MAAO;IAAAC,QAAA,EAC1CA;EAAQ,CACL,CAAC;AAEX;AAEAL,KAAK,CAACQ,UAAU,GAAGZ,SAAS,CAACa,KAAK","ignoreList":[]}
@@ -11,8 +11,8 @@
11
11
  * 色・寸法の決定は pure resolver(tag.styles.ts)に分離、recipe との機械照合は
12
12
  * scripts/lib/tag-conformance.test.ts が行う。
13
13
  * - label は Text primitive。filter-chip active の文字色だけ primary.700(SemanticColors 外なので style 上書き)。
14
- * - focus outline は Button(Step8) で Pressable focus handling を共通化してから Tag にも適用する
15
- * (§1 は Phase1 scope だが acceptance 外。今は accessibilityState のみ。Button 実装時に回収)。
14
+ * - focus outline は Button と共通の Pressable focus handling(_internal/focus-ring)を使う
15
+ * (removable / filter-chip の押せる要素に FocusRing を描く)。
16
16
  */
17
17
 
18
18
  import { Pressable, View } from "react-native";
@@ -20,7 +20,7 @@ import { Text } from "./Text.js";
20
20
  import { useTheme } from "../theme/index.js";
21
21
  import { useFocusRing, FocusRing } from "./_internal/focus-ring.js";
22
22
  import { CONTRACTS } from "../contracts/contract-types.js";
23
- import { resolveTagBase, resolveTagVariant } from "./tag.styles.js";
23
+ import { resolveTagBase, resolveTagVariant, TAG_FILTER_CHIP_VERTICAL_HIT_SLOP, TAG_REMOVE_TAP_TARGET } from "./tag.styles.js";
24
24
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
25
  /** 共通形状(px-3 py-1 rounded-full。寸法は resolver、layout はここで足す)。 */
26
26
  function useTagBase() {
@@ -57,6 +57,13 @@ function FilterChipTag(props) {
57
57
  accessibilityRole: "button",
58
58
  accessibilityState: {
59
59
  selected
60
+ }
61
+ // 視覚高さ 34pt(padding 駆動)に縦 hitSlop を足して実効 44pt(A11Y_MIN_TAP_TARGET_44)。
62
+ // 背景と枠を持つので minHeight で伸ばすと見た目が変わる → 当たり判定だけ広げる。
63
+ ,
64
+ hitSlop: {
65
+ top: TAG_FILTER_CHIP_VERTICAL_HIT_SLOP,
66
+ bottom: TAG_FILTER_CHIP_VERTICAL_HIT_SLOP
60
67
  },
61
68
  testID: testID,
62
69
  style: [base, {
@@ -109,10 +116,10 @@ function RemovableTag(props) {
109
116
  onPress: onRemove,
110
117
  accessibilityRole: "button",
111
118
  accessibilityLabel: removeAccessibilityLabel,
112
- hitSlop: 10,
119
+ hitSlop: TAG_REMOVE_TAP_TARGET.hitSlop,
113
120
  style: {
114
- minWidth: 24,
115
- minHeight: 24,
121
+ minWidth: TAG_REMOVE_TAP_TARGET.minWidth,
122
+ minHeight: TAG_REMOVE_TAP_TARGET.minHeight,
116
123
  alignItems: "center",
117
124
  justifyContent: "center"
118
125
  },
@@ -155,6 +162,7 @@ export function Tag(props) {
155
162
  });
156
163
  }
157
164
 
158
- // Phase 2 conformance test 用の contract メタ(§2 A-3)。
165
+ // conformance test 用の contract メタ(§2 A-3)。scripts/lib/conformance.test.ts が
166
+ // 「この宣言が正しい contract を指しているか」を静的スキャンで照合する。
159
167
  Tag.__contract = CONTRACTS.tag;
160
168
  //# sourceMappingURL=Tag.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Pressable","View","Text","useTheme","useFocusRing","FocusRing","CONTRACTS","resolveTagBase","resolveTagVariant","jsx","_jsx","jsxs","_jsxs","useTagBase","theme","flexDirection","alignItems","FilterChipTag","props","mode","base","focused","focusHandlers","label","selected","onToggle","style","testID","v","onPress","accessibilityRole","accessibilityState","backgroundColor","bg","borderWidth","borderColor","border","children","variant","font","color","textColor","undefined","visible","radius","full","RemovableTag","onRemove","removeAccessibilityLabel","accessibilityLabel","hitSlop","minWidth","minHeight","justifyContent","Tag","__contract","tag"],"sourceRoot":"../../../src","sources":["primitives/Tag.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Pressable","View","Text","useTheme","useFocusRing","FocusRing","CONTRACTS","resolveTagBase","resolveTagVariant","TAG_FILTER_CHIP_VERTICAL_HIT_SLOP","TAG_REMOVE_TAP_TARGET","jsx","_jsx","jsxs","_jsxs","useTagBase","theme","flexDirection","alignItems","FilterChipTag","props","mode","base","focused","focusHandlers","label","selected","onToggle","style","testID","v","onPress","accessibilityRole","accessibilityState","hitSlop","top","bottom","backgroundColor","bg","borderWidth","borderColor","border","children","variant","font","color","textColor","undefined","visible","radius","full","RemovableTag","onRemove","removeAccessibilityLabel","accessibilityLabel","minWidth","minHeight","justifyContent","Tag","__contract","tag"],"sourceRoot":"../../../src","sources":["primitives/Tag.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,15 +8,18 @@
8
8
  * 構造一致している前提で theme.typography.fontSize[variant] を引く。乖離したら型エラーで検知
9
9
  * される(= A-3 conformance の型レベル最低ライン、§2)。
10
10
  * - 色は token キーのみ(生 hex 不可、§5 lint の意味を保つ)。
11
+ * - fontScale 制御(allowFontScaling / maxFontSizeMultiplier)は RN Text へ素通しする。
12
+ * 既定は未指定 = RN 既定(OS の文字サイズ設定に追随)。器が固定寸法の箇所だけ opt-in で絞る。
11
13
  * - letterSpacing は role(heading/body) の ratio を fontSize から pt 換算(text.styles.ts)。
12
14
  * - 形状(fontSize/lineHeight/letterSpacing/fontWeight)は variant/role/weight 依存なので useMemo で
13
- * 分離(B-3 の「形状/色 分離 + 参照安定性」を Phase1 は useMemo で満たす。StyleSheet 事前生成の
14
- * 最適化は Card で実証予定)。色のみ render 時に colors から取る。
15
+ * 分離(B-3 の「形状/色 分離 + 参照安定性」は useMemo で満たす。StyleSheet 事前生成による
16
+ * 最適化はどのコンポーネントでも採っていない)。色のみ render 時に colors から取る。
15
17
  */
16
18
 
17
19
  import { useMemo } from "react";
18
20
  import { StyleSheet, Text as RNText } from "react-native";
19
- import { useTheme, DEFAULT_MIN_LINE_HEIGHT_RATIO, minLineHeightFor } from "../theme/index.js";
21
+ import { useTheme } from "../theme/index.js";
22
+ import { minLineHeightFor, minRatioOf } from "../theme/line-height.js";
20
23
  import { CONTRACTS } from "../contracts/contract-types.js";
21
24
  import { resolveTextShape } from "./text.styles.js";
22
25
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -26,6 +29,8 @@ export function Text({
26
29
  color = "text-default",
27
30
  role = "body",
28
31
  numberOfLines,
32
+ allowFontScaling,
33
+ maxFontSizeMultiplier,
29
34
  style,
30
35
  testID,
31
36
  children
@@ -50,18 +55,21 @@ export function Text({
50
55
  // 「Text の文字サイズは variant が決める」契約とクランプ基準を一致させる。
51
56
  if (typeof flat.fontSize !== "number") flat.fontSize = shape.fontSize;
52
57
  if (flat.lineHeight !== undefined) {
53
- const floor = minLineHeightFor(flat.fontSize ?? 0, theme.typography.minLineHeightRatio ?? DEFAULT_MIN_LINE_HEIGHT_RATIO);
58
+ const floor = minLineHeightFor(flat.fontSize ?? 0, minRatioOf(theme));
54
59
  if (flat.lineHeight < floor) flat.lineHeight = floor;
55
60
  }
56
61
  return /*#__PURE__*/_jsx(RNText, {
57
62
  style: flat,
58
63
  numberOfLines: numberOfLines,
64
+ allowFontScaling: allowFontScaling,
65
+ maxFontSizeMultiplier: maxFontSizeMultiplier,
59
66
  accessibilityRole: role === "heading" ? "header" : undefined,
60
67
  testID: testID,
61
68
  children: children
62
69
  });
63
70
  }
64
71
 
65
- // Phase 2 conformance test 用の contract メタ(§2 A-3)。
72
+ // conformance test 用の contract メタ(§2 A-3)。scripts/lib/conformance.test.ts が
73
+ // 「この宣言が正しい contract を指しているか」を静的スキャンで照合する。
66
74
  Text.__contract = CONTRACTS.text;
67
75
  //# sourceMappingURL=Text.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","StyleSheet","Text","RNText","useTheme","DEFAULT_MIN_LINE_HEIGHT_RATIO","minLineHeightFor","CONTRACTS","resolveTextShape","jsx","_jsx","variant","weight","color","role","numberOfLines","style","testID","children","theme","colors","shape","flat","flatten","fontSize","lineHeight","undefined","floor","typography","minLineHeightRatio","accessibilityRole","__contract","text"],"sourceRoot":"../../../src","sources":["primitives/Text.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAwB,OAAO;AAC/C,SAASC,UAAU,EAAEC,IAAI,IAAIC,MAAM,QAAwC,cAAc;AACzF,SAASC,QAAQ,EAAEC,6BAA6B,EAAEC,gBAAgB,QAAQ,mBAAU;AAEpF,SAASC,SAAS,QAAwB,gCAA6B;AACvE,SAASC,gBAAgB,QAAuB,kBAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAmBhE,OAAO,SAASR,IAAIA,CAAC;EACnBS,OAAO,GAAG,MAAM;EAChBC,MAAM;EACNC,KAAK,GAAG,cAAc;EACtBC,IAAI,GAAG,MAAM;EACbC,aAAa;EACbC,KAAK;EACLC,MAAM;EACNC;AACS,CAAC,EAAE;EACZ,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGhB,QAAQ,CAAC,CAAC;;EAEpC;EACA;EACA,MAAMiB,KAAK,GAAGrB,OAAO,CACnB,MAAMQ,gBAAgB,CAACW,KAAK,EAAER,OAAO,EAAEG,IAAI,EAAEF,MAAM,CAAC,EACpD,CAACO,KAAK,EAAER,OAAO,EAAEG,IAAI,EAAEF,MAAM,CAC/B,CAAC;;EAED;EACA;EACA;EACA,MAAMU,IAAe,GAAGrB,UAAU,CAACsB,OAAO,CAAC,CAACF,KAAK,EAAE;IAAER,KAAK,EAAEO,MAAM,CAACP,KAAK;EAAE,CAAC,EAAEG,KAAK,CAAC,CAAC;EACpF;EACA;EACA;EACA,IAAI,OAAOM,IAAI,CAACE,QAAQ,KAAK,QAAQ,EAAEF,IAAI,CAACE,QAAQ,GAAGH,KAAK,CAACG,QAAQ;EACrE,IAAIF,IAAI,CAACG,UAAU,KAAKC,SAAS,EAAE;IACjC,MAAMC,KAAK,GAAGrB,gBAAgB,CAC5BgB,IAAI,CAACE,QAAQ,IAAI,CAAC,EAClBL,KAAK,CAACS,UAAU,CAACC,kBAAkB,IAAIxB,6BACzC,CAAC;IACD,IAAIiB,IAAI,CAACG,UAAU,GAAGE,KAAK,EAAEL,IAAI,CAACG,UAAU,GAAGE,KAAK;EACtD;EAEA,oBACEjB,IAAA,CAACP,MAAM;IACLa,KAAK,EAAEM,IAAK;IACZP,aAAa,EAAEA,aAAc;IAC7Be,iBAAiB,EAAEhB,IAAI,KAAK,SAAS,GAAG,QAAQ,GAAGY,SAAU;IAC7DT,MAAM,EAAEA,MAAO;IAAAC,QAAA,EAEdA;EAAQ,CACH,CAAC;AAEb;;AAEA;AACAhB,IAAI,CAAC6B,UAAU,GAAGxB,SAAS,CAACyB,IAAI","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","StyleSheet","Text","RNText","useTheme","minLineHeightFor","minRatioOf","CONTRACTS","resolveTextShape","jsx","_jsx","variant","weight","color","role","numberOfLines","allowFontScaling","maxFontSizeMultiplier","style","testID","children","theme","colors","shape","flat","flatten","fontSize","lineHeight","undefined","floor","accessibilityRole","__contract","text"],"sourceRoot":"../../../src","sources":["primitives/Text.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAwB,OAAO;AAC/C,SAASC,UAAU,EAAEC,IAAI,IAAIC,MAAM,QAAwC,cAAc;AACzF,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,gBAAgB,EAAEC,UAAU,QAAQ,yBAAyB;AAEtE,SAASC,SAAS,QAAwB,gCAAgC;AAC1E,SAASC,gBAAgB,QAAuB,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA+BnE,OAAO,SAASR,IAAIA,CAAC;EACnBS,OAAO,GAAG,MAAM;EAChBC,MAAM;EACNC,KAAK,GAAG,cAAc;EACtBC,IAAI,GAAG,MAAM;EACbC,aAAa;EACbC,gBAAgB;EAChBC,qBAAqB;EACrBC,KAAK;EACLC,MAAM;EACNC;AACS,CAAC,EAAE;EACZ,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGlB,QAAQ,CAAC,CAAC;;EAEpC;EACA;EACA,MAAMmB,KAAK,GAAGvB,OAAO,CACnB,MAAMQ,gBAAgB,CAACa,KAAK,EAAEV,OAAO,EAAEG,IAAI,EAAEF,MAAM,CAAC,EACpD,CAACS,KAAK,EAAEV,OAAO,EAAEG,IAAI,EAAEF,MAAM,CAC/B,CAAC;;EAED;EACA;EACA;EACA,MAAMY,IAAe,GAAGvB,UAAU,CAACwB,OAAO,CAAC,CAACF,KAAK,EAAE;IAAEV,KAAK,EAAES,MAAM,CAACT,KAAK;EAAE,CAAC,EAAEK,KAAK,CAAC,CAAC;EACpF;EACA;EACA;EACA,IAAI,OAAOM,IAAI,CAACE,QAAQ,KAAK,QAAQ,EAAEF,IAAI,CAACE,QAAQ,GAAGH,KAAK,CAACG,QAAQ;EACrE,IAAIF,IAAI,CAACG,UAAU,KAAKC,SAAS,EAAE;IACjC,MAAMC,KAAK,GAAGxB,gBAAgB,CAACmB,IAAI,CAACE,QAAQ,IAAI,CAAC,EAAEpB,UAAU,CAACe,KAAK,CAAC,CAAC;IACrE,IAAIG,IAAI,CAACG,UAAU,GAAGE,KAAK,EAAEL,IAAI,CAACG,UAAU,GAAGE,KAAK;EACtD;EAEA,oBACEnB,IAAA,CAACP,MAAM;IACLe,KAAK,EAAEM,IAAK;IACZT,aAAa,EAAEA,aAAc;IAC7BC,gBAAgB,EAAEA,gBAAiB;IACnCC,qBAAqB,EAAEA,qBAAsB;IAC7Ca,iBAAiB,EAAEhB,IAAI,KAAK,SAAS,GAAG,QAAQ,GAAGc,SAAU;IAC7DT,MAAM,EAAEA,MAAO;IAAAC,QAAA,EAEdA;EAAQ,CACH,CAAC;AAEb;;AAEA;AACA;AACAlB,IAAI,CAAC6B,UAAU,GAAGxB,SAAS,CAACyB,IAAI","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useState","View","useTheme","jsx","_jsx","useFocusRing","focused","setFocused","focusHandlers","onFocus","onBlur","INSET","FocusRing","visible","radius","theme","pointerEvents","style","position","top","left","right","bottom","borderWidth","borderColor","color","primary","borderRadius"],"sourceRoot":"../../../../src","sources":["primitives/_internal/focus-ring.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,QAAQ,QAAQ,sBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvC,OAAO,SAASC,YAAYA,CAAA,EAAG;EAC7B,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGP,QAAQ,CAAC,KAAK,CAAC;EAC7C,OAAO;IACLM,OAAO;IACPE,aAAa,EAAE;MACbC,OAAO,EAAEA,CAAA,KAAMF,UAAU,CAAC,IAAI,CAAC;MAC/BG,MAAM,EAAEA,CAAA,KAAMH,UAAU,CAAC,KAAK;IAChC;EACF,CAAC;AACH;AAQA,MAAMI,KAAK,GAAG,CAAC;AAEf,OAAO,SAASC,SAASA,CAAC;EAAEC,OAAO;EAAEC;AAAuB,CAAC,EAAE;EAC7D,MAAM;IAAEC;EAAM,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAC5B,IAAI,CAACW,OAAO,EAAE,OAAO,IAAI;EACzB,oBACET,IAAA,CAACH,IAAI;IACHe,aAAa,EAAC,MAAM;IACpBC,KAAK,EAAE;MACLC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAACR,KAAK;MACXS,IAAI,EAAE,CAACT,KAAK;MACZU,KAAK,EAAE,CAACV,KAAK;MACbW,MAAM,EAAE,CAACX,KAAK;MACdY,WAAW,EAAE,CAAC;MACdC,WAAW,EAAET,KAAK,CAACU,KAAK,CAACC,OAAO,CAAC,KAAK,CAAC;MACvCC,YAAY,EAAEb,MAAM,GAAGH;IACzB;EAAE,CACH,CAAC;AAEN","ignoreList":[]}
1
+ {"version":3,"names":["useState","View","useTheme","jsx","_jsx","useFocusRing","focused","setFocused","focusHandlers","onFocus","onBlur","INSET","FocusRing","visible","radius","theme","pointerEvents","style","position","top","left","right","bottom","borderWidth","borderColor","color","primary","borderRadius"],"sourceRoot":"../../../../src","sources":["primitives/_internal/focus-ring.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,QAAQ,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhD,OAAO,SAASC,YAAYA,CAAA,EAAG;EAC7B,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGP,QAAQ,CAAC,KAAK,CAAC;EAC7C,OAAO;IACLM,OAAO;IACPE,aAAa,EAAE;MACbC,OAAO,EAAEA,CAAA,KAAMF,UAAU,CAAC,IAAI,CAAC;MAC/BG,MAAM,EAAEA,CAAA,KAAMH,UAAU,CAAC,KAAK;IAChC;EACF,CAAC;AACH;AAQA,MAAMI,KAAK,GAAG,CAAC;AAEf,OAAO,SAASC,SAASA,CAAC;EAAEC,OAAO;EAAEC;AAAuB,CAAC,EAAE;EAC7D,MAAM;IAAEC;EAAM,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAC5B,IAAI,CAACW,OAAO,EAAE,OAAO,IAAI;EACzB,oBACET,IAAA,CAACH,IAAI;IACHe,aAAa,EAAC,MAAM;IACpBC,KAAK,EAAE;MACLC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAACR,KAAK;MACXS,IAAI,EAAE,CAACT,KAAK;MACZU,KAAK,EAAE,CAACV,KAAK;MACbW,MAAM,EAAE,CAACX,KAAK;MACdY,WAAW,EAAE,CAAC;MACdC,WAAW,EAAET,KAAK,CAACU,KAAK,CAACC,OAAO,CAAC,KAAK,CAAC;MACvCC,YAAY,EAAEb,MAAM,GAAGH;IACzB;EAAE,CACH,CAAC;AAEN","ignoreList":[]}
@@ -1,41 +1,91 @@
1
1
  "use strict";
2
2
 
3
3
  /**
4
- * button.styles — Button の pure style resolver(P4 conformance 対応で Button.tsx から分離)。
4
+ * button.styles — Button の pure style resolver(styleRefs conformance 対応で Button.tsx から分離)。
5
5
  *
6
6
  * react-native を import しない純粋モジュールにすることで node テスト(tsx --test)から
7
7
  * 直接実行できる。recipes/app/button.recipe.json(melta-contracts の styleRefs)との
8
- * 機械照合は scripts/lib/recipe-conformance.test.ts が行う。
8
+ * 機械照合は scripts/lib/recipe-conformance.test.ts が行う(層B)。
9
+ *
10
+ * ⚠️ このファイルは resolver 機構の**最初の実装**で、戻り値が slot 単位に揃っていない
11
+ * (色だけを返し、寸法は component 側で組む)。現行の書き方は AGENTS.md「style resolver の規約」
12
+ * を参照すること — 新規 / 改修は alert.styles.ts・textfield.styles.ts の形に寄せる。
9
13
  */
10
14
 
11
- /** size → height / 横 padding / label fontSize / icon box(contract sizes/iconButton と整合)。 */
12
- export const SIZE_SPEC = {
15
+ /**
16
+ * size → 最小高さ / 横 padding / label fontSize / icon box(contract sizes/iconButton と整合)。
17
+ *
18
+ * `minHeight`(`height` ではない)なのは fontScale 対策。label は Text primitive の
19
+ * lineHeight(base = 36pt)で伸びるため、height 固定だと fontScale 1.12x あたりから
20
+ * medium(40pt)で文字がクリップする。recipe 側も 0.7.0 で `minHeight` に変わっている。
21
+ * iconOnly だけは正方形を保つため width/height 固定のまま(recipe の iconOnlyWidth/iconOnlyHeight)。
22
+ */
23
+ export const BUTTON_SIZE_SPEC = {
13
24
  small: {
14
- height: 32,
25
+ minHeight: 32,
15
26
  px: "3",
16
27
  font: "sm",
17
28
  iconBox: 32
18
29
  },
19
30
  medium: {
20
- height: 40,
31
+ minHeight: 40,
21
32
  px: "4",
22
33
  font: "base",
23
34
  iconBox: 40
24
35
  },
25
36
  large: {
26
- height: 48,
37
+ minHeight: 48,
27
38
  px: "6",
28
39
  font: "base",
29
40
  iconBox: 48
30
41
  }
31
42
  };
32
43
 
44
+ /**
45
+ * size → 縦方向の片側 hitSlop(実効タップ標的 44pt 確保。A11Y_MIN_TAP_TARGET_44)。
46
+ *
47
+ * 視覚寸法は据え置き、当たり判定だけを広げる:
48
+ * small 32 + 6*2 = 44 / medium 40 + 2*2 = 44 / large 48(既に 44 以上なので 0)
49
+ *
50
+ * ⚠️ literal で持つ(BUTTON_SIZE_SPEC から自動導出しない)。導出にすると視覚寸法を変えたときに
51
+ * hitSlop が黙って追随してしまい、conformance が構造的に fail-open になる。
52
+ */
53
+ export const BUTTON_VERTICAL_HIT_SLOP = {
54
+ small: 6,
55
+ medium: 2,
56
+ large: 0
57
+ };
58
+
59
+ /** Pressable の hitSlop(RN の Insets)。 */
60
+
61
+ /**
62
+ * size / iconOnly → Pressable に渡す hitSlop。0 のときは undefined(prop を付けない)。
63
+ *
64
+ * - labeled: **縦だけ**。横は付けない — Row の gap 0 で隣接した Button 同士の当たり判定が
65
+ * 重なって押し違いが起きるため(横方向は padding で既に広い)。
66
+ * - iconOnly: 幅も 32/40 と狭い正方形なので**横にも同値**を付ける(左右の隣接は
67
+ * iconOnly ボタンを gap 0 で並べない前提。並べる場合は消費者側で gap を取る)。
68
+ */
69
+ export function resolveButtonHitSlop(size, iconOnly) {
70
+ const slop = BUTTON_VERTICAL_HIT_SLOP[size];
71
+ if (slop === 0) return undefined;
72
+ return iconOnly ? {
73
+ top: slop,
74
+ bottom: slop,
75
+ left: slop,
76
+ right: slop
77
+ } : {
78
+ top: slop,
79
+ bottom: slop
80
+ };
81
+ }
82
+
33
83
  /**
34
84
  * variant → 色解決(button.contract tokenRefs の 1:1 写像)。
35
85
  * 文字色は variant により semantic 外(primary.500 等)もあるため hex 文字列で返し、
36
86
  * Text の style で color 上書きする(Text の color prop は SemanticColors キー限定のため)。
37
87
  */
38
- export function resolveVariant(theme, mode, variant) {
88
+ export function resolveButtonColors(theme, mode, variant) {
39
89
  const c = theme.color;
40
90
  const sem = c.semantic[mode];
41
91
  switch (variant) {
@@ -1 +1 @@
1
- {"version":3,"names":["SIZE_SPEC","small","height","px","font","iconBox","medium","large","resolveVariant","theme","mode","variant","c","color","sem","semantic","bg","primary","pressedBg","textColor","border","status","danger","base","textLight"],"sourceRoot":"../../../src","sources":["primitives/button.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;AACA,OAAO,MAAMA,SAGZ,GAAG;EACFC,KAAK,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEC,EAAE,EAAE,GAAG;IAAEC,IAAI,EAAE,IAAI;IAAEC,OAAO,EAAE;EAAG,CAAC;EACvDC,MAAM,EAAE;IAAEJ,MAAM,EAAE,EAAE;IAAEC,EAAE,EAAE,GAAG;IAAEC,IAAI,EAAE,MAAM;IAAEC,OAAO,EAAE;EAAG,CAAC;EAC1DE,KAAK,EAAE;IAAEL,MAAM,EAAE,EAAE;IAAEC,EAAE,EAAE,GAAG;IAAEC,IAAI,EAAE,MAAM;IAAEC,OAAO,EAAE;EAAG;AAC1D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,cAAcA,CAC5BC,KAAkB,EAClBC,IAAe,EACfC,OAAsB,EACmD;EACzE,MAAMC,CAAC,GAAGH,KAAK,CAACI,KAAK;EACrB,MAAMC,GAAG,GAAGF,CAAC,CAACG,QAAQ,CAACL,IAAI,CAAC;EAC5B,QAAQC,OAAO;IACb,KAAK,WAAW;MACd,OAAO;QAAEK,EAAE,EAAEJ,CAAC,CAACK,OAAO,CAAC,KAAK,CAAC;QAAEC,SAAS,EAAEN,CAAC,CAACK,OAAO,CAAC,KAAK,CAAC;QAAEE,SAAS,EAAEL,GAAG,CAAC,gBAAgB;MAAE,CAAC;IAChG,KAAK,UAAU;MACb,OAAO;QACLE,EAAE,EAAEF,GAAG,CAAC,YAAY,CAAC;QACrBI,SAAS,EAAEJ,GAAG,CAAC,gBAAgB,CAAC;QAChCK,SAAS,EAAEL,GAAG,CAAC,cAAc,CAAC;QAC9BM,MAAM,EAAEN,GAAG,CAAC,gBAAgB;MAC9B,CAAC;IACH,KAAK,eAAe;MAClB,OAAO;QACLE,EAAE,EAAEF,GAAG,CAAC,YAAY,CAAC;QACrBI,SAAS,EAAEN,CAAC,CAACK,OAAO,CAAC,IAAI,CAAC;QAC1BE,SAAS,EAAEP,CAAC,CAACK,OAAO,CAAC,KAAK,CAAC;QAC3BG,MAAM,EAAER,CAAC,CAACK,OAAO,CAAC,KAAK;MACzB,CAAC;IACH,KAAK,SAAS;MACZ,OAAO;QAAED,EAAE,EAAEF,GAAG,CAAC,gBAAgB,CAAC;QAAEI,SAAS,EAAEJ,GAAG,CAAC,gBAAgB,CAAC;QAAEK,SAAS,EAAEL,GAAG,CAAC,cAAc;MAAE,CAAC;IACxG,KAAK,SAAS;MACZ,OAAO;QAAEE,EAAE,EAAEJ,CAAC,CAACK,OAAO,CAAC,IAAI,CAAC;QAAEC,SAAS,EAAEN,CAAC,CAACK,OAAO,CAAC,KAAK,CAAC;QAAEE,SAAS,EAAEP,CAAC,CAACK,OAAO,CAAC,KAAK;MAAE,CAAC;IAC1F,KAAK,QAAQ;MACX,OAAO;QAAED,EAAE,EAAEJ,CAAC,CAACS,MAAM,CAACC,MAAM,CAACC,IAAI;QAAEL,SAAS,EAAEN,CAAC,CAACS,MAAM,CAACC,MAAM,CAACE,SAAS;QAAEL,SAAS,EAAEL,GAAG,CAAC,gBAAgB;MAAE,CAAC;IAC7G,KAAK,QAAQ;MACX,OAAO;QAAEE,EAAE,EAAE,aAAa;QAAEE,SAAS,EAAEJ,GAAG,CAAC,gBAAgB,CAAC;QAAEK,SAAS,EAAEL,GAAG,CAAC,cAAc;MAAE,CAAC;EAClG;AACF","ignoreList":[]}
1
+ {"version":3,"names":["BUTTON_SIZE_SPEC","small","minHeight","px","font","iconBox","medium","large","BUTTON_VERTICAL_HIT_SLOP","resolveButtonHitSlop","size","iconOnly","slop","undefined","top","bottom","left","right","resolveButtonColors","theme","mode","variant","c","color","sem","semantic","bg","primary","pressedBg","textColor","border","status","danger","base","textLight"],"sourceRoot":"../../../src","sources":["primitives/button.styles.ts"],"mappings":"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","ignoreList":[]}
@@ -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":[]}
@@ -9,7 +9,7 @@
9
9
  */
10
10
 
11
11
  // theme index からの runtime import は ThemeProvider → react-native を引くため pure module を直接参照
12
- import { DEFAULT_MIN_LINE_HEIGHT_RATIO, clampLineHeight } from "../theme/line-height.js";
12
+ import { clampLineHeight, minRatioOf } from "../theme/line-height.js";
13
13
  /**
14
14
  * size → value / unit の fontSize token(metric.recipe sizes と整合)。
15
15
  * unit は value の1段下の fontSize(ベースライン揃え用)。
@@ -37,7 +37,7 @@ export function resolveMetricStyles(theme, mode, size) {
37
37
  valueStyle: {
38
38
  fontSize: fontSize[font.value].fontSize,
39
39
  // カスタム theme の未クランプ値への防波堤(text.styles.ts と同じ。根拠は theme/line-height.ts)
40
- lineHeight: clampLineHeight(fontSize[font.value].fontSize, fontSize[font.value].lineHeight, theme.typography.minLineHeightRatio ?? DEFAULT_MIN_LINE_HEIGHT_RATIO),
40
+ lineHeight: clampLineHeight(fontSize[font.value].fontSize, fontSize[font.value].lineHeight, minRatioOf(theme)),
41
41
  fontWeight: theme.typography.fontWeight.bold,
42
42
  color: sem["text-heading"],
43
43
  fontVariant: ["tabular-nums"]
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_MIN_LINE_HEIGHT_RATIO","clampLineHeight","METRIC_FONT","sm","value","unit","md","lg","resolveMetricStyles","theme","mode","size","sem","color","semantic","fontSize","typography","font","valueStyle","lineHeight","minLineHeightRatio","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,6BAA6B,EAAEC,eAAe,QAAQ,yBAAsB;AAIrF;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,EAAElB,eAAe,CACzBc,QAAQ,CAACE,IAAI,CAACb,KAAK,CAAC,CAACW,QAAQ,EAC7BA,QAAQ,CAACE,IAAI,CAACb,KAAK,CAAC,CAACe,UAAU,EAC/BV,KAAK,CAACO,UAAU,CAACI,kBAAkB,IAAIpB,6BACzC,CAAC;MACDqB,UAAU,EAAEZ,KAAK,CAACO,UAAU,CAACK,UAAU,CAACC,IAAI;MAC5CT,KAAK,EAAED,GAAG,CAAC,cAAc,CAAC;MAC1BW,WAAW,EAAE,CAAC,cAAc;IAC9B,CAAC;IACDC,SAAS,EAAE;MACTT,QAAQ,EAAEA,QAAQ,CAACE,IAAI,CAACZ,IAAI,CAAC,CAACU,QAAQ;MACtCM,UAAU,EAAEZ,KAAK,CAACO,UAAU,CAACK,UAAU,CAACI,MAAM;MAC9CZ,KAAK,EAAED,GAAG,CAAC,YAAY,CAAC;MACxBc,UAAU,EAAEjB,KAAK,CAACkB,OAAO,CAAC,GAAG;IAC/B,CAAC;IACDC,UAAU,EAAE;MACVb,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":[]}
@@ -9,8 +9,9 @@
9
9
  */
10
10
 
11
11
  // theme index からの runtime import は ThemeProvider → react-native を引くため、
12
- // pure module(line-height.ts)を直接参照する(letterSpacing の式直書きと同じ理由)。
13
- import { DEFAULT_MIN_LINE_HEIGHT_RATIO, clampLineHeight } from "../theme/line-height.js";
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";
14
15
 
15
16
  /** letterSpacing の切替軸(text.recipe description の role prop に対応)。 */
16
17
 
@@ -19,9 +20,7 @@ import { DEFAULT_MIN_LINE_HEIGHT_RATIO, clampLineHeight } from "../theme/line-he
19
20
  /**
20
21
  * variant / role / weight → 形状解決(text.recipe styleRefs の 1:1 写像)。
21
22
  * - fontSize token は複合値(px + lineHeight 比率)。theme 生成時に lineHeight は px 化済み。
22
- * - letterSpacing は em 比率 token のため fontSize × ratio で pt 化する。
23
- * theme の resolveLetterSpacing と同一式だが、theme index 経由の runtime import は
24
- * ThemeProvider → react-native を引くため、pure に保つ目的でここでは式を直書きする。
23
+ * - letterSpacing は em 比率 token のため fontSize × ratio で pt 化する(resolveLetterSpacing)。
25
24
  */
26
25
  export function resolveTextShape(theme, variant, role, weight) {
27
26
  const fs = theme.typography.fontSize[variant];
@@ -29,8 +28,8 @@ export function resolveTextShape(theme, variant, role, weight) {
29
28
  fontSize: fs.fontSize,
30
29
  // 既定 theme は codegen 時点でクランプ済みだが、defineTheme で注入されたカスタム theme の
31
30
  // 値はここが最初の防波堤(機序と下限の根拠は theme/line-height.ts)。
32
- lineHeight: clampLineHeight(fs.fontSize, fs.lineHeight, theme.typography.minLineHeightRatio ?? DEFAULT_MIN_LINE_HEIGHT_RATIO),
33
- letterSpacing: fs.fontSize * theme.typography.letterSpacingRatio[role],
31
+ lineHeight: clampLineHeight(fs.fontSize, fs.lineHeight, minRatioOf(theme)),
32
+ letterSpacing: resolveLetterSpacing(fs.fontSize, theme.typography.letterSpacingRatio[role]),
34
33
  ...(weight ? {
35
34
  fontWeight: theme.typography.fontWeight[weight]
36
35
  } : null)
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_MIN_LINE_HEIGHT_RATIO","clampLineHeight","resolveTextShape","theme","variant","role","weight","fs","typography","fontSize","lineHeight","minLineHeightRatio","letterSpacing","letterSpacingRatio","fontWeight"],"sourceRoot":"../../../src","sources":["primitives/text.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA,SAASA,6BAA6B,EAAEC,eAAe,QAAQ,yBAAsB;;AAErF;;AAGA;;AAQA;AACA;AACA;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,EAAET,eAAe,CACzBM,EAAE,CAACE,QAAQ,EACXF,EAAE,CAACG,UAAU,EACbP,KAAK,CAACK,UAAU,CAACG,kBAAkB,IAAIX,6BACzC,CAAC;IACDY,aAAa,EAAEL,EAAE,CAACE,QAAQ,GAAGN,KAAK,CAACK,UAAU,CAACK,kBAAkB,CAACR,IAAI,CAAC;IACtE,IAAIC,MAAM,GAAG;MAAEQ,UAAU,EAAEX,KAAK,CAACK,UAAU,CAACM,UAAU,CAACR,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":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,aAAa,EAAEC,OAAO,QAAQ,OAAO;AAC9C,SAASC,WAAW,EAAEC,UAAU,EAAEC,IAAI,QAAwB,cAAc;AAC5E,SACEC,iBAAiB,QAGZ,gCAAgC;AACvC,SACEC,eAAe,QAGV,qCAAkC;AAEzC,MAAMC,SAAS,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAoC;;AAEvF;;AAMA,SAASC,eAAeA,CACtBC,KAAqC,EACrCC,MAAkB,EAClBC,KAAwB,EACb;EACX,MAAMC,IAAI,GAAGT,UAAU,CAACU,OAAO,CAACJ,KAAK,CAAC,IAAI,CAAC,CAAC;EAC5C,MAAMK,GAAG,GAAIC,KAAc,IAAqB,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAG,IAAK;;EAEzF;EACA;EACA,MAAMC,KAAK,GAAGd,WAAW,CAACc,KAAK;EAC/B,MAAMC,YAAY,GAAIC,IAAsB,IAC1CJ,GAAG,CAACI,IAAI,KAAK,KAAK,GAAGN,IAAI,CAACO,UAAU,GAAGP,IAAI,CAACQ,aAAa,CAAC,IAC1DN,GAAG,CAACF,IAAI,CAACS,eAAe,CAAC,IACzBP,GAAG,CAACF,IAAI,CAACU,OAAO,CAAC,IACjB,CAAC;EACH,MAAMC,cAAc,GAAIL,IAAsB,IAC5CJ,GAAG,CAACF,IAAI,CAAEM,IAAI,KAAK,MAAM,KAAM,CAACF,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC,CAAC,IACvEF,GAAG,CAACI,IAAI,KAAK,MAAM,GAAGN,IAAI,CAACY,WAAW,GAAGZ,IAAI,CAACa,YAAY,CAAC,IAC3DX,GAAG,CAACF,IAAI,CAACc,iBAAiB,CAAC,IAC3BZ,GAAG,CAACF,IAAI,CAACU,OAAO,CAAC,IACjB,CAAC;;EAEH;EACA;EACA;EACA,MAAMK,GAAc,GAAG,CAAC,CAAC;EACzB,IAAIhB,KAAK,CAACiB,GAAG,CAAC,KAAK,CAAC,EAAED,GAAG,CAACR,UAAU,GAAGF,YAAY,CAAC,KAAK,CAAC,GAAGP,MAAM,CAACmB,GAAG;EACvE,IAAIlB,KAAK,CAACiB,GAAG,CAAC,QAAQ,CAAC,EAAED,GAAG,CAACP,aAAa,GAAGH,YAAY,CAAC,QAAQ,CAAC,GAAGP,MAAM,CAACoB,MAAM;EACnF,IAAInB,KAAK,CAACiB,GAAG,CAAC,MAAM,CAAC,EAAE;IACrBD,GAAG,CAACX,KAAK,GAAG,YAAY,GAAG,cAAc,CAAC,GAAGO,cAAc,CAAC,MAAM,CAAC,GAAGb,MAAM,CAACqB,IAAI;EACnF;EACA,IAAIpB,KAAK,CAACiB,GAAG,CAAC,OAAO,CAAC,EAAE;IACtBD,GAAG,CAACX,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC,GAAGO,cAAc,CAAC,OAAO,CAAC,GAAGb,MAAM,CAACsB,KAAK;EACrF;EACA,OAAOL,GAAG;AACZ;AAEA,SAASM,yBAAyBA,CAACC,aAA8B,EAAoB;EACnF,MAAMvB,KAAK,GAAG,IAAIwB,GAAG,CAACD,aAAa,CAAC;EAEpC,SAASE,mBAAmBA,CAAC;IAAE3B,KAAK;IAAE,GAAG4B;EAA6B,CAAC,EAAE;IACvE,MAAM3B,MAAM,GAAGL,iBAAiB,CAAC,CAAC;IAClC,MAAMiC,YAAY,GAAGrC,OAAO,CAC1B,MAAMO,eAAe,CAACC,KAAK,EAAEC,MAAM,EAAEC,KAAK,CAAC,EAC3C,CAACF,KAAK,EAAEC,MAAM,CAACmB,GAAG,EAAEnB,MAAM,CAACsB,KAAK,EAAEtB,MAAM,CAACoB,MAAM,EAAEpB,MAAM,CAACqB,IAAI,CAC9D,CAAC;IAED,oBAAO/B,aAAa,CAACI,IAAI,EAAE;MAAE,GAAGiC,KAAK;MAAE5B,KAAK,EAAE,CAACA,KAAK,EAAE6B,YAAY;IAAE,CAAC,CAAC;EACxE;EAEAF,mBAAmB,CAACG,WAAW,GAAG,0BAA0B;EAC5D,OAAOH,mBAAmB;AAC5B;;AAEA;AACA,OAAO,SAASI,qBAAqBA,CAACC,OAAqC,GAAG,CAAC,CAAC,EAAQ;EACtFnC,eAAe,CAAC2B,yBAAyB,CAACQ,OAAO,CAAC9B,KAAK,IAAIJ,SAAS,CAAC,CAAC;AACxE","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":"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","ignoreList":[]}