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.
- package/LICENSE +21 -0
- package/README.md +197 -0
- package/THIRD_PARTY_LICENSES.md +198 -0
- package/lib/module/components/ActionSheet.js +87 -0
- package/lib/module/components/ActionSheet.js.map +1 -0
- package/lib/module/components/Alert.js +93 -0
- package/lib/module/components/Alert.js.map +1 -0
- package/lib/module/components/Avatar.js +93 -0
- package/lib/module/components/Avatar.js.map +1 -0
- package/lib/module/components/BottomSheet.js +69 -0
- package/lib/module/components/BottomSheet.js.map +1 -0
- package/lib/module/components/Card.js +93 -0
- package/lib/module/components/Card.js.map +1 -0
- package/lib/module/components/Checkbox.js +115 -0
- package/lib/module/components/Checkbox.js.map +1 -0
- package/lib/module/components/EmptyState.js +70 -0
- package/lib/module/components/EmptyState.js.map +1 -0
- package/lib/module/components/Header.js +53 -0
- package/lib/module/components/Header.js.map +1 -0
- package/lib/module/components/Image.js +67 -0
- package/lib/module/components/Image.js.map +1 -0
- package/lib/module/components/Modal.js +95 -0
- package/lib/module/components/Modal.js.map +1 -0
- package/lib/module/components/Progress.js +113 -0
- package/lib/module/components/Progress.js.map +1 -0
- package/lib/module/components/Radio.js +134 -0
- package/lib/module/components/Radio.js.map +1 -0
- package/lib/module/components/Screen.js +57 -0
- package/lib/module/components/Screen.js.map +1 -0
- package/lib/module/components/Skeleton.js +169 -0
- package/lib/module/components/Skeleton.js.map +1 -0
- package/lib/module/components/Surface.js +49 -0
- package/lib/module/components/Surface.js.map +1 -0
- package/lib/module/components/TextField.js +84 -0
- package/lib/module/components/TextField.js.map +1 -0
- package/lib/module/components/Toast.js +105 -0
- package/lib/module/components/Toast.js.map +1 -0
- package/lib/module/components/Toggle.js +77 -0
- package/lib/module/components/Toggle.js.map +1 -0
- package/lib/module/components/action-sheet.styles.js +70 -0
- package/lib/module/components/action-sheet.styles.js.map +1 -0
- package/lib/module/components/alert.styles.js +80 -0
- package/lib/module/components/alert.styles.js.map +1 -0
- package/lib/module/components/avatar.styles.js +94 -0
- package/lib/module/components/avatar.styles.js.map +1 -0
- package/lib/module/components/bottom-sheet.styles.js +55 -0
- package/lib/module/components/bottom-sheet.styles.js.map +1 -0
- package/lib/module/components/card.styles.js +50 -0
- package/lib/module/components/card.styles.js.map +1 -0
- package/lib/module/components/checkbox.styles.js +55 -0
- package/lib/module/components/checkbox.styles.js.map +1 -0
- package/lib/module/components/empty-state.styles.js +60 -0
- package/lib/module/components/empty-state.styles.js.map +1 -0
- package/lib/module/components/header.styles.js +33 -0
- package/lib/module/components/header.styles.js.map +1 -0
- package/lib/module/components/image.styles.js +37 -0
- package/lib/module/components/image.styles.js.map +1 -0
- package/lib/module/components/index.js +26 -0
- package/lib/module/components/index.js.map +1 -0
- package/lib/module/components/modal.styles.js +68 -0
- package/lib/module/components/modal.styles.js.map +1 -0
- package/lib/module/components/progress.styles.js +55 -0
- package/lib/module/components/progress.styles.js.map +1 -0
- package/lib/module/components/radio.styles.js +96 -0
- package/lib/module/components/radio.styles.js.map +1 -0
- package/lib/module/components/screen.styles.js +38 -0
- package/lib/module/components/screen.styles.js.map +1 -0
- package/lib/module/components/skeleton.styles.js +114 -0
- package/lib/module/components/skeleton.styles.js.map +1 -0
- package/lib/module/components/surface.styles.js +37 -0
- package/lib/module/components/surface.styles.js.map +1 -0
- package/lib/module/components/textfield.styles.js +121 -0
- package/lib/module/components/textfield.styles.js.map +1 -0
- package/lib/module/components/toast.styles.js +81 -0
- package/lib/module/components/toast.styles.js.map +1 -0
- package/lib/module/components/toggle.styles.js +69 -0
- package/lib/module/components/toggle.styles.js.map +1 -0
- package/lib/module/contracts/contract-types.js +192 -0
- package/lib/module/contracts/contract-types.js.map +1 -0
- package/lib/module/icons/Icon.js +57 -0
- package/lib/module/icons/Icon.js.map +1 -0
- package/lib/module/icons/glyphs.js +257 -0
- package/lib/module/icons/glyphs.js.map +1 -0
- package/lib/module/icons/icon.styles.js +28 -0
- package/lib/module/icons/icon.styles.js.map +1 -0
- package/lib/module/icons/index.js +14 -0
- package/lib/module/icons/index.js.map +1 -0
- package/lib/module/index.js +20 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/primitives/Button.js +105 -0
- package/lib/module/primitives/Button.js.map +1 -0
- package/lib/module/primitives/Metric.js +68 -0
- package/lib/module/primitives/Metric.js.map +1 -0
- package/lib/module/primitives/Row.js +43 -0
- package/lib/module/primitives/Row.js.map +1 -0
- package/lib/module/primitives/Stack.js +39 -0
- package/lib/module/primitives/Stack.js.map +1 -0
- package/lib/module/primitives/Tag.js +160 -0
- package/lib/module/primitives/Tag.js.map +1 -0
- package/lib/module/primitives/Text.js +54 -0
- package/lib/module/primitives/Text.js.map +1 -0
- package/lib/module/primitives/_internal/focus-ring.js +57 -0
- package/lib/module/primitives/_internal/focus-ring.js.map +1 -0
- package/lib/module/primitives/button.styles.js +88 -0
- package/lib/module/primitives/button.styles.js.map +1 -0
- package/lib/module/primitives/index.js +11 -0
- package/lib/module/primitives/index.js.map +1 -0
- package/lib/module/primitives/metric.styles.js +54 -0
- package/lib/module/primitives/metric.styles.js.map +1 -0
- package/lib/module/primitives/row.styles.js +53 -0
- package/lib/module/primitives/row.styles.js.map +1 -0
- package/lib/module/primitives/stack.styles.js +37 -0
- package/lib/module/primitives/stack.styles.js.map +1 -0
- package/lib/module/primitives/tag.styles.js +56 -0
- package/lib/module/primitives/tag.styles.js.map +1 -0
- package/lib/module/primitives/text.styles.js +33 -0
- package/lib/module/primitives/text.styles.js.map +1 -0
- package/lib/module/theme/ThemeProvider.js +41 -0
- package/lib/module/theme/ThemeProvider.js.map +1 -0
- package/lib/module/theme/index.js +19 -0
- package/lib/module/theme/index.js.map +1 -0
- package/lib/module/theme/native-theme.js +201 -0
- package/lib/module/theme/native-theme.js.map +1 -0
- package/lib/module/theme/types.js +4 -0
- package/lib/module/theme/types.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/components/ActionSheet.d.ts +45 -0
- package/lib/typescript/src/components/ActionSheet.d.ts.map +1 -0
- package/lib/typescript/src/components/Alert.d.ts +43 -0
- package/lib/typescript/src/components/Alert.d.ts.map +1 -0
- package/lib/typescript/src/components/Avatar.d.ts +45 -0
- package/lib/typescript/src/components/Avatar.d.ts.map +1 -0
- package/lib/typescript/src/components/BottomSheet.d.ts +36 -0
- package/lib/typescript/src/components/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/src/components/Card.d.ts +46 -0
- package/lib/typescript/src/components/Card.d.ts.map +1 -0
- package/lib/typescript/src/components/Checkbox.d.ts +40 -0
- package/lib/typescript/src/components/Checkbox.d.ts.map +1 -0
- package/lib/typescript/src/components/EmptyState.d.ts +36 -0
- package/lib/typescript/src/components/EmptyState.d.ts.map +1 -0
- package/lib/typescript/src/components/Header.d.ts +34 -0
- package/lib/typescript/src/components/Header.d.ts.map +1 -0
- package/lib/typescript/src/components/Image.d.ts +41 -0
- package/lib/typescript/src/components/Image.d.ts.map +1 -0
- package/lib/typescript/src/components/Modal.d.ts +46 -0
- package/lib/typescript/src/components/Modal.d.ts.map +1 -0
- package/lib/typescript/src/components/Progress.d.ts +39 -0
- package/lib/typescript/src/components/Progress.d.ts.map +1 -0
- package/lib/typescript/src/components/Radio.d.ts +52 -0
- package/lib/typescript/src/components/Radio.d.ts.map +1 -0
- package/lib/typescript/src/components/Screen.d.ts +42 -0
- package/lib/typescript/src/components/Screen.d.ts.map +1 -0
- package/lib/typescript/src/components/Skeleton.d.ts +37 -0
- package/lib/typescript/src/components/Skeleton.d.ts.map +1 -0
- package/lib/typescript/src/components/Surface.d.ts +31 -0
- package/lib/typescript/src/components/Surface.d.ts.map +1 -0
- package/lib/typescript/src/components/TextField.d.ts +45 -0
- package/lib/typescript/src/components/TextField.d.ts.map +1 -0
- package/lib/typescript/src/components/Toast.d.ts +45 -0
- package/lib/typescript/src/components/Toast.d.ts.map +1 -0
- package/lib/typescript/src/components/Toggle.d.ts +39 -0
- package/lib/typescript/src/components/Toggle.d.ts.map +1 -0
- package/lib/typescript/src/components/action-sheet.styles.d.ts +65 -0
- package/lib/typescript/src/components/action-sheet.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/alert.styles.d.ts +61 -0
- package/lib/typescript/src/components/alert.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/avatar.styles.d.ts +60 -0
- package/lib/typescript/src/components/avatar.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/bottom-sheet.styles.d.ts +50 -0
- package/lib/typescript/src/components/bottom-sheet.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/card.styles.d.ts +27 -0
- package/lib/typescript/src/components/card.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/checkbox.styles.d.ts +55 -0
- package/lib/typescript/src/components/checkbox.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/empty-state.styles.d.ts +58 -0
- package/lib/typescript/src/components/empty-state.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/header.styles.d.ts +30 -0
- package/lib/typescript/src/components/header.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/image.styles.d.ts +28 -0
- package/lib/typescript/src/components/image.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/index.d.ts +23 -0
- package/lib/typescript/src/components/index.d.ts.map +1 -0
- package/lib/typescript/src/components/modal.styles.d.ts +66 -0
- package/lib/typescript/src/components/modal.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/progress.styles.d.ts +44 -0
- package/lib/typescript/src/components/progress.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/radio.styles.d.ts +91 -0
- package/lib/typescript/src/components/radio.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/screen.styles.d.ts +34 -0
- package/lib/typescript/src/components/screen.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/skeleton.styles.d.ts +105 -0
- package/lib/typescript/src/components/skeleton.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/surface.styles.d.ts +31 -0
- package/lib/typescript/src/components/surface.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/textfield.styles.d.ts +75 -0
- package/lib/typescript/src/components/textfield.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/toast.styles.d.ts +62 -0
- package/lib/typescript/src/components/toast.styles.d.ts.map +1 -0
- package/lib/typescript/src/components/toggle.styles.d.ts +53 -0
- package/lib/typescript/src/components/toggle.styles.d.ts.map +1 -0
- package/lib/typescript/src/contracts/contract-types.d.ts +193 -0
- package/lib/typescript/src/contracts/contract-types.d.ts.map +1 -0
- package/lib/typescript/src/icons/Icon.d.ts +40 -0
- package/lib/typescript/src/icons/Icon.d.ts.map +1 -0
- package/lib/typescript/src/icons/glyphs.d.ts +259 -0
- package/lib/typescript/src/icons/glyphs.d.ts.map +1 -0
- package/lib/typescript/src/icons/icon.styles.d.ts +20 -0
- package/lib/typescript/src/icons/icon.styles.d.ts.map +1 -0
- package/lib/typescript/src/icons/index.d.ts +12 -0
- package/lib/typescript/src/icons/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +12 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/primitives/Button.d.ts +48 -0
- package/lib/typescript/src/primitives/Button.d.ts.map +1 -0
- package/lib/typescript/src/primitives/Metric.d.ts +38 -0
- package/lib/typescript/src/primitives/Metric.d.ts.map +1 -0
- package/lib/typescript/src/primitives/Row.d.ts +37 -0
- package/lib/typescript/src/primitives/Row.d.ts.map +1 -0
- package/lib/typescript/src/primitives/Stack.d.ts +33 -0
- package/lib/typescript/src/primitives/Stack.d.ts.map +1 -0
- package/lib/typescript/src/primitives/Tag.d.ts +43 -0
- package/lib/typescript/src/primitives/Tag.d.ts.map +1 -0
- package/lib/typescript/src/primitives/Text.d.ts +45 -0
- package/lib/typescript/src/primitives/Text.d.ts.map +1 -0
- package/lib/typescript/src/primitives/_internal/focus-ring.d.ts +31 -0
- package/lib/typescript/src/primitives/_internal/focus-ring.d.ts.map +1 -0
- package/lib/typescript/src/primitives/button.styles.d.ts +29 -0
- package/lib/typescript/src/primitives/button.styles.d.ts.map +1 -0
- package/lib/typescript/src/primitives/index.d.ts +8 -0
- package/lib/typescript/src/primitives/index.d.ts.map +1 -0
- package/lib/typescript/src/primitives/metric.styles.d.ts +43 -0
- package/lib/typescript/src/primitives/metric.styles.d.ts.map +1 -0
- package/lib/typescript/src/primitives/row.styles.d.ts +50 -0
- package/lib/typescript/src/primitives/row.styles.d.ts.map +1 -0
- package/lib/typescript/src/primitives/stack.styles.d.ts +34 -0
- package/lib/typescript/src/primitives/stack.styles.d.ts.map +1 -0
- package/lib/typescript/src/primitives/tag.styles.d.ts +32 -0
- package/lib/typescript/src/primitives/tag.styles.d.ts.map +1 -0
- package/lib/typescript/src/primitives/text.styles.d.ts +26 -0
- package/lib/typescript/src/primitives/text.styles.d.ts.map +1 -0
- package/lib/typescript/src/theme/ThemeProvider.d.ts +32 -0
- package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -0
- package/lib/typescript/src/theme/index.d.ts +15 -0
- package/lib/typescript/src/theme/index.d.ts.map +1 -0
- package/lib/typescript/src/theme/native-theme.d.ts +3 -0
- package/lib/typescript/src/theme/native-theme.d.ts.map +1 -0
- package/lib/typescript/src/theme/types.d.ts +121 -0
- package/lib/typescript/src/theme/types.d.ts.map +1 -0
- package/package.json +120 -0
- package/src/components/ActionSheet.tsx +112 -0
- package/src/components/Alert.tsx +84 -0
- package/src/components/Avatar.tsx +110 -0
- package/src/components/BottomSheet.tsx +81 -0
- package/src/components/Card.tsx +102 -0
- package/src/components/Checkbox.tsx +107 -0
- package/src/components/EmptyState.tsx +64 -0
- package/src/components/Header.tsx +51 -0
- package/src/components/Image.tsx +89 -0
- package/src/components/Modal.tsx +113 -0
- package/src/components/Progress.tsx +124 -0
- package/src/components/Radio.tsx +151 -0
- package/src/components/Screen.tsx +62 -0
- package/src/components/Skeleton.tsx +154 -0
- package/src/components/Surface.tsx +37 -0
- package/src/components/TextField.tsx +102 -0
- package/src/components/Toast.tsx +103 -0
- package/src/components/Toggle.tsx +94 -0
- package/src/components/action-sheet.styles.ts +102 -0
- package/src/components/alert.styles.ts +115 -0
- package/src/components/avatar.styles.ts +110 -0
- package/src/components/bottom-sheet.styles.ts +78 -0
- package/src/components/card.styles.ts +56 -0
- package/src/components/checkbox.styles.ts +83 -0
- package/src/components/empty-state.styles.ts +98 -0
- package/src/components/header.styles.ts +44 -0
- package/src/components/image.styles.ts +36 -0
- package/src/components/index.ts +23 -0
- package/src/components/modal.styles.ts +106 -0
- package/src/components/progress.styles.ts +74 -0
- package/src/components/radio.styles.ts +132 -0
- package/src/components/screen.styles.ts +44 -0
- package/src/components/skeleton.styles.ts +155 -0
- package/src/components/surface.styles.ts +50 -0
- package/src/components/textfield.styles.ts +135 -0
- package/src/components/toast.styles.ts +115 -0
- package/src/components/toggle.styles.ts +73 -0
- package/src/contracts/contract-types.ts +199 -0
- package/src/icons/Icon.tsx +65 -0
- package/src/icons/glyphs.ts +54 -0
- package/src/icons/icon.styles.ts +37 -0
- package/src/icons/index.ts +12 -0
- package/src/index.ts +24 -0
- package/src/primitives/Button.tsx +114 -0
- package/src/primitives/Metric.tsx +67 -0
- package/src/primitives/Row.tsx +54 -0
- package/src/primitives/Stack.tsx +42 -0
- package/src/primitives/Tag.tsx +126 -0
- package/src/primitives/Text.tsx +71 -0
- package/src/primitives/_internal/focus-ring.tsx +59 -0
- package/src/primitives/button.styles.ts +69 -0
- package/src/primitives/index.ts +8 -0
- package/src/primitives/metric.styles.ts +75 -0
- package/src/primitives/row.styles.ts +66 -0
- package/src/primitives/stack.styles.ts +47 -0
- package/src/primitives/tag.styles.ts +65 -0
- package/src/primitives/text.styles.ts +42 -0
- package/src/theme/ThemeProvider.tsx +60 -0
- package/src/theme/index.ts +18 -0
- package/src/theme/native-theme.ts +215 -0
- 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":[]}
|