@unif/react-native-design 0.14.2 → 0.15.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.
@@ -9,13 +9,14 @@ import { paletteFor, styles } from "./styles.js";
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  /**
11
11
  * 任务列表 / 推理链通用的状态圆点。
12
- * done = 绿底 + 白勾;active = 边框 + 内部 PulseDot;pending = 仅边框。
12
+ * done = 绿底 + 白勾;error = 红底 + 白叉;active = 边框 + 内部 PulseDot;pending = 仅边框。
13
13
  */
14
14
  // status 派生默认 a11y label —— 不传时 SR 仍能播报状态语义。
15
15
  const DEFAULT_A11Y = {
16
16
  pending: 'pending',
17
17
  active: 'active',
18
- done: 'done'
18
+ done: 'done',
19
+ error: 'error'
19
20
  };
20
21
  export function StatusDot({
21
22
  status,
@@ -48,6 +49,11 @@ export function StatusDot({
48
49
  size: Math.round(size * 0.6),
49
50
  color: c.onPrimary,
50
51
  strokeWidth: 2.5
52
+ }) : status === 'error' ? /*#__PURE__*/_jsx(Icon, {
53
+ name: "close",
54
+ size: Math.round(size * 0.6),
55
+ color: c.onError,
56
+ strokeWidth: 2.5
51
57
  }) : status === 'active' ?
52
58
  /*#__PURE__*/
53
59
  // [L-13] size 随外圈等比派生(系数 0.375 ≈ 6/16),视觉居中且不溢出。
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","r","useColors","Icon","PulseDot","paletteFor","styles","jsx","_jsx","DEFAULT_A11Y","pending","active","done","StatusDot","status","size","tone","accessibilityLabel","style","testID","c","bg","border","a11yLabel","undefined","dot","width","height","borderRadius","backgroundColor","borderColor","accessible","children","name","Math","round","color","onPrimary","strokeWidth"],"sourceRoot":"../../../../../src","sources":["components/ui/StatusDot/StatusDot.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,CAAC,EAAEC,SAAS,QAAQ,yBAAgB;AAC7C,SAASC,IAAI,QAAQ,kBAAS;AAC9B,SAASC,QAAQ,QAAQ,mBAAU;AACnC,SAASC,UAAU,EAAEC,MAAM,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9C;AACA;AACA;AACA;AACA;AACA,MAAMC,YAAoC,GAAG;EAC3CC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE;AACR,CAAC;AAED,OAAO,SAASC,SAASA,CAAC;EACxBC,MAAM;EACNC,IAAI,GAAGd,CAAC,CAAC,EAAE,CAAC;EACZe,IAAI,GAAG,MAAM;EACbC,kBAAkB;EAClBC,KAAK;EACLC;AACc,CAAC,EAAqB;EACpC,MAAMC,CAAC,GAAGlB,SAAS,CAAC,CAAC;EACrB,MAAM;IAAEmB,EAAE;IAAEC;EAAO,CAAC,GAAGjB,UAAU,CAACS,MAAM,EAAEE,IAAI,EAAEI,CAAC,CAAC;EAClD;EACA,MAAMG,SAAS,GACbN,kBAAkB,KAAKO,SAAS,GAC5BP,kBAAkB,IAAIO,SAAS,GAC/Bf,YAAY,CAACK,MAAM,CAAC;EAE1B,oBACEN,IAAA,CAACR,IAAI;IACHkB,KAAK,EAAE,CACLZ,MAAM,CAACmB,GAAG,EACV;MACEC,KAAK,EAAEX,IAAI;MACXY,MAAM,EAAEZ,IAAI;MACZa,YAAY,EAAEb,IAAI,GAAG,CAAC;MACtBc,eAAe,EAAER,EAAE;MACnBS,WAAW,EAAER;IACf,CAAC,EACDJ,KAAK,CACL;IACFa,UAAU,EAAE,CAAC,CAACR,SAAU;IACxBN,kBAAkB,EAAEM,SAAU;IAC9BJ,MAAM,EAAEA,MAAO;IAAAa,QAAA,EAEdlB,MAAM,KAAK,MAAM,gBAChBN,IAAA,CAACL,IAAI;MACH8B,IAAI,EAAC,OAAO;MACZlB,IAAI,EAAEmB,IAAI,CAACC,KAAK,CAACpB,IAAI,GAAG,GAAG,CAAE;MAC7BqB,KAAK,EAAEhB,CAAC,CAACiB,SAAU;MACnBC,WAAW,EAAE;IAAI,CAClB,CAAC,GACAxB,MAAM,KAAK,QAAQ;IAAA;IACrB;IACAN,IAAA,CAACJ,QAAQ;MAACW,IAAI,EAAEmB,IAAI,CAACC,KAAK,CAACpB,IAAI,GAAG,KAAK;IAAE,CAAE,CAAC,GAC1C;EAAI,CACJ,CAAC;AAEX","ignoreList":[]}
1
+ {"version":3,"names":["React","View","r","useColors","Icon","PulseDot","paletteFor","styles","jsx","_jsx","DEFAULT_A11Y","pending","active","done","error","StatusDot","status","size","tone","accessibilityLabel","style","testID","c","bg","border","a11yLabel","undefined","dot","width","height","borderRadius","backgroundColor","borderColor","accessible","children","name","Math","round","color","onPrimary","strokeWidth","onError"],"sourceRoot":"../../../../../src","sources":["components/ui/StatusDot/StatusDot.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,CAAC,EAAEC,SAAS,QAAQ,yBAAgB;AAC7C,SAASC,IAAI,QAAQ,kBAAS;AAC9B,SAASC,QAAQ,QAAQ,mBAAU;AACnC,SAASC,UAAU,EAAEC,MAAM,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9C;AACA;AACA;AACA;AACA;AACA,MAAMC,YAAoC,GAAG;EAC3CC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE;AACT,CAAC;AAED,OAAO,SAASC,SAASA,CAAC;EACxBC,MAAM;EACNC,IAAI,GAAGf,CAAC,CAAC,EAAE,CAAC;EACZgB,IAAI,GAAG,MAAM;EACbC,kBAAkB;EAClBC,KAAK;EACLC;AACc,CAAC,EAAqB;EACpC,MAAMC,CAAC,GAAGnB,SAAS,CAAC,CAAC;EACrB,MAAM;IAAEoB,EAAE;IAAEC;EAAO,CAAC,GAAGlB,UAAU,CAACU,MAAM,EAAEE,IAAI,EAAEI,CAAC,CAAC;EAClD;EACA,MAAMG,SAAS,GACbN,kBAAkB,KAAKO,SAAS,GAC5BP,kBAAkB,IAAIO,SAAS,GAC/BhB,YAAY,CAACM,MAAM,CAAC;EAE1B,oBACEP,IAAA,CAACR,IAAI;IACHmB,KAAK,EAAE,CACLb,MAAM,CAACoB,GAAG,EACV;MACEC,KAAK,EAAEX,IAAI;MACXY,MAAM,EAAEZ,IAAI;MACZa,YAAY,EAAEb,IAAI,GAAG,CAAC;MACtBc,eAAe,EAAER,EAAE;MACnBS,WAAW,EAAER;IACf,CAAC,EACDJ,KAAK,CACL;IACFa,UAAU,EAAE,CAAC,CAACR,SAAU;IACxBN,kBAAkB,EAAEM,SAAU;IAC9BJ,MAAM,EAAEA,MAAO;IAAAa,QAAA,EAEdlB,MAAM,KAAK,MAAM,gBAChBP,IAAA,CAACL,IAAI;MACH+B,IAAI,EAAC,OAAO;MACZlB,IAAI,EAAEmB,IAAI,CAACC,KAAK,CAACpB,IAAI,GAAG,GAAG,CAAE;MAC7BqB,KAAK,EAAEhB,CAAC,CAACiB,SAAU;MACnBC,WAAW,EAAE;IAAI,CAClB,CAAC,GACAxB,MAAM,KAAK,OAAO,gBACpBP,IAAA,CAACL,IAAI;MACH+B,IAAI,EAAC,OAAO;MACZlB,IAAI,EAAEmB,IAAI,CAACC,KAAK,CAACpB,IAAI,GAAG,GAAG,CAAE;MAC7BqB,KAAK,EAAEhB,CAAC,CAACmB,OAAQ;MACjBD,WAAW,EAAE;IAAI,CAClB,CAAC,GACAxB,MAAM,KAAK,QAAQ;IAAA;IACrB;IACAP,IAAA,CAACJ,QAAQ;MAACY,IAAI,EAAEmB,IAAI,CAACC,KAAK,CAACpB,IAAI,GAAG,KAAK;IAAE,CAAE,CAAC,GAC1C;EAAI,CACJ,CAAC;AAEX","ignoreList":[]}
@@ -25,6 +25,11 @@ export function paletteFor(status, tone, c) {
25
25
  bg: c.success,
26
26
  border: c.success
27
27
  };
28
+ case 'error':
29
+ return {
30
+ bg: c.error,
31
+ border: c.error
32
+ };
28
33
  case 'active':
29
34
  return {
30
35
  bg: tone === 'soft' ? c.primaryContainer : 'transparent',
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","r","styles","create","dot","borderWidth","alignItems","justifyContent","paletteFor","status","tone","c","bg","success","border","primaryContainer","primary","surface","outline"],"sourceRoot":"../../../../../src","sources":["components/ui/StatusDot/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,CAAC,QAA0B,yBAAgB;AAGpD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,GAAGF,UAAU,CAACG,MAAM,CAAC;EACtCC,GAAG,EAAE;IACHC,WAAW,EAAEJ,CAAC,CAAC,GAAG,CAAC;IACnBK,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CACxBC,MAAuB,EACvBC,IAAmB,EACnBC,CAAc,EACkB;EAChC,QAAQF,MAAM;IACZ,KAAK,MAAM;MACT,OAAO;QAAEG,EAAE,EAAED,CAAC,CAACE,OAAO;QAAEC,MAAM,EAAEH,CAAC,CAACE;MAAQ,CAAC;IAC7C,KAAK,QAAQ;MACX,OAAO;QACLD,EAAE,EAAEF,IAAI,KAAK,MAAM,GAAGC,CAAC,CAACI,gBAAgB,GAAG,aAAa;QACxDD,MAAM,EAAEH,CAAC,CAACK;MACZ,CAAC;IACH,KAAK,SAAS;MACZ,OAAO;QACLJ,EAAE,EAAEF,IAAI,KAAK,MAAM,GAAGC,CAAC,CAACM,OAAO,GAAG,aAAa;QAC/CH,MAAM,EAAEH,CAAC,CAACO;MACZ,CAAC;EACL;AACF","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","r","styles","create","dot","borderWidth","alignItems","justifyContent","paletteFor","status","tone","c","bg","success","border","error","primaryContainer","primary","surface","outline"],"sourceRoot":"../../../../../src","sources":["components/ui/StatusDot/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,CAAC,QAA0B,yBAAgB;AAGpD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,GAAGF,UAAU,CAACG,MAAM,CAAC;EACtCC,GAAG,EAAE;IACHC,WAAW,EAAEJ,CAAC,CAAC,GAAG,CAAC;IACnBK,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CACxBC,MAAuB,EACvBC,IAAmB,EACnBC,CAAc,EACkB;EAChC,QAAQF,MAAM;IACZ,KAAK,MAAM;MACT,OAAO;QAAEG,EAAE,EAAED,CAAC,CAACE,OAAO;QAAEC,MAAM,EAAEH,CAAC,CAACE;MAAQ,CAAC;IAC7C,KAAK,OAAO;MACV,OAAO;QAAED,EAAE,EAAED,CAAC,CAACI,KAAK;QAAED,MAAM,EAAEH,CAAC,CAACI;MAAM,CAAC;IACzC,KAAK,QAAQ;MACX,OAAO;QACLH,EAAE,EAAEF,IAAI,KAAK,MAAM,GAAGC,CAAC,CAACK,gBAAgB,GAAG,aAAa;QACxDF,MAAM,EAAEH,CAAC,CAACM;MACZ,CAAC;IACH,KAAK,SAAS;MACZ,OAAO;QACLL,EAAE,EAAEF,IAAI,KAAK,MAAM,GAAGC,CAAC,CAACO,OAAO,GAAG,aAAa;QAC/CJ,MAAM,EAAEH,CAAC,CAACQ;MACZ,CAAC;EACL;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"StatusDot.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/StatusDot/StatusDot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAa9C,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,IAAY,EACZ,IAAa,EACb,kBAAkB,EAClB,KAAK,EACL,MAAM,GACP,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuCpC"}
1
+ {"version":3,"file":"StatusDot.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/StatusDot/StatusDot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAc9C,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,IAAY,EACZ,IAAa,EACb,kBAAkB,EAClB,KAAK,EACL,MAAM,GACP,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA8CpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/StatusDot/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;EAMjB,CAAC;AAEH;;yFAEyF;AACzF,wBAAgB,UAAU,CACxB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,aAAa,EACnB,CAAC,EAAE,WAAW,GACb;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAehC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/StatusDot/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAK,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;EAMjB,CAAC;AAEH;;yFAEyF;AACzF,wBAAgB,UAAU,CACxB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,aAAa,EACnB,CAAC,EAAE,WAAW,GACb;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAiBhC"}
@@ -1,5 +1,5 @@
1
1
  import type { StyleProp, ViewStyle } from 'react-native';
2
- export type StatusDotStatus = 'pending' | 'active' | 'done';
2
+ export type StatusDotStatus = 'pending' | 'active' | 'done' | 'error';
3
3
  /**
4
4
  * `flat`:pending/active 底色透明(任务列表风格)。
5
5
  * `soft`:pending = surface、active = primaryContainer,常用于推理链。
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/StatusDot/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uCAAuC;IACvC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,iBAAiB;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/ui/StatusDot/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uCAAuC;IACvC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,iBAAiB;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unif/react-native-design",
3
- "version": "0.14.2",
3
+ "version": "0.15.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",
@@ -8,13 +8,14 @@ import type { StatusDotProps } from './types';
8
8
 
9
9
  /**
10
10
  * 任务列表 / 推理链通用的状态圆点。
11
- * done = 绿底 + 白勾;active = 边框 + 内部 PulseDot;pending = 仅边框。
11
+ * done = 绿底 + 白勾;error = 红底 + 白叉;active = 边框 + 内部 PulseDot;pending = 仅边框。
12
12
  */
13
13
  // status 派生默认 a11y label —— 不传时 SR 仍能播报状态语义。
14
14
  const DEFAULT_A11Y: Record<string, string> = {
15
15
  pending: 'pending',
16
16
  active: 'active',
17
17
  done: 'done',
18
+ error: 'error',
18
19
  };
19
20
 
20
21
  export function StatusDot({
@@ -57,6 +58,13 @@ export function StatusDot({
57
58
  color={c.onPrimary}
58
59
  strokeWidth={2.5}
59
60
  />
61
+ ) : status === 'error' ? (
62
+ <Icon
63
+ name="close"
64
+ size={Math.round(size * 0.6)}
65
+ color={c.onError}
66
+ strokeWidth={2.5}
67
+ />
60
68
  ) : status === 'active' ? (
61
69
  // [L-13] size 随外圈等比派生(系数 0.375 ≈ 6/16),视觉居中且不溢出。
62
70
  <PulseDot size={Math.round(size * 0.375)} />
@@ -26,6 +26,8 @@ export function paletteFor(
26
26
  switch (status) {
27
27
  case 'done':
28
28
  return { bg: c.success, border: c.success };
29
+ case 'error':
30
+ return { bg: c.error, border: c.error };
29
31
  case 'active':
30
32
  return {
31
33
  bg: tone === 'soft' ? c.primaryContainer : 'transparent',
@@ -1,6 +1,6 @@
1
1
  import type { StyleProp, ViewStyle } from 'react-native';
2
2
 
3
- export type StatusDotStatus = 'pending' | 'active' | 'done';
3
+ export type StatusDotStatus = 'pending' | 'active' | 'done' | 'error';
4
4
 
5
5
  /**
6
6
  * `flat`:pending/active 底色透明(任务列表风格)。