melta-app 0.10.0 → 0.10.1
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/README.md +4 -0
- package/lib/module/components/Card.js +3 -2
- package/lib/module/components/Card.js.map +1 -1
- package/lib/module/components/Skeleton.js +4 -3
- package/lib/module/components/Skeleton.js.map +1 -1
- package/lib/module/components/card.styles.js +13 -6
- package/lib/module/components/card.styles.js.map +1 -1
- package/lib/module/components/skeleton.styles.js +26 -15
- package/lib/module/components/skeleton.styles.js.map +1 -1
- package/lib/typescript/src/components/Card.d.ts +3 -1
- package/lib/typescript/src/components/Card.d.ts.map +1 -1
- package/lib/typescript/src/components/Skeleton.d.ts +3 -1
- package/lib/typescript/src/components/Skeleton.d.ts.map +1 -1
- package/lib/typescript/src/components/card.styles.d.ts +8 -1
- package/lib/typescript/src/components/card.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/skeleton.styles.d.ts +8 -1
- package/lib/typescript/src/components/skeleton.styles.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/Card.tsx +5 -2
- package/src/components/Skeleton.tsx +6 -3
- package/src/components/card.styles.ts +12 -6
- package/src/components/skeleton.styles.ts +10 -4
package/README.md
CHANGED
|
@@ -704,3 +704,7 @@ variant省略時は従来どおり可視タイトルを表示します。
|
|
|
704
704
|
|
|
705
705
|
`HEADER_CENTERED_MIN_HEIGHT`は初期見積もり用です。スクロール退避は可能な限りonLayoutの実測値を使い、
|
|
706
706
|
文字拡大時の高くなったHeaderを固定高で切らないでください。
|
|
707
|
+
|
|
708
|
+
### Card / Skeletonの影なし指定
|
|
709
|
+
|
|
710
|
+
`<Card elevation="none">...</Card>` と `<Skeleton variant="card" elevation="none" />` は背景・枠・余白を維持して影だけを除く。省略時の `default` は従来どおり。Cardのaction/linkもnoneなら押下中に影が付かない。Skeletonのtext/circleは影のトークンを参照しない。
|
|
@@ -56,6 +56,7 @@ const reported = new Set();
|
|
|
56
56
|
|
|
57
57
|
export function Card({
|
|
58
58
|
variant = "basic",
|
|
59
|
+
elevation = "default",
|
|
59
60
|
header,
|
|
60
61
|
footer,
|
|
61
62
|
media,
|
|
@@ -105,7 +106,7 @@ export function Card({
|
|
|
105
106
|
return /*#__PURE__*/_jsx(View, {
|
|
106
107
|
role: "article",
|
|
107
108
|
testID: testID,
|
|
108
|
-
style: [resolveCardShape(theme, mode, variant), style],
|
|
109
|
+
style: [resolveCardShape(theme, mode, variant, false, elevation), style],
|
|
109
110
|
children: content
|
|
110
111
|
});
|
|
111
112
|
}
|
|
@@ -122,7 +123,7 @@ export function Card({
|
|
|
122
123
|
testID: testID,
|
|
123
124
|
style: ({
|
|
124
125
|
pressed
|
|
125
|
-
}) => [resolveCardShape(theme, mode, variant, pressed), style],
|
|
126
|
+
}) => [resolveCardShape(theme, mode, variant, pressed, elevation), style],
|
|
126
127
|
children: content
|
|
127
128
|
});
|
|
128
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","Pressable","View","useTheme","CONTRACTS","isDev","CARD_INTERACTIVE","resolveCardShape","resolveCardBodyStyle","validateCardProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","reported","Set","Card","variant","header","footer","media","onPress","primaryAction","style","testID","children","theme","mode","interactive","problem","has","add","console","error","isMedia","inner","content","borderRadius","radius","lg","overflow","role","accessible","pressed","__contract","card"],"sourceRoot":"../../../src","sources":["components/Card.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,QAA2C,OAAO;AACpE,SAASC,SAAS,EAAEC,IAAI,QAAwC,cAAc;AAC9E,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,SAAS,QAAQ,gCAAgC;AAC1D,SAASC,KAAK,QAAQ,0BAA0B;AAChD,SAASC,gBAAgB,EAAEC,gBAAgB,EAAEC,oBAAoB,QAAQ,kBAAkB;AAC3F,SAASC,iBAAiB,QAAQ,oBAAoB;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAOA,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAAS,CAAC;;
|
|
1
|
+
{"version":3,"names":["useEffect","Pressable","View","useTheme","CONTRACTS","isDev","CARD_INTERACTIVE","resolveCardShape","resolveCardBodyStyle","validateCardProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","reported","Set","Card","variant","elevation","header","footer","media","onPress","primaryAction","style","testID","children","theme","mode","interactive","problem","has","add","console","error","isMedia","inner","content","borderRadius","radius","lg","overflow","role","accessible","pressed","__contract","card"],"sourceRoot":"../../../src","sources":["components/Card.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,10 +20,11 @@ import { AccessibilityInfo, Animated, View } from "react-native";
|
|
|
20
20
|
import { Surface } from "./Surface.js";
|
|
21
21
|
import { useTheme } from "../theme/index.js";
|
|
22
22
|
import { CONTRACTS } from "../contracts/contract-types.js";
|
|
23
|
-
import {
|
|
23
|
+
import { resolveSkeletonSurfaceProps, PULSE_OPACITY, SKELETON_METRICS, resolveSkeletonStates, resolveSkeletonVariants } from "./skeleton.styles.js";
|
|
24
24
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
25
|
export function Skeleton({
|
|
26
26
|
variant = "text",
|
|
27
|
+
elevation = "default",
|
|
27
28
|
width = "100%",
|
|
28
29
|
lines = 1,
|
|
29
30
|
accessibilityLabel = "読み込み中",
|
|
@@ -34,7 +35,7 @@ export function Skeleton({
|
|
|
34
35
|
theme,
|
|
35
36
|
mode
|
|
36
37
|
} = useTheme();
|
|
37
|
-
const styles = useMemo(() => resolveSkeletonVariants(theme, mode), [theme, mode]);
|
|
38
|
+
const styles = useMemo(() => resolveSkeletonVariants(theme, mode, elevation), [theme, mode, elevation]);
|
|
38
39
|
// 初期値 opacityFrom = 非アニメ(reduce-motion でも光らない)。reduce-motion OFF を確認後にのみ loop で揺らす。
|
|
39
40
|
const opacity = useRef(new Animated.Value(PULSE_OPACITY.from)).current;
|
|
40
41
|
useEffect(() => {
|
|
@@ -88,7 +89,7 @@ export function Skeleton({
|
|
|
88
89
|
borderColor
|
|
89
90
|
} = styles.card.style;
|
|
90
91
|
return /*#__PURE__*/_jsx(Surface, {
|
|
91
|
-
...
|
|
92
|
+
...resolveSkeletonSurfaceProps(elevation),
|
|
92
93
|
// contract skeleton.card は border-default を要求(Surface は border を出さないので Skeleton で付与)。
|
|
93
94
|
style: [{
|
|
94
95
|
borderWidth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useMemo","useRef","AccessibilityInfo","Animated","View","Surface","useTheme","CONTRACTS","
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","AccessibilityInfo","Animated","View","Surface","useTheme","CONTRACTS","resolveSkeletonSurfaceProps","PULSE_OPACITY","SKELETON_METRICS","resolveSkeletonStates","resolveSkeletonVariants","jsx","_jsx","jsxs","_jsxs","Skeleton","variant","elevation","width","lines","accessibilityLabel","style","testID","theme","mode","styles","opacity","Value","from","current","cancelled","loop","anim","loading","animation","isReduceMotionEnabled","then","reduce","sequence","timing","toValue","opacityTo","duration","useNativeDriver","opacityFrom","start","stop","a11y","accessible","accessibilityState","busy","circle","barStyle","card","borderWidth","borderColor","children","gap","spacing","flexDirection","alignItems","circleSize","height","borderRadius","radius","full","backgroundColor","flex","textBar","text","Array","length","_unused","i","__contract","skeleton"],"sourceRoot":"../../../src","sources":["components/Skeleton.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAClD,SACEC,iBAAiB,EACjBC,QAAQ,EACRC,IAAI,QAIC,cAAc;AACrB,SAASC,OAAO,QAAQ,cAAc;AACtC,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,SAAS,QAAQ,gCAAgC;AAC1D,SACEC,2BAA2B,EAC3BC,aAAa,EACbC,gBAAgB,EAChBC,qBAAqB,EACrBC,uBAAuB,QAElB,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAc9B,OAAO,SAASC,QAAQA,CAAC;EACvBC,OAAO,GAAG,MAAM;EAChBC,SAAS,GAAG,SAAS;EACrBC,KAAK,GAAG,MAAM;EACdC,KAAK,GAAG,CAAC;EACTC,kBAAkB,GAAG,OAAO;EAC5BC,KAAK;EACLC;AACa,CAAC,EAAE;EAChB,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGpB,QAAQ,CAAC,CAAC;EAClC,MAAMqB,MAAM,GAAG3B,OAAO,CAAC,MAAMY,uBAAuB,CAACa,KAAK,EAAEC,IAAI,EAAEP,SAAS,CAAC,EAAE,CAACM,KAAK,EAAEC,IAAI,EAAEP,SAAS,CAAC,CAAC;EACvG;EACA,MAAMS,OAAO,GAAG3B,MAAM,CAAC,IAAIE,QAAQ,CAAC0B,KAAK,CAACpB,aAAa,CAACqB,IAAI,CAAC,CAAC,CAACC,OAAO;EAEtEhC,SAAS,CAAC,MAAM;IACd,IAAIiC,SAAS,GAAG,KAAK;IACrB,IAAIC,IAAwC,GAAG,IAAI;IACnD;IACA,MAAMC,IAAI,GAAGvB,qBAAqB,CAACc,KAAK,CAAC,CAACU,OAAO,CAACC,SAAS;IAC3DlC,iBAAiB,CAACmC,qBAAqB,CAAC,CAAC,CAACC,IAAI,CAAEC,MAAM,IAAK;MACzD,IAAIP,SAAS,IAAIO,MAAM,EAAE;MACzBN,IAAI,GAAG9B,QAAQ,CAAC8B,IAAI,CAClB9B,QAAQ,CAACqC,QAAQ,CAAC,CAChBrC,QAAQ,CAACsC,MAAM,CAACb,OAAO,EAAE;QACvBc,OAAO,EAAER,IAAI,CAACS,SAAS;QACvBC,QAAQ,EAAEV,IAAI,CAACU,QAAQ;QACvBC,eAAe,EAAE;MACnB,CAAC,CAAC,EACF1C,QAAQ,CAACsC,MAAM,CAACb,OAAO,EAAE;QACvBc,OAAO,EAAER,IAAI,CAACY,WAAW;QACzBF,QAAQ,EAAEV,IAAI,CAACU,QAAQ;QACvBC,eAAe,EAAE;MACnB,CAAC,CAAC,CACH,CACH,CAAC;MACDZ,IAAI,CAACc,KAAK,CAAC,CAAC;IACd,CAAC,CAAC;IACF,OAAO,MAAM;MACXf,SAAS,GAAG,IAAI;MAChBC,IAAI,EAAEe,IAAI,CAAC,CAAC;IACd,CAAC;EACH,CAAC,EAAE,CAACpB,OAAO,EAAEH,KAAK,CAAC,CAAC;;EAEpB;EACA;EACA,MAAMwB,IAAI,GAAG;IACXC,UAAU,EAAE,IAAI;IAChBC,kBAAkB,EAAE;MAAEC,IAAI,EAAE;IAAK,CAAC;IAClC9B;EACF,CAAC;EAED,IAAIJ,OAAO,KAAK,QAAQ,EAAE;IACxB,oBACEJ,IAAA,CAACX,QAAQ,CAACC,IAAI;MAAA,GAAK6C,IAAI;MAAEzB,MAAM,EAAEA,MAAO;MAACD,KAAK,EAAE,CAACI,MAAM,CAAC0B,MAAM,CAAC9B,KAAK,EAAE;QAAEK;MAAQ,CAAC,EAAEL,KAAK;IAAE,CAAE,CAAC;EAEjG;EAEA,IAAIL,OAAO,KAAK,MAAM,EAAE;IACtB,MAAM;MAAEoC;IAAS,CAAC,GAAG3B,MAAM,CAAC4B,IAAI;IAChC,MAAM;MAAEC,WAAW;MAAEC;IAAY,CAAC,GAAG9B,MAAM,CAAC4B,IAAI,CAAChC,KAAK;IACtD,oBACET,IAAA,CAACT,OAAO;MAAA,GACFG,2BAA2B,CAACW,SAAS,CAAC;MAC1C;MACAI,KAAK,EAAE,CAAC;QAAEiC,WAAW;QAAEC;MAAY,CAAC,EAAElC,KAAK,CAAE;MAC7CC,MAAM,EAAEA,MAAO;MAAAkC,QAAA,eAEf1C,KAAA,CAACb,QAAQ,CAACC,IAAI;QAAA,GAAK6C,IAAI;QAAE1B,KAAK,EAAE;UAAEK,OAAO;UAAE+B,GAAG,EAAElC,KAAK,CAACmC,OAAO,CAAC,GAAG;QAAE,CAAE;QAAAF,QAAA,gBACnE1C,KAAA,CAACZ,IAAI;UAACmB,KAAK,EAAE;YAAEsC,aAAa,EAAE,KAAK;YAAEC,UAAU,EAAE,QAAQ;YAAEH,GAAG,EAAElC,KAAK,CAACmC,OAAO,CAAC,GAAG;UAAE,CAAE;UAAAF,QAAA,gBACnF5C,IAAA,CAACV,IAAI;YACHmB,KAAK,EAAE;cACLH,KAAK,EAAEV,gBAAgB,CAACqD,UAAU;cAClCC,MAAM,EAAEtD,gBAAgB,CAACqD,UAAU;cACnCE,YAAY,EAAExC,KAAK,CAACyC,MAAM,CAACC,IAAI;cAC/BC,eAAe,EAAEd,QAAQ,CAACc;YAC5B;UAAE,CACH,CAAC,eACFpD,KAAA,CAACZ,IAAI;YAACmB,KAAK,EAAE;cAAE8C,IAAI,EAAE,CAAC;cAAEV,GAAG,EAAElC,KAAK,CAACmC,OAAO,CAAC,GAAG;YAAE,CAAE;YAAAF,QAAA,gBAChD5C,IAAA,CAACV,IAAI;cAACmB,KAAK,EAAE,CAAC+B,QAAQ,EAAE;gBAAElC,KAAK,EAAE;cAAM,CAAC;YAAE,CAAE,CAAC,eAC7CN,IAAA,CAACV,IAAI;cAACmB,KAAK,EAAE,CAAC+B,QAAQ,EAAE;gBAAElC,KAAK,EAAE;cAAM,CAAC;YAAE,CAAE,CAAC;UAAA,CACzC,CAAC;QAAA,CACH,CAAC,eACPN,IAAA,CAACV,IAAI;UAACmB,KAAK,EAAE+B;QAAS,CAAE,CAAC,eACzBxC,IAAA,CAACV,IAAI;UAACmB,KAAK,EAAE,CAAC+B,QAAQ,EAAE;YAAElC,KAAK,EAAE;UAAM,CAAC;QAAE,CAAE,CAAC;MAAA,CAChC;IAAC,CACT,CAAC;EAEd;;EAEA;EACA,MAAM;IAAEuC,GAAG;IAAE,GAAGW;EAAQ,CAAC,GAAG3C,MAAM,CAAC4C,IAAI,CAAChD,KAAK;EAC7C,oBACET,IAAA,CAACX,QAAQ,CAACC,IAAI;IAAA,GAAK6C,IAAI;IAAEzB,MAAM,EAAEA,MAAO;IAACD,KAAK,EAAE,CAAC;MAAEoC,GAAG;MAAE/B;IAAQ,CAAC,EAAEL,KAAK,CAAE;IAAAmC,QAAA,EACvEc,KAAK,CAAC1C,IAAI,CAAC;MAAE2C,MAAM,EAAEpD;IAAM,CAAC,EAAE,CAACqD,OAAO,EAAEC,CAAC,kBACxC7D,IAAA,CAACV,IAAI;MAEHmB,KAAK,EAAE,CACL+C,OAAO;MACP;MACA;QAAElD,KAAK,EAAEC,KAAK,GAAG,CAAC,IAAIsD,CAAC,KAAKtD,KAAK,GAAG,CAAC,GAAG,KAAK,GAAGD;MAAM,CAAC;IACvD,GALGuD,CAMN,CACF;EAAC,CACW,CAAC;AAEpB;;AAEA;AACA;AACA1D,QAAQ,CAAC2D,UAAU,GAAGrE,SAAS,CAACsE,QAAQ","ignoreList":[]}
|
|
@@ -8,6 +8,13 @@
|
|
|
8
8
|
* との機械照合は scripts/lib/card-conformance.test.ts が行う。
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
export const CARD_SPEC = {
|
|
12
|
+
radius: "lg",
|
|
13
|
+
padding: "6",
|
|
14
|
+
elevation: "sm",
|
|
15
|
+
pressedElevation: "md",
|
|
16
|
+
flatElevation: "none"
|
|
17
|
+
};
|
|
11
18
|
/** variant → インタラクティブ(Pressable)か。action/link のみ true(recipe pressedStyle の有無と対応)。 */
|
|
12
19
|
export const CARD_INTERACTIVE = {
|
|
13
20
|
basic: false,
|
|
@@ -25,26 +32,26 @@ export const CARD_INTERACTIVE = {
|
|
|
25
32
|
* 消えるため(contract は media でも elevation.sm 要求)。media のクリップは内側の clip View で行う。
|
|
26
33
|
* - media は内側 clip View が padding を持つ(resolveCardBodyStyle / recipe bodyStyle)ので外枠は padding なし。
|
|
27
34
|
*/
|
|
28
|
-
export function resolveCardShape(theme, mode, variant, pressed = false) {
|
|
35
|
+
export function resolveCardShape(theme, mode, variant, pressed = false, elevation = "default") {
|
|
29
36
|
const sem = theme.color.semantic[mode];
|
|
30
|
-
const
|
|
37
|
+
const elevationKey = elevation === "none" ? CARD_SPEC.flatElevation : pressed && CARD_INTERACTIVE[variant] ? CARD_SPEC.pressedElevation : CARD_SPEC.elevation;
|
|
31
38
|
return {
|
|
32
39
|
backgroundColor: sem["bg-surface"],
|
|
33
|
-
borderRadius: theme.radius.
|
|
40
|
+
borderRadius: theme.radius[CARD_SPEC.radius],
|
|
34
41
|
borderWidth: 1,
|
|
35
42
|
borderColor: sem["border-default"],
|
|
36
43
|
// media は内側 clip View が padding を持つので外枠は padding なし。
|
|
37
44
|
...(variant === "media" ? null : {
|
|
38
|
-
padding: theme.spacing[
|
|
45
|
+
padding: theme.spacing[CARD_SPEC.padding]
|
|
39
46
|
}),
|
|
40
|
-
...theme.elevation[
|
|
47
|
+
...theme.elevation[elevationKey]
|
|
41
48
|
};
|
|
42
49
|
}
|
|
43
50
|
|
|
44
51
|
/** media の body padding(内側 clip View 側が持つ。recipe bodyStyle の写像)。media 以外は undefined。 */
|
|
45
52
|
export function resolveCardBodyStyle(theme, variant) {
|
|
46
53
|
return variant === "media" ? {
|
|
47
|
-
padding: theme.spacing[
|
|
54
|
+
padding: theme.spacing[CARD_SPEC.padding]
|
|
48
55
|
} : undefined;
|
|
49
56
|
}
|
|
50
57
|
//# sourceMappingURL=card.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CARD_INTERACTIVE","basic","media","action","link","resolveCardShape","theme","mode","variant","pressed","sem","color","semantic","
|
|
1
|
+
{"version":3,"names":["CARD_SPEC","radius","padding","elevation","pressedElevation","flatElevation","CARD_INTERACTIVE","basic","media","action","link","resolveCardShape","theme","mode","variant","pressed","sem","color","semantic","elevationKey","backgroundColor","borderRadius","borderWidth","borderColor","spacing","resolveCardBodyStyle","undefined"],"sourceRoot":"../../../src","sources":["components/card.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,OAAO,MAAMA,SAAS,GAAG;EACvBC,MAAM,EAAE,IAAI;EAAEC,OAAO,EAAE,GAAG;EAAEC,SAAS,EAAE,IAAI;EAAEC,gBAAgB,EAAE,IAAI;EAAEC,aAAa,EAAE;AACtF,CAAqJ;AAIrJ;AACA,OAAO,MAAMC,gBAA8C,GAAG;EAC5DC,KAAK,EAAE,KAAK;EACZC,KAAK,EAAE,KAAK;EACZC,MAAM,EAAE,IAAI;EACZC,IAAI,EAAE;AACR,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,KAAkB,EAClBC,IAAe,EACfC,OAAoB,EACpBC,OAAO,GAAG,KAAK,EACfZ,SAA6B,GAAG,SAAS,EAC9B;EACX,MAAMa,GAAG,GAAGJ,KAAK,CAACK,KAAK,CAACC,QAAQ,CAACL,IAAI,CAAC;EACtC,MAAMM,YAAY,GAAGhB,SAAS,KAAK,MAAM,GAAGH,SAAS,CAACK,aAAa,GAC/DU,OAAO,IAAIT,gBAAgB,CAACQ,OAAO,CAAC,GAAGd,SAAS,CAACI,gBAAgB,GAAGJ,SAAS,CAACG,SAAS;EAC3F,OAAO;IACLiB,eAAe,EAAEJ,GAAG,CAAC,YAAY,CAAC;IAClCK,YAAY,EAAET,KAAK,CAACX,MAAM,CAACD,SAAS,CAACC,MAAM,CAAC;IAC5CqB,WAAW,EAAE,CAAC;IACdC,WAAW,EAAEP,GAAG,CAAC,gBAAgB,CAAC;IAClC;IACA,IAAIF,OAAO,KAAK,OAAO,GAAG,IAAI,GAAG;MAAEZ,OAAO,EAAEU,KAAK,CAACY,OAAO,CAACxB,SAAS,CAACE,OAAO;IAAE,CAAC,CAAC;IAC/E,GAAGU,KAAK,CAACT,SAAS,CAACgB,YAAY;EACjC,CAAC;AACH;;AAEA;AACA,OAAO,SAASM,oBAAoBA,CAClCb,KAAkB,EAClBE,OAAoB,EACa;EACjC,OAAOA,OAAO,KAAK,OAAO,GAAG;IAAEZ,OAAO,EAAEU,KAAK,CAACY,OAAO,CAACxB,SAAS,CAACE,OAAO;EAAE,CAAC,GAAGwB,SAAS;AACxF","ignoreList":[]}
|
|
@@ -22,6 +22,14 @@ export const CARD_SURFACE_SPEC = {
|
|
|
22
22
|
padding: "6"
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
+
/** Surface と resolver は同じ elevation 選択を共有する。 */
|
|
26
|
+
export function resolveSkeletonSurfaceProps(elevation = "default") {
|
|
27
|
+
return {
|
|
28
|
+
...CARD_SURFACE_SPEC,
|
|
29
|
+
elevation: elevation === "none" ? "none" : CARD_SURFACE_SPEC.elevation
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
25
33
|
/** バー / アバター円の寸法。recipe と同じく token に対応が無い literal(recipe description 参照)。 */
|
|
26
34
|
export const SKELETON_METRICS = {
|
|
27
35
|
/** text variant の行バー高さ */
|
|
@@ -50,7 +58,7 @@ export const PULSE_OPACITY = {
|
|
|
50
58
|
* バーの色は text / circle / card すべて border-default(contract に忠実、§1 Agent m2)。
|
|
51
59
|
* card の土台は CARD_SURFACE_SPEC のキーから解決する(component 側の Surface props と同源)。
|
|
52
60
|
*/
|
|
53
|
-
export function resolveSkeletonVariants(theme, mode) {
|
|
61
|
+
export function resolveSkeletonVariants(theme, mode, elevation = "default") {
|
|
54
62
|
const sem = theme.color.semantic[mode];
|
|
55
63
|
const bar = sem["border-default"];
|
|
56
64
|
return {
|
|
@@ -70,20 +78,23 @@ export function resolveSkeletonVariants(theme, mode) {
|
|
|
70
78
|
backgroundColor: bar
|
|
71
79
|
}
|
|
72
80
|
},
|
|
73
|
-
card
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
// card を使う時だけ影を解決する。text/circle は影のトークンを読まない。
|
|
82
|
+
get card() {
|
|
83
|
+
return {
|
|
84
|
+
style: {
|
|
85
|
+
backgroundColor: sem[CARD_SURFACE_SPEC.bg],
|
|
86
|
+
borderRadius: theme.radius[CARD_SURFACE_SPEC.radius],
|
|
87
|
+
borderWidth: 1,
|
|
88
|
+
borderColor: bar,
|
|
89
|
+
padding: theme.spacing[CARD_SURFACE_SPEC.padding],
|
|
90
|
+
elevation: theme.elevation[resolveSkeletonSurfaceProps(elevation).elevation]
|
|
91
|
+
},
|
|
92
|
+
barStyle: {
|
|
93
|
+
height: SKELETON_METRICS.cardBarHeight,
|
|
94
|
+
borderRadius: theme.radius.sm,
|
|
95
|
+
backgroundColor: bar
|
|
96
|
+
}
|
|
97
|
+
};
|
|
87
98
|
}
|
|
88
99
|
};
|
|
89
100
|
}
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"names":["CARD_SURFACE_SPEC","bg","radius","elevation","padding","resolveSkeletonSurfaceProps","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":"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","ignoreList":[]}
|
|
@@ -33,6 +33,8 @@
|
|
|
33
33
|
import { type ReactElement, type ReactNode } from "react";
|
|
34
34
|
import { type StyleProp, type ViewStyle } from "react-native";
|
|
35
35
|
interface CardBase {
|
|
36
|
+
/** none は押下中も影なし。省略時は従来の影を維持する。 */
|
|
37
|
+
elevation?: "default" | "none";
|
|
36
38
|
header?: ReactNode;
|
|
37
39
|
footer?: ReactNode;
|
|
38
40
|
media?: ReactNode;
|
|
@@ -55,7 +57,7 @@ type CardProps = CardBase & ({
|
|
|
55
57
|
*/
|
|
56
58
|
primaryAction: ReactElement;
|
|
57
59
|
});
|
|
58
|
-
export declare function Card({ variant, header, footer, media, onPress, primaryAction, style, testID, children, }: CardProps): import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
export declare function Card({ variant, elevation, header, footer, media, onPress, primaryAction, style, testID, children, }: CardProps): import("react/jsx-runtime").JSX.Element;
|
|
59
61
|
export declare namespace Card {
|
|
60
62
|
var __contract: {
|
|
61
63
|
readonly id: "card";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/components/Card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAa,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAgB/E,UAAU,QAAQ;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,QAAQ,EAAE,SAAS,CAAC;CACrB;AAID,KAAK,SAAS,GAAG,QAAQ,GACvB,CACI;IAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,aAAa,CAAC,EAAE,KAAK,CAAA;CAAE,GACvE;IACE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,aAAa,EAAE,YAAY,CAAC;CAC7B,CACJ,CAAC;AAEJ,wBAAgB,IAAI,CAAC,EACnB,OAAiB,EACjB,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,aAAa,EACb,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE,SAAS,2CAyDX;
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/components/Card.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAa,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAgB/E,UAAU,QAAQ;IAChB,mCAAmC;IACnC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,QAAQ,EAAE,SAAS,CAAC;CACrB;AAID,KAAK,SAAS,GAAG,QAAQ,GACvB,CACI;IAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,aAAa,CAAC,EAAE,KAAK,CAAA;CAAE,GACvE;IACE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,aAAa,EAAE,YAAY,CAAC;CAC7B,CACJ,CAAC;AAEJ,wBAAgB,IAAI,CAAC,EACnB,OAAiB,EACjB,SAAqB,EACrB,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACP,aAAa,EACb,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE,SAAS,2CAyDX;yBApEe,IAAI"}
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
import { type DimensionValue, type StyleProp, type ViewStyle } from "react-native";
|
|
16
16
|
import { type SkeletonVariant } from "./skeleton.styles.js";
|
|
17
17
|
interface SkeletonProps {
|
|
18
|
+
/** card の影。text/circle は影を使用しない。 */
|
|
19
|
+
elevation?: "default" | "none";
|
|
18
20
|
variant?: SkeletonVariant;
|
|
19
21
|
width?: DimensionValue;
|
|
20
22
|
/** text variant の行数。 */
|
|
@@ -23,7 +25,7 @@ interface SkeletonProps {
|
|
|
23
25
|
style?: StyleProp<ViewStyle>;
|
|
24
26
|
testID?: string;
|
|
25
27
|
}
|
|
26
|
-
export declare function Skeleton({ variant, width, lines, accessibilityLabel, style, testID, }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function Skeleton({ variant, elevation, width, lines, accessibilityLabel, style, testID, }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
27
29
|
export declare namespace Skeleton {
|
|
28
30
|
var __contract: {
|
|
29
31
|
readonly id: "skeleton";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../../src/components/Skeleton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,EACvB,OAAgB,EAChB,KAAc,EACd,KAAS,EACT,kBAA4B,EAC5B,KAAK,EACL,MAAM,GACP,EAAE,aAAa,2CAiGf;
|
|
1
|
+
{"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../../src/components/Skeleton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAE9B,UAAU,aAAa;IACrB,oCAAoC;IACpC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC/B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,EACvB,OAAgB,EAChB,SAAqB,EACrB,KAAc,EACd,KAAS,EACT,kBAA4B,EAC5B,KAAK,EACL,MAAM,GACP,EAAE,aAAa,2CAiGf;yBAzGe,QAAQ"}
|
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { ViewStyle } from "react-native";
|
|
9
9
|
import type { NativeTheme, ThemeMode } from "../theme/index.js";
|
|
10
|
+
export declare const CARD_SPEC: {
|
|
11
|
+
readonly radius: "lg";
|
|
12
|
+
readonly padding: "6";
|
|
13
|
+
readonly elevation: "sm";
|
|
14
|
+
readonly pressedElevation: "md";
|
|
15
|
+
readonly flatElevation: "none";
|
|
16
|
+
};
|
|
10
17
|
export type CardVariant = "basic" | "media" | "action" | "link";
|
|
11
18
|
/** variant → インタラクティブ(Pressable)か。action/link のみ true(recipe pressedStyle の有無と対応)。 */
|
|
12
19
|
export declare const CARD_INTERACTIVE: Record<CardVariant, boolean>;
|
|
@@ -19,7 +26,7 @@ export declare const CARD_INTERACTIVE: Record<CardVariant, boolean>;
|
|
|
19
26
|
* 消えるため(contract は media でも elevation.sm 要求)。media のクリップは内側の clip View で行う。
|
|
20
27
|
* - media は内側 clip View が padding を持つ(resolveCardBodyStyle / recipe bodyStyle)ので外枠は padding なし。
|
|
21
28
|
*/
|
|
22
|
-
export declare function resolveCardShape(theme: NativeTheme, mode: ThemeMode, variant: CardVariant, pressed?: boolean): ViewStyle;
|
|
29
|
+
export declare function resolveCardShape(theme: NativeTheme, mode: ThemeMode, variant: CardVariant, pressed?: boolean, elevation?: "default" | "none"): ViewStyle;
|
|
23
30
|
/** media の body padding(内側 clip View 側が持つ。recipe bodyStyle の写像)。media 以外は undefined。 */
|
|
24
31
|
export declare function resolveCardBodyStyle(theme: NativeTheme, variant: CardVariant): {
|
|
25
32
|
padding: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/card.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"card.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/card.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAuC,MAAM,mBAAmB,CAAC;AAErG,eAAO,MAAM,SAAS;;;;;;CAE+H,CAAC;AAEtJ,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEhE,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAKzD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,WAAW,EACpB,OAAO,UAAQ,EACf,SAAS,GAAE,SAAS,GAAG,MAAkB,GACxC,SAAS,CAaX;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,WAAW,GACnB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAEjC"}
|
|
@@ -20,6 +20,13 @@ export declare const CARD_SURFACE_SPEC: {
|
|
|
20
20
|
readonly elevation: "sm";
|
|
21
21
|
readonly padding: "6";
|
|
22
22
|
};
|
|
23
|
+
/** Surface と resolver は同じ elevation 選択を共有する。 */
|
|
24
|
+
export declare function resolveSkeletonSurfaceProps(elevation?: "default" | "none"): {
|
|
25
|
+
elevation: "sm" | "none";
|
|
26
|
+
bg: "bg-surface";
|
|
27
|
+
radius: "lg";
|
|
28
|
+
padding: "6";
|
|
29
|
+
};
|
|
23
30
|
/** バー / アバター円の寸法。recipe と同じく token に対応が無い literal(recipe description 参照)。 */
|
|
24
31
|
export declare const SKELETON_METRICS: {
|
|
25
32
|
/** text variant の行バー高さ */
|
|
@@ -77,7 +84,7 @@ export interface SkeletonVariantStyles {
|
|
|
77
84
|
* バーの色は text / circle / card すべて border-default(contract に忠実、§1 Agent m2)。
|
|
78
85
|
* card の土台は CARD_SURFACE_SPEC のキーから解決する(component 側の Surface props と同源)。
|
|
79
86
|
*/
|
|
80
|
-
export declare function resolveSkeletonVariants(theme: NativeTheme, mode: ThemeMode): SkeletonVariantStyles;
|
|
87
|
+
export declare function resolveSkeletonVariants(theme: NativeTheme, mode: ThemeMode, elevation?: "default" | "none"): SkeletonVariantStyles;
|
|
81
88
|
/** states ごとの slot 構成(recipe の states.*.style / animation と 1:1)。 */
|
|
82
89
|
export interface SkeletonStateStyles {
|
|
83
90
|
loading: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/skeleton.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,cAAc,EACd,WAAW,EAIX,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AACzD,oEAAoE;AACpE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;CAU7B,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB;IAC3B,0BAA0B;;IAE1B,0BAA0B;;IAE1B,sCAAsC;;CAE9B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa;;;CAAgC,CAAC;AAE3D,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,IAAI,EAAE;QAAE,KAAK,EAAE,gBAAgB,GAAG;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACpD,MAAM,EAAE;QACN,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC;KACzF,CAAC;IACF,IAAI,EAAE;QACJ,6EAA6E;QAC7E,KAAK,EAAE;YACL,eAAe,EAAE,MAAM,CAAC;YACxB,YAAY,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,cAAc,CAAC;SAC3B,CAAC;QACF,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,GAAG,qBAAqB,
|
|
1
|
+
{"version":3,"file":"skeleton.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/skeleton.styles.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,cAAc,EACd,WAAW,EAIX,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AACzD,oEAAoE;AACpE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;CAU7B,CAAC;AAEF,gDAAgD;AAChD,wBAAgB,2BAA2B,CAAC,SAAS,GAAE,SAAS,GAAG,MAAkB;;;;;EAEpF;AAED,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB;IAC3B,0BAA0B;;IAE1B,0BAA0B;;IAE1B,sCAAsC;;CAE9B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa;;;CAAgC,CAAC;AAE3D,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,IAAI,EAAE;QAAE,KAAK,EAAE,gBAAgB,GAAG;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACpD,MAAM,EAAE;QACN,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC;KACzF,CAAC;IACF,IAAI,EAAE;QACJ,6EAA6E;QAC7E,KAAK,EAAE;YACL,eAAe,EAAE,MAAM,CAAC;YACxB,YAAY,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,MAAM,CAAC;YACpB,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,cAAc,CAAC;SAC3B,CAAC;QACF,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAE,SAAS,GAAG,MAAkB,GAAG,qBAAqB,CAqC7I;AAED,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE;QACP,2BAA2B;QAC3B,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3B,yDAAyD;QACzD,SAAS,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;KACzE,CAAC;IACF,8CAA8C;IAC9C,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;KAAE,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAY7E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "melta-app",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "melta for APP — melta デザインシステムの React Native UI kit。melta-contracts(デザイン契約)を single source of truth に RN 実装でその契約を満たす。アプリ本体ではなくライブラリ。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://app.melta.tsubotax.com",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"@types/react": "~19.2.2",
|
|
87
87
|
"eslint": "^10.4.1",
|
|
88
88
|
"jest": "^29.7.0",
|
|
89
|
-
"melta-contracts": "0.9.
|
|
89
|
+
"melta-contracts": "0.9.1",
|
|
90
90
|
"react": "19.2.3",
|
|
91
91
|
"react-native": "0.85.3",
|
|
92
92
|
"react-native-builder-bob": "^0.40.13",
|
package/src/components/Card.tsx
CHANGED
|
@@ -49,6 +49,8 @@ import { validateCardProps } from "./card.validate.js";
|
|
|
49
49
|
const reported = new Set<string>();
|
|
50
50
|
|
|
51
51
|
interface CardBase {
|
|
52
|
+
/** none は押下中も影なし。省略時は従来の影を維持する。 */
|
|
53
|
+
elevation?: "default" | "none";
|
|
52
54
|
header?: ReactNode;
|
|
53
55
|
footer?: ReactNode;
|
|
54
56
|
media?: ReactNode;
|
|
@@ -77,6 +79,7 @@ type CardProps = CardBase &
|
|
|
77
79
|
|
|
78
80
|
export function Card({
|
|
79
81
|
variant = "basic",
|
|
82
|
+
elevation = "default",
|
|
80
83
|
header,
|
|
81
84
|
footer,
|
|
82
85
|
media,
|
|
@@ -121,7 +124,7 @@ export function Card({
|
|
|
121
124
|
|
|
122
125
|
if (!interactive) {
|
|
123
126
|
return (
|
|
124
|
-
<View role="article" testID={testID} style={[resolveCardShape(theme, mode, variant), style]}>
|
|
127
|
+
<View role="article" testID={testID} style={[resolveCardShape(theme, mode, variant, false, elevation), style]}>
|
|
125
128
|
{content}
|
|
126
129
|
</View>
|
|
127
130
|
);
|
|
@@ -137,7 +140,7 @@ export function Card({
|
|
|
137
140
|
// 独立した操作要素として読み上げられる(既定の Pressable は子を畳んでしまう)。
|
|
138
141
|
accessible={false}
|
|
139
142
|
testID={testID}
|
|
140
|
-
style={({ pressed }) => [resolveCardShape(theme, mode, variant, pressed), style]}
|
|
143
|
+
style={({ pressed }) => [resolveCardShape(theme, mode, variant, pressed, elevation), style]}
|
|
141
144
|
>
|
|
142
145
|
{content}
|
|
143
146
|
</Pressable>
|
|
@@ -26,7 +26,7 @@ import { Surface } from "./Surface.js";
|
|
|
26
26
|
import { useTheme } from "../theme/index.js";
|
|
27
27
|
import { CONTRACTS } from "../contracts/contract-types.js";
|
|
28
28
|
import {
|
|
29
|
-
|
|
29
|
+
resolveSkeletonSurfaceProps,
|
|
30
30
|
PULSE_OPACITY,
|
|
31
31
|
SKELETON_METRICS,
|
|
32
32
|
resolveSkeletonStates,
|
|
@@ -35,6 +35,8 @@ import {
|
|
|
35
35
|
} from "./skeleton.styles.js";
|
|
36
36
|
|
|
37
37
|
interface SkeletonProps {
|
|
38
|
+
/** card の影。text/circle は影を使用しない。 */
|
|
39
|
+
elevation?: "default" | "none";
|
|
38
40
|
variant?: SkeletonVariant;
|
|
39
41
|
width?: DimensionValue;
|
|
40
42
|
/** text variant の行数。 */
|
|
@@ -46,6 +48,7 @@ interface SkeletonProps {
|
|
|
46
48
|
|
|
47
49
|
export function Skeleton({
|
|
48
50
|
variant = "text",
|
|
51
|
+
elevation = "default",
|
|
49
52
|
width = "100%",
|
|
50
53
|
lines = 1,
|
|
51
54
|
accessibilityLabel = "読み込み中",
|
|
@@ -53,7 +56,7 @@ export function Skeleton({
|
|
|
53
56
|
testID,
|
|
54
57
|
}: SkeletonProps) {
|
|
55
58
|
const { theme, mode } = useTheme();
|
|
56
|
-
const styles = useMemo(() => resolveSkeletonVariants(theme, mode), [theme, mode]);
|
|
59
|
+
const styles = useMemo(() => resolveSkeletonVariants(theme, mode, elevation), [theme, mode, elevation]);
|
|
57
60
|
// 初期値 opacityFrom = 非アニメ(reduce-motion でも光らない)。reduce-motion OFF を確認後にのみ loop で揺らす。
|
|
58
61
|
const opacity = useRef(new Animated.Value(PULSE_OPACITY.from)).current;
|
|
59
62
|
|
|
@@ -105,7 +108,7 @@ export function Skeleton({
|
|
|
105
108
|
const { borderWidth, borderColor } = styles.card.style;
|
|
106
109
|
return (
|
|
107
110
|
<Surface
|
|
108
|
-
{...
|
|
111
|
+
{...resolveSkeletonSurfaceProps(elevation)}
|
|
109
112
|
// contract skeleton.card は border-default を要求(Surface は border を出さないので Skeleton で付与)。
|
|
110
113
|
style={[{ borderWidth, borderColor }, style]}
|
|
111
114
|
testID={testID}
|
|
@@ -7,7 +7,11 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import type { ViewStyle } from "react-native";
|
|
10
|
-
import type { NativeTheme, ThemeMode, ElevationKey } from "../theme/index.js";
|
|
10
|
+
import type { NativeTheme, ThemeMode, ElevationKey, RadiusKey, SpacingKey } from "../theme/index.js";
|
|
11
|
+
|
|
12
|
+
export const CARD_SPEC = {
|
|
13
|
+
radius: "lg", padding: "6", elevation: "sm", pressedElevation: "md", flatElevation: "none",
|
|
14
|
+
} as const satisfies { radius: RadiusKey; padding: SpacingKey; elevation: ElevationKey; pressedElevation: ElevationKey; flatElevation: ElevationKey };
|
|
11
15
|
|
|
12
16
|
export type CardVariant = "basic" | "media" | "action" | "link";
|
|
13
17
|
|
|
@@ -33,17 +37,19 @@ export function resolveCardShape(
|
|
|
33
37
|
mode: ThemeMode,
|
|
34
38
|
variant: CardVariant,
|
|
35
39
|
pressed = false,
|
|
40
|
+
elevation: "default" | "none" = "default",
|
|
36
41
|
): ViewStyle {
|
|
37
42
|
const sem = theme.color.semantic[mode];
|
|
38
|
-
const
|
|
43
|
+
const elevationKey = elevation === "none" ? CARD_SPEC.flatElevation
|
|
44
|
+
: pressed && CARD_INTERACTIVE[variant] ? CARD_SPEC.pressedElevation : CARD_SPEC.elevation;
|
|
39
45
|
return {
|
|
40
46
|
backgroundColor: sem["bg-surface"],
|
|
41
|
-
borderRadius: theme.radius.
|
|
47
|
+
borderRadius: theme.radius[CARD_SPEC.radius],
|
|
42
48
|
borderWidth: 1,
|
|
43
49
|
borderColor: sem["border-default"],
|
|
44
50
|
// media は内側 clip View が padding を持つので外枠は padding なし。
|
|
45
|
-
...(variant === "media" ? null : { padding: theme.spacing[
|
|
46
|
-
...theme.elevation[
|
|
51
|
+
...(variant === "media" ? null : { padding: theme.spacing[CARD_SPEC.padding] }),
|
|
52
|
+
...theme.elevation[elevationKey],
|
|
47
53
|
};
|
|
48
54
|
}
|
|
49
55
|
|
|
@@ -52,5 +58,5 @@ export function resolveCardBodyStyle(
|
|
|
52
58
|
theme: NativeTheme,
|
|
53
59
|
variant: CardVariant,
|
|
54
60
|
): { padding: number } | undefined {
|
|
55
|
-
return variant === "media" ? { padding: theme.spacing[
|
|
61
|
+
return variant === "media" ? { padding: theme.spacing[CARD_SPEC.padding] } : undefined;
|
|
56
62
|
}
|
|
@@ -37,6 +37,11 @@ export const CARD_SURFACE_SPEC = {
|
|
|
37
37
|
padding: SpacingKey;
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
+
/** Surface と resolver は同じ elevation 選択を共有する。 */
|
|
41
|
+
export function resolveSkeletonSurfaceProps(elevation: "default" | "none" = "default") {
|
|
42
|
+
return { ...CARD_SURFACE_SPEC, elevation: elevation === "none" ? "none" as const : CARD_SURFACE_SPEC.elevation };
|
|
43
|
+
}
|
|
44
|
+
|
|
40
45
|
/** バー / アバター円の寸法。recipe と同じく token に対応が無い literal(recipe description 参照)。 */
|
|
41
46
|
export const SKELETON_METRICS = {
|
|
42
47
|
/** text variant の行バー高さ */
|
|
@@ -86,7 +91,7 @@ export interface SkeletonVariantStyles {
|
|
|
86
91
|
* バーの色は text / circle / card すべて border-default(contract に忠実、§1 Agent m2)。
|
|
87
92
|
* card の土台は CARD_SURFACE_SPEC のキーから解決する(component 側の Surface props と同源)。
|
|
88
93
|
*/
|
|
89
|
-
export function resolveSkeletonVariants(theme: NativeTheme, mode: ThemeMode): SkeletonVariantStyles {
|
|
94
|
+
export function resolveSkeletonVariants(theme: NativeTheme, mode: ThemeMode, elevation: "default" | "none" = "default"): SkeletonVariantStyles {
|
|
90
95
|
const sem = theme.color.semantic[mode];
|
|
91
96
|
const bar = sem["border-default"];
|
|
92
97
|
return {
|
|
@@ -106,21 +111,22 @@ export function resolveSkeletonVariants(theme: NativeTheme, mode: ThemeMode): Sk
|
|
|
106
111
|
backgroundColor: bar,
|
|
107
112
|
},
|
|
108
113
|
},
|
|
109
|
-
card
|
|
114
|
+
// card を使う時だけ影を解決する。text/circle は影のトークンを読まない。
|
|
115
|
+
get card() { return {
|
|
110
116
|
style: {
|
|
111
117
|
backgroundColor: sem[CARD_SURFACE_SPEC.bg],
|
|
112
118
|
borderRadius: theme.radius[CARD_SURFACE_SPEC.radius],
|
|
113
119
|
borderWidth: 1,
|
|
114
120
|
borderColor: bar,
|
|
115
121
|
padding: theme.spacing[CARD_SURFACE_SPEC.padding],
|
|
116
|
-
elevation: theme.elevation[
|
|
122
|
+
elevation: theme.elevation[resolveSkeletonSurfaceProps(elevation).elevation],
|
|
117
123
|
},
|
|
118
124
|
barStyle: {
|
|
119
125
|
height: SKELETON_METRICS.cardBarHeight,
|
|
120
126
|
borderRadius: theme.radius.sm,
|
|
121
127
|
backgroundColor: bar,
|
|
122
128
|
},
|
|
123
|
-
},
|
|
129
|
+
}; },
|
|
124
130
|
};
|
|
125
131
|
}
|
|
126
132
|
|