@unif/react-native-design 0.11.0 → 0.12.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.
@@ -6,6 +6,9 @@
6
6
  // navigation / store 耦合的(ScreenLayout / ModernAppCell / CellList /
7
7
  // SmsCodeInput)留在 consumer 仓库
8
8
  export { GradientWash, RadialHalo, ScreenBackdrop } from "./Decorations/index.js";
9
+ // SVG 渐变 id 生成 hook —— 喂 GradientWash / RadialHalo 的 gradientId,或消费者自建
10
+ // SVG 渐变复用;消毒 React 19 useId 的冒号(SVG id 非法字符)。
11
+ export { useSvgId } from "./useSvgId.js";
9
12
  export { GlassStats } from "./GlassStats/index.js";
10
13
  export { AvatarWithRing } from "./AvatarWithRing/index.js";
11
14
  export { VersionPill } from "./VersionPill/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":["GradientWash","RadialHalo","ScreenBackdrop","GlassStats","AvatarWithRing","VersionPill"],"sourceRoot":"../../../../src","sources":["components/business/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,UAAU,EAAEC,cAAc,QAAQ,wBAAe;AAUxE,SAASC,UAAU,QAAQ,uBAAc;AAGzC,SAASC,cAAc,QAAQ,2BAAkB;AAGjD,SAASC,WAAW,QAAQ,wBAAe","ignoreList":[]}
