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,57 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Icon — 統一アイコン primitive(Charcoal Icons、単色 tint)。
5
+ * contract: icon(app 先行定義、melta-contracts)。dogfood 不足-2(絵文字・生 Text 代用)の解消。
6
+ *
7
+ * ⚠️ 依存境界: このファイルだけが react-native-svg を import する。melta-app 本体エントリ
8
+ * ("melta-app")は依存ゼロを維持し、Icon は subpath エントリ "melta-app/icons" からだけ
9
+ * export される(optional peerDependency。利用者は `npx expo install react-native-svg` が必要)。
10
+ *
11
+ * - name は glyphs.ts(assets/icons/*.svg からの codegen、commit 済み配布)のキー。
12
+ * - color は semantic token キー限定(default "text-default")、size は contract sizes(sm/md/lg)。
13
+ * - a11y: 意味を持つ場合は accessibilityLabel を渡す。無指定は装飾扱いで a11y ツリーから除外
14
+ * (contract a11y required の両ケース)。
15
+ * - 決定ロジックは pure resolver(icon.styles.ts)に分離 — recipe との機械照合対象。
16
+ */
17
+
18
+ import { useMemo } from "react";
19
+ import Svg, { Path } from "react-native-svg";
20
+ import { useTheme } from "../theme/index.js";
21
+ import { CONTRACTS } from "../contracts/contract-types.js";
22
+ import { resolveIconStyle } from "./icon.styles.js";
23
+ import { GLYPHS } from "./glyphs.js";
24
+ import { jsx as _jsx } from "react/jsx-runtime";
25
+ export function Icon({
26
+ name,
27
+ size = "md",
28
+ color = "text-default",
29
+ accessibilityLabel,
30
+ testID
31
+ }) {
32
+ const {
33
+ theme,
34
+ mode
35
+ } = useTheme();
36
+ const resolved = useMemo(() => resolveIconStyle(theme, mode, size, color), [theme, mode, size, color]);
37
+ const glyph = GLYPHS[name];
38
+ const decorative = accessibilityLabel == null;
39
+ return /*#__PURE__*/_jsx(Svg, {
40
+ width: resolved.width,
41
+ height: resolved.height,
42
+ viewBox: glyph.viewBox,
43
+ accessible: !decorative,
44
+ accessibilityRole: "image",
45
+ accessibilityLabel: accessibilityLabel,
46
+ accessibilityElementsHidden: decorative,
47
+ importantForAccessibility: decorative ? "no-hide-descendants" : "yes",
48
+ testID: testID,
49
+ children: glyph.paths.map((p, i) => /*#__PURE__*/_jsx(Path, {
50
+ d: p.d,
51
+ fillRule: p.fillRule,
52
+ fill: resolved.color
53
+ }, i))
54
+ });
55
+ }
56
+ Icon.__contract = CONTRACTS.icon;
57
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","Svg","Path","useTheme","CONTRACTS","resolveIconStyle","GLYPHS","jsx","_jsx","Icon","name","size","color","accessibilityLabel","testID","theme","mode","resolved","glyph","decorative","width","height","viewBox","accessible","accessibilityRole","accessibilityElementsHidden","importantForAccessibility","children","paths","map","p","i","d","fillRule","fill","__contract","icon"],"sourceRoot":"../../../src","sources":["icons/Icon.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,OAAO,QAAQ,OAAO;AAC/B,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAC5C,SAASC,QAAQ,QAAQ,mBAAU;AAEnC,SAASC,SAAS,QAAqB,gCAA6B;AACpE,SAASC,gBAAgB,QAAwB,kBAAe;AAChE,SAASC,MAAM,QAAuB,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAcjD,OAAO,SAASC,IAAIA,CAAC;EAAEC,IAAI;EAAEC,IAAI,GAAG,IAAI;EAAEC,KAAK,GAAG,cAAc;EAAEC,kBAAkB;EAAEC;AAAkB,CAAC,EAAE;EACzG,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAElC,MAAMc,QAAQ,GAAGjB,OAAO,CACtB,MAAMK,gBAAgB,CAACU,KAAK,EAAEC,IAAI,EAAEL,IAAI,EAAEC,KAAK,CAAC,EAChD,CAACG,KAAK,EAAEC,IAAI,EAAEL,IAAI,EAAEC,KAAK,CAC3B,CAAC;EACD,MAAMM,KAAK,GAAGZ,MAAM,CAACI,IAAI,CAAC;EAC1B,MAAMS,UAAU,GAAGN,kBAAkB,IAAI,IAAI;EAE7C,oBACEL,IAAA,CAACP,GAAG;IACFmB,KAAK,EAAEH,QAAQ,CAACG,KAAM;IACtBC,MAAM,EAAEJ,QAAQ,CAACI,MAAO;IACxBC,OAAO,EAAEJ,KAAK,CAACI,OAAQ;IACvBC,UAAU,EAAE,CAACJ,UAAW;IACxBK,iBAAiB,EAAC,OAAO;IACzBX,kBAAkB,EAAEA,kBAAmB;IACvCY,2BAA2B,EAAEN,UAAW;IACxCO,yBAAyB,EAAEP,UAAU,GAAG,qBAAqB,GAAG,KAAM;IACtEL,MAAM,EAAEA,MAAO;IAAAa,QAAA,EAEdT,KAAK,CAACU,KAAK,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,kBACpBvB,IAAA,CAACN,IAAI;MAAS8B,CAAC,EAAEF,CAAC,CAACE,CAAE;MAACC,QAAQ,EAAEH,CAAC,CAACG,QAAS;MAACC,IAAI,EAAEjB,QAAQ,CAACL;IAAM,GAAtDmB,CAAwD,CACpE;EAAC,CACC,CAAC;AAEV;AAEAtB,IAAI,CAAC0B,UAAU,GAAG/B,SAAS,CAACgC,IAAI","ignoreList":[]}
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+
3
+ // ⚠️ 自動生成ファイル — 手で編集しないこと。
4
+ // 生成元: scripts/generate-icons.ts(入力 assets/icons/*.svg = Charcoal Icons, Apache-2.0)
5
+ // 帰属表示は THIRD_PARTY_LICENSES.md を参照。
6
+
7
+ const GLYPHS_SOURCE = {
8
+ "add": {
9
+ viewBox: "0 0 24 24",
10
+ paths: [{
11
+ d: "M14 10h4a2 2 0 110 4h-4v4a2 2 0 11-4 0v-4H6a2 2 0 110-4h4V6a2 2 0 114 0v4z"
12
+ }]
13
+ },
14
+ "back": {
15
+ viewBox: "0 0 16 16",
16
+ paths: [{
17
+ d: "M9.961 11.043a1 1 0 01-1.414 1.414L4.09 8l4.457-4.457a1 1 0 011.414 1.414L6.918 8l3.043 3.043z"
18
+ }]
19
+ },
20
+ "calendar": {
21
+ viewBox: "0 0 24 24",
22
+ paths: [{
23
+ d: "M8 3a1 1 0 00-2 0v1.126C4.275 4.57 3 6.136 3 8v10a4 4 0 004 4h10a4 4 0 004-4V8a4.002 4.002 0 00-3-3.874V3a1 1 0 10-2 0v1H8V3zm-3 7v8a2 2 0 002 2h10a2 2 0 002-2v-8H5z",
24
+ fillRule: "evenodd"
25
+ }]
26
+ },
27
+ "camera": {
28
+ viewBox: "0 0 24 24",
29
+ paths: [{
30
+ d: "M8.5 13.5a3.5 3.5 0 117 0 3.5 3.5 0 01-7 0z"
31
+ }, {
32
+ d: "M9.295 3.557A2 2 0 0110.68 3h2.742a2 2 0 011.414.586L17.25 6H20a2 2 0 012 2v11a2 2 0 01-2 2H4a2 2 0 01-2-2V8a2 2 0 012-2h2.75l2.545-2.443zM12 8a5.5 5.5 0 100 11 5.5 5.5 0 000-11z",
33
+ fillRule: "evenodd"
34
+ }]
35
+ },
36
+ "check": {
37
+ viewBox: "0 0 24 24",
38
+ paths: [{
39
+ d: "M15.848 7.449a2 2 0 012.804 2.853l-8.664 8.514-4.402-4.402a2 2 0 112.828-2.828l1.598 1.598 5.836-5.735z"
40
+ }]
41
+ },
42
+ "close": {
43
+ viewBox: "0 0 24 24",
44
+ paths: [{
45
+ d: "M8.414 5.586a2 2 0 10-2.828 2.828L9.172 12l-3.586 3.586a2 2 0 102.828 2.828L12 14.828l3.586 3.586a2 2 0 102.828-2.828L14.828 12l3.586-3.586a2 2 0 10-2.828-2.828L12 9.172 8.414 5.586z"
46
+ }]
47
+ },
48
+ "comment": {
49
+ viewBox: "0 0 16 16",
50
+ paths: [{
51
+ d: "M5.4 13.409l-2.64.377.333-2.332a6 6 0 112.306 1.955z"
52
+ }]
53
+ },
54
+ "copy": {
55
+ viewBox: "0 0 24 24",
56
+ paths: [{
57
+ d: "M3 7a1 1 0 011 1v10a2 2 0 002 2h11a1 1 0 110 2H6a4 4 0 01-4-4V8a1 1 0 011-1z"
58
+ }, {
59
+ d: "M19 2a3 3 0 013 3v10a3 3 0 01-3 3H9a3 3 0 01-3-3V5a3 3 0 013-3h10zM9 4a1 1 0 00-1 1v10a1 1 0 001 1h10a1 1 0 001-1V5a1 1 0 00-1-1H9z",
60
+ fillRule: "evenodd"
61
+ }]
62
+ },
63
+ "discovery": {
64
+ viewBox: "0 0 24 24",
65
+ paths: [{
66
+ d: "M22 12c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10zM6 18l4-8 8-4-4 8-8 4zm6-5a1 1 0 100-2 1 1 0 000 2z",
67
+ fillRule: "evenodd"
68
+ }]
69
+ },
70
+ "down": {
71
+ viewBox: "0 0 24 24",
72
+ paths: [{
73
+ d: "M16.125 12V5a1 1 0 00-1-1h-6a1 1 0 00-1 1v7H4.539c-.89 0-1.337 1.077-.707 1.707L12.125 22l8.194-8.297c.623-.632.176-1.703-.712-1.703h-3.482z",
74
+ fillRule: "evenodd"
75
+ }]
76
+ },
77
+ "edit": {
78
+ viewBox: "0 0 32 32",
79
+ paths: [{
80
+ d: "M7.26 23.537l1.12-5.6 7.955-7.955 5.657 5.657 1.768-1.768-5.657-5.657 2.121-2.121a2 2 0 012.828 0l2.829 2.828a2 2 0 010 2.829L14.037 23.594l-5.6 1.12a1 1 0 01-1.177-1.177z",
81
+ fillRule: "evenodd"
82
+ }]
83
+ },
84
+ "error": {
85
+ viewBox: "0 0 24 24",
86
+ paths: [{
87
+ d: "M12 4a2 2 0 00-2 2v6.5a2 2 0 104 0V6a2 2 0 00-2-2zm2.25 13.75a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0z",
88
+ fillRule: "evenodd"
89
+ }]
90
+ },
91
+ "filter": {
92
+ viewBox: "0 0 24 24",
93
+ paths: [{
94
+ d: "M10.5 13.468L3.574 6.4C2.335 5.133 3.232 3 5.005 3h13.99c1.773 0 2.67 2.133 1.43 3.4L13.5 13.467V19a3 3 0 01-3.002 3v-8.532z"
95
+ }]
96
+ },
97
+ "home": {
98
+ viewBox: "0 0 24 24",
99
+ paths: [{
100
+ d: "M9 19a1 1 0 01-1 1H4a1 1 0 01-1-1v-7.586a1 1 0 01.293-.707l8-8a1 1 0 011.414 0l8 8a1 1 0 01.293.707V19a1 1 0 01-1 1h-4a1 1 0 01-1-1v-3.5a3 3 0 10-6 0V19z",
101
+ fillRule: "evenodd"
102
+ }]
103
+ },
104
+ "image": {
105
+ viewBox: "0 0 24 24",
106
+ paths: [{
107
+ d: "M6 4a3 3 0 00-3 3v10a3 3 0 003 3h12a3 3 0 003-3V7a3 3 0 00-3-3H6zm13 8.5l-4 2-6-3-4 2V17a1 1 0 001 1h12a1 1 0 001-1v-4.5zM18 9a2 2 0 11-4 0 2 2 0 014 0z",
108
+ fillRule: "evenodd"
109
+ }]
110
+ },
111
+ "info": {
112
+ viewBox: "0 0 24 24",
113
+ paths: [{
114
+ d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2.5 9a1 1 0 011-1H12a1 1 0 011 1v5h1a1 1 0 110 2h-4a1 1 0 110-2h1v-4h-.5a1 1 0 01-1-1zM12 5a1.5 1.5 0 100 3 1.5 1.5 0 000-3z",
115
+ fillRule: "evenodd"
116
+ }]
117
+ },
118
+ "like-off": {
119
+ viewBox: "0 0 24 24",
120
+ paths: [{
121
+ d: "M13.087 21.021C18.792 17.831 22 13.81 22 8.91A5.91 5.91 0 0016.09 3c-1.529 0-2.976.747-4.09 1.834C10.886 3.747 9.439 3 7.91 3A5.91 5.91 0 002 8.91c0 4.9 3.208 8.92 8.913 12.111a2.227 2.227 0 002.174 0zM16.09 5A3.91 3.91 0 0120 8.91c0 3.86-2.482 7.342-7.889 10.366a.229.229 0 01-.222 0C6.482 16.252 4 12.77 4 8.91A3.91 3.91 0 017.91 5c1.115 0 2.38.723 3.287 1.943L12 8.021l.803-1.078C13.71 5.723 14.975 5 16.09 5z",
122
+ fillRule: "evenodd"
123
+ }]
124
+ },
125
+ "like-on": {
126
+ viewBox: "0 0 24 24",
127
+ paths: [{
128
+ d: "M2 9.023A6.023 6.023 0 018.023 3c1.486 0 2.88.68 3.977 1.677C13.096 3.68 14.49 3 15.977 3A6.023 6.023 0 0122 9.023c0 4.908-3.22 8.893-8.807 12.018a2.443 2.443 0 01-2.386 0C5.22 17.916 2 13.931 2 9.023z",
129
+ fillRule: "evenodd"
130
+ }]
131
+ },
132
+ "link": {
133
+ viewBox: "0 0 24 24",
134
+ paths: [{
135
+ d: "M14.031 3.367a4.666 4.666 0 116.6 6.598l-4.243 4.243a4.665 4.665 0 01-2.163 1.226h-.037l-.193.04-.107.02-.23.034h-.113c-.05 0-.097.005-.142.01a1.296 1.296 0 01-.095.01l-.2.023h-.253a4.616 4.616 0 01-.497-.047 5.356 5.356 0 01-.403-.083l-.197-.053a2.64 2.64 0 01-.213-.07l-.078-.029c-.045-.016-.09-.032-.135-.051a4.71 4.71 0 00-.07-.03 4.627 4.627 0 01-1.473-.994 1.333 1.333 0 010-1.879 1.366 1.366 0 011.873 0 2 2 0 002.826 0l1.093-1.086.027-.03 3.126-3.123a2 2 0 00-2.83-2.83l-2.51 2.507a.333.333 0 01-.362.073 5.6 5.6 0 00-2.13-.417h-.123a.333.333 0 01-.243-.57l3.495-3.492z"
136
+ }, {
137
+ d: "M13.418 9.166c.284.18.547.391.784.63.27.27.41.644.386 1.026-.023.32-.16.62-.386.847a1.366 1.366 0 01-1.873 0 2 2 0 00-2.827 0L5.246 15.92a2 2 0 002.83 2.83l2.516-2.52a.333.333 0 01.363-.073 5.612 5.612 0 002.133.413h.134a.333.333 0 01.236.57l-3.5 3.5A4.636 4.636 0 016.664 22a4.666 4.666 0 01-3.3-7.962l4.24-4.242a4.666 4.666 0 015.816-.63z"
138
+ }]
139
+ },
140
+ "menu": {
141
+ viewBox: "0 0 24 24",
142
+ paths: [{
143
+ d: "M4 7a1 1 0 011-1h14a1 1 0 110 2H5a1 1 0 01-1-1zM4 12a1 1 0 011-1h14a1 1 0 110 2H5a1 1 0 01-1-1zM5 16a1 1 0 100 2h14a1 1 0 100-2H5z"
144
+ }]
145
+ },
146
+ "more": {
147
+ viewBox: "0 0 16 16",
148
+ paths: [{
149
+ d: "M6.043 4.957a1 1 0 011.414-1.414L11.914 8l-4.457 4.457a1 1 0 01-1.414-1.414L9.086 8 6.043 4.957z"
150
+ }]
151
+ },
152
+ "next": {
153
+ viewBox: "0 0 24 24",
154
+ paths: [{
155
+ d: "M8.086 16.586a2 2 0 102.828 2.828L18.328 12l-7.414-7.414a2 2 0 10-2.828 2.828L12.672 12l-4.586 4.586z"
156
+ }]
157
+ },
158
+ "notification": {
159
+ viewBox: "0 0 24 24",
160
+ paths: [{
161
+ d: "M18 9.25V12l1.561 4.684A1 1 0 0118.613 18H5.387a1 1 0 01-.948-1.316L6 12V9.25C6 5.798 8.686 3 12 3s6 2.798 6 6.25zM12 21a3.001 3.001 0 01-2.83-2h5.66A3.001 3.001 0 0112 21z"
162
+ }]
163
+ },
164
+ "prev": {
165
+ viewBox: "0 0 24 24",
166
+ paths: [{
167
+ d: "M15.913 16.586a2 2 0 01-2.829 2.828L5.67 12l7.414-7.414a2 2 0 012.829 2.828L11.327 12l4.586 4.586z"
168
+ }]
169
+ },
170
+ "question": {
171
+ viewBox: "0 0 24 24",
172
+ paths: [{
173
+ d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.179 15.254a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0zm.058-3.98c.01-.02.02-.04.03-.05.272-.4.651-.732 1.036-1.069.886-.777 1.8-1.579 1.494-3.281-.29-1.69-1.64-3.08-3.33-3.33-2.06-.3-3.88.97-4.43 2.79-.17.58.27 1.17.87 1.17h.2c.41 0 .74-.29.88-.65.32-.89 1.26-1.5 2.3-1.28.96.2 1.66 1.15 1.57 2.13-.068.763-.613 1.186-1.219 1.654-.377.293-.778.603-1.101 1.026l-.01-.01a.326.326 0 00-.046.066 1.302 1.302 0 01-.084.129 2.261 2.261 0 00-.27.515.156.156 0 01-.025.05c-.01.015-.02.03-.025.05-.01.01-.01.02-.01.03-.12.36-.2.79-.2 1.3h2.01a2.11 2.11 0 01.18-.89c.01-.04.02-.08.04-.11.04-.08.09-.16.14-.24z",
174
+ fillRule: "evenodd"
175
+ }]
176
+ },
177
+ "reload": {
178
+ viewBox: "0 0 24 24",
179
+ paths: [{
180
+ d: "M12 7a6 6 0 106 6 1 1 0 112 0 8 8 0 11-8-8h1.42l-1.7-2.125a1 1 0 111.56-1.25l3 3.75a1 1 0 010 1.25l-3 3.75a1 1 0 01-1.56-1.25L13.42 7H12z"
181
+ }]
182
+ },
183
+ "search": {
184
+ viewBox: "0 0 24 24",
185
+ paths: [{
186
+ d: "M15.461 10.615c0-1.334-.474-2.475-1.422-3.423-.948-.949-2.09-1.423-3.424-1.423s-2.475.474-3.423 1.423c-.949.948-1.423 2.09-1.423 3.423 0 1.335.474 2.476 1.423 3.424.948.948 2.09 1.422 3.423 1.422 1.335 0 2.476-.474 3.424-1.422s1.422-2.09 1.422-3.424zm5.539 9c0 .375-.137.7-.411.974a1.33 1.33 0 01-.974.411c-.389 0-.714-.137-.973-.411l-3.71-3.7a7.407 7.407 0 01-4.317 1.342c-1.03 0-2.017-.2-2.958-.6a7.613 7.613 0 01-2.434-1.623A7.614 7.614 0 013.6 13.574c-.4-.941-.6-1.927-.6-2.959 0-1.03.2-2.017.6-2.958.4-.941.941-1.753 1.623-2.434A7.614 7.614 0 017.657 3.6c.941-.4 1.927-.6 2.958-.6 1.032 0 2.018.2 2.959.6.941.4 1.752.941 2.434 1.623a7.613 7.613 0 011.622 2.434c.4.941.6 1.927.6 2.958a7.407 7.407 0 01-1.34 4.316l3.71 3.71c.267.268.4.592.4.974z",
187
+ fillRule: "evenodd"
188
+ }]
189
+ },
190
+ "send": {
191
+ viewBox: "0 0 24 24",
192
+ paths: [{
193
+ d: "M3 13.5h5a1.5 1.5 0 000-3H3V3.695a1 1 0 011.466-.885l15.853 8.343a1 1 0 010 1.77L4.466 21.267A1 1 0 013 20.382V13.5z",
194
+ fillRule: "evenodd"
195
+ }]
196
+ },
197
+ "settings": {
198
+ viewBox: "0 0 24 24",
199
+ paths: [{
200
+ d: "M19.5 12c0 .61.224 1.21.704 1.586l1.336 1.044c.19.15.24.42.12.64l-2 3.46c-.12.22-.38.31-.61.22l-1.589-.638c-.56-.225-1.186-.13-1.705.176-.528.31-.94.814-1.026 1.42l-.24 1.672c-.03.24-.24.42-.49.42h-4c-.25 0-.46-.18-.49-.42l-.24-1.68c-.087-.6-.495-1.098-1.02-1.404-.524-.305-1.156-.407-1.718-.181l-1.582.635c-.22.08-.49 0-.61-.22l-2-3.46a.505.505 0 01.12-.64l1.335-1.044c.48-.376.705-.976.705-1.586 0-.61-.224-1.21-.705-1.586L2.46 9.37a.493.493 0 01-.12-.64l2-3.46c.12-.22.38-.31.61-.22l1.588.638c.56.225 1.186.13 1.706-.176.528-.31.94-.814 1.026-1.42l.24-1.672c.03-.24.24-.42.49-.42h4c.25 0 .46.18.49.42l.24 1.68c.087.6.494 1.098 1.02 1.404.524.306 1.155.407 1.718.181l1.582-.635c.22-.08.49 0 .61.22l2 3.46c.12.22.07.49-.12.64l-1.336 1.044c-.48.376-.704.976-.704 1.586zm-11 0c0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5-3.5 1.57-3.5 3.5z",
201
+ fillRule: "evenodd"
202
+ }]
203
+ },
204
+ "share-android": {
205
+ viewBox: "0 0 24 24",
206
+ paths: [{
207
+ d: "M13 6.375a2.75 2.75 0 111.03 2.146L8.72 11.586a2.773 2.773 0 010 .828l5.312 3.065a2.75 2.75 0 11-1 1.732l-5.312-3.065a2.75 2.75 0 110-4.293l5.312-3.064A2.773 2.773 0 0113 6.375z"
208
+ }]
209
+ },
210
+ "share-ios": {
211
+ viewBox: "0 0 24 24",
212
+ paths: [{
213
+ d: "M12 2.586L7.293 7.293a1 1 0 001.414 1.414L11 6.414V13a1 1 0 102 0V6.414l2.293 2.293a1 1 0 101.414-1.414L12 2.586z"
214
+ }, {
215
+ d: "M6 18v-6H4v6a3 3 0 003 3h10a3 3 0 003-3v-6h-2v6a1 1 0 01-1 1H7a1 1 0 01-1-1z"
216
+ }]
217
+ },
218
+ "trash": {
219
+ viewBox: "0 0 24 24",
220
+ paths: [{
221
+ d: "M9 4h6v1h2.5a1 1 0 110 2h-11a1 1 0 010-2H9V4zM7.01 8a1 1 0 00-1 1.01l.105 10a1 1 0 001 .99H17a1 1 0 001-1V9a1 1 0 00-1-1H7.01z"
222
+ }]
223
+ },
224
+ "up": {
225
+ viewBox: "0 0 24 24",
226
+ paths: [{
227
+ d: "M16 12v7a1 1 0 01-1 1H9a1 1 0 01-1-1v-7H4.414c-.89 0-1.337-1.077-.707-1.707L12 2l8.194 8.297c.623.632.176 1.703-.712 1.703H16z",
228
+ fillRule: "evenodd"
229
+ }]
230
+ },
231
+ "user": {
232
+ viewBox: "0 0 32 32",
233
+ paths: [{
234
+ d: "M21.39 11.357c0 2.959-2.386 5.357-5.328 5.357-2.941 0-5.326-2.398-5.326-5.357S13.12 6 16.062 6c2.942 0 5.327 2.398 5.327 5.357zm-5.328 5.357c4.315 0 7.813 3.402 7.813 7.598v.26c0 .788-.636 1.428-1.42 1.428H9.67c-.784 0-1.42-.64-1.42-1.429v-.26c0-4.195 3.498-7.597 7.813-7.597z",
235
+ fillRule: "evenodd"
236
+ }]
237
+ },
238
+ "users": {
239
+ viewBox: "0 0 24 24",
240
+ paths: [{
241
+ d: "M7.507 10.5a3.75 3.75 0 10-.014 0C4.459 10.504 2 12.883 2 15.818 2 16.471 2.53 17 3.182 17h7.451a5.608 5.608 0 012.21-2.445c-.585-2.325-2.752-4.052-5.336-4.055zm8.993 4a3.75 3.75 0 100-7.5 3.75 3.75 0 000 7.5zm0 0c-3.038 0-5.5 2.381-5.5 5.318V20a1 1 0 001 1h9a1 1 0 001-1v-.182c0-2.937-2.462-5.318-5.5-5.318z",
242
+ fillRule: "evenodd"
243
+ }]
244
+ },
245
+ "warning": {
246
+ viewBox: "0 0 24 24",
247
+ paths: [{
248
+ d: "M4.47 21h15.06c1.54 0 2.5-1.67 1.73-3L13.73 4.99c-.77-1.33-2.69-1.33-3.46 0L2.74 18c-.77 1.33.19 3 1.73 3zM11 9a1 1 0 112 0v4a1 1 0 11-2 0V9zm1 7a1.25 1.25 0 100 2.5 1.25 1.25 0 000-2.5z",
249
+ fillRule: "evenodd"
250
+ }]
251
+ }
252
+ };
253
+ export const GLYPHS = GLYPHS_SOURCE;
254
+
255
+ /** 利用可能な icon name 一覧(catalog / ドキュメント生成用)。 */
256
+ export const ICON_NAMES = Object.keys(GLYPHS);
257
+ //# sourceMappingURL=glyphs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GLYPHS_SOURCE","viewBox","paths","d","fillRule","GLYPHS","ICON_NAMES","Object","keys"],"sourceRoot":"../../../src","sources":["icons/glyphs.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * icon.styles — Icon の pure style resolver(styleRefs conformance 対応で Icon.tsx から分離)。
5
+ *
6
+ * react-native を import しない純粋モジュールにすることで node テスト(tsx --test)から
7
+ * 直接実行できる。recipes/app/icon.recipe.json(melta-contracts の styleRefs)との
8
+ * 機械照合は scripts/lib/icon-conformance.test.ts が行う。
9
+ */
10
+
11
+ /** サイズ軸(contract sizes の height と 1:1。width=height の正方形)。 */
12
+ const SIZE_TABLE = {
13
+ sm: 16,
14
+ md: 20,
15
+ lg: 24
16
+ };
17
+ /**
18
+ * size / color → Icon style の解決(icon.recipe styleRefs の 1:1 写像)。
19
+ * デフォルト(size=md / color=text-default)は recipe の default variant と一致させている。
20
+ */
21
+ export function resolveIconStyle(theme, mode, size = "md", color = "text-default") {
22
+ return {
23
+ width: SIZE_TABLE[size],
24
+ height: SIZE_TABLE[size],
25
+ color: theme.color.semantic[mode][color]
26
+ };
27
+ }
28
+ //# sourceMappingURL=icon.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SIZE_TABLE","sm","md","lg","resolveIconStyle","theme","mode","size","color","width","height","semantic"],"sourceRoot":"../../../src","sources":["icons/icon.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA,MAAMA,UAAU,GAAG;EAAEC,EAAE,EAAE,EAAE;EAAEC,EAAE,EAAE,EAAE;EAAEC,EAAE,EAAE;AAAG,CAAU;AAQtD;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,KAAkB,EAClBC,IAAe,EACfC,IAAc,GAAG,IAAI,EACrBC,KAA2B,GAAG,cAAc,EACjC;EACX,OAAO;IACLC,KAAK,EAAET,UAAU,CAACO,IAAI,CAAC;IACvBG,MAAM,EAAEV,UAAU,CAACO,IAAI,CAAC;IACxBC,KAAK,EAAEH,KAAK,CAACG,KAAK,CAACG,QAAQ,CAACL,IAAI,CAAC,CAACE,KAAK;EACzC,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * melta-app/icons — Icon の subpath エントリ。
5
+ *
6
+ * 本体エントリ("melta-app")から分離している理由: Icon だけが react-native-svg
7
+ * (optional peerDependency)に依存するため。Metro は import を静的に解決するので、
8
+ * 本体エントリに Icon を含めると react-native-svg 未 install の利用者がバンドルできなくなる。
9
+ * この subpath を import する利用者だけが react-native-svg を要求される。
10
+ */
11
+
12
+ export { Icon } from "./Icon.js";
13
+ export { GLYPHS, ICON_NAMES } from "./glyphs.js";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Icon","GLYPHS","ICON_NAMES"],"sourceRoot":"../../../src","sources":["icons/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,WAAQ;AAC7B,SAASC,MAAM,EAAEC,UAAU,QAAQ,aAAU","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * melta-app — melta デザインシステムの React Native 実装(公開エントリ)。
5
+ *
6
+ * 契約(npm: melta-contracts)を SSOT とし、theme(トークンの RN 正規化)/
7
+ * primitives / components がその契約を満たす。契約との整合は conformance テストが機械照合する。
8
+ * アプリ本体ではなく UI kit。使い方はルートを ThemeProvider で包み、コンポーネントを import する。
9
+ */
10
+
11
+ // theme: トークン(melta-contracts/tokens.json 由来、codegen 済み)+ Provider + helpers
12
+ export * from "./theme/index.js";
13
+
14
+ // primitives / components(契約 appStatus=implemented の集合と一致。conformance が担保)
15
+ export * from "./primitives/index.js";
16
+ export * from "./components/index.js";
17
+
18
+ // 契約メタ(variant/size/state の実行時参照 + 型。__contract 照合にも使う)
19
+ export { CONTRACTS } from "./contracts/contract-types.js";
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CONTRACTS"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,kBAAS;;AAEvB;AACA,cAAc,uBAAc;AAC5B,cAAc,uBAAc;;AAE5B;AACA,SACEA,SAAS,QAMJ,+BAA4B","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Button — CTA / セカンダリ / アイコンボタン(設計書 §1, §4 C-3)。contract: button。
5
+ *
6
+ * - variant 7(contained/outlined/brand-outline/neutral/lighted/danger/subtle)× size 3(small/medium/large)。
7
+ * - iconOnly は discriminated union で accessibilityLabel 必須を型強制(§4、label 排他)。
8
+ * - states(§2 mapping): hover→pressed(背景を pressed 色に)、focus→FocusRing overlay(共通 helper)、
9
+ * disabled→prop(opacity + 非活性)、loading→Spinner + disabled 相当。
10
+ * - 色は variant ごとに NativeTheme から解決(button.contract tokenRefs を 1:1 で写像)。
11
+ * contained の pressed は hover-bg=primary.700(contract に native readable token あり、唯一)。
12
+ * 他 variant の pressed 視覚変化は contract が Tailwind のみ=Phase1 non-conformant(§2 M-1)、
13
+ * ここでは pressed 時に薄い overlay を敷く近似に留め、Phase2 で contract に pressed-* token 追加。
14
+ * - height は contract sizes(small32/medium40/large48)。
15
+ */
16
+
17
+ import { useMemo } from "react";
18
+ import { ActivityIndicator, Pressable, View } from "react-native";
19
+ import { Text } from "./Text.js";
20
+ import { useTheme } from "../theme/index.js";
21
+ import { useFocusRing, FocusRing } from "./_internal/focus-ring.js";
22
+ import { CONTRACTS } from "../contracts/contract-types.js";
23
+ import { SIZE_SPEC, resolveVariant } from "./button.styles.js";
24
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
25
+ export function Button(props) {
26
+ const {
27
+ theme,
28
+ mode
29
+ } = useTheme();
30
+ const {
31
+ variant = "contained",
32
+ size = "medium",
33
+ leadingIcon,
34
+ trailingIcon,
35
+ disabled = false,
36
+ loading = false,
37
+ onPress,
38
+ style,
39
+ testID
40
+ } = props;
41
+ const {
42
+ focused,
43
+ focusHandlers
44
+ } = useFocusRing();
45
+ const spec = SIZE_SPEC[size];
46
+ const colors = useMemo(() => resolveVariant(theme, mode, variant), [theme, mode, variant]);
47
+ const isDisabled = disabled || loading;
48
+ const iconOnly = props.iconOnly === true;
49
+ return /*#__PURE__*/_jsxs(Pressable, {
50
+ ...focusHandlers,
51
+ onPress: onPress,
52
+ disabled: isDisabled,
53
+ accessibilityRole: "button",
54
+ accessibilityState: {
55
+ disabled: isDisabled,
56
+ busy: loading
57
+ },
58
+ accessibilityLabel: iconOnly ? props.accessibilityLabel : undefined,
59
+ testID: testID,
60
+ style: ({
61
+ pressed
62
+ }) => [{
63
+ height: spec.height,
64
+ flexDirection: "row",
65
+ alignItems: "center",
66
+ justifyContent: "center",
67
+ gap: theme.spacing["2"],
68
+ borderRadius: theme.radius.md,
69
+ backgroundColor: pressed && !isDisabled ? colors.pressedBg : colors.bg,
70
+ ...(iconOnly ? {
71
+ width: spec.iconBox
72
+ } : {
73
+ paddingHorizontal: theme.spacing[spec.px]
74
+ }),
75
+ ...(colors.border != null ? {
76
+ borderWidth: 1,
77
+ borderColor: colors.border
78
+ } : null),
79
+ opacity: isDisabled ? 0.5 : 1
80
+ }, style],
81
+ children: [loading ? /*#__PURE__*/_jsx(ActivityIndicator, {
82
+ color: colors.textColor
83
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
84
+ children: [leadingIcon != null && /*#__PURE__*/_jsx(View, {
85
+ children: leadingIcon
86
+ }), !iconOnly && /*#__PURE__*/_jsx(Text, {
87
+ variant: spec.font,
88
+ weight: "medium",
89
+ style: {
90
+ color: colors.textColor
91
+ },
92
+ children: props.label
93
+ }), trailingIcon != null && /*#__PURE__*/_jsx(View, {
94
+ children: trailingIcon
95
+ })]
96
+ }), /*#__PURE__*/_jsx(FocusRing, {
97
+ visible: focused && !isDisabled,
98
+ radius: theme.radius.md
99
+ })]
100
+ });
101
+ }
102
+
103
+ // Phase 2 conformance test 用の contract メタ(§2 A-3)。
104
+ Button.__contract = CONTRACTS.button;
105
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","ActivityIndicator","Pressable","View","Text","useTheme","useFocusRing","FocusRing","CONTRACTS","SIZE_SPEC","resolveVariant","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Button","props","theme","mode","variant","size","leadingIcon","trailingIcon","disabled","loading","onPress","style","testID","focused","focusHandlers","spec","colors","isDisabled","iconOnly","accessibilityRole","accessibilityState","busy","accessibilityLabel","undefined","pressed","height","flexDirection","alignItems","justifyContent","gap","spacing","borderRadius","radius","md","backgroundColor","pressedBg","bg","width","iconBox","paddingHorizontal","px","border","borderWidth","borderColor","opacity","children","color","textColor","font","weight","label","visible","__contract","button"],"sourceRoot":"../../../src","sources":["primitives/Button.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Metric — 数値 + 単位 + ラベルの指標表示 primitive(設計書 §1、意思決定3)。
5
+ * contract: metric(app 先行定義)。ツー活カードの主役(走行距離 / 時間 / 獲得標高 等)。
6
+ *
7
+ * - value は tabular(fontVariant:["tabular-nums"])で桁揃え。Text primitive は fontVariant を
8
+ * 公開しないので、value は RN Text を直接使う。
9
+ * - size(sm/md/lg) は value の fontSize token にマップ(contract の height は想定行高、実 fontSize は
10
+ * pure resolver(metric.styles.ts)で token 解決する。metric.contract intent 参照)。
11
+ * - unit は value の1段下の fontSize でベースライン揃え。label は muted。
12
+ * - a11y: value+unit+label を1つの accessibilityLabel に合成して読み上げる(contract a11y)。
13
+ */
14
+
15
+ import { useMemo } from "react";
16
+ import { Text as RNText, View } from "react-native";
17
+ import { useTheme } from "../theme/index.js";
18
+ import { CONTRACTS } from "../contracts/contract-types.js";
19
+ import { resolveMetricStyles } from "./metric.styles.js";
20
+
21
+ // "sm" | "md" | "lg"
22
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
+ export function Metric({
24
+ value,
25
+ unit,
26
+ label,
27
+ size = "md",
28
+ align = "start",
29
+ style,
30
+ testID
31
+ }) {
32
+ const {
33
+ theme,
34
+ mode
35
+ } = useTheme();
36
+
37
+ // 決定ロジックは pure resolver(metric.styles.ts)に分離済み — recipe との機械照合対象。
38
+ const styles = useMemo(() => resolveMetricStyles(theme, mode, size), [theme, mode, size]);
39
+ const a11yLabel = [value, unit, label].filter(Boolean).join(" ");
40
+ return /*#__PURE__*/_jsxs(View, {
41
+ testID: testID,
42
+ accessible: true,
43
+ accessibilityLabel: a11yLabel,
44
+ style: [{
45
+ alignItems: align === "center" ? "center" : "flex-start"
46
+ }, style],
47
+ children: [/*#__PURE__*/_jsxs(View, {
48
+ style: {
49
+ flexDirection: "row",
50
+ alignItems: "baseline"
51
+ },
52
+ children: [/*#__PURE__*/_jsx(RNText, {
53
+ style: styles.valueStyle,
54
+ children: value
55
+ }), unit != null && /*#__PURE__*/_jsx(RNText, {
56
+ style: styles.unitStyle,
57
+ children: unit
58
+ })]
59
+ }), label != null && /*#__PURE__*/_jsx(RNText, {
60
+ style: styles.labelStyle,
61
+ children: label
62
+ })]
63
+ });
64
+ }
65
+
66
+ // Phase 2 conformance test 用の contract メタ(§2 A-3)。
67
+ Metric.__contract = CONTRACTS.metric;
68
+ //# sourceMappingURL=Metric.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Row — 横並び layout primitive。RN コア View の薄いラッパ。
5
+ * contract: row(app 先行定義、melta-contracts)。dogfood 不足-1(生 flexbox 手書き)の解消。
6
+ *
7
+ * - gap は spacing token キー限定(生数値不可、§5 lint の意味を保つ)。
8
+ * - align(交差軸、default center)/ justify(主軸、default start)/ wrap(折返し)。
9
+ * - 決定ロジックは pure resolver(row.styles.ts)に分離 — recipe との機械照合対象。
10
+ */
11
+
12
+ import { useMemo } from "react";
13
+ import { View } from "react-native";
14
+ import { useTheme } from "../theme/index.js";
15
+ import { CONTRACTS } from "../contracts/contract-types.js";
16
+ import { resolveRowStyle } from "./row.styles.js";
17
+ import { jsx as _jsx } from "react/jsx-runtime";
18
+ export function Row({
19
+ gap,
20
+ align = "center",
21
+ justify = "start",
22
+ wrap = false,
23
+ style,
24
+ testID,
25
+ children
26
+ }) {
27
+ const {
28
+ theme
29
+ } = useTheme();
30
+ const layout = useMemo(() => resolveRowStyle(theme, {
31
+ gap,
32
+ align,
33
+ justify,
34
+ wrap
35
+ }), [theme, gap, align, justify, wrap]);
36
+ return /*#__PURE__*/_jsx(View, {
37
+ style: [layout, style],
38
+ testID: testID,
39
+ children: children
40
+ });
41
+ }
42
+ Row.__contract = CONTRACTS.row;
43
+ //# sourceMappingURL=Row.js.map
@@ -0,0 +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":[]}