melta-app 0.5.3 → 0.7.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/README.md +493 -186
- package/docs/architecture.md +99 -0
- package/eslint-rules/melta.d.mts +44 -0
- package/lib/module/a11y/tap-target.js +41 -0
- package/lib/module/a11y/tap-target.js.map +1 -0
- package/lib/module/components/ActionSheet.js +20 -6
- package/lib/module/components/ActionSheet.js.map +1 -1
- package/lib/module/components/Alert.js +11 -7
- package/lib/module/components/Alert.js.map +1 -1
- package/lib/module/components/Avatar.js +7 -2
- package/lib/module/components/Avatar.js.map +1 -1
- package/lib/module/components/BottomSheet.js +11 -3
- package/lib/module/components/BottomSheet.js.map +1 -1
- package/lib/module/components/Card.js +4 -3
- package/lib/module/components/Card.js.map +1 -1
- package/lib/module/components/Checkbox.js +8 -5
- package/lib/module/components/Checkbox.js.map +1 -1
- package/lib/module/components/EmptyState.js +2 -1
- package/lib/module/components/EmptyState.js.map +1 -1
- package/lib/module/components/Header.js.map +1 -1
- package/lib/module/components/Image.js +5 -3
- package/lib/module/components/Image.js.map +1 -1
- package/lib/module/components/Modal.js +12 -4
- package/lib/module/components/Modal.js.map +1 -1
- package/lib/module/components/Progress.js +2 -1
- package/lib/module/components/Progress.js.map +1 -1
- package/lib/module/components/Radio.js +11 -3
- package/lib/module/components/Radio.js.map +1 -1
- package/lib/module/components/Screen.js +28 -3
- package/lib/module/components/Screen.js.map +1 -1
- package/lib/module/components/Skeleton.js +2 -1
- package/lib/module/components/Skeleton.js.map +1 -1
- package/lib/module/components/Surface.js +2 -1
- package/lib/module/components/Surface.js.map +1 -1
- package/lib/module/components/TextField.js +16 -4
- package/lib/module/components/TextField.js.map +1 -1
- package/lib/module/components/Toast.js +17 -9
- package/lib/module/components/Toast.js.map +1 -1
- package/lib/module/components/Toggle.js +13 -4
- package/lib/module/components/Toggle.js.map +1 -1
- package/lib/module/components/alert.styles.js +12 -26
- package/lib/module/components/alert.styles.js.map +1 -1
- package/lib/module/components/avatar.styles.js +24 -2
- package/lib/module/components/avatar.styles.js.map +1 -1
- package/lib/module/components/card.validate.js.map +1 -1
- package/lib/module/components/checkbox.styles.js +5 -2
- package/lib/module/components/checkbox.styles.js.map +1 -1
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/modal.styles.js +9 -0
- package/lib/module/components/modal.styles.js.map +1 -1
- package/lib/module/components/radio.styles.js +11 -2
- package/lib/module/components/radio.styles.js.map +1 -1
- package/lib/module/components/safe-area-registry.js +64 -13
- package/lib/module/components/safe-area-registry.js.map +1 -1
- package/lib/module/components/status-colors.js +53 -0
- package/lib/module/components/status-colors.js.map +1 -0
- package/lib/module/components/textfield.styles.js +15 -8
- package/lib/module/components/textfield.styles.js.map +1 -1
- package/lib/module/components/toast.styles.js +36 -25
- package/lib/module/components/toast.styles.js.map +1 -1
- package/lib/module/components/toggle.styles.js +20 -0
- package/lib/module/components/toggle.styles.js.map +1 -1
- package/lib/module/icons/Icon.js +4 -1
- package/lib/module/icons/Icon.js.map +1 -1
- package/lib/module/icons/icon.styles.js +32 -1
- package/lib/module/icons/icon.styles.js.map +1 -1
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/primitives/Button.js +23 -11
- package/lib/module/primitives/Button.js.map +1 -1
- package/lib/module/primitives/Metric.js +2 -1
- package/lib/module/primitives/Metric.js.map +1 -1
- package/lib/module/primitives/Row.js.map +1 -1
- package/lib/module/primitives/Stack.js.map +1 -1
- package/lib/module/primitives/Tag.js +15 -7
- package/lib/module/primitives/Tag.js.map +1 -1
- package/lib/module/primitives/Text.js +28 -7
- package/lib/module/primitives/Text.js.map +1 -1
- package/lib/module/primitives/_internal/focus-ring.js.map +1 -1
- package/lib/module/primitives/button.styles.js +58 -8
- package/lib/module/primitives/button.styles.js.map +1 -1
- package/lib/module/primitives/index.js.map +1 -1
- package/lib/module/primitives/metric.styles.js +4 -1
- package/lib/module/primitives/metric.styles.js.map +1 -1
- package/lib/module/primitives/tag.styles.js +42 -3
- package/lib/module/primitives/tag.styles.js.map +1 -1
- package/lib/module/primitives/text.styles.js +10 -5
- package/lib/module/primitives/text.styles.js.map +1 -1
- package/lib/module/safe-area/index.js +11 -5
- package/lib/module/safe-area/index.js.map +1 -1
- package/lib/module/theme/ThemeProvider.js +5 -2
- package/lib/module/theme/ThemeProvider.js.map +1 -1
- package/lib/module/theme/define-theme.js +27 -1
- package/lib/module/theme/define-theme.js.map +1 -1
- package/lib/module/theme/index.js +7 -8
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/theme/letter-spacing.js +20 -0
- package/lib/module/theme/letter-spacing.js.map +1 -0
- package/lib/module/theme/line-height.js +52 -0
- package/lib/module/theme/line-height.js.map +1 -0
- package/lib/module/theme/native-theme.js +8 -7
- package/lib/module/theme/native-theme.js.map +1 -1
- package/lib/typescript/src/a11y/tap-target.d.ts +34 -0
- package/lib/typescript/src/a11y/tap-target.d.ts.map +1 -0
- package/lib/typescript/src/components/ActionSheet.d.ts +8 -1
- package/lib/typescript/src/components/ActionSheet.d.ts.map +1 -1
- package/lib/typescript/src/components/Alert.d.ts +9 -2
- package/lib/typescript/src/components/Alert.d.ts.map +1 -1
- package/lib/typescript/src/components/Avatar.d.ts +1 -1
- package/lib/typescript/src/components/Avatar.d.ts.map +1 -1
- package/lib/typescript/src/components/BottomSheet.d.ts +4 -1
- package/lib/typescript/src/components/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/src/components/Card.d.ts +2 -2
- package/lib/typescript/src/components/Checkbox.d.ts +3 -3
- package/lib/typescript/src/components/Checkbox.d.ts.map +1 -1
- package/lib/typescript/src/components/Image.d.ts +4 -3
- package/lib/typescript/src/components/Image.d.ts.map +1 -1
- package/lib/typescript/src/components/Modal.d.ts +9 -3
- package/lib/typescript/src/components/Modal.d.ts.map +1 -1
- package/lib/typescript/src/components/Progress.d.ts +1 -1
- package/lib/typescript/src/components/Progress.d.ts.map +1 -1
- package/lib/typescript/src/components/Radio.d.ts +3 -2
- package/lib/typescript/src/components/Radio.d.ts.map +1 -1
- package/lib/typescript/src/components/Screen.d.ts +28 -5
- package/lib/typescript/src/components/Screen.d.ts.map +1 -1
- package/lib/typescript/src/components/Skeleton.d.ts +1 -1
- package/lib/typescript/src/components/Skeleton.d.ts.map +1 -1
- package/lib/typescript/src/components/Surface.d.ts +1 -1
- package/lib/typescript/src/components/Surface.d.ts.map +1 -1
- package/lib/typescript/src/components/TextField.d.ts +11 -4
- package/lib/typescript/src/components/TextField.d.ts.map +1 -1
- package/lib/typescript/src/components/Toast.d.ts +10 -3
- package/lib/typescript/src/components/Toast.d.ts.map +1 -1
- package/lib/typescript/src/components/Toggle.d.ts +3 -2
- package/lib/typescript/src/components/Toggle.d.ts.map +1 -1
- package/lib/typescript/src/components/action-sheet.styles.d.ts +1 -1
- package/lib/typescript/src/components/action-sheet.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/alert.styles.d.ts +14 -14
- package/lib/typescript/src/components/alert.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/avatar.styles.d.ts +36 -1
- package/lib/typescript/src/components/avatar.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/bottom-sheet.styles.d.ts +1 -1
- package/lib/typescript/src/components/bottom-sheet.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/card.styles.d.ts +1 -1
- package/lib/typescript/src/components/card.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/card.validate.d.ts +1 -1
- package/lib/typescript/src/components/card.validate.d.ts.map +1 -1
- package/lib/typescript/src/components/checkbox.styles.d.ts +6 -3
- package/lib/typescript/src/components/checkbox.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/empty-state.styles.d.ts +1 -1
- package/lib/typescript/src/components/empty-state.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/header.styles.d.ts +1 -1
- package/lib/typescript/src/components/header.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/image.styles.d.ts +1 -1
- package/lib/typescript/src/components/image.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/index.d.ts +18 -18
- package/lib/typescript/src/components/index.d.ts.map +1 -1
- package/lib/typescript/src/components/modal.styles.d.ts +13 -2
- package/lib/typescript/src/components/modal.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/progress.styles.d.ts +1 -1
- package/lib/typescript/src/components/progress.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/radio.styles.d.ts +10 -2
- package/lib/typescript/src/components/radio.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/safe-area-registry.d.ts +47 -11
- package/lib/typescript/src/components/safe-area-registry.d.ts.map +1 -1
- package/lib/typescript/src/components/screen.styles.d.ts +1 -1
- package/lib/typescript/src/components/screen.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/skeleton.styles.d.ts +1 -1
- package/lib/typescript/src/components/skeleton.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/status-colors.d.ts +33 -0
- package/lib/typescript/src/components/status-colors.d.ts.map +1 -0
- package/lib/typescript/src/components/surface.styles.d.ts +1 -1
- package/lib/typescript/src/components/surface.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/textfield.styles.d.ts +9 -5
- package/lib/typescript/src/components/textfield.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/toast.styles.d.ts +34 -14
- package/lib/typescript/src/components/toast.styles.d.ts.map +1 -1
- package/lib/typescript/src/components/toggle.styles.d.ts +17 -1
- package/lib/typescript/src/components/toggle.styles.d.ts.map +1 -1
- package/lib/typescript/src/icons/Icon.d.ts +12 -6
- package/lib/typescript/src/icons/Icon.d.ts.map +1 -1
- package/lib/typescript/src/icons/icon.styles.d.ts +14 -2
- package/lib/typescript/src/icons/icon.styles.d.ts.map +1 -1
- package/lib/typescript/src/icons/index.d.ts +3 -3
- package/lib/typescript/src/icons/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +4 -4
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/primitives/Button.d.ts +8 -4
- package/lib/typescript/src/primitives/Button.d.ts.map +1 -1
- package/lib/typescript/src/primitives/Metric.d.ts +1 -1
- package/lib/typescript/src/primitives/Metric.d.ts.map +1 -1
- package/lib/typescript/src/primitives/Row.d.ts +2 -2
- package/lib/typescript/src/primitives/Row.d.ts.map +1 -1
- package/lib/typescript/src/primitives/Stack.d.ts +2 -2
- package/lib/typescript/src/primitives/Stack.d.ts.map +1 -1
- package/lib/typescript/src/primitives/Tag.d.ts +2 -2
- package/lib/typescript/src/primitives/Tag.d.ts.map +1 -1
- package/lib/typescript/src/primitives/Text.d.ts +20 -6
- package/lib/typescript/src/primitives/Text.d.ts.map +1 -1
- package/lib/typescript/src/primitives/button.styles.d.ts +44 -7
- package/lib/typescript/src/primitives/button.styles.d.ts.map +1 -1
- package/lib/typescript/src/primitives/index.d.ts +6 -6
- package/lib/typescript/src/primitives/index.d.ts.map +1 -1
- package/lib/typescript/src/primitives/metric.styles.d.ts +1 -1
- package/lib/typescript/src/primitives/metric.styles.d.ts.map +1 -1
- package/lib/typescript/src/primitives/row.styles.d.ts +1 -1
- package/lib/typescript/src/primitives/row.styles.d.ts.map +1 -1
- package/lib/typescript/src/primitives/stack.styles.d.ts +1 -1
- package/lib/typescript/src/primitives/stack.styles.d.ts.map +1 -1
- package/lib/typescript/src/primitives/tag.styles.d.ts +34 -1
- package/lib/typescript/src/primitives/tag.styles.d.ts.map +1 -1
- package/lib/typescript/src/primitives/text.styles.d.ts +2 -4
- package/lib/typescript/src/primitives/text.styles.d.ts.map +1 -1
- package/lib/typescript/src/safe-area/index.d.ts +19 -5
- package/lib/typescript/src/safe-area/index.d.ts.map +1 -1
- package/lib/typescript/src/theme/ThemeProvider.d.ts +2 -2
- package/lib/typescript/src/theme/ThemeProvider.d.ts.map +1 -1
- package/lib/typescript/src/theme/define-theme.d.ts +15 -2
- package/lib/typescript/src/theme/define-theme.d.ts.map +1 -1
- package/lib/typescript/src/theme/index.d.ts +14 -13
- package/lib/typescript/src/theme/index.d.ts.map +1 -1
- package/lib/typescript/src/theme/letter-spacing.d.ts +15 -0
- package/lib/typescript/src/theme/letter-spacing.d.ts.map +1 -0
- package/lib/typescript/src/theme/line-height.d.ts +44 -0
- package/lib/typescript/src/theme/line-height.d.ts.map +1 -0
- package/lib/typescript/src/theme/native-theme.d.ts +1 -1
- package/lib/typescript/src/theme/native-theme.d.ts.map +1 -1
- package/lib/typescript/src/theme/types.d.ts +10 -1
- package/lib/typescript/src/theme/types.d.ts.map +1 -1
- package/llms.txt +2 -1
- package/package.json +22 -7
- package/src/a11y/tap-target.ts +38 -0
- package/src/components/ActionSheet.tsx +25 -15
- package/src/components/Alert.tsx +37 -10
- package/src/components/Avatar.tsx +12 -4
- package/src/components/BottomSheet.tsx +16 -13
- package/src/components/Card.tsx +9 -8
- package/src/components/Checkbox.tsx +12 -9
- package/src/components/EmptyState.tsx +7 -6
- package/src/components/Header.tsx +4 -4
- package/src/components/Image.tsx +9 -7
- package/src/components/Modal.tsx +22 -6
- package/src/components/Progress.tsx +5 -4
- package/src/components/Radio.tsx +11 -6
- package/src/components/Screen.tsx +66 -8
- package/src/components/Skeleton.tsx +6 -5
- package/src/components/Surface.tsx +5 -4
- package/src/components/TextField.tsx +25 -7
- package/src/components/Toast.tsx +33 -11
- package/src/components/Toggle.tsx +15 -6
- package/src/components/action-sheet.styles.ts +1 -1
- package/src/components/alert.styles.ts +13 -25
- package/src/components/avatar.styles.ts +25 -3
- package/src/components/bottom-sheet.styles.ts +1 -1
- package/src/components/card.styles.ts +1 -1
- package/src/components/card.validate.ts +2 -2
- package/src/components/checkbox.styles.ts +6 -3
- package/src/components/empty-state.styles.ts +1 -1
- package/src/components/header.styles.ts +1 -1
- package/src/components/image.styles.ts +1 -1
- package/src/components/index.ts +18 -18
- package/src/components/modal.styles.ts +11 -2
- package/src/components/progress.styles.ts +1 -1
- package/src/components/radio.styles.ts +11 -2
- package/src/components/safe-area-registry.ts +81 -14
- package/src/components/screen.styles.ts +1 -1
- package/src/components/skeleton.styles.ts +1 -1
- package/src/components/status-colors.ts +59 -0
- package/src/components/surface.styles.ts +1 -1
- package/src/components/textfield.styles.ts +18 -15
- package/src/components/toast.styles.ts +32 -25
- package/src/components/toggle.styles.ts +21 -1
- package/src/icons/Icon.tsx +13 -8
- package/src/icons/icon.styles.ts +38 -3
- package/src/icons/index.ts +3 -3
- package/src/index.ts +4 -4
- package/src/primitives/Button.tsx +28 -14
- package/src/primitives/Metric.tsx +5 -4
- package/src/primitives/Row.tsx +4 -4
- package/src/primitives/Stack.tsx +4 -4
- package/src/primitives/Tag.tsx +29 -11
- package/src/primitives/Text.tsx +42 -9
- package/src/primitives/_internal/focus-ring.tsx +1 -1
- package/src/primitives/button.styles.ts +63 -10
- package/src/primitives/index.ts +6 -6
- package/src/primitives/metric.styles.ts +9 -2
- package/src/primitives/row.styles.ts +1 -1
- package/src/primitives/stack.styles.ts +1 -1
- package/src/primitives/tag.styles.ts +43 -4
- package/src/primitives/text.styles.ts +10 -6
- package/src/safe-area/index.ts +21 -7
- package/src/theme/ThemeProvider.tsx +8 -5
- package/src/theme/define-theme.ts +33 -2
- package/src/theme/index.ts +18 -16
- package/src/theme/letter-spacing.ts +17 -0
- package/src/theme/line-height.ts +53 -0
- package/src/theme/native-theme.ts +9 -8
- package/src/theme/types.ts +10 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Text","Metric","Tag","Button","Stack","Row"],"sourceRoot":"../../../src","sources":["primitives/index.ts"],"mappings":";;AAAA;;AAEA,SAASA,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"names":["Text","Metric","Tag","Button","Stack","Row"],"sourceRoot":"../../../src","sources":["primitives/index.ts"],"mappings":";;AAAA;;AAEA,SAASA,IAAI,QAAQ,WAAW;AAChC,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,GAAG,QAAQ,UAAU;AAC9B,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,KAAK,QAAQ,YAAY;AAClC,SAASC,GAAG,QAAQ,UAAU","ignoreList":[]}
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
* styleRefs)との機械照合は scripts/lib/metric-conformance.test.ts が行う。
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
// theme index からの runtime import は ThemeProvider → react-native を引くため pure module を直接参照
|
|
12
|
+
import { clampLineHeight, minRatioOf } from "../theme/line-height.js";
|
|
11
13
|
/**
|
|
12
14
|
* size → value / unit の fontSize token(metric.recipe sizes と整合)。
|
|
13
15
|
* unit は value の1段下の fontSize(ベースライン揃え用)。
|
|
@@ -34,7 +36,8 @@ export function resolveMetricStyles(theme, mode, size) {
|
|
|
34
36
|
return {
|
|
35
37
|
valueStyle: {
|
|
36
38
|
fontSize: fontSize[font.value].fontSize,
|
|
37
|
-
|
|
39
|
+
// カスタム theme の未クランプ値への防波堤(text.styles.ts と同じ。根拠は theme/line-height.ts)
|
|
40
|
+
lineHeight: clampLineHeight(fontSize[font.value].fontSize, fontSize[font.value].lineHeight, minRatioOf(theme)),
|
|
38
41
|
fontWeight: theme.typography.fontWeight.bold,
|
|
39
42
|
color: sem["text-heading"],
|
|
40
43
|
fontVariant: ["tabular-nums"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["METRIC_FONT","sm","value","unit","md","lg","resolveMetricStyles","theme","mode","size","sem","color","semantic","fontSize","typography","font","valueStyle","lineHeight","fontWeight","bold","fontVariant","unitStyle","medium","marginLeft","spacing","labelStyle"],"sourceRoot":"../../../src","sources":["primitives/metric.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["clampLineHeight","minRatioOf","METRIC_FONT","sm","value","unit","md","lg","resolveMetricStyles","theme","mode","size","sem","color","semantic","fontSize","typography","font","valueStyle","lineHeight","fontWeight","bold","fontVariant","unitStyle","medium","marginLeft","spacing","labelStyle"],"sourceRoot":"../../../src","sources":["primitives/metric.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA,SAASA,eAAe,EAAEC,UAAU,QAAQ,yBAAyB;AAIrE;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAA0E,GAAG;EACxFC,EAAE,EAAE;IAAEC,KAAK,EAAE,IAAI;IAAEC,IAAI,EAAE;EAAO,CAAC;EACjCC,EAAE,EAAE;IAAEF,KAAK,EAAE,KAAK;IAAEC,IAAI,EAAE;EAAK,CAAC;EAChCE,EAAE,EAAE;IAAEH,KAAK,EAAE,KAAK;IAAEC,IAAI,EAAE;EAAK;AACjC,CAAC;AAyBD;AACA,OAAO,SAASG,mBAAmBA,CACjCC,KAAkB,EAClBC,IAAe,EACfC,IAAgB,EACF;EACd,MAAMC,GAAG,GAAGH,KAAK,CAACI,KAAK,CAACC,QAAQ,CAACJ,IAAI,CAAC;EACtC,MAAMK,QAAQ,GAAGN,KAAK,CAACO,UAAU,CAACD,QAAQ;EAC1C,MAAME,IAAI,GAAGf,WAAW,CAACS,IAAI,CAAC;EAC9B,OAAO;IACLO,UAAU,EAAE;MACVH,QAAQ,EAAEA,QAAQ,CAACE,IAAI,CAACb,KAAK,CAAC,CAACW,QAAQ;MACvC;MACAI,UAAU,EAAEnB,eAAe,CACzBe,QAAQ,CAACE,IAAI,CAACb,KAAK,CAAC,CAACW,QAAQ,EAC7BA,QAAQ,CAACE,IAAI,CAACb,KAAK,CAAC,CAACe,UAAU,EAC/BlB,UAAU,CAACQ,KAAK,CAClB,CAAC;MACDW,UAAU,EAAEX,KAAK,CAACO,UAAU,CAACI,UAAU,CAACC,IAAI;MAC5CR,KAAK,EAAED,GAAG,CAAC,cAAc,CAAC;MAC1BU,WAAW,EAAE,CAAC,cAAc;IAC9B,CAAC;IACDC,SAAS,EAAE;MACTR,QAAQ,EAAEA,QAAQ,CAACE,IAAI,CAACZ,IAAI,CAAC,CAACU,QAAQ;MACtCK,UAAU,EAAEX,KAAK,CAACO,UAAU,CAACI,UAAU,CAACI,MAAM;MAC9CX,KAAK,EAAED,GAAG,CAAC,YAAY,CAAC;MACxBa,UAAU,EAAEhB,KAAK,CAACiB,OAAO,CAAC,GAAG;IAC/B,CAAC;IACDC,UAAU,EAAE;MACVZ,QAAQ,EAAEA,QAAQ,CAACZ,EAAE,CAACY,QAAQ;MAC9BF,KAAK,EAAED,GAAG,CAAC,YAAY;IACzB;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -8,6 +8,45 @@
|
|
|
8
8
|
* 機械照合は scripts/lib/tag-conformance.test.ts が行う。
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import { CANONICAL_TAP_TARGET } from "../a11y/tap-target.js";
|
|
12
|
+
import { clampLineHeight, minRatioOf } from "../theme/line-height.js";
|
|
13
|
+
/** label の fontSize token キー(component / resolver / 検算が同じキーを読む SSOT)。 */
|
|
14
|
+
export const TAG_SPEC = {
|
|
15
|
+
/** basic / removable の label。 */
|
|
16
|
+
labelFont: "xs",
|
|
17
|
+
/** filter-chip の label(押せる要素なので一段大きい)。 */
|
|
18
|
+
chipLabelFont: "sm"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* removable の × の当たり判定(正典パターン: 視覚 24pt + hitSlop 10 = 実効 44pt)。
|
|
23
|
+
* 親 Tag の高さ(padding 駆動で 34pt 前後)を超えられないので × 自身に持たせる。
|
|
24
|
+
*/
|
|
25
|
+
export const TAG_REMOVE_TAP_TARGET = CANONICAL_TAP_TARGET;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* filter-chip(押せる chip 本体)の縦 hitSlop。
|
|
29
|
+
*
|
|
30
|
+
* chip は背景と枠を持つので minHeight で伸ばすと**見た目が変わる**(他 variant と高さが揃わない)。
|
|
31
|
+
* よって視覚寸法は据え置き、当たり判定だけ広げる:
|
|
32
|
+
* 視覚高さ 34pt(paddingVertical 4 × 2 + label sm の lineHeight 26)+ 5 × 2 = 44pt。
|
|
33
|
+
*
|
|
34
|
+
* padding 駆動なので fontScale で視覚高さ自体が伸びる = 拡大時に過剰な当たり判定にならない。
|
|
35
|
+
* ⚠️ literal で持つ(resolveTagFilterChipVisualHeight から導出しない)。導出にすると
|
|
36
|
+
* 寸法変更に hitSlop が黙って追随し、conformance が fail-open になる。
|
|
37
|
+
*/
|
|
38
|
+
export const TAG_FILTER_CHIP_VERTICAL_HIT_SLOP = 5;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* filter-chip の視覚高さ(padding 駆動)。conformance が 44pt 到達を検算するための実測値。
|
|
42
|
+
* = paddingVertical × 2 + label(sm)の lineHeight。
|
|
43
|
+
*/
|
|
44
|
+
export function resolveTagFilterChipVisualHeight(theme) {
|
|
45
|
+
const font = theme.typography.fontSize[TAG_SPEC.chipLabelFont];
|
|
46
|
+
const lineHeight = clampLineHeight(font.fontSize, font.lineHeight, minRatioOf(theme));
|
|
47
|
+
return resolveTagBase(theme).paddingVertical * 2 + lineHeight;
|
|
48
|
+
}
|
|
49
|
+
|
|
11
50
|
/** 共通形状(px-3 py-1 gap-1 rounded-full。tag.recipe の全 variant style と共通の寸法キー)。 */
|
|
12
51
|
export function resolveTagBase(theme) {
|
|
13
52
|
return {
|
|
@@ -35,7 +74,7 @@ export function resolveTagVariant(theme, mode, variant, selected = false) {
|
|
|
35
74
|
return {
|
|
36
75
|
bg: sem["bg-page-alt"],
|
|
37
76
|
textColor: sem["text-default"],
|
|
38
|
-
font:
|
|
77
|
+
font: TAG_SPEC.labelFont
|
|
39
78
|
};
|
|
40
79
|
case "filter-chip":
|
|
41
80
|
return selected ? {
|
|
@@ -43,13 +82,13 @@ export function resolveTagVariant(theme, mode, variant, selected = false) {
|
|
|
43
82
|
borderWidth: 1,
|
|
44
83
|
border: c.primary["200"],
|
|
45
84
|
textColor: c.primary["700"],
|
|
46
|
-
font:
|
|
85
|
+
font: TAG_SPEC.chipLabelFont
|
|
47
86
|
} : {
|
|
48
87
|
bg: sem["bg-surface"],
|
|
49
88
|
borderWidth: 1,
|
|
50
89
|
border: sem["border-default"],
|
|
51
90
|
textColor: sem["text-default"],
|
|
52
|
-
font:
|
|
91
|
+
font: TAG_SPEC.chipLabelFont
|
|
53
92
|
};
|
|
54
93
|
}
|
|
55
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["CANONICAL_TAP_TARGET","clampLineHeight","minRatioOf","TAG_SPEC","labelFont","chipLabelFont","TAG_REMOVE_TAP_TARGET","TAG_FILTER_CHIP_VERTICAL_HIT_SLOP","resolveTagFilterChipVisualHeight","theme","font","typography","fontSize","lineHeight","resolveTagBase","paddingVertical","gap","spacing","paddingHorizontal","borderRadius","radius","full","resolveTagVariant","mode","variant","selected","c","color","sem","semantic","bg","textColor","primary","borderWidth","border"],"sourceRoot":"../../../src","sources":["primitives/tag.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,oBAAoB,QAAQ,uBAAuB;AAC5D,SAASC,eAAe,EAAEC,UAAU,QAAQ,yBAAyB;AAIrE;AACA,OAAO,MAAMC,QAAQ,GAAG;EACtB;EACAC,SAAS,EAAE,IAAI;EACf;EACAC,aAAa,EAAE;AACjB,CAA2E;;AAE3E;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGN,oBAAoB;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,iCAAiC,GAAG,CAAC;;AAElD;AACA;AACA;AACA;AACA,OAAO,SAASC,gCAAgCA,CAACC,KAAkB,EAAU;EAC3E,MAAMC,IAAI,GAAGD,KAAK,CAACE,UAAU,CAACC,QAAQ,CAACT,QAAQ,CAACE,aAAa,CAAC;EAC9D,MAAMQ,UAAU,GAAGZ,eAAe,CAACS,IAAI,CAACE,QAAQ,EAAEF,IAAI,CAACG,UAAU,EAAEX,UAAU,CAACO,KAAK,CAAC,CAAC;EACrF,OAAOK,cAAc,CAACL,KAAK,CAAC,CAACM,eAAe,GAAG,CAAC,GAAGF,UAAU;AAC/D;;AAEA;AACA,OAAO,SAASC,cAAcA,CAACL,KAAkB,EAK/C;EACA,OAAO;IACLO,GAAG,EAAEP,KAAK,CAACQ,OAAO,CAAC,GAAG,CAAC;IACvBC,iBAAiB,EAAET,KAAK,CAACQ,OAAO,CAAC,GAAG,CAAC;IACrCF,eAAe,EAAEN,KAAK,CAACQ,OAAO,CAAC,GAAG,CAAC;IACnCE,YAAY,EAAEV,KAAK,CAACW,MAAM,CAACC;EAC7B,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAC/Bb,KAAkB,EAClBc,IAAe,EACfC,OAAmB,EACnBC,QAAQ,GAAG,KAAK,EAC6E;EAC7F,MAAMC,CAAC,GAAGjB,KAAK,CAACkB,KAAK;EACrB,MAAMC,GAAG,GAAGF,CAAC,CAACG,QAAQ,CAACN,IAAI,CAAC;EAC5B,QAAQC,OAAO;IACb,KAAK,OAAO;IACZ,KAAK,WAAW;MACd,OAAO;QAAEM,EAAE,EAAEF,GAAG,CAAC,aAAa,CAAC;QAAEG,SAAS,EAAEH,GAAG,CAAC,cAAc,CAAC;QAAElB,IAAI,EAAEP,QAAQ,CAACC;MAAU,CAAC;IAC7F,KAAK,aAAa;MAChB,OAAOqB,QAAQ,GACX;QACEK,EAAE,EAAEJ,CAAC,CAACM,OAAO,CAAC,IAAI,CAAC;QACnBC,WAAW,EAAE,CAAC;QACdC,MAAM,EAAER,CAAC,CAACM,OAAO,CAAC,KAAK,CAAC;QACxBD,SAAS,EAAEL,CAAC,CAACM,OAAO,CAAC,KAAK,CAAC;QAC3BtB,IAAI,EAAEP,QAAQ,CAACE;MACjB,CAAC,GACD;QACEyB,EAAE,EAAEF,GAAG,CAAC,YAAY,CAAC;QACrBK,WAAW,EAAE,CAAC;QACdC,MAAM,EAAEN,GAAG,CAAC,gBAAgB,CAAC;QAC7BG,SAAS,EAAEH,GAAG,CAAC,cAAc,CAAC;QAC9BlB,IAAI,EAAEP,QAAQ,CAACE;MACjB,CAAC;EACT;AACF","ignoreList":[]}
|
|
@@ -8,6 +8,11 @@
|
|
|
8
8
|
* 機械照合は scripts/lib/text-conformance.test.ts が行う。
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
// theme index からの runtime import は ThemeProvider → react-native を引くため、
|
|
12
|
+
// pure module(line-height.ts / letter-spacing.ts)を直接参照する。
|
|
13
|
+
import { clampLineHeight, minRatioOf } from "../theme/line-height.js";
|
|
14
|
+
import { resolveLetterSpacing } from "../theme/letter-spacing.js";
|
|
15
|
+
|
|
11
16
|
/** letterSpacing の切替軸(text.recipe description の role prop に対応)。 */
|
|
12
17
|
|
|
13
18
|
/** Text の形状 style(mode 非依存部分。文字色は render 時に semantic colors から取る)。 */
|
|
@@ -15,16 +20,16 @@
|
|
|
15
20
|
/**
|
|
16
21
|
* variant / role / weight → 形状解決(text.recipe styleRefs の 1:1 写像)。
|
|
17
22
|
* - fontSize token は複合値(px + lineHeight 比率)。theme 生成時に lineHeight は px 化済み。
|
|
18
|
-
* - letterSpacing は em 比率 token のため fontSize × ratio で pt
|
|
19
|
-
* theme の resolveLetterSpacing と同一式だが、theme index 経由の runtime import は
|
|
20
|
-
* ThemeProvider → react-native を引くため、pure に保つ目的でここでは式を直書きする。
|
|
23
|
+
* - letterSpacing は em 比率 token のため fontSize × ratio で pt 化する(resolveLetterSpacing)。
|
|
21
24
|
*/
|
|
22
25
|
export function resolveTextShape(theme, variant, role, weight) {
|
|
23
26
|
const fs = theme.typography.fontSize[variant];
|
|
24
27
|
return {
|
|
25
28
|
fontSize: fs.fontSize,
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
// 既定 theme は codegen 時点でクランプ済みだが、defineTheme で注入されたカスタム theme の
|
|
30
|
+
// 値はここが最初の防波堤(機序と下限の根拠は theme/line-height.ts)。
|
|
31
|
+
lineHeight: clampLineHeight(fs.fontSize, fs.lineHeight, minRatioOf(theme)),
|
|
32
|
+
letterSpacing: resolveLetterSpacing(fs.fontSize, theme.typography.letterSpacingRatio[role]),
|
|
28
33
|
...(weight ? {
|
|
29
34
|
fontWeight: theme.typography.fontWeight[weight]
|
|
30
35
|
} : null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["resolveTextShape","theme","variant","role","weight","fs","typography","fontSize","lineHeight","letterSpacing","letterSpacingRatio","fontWeight"],"sourceRoot":"../../../src","sources":["primitives/text.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["clampLineHeight","minRatioOf","resolveLetterSpacing","resolveTextShape","theme","variant","role","weight","fs","typography","fontSize","lineHeight","letterSpacing","letterSpacingRatio","fontWeight"],"sourceRoot":"../../../src","sources":["primitives/text.styles.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA,SAASA,eAAe,EAAEC,UAAU,QAAQ,yBAAyB;AACrE,SAASC,oBAAoB,QAAQ,4BAA4B;;AAEjE;;AAGA;;AAQA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,KAAkB,EAClBC,OAAoB,EACpBC,IAAc,EACdC,MAAsB,EACX;EACX,MAAMC,EAAE,GAAGJ,KAAK,CAACK,UAAU,CAACC,QAAQ,CAACL,OAAO,CAAC;EAC7C,OAAO;IACLK,QAAQ,EAAEF,EAAE,CAACE,QAAQ;IACrB;IACA;IACAC,UAAU,EAAEX,eAAe,CAACQ,EAAE,CAACE,QAAQ,EAAEF,EAAE,CAACG,UAAU,EAAEV,UAAU,CAACG,KAAK,CAAC,CAAC;IAC1EQ,aAAa,EAAEV,oBAAoB,CAACM,EAAE,CAACE,QAAQ,EAAEN,KAAK,CAACK,UAAU,CAACI,kBAAkB,CAACP,IAAI,CAAC,CAAC;IAC3F,IAAIC,MAAM,GAAG;MAAEO,UAAU,EAAEV,KAAK,CAACK,UAAU,CAACK,UAAU,CAACP,MAAM;IAAE,CAAC,GAAG,IAAI;EACzE,CAAC;AACH","ignoreList":[]}
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
* import { enableSafeAreaContext } from "melta-app/safe-area";
|
|
14
14
|
* enableSafeAreaContext();
|
|
15
15
|
*
|
|
16
|
-
* これで Screen の SafeArea が useSafeAreaInsets() + View の
|
|
17
|
-
* Provider の context 値を render 中に同期参照して padding を付けるため、
|
|
18
|
-
* SafeAreaView の layout/state 更新を待たず、初回 render から inset が反映される。
|
|
16
|
+
* これで Screen / ActionSheet / BottomSheet の SafeArea が useSafeAreaInsets() + View の
|
|
17
|
+
* adapter に切り替わる。Provider の context 値を render 中に同期参照して padding を付けるため、
|
|
18
|
+
* native SafeAreaView の layout/state 更新を待たず、初回 render から inset が反映される。
|
|
19
|
+
* Android でも効く(RN core の SafeAreaView は Android では完全 no-op)。
|
|
19
20
|
*
|
|
20
21
|
* ⚠️ 前提: アプリの root に SafeAreaProvider が必要(無いと useSafeAreaInsets が throw
|
|
21
22
|
* する)。初回 render から正しい inset を使うには Provider に initialMetrics も渡す。
|
|
@@ -75,8 +76,13 @@ function createContextSafeAreaView(selectedEdges) {
|
|
|
75
76
|
return ContextSafeAreaView;
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
/**
|
|
79
|
+
/**
|
|
80
|
+
* melta の SafeArea を context 同期参照の View adapter に切り替える。
|
|
81
|
+
*
|
|
82
|
+
* registry には**ファクトリ**を渡す(消費者ごとに edges が違うため)。同じ edges 集合には
|
|
83
|
+
* 同じコンポーネント参照が返るよう memo するのは registry 側の責務。
|
|
84
|
+
*/
|
|
79
85
|
export function enableSafeAreaContext(options = {}) {
|
|
80
|
-
setSafeAreaView(createContextSafeAreaView
|
|
86
|
+
setSafeAreaView(createContextSafeAreaView, options.edges ?? ALL_EDGES);
|
|
81
87
|
}
|
|
82
88
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createElement","useMemo","I18nManager","StyleSheet","View","useSafeAreaInsets","setSafeAreaView","ALL_EDGES","additivePadding","style","insets","edges","flat","flatten","num","value","isRTL","baseVertical","edge","paddingTop","paddingBottom","paddingVertical","padding","baseHorizontal","paddingLeft","paddingRight","paddingHorizontal","out","has","top","bottom","left","right","createContextSafeAreaView","selectedEdges","Set","ContextSafeAreaView","props","paddingStyle","displayName","enableSafeAreaContext","options"],"sourceRoot":"../../../src","sources":["safe-area/index.ts"],"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;;AAEA,SAASA,aAAa,EAAEC,OAAO,QAAQ,OAAO;AAC9C,SAASC,WAAW,EAAEC,UAAU,EAAEC,IAAI,QAAwB,cAAc;AAC5E,SACEC,iBAAiB,QAGZ,gCAAgC;AACvC,SACEC,eAAe,QAGV,
|
|
1
|
+
{"version":3,"names":["createElement","useMemo","I18nManager","StyleSheet","View","useSafeAreaInsets","setSafeAreaView","ALL_EDGES","additivePadding","style","insets","edges","flat","flatten","num","value","isRTL","baseVertical","edge","paddingTop","paddingBottom","paddingVertical","padding","baseHorizontal","paddingLeft","paddingRight","paddingHorizontal","out","has","top","bottom","left","right","createContextSafeAreaView","selectedEdges","Set","ContextSafeAreaView","props","paddingStyle","displayName","enableSafeAreaContext","options"],"sourceRoot":"../../../src","sources":["safe-area/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,8 +23,11 @@ const ThemeContext = /*#__PURE__*/createContext(null);
|
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* 既定 theme。melta-contracts 由来の codegen 結果を注入経路と同じ形に通す(自分でも dogfood する)。
|
|
26
|
-
*
|
|
27
|
-
*
|
|
26
|
+
*
|
|
27
|
+
* dev で freeze されるのは **`defineTheme()` の戻り値**(= `useTheme().theme` として配られる
|
|
28
|
+
* 解決済み theme)で、入れ子のトークン群まで再帰的に凍る。公開 export の `nativeTheme` 自体は
|
|
29
|
+
* `defineTheme` 内の `cloneTokenTree` で参照が切り離されているので**凍らない**
|
|
30
|
+
* (0.4.3 で意図的にこう変えた: 凍らせると `{ ...nativeTheme }` からの正当な派生が dev で壊れるため)。
|
|
28
31
|
*/
|
|
29
32
|
const DEFAULT_THEME = defineTheme({
|
|
30
33
|
...nativeTheme,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","useMemo","useColorScheme","nativeTheme","defineTheme","isDev","resolveMode","jsx","_jsx","ThemeContext","DEFAULT_THEME","id","reportedViolations","WeakMap","reportViolation","theme","violation","reported","get","undefined","Set","set","has","requested","add","console","error","colorScheme","resolved","ThemeProvider","children","forcedMode","system","activeTheme","mode","capabilities","value","colors","color","semantic","Error","Provider","useTheme","ctx"],"sourceRoot":"../../../src","sources":["theme/ThemeProvider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAwB,OAAO;AAC1E,SAASC,cAAc,QAAQ,cAAc;AAC7C,SAASC,WAAW,QAAQ,
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useMemo","useColorScheme","nativeTheme","defineTheme","isDev","resolveMode","jsx","_jsx","ThemeContext","DEFAULT_THEME","id","reportedViolations","WeakMap","reportViolation","theme","violation","reported","get","undefined","Set","set","has","requested","add","console","error","colorScheme","resolved","ThemeProvider","children","forcedMode","system","activeTheme","mode","capabilities","value","colors","color","semantic","Error","Provider","useTheme","ctx"],"sourceRoot":"../../../src","sources":["theme/ThemeProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -167,13 +167,19 @@ const FONT_WEIGHT_KEYS = keysOf({
|
|
|
167
167
|
* プロパティにも true を返すので、それで判定すると「持っていない mode に置いた番人の getter」を
|
|
168
168
|
* 値として数えてしまい、解決後の theme に対して常に light / dark 両方を返す(0.4.0 の不具合)。
|
|
169
169
|
* 入力(素のデータプロパティ)と解決後(番人つき)のどちらに対しても正しく答える必要がある。
|
|
170
|
+
*
|
|
171
|
+
* @experimental 公開しているが安定 API ではない。挙動・シグネチャは予告なく変わりうる。
|
|
170
172
|
*/
|
|
171
173
|
export function declaredModes(semantic) {
|
|
172
174
|
const withValue = new Set(Object.keys(semantic));
|
|
173
175
|
return MODES.filter(mode => withValue.has(mode));
|
|
174
176
|
}
|
|
175
177
|
|
|
176
|
-
/**
|
|
178
|
+
/**
|
|
179
|
+
* colorScheme capability を `color.semantic` のキー集合から導出する。
|
|
180
|
+
*
|
|
181
|
+
* @experimental 公開しているが安定 API ではない。挙動・シグネチャは予告なく変わりうる。
|
|
182
|
+
*/
|
|
177
183
|
export function deriveColorScheme(semantic) {
|
|
178
184
|
const modes = declaredModes(semantic);
|
|
179
185
|
if (modes.length === 2) return "light-dark";
|
|
@@ -188,6 +194,8 @@ export function deriveColorScheme(semantic) {
|
|
|
188
194
|
* 未知の値は**黙って light-dark 扱いにしない**。TypeScript を使わない消費者や、将来
|
|
189
195
|
* capability の値が増えたときに、誤った値が「両対応の theme」として通ってしまうと、
|
|
190
196
|
* 持っていない mode で描画されて初めて壊れる(=原因から遠い場所で落ちる)。
|
|
197
|
+
*
|
|
198
|
+
* @experimental 公開しているが安定 API ではない。挙動・シグネチャは予告なく変わりうる。
|
|
191
199
|
*/
|
|
192
200
|
export function supportedModes(colorScheme) {
|
|
193
201
|
switch (colorScheme) {
|
|
@@ -218,6 +226,8 @@ export function supportedModes(colorScheme) {
|
|
|
218
226
|
* - **`forcedMode` との不一致は報告する**。宣言同士の矛盾=呼び出し側の間違いなので violation を返す。
|
|
219
227
|
* ただし throw はしない(clamp して描き続ける)。厳格に落としたいテストや compiler が
|
|
220
228
|
* violation を error に昇格させる側の責務にする。
|
|
229
|
+
*
|
|
230
|
+
* @experimental 公開しているが安定 API ではない。挙動・シグネチャ・violation の内容は予告なく変わりうる。
|
|
221
231
|
*/
|
|
222
232
|
export function resolveMode(colorScheme, forcedMode, systemMode) {
|
|
223
233
|
const supported = supportedModes(colorScheme);
|
|
@@ -310,6 +320,19 @@ export function validateTheme(options) {
|
|
|
310
320
|
problems.push(`${where}: ${label} に欠けているキー — ${missing.join(", ")}`);
|
|
311
321
|
}
|
|
312
322
|
}
|
|
323
|
+
|
|
324
|
+
// minLineHeightRatio は任意欄だが、書くなら実在しうる比率であること
|
|
325
|
+
// (0.9 のような「詰め」を宣言されると clamp が下限の意味を失う。上限は設けない——
|
|
326
|
+
// 行間をいくら広げても字形は欠けないので、広い分には嘘にならない)。
|
|
327
|
+
// missingKeys と同じ方針で **accessor は呼ばない**(値の直読みは消費者の開発用プローブを
|
|
328
|
+
// 発火させ、「defineTheme は accessor を1度も呼ばない」契約を破る)。data property のみ検査する。
|
|
329
|
+
const minRatioDesc = options.typography !== null && typeof options.typography === "object" ? Object.getOwnPropertyDescriptor(options.typography, "minLineHeightRatio") : undefined;
|
|
330
|
+
if (minRatioDesc !== undefined && "value" in minRatioDesc && minRatioDesc.value !== undefined) {
|
|
331
|
+
const minRatio = minRatioDesc.value;
|
|
332
|
+
if (typeof minRatio !== "number" || !Number.isFinite(minRatio) || minRatio < 1) {
|
|
333
|
+
problems.push(`${where}: typography.minLineHeightRatio が不正 — ${String(minRatio)}(フォント実測の 1 以上の有限数を宣言する。根拠は theme/line-height.ts)`);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
313
336
|
const status = options.color?.status;
|
|
314
337
|
if (status !== null && typeof status === "object") {
|
|
315
338
|
for (const kind of STATUS_KINDS) {
|
|
@@ -414,6 +437,9 @@ function deepFreeze(value) {
|
|
|
414
437
|
*
|
|
415
438
|
* dev では validateTheme を1回通し、問題があれば throw する(構造が壊れた theme は
|
|
416
439
|
* 後段で必ず事故になるので早く落とす)。production では検査ごと省く。
|
|
440
|
+
*
|
|
441
|
+
* dev では**戻り値だけ**が入れ子まで再帰 freeze される。入力オブジェクトと公開 export の
|
|
442
|
+
* `nativeTheme` は `cloneTokenTree` で参照を切ってあるので凍らない(0.4.3 で意図的にこうした)。
|
|
417
443
|
*/
|
|
418
444
|
export function defineTheme(options) {
|
|
419
445
|
if (isDev) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isDev","__DEV__","globalThis","process","env","NODE_ENV","keysOf","map","Object","keys","MODES","light","dark","SEMANTIC_KEYS","PRIMARY_KEYS","STATUS_KINDS","success","warning","danger","STATUS_COLOR_KEYS","base","subtleLight","textLight","subtleDark","textDark","SPACING_KEYS","RADIUS_KEYS","sm","md","lg","full","ELEVATION_KEYS","none","overlay","FONT_SIZE_KEYS","xxs","xs","xl","FONT_WEIGHT_KEYS","normal","medium","semibold","bold","declaredModes","semantic","withValue","Set","filter","mode","has","deriveColorScheme","modes","length","Error","supportedModes","colorScheme","unknown","String","resolveMode","forcedMode","systemMode","supported","requested","includes","resolved","undefined","violation","kind","missingKeys","target","key","descriptor","getOwnPropertyDescriptor","value","validateTheme","options","problems","where","id","color","push","unknownModes","missing","join","groups","primary","spacing","radius","elevation","typography","fontSize","fontWeight","status","label","prototype","hasOwnProperty","call","installMissingModeGuards","defineProperty","enumerable","configurable","get","isPlainObject","proto","getPrototypeOf","cloneTokenTree","Array","isArray","item","source","getOwnPropertyDescriptors","Reflect","ownKeys","defineProperties","deepFreeze","isFrozen","freeze","descriptors","values","defineTheme","owned","theme","capabilities","$$melta"],"sourceRoot":"../../../src","sources":["theme/define-theme.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isDev","__DEV__","globalThis","process","env","NODE_ENV","keysOf","map","Object","keys","MODES","light","dark","SEMANTIC_KEYS","PRIMARY_KEYS","STATUS_KINDS","success","warning","danger","STATUS_COLOR_KEYS","base","subtleLight","textLight","subtleDark","textDark","SPACING_KEYS","RADIUS_KEYS","sm","md","lg","full","ELEVATION_KEYS","none","overlay","FONT_SIZE_KEYS","xxs","xs","xl","FONT_WEIGHT_KEYS","normal","medium","semibold","bold","declaredModes","semantic","withValue","Set","filter","mode","has","deriveColorScheme","modes","length","Error","supportedModes","colorScheme","unknown","String","resolveMode","forcedMode","systemMode","supported","requested","includes","resolved","undefined","violation","kind","missingKeys","target","key","descriptor","getOwnPropertyDescriptor","value","validateTheme","options","problems","where","id","color","push","unknownModes","missing","join","groups","primary","spacing","radius","elevation","typography","fontSize","fontWeight","status","label","minRatioDesc","minRatio","Number","isFinite","prototype","hasOwnProperty","call","installMissingModeGuards","defineProperty","enumerable","configurable","get","isPlainObject","proto","getPrototypeOf","cloneTokenTree","Array","isArray","item","source","getOwnPropertyDescriptors","Reflect","ownKeys","defineProperties","deepFreeze","isFrozen","freeze","descriptors","values","defineTheme","owned","theme","capabilities","$$melta"],"sourceRoot":"../../../src","sources":["theme/define-theme.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,18 +10,17 @@ export * from "./types.js";
|
|
|
10
10
|
export { nativeTheme } from "./native-theme.js";
|
|
11
11
|
export { ThemeProvider, useTheme } from "./ThemeProvider.js";
|
|
12
12
|
export { defineTheme } from "./define-theme.js";
|
|
13
|
+
export { DEFAULT_MIN_LINE_HEIGHT_RATIO, minLineHeightFor, clampLineHeight } from "./line-height.js";
|
|
14
|
+
/**
|
|
15
|
+
* letterSpacingRatio(em 相当の比率)を適用先の fontSize から letterSpacing(pt) に解決する helper。
|
|
16
|
+
* 実体は pure module(./letter-spacing)。resolver 側は index を経由せず直接 import する
|
|
17
|
+
* (index は ThemeProvider = react-native を引くため)。
|
|
18
|
+
*/
|
|
19
|
+
export { resolveLetterSpacing } from "./letter-spacing.js";
|
|
13
20
|
/**
|
|
14
21
|
* 以下は theme の解決規則を外から検証・再利用するためのヘルパ。
|
|
15
22
|
* **@experimental — 安定 API ではない。** 挙動・シグネチャ・メッセージは予告なく変わりうる。
|
|
16
23
|
* アプリの実行時ロジックが依存する場合は、useTheme().capabilities を使うほうが安全。
|
|
17
24
|
*/
|
|
18
25
|
export { validateTheme, resolveMode, supportedModes, deriveColorScheme, declaredModes } from "./define-theme.js";
|
|
19
|
-
/**
|
|
20
|
-
* letterSpacingRatio(em 相当の比率)を、適用先の fontSize から RN の letterSpacing(pt) に解決する。
|
|
21
|
-
* 例: resolveLetterSpacing(18, theme.typography.letterSpacingRatio.body)
|
|
22
|
-
* theme.typography.letterSpacingRatio.* をそのまま style.letterSpacing に入れる誤用を避けるための helper。
|
|
23
|
-
*/
|
|
24
|
-
export function resolveLetterSpacing(fontSize, ratio) {
|
|
25
|
-
return fontSize * ratio;
|
|
26
|
-
}
|
|
27
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nativeTheme","ThemeProvider","useTheme","defineTheme","
|
|
1
|
+
{"version":3,"names":["nativeTheme","ThemeProvider","useTheme","defineTheme","DEFAULT_MIN_LINE_HEIGHT_RATIO","minLineHeightFor","clampLineHeight","resolveLetterSpacing","validateTheme","resolveMode","supportedModes","deriveColorScheme","declaredModes"],"sourceRoot":"../../../src","sources":["theme/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAY;AAC1B,SAASA,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,aAAa,EAAEC,QAAQ,QAAQ,oBAAoB;AAE5D,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SACEC,6BAA6B,EAC7BC,gBAAgB,EAChBC,eAAe,QACV,kBAAkB;AACzB;AACA;AACA;AACA;AACA;AACA,SAASC,oBAAoB,QAAQ,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA,SACEC,aAAa,EACbC,WAAW,EACXC,cAAc,EACdC,iBAAiB,EACjBC,aAAa,QACR,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* letter-spacing — letterSpacingRatio(em 相当の比率)→ RN の letterSpacing(pt) の解決。
|
|
5
|
+
*
|
|
6
|
+
* theme/index.ts は ThemeProvider(react-native 依存)を re-export するので、pure style resolver や
|
|
7
|
+
* node テストから index 経由でこの helper を引くと RN を巻き込んでしまう。そのため実体は
|
|
8
|
+
* line-height.ts と同じく **pure module** に置き、index.ts は re-export だけする
|
|
9
|
+
* (公開 API の位置と名前は不変)。以前は index.ts に実体があり、pure 側は同じ式を直書きしていた。
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* letterSpacingRatio(em 相当の比率)を、適用先の fontSize から RN の letterSpacing(pt) に解決する。
|
|
14
|
+
* 例: resolveLetterSpacing(18, theme.typography.letterSpacingRatio.body)
|
|
15
|
+
* theme.typography.letterSpacingRatio.* をそのまま style.letterSpacing に入れる誤用を避けるための helper。
|
|
16
|
+
*/
|
|
17
|
+
export function resolveLetterSpacing(fontSize, ratio) {
|
|
18
|
+
return fontSize * ratio;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=letter-spacing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["resolveLetterSpacing","fontSize","ratio"],"sourceRoot":"../../../src","sources":["theme/letter-spacing.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,oBAAoBA,CAACC,QAAgB,EAAEC,KAAa,EAAU;EAC5E,OAAOD,QAAQ,GAAGC,KAAK;AACzB","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* line-height — 行間の安全下限(フォントの字形を欠かせない最小 lineHeight)。
|
|
5
|
+
*
|
|
6
|
+
* なぜ要るか(2026-08-05 modelog dogfood で実害):
|
|
7
|
+
* RN Android の CustomLineHeightSpan は `leading = lineHeight - (ascent + descent)` を計算し、
|
|
8
|
+
* leading が負になると不足分を行の上下から半分ずつ削って帳尻を合わせる。削られた領域の字形
|
|
9
|
+
* (濁点は行の上端にある)は Text 既定の overflow: hidden で消える——「ギ」が「チ」に見える。
|
|
10
|
+
* web はこの機序を持たないため、web の実描画検査では検出できない(Android 実機のみで発現)。
|
|
11
|
+
*
|
|
12
|
+
* 下限は使用フォントのメトリクス(ascent + descent)に依存するが、melta はフォントを同梱しない
|
|
13
|
+
* (system フォント運用)ので、既定は **Android の日本語 system フォント Noto Sans CJK JP の
|
|
14
|
+
* 実測 1.448**(hhea: (1160 + 288) / 1000。AOSP 版・Google Fonts 版とも同値、2026-08-06 実測)
|
|
15
|
+
* を切り上げた 1.45 とする。iOS(Hiragino 1.50 相当)にはこの clip 機序が無いので基準にしない。
|
|
16
|
+
*
|
|
17
|
+
* フォントを同梱する消費者は、そのフォントの実測比率を theme の
|
|
18
|
+
* `typography.minLineHeightRatio` で宣言する(例: LINE Seed JP = 1.61)。
|
|
19
|
+
* 宣言が既定より小さいラテン専用フォント(例: Inter 1.21)も同じ口で下げられる。
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* 既定の最小行間比。Android system 日本語フォント(Noto Sans CJK JP)の実測 1.448 の切り上げ。
|
|
24
|
+
* theme が `typography.minLineHeightRatio` を宣言しない場合にこの値へ倒れる(日本語安全側)。
|
|
25
|
+
*/
|
|
26
|
+
export const DEFAULT_MIN_LINE_HEIGHT_RATIO = 1.45;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* theme が宣言する最小行間比を取り出す(未宣言なら既定へ倒す)。
|
|
30
|
+
* `theme.typography.minLineHeightRatio ?? DEFAULT_MIN_LINE_HEIGHT_RATIO` を各 resolver が
|
|
31
|
+
* 写経すると、既定へ倒す規則が一箇所ずつ腐る(片方だけ ?? を落とす等)ためここに集約する。
|
|
32
|
+
*/
|
|
33
|
+
export function minRatioOf(theme) {
|
|
34
|
+
return theme.typography.minLineHeightRatio ?? DEFAULT_MIN_LINE_HEIGHT_RATIO;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* fontSize に対する安全な最小 lineHeight(px)。
|
|
39
|
+
* **切り上げ**であることが要点: 四捨五入だと 32 × 1.45 = 46.4 → 46 で下限を割る。
|
|
40
|
+
*/
|
|
41
|
+
export function minLineHeightFor(fontSize, minRatio) {
|
|
42
|
+
return Math.ceil(fontSize * minRatio);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* 宣言された lineHeight を安全下限でクランプする。
|
|
47
|
+
* 宣言値が下限以上ならそのまま(意匠の行間はどこまでも広げられる。詰める方向だけを止める)。
|
|
48
|
+
*/
|
|
49
|
+
export function clampLineHeight(fontSize, declaredLineHeight, minRatio) {
|
|
50
|
+
return Math.max(declaredLineHeight, minLineHeightFor(fontSize, minRatio));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=line-height.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_MIN_LINE_HEIGHT_RATIO","minRatioOf","theme","typography","minLineHeightRatio","minLineHeightFor","fontSize","minRatio","Math","ceil","clampLineHeight","declaredLineHeight","max"],"sourceRoot":"../../../src","sources":["theme/line-height.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMA,6BAA6B,GAAG,IAAI;;AAEjD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAACC,KAAsD,EAAU;EACzF,OAAOA,KAAK,CAACC,UAAU,CAACC,kBAAkB,IAAIJ,6BAA6B;AAC7E;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,gBAAgBA,CAACC,QAAgB,EAAEC,QAAgB,EAAU;EAC3E,OAAOC,IAAI,CAACC,IAAI,CAACH,QAAQ,GAAGC,QAAQ,CAAC;AACvC;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASG,eAAeA,CAC7BJ,QAAgB,EAChBK,kBAA0B,EAC1BJ,QAAgB,EACR;EACR,OAAOC,IAAI,CAACI,GAAG,CAACD,kBAAkB,EAAEN,gBAAgB,CAACC,QAAQ,EAAEC,QAAQ,CAAC,CAAC;AAC3E","ignoreList":[]}
|
|
@@ -38,7 +38,7 @@ export const nativeTheme = {
|
|
|
38
38
|
},
|
|
39
39
|
"dark": {
|
|
40
40
|
"bg-page": "#0f172a",
|
|
41
|
-
"bg-page-alt": "#
|
|
41
|
+
"bg-page-alt": "#334155",
|
|
42
42
|
"bg-surface": "#1e293b",
|
|
43
43
|
"bg-surface-alt": "#0f172a",
|
|
44
44
|
"text-heading": "#f1f5f9",
|
|
@@ -81,11 +81,11 @@ export const nativeTheme = {
|
|
|
81
81
|
"fontSize": {
|
|
82
82
|
"xxs": {
|
|
83
83
|
"fontSize": 10,
|
|
84
|
-
"lineHeight":
|
|
84
|
+
"lineHeight": 15
|
|
85
85
|
},
|
|
86
86
|
"xs": {
|
|
87
87
|
"fontSize": 13,
|
|
88
|
-
"lineHeight":
|
|
88
|
+
"lineHeight": 19
|
|
89
89
|
},
|
|
90
90
|
"sm": {
|
|
91
91
|
"fontSize": 15,
|
|
@@ -101,15 +101,15 @@ export const nativeTheme = {
|
|
|
101
101
|
},
|
|
102
102
|
"xl": {
|
|
103
103
|
"fontSize": 22,
|
|
104
|
-
"lineHeight":
|
|
104
|
+
"lineHeight": 32
|
|
105
105
|
},
|
|
106
106
|
"2xl": {
|
|
107
107
|
"fontSize": 26,
|
|
108
|
-
"lineHeight":
|
|
108
|
+
"lineHeight": 38
|
|
109
109
|
},
|
|
110
110
|
"3xl": {
|
|
111
111
|
"fontSize": 32,
|
|
112
|
-
"lineHeight":
|
|
112
|
+
"lineHeight": 47
|
|
113
113
|
}
|
|
114
114
|
},
|
|
115
115
|
"fontWeight": {
|
|
@@ -121,7 +121,8 @@ export const nativeTheme = {
|
|
|
121
121
|
"letterSpacingRatio": {
|
|
122
122
|
"heading": 0.01,
|
|
123
123
|
"body": 0.02
|
|
124
|
-
}
|
|
124
|
+
},
|
|
125
|
+
"minLineHeightRatio": 1.45
|
|
125
126
|
},
|
|
126
127
|
"spacing": {
|
|
127
128
|
"1": 4,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nativeTheme"],"sourceRoot":"../../../src","sources":["theme/native-theme.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["nativeTheme"],"sourceRoot":"../../../src","sources":["theme/native-theme.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tap-target — 実効タップ標的 44pt(横断方針)の数値 SSOT。
|
|
3
|
+
*
|
|
4
|
+
* 正本は melta-contracts の `A11Y_MIN_TAP_TARGET_44`(rules.json):
|
|
5
|
+
* 「すべての操作要素は実効タップ標的 44pt を下回らない。視覚寸法は契約どおり据え置き、
|
|
6
|
+
* 当たり判定だけを広げる。app は視覚 24pt + hitSlop 10 の正典パターンか minHeight で下限を保証する
|
|
7
|
+
* (height 固定は fontScale でクリップするので使わない)」。
|
|
8
|
+
*
|
|
9
|
+
* ここは「44」という数と正典パターンの寸法を**一箇所**に置くための pure module。
|
|
10
|
+
* 各コンポーネントの hitSlop 値そのものは **literal で各 `*.styles.ts` に置く**(ここから
|
|
11
|
+
* 自動導出しない)。導出にすると視覚寸法が変わったとき hitSlop も一緒に動いてしまい、
|
|
12
|
+
* conformance テスト(scripts/lib/tap-target-conformance.test.ts)が構造的に fail-open になるため。
|
|
13
|
+
*
|
|
14
|
+
* react-native を import しない純粋モジュール(`*.styles.ts` と同じ規約)。
|
|
15
|
+
*/
|
|
16
|
+
/** 実効タップ標的の下限(pt)。WCAG 2.2 SC 2.5.5(AAA)水準を melta の横断方針として採る。 */
|
|
17
|
+
export declare const MIN_TAP_TARGET = 44;
|
|
18
|
+
/**
|
|
19
|
+
* 正典パターン: 視覚 24pt の箱 + hitSlop 10 → 実効 44pt。
|
|
20
|
+
* 背景を持たない小さな操作要素(Tag removable の × / Toast の × / Alert の × / Modal の ×)はこれ。
|
|
21
|
+
*/
|
|
22
|
+
export declare const CANONICAL_TAP_TARGET: {
|
|
23
|
+
readonly minWidth: 24;
|
|
24
|
+
readonly minHeight: 24;
|
|
25
|
+
readonly hitSlop: 10;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* 視覚寸法 `visual` を実効 44pt に届かせるのに必要な**片側** hitSlop(切り上げ = 安全側)。
|
|
29
|
+
*
|
|
30
|
+
* ⚠️ 実装の hitSlop 値をこの関数で計算しないこと(上のコメント参照)。
|
|
31
|
+
* 使うのは (a) 値を決めるときの検算、(b) conformance テストの期待値算出。
|
|
32
|
+
*/
|
|
33
|
+
export declare function requiredHitSlop(visual: number): number;
|
|
34
|
+
//# sourceMappingURL=tap-target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tap-target.d.ts","sourceRoot":"","sources":["../../../../src/a11y/tap-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,iEAAiE;AACjE,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|