1
+ {"version":3,"names":["GradientWash","RadialHalo","ScreenBackdrop","useSvgId","GlassStats","AvatarWithRing","VersionPill"],"sourceRoot":"../../../../src","sources":["components/business/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,UAAU,EAAEC,cAAc,QAAQ,wBAAe;AAUxE;AACA;AACA,SAASC,QAAQ,QAAQ,eAAY;AAErC,SAASC,UAAU,QAAQ,uBAAc;AAGzC,SAASC,cAAc,QAAQ,2BAAkB;AAGjD,SAASC,WAAW,QAAQ,wBAAe","ignoreList":[]}
@@ -49,12 +49,13 @@ export function Checkbox({
49
49
  backgroundColor: c.primary,
50
50
  borderColor: c.primary
51
51
  }],
52
- children: checked ? /*#__PURE__*/_jsx(Icon, {
52
+ children: /*#__PURE__*/_jsx(Icon, {
53
53
  name: "check",
54
54
  size: r(14),
55
55
  color: c.onPrimary,
56
- strokeWidth: 3.5
57
- }) : null
56
+ strokeWidth: 3.5,
57
+ style: checked ? undefined : styles.tickHidden
58
+ })
58
59
  }), label ? /*#__PURE__*/_jsx(Text, {
59
60
  style: styles.label,
60
61
  children: label
@@ -1 +1 @@
1
- {"version":3,"names":["React","Text","View","Pressable","fixed","pressedOpacity","r","useColors","useThemedStyles","Icon","makeStyles","jsx","_jsx","jsxs","_jsxs","Checkbox","checked","onChange","label","shape","disabled","testID","c","styles","onPress","hitSlop","Math","round","hitTarget","accessibilityRole","accessibilityState","accessibilityLabel","style","pressed","row","opacity","children","box","boxCircle","backgroundColor","primary","borderColor","name","size","color","onPrimary","strokeWidth"],"sourceRoot":"../../../../../src","sources":["components/ui/Checkbox/Checkbox.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACzC,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SACEC,KAAK,EACLC,cAAc,EACdC,CAAC,EACDC,SAAS,EACTC,eAAe,QACV,yBAAgB;AACvB,SAASC,IAAI,QAAQ,kBAAS;AAC9B,SAASC,UAAU,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAAC;EACvBC,OAAO;EACPC,QAAQ;EACRC,KAAK;EACLC,KAAK,GAAG,QAAQ;EAChBC,QAAQ;EACRC;AACa,CAAC,EAAqB;EACnC,MAAMC,CAAC,GAAGf,SAAS,CAAC,CAAC;EACrB,MAAMgB,MAAM,GAAGf,eAAe,CAACE,UAAU,CAAC;EAC1C,oBACEI,KAAA,CAACX,SAAS;IACRqB,OAAO,EAAEA,CAAA,KAAM,CAACJ,QAAQ,IAAIH,QAAQ,CAAC,CAACD,OAAO,CAAE;IAC/CI,QAAQ,EAAEA;IACV;IAAA;IACAK,OAAO,EAAEC,IAAI,CAACC,KAAK,CAAC,CAACvB,KAAK,CAACwB,SAAS,GAAGtB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAE;IACnDuB,iBAAiB,EAAC,UAAU;IAC5BC,kBAAkB,EAAE;MAAEd,OAAO;MAAEI,QAAQ,EAAE,CAAC,CAACA;IAAS,CAAE;IACtDW,kBAAkB,EAAEb,KAAM;IAC1BG,MAAM,EAAEA,MAAO;IACfW,KAAK,EAAEA,CAAC;MAAEC;IAAQ,CAAC,KAAK,CACtBV,MAAM,CAACW,GAAG,EACV;MAAEC,OAAO,EAAEf,QAAQ,GAAG,GAAG,GAAGa,OAAO,GAAG5B,cAAc,GAAG;IAAE,CAAC,CAC1D;IAAA+B,QAAA,gBAEFxB,IAAA,CAACV,IAAI;MACH8B,KAAK,EAAE,CACLT,MAAM,CAACc,GAAG;MACV;MACAlB,KAAK,KAAK,QAAQ,IAAII,MAAM,CAACe,SAAS,EACtCtB,OAAO,IAAI;QACTuB,eAAe,EAAEjB,CAAC,CAACkB,OAAO;QAC1BC,WAAW,EAAEnB,CAAC,CAACkB;MACjB,CAAC,CACD;MAAAJ,QAAA,EAEDpB,OAAO,gBACNJ,IAAA,CAACH,IAAI;QACHiC,IAAI,EAAC,OAAO;QACZC,IAAI,EAAErC,CAAC,CAAC,EAAE,CAAE;QACZsC,KAAK,EAAEtB,CAAC,CAACuB,SAAU;QACnBC,WAAW,EAAE;MAAI,CAClB,CAAC,GACA;IAAI,CACJ,CAAC,EACN5B,KAAK,gBAAGN,IAAA,CAACX,IAAI;MAAC+B,KAAK,EAAET,MAAM,CAACL,KAAM;MAAAkB,QAAA,EAAElB;IAAK,CAAO,CAAC,GAAG,IAAI;EAAA,CAChD,CAAC;AAEhB","ignoreList":[]}
1
+ {"version":3,"names":["React","Text","View","Pressable","fixed","pressedOpacity","r","useColors","useThemedStyles","Icon","makeStyles","jsx","_jsx","jsxs","_jsxs","Checkbox","checked","onChange","label","shape","disabled","testID","c","styles","onPress","hitSlop","Math","round","hitTarget","accessibilityRole","accessibilityState","accessibilityLabel","style","pressed","row","opacity","children","box","boxCircle","backgroundColor","primary","borderColor","name","size","color","onPrimary","strokeWidth","undefined","tickHidden"],"sourceRoot":"../../../../../src","sources":["components/ui/Checkbox/Checkbox.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACzC,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SACEC,KAAK,EACLC,cAAc,EACdC,CAAC,EACDC,SAAS,EACTC,eAAe,QACV,yBAAgB;AACvB,SAASC,IAAI,QAAQ,kBAAS;AAC9B,SAASC,UAAU,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAAC;EACvBC,OAAO;EACPC,QAAQ;EACRC,KAAK;EACLC,KAAK,GAAG,QAAQ;EAChBC,QAAQ;EACRC;AACa,CAAC,EAAqB;EACnC,MAAMC,CAAC,GAAGf,SAAS,CAAC,CAAC;EACrB,MAAMgB,MAAM,GAAGf,eAAe,CAACE,UAAU,CAAC;EAC1C,oBACEI,KAAA,CAACX,SAAS;IACRqB,OAAO,EAAEA,CAAA,KAAM,CAACJ,QAAQ,IAAIH,QAAQ,CAAC,CAACD,OAAO,CAAE;IAC/CI,QAAQ,EAAEA;IACV;IAAA;IACAK,OAAO,EAAEC,IAAI,CAACC,KAAK,CAAC,CAACvB,KAAK,CAACwB,SAAS,GAAGtB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAE;IACnDuB,iBAAiB,EAAC,UAAU;IAC5BC,kBAAkB,EAAE;MAAEd,OAAO;MAAEI,QAAQ,EAAE,CAAC,CAACA;IAAS,CAAE;IACtDW,kBAAkB,EAAEb,KAAM;IAC1BG,MAAM,EAAEA,MAAO;IACfW,KAAK,EAAEA,CAAC;MAAEC;IAAQ,CAAC,KAAK,CACtBV,MAAM,CAACW,GAAG,EACV;MAAEC,OAAO,EAAEf,QAAQ,GAAG,GAAG,GAAGa,OAAO,GAAG5B,cAAc,GAAG;IAAE,CAAC,CAC1D;IAAA+B,QAAA,gBAEFxB,IAAA,CAACV,IAAI;MACH8B,KAAK,EAAE,CACLT,MAAM,CAACc,GAAG;MACV;MACAlB,KAAK,KAAK,QAAQ,IAAII,MAAM,CAACe,SAAS,EACtCtB,OAAO,IAAI;QACTuB,eAAe,EAAEjB,CAAC,CAACkB,OAAO;QAC1BC,WAAW,EAAEnB,CAAC,CAACkB;MACjB,CAAC,CACD;MAAAJ,QAAA,eAGFxB,IAAA,CAACH,IAAI;QACHiC,IAAI,EAAC,OAAO;QACZC,IAAI,EAAErC,CAAC,CAAC,EAAE,CAAE;QACZsC,KAAK,EAAEtB,CAAC,CAACuB,SAAU;QACnBC,WAAW,EAAE,GAAI;QACjBd,KAAK,EAAEhB,OAAO,GAAG+B,SAAS,GAAGxB,MAAM,CAACyB;MAAW,CAChD;IAAC,CACE,CAAC,EACN9B,KAAK,gBAAGN,IAAA,CAACX,IAAI;MAAC+B,KAAK,EAAET,MAAM,CAACL,KAAM;MAAAkB,QAAA,EAAElB;IAAK,CAAO,CAAC,GAAG,IAAI;EAAA,CAChD,CAAC;AAEhB","ignoreList":[]}
@@ -23,6 +23,11 @@ export const makeStyles = c => StyleSheet.create({
23
23
  boxCircle: {
24
24
  borderRadius: radius.pill
25
25
  },
26
+ /** 未选中时对勾透明但仍常驻渲染 —— 避开 react-native-svg 新架构下条件挂载(动态 mount)
27
+ * SVG 不重绘的问题(仅首屏 mount 渲染,toggle 后不显示)。 */
28
+ tickHidden: {
29
+ opacity: 0
30
+ },
26
31
  label: {
27
32
  fontSize: t.sm,
28
33
  color: c.foreground,
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","fw","r","radius","space","type","t","makeStyles","c","create","row","flexDirection","alignItems","alignSelf","gap","box","width","height","borderRadius","xs","borderWidth","borderColor","outline","justifyContent","boxCircle","pill","label","fontSize","sm","color","foreground","fontWeight","regular","flexShrink"],"sourceRoot":"../../../../../src","sources":["components/ui/Checkbox/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,EAAE,EAAEC,CAAC,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,IAAIC,CAAC,QAAQ,yBAAgB;AAGhE,OAAO,MAAMC,UAAU,GAAIC,CAAc,IACvCR,UAAU,CAACS,MAAM,CAAC;EAChBC,GAAG,EAAE;IACHC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpB;IACAC,SAAS,EAAE,YAAqB;IAChCC,GAAG,EAAEV,KAAK,CAAC,CAAC;EACd,CAAC;EACDW,GAAG,EAAE;IACHC,KAAK,EAAEd,CAAC,CAAC,EAAE,CAAC;IACZe,MAAM,EAAEf,CAAC,CAAC,EAAE,CAAC;IACbgB,YAAY,EAAEf,MAAM,CAACgB,EAAE;IACvBC,WAAW,EAAElB,CAAC,CAAC,GAAG,CAAC;IACnBmB,WAAW,EAAEb,CAAC,CAACc,OAAO;IACtBV,UAAU,EAAE,QAAQ;IACpBW,cAAc,EAAE;EAClB,CAAC;EACD;EACAC,SAAS,EAAE;IACTN,YAAY,EAAEf,MAAM,CAACsB;EACvB,CAAC;EACDC,KAAK,EAAE;IACLC,QAAQ,EAAErB,CAAC,CAACsB,EAAE;IACdC,KAAK,EAAErB,CAAC,CAACsB,UAAU;IACnBC,UAAU,EAAE9B,EAAE,CAAC+B,OAAO;IACtB;IACAC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","fw","r","radius","space","type","t","makeStyles","c","create","row","flexDirection","alignItems","alignSelf","gap","box","width","height","borderRadius","xs","borderWidth","borderColor","outline","justifyContent","boxCircle","pill","tickHidden","opacity","label","fontSize","sm","color","foreground","fontWeight","regular","flexShrink"],"sourceRoot":"../../../../../src","sources":["components/ui/Checkbox/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,EAAE,EAAEC,CAAC,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,IAAIC,CAAC,QAAQ,yBAAgB;AAGhE,OAAO,MAAMC,UAAU,GAAIC,CAAc,IACvCR,UAAU,CAACS,MAAM,CAAC;EAChBC,GAAG,EAAE;IACHC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpB;IACAC,SAAS,EAAE,YAAqB;IAChCC,GAAG,EAAEV,KAAK,CAAC,CAAC;EACd,CAAC;EACDW,GAAG,EAAE;IACHC,KAAK,EAAEd,CAAC,CAAC,EAAE,CAAC;IACZe,MAAM,EAAEf,CAAC,CAAC,EAAE,CAAC;IACbgB,YAAY,EAAEf,MAAM,CAACgB,EAAE;IACvBC,WAAW,EAAElB,CAAC,CAAC,GAAG,CAAC;IACnBmB,WAAW,EAAEb,CAAC,CAACc,OAAO;IACtBV,UAAU,EAAE,QAAQ;IACpBW,cAAc,EAAE;EAClB,CAAC;EACD;EACAC,SAAS,EAAE;IACTN,YAAY,EAAEf,MAAM,CAACsB;EACvB,CAAC;EACD;AACJ;EACIC,UAAU,EAAE;IAAEC,OAAO,EAAE;EAAE,CAAC;EAC1BC,KAAK,EAAE;IACLC,QAAQ,EAAEvB,CAAC,CAACwB,EAAE;IACdC,KAAK,EAAEvB,CAAC,CAACwB,UAAU;IACnBC,UAAU,EAAEhC,EAAE,CAACiC,OAAO;IACtB;IACAC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  export { GradientWash, RadialHalo, ScreenBackdrop } from './Decorations';
2
2
  export type { GradientStop, GradientWashProps, RadialHaloProps, ScreenBackdropHalo, ScreenBackdropPreset, ScreenBackdropProps, } from './Decorations';
3
+ export { useSvgId } from './useSvgId';
3
4
  export { GlassStats } from './GlassStats';
4
5
  export type { GlassStatsProps, GlassStatItem } from './GlassStats';
5
6
  export { AvatarWithRing } from './AvatarWithRing';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/business/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/business/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -19,6 +19,11 @@ export declare const makeStyles: (c: ColorTokens) => Readonly<{
19
19
  boxCircle: {
20
20
  borderRadius: 999;
21
21
  };
22
+ /** 未选中时对勾透明但仍常驻渲染 —— 避开 react-native-svg 新架构下条件挂载(动态 mount)
23
+ * SVG 不重绘的问题(仅首屏 mount 渲染,toggle 后不显示)。 */
24
+ tickHidden: {
25
+ opacity: number;
26
+ };
22
27
  label: {
23
28
  fontSize: number;
24
29
  color: string;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Checkbox/styles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,UAAU,GAAI,GAAG,WAAW;;;;;;;;;;;;;;;;IAkBrC,6DAA6D;;;;;;;;;;EAW7D,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/Checkbox/styles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,UAAU,GAAI,GAAG,WAAW;;;;;;;;;;;;;;;;IAkBrC,6DAA6D;;;;IAI7D;gDAC4C;;;;;;;;;;EAS5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unif/react-native-design",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Unif 设计系统:theme + icons + utils + components",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -13,6 +13,10 @@ export type {
13
13
  ScreenBackdropProps,
14
14
  } from './Decorations';
15
15
 
16
+ // SVG 渐变 id 生成 hook —— 喂 GradientWash / RadialHalo 的 gradientId,或消费者自建
17
+ // SVG 渐变复用;消毒 React 19 useId 的冒号(SVG id 非法字符)。
18
+ export { useSvgId } from './useSvgId';
19
+
16
20
  export { GlassStats } from './GlassStats';
17
21
  export type { GlassStatsProps, GlassStatItem } from './GlassStats';
18
22
 
@@ -55,14 +55,14 @@ export function Checkbox({
55
55
  },
56
56
  ]}
57
57
  >
58
- {checked ? (
59
- <Icon
60
- name="check"
61
- size={r(14)}
62
- color={c.onPrimary}
63
- strokeWidth={3.5}
64
- />
65
- ) : null}
58
+ {/* 常驻渲染 + opacity 切显隐(非 {checked?<Icon/>:null} 条件挂载)—— 见 styles.tickHidden。 */}
59
+ <Icon
60
+ name="check"
61
+ size={r(14)}
62
+ color={c.onPrimary}
63
+ strokeWidth={3.5}
64
+ style={checked ? undefined : styles.tickHidden}
65
+ />
66
66
  </View>
67
67
  {label ? <Text style={styles.label}>{label}</Text> : null}
68
68
  </Pressable>
@@ -24,6 +24,9 @@ export const makeStyles = (c: ColorTokens) =>
24
24
  boxCircle: {
25
25
  borderRadius: radius.pill,
26
26
  },
27
+ /** 未选中时对勾透明但仍常驻渲染 —— 避开 react-native-svg 新架构下条件挂载(动态 mount)
28
+ * SVG 不重绘的问题(仅首屏 mount 渲染,toggle 后不显示)。 */
29
+ tickHidden: { opacity: 0 },
27
30
  label: {
28
31
  fontSize: t.sm,
29
32
  color: c.foreground,