melta-app 0.1.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 (311) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +197 -0
  3. package/THIRD_PARTY_LICENSES.md +198 -0
  4. package/lib/module/components/ActionSheet.js +87 -0
  5. package/lib/module/components/ActionSheet.js.map +1 -0
  6. package/lib/module/components/Alert.js +93 -0
  7. package/lib/module/components/Alert.js.map +1 -0
  8. package/lib/module/components/Avatar.js +93 -0
  9. package/lib/module/components/Avatar.js.map +1 -0
  10. package/lib/module/components/BottomSheet.js +69 -0
  11. package/lib/module/components/BottomSheet.js.map +1 -0
  12. package/lib/module/components/Card.js +93 -0
  13. package/lib/module/components/Card.js.map +1 -0
  14. package/lib/module/components/Checkbox.js +115 -0
  15. package/lib/module/components/Checkbox.js.map +1 -0
  16. package/lib/module/components/EmptyState.js +70 -0
  17. package/lib/module/components/EmptyState.js.map +1 -0
  18. package/lib/module/components/Header.js +53 -0
  19. package/lib/module/components/Header.js.map +1 -0
  20. package/lib/module/components/Image.js +67 -0
  21. package/lib/module/components/Image.js.map +1 -0
  22. package/lib/module/components/Modal.js +95 -0
  23. package/lib/module/components/Modal.js.map +1 -0
  24. package/lib/module/components/Progress.js +113 -0
  25. package/lib/module/components/Progress.js.map +1 -0
  26. package/lib/module/components/Radio.js +134 -0
  27. package/lib/module/components/Radio.js.map +1 -0
  28. package/lib/module/components/Screen.js +57 -0
  29. package/lib/module/components/Screen.js.map +1 -0
  30. package/lib/module/components/Skeleton.js +169 -0
  31. package/lib/module/components/Skeleton.js.map +1 -0
  32. package/lib/module/components/Surface.js +49 -0
  33. package/lib/module/components/Surface.js.map +1 -0
  34. package/lib/module/components/TextField.js +84 -0
  35. package/lib/module/components/TextField.js.map +1 -0
  36. package/lib/module/components/Toast.js +105 -0
  37. package/lib/module/components/Toast.js.map +1 -0
  38. package/lib/module/components/Toggle.js +77 -0
  39. package/lib/module/components/Toggle.js.map +1 -0
  40. package/lib/module/components/action-sheet.styles.js +70 -0
  41. package/lib/module/components/action-sheet.styles.js.map +1 -0
  42. package/lib/module/components/alert.styles.js +80 -0
  43. package/lib/module/components/alert.styles.js.map +1 -0
  44. package/lib/module/components/avatar.styles.js +94 -0
  45. package/lib/module/components/avatar.styles.js.map +1 -0
  46. package/lib/module/components/bottom-sheet.styles.js +55 -0
  47. package/lib/module/components/bottom-sheet.styles.js.map +1 -0
  48. package/lib/module/components/card.styles.js +50 -0
  49. package/lib/module/components/card.styles.js.map +1 -0
  50. package/lib/module/components/checkbox.styles.js +55 -0
  51. package/lib/module/components/checkbox.styles.js.map +1 -0
  52. package/lib/module/components/empty-state.styles.js +60 -0
  53. package/lib/module/components/empty-state.styles.js.map +1 -0
  54. package/lib/module/components/header.styles.js +33 -0
  55. package/lib/module/components/header.styles.js.map +1 -0
  56. package/lib/module/components/image.styles.js +37 -0
  57. package/lib/module/components/image.styles.js.map +1 -0
  58. package/lib/module/components/index.js +26 -0
  59. package/lib/module/components/index.js.map +1 -0
  60. package/lib/module/components/modal.styles.js +68 -0
  61. package/lib/module/components/modal.styles.js.map +1 -0
  62. package/lib/module/components/progress.styles.js +55 -0
  63. package/lib/module/components/progress.styles.js.map +1 -0
  64. package/lib/module/components/radio.styles.js +96 -0
  65. package/lib/module/components/radio.styles.js.map +1 -0
  66. package/lib/module/components/screen.styles.js +38 -0
  67. package/lib/module/components/screen.styles.js.map +1 -0
  68. package/lib/module/components/skeleton.styles.js +114 -0
  69. package/lib/module/components/skeleton.styles.js.map +1 -0
  70. package/lib/module/components/surface.styles.js +37 -0
  71. package/lib/module/components/surface.styles.js.map +1 -0
  72. package/lib/module/components/textfield.styles.js +121 -0
  73. package/lib/module/components/textfield.styles.js.map +1 -0
  74. package/lib/module/components/toast.styles.js +81 -0
  75. package/lib/module/components/toast.styles.js.map +1 -0
  76. package/lib/module/components/toggle.styles.js +69 -0
  77. package/lib/module/components/toggle.styles.js.map +1 -0
  78. package/lib/module/contracts/contract-types.js +192 -0
  79. package/lib/module/contracts/contract-types.js.map +1 -0
  80. package/lib/module/icons/Icon.js +57 -0
  81. package/lib/module/icons/Icon.js.map +1 -0
  82. package/lib/module/icons/glyphs.js +257 -0
  83. package/lib/module/icons/glyphs.js.map +1 -0
  84. package/lib/module/icons/icon.styles.js +28 -0
  85. package/lib/module/icons/icon.styles.js.map +1 -0
  86. package/lib/module/icons/index.js +14 -0
  87. package/lib/module/icons/index.js.map +1 -0
  88. package/lib/module/index.js +20 -0
  89. package/lib/module/index.js.map +1 -0
  90. package/lib/module/package.json +1 -0
  91. package/lib/module/primitives/Button.js +105 -0
  92. package/lib/module/primitives/Button.js.map +1 -0
  93. package/lib/module/primitives/Metric.js +68 -0
  94. package/lib/module/primitives/Metric.js.map +1 -0
  95. package/lib/module/primitives/Row.js +43 -0
  96. package/lib/module/primitives/Row.js.map +1 -0
  97. package/lib/module/primitives/Stack.js +39 -0
  98. package/lib/module/primitives/Stack.js.map +1 -0
  99. package/lib/module/primitives/Tag.js +160 -0
  100. package/lib/module/primitives/Tag.js.map +1 -0
  101. package/lib/module/primitives/Text.js +54 -0
  102. package/lib/module/primitives/Text.js.map +1 -0
  103. package/lib/module/primitives/_internal/focus-ring.js +57 -0
  104. package/lib/module/primitives/_internal/focus-ring.js.map +1 -0
  105. package/lib/module/primitives/button.styles.js +88 -0
  106. package/lib/module/primitives/button.styles.js.map +1 -0
  107. package/lib/module/primitives/index.js +11 -0
  108. package/lib/module/primitives/index.js.map +1 -0
  109. package/lib/module/primitives/metric.styles.js +54 -0
  110. package/lib/module/primitives/metric.styles.js.map +1 -0
  111. package/lib/module/primitives/row.styles.js +53 -0
  112. package/lib/module/primitives/row.styles.js.map +1 -0
  113. package/lib/module/primitives/stack.styles.js +37 -0
  114. package/lib/module/primitives/stack.styles.js.map +1 -0
  115. package/lib/module/primitives/tag.styles.js +56 -0
  116. package/lib/module/primitives/tag.styles.js.map +1 -0
  117. package/lib/module/primitives/text.styles.js +33 -0
  118. package/lib/module/primitives/text.styles.js.map +1 -0
  119. package/lib/module/theme/ThemeProvider.js +41 -0
  120. package/lib/module/theme/ThemeProvider.js.map +1 -0
  121. package/lib/module/theme/index.js +19 -0
  122. package/lib/module/theme/index.js.map +1 -0
  123. package/lib/module/theme/native-theme.js +201 -0
  124. package/lib/module/theme/native-theme.js.map +1 -0
  125. package/lib/module/theme/types.js +4 -0
  126. package/lib/module/theme/types.js.map +1 -0
  127. package/lib/typescript/package.json +1 -0
  128. package/lib/typescript/src/components/ActionSheet.d.ts +45 -0
  129. package/lib/typescript/src/components/ActionSheet.d.ts.map +1 -0
  130. package/lib/typescript/src/components/Alert.d.ts +43 -0
  131. package/lib/typescript/src/components/Alert.d.ts.map +1 -0
  132. package/lib/typescript/src/components/Avatar.d.ts +45 -0
  133. package/lib/typescript/src/components/Avatar.d.ts.map +1 -0
  134. package/lib/typescript/src/components/BottomSheet.d.ts +36 -0
  135. package/lib/typescript/src/components/BottomSheet.d.ts.map +1 -0
  136. package/lib/typescript/src/components/Card.d.ts +46 -0
  137. package/lib/typescript/src/components/Card.d.ts.map +1 -0
  138. package/lib/typescript/src/components/Checkbox.d.ts +40 -0
  139. package/lib/typescript/src/components/Checkbox.d.ts.map +1 -0
  140. package/lib/typescript/src/components/EmptyState.d.ts +36 -0
  141. package/lib/typescript/src/components/EmptyState.d.ts.map +1 -0
  142. package/lib/typescript/src/components/Header.d.ts +34 -0
  143. package/lib/typescript/src/components/Header.d.ts.map +1 -0
  144. package/lib/typescript/src/components/Image.d.ts +41 -0
  145. package/lib/typescript/src/components/Image.d.ts.map +1 -0
  146. package/lib/typescript/src/components/Modal.d.ts +46 -0
  147. package/lib/typescript/src/components/Modal.d.ts.map +1 -0
  148. package/lib/typescript/src/components/Progress.d.ts +39 -0
  149. package/lib/typescript/src/components/Progress.d.ts.map +1 -0
  150. package/lib/typescript/src/components/Radio.d.ts +52 -0
  151. package/lib/typescript/src/components/Radio.d.ts.map +1 -0
  152. package/lib/typescript/src/components/Screen.d.ts +42 -0
  153. package/lib/typescript/src/components/Screen.d.ts.map +1 -0
  154. package/lib/typescript/src/components/Skeleton.d.ts +37 -0
  155. package/lib/typescript/src/components/Skeleton.d.ts.map +1 -0
  156. package/lib/typescript/src/components/Surface.d.ts +31 -0
  157. package/lib/typescript/src/components/Surface.d.ts.map +1 -0
  158. package/lib/typescript/src/components/TextField.d.ts +45 -0
  159. package/lib/typescript/src/components/TextField.d.ts.map +1 -0
  160. package/lib/typescript/src/components/Toast.d.ts +45 -0
  161. package/lib/typescript/src/components/Toast.d.ts.map +1 -0
  162. package/lib/typescript/src/components/Toggle.d.ts +39 -0
  163. package/lib/typescript/src/components/Toggle.d.ts.map +1 -0
  164. package/lib/typescript/src/components/action-sheet.styles.d.ts +65 -0
  165. package/lib/typescript/src/components/action-sheet.styles.d.ts.map +1 -0
  166. package/lib/typescript/src/components/alert.styles.d.ts +61 -0
  167. package/lib/typescript/src/components/alert.styles.d.ts.map +1 -0
  168. package/lib/typescript/src/components/avatar.styles.d.ts +60 -0
  169. package/lib/typescript/src/components/avatar.styles.d.ts.map +1 -0
  170. package/lib/typescript/src/components/bottom-sheet.styles.d.ts +50 -0
  171. package/lib/typescript/src/components/bottom-sheet.styles.d.ts.map +1 -0
  172. package/lib/typescript/src/components/card.styles.d.ts +27 -0
  173. package/lib/typescript/src/components/card.styles.d.ts.map +1 -0
  174. package/lib/typescript/src/components/checkbox.styles.d.ts +55 -0
  175. package/lib/typescript/src/components/checkbox.styles.d.ts.map +1 -0
  176. package/lib/typescript/src/components/empty-state.styles.d.ts +58 -0
  177. package/lib/typescript/src/components/empty-state.styles.d.ts.map +1 -0
  178. package/lib/typescript/src/components/header.styles.d.ts +30 -0
  179. package/lib/typescript/src/components/header.styles.d.ts.map +1 -0
  180. package/lib/typescript/src/components/image.styles.d.ts +28 -0
  181. package/lib/typescript/src/components/image.styles.d.ts.map +1 -0
  182. package/lib/typescript/src/components/index.d.ts +23 -0
  183. package/lib/typescript/src/components/index.d.ts.map +1 -0
  184. package/lib/typescript/src/components/modal.styles.d.ts +66 -0
  185. package/lib/typescript/src/components/modal.styles.d.ts.map +1 -0
  186. package/lib/typescript/src/components/progress.styles.d.ts +44 -0
  187. package/lib/typescript/src/components/progress.styles.d.ts.map +1 -0
  188. package/lib/typescript/src/components/radio.styles.d.ts +91 -0
  189. package/lib/typescript/src/components/radio.styles.d.ts.map +1 -0
  190. package/lib/typescript/src/components/screen.styles.d.ts +34 -0
  191. package/lib/typescript/src/components/screen.styles.d.ts.map +1 -0
  192. package/lib/typescript/src/components/skeleton.styles.d.ts +105 -0
  193. package/lib/typescript/src/components/skeleton.styles.d.ts.map +1 -0
  194. package/lib/typescript/src/components/surface.styles.d.ts +31 -0
  195. package/lib/typescript/src/components/surface.styles.d.ts.map +1 -0
  196. package/lib/typescript/src/components/textfield.styles.d.ts +75 -0
  197. package/lib/typescript/src/components/textfield.styles.d.ts.map +1 -0
  198. package/lib/typescript/src/components/toast.styles.d.ts +62 -0
  199. package/lib/typescript/src/components/toast.styles.d.ts.map +1 -0
  200. package/lib/typescript/src/components/toggle.styles.d.ts +53 -0
  201. package/lib/typescript/src/components/toggle.styles.d.ts.map +1 -0
  202. package/lib/typescript/src/contracts/contract-types.d.ts +193 -0
  203. package/lib/typescript/src/contracts/contract-types.d.ts.map +1 -0
  204. package/lib/typescript/src/icons/Icon.d.ts +40 -0
  205. package/lib/typescript/src/icons/Icon.d.ts.map +1 -0
  206. package/lib/typescript/src/icons/glyphs.d.ts +259 -0
  207. package/lib/typescript/src/icons/glyphs.d.ts.map +1 -0
  208. package/lib/typescript/src/icons/icon.styles.d.ts +20 -0
  209. package/lib/typescript/src/icons/icon.styles.d.ts.map +1 -0
  210. package/lib/typescript/src/icons/index.d.ts +12 -0
  211. package/lib/typescript/src/icons/index.d.ts.map +1 -0
  212. package/lib/typescript/src/index.d.ts +12 -0
  213. package/lib/typescript/src/index.d.ts.map +1 -0
  214. package/lib/typescript/src/primitives/Button.d.ts +48 -0
  215. package/lib/typescript/src/primitives/Button.d.ts.map +1 -0
  216. package/lib/typescript/src/primitives/Metric.d.ts +38 -0
  217. package/lib/typescript/src/primitives/Metric.d.ts.map +1 -0
  218. package/lib/typescript/src/primitives/Row.d.ts +37 -0
  219. package/lib/typescript/src/primitives/Row.d.ts.map +1 -0
  220. package/lib/typescript/src/primitives/Stack.d.ts +33 -0
  221. package/lib/typescript/src/primitives/Stack.d.ts.map +1 -0
  222. package/lib/typescript/src/primitives/Tag.d.ts +43 -0
  223. package/lib/typescript/src/primitives/Tag.d.ts.map +1 -0
  224. package/lib/typescript/src/primitives/Text.d.ts +45 -0
  225. package/lib/typescript/src/primitives/Text.d.ts.map +1 -0
  226. package/lib/typescript/src/primitives/_internal/focus-ring.d.ts +31 -0
  227. package/lib/typescript/src/primitives/_internal/focus-ring.d.ts.map +1 -0
  228. package/lib/typescript/src/primitives/button.styles.d.ts +29 -0
  229. package/lib/typescript/src/primitives/button.styles.d.ts.map +1 -0
  230. package/lib/typescript/src/primitives/index.d.ts +8 -0
  231. package/lib/typescript/src/primitives/index.d.ts.map +1 -0
  232. package/lib/typescript/src/primitives/metric.styles.d.ts +43 -0
  233. package/lib/typescript/src/primitives/metric.styles.d.ts.map +1 -0
  234. package/lib/typescript/src/primitives/row.styles.d.ts +50 -0
  235. package/lib/typescript/src/primitives/row.styles.d.ts.map +1 -0
  236. package/lib/typescript/src/primitives/stack.styles.d.ts +34 -0
  237. package/lib/typescript/src/primitives/stack.styles.d.ts.map +1 -0
  238. package/lib/typescript/src/primitives/tag.styles.d.ts +32 -0
  239. package/lib/typescript/src/primitives/tag.styles.d.ts.map +1 -0
  240. package/lib/typescript/src/primitives/text.styles.d.ts +26 -0
  241. package/lib/typescript/src/primitives/text.styles.d.ts.map +1 -0
  242. package/lib/typescript/src/theme/ThemeProvider.d.ts +32 -0
  243. package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -0
  244. package/lib/typescript/src/theme/index.d.ts +15 -0
  245. package/lib/typescript/src/theme/index.d.ts.map +1 -0
  246. package/lib/typescript/src/theme/native-theme.d.ts +3 -0
  247. package/lib/typescript/src/theme/native-theme.d.ts.map +1 -0
  248. package/lib/typescript/src/theme/types.d.ts +121 -0
  249. package/lib/typescript/src/theme/types.d.ts.map +1 -0
  250. package/package.json +120 -0
  251. package/src/components/ActionSheet.tsx +112 -0
  252. package/src/components/Alert.tsx +84 -0
  253. package/src/components/Avatar.tsx +110 -0
  254. package/src/components/BottomSheet.tsx +81 -0
  255. package/src/components/Card.tsx +102 -0
  256. package/src/components/Checkbox.tsx +107 -0
  257. package/src/components/EmptyState.tsx +64 -0
  258. package/src/components/Header.tsx +51 -0
  259. package/src/components/Image.tsx +89 -0
  260. package/src/components/Modal.tsx +113 -0
  261. package/src/components/Progress.tsx +124 -0
  262. package/src/components/Radio.tsx +151 -0
  263. package/src/components/Screen.tsx +62 -0
  264. package/src/components/Skeleton.tsx +154 -0
  265. package/src/components/Surface.tsx +37 -0
  266. package/src/components/TextField.tsx +102 -0
  267. package/src/components/Toast.tsx +103 -0
  268. package/src/components/Toggle.tsx +94 -0
  269. package/src/components/action-sheet.styles.ts +102 -0
  270. package/src/components/alert.styles.ts +115 -0
  271. package/src/components/avatar.styles.ts +110 -0
  272. package/src/components/bottom-sheet.styles.ts +78 -0
  273. package/src/components/card.styles.ts +56 -0
  274. package/src/components/checkbox.styles.ts +83 -0
  275. package/src/components/empty-state.styles.ts +98 -0
  276. package/src/components/header.styles.ts +44 -0
  277. package/src/components/image.styles.ts +36 -0
  278. package/src/components/index.ts +23 -0
  279. package/src/components/modal.styles.ts +106 -0
  280. package/src/components/progress.styles.ts +74 -0
  281. package/src/components/radio.styles.ts +132 -0
  282. package/src/components/screen.styles.ts +44 -0
  283. package/src/components/skeleton.styles.ts +155 -0
  284. package/src/components/surface.styles.ts +50 -0
  285. package/src/components/textfield.styles.ts +135 -0
  286. package/src/components/toast.styles.ts +115 -0
  287. package/src/components/toggle.styles.ts +73 -0
  288. package/src/contracts/contract-types.ts +199 -0
  289. package/src/icons/Icon.tsx +65 -0
  290. package/src/icons/glyphs.ts +54 -0
  291. package/src/icons/icon.styles.ts +37 -0
  292. package/src/icons/index.ts +12 -0
  293. package/src/index.ts +24 -0
  294. package/src/primitives/Button.tsx +114 -0
  295. package/src/primitives/Metric.tsx +67 -0
  296. package/src/primitives/Row.tsx +54 -0
  297. package/src/primitives/Stack.tsx +42 -0
  298. package/src/primitives/Tag.tsx +126 -0
  299. package/src/primitives/Text.tsx +71 -0
  300. package/src/primitives/_internal/focus-ring.tsx +59 -0
  301. package/src/primitives/button.styles.ts +69 -0
  302. package/src/primitives/index.ts +8 -0
  303. package/src/primitives/metric.styles.ts +75 -0
  304. package/src/primitives/row.styles.ts +66 -0
  305. package/src/primitives/stack.styles.ts +47 -0
  306. package/src/primitives/tag.styles.ts +65 -0
  307. package/src/primitives/text.styles.ts +42 -0
  308. package/src/theme/ThemeProvider.tsx +60 -0
  309. package/src/theme/index.ts +18 -0
  310. package/src/theme/native-theme.ts +215 -0
  311. package/src/theme/types.ts +137 -0
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * skeleton.styles — Skeleton の pure style resolver(styleRefs conformance 対応で Skeleton.tsx から分離)。
5
+ *
6
+ * react-native を import しない純粋モジュールにすることで node テスト(tsx --test)から
7
+ * 直接実行できる。recipes/app/skeleton.recipe.json(melta-contracts の styleRefs)との
8
+ * 機械照合は scripts/lib/skeleton-conformance.test.ts が行う。
9
+ */
10
+
11
+ /** contract states(loading = pulse、loaded = Skeleton 自体をアンマウント)。 */
12
+
13
+ /**
14
+ * card variant の Surface 土台へ渡す props(token キー)。
15
+ * component は Surface にこのキーをそのまま渡し、resolver は同じキーから style 値を解決する
16
+ * (component と resolver が別々のキーを持って drift する事故を防ぐ SSOT)。
17
+ */
18
+ export const CARD_SURFACE_SPEC = {
19
+ bg: "bg-surface",
20
+ radius: "lg",
21
+ elevation: "sm",
22
+ padding: "6"
23
+ };
24
+
25
+ /** バー / アバター円の寸法。recipe と同じく token に対応が無い literal(recipe description 参照)。 */
26
+ export const SKELETON_METRICS = {
27
+ /** text variant の行バー高さ */
28
+ textBarHeight: 14,
29
+ /** card variant 内のバー高さ */
30
+ cardBarHeight: 12,
31
+ /** circle variant / card 内アバター円の直径 */
32
+ circleSize: 40
33
+ };
34
+
35
+ /**
36
+ * pulse の opacity 振れ幅(states.loading.animation の opacityFrom/opacityTo)。
37
+ * to は states.loading.style.opacity(= dim 側の見た目)と同値。
38
+ */
39
+ export const PULSE_OPACITY = {
40
+ from: 1,
41
+ to: 0.4
42
+ };
43
+
44
+ /** バー1本分の style(text の行バー / card 内バーで共通の形)。 */
45
+
46
+ /** variant ごとの slot 構成(recipe の style / barStyle と 1:1)。 */
47
+
48
+ /**
49
+ * variant → style 解決(skeleton.recipe styleRefs の 1:1 写像)。
50
+ * バーの色は text / circle / card すべて border-default(contract に忠実、§1 Agent m2)。
51
+ * card の土台は CARD_SURFACE_SPEC のキーから解決する(component 側の Surface props と同源)。
52
+ */
53
+ export function resolveSkeletonVariants(theme, mode) {
54
+ const sem = theme.color.semantic[mode];
55
+ const bar = sem["border-default"];
56
+ return {
57
+ text: {
58
+ style: {
59
+ height: SKELETON_METRICS.textBarHeight,
60
+ borderRadius: theme.radius.sm,
61
+ backgroundColor: bar,
62
+ gap: theme.spacing["2"]
63
+ }
64
+ },
65
+ circle: {
66
+ style: {
67
+ width: SKELETON_METRICS.circleSize,
68
+ height: SKELETON_METRICS.circleSize,
69
+ borderRadius: theme.radius.full,
70
+ backgroundColor: bar
71
+ }
72
+ },
73
+ card: {
74
+ style: {
75
+ backgroundColor: sem[CARD_SURFACE_SPEC.bg],
76
+ borderRadius: theme.radius[CARD_SURFACE_SPEC.radius],
77
+ borderWidth: 1,
78
+ borderColor: bar,
79
+ padding: theme.spacing[CARD_SURFACE_SPEC.padding],
80
+ elevation: theme.elevation[CARD_SURFACE_SPEC.elevation]
81
+ },
82
+ barStyle: {
83
+ height: SKELETON_METRICS.cardBarHeight,
84
+ borderRadius: theme.radius.sm,
85
+ backgroundColor: bar
86
+ }
87
+ }
88
+ };
89
+ }
90
+
91
+ /** states ごとの slot 構成(recipe の states.*.style / animation と 1:1)。 */
92
+
93
+ /**
94
+ * states → 値解決。loading の pulse は opacity from↔to を motion.duration.slow で loop
95
+ * (reduce-motion ON 時の完全停止は component 側の責務)。
96
+ */
97
+ export function resolveSkeletonStates(theme) {
98
+ return {
99
+ loading: {
100
+ style: {
101
+ opacity: PULSE_OPACITY.to
102
+ },
103
+ animation: {
104
+ opacityFrom: PULSE_OPACITY.from,
105
+ opacityTo: PULSE_OPACITY.to,
106
+ duration: theme.motion.duration.slow
107
+ }
108
+ },
109
+ loaded: {
110
+ style: {}
111
+ }
112
+ };
113
+ }
114
+ //# sourceMappingURL=skeleton.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CARD_SURFACE_SPEC","bg","radius","elevation","padding","SKELETON_METRICS","textBarHeight","cardBarHeight","circleSize","PULSE_OPACITY","from","to","resolveSkeletonVariants","theme","mode","sem","color","semantic","bar","text","style","height","borderRadius","sm","backgroundColor","gap","spacing","circle","width","full","card","borderWidth","borderColor","barStyle","resolveSkeletonStates","loading","opacity","animation","opacityFrom","opacityTo","duration","motion","slow","loaded"],"sourceRoot":"../../../src","sources":["components/skeleton.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAaA;;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,iBAAiB,GAAG;EAC/BC,EAAE,EAAE,YAAY;EAChBC,MAAM,EAAE,IAAI;EACZC,SAAS,EAAE,IAAI;EACfC,OAAO,EAAE;AACX,CAKC;;AAED;AACA,OAAO,MAAMC,gBAAgB,GAAG;EAC9B;EACAC,aAAa,EAAE,EAAE;EACjB;EACAC,aAAa,EAAE,EAAE;EACjB;EACAC,UAAU,EAAE;AACd,CAAU;;AAEV;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAG;EAAEC,IAAI,EAAE,CAAC;EAAEC,EAAE,EAAE;AAAI,CAAU;;AAE1D;;AAOA;;AAqBA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CAACC,KAAkB,EAAEC,IAAe,EAAyB;EAClG,MAAMC,GAAG,GAAGF,KAAK,CAACG,KAAK,CAACC,QAAQ,CAACH,IAAI,CAAC;EACtC,MAAMI,GAAG,GAAGH,GAAG,CAAC,gBAAgB,CAAC;EACjC,OAAO;IACLI,IAAI,EAAE;MACJC,KAAK,EAAE;QACLC,MAAM,EAAEhB,gBAAgB,CAACC,aAAa;QACtCgB,YAAY,EAAET,KAAK,CAACX,MAAM,CAACqB,EAAE;QAC7BC,eAAe,EAAEN,GAAG;QACpBO,GAAG,EAAEZ,KAAK,CAACa,OAAO,CAAC,GAAG;MACxB;IACF,CAAC;IACDC,MAAM,EAAE;MACNP,KAAK,EAAE;QACLQ,KAAK,EAAEvB,gBAAgB,CAACG,UAAU;QAClCa,MAAM,EAAEhB,gBAAgB,CAACG,UAAU;QACnCc,YAAY,EAAET,KAAK,CAACX,MAAM,CAAC2B,IAAI;QAC/BL,eAAe,EAAEN;MACnB;IACF,CAAC;IACDY,IAAI,EAAE;MACJV,KAAK,EAAE;QACLI,eAAe,EAAET,GAAG,CAACf,iBAAiB,CAACC,EAAE,CAAC;QAC1CqB,YAAY,EAAET,KAAK,CAACX,MAAM,CAACF,iBAAiB,CAACE,MAAM,CAAC;QACpD6B,WAAW,EAAE,CAAC;QACdC,WAAW,EAAEd,GAAG;QAChBd,OAAO,EAAES,KAAK,CAACa,OAAO,CAAC1B,iBAAiB,CAACI,OAAO,CAAC;QACjDD,SAAS,EAAEU,KAAK,CAACV,SAAS,CAACH,iBAAiB,CAACG,SAAS;MACxD,CAAC;MACD8B,QAAQ,EAAE;QACRZ,MAAM,EAAEhB,gBAAgB,CAACE,aAAa;QACtCe,YAAY,EAAET,KAAK,CAACX,MAAM,CAACqB,EAAE;QAC7BC,eAAe,EAAEN;MACnB;IACF;EACF,CAAC;AACH;;AAEA;;AAYA;AACA;AACA;AACA;AACA,OAAO,SAASgB,qBAAqBA,CAACrB,KAAkB,EAAuB;EAC7E,OAAO;IACLsB,OAAO,EAAE;MACPf,KAAK,EAAE;QAAEgB,OAAO,EAAE3B,aAAa,CAACE;MAAG,CAAC;MACpC0B,SAAS,EAAE;QACTC,WAAW,EAAE7B,aAAa,CAACC,IAAI;QAC/B6B,SAAS,EAAE9B,aAAa,CAACE,EAAE;QAC3B6B,QAAQ,EAAE3B,KAAK,CAAC4B,MAAM,CAACD,QAAQ,CAACE;MAClC;IACF,CAAC;IACDC,MAAM,EAAE;MAAEvB,KAAK,EAAE,CAAC;IAAE;EACtB,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * surface.styles — Surface の pure style resolver(styleRefs conformance 対応で Surface.tsx から分離)。
5
+ *
6
+ * react-native を import しない純粋モジュールにすることで node テスト(tsx --test)から
7
+ * 直接実行できる。recipes/app/surface.recipe.json(melta-contracts の styleRefs)との
8
+ * 機械照合は scripts/lib/surface-conformance.test.ts が行う。
9
+ */
10
+
11
+ /** Surface の見た目 props(すべて token キー限定。デフォルトは recipe default variant と 1:1)。 */
12
+
13
+ /**
14
+ * props → 最終 style 値の解決。
15
+ * base(背景・角丸・padding)と elevation(iOS shadow* + Android elevation の複合値)を
16
+ * 分けて返し、呼び出し側が [base, elevation, style] の順で合成する(従来の適用順を維持)。
17
+ * デフォルト(bg=bg-surface / radius=lg / elevation=none、padding は無し)は
18
+ * recipe(surface.recipe.json)の default variant と一致させている。
19
+ */
20
+ export function resolveSurfaceStyle(theme, mode, {
21
+ bg = "bg-surface",
22
+ radius = "lg",
23
+ elevation = "none",
24
+ padding
25
+ } = {}) {
26
+ return {
27
+ base: {
28
+ backgroundColor: theme.color.semantic[mode][bg],
29
+ borderRadius: theme.radius[radius],
30
+ ...(padding != null ? {
31
+ padding: theme.spacing[padding]
32
+ } : null)
33
+ },
34
+ elevation: theme.elevation[elevation]
35
+ };
36
+ }
37
+ //# sourceMappingURL=surface.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["resolveSurfaceStyle","theme","mode","bg","radius","elevation","padding","base","backgroundColor","color","semantic","borderRadius","spacing"],"sourceRoot":"../../../src","sources":["components/surface.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CACjCC,KAAkB,EAClBC,IAAe,EACf;EAAEC,EAAE,GAAG,YAAY;EAAEC,MAAM,GAAG,IAAI;EAAEC,SAAS,GAAG,MAAM;EAAEC;AAA2B,CAAC,GAAG,CAAC,CAAC,EAIzF;EACA,OAAO;IACLC,IAAI,EAAE;MACJC,eAAe,EAAEP,KAAK,CAACQ,KAAK,CAACC,QAAQ,CAACR,IAAI,CAAC,CAACC,EAAE,CAAC;MAC/CQ,YAAY,EAAEV,KAAK,CAACG,MAAM,CAACA,MAAM,CAAC;MAClC,IAAIE,OAAO,IAAI,IAAI,GAAG;QAAEA,OAAO,EAAEL,KAAK,CAACW,OAAO,CAACN,OAAO;MAAE,CAAC,GAAG,IAAI;IAClE,CAAC;IACDD,SAAS,EAAEJ,KAAK,CAACI,SAAS,CAACA,SAAS;EACtC,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * textfield.styles — TextField の pure style resolver(styleRefs conformance 対応で TextField.tsx から分離)。
5
+ *
6
+ * react-native を import しない純粋モジュールにすることで node テスト(tsx --test)から
7
+ * 直接実行できる。recipes/app/textfield.recipe.json(melta-contracts の styleRefs)との
8
+ * 機械照合は scripts/lib/textfield-conformance.test.ts が行う。
9
+ *
10
+ * - variant は入力の検証状態(default/error/success/disabled = 契約の variant 語彙)。
11
+ * disabled は component 側で prop disabled=true から上書きされる(TextField.tsx 参照)。
12
+ * - label/helperText/errorText は variant 非依存の共通部(recipe は default にのみ載せる規約、
13
+ * 実装は全 variant で同じものを返す)。
14
+ * - status 色(error の bg / errorText の文字色)は mode で subtle-light/dark・text-light/dark を
15
+ * 切り替える(semantic 色を semantic[mode] で引くのと同じ規約。recipe は light 側を encode)。
16
+ * - focus は state 差分(borderColor のみ)。resolveTextFieldFocusStyle で別関数にし、
17
+ * conformance が recipe states.focus と照合する。
18
+ */
19
+
20
+ /** 検証状態(textfield.contract の variant 語彙と 1:1)。 */
21
+
22
+ /**
23
+ * size → height / 横 padding / 入力文字 fontSize(textfield.recipe sizes と整合)。
24
+ * height の literal は recipe の値を直書きし、conformance で recipe と照合する。
25
+ */
26
+ export const TEXTFIELD_SIZE_SPEC = {
27
+ small: {
28
+ height: 36,
29
+ px: "3",
30
+ font: "sm"
31
+ },
32
+ medium: {
33
+ height: 42,
34
+ px: "3",
35
+ font: "base"
36
+ },
37
+ large: {
38
+ height: 48,
39
+ px: "3",
40
+ font: "lg"
41
+ }
42
+ };
43
+
44
+ /** resolver の出力(label → input → helperText / errorText の縦構成の各パート)。 */
45
+
46
+ /**
47
+ * variant / size → 最終 style 値の解決(textfield.recipe styleRefs の 1:1 写像)。
48
+ * デフォルト(variant=default / size=medium)は component の prop デフォルトと一致させている。
49
+ */
50
+ export function resolveTextFieldStyle(theme, mode, {
51
+ variant = "default",
52
+ size = "medium"
53
+ } = {}) {
54
+ const c = theme.color;
55
+ const sem = c.semantic[mode];
56
+ const spec = TEXTFIELD_SIZE_SPEC[size];
57
+
58
+ // variant → border / bg(recipe variants.*.inputStyle の写像)
59
+ const colors = (() => {
60
+ switch (variant) {
61
+ case "default":
62
+ return {
63
+ borderColor: sem["input-border"],
64
+ backgroundColor: sem["input-bg"]
65
+ };
66
+ case "error":
67
+ return {
68
+ borderColor: c.status.danger.base,
69
+ backgroundColor: mode === "light" ? c.status.danger.subtleLight : c.status.danger.subtleDark
70
+ };
71
+ case "success":
72
+ return {
73
+ borderColor: c.status.success.base,
74
+ backgroundColor: sem["input-bg"]
75
+ };
76
+ case "disabled":
77
+ return {
78
+ borderColor: sem["border-default"],
79
+ backgroundColor: sem["bg-page-alt"]
80
+ };
81
+ }
82
+ })();
83
+ return {
84
+ input: {
85
+ height: spec.height,
86
+ paddingHorizontal: theme.spacing[spec.px],
87
+ fontSize: theme.typography.fontSize[spec.font].fontSize,
88
+ borderWidth: 1,
89
+ borderRadius: theme.radius.md,
90
+ color: variant === "disabled" ? sem["text-muted"] : sem["text-default"],
91
+ ...colors
92
+ },
93
+ label: {
94
+ fontSize: theme.typography.fontSize.sm.fontSize,
95
+ fontWeight: theme.typography.fontWeight.medium,
96
+ color: sem["text-heading"],
97
+ marginBottom: theme.spacing["2"]
98
+ },
99
+ helperText: {
100
+ fontSize: theme.typography.fontSize.xs.fontSize,
101
+ color: sem["text-muted"],
102
+ marginTop: theme.spacing["1"]
103
+ },
104
+ errorText: {
105
+ fontSize: theme.typography.fontSize.xs.fontSize,
106
+ color: mode === "light" ? c.status.danger.textLight : c.status.danger.textDark,
107
+ marginTop: theme.spacing["1"]
108
+ }
109
+ };
110
+ }
111
+
112
+ /**
113
+ * focus state の inputStyle 差分(recipe states.focus の写像。borderColor のみ —
114
+ * web の ring は RN 非対応、border 幅を変えるとレイアウトシフトするため色だけ)。
115
+ */
116
+ export function resolveTextFieldFocusStyle(theme) {
117
+ return {
118
+ borderColor: theme.color.primary["500"]
119
+ };
120
+ }
121
+ //# sourceMappingURL=textfield.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TEXTFIELD_SIZE_SPEC","small","height","px","font","medium","large","resolveTextFieldStyle","theme","mode","variant","size","c","color","sem","semantic","spec","colors","borderColor","backgroundColor","status","danger","base","subtleLight","subtleDark","success","input","paddingHorizontal","spacing","fontSize","typography","borderWidth","borderRadius","radius","md","label","sm","fontWeight","marginBottom","helperText","xs","marginTop","errorText","textLight","textDark","resolveTextFieldFocusStyle","primary"],"sourceRoot":"../../../src","sources":["components/textfield.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;;AAIA;AACA;AACA;AACA;AACA,OAAO,MAAMA,mBAGZ,GAAG;EACFC,KAAK,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEC,EAAE,EAAE,GAAG;IAAEC,IAAI,EAAE;EAAK,CAAC;EAC1CC,MAAM,EAAE;IAAEH,MAAM,EAAE,EAAE;IAAEC,EAAE,EAAE,GAAG;IAAEC,IAAI,EAAE;EAAO,CAAC;EAC7CE,KAAK,EAAE;IAAEJ,MAAM,EAAE,EAAE;IAAEC,EAAE,EAAE,GAAG;IAAEC,IAAI,EAAE;EAAK;AAC3C,CAAC;;AAED;;AAuBA;AACA;AACA;AACA;AACA,OAAO,SAASG,qBAAqBA,CACnCC,KAAkB,EAClBC,IAAe,EACf;EACEC,OAAO,GAAG,SAAS;EACnBC,IAAI,GAAG;AAC6C,CAAC,GAAG,CAAC,CAAC,EACpC;EACxB,MAAMC,CAAC,GAAGJ,KAAK,CAACK,KAAK;EACrB,MAAMC,GAAG,GAAGF,CAAC,CAACG,QAAQ,CAACN,IAAI,CAAC;EAC5B,MAAMO,IAAI,GAAGhB,mBAAmB,CAACW,IAAI,CAAC;;EAEtC;EACA,MAAMM,MAAM,GAAG,CAAC,MAAM;IACpB,QAAQP,OAAO;MACb,KAAK,SAAS;QACZ,OAAO;UAAEQ,WAAW,EAAEJ,GAAG,CAAC,cAAc,CAAC;UAAEK,eAAe,EAAEL,GAAG,CAAC,UAAU;QAAE,CAAC;MAC/E,KAAK,OAAO;QACV,OAAO;UACLI,WAAW,EAAEN,CAAC,CAACQ,MAAM,CAACC,MAAM,CAACC,IAAI;UACjCH,eAAe,EACbV,IAAI,KAAK,OAAO,GAAGG,CAAC,CAACQ,MAAM,CAACC,MAAM,CAACE,WAAW,GAAGX,CAAC,CAACQ,MAAM,CAACC,MAAM,CAACG;QACrE,CAAC;MACH,KAAK,SAAS;QACZ,OAAO;UAAEN,WAAW,EAAEN,CAAC,CAACQ,MAAM,CAACK,OAAO,CAACH,IAAI;UAAEH,eAAe,EAAEL,GAAG,CAAC,UAAU;QAAE,CAAC;MACjF,KAAK,UAAU;QACb,OAAO;UAAEI,WAAW,EAAEJ,GAAG,CAAC,gBAAgB,CAAC;UAAEK,eAAe,EAAEL,GAAG,CAAC,aAAa;QAAE,CAAC;IACtF;EACF,CAAC,EAAE,CAAC;EAEJ,OAAO;IACLY,KAAK,EAAE;MACLxB,MAAM,EAAEc,IAAI,CAACd,MAAM;MACnByB,iBAAiB,EAAEnB,KAAK,CAACoB,OAAO,CAACZ,IAAI,CAACb,EAAE,CAAC;MACzC0B,QAAQ,EAAErB,KAAK,CAACsB,UAAU,CAACD,QAAQ,CAACb,IAAI,CAACZ,IAAI,CAAC,CAACyB,QAAQ;MACvDE,WAAW,EAAE,CAAC;MACdC,YAAY,EAAExB,KAAK,CAACyB,MAAM,CAACC,EAAE;MAC7BrB,KAAK,EAAEH,OAAO,KAAK,UAAU,GAAGI,GAAG,CAAC,YAAY,CAAC,GAAGA,GAAG,CAAC,cAAc,CAAC;MACvE,GAAGG;IACL,CAAC;IACDkB,KAAK,EAAE;MACLN,QAAQ,EAAErB,KAAK,CAACsB,UAAU,CAACD,QAAQ,CAACO,EAAE,CAACP,QAAQ;MAC/CQ,UAAU,EAAE7B,KAAK,CAACsB,UAAU,CAACO,UAAU,CAAChC,MAAM;MAC9CQ,KAAK,EAAEC,GAAG,CAAC,cAAc,CAAC;MAC1BwB,YAAY,EAAE9B,KAAK,CAACoB,OAAO,CAAC,GAAG;IACjC,CAAC;IACDW,UAAU,EAAE;MACVV,QAAQ,EAAErB,KAAK,CAACsB,UAAU,CAACD,QAAQ,CAACW,EAAE,CAACX,QAAQ;MAC/ChB,KAAK,EAAEC,GAAG,CAAC,YAAY,CAAC;MACxB2B,SAAS,EAAEjC,KAAK,CAACoB,OAAO,CAAC,GAAG;IAC9B,CAAC;IACDc,SAAS,EAAE;MACTb,QAAQ,EAAErB,KAAK,CAACsB,UAAU,CAACD,QAAQ,CAACW,EAAE,CAACX,QAAQ;MAC/ChB,KAAK,EAAEJ,IAAI,KAAK,OAAO,GAAGG,CAAC,CAACQ,MAAM,CAACC,MAAM,CAACsB,SAAS,GAAG/B,CAAC,CAACQ,MAAM,CAACC,MAAM,CAACuB,QAAQ;MAC9EH,SAAS,EAAEjC,KAAK,CAACoB,OAAO,CAAC,GAAG;IAC9B;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASiB,0BAA0BA,CAACrC,KAAkB,EAA2B;EACtF,OAAO;IAAEU,WAAW,EAAEV,KAAK,CAACK,KAAK,CAACiC,OAAO,CAAC,KAAK;EAAE,CAAC;AACpD","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * toast.styles — Toast の pure style resolver(styleRefs conformance 対応で Toast.tsx から分離)。
5
+ *
6
+ * react-native を import しない純粋モジュールにすることで node テスト(tsx --test)から
7
+ * 直接実行できる。recipes/app/toast.recipe.json(melta-contracts の styleRefs)との
8
+ * 機械照合は scripts/lib/toast-conformance.test.ts が行う。
9
+ *
10
+ * - Alert と同系の bg subtle + text 色に elevation.sm を重ねる(浮いている通知、recipe description)。
11
+ * elevation は iOS shadow* + Android elevation の複合 token のため containerStyle と分けて返し、
12
+ * 呼び出し側が [containerStyle, elevation, style] の順で合成する(Surface と同じ扱い)。
13
+ * - dark mode は status.*.subtleDark / textDark 側を解決する。info variant のみ primary 固定
14
+ * (dark token が無い既知の割り切り、alert と同じ)。
15
+ */
16
+
17
+ /**
18
+ * 構成キー(token キー)。component は Text にこのキーをそのまま渡し、resolver は同じキーから
19
+ * style 値を解決する(component と resolver が別々のキーを持って drift する事故を防ぐ SSOT)。
20
+ */
21
+ export const TOAST_SPEC = {
22
+ padding: "4",
23
+ gap: "3",
24
+ radius: "md",
25
+ elevation: "sm",
26
+ messageFont: "sm",
27
+ messageWeight: "medium"
28
+ };
29
+
30
+ /**
31
+ * slot 構成(toast.recipe 各 variant の containerStyle / messageStyle と 1:1。
32
+ * containerStyle 内の elevation 参照だけは複合 token のため別 slot に分離して返す)。
33
+ */
34
+
35
+ /**
36
+ * variant → bg / text 色の解決。
37
+ * - info: primary.50 / primary.800 固定(mode 非依存)。
38
+ * - success / error / warning: status token(error は status キー上は danger)。
39
+ * light は subtleLight / textLight、dark は subtleDark / textDark(recipe description の写像)。
40
+ */
41
+ export function resolveToastColors(theme, mode, variant) {
42
+ if (variant === "info") {
43
+ return {
44
+ bg: theme.color.primary["50"],
45
+ text: theme.color.primary["800"]
46
+ };
47
+ }
48
+ const status = theme.color.status[variant === "error" ? "danger" : variant];
49
+ return mode === "dark" ? {
50
+ bg: status.subtleDark,
51
+ text: status.textDark
52
+ } : {
53
+ bg: status.subtleLight,
54
+ text: status.textLight
55
+ };
56
+ }
57
+
58
+ /** variant → 全 slot の style 解決(toast.recipe styleRefs の 1:1 写像)。 */
59
+ export function resolveToastStyles(theme, mode, variant) {
60
+ const {
61
+ bg,
62
+ text
63
+ } = resolveToastColors(theme, mode, variant);
64
+ return {
65
+ containerStyle: {
66
+ backgroundColor: bg,
67
+ borderRadius: theme.radius[TOAST_SPEC.radius],
68
+ padding: theme.spacing[TOAST_SPEC.padding],
69
+ flexDirection: "row",
70
+ alignItems: "center",
71
+ gap: theme.spacing[TOAST_SPEC.gap]
72
+ },
73
+ elevation: theme.elevation[TOAST_SPEC.elevation],
74
+ messageStyle: {
75
+ color: text,
76
+ fontSize: theme.typography.fontSize[TOAST_SPEC.messageFont].fontSize,
77
+ fontWeight: theme.typography.fontWeight[TOAST_SPEC.messageWeight]
78
+ }
79
+ };
80
+ }
81
+ //# sourceMappingURL=toast.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TOAST_SPEC","padding","gap","radius","elevation","messageFont","messageWeight","resolveToastColors","theme","mode","variant","bg","color","primary","text","status","subtleDark","textDark","subtleLight","textLight","resolveToastStyles","containerStyle","backgroundColor","borderRadius","spacing","flexDirection","alignItems","messageStyle","fontSize","typography","fontWeight"],"sourceRoot":"../../../src","sources":["components/toast.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA,OAAO,MAAMA,UAAU,GAAG;EACxBC,OAAO,EAAE,GAAG;EACZC,GAAG,EAAE,GAAG;EACRC,MAAM,EAAE,IAAI;EACZC,SAAS,EAAE,IAAI;EACfC,WAAW,EAAE,IAAI;EACjBC,aAAa,EAAE;AACjB,CAOC;;AAED;AACA;AACA;AACA;;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,KAAkB,EAClBC,IAAe,EACfC,OAAqB,EACS;EAC9B,IAAIA,OAAO,KAAK,MAAM,EAAE;IACtB,OAAO;MAAEC,EAAE,EAAEH,KAAK,CAACI,KAAK,CAACC,OAAO,CAAC,IAAI,CAAC;MAAEC,IAAI,EAAEN,KAAK,CAACI,KAAK,CAACC,OAAO,CAAC,KAAK;IAAE,CAAC;EAC5E;EACA,MAAME,MAAM,GAAGP,KAAK,CAACI,KAAK,CAACG,MAAM,CAACL,OAAO,KAAK,OAAO,GAAG,QAAQ,GAAGA,OAAO,CAAC;EAC3E,OAAOD,IAAI,KAAK,MAAM,GAClB;IAAEE,EAAE,EAAEI,MAAM,CAACC,UAAU;IAAEF,IAAI,EAAEC,MAAM,CAACE;EAAS,CAAC,GAChD;IAAEN,EAAE,EAAEI,MAAM,CAACG,WAAW;IAAEJ,IAAI,EAAEC,MAAM,CAACI;EAAU,CAAC;AACxD;;AAEA;AACA,OAAO,SAASC,kBAAkBA,CAChCZ,KAAkB,EAClBC,IAAe,EACfC,OAAqB,EACR;EACb,MAAM;IAAEC,EAAE;IAAEG;EAAK,CAAC,GAAGP,kBAAkB,CAACC,KAAK,EAAEC,IAAI,EAAEC,OAAO,CAAC;EAC7D,OAAO;IACLW,cAAc,EAAE;MACdC,eAAe,EAAEX,EAAE;MACnBY,YAAY,EAAEf,KAAK,CAACL,MAAM,CAACH,UAAU,CAACG,MAAM,CAAC;MAC7CF,OAAO,EAAEO,KAAK,CAACgB,OAAO,CAACxB,UAAU,CAACC,OAAO,CAAC;MAC1CwB,aAAa,EAAE,KAAK;MACpBC,UAAU,EAAE,QAAQ;MACpBxB,GAAG,EAAEM,KAAK,CAACgB,OAAO,CAACxB,UAAU,CAACE,GAAG;IACnC,CAAC;IACDE,SAAS,EAAEI,KAAK,CAACJ,SAAS,CAACJ,UAAU,CAACI,SAAS,CAAC;IAChDuB,YAAY,EAAE;MACZf,KAAK,EAAEE,IAAI;MACXc,QAAQ,EAAEpB,KAAK,CAACqB,UAAU,CAACD,QAAQ,CAAC5B,UAAU,CAACK,WAAW,CAAC,CAACuB,QAAQ;MACpEE,UAAU,EAAEtB,KAAK,CAACqB,UAAU,CAACC,UAAU,CAAC9B,UAAU,CAACM,aAAa;IAClE;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * toggle.styles — Toggle の pure style resolver(styleRefs conformance 対応で Toggle.tsx から分離)。
5
+ *
6
+ * react-native を import しない純粋モジュールにすることで node テスト(tsx --test)から
7
+ * 直接実行できる。recipes/app/toggle.recipe.json(melta-contracts の styleRefs)との
8
+ * 機械照合は scripts/lib/toggle-conformance.test.ts が行う。
9
+ *
10
+ * - variant = variantModeledStates(off/on)。component 側で value:boolean から暗黙決定する。
11
+ * - track の寸法・thumbOffset の literal は recipe の値を直書きし、conformance で照合する。
12
+ * thumb 位置は track に padding=thumbOffset を持たせ、component 側が justifyContent
13
+ * flex-start / flex-end で寄せる(recipe description の「on 時は右端へ」の RN 表現)。
14
+ * - disabled は state 差分(opacity)。TOGGLE_DISABLED_OPACITY を component が適用し、
15
+ * conformance が recipe states.disabled と照合する。
16
+ */
17
+
18
+ /** ON/OFF(toggle.contract の variantModeledStates と 1:1)。 */
19
+
20
+ /**
21
+ * size → track / thumb 寸法(toggle.recipe sizes と整合)。
22
+ * literal は recipe の値を直書きし、conformance で recipe と照合する。
23
+ */
24
+ export const TOGGLE_SIZE_SPEC = {
25
+ medium: {
26
+ trackWidth: 44,
27
+ trackHeight: 24,
28
+ thumbSize: 20,
29
+ thumbOffset: 2
30
+ },
31
+ large: {
32
+ trackWidth: 56,
33
+ trackHeight: 28,
34
+ thumbSize: 24,
35
+ thumbOffset: 2
36
+ }
37
+ };
38
+
39
+ /** disabled state の opacity(recipe states.disabled.style.opacity と照合)。 */
40
+ export const TOGGLE_DISABLED_OPACITY = 0.5;
41
+
42
+ /**
43
+ * variant / size → track + thumb の最終 style 値の解決(toggle.recipe styleRefs の 1:1 写像)。
44
+ * track.padding = thumbOffset(thumb を track 内で浮かせる余白)。
45
+ */
46
+ export function resolveToggleStyle(theme, mode, {
47
+ variant,
48
+ size = "medium"
49
+ }) {
50
+ const c = theme.color;
51
+ const sem = c.semantic[mode];
52
+ const spec = TOGGLE_SIZE_SPEC[size];
53
+ return {
54
+ track: {
55
+ width: spec.trackWidth,
56
+ height: spec.trackHeight,
57
+ backgroundColor: variant === "on" ? c.primary["500"] : sem["border-strong"],
58
+ borderRadius: theme.radius.full,
59
+ padding: spec.thumbOffset
60
+ },
61
+ thumb: {
62
+ width: spec.thumbSize,
63
+ height: spec.thumbSize,
64
+ backgroundColor: sem["bg-surface"],
65
+ borderRadius: theme.radius.full
66
+ }
67
+ };
68
+ }
69
+ //# sourceMappingURL=toggle.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TOGGLE_SIZE_SPEC","medium","trackWidth","trackHeight","thumbSize","thumbOffset","large","TOGGLE_DISABLED_OPACITY","resolveToggleStyle","theme","mode","variant","size","c","color","sem","semantic","spec","track","width","height","backgroundColor","primary","borderRadius","radius","full","padding","thumb"],"sourceRoot":"../../../src","sources":["components/toggle.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;;AAIA;AACA;AACA;AACA;AACA,OAAO,MAAMA,gBAGZ,GAAG;EACFC,MAAM,EAAE;IAAEC,UAAU,EAAE,EAAE;IAAEC,WAAW,EAAE,EAAE;IAAEC,SAAS,EAAE,EAAE;IAAEC,WAAW,EAAE;EAAE,CAAC;EAC1EC,KAAK,EAAE;IAAEJ,UAAU,EAAE,EAAE;IAAEC,WAAW,EAAE,EAAE;IAAEC,SAAS,EAAE,EAAE;IAAEC,WAAW,EAAE;EAAE;AAC1E,CAAC;;AAED;AACA,OAAO,MAAME,uBAAuB,GAAG,GAAG;;AAE1C;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,KAAkB,EAClBC,IAAe,EACf;EAAEC,OAAO;EAAEC,IAAI,GAAG;AAAwD,CAAC,EAU3E;EACA,MAAMC,CAAC,GAAGJ,KAAK,CAACK,KAAK;EACrB,MAAMC,GAAG,GAAGF,CAAC,CAACG,QAAQ,CAACN,IAAI,CAAC;EAC5B,MAAMO,IAAI,GAAGjB,gBAAgB,CAACY,IAAI,CAAC;EACnC,OAAO;IACLM,KAAK,EAAE;MACLC,KAAK,EAAEF,IAAI,CAACf,UAAU;MACtBkB,MAAM,EAAEH,IAAI,CAACd,WAAW;MACxBkB,eAAe,EAAEV,OAAO,KAAK,IAAI,GAAGE,CAAC,CAACS,OAAO,CAAC,KAAK,CAAC,GAAGP,GAAG,CAAC,eAAe,CAAC;MAC3EQ,YAAY,EAAEd,KAAK,CAACe,MAAM,CAACC,IAAI;MAC/BC,OAAO,EAAET,IAAI,CAACZ;IAChB,CAAC;IACDsB,KAAK,EAAE;MACLR,KAAK,EAAEF,IAAI,CAACb,SAAS;MACrBgB,MAAM,EAAEH,IAAI,CAACb,SAAS;MACtBiB,eAAe,EAAEN,GAAG,CAAC,YAAY,CAAC;MAClCQ,YAAY,EAAEd,KAAK,CAACe,MAAM,CAACC;IAC7B;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+
3
+ // ⚠️ 自動生成ファイル — 手で編集しないこと。
4
+ // 生成元: scripts/generate-contract-types.ts(入力 melta-contracts/components/*.contract.json)
5
+ // 各 component の variant/size/state を contract から codegen した型 + 実行時メタ(__contract 用)。
6
+
7
+ /** 各 contract メタの shape(§2 A-3: 生成結果が shape から逸脱したら型で検知する)。 */
8
+
9
+ export const CONTRACTS = {
10
+ text: {
11
+ id: "text",
12
+ version: "0.1.0",
13
+ variants: ["xs", "sm", "base", "lg", "xl", "2xl", "3xl"],
14
+ sizes: [],
15
+ states: ["default"]
16
+ },
17
+ button: {
18
+ id: "button",
19
+ version: "2.0.0",
20
+ variants: ["contained", "outlined", "brand-outline", "neutral", "lighted", "danger", "subtle"],
21
+ sizes: ["small", "medium", "large"],
22
+ states: ["default", "hover", "focus", "disabled", "loading"]
23
+ },
24
+ tag: {
25
+ id: "tag",
26
+ version: "2.0.0",
27
+ variants: ["basic", "removable", "filter-chip"],
28
+ sizes: [],
29
+ states: ["default", "active", "inactive", "hover", "focus"]
30
+ },
31
+ card: {
32
+ id: "card",
33
+ version: "2.0.0",
34
+ variants: ["basic", "media", "action", "link"],
35
+ sizes: [],
36
+ states: ["default", "hover", "focus-within"]
37
+ },
38
+ image: {
39
+ id: "image",
40
+ version: "0.1.0",
41
+ variants: ["default"],
42
+ sizes: [],
43
+ states: ["default", "error"]
44
+ },
45
+ surface: {
46
+ id: "surface",
47
+ version: "0.1.0",
48
+ variants: ["default"],
49
+ sizes: [],
50
+ states: ["default"]
51
+ },
52
+ skeleton: {
53
+ id: "skeleton",
54
+ version: "2.0.0",
55
+ variants: ["text", "card", "circle"],
56
+ sizes: [],
57
+ states: ["default", "loading", "loaded"]
58
+ },
59
+ emptyState: {
60
+ id: "empty-state",
61
+ version: "0.1.0",
62
+ variants: ["default"],
63
+ sizes: [],
64
+ states: ["default"]
65
+ },
66
+ metric: {
67
+ id: "metric",
68
+ version: "0.1.0",
69
+ variants: ["default"],
70
+ sizes: ["sm", "md", "lg"],
71
+ states: ["default"]
72
+ },
73
+ stack: {
74
+ id: "stack",
75
+ version: "0.1.0",
76
+ variants: ["default"],
77
+ sizes: [],
78
+ states: ["default"]
79
+ },
80
+ row: {
81
+ id: "row",
82
+ version: "0.1.0",
83
+ variants: ["default"],
84
+ sizes: [],
85
+ states: ["default"]
86
+ },
87
+ screen: {
88
+ id: "screen",
89
+ version: "0.1.0",
90
+ variants: ["fixed", "scroll"],
91
+ sizes: [],
92
+ states: ["default"]
93
+ },
94
+ header: {
95
+ id: "header",
96
+ version: "0.1.0",
97
+ variants: ["default"],
98
+ sizes: [],
99
+ states: ["default"]
100
+ },
101
+ icon: {
102
+ id: "icon",
103
+ version: "0.1.0",
104
+ variants: ["default"],
105
+ sizes: ["sm", "md", "lg"],
106
+ states: ["default"]
107
+ },
108
+ avatar: {
109
+ id: "avatar",
110
+ version: "2.0.0",
111
+ variants: ["image", "initials", "group"],
112
+ sizes: ["small", "medium", "large"],
113
+ states: ["default", "online", "away", "offline"]
114
+ },
115
+ textfield: {
116
+ id: "textfield",
117
+ version: "2.0.0",
118
+ variants: ["default", "error", "disabled", "success"],
119
+ sizes: ["small", "medium", "large"],
120
+ states: ["default", "hover", "focus", "error", "disabled", "success"]
121
+ },
122
+ toggle: {
123
+ id: "toggle",
124
+ version: "2.0.0",
125
+ variants: ["off", "on"],
126
+ sizes: ["medium", "large"],
127
+ states: ["off", "on", "hover", "focus", "disabled"]
128
+ },
129
+ checkbox: {
130
+ id: "checkbox",
131
+ version: "2.0.0",
132
+ variants: ["default", "disabled", "indeterminate"],
133
+ sizes: [],
134
+ states: ["default", "checked", "unchecked", "indeterminate", "disabled", "error", "focus"]
135
+ },
136
+ radio: {
137
+ id: "radio",
138
+ version: "2.0.0",
139
+ variants: ["vertical", "horizontal", "card-style"],
140
+ sizes: [],
141
+ states: ["default", "selected", "unselected", "disabled", "error", "focus"]
142
+ },
143
+ alert: {
144
+ id: "alert",
145
+ version: "2.0.0",
146
+ variants: ["info", "success", "warning", "error"],
147
+ sizes: [],
148
+ states: ["default", "dismissing"]
149
+ },
150
+ toast: {
151
+ id: "toast",
152
+ version: "2.0.0",
153
+ variants: ["success", "error", "warning", "info"],
154
+ sizes: [],
155
+ states: ["default", "entering", "visible", "dismissing", "hover"]
156
+ },
157
+ progress: {
158
+ id: "progress",
159
+ version: "2.0.0",
160
+ variants: ["primary", "success", "indeterminate"],
161
+ sizes: [],
162
+ states: ["default", "determinate", "indeterminate", "complete"]
163
+ },
164
+ modal: {
165
+ id: "modal",
166
+ version: "2.0.0",
167
+ variants: ["confirmation", "form", "alert"],
168
+ sizes: ["small", "medium", "large"],
169
+ states: ["default", "open", "closing"]
170
+ },
171
+ actionSheet: {
172
+ id: "action-sheet",
173
+ version: "0.1.0",
174
+ variants: ["default"],
175
+ sizes: [],
176
+ states: ["default"]
177
+ },
178
+ bottomSheet: {
179
+ id: "bottom-sheet",
180
+ version: "0.1.0",
181
+ variants: ["default"],
182
+ sizes: [],
183
+ states: ["default"]
184
+ }
185
+ };
186
+
187
+ /** contract の variant キー union(例: VariantOf<"text"> = "xs" | ... | "3xl")。空なら never。 */
188
+
189
+ /** contract の size キー union(空なら never)。 */
190
+
191
+ /** contract の state キー union。 */
192
+ //# sourceMappingURL=contract-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CONTRACTS","text","id","version","variants","sizes","states","button","tag","card","image","surface","skeleton","emptyState","metric","stack","row","screen","header","icon","avatar","textfield","toggle","checkbox","radio","alert","toast","progress","modal","actionSheet","bottomSheet"],"sourceRoot":"../../../src","sources":["contracts/contract-types.ts"],"mappings":"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","ignoreList":[]}