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