@unif/react-native-design 0.31.3 → 0.32.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.
Files changed (165) hide show
  1. package/README.md +23 -171
  2. package/lib/module/components/ui/Avatar/Avatar.js +2 -1
  3. package/lib/module/components/ui/Avatar/Avatar.js.map +1 -1
  4. package/lib/module/components/ui/Avatar/geometry.js +43 -0
  5. package/lib/module/components/ui/Avatar/geometry.js.map +1 -0
  6. package/lib/module/components/ui/Avatar/styles.js +1 -41
  7. package/lib/module/components/ui/Avatar/styles.js.map +1 -1
  8. package/lib/module/components/ui/AvatarGroup/AvatarGroup.js +1 -1
  9. package/lib/module/components/ui/AvatarGroup/AvatarGroup.js.map +1 -1
  10. package/lib/module/components/ui/CircularProgress/CircularProgress.js +14 -25
  11. package/lib/module/components/ui/CircularProgress/CircularProgress.js.map +1 -1
  12. package/lib/module/components/ui/CircularProgress/normalizeCircularProgress.js.map +1 -1
  13. package/lib/module/components/ui/CircularProgress/styles.js +24 -0
  14. package/lib/module/components/ui/CircularProgress/styles.js.map +1 -0
  15. package/lib/module/components/ui/Pulse/PulseDot.js +5 -5
  16. package/lib/module/components/ui/Pulse/PulseDot.js.map +1 -1
  17. package/lib/module/components/ui/Pulse/constants.js +15 -0
  18. package/lib/module/components/ui/Pulse/constants.js.map +1 -0
  19. package/lib/module/components/ui/Pulse/usePulse.js +4 -62
  20. package/lib/module/components/ui/Pulse/usePulse.js.map +1 -1
  21. package/lib/module/components/ui/Skeleton/Skeleton.js +6 -2
  22. package/lib/module/components/ui/Skeleton/Skeleton.js.map +1 -1
  23. package/lib/module/components/ui/Skeleton/constants.js +9 -0
  24. package/lib/module/components/ui/Skeleton/constants.js.map +1 -0
  25. package/lib/module/components/ui/TextField/TextFieldBase.js +21 -4
  26. package/lib/module/components/ui/TextField/TextFieldBase.js.map +1 -1
  27. package/lib/module/components/ui/TextField/constants.js +7 -0
  28. package/lib/module/components/ui/TextField/constants.js.map +1 -0
  29. package/lib/module/components/ui/TextField/styles.js +10 -2
  30. package/lib/module/components/ui/TextField/styles.js.map +1 -1
  31. package/lib/module/components/ui/TextField/useMultilineLayout.js +18 -0
  32. package/lib/module/components/ui/TextField/useMultilineLayout.js.map +1 -0
  33. package/lib/module/components/ui/TextField/useMultilineLayout.web.js +44 -0
  34. package/lib/module/components/ui/TextField/useMultilineLayout.web.js.map +1 -0
  35. package/lib/module/components/ui/Thumbnail/Thumbnail.js +13 -6
  36. package/lib/module/components/ui/Thumbnail/Thumbnail.js.map +1 -1
  37. package/lib/module/components/ui/Thumbnail/constants.js +22 -0
  38. package/lib/module/components/ui/Thumbnail/constants.js.map +1 -0
  39. package/lib/module/components/ui/Thumbnail/normalize.js +30 -1
  40. package/lib/module/components/ui/Thumbnail/normalize.js.map +1 -1
  41. package/lib/module/components/ui/Thumbnail/styles.js +5 -28
  42. package/lib/module/components/ui/Thumbnail/styles.js.map +1 -1
  43. package/lib/module/components/ui/index.js.map +1 -1
  44. package/lib/module/components/ui/shared/pulse/constants.js +5 -0
  45. package/lib/module/components/ui/shared/pulse/constants.js.map +1 -0
  46. package/lib/module/components/ui/{Pulse → shared/pulse}/normalizePulseOptions.js +2 -12
  47. package/lib/module/components/ui/shared/pulse/normalizePulseOptions.js.map +1 -0
  48. package/lib/module/components/ui/shared/pulse/types.js +2 -0
  49. package/lib/module/components/ui/shared/pulse/types.js.map +1 -0
  50. package/lib/module/components/ui/shared/pulse/usePulseAnimation.js +30 -0
  51. package/lib/module/components/ui/shared/pulse/usePulseAnimation.js.map +1 -0
  52. package/lib/module/components/ui/{Pulse → shared/pulse}/usePulseDriver.js +1 -1
  53. package/lib/module/components/ui/shared/pulse/usePulseDriver.js.map +1 -0
  54. package/lib/module/components/ui/{Pulse → shared/pulse}/usePulseDriver.web.js +2 -17
  55. package/lib/module/components/ui/shared/pulse/usePulseDriver.web.js.map +1 -0
  56. package/lib/typescript/src/components/ui/Avatar/Avatar.d.ts.map +1 -1
  57. package/lib/typescript/src/components/ui/Avatar/geometry.d.ts +7 -0
  58. package/lib/typescript/src/components/ui/Avatar/geometry.d.ts.map +1 -0
  59. package/lib/typescript/src/components/ui/Avatar/styles.d.ts +1 -9
  60. package/lib/typescript/src/components/ui/Avatar/styles.d.ts.map +1 -1
  61. package/lib/typescript/src/components/ui/Avatar/types.d.ts +7 -2
  62. package/lib/typescript/src/components/ui/Avatar/types.d.ts.map +1 -1
  63. package/lib/typescript/src/components/ui/CircularProgress/CircularProgress.d.ts.map +1 -1
  64. package/lib/typescript/src/components/ui/CircularProgress/normalizeCircularProgress.d.ts +2 -14
  65. package/lib/typescript/src/components/ui/CircularProgress/normalizeCircularProgress.d.ts.map +1 -1
  66. package/lib/typescript/src/components/ui/CircularProgress/styles.d.ts +19 -0
  67. package/lib/typescript/src/components/ui/CircularProgress/styles.d.ts.map +1 -0
  68. package/lib/typescript/src/components/ui/CircularProgress/types.d.ts +17 -2
  69. package/lib/typescript/src/components/ui/CircularProgress/types.d.ts.map +1 -1
  70. package/lib/typescript/src/components/ui/Pulse/PulseDot.d.ts.map +1 -1
  71. package/lib/typescript/src/components/ui/Pulse/constants.d.ts +4 -0
  72. package/lib/typescript/src/components/ui/Pulse/constants.d.ts.map +1 -0
  73. package/lib/typescript/src/components/ui/Pulse/types.d.ts +6 -6
  74. package/lib/typescript/src/components/ui/Pulse/types.d.ts.map +1 -1
  75. package/lib/typescript/src/components/ui/Pulse/usePulse.d.ts +0 -9
  76. package/lib/typescript/src/components/ui/Pulse/usePulse.d.ts.map +1 -1
  77. package/lib/typescript/src/components/ui/Skeleton/Skeleton.d.ts.map +1 -1
  78. package/lib/typescript/src/components/ui/Skeleton/constants.d.ts +3 -0
  79. package/lib/typescript/src/components/ui/Skeleton/constants.d.ts.map +1 -0
  80. package/lib/typescript/src/components/ui/Skeleton/types.d.ts +2 -2
  81. package/lib/typescript/src/components/ui/Skeleton/types.d.ts.map +1 -1
  82. package/lib/typescript/src/components/ui/TextField/TextFieldBase.d.ts.map +1 -1
  83. package/lib/typescript/src/components/ui/TextField/constants.d.ts +4 -0
  84. package/lib/typescript/src/components/ui/TextField/constants.d.ts.map +1 -0
  85. package/lib/typescript/src/components/ui/TextField/styles.d.ts +6 -0
  86. package/lib/typescript/src/components/ui/TextField/styles.d.ts.map +1 -1
  87. package/lib/typescript/src/components/ui/TextField/types.d.ts +36 -11
  88. package/lib/typescript/src/components/ui/TextField/types.d.ts.map +1 -1
  89. package/lib/typescript/src/components/ui/TextField/useMultilineLayout.d.ts +4 -0
  90. package/lib/typescript/src/components/ui/TextField/useMultilineLayout.d.ts.map +1 -0
  91. package/lib/typescript/src/components/ui/TextField/useMultilineLayout.web.d.ts +4 -0
  92. package/lib/typescript/src/components/ui/TextField/useMultilineLayout.web.d.ts.map +1 -0
  93. package/lib/typescript/src/components/ui/Textarea/types.d.ts +4 -2
  94. package/lib/typescript/src/components/ui/Textarea/types.d.ts.map +1 -1
  95. package/lib/typescript/src/components/ui/Thumbnail/Thumbnail.d.ts.map +1 -1
  96. package/lib/typescript/src/components/ui/Thumbnail/constants.d.ts +4 -0
  97. package/lib/typescript/src/components/ui/Thumbnail/constants.d.ts.map +1 -0
  98. package/lib/typescript/src/components/ui/Thumbnail/index.d.ts +1 -1
  99. package/lib/typescript/src/components/ui/Thumbnail/index.d.ts.map +1 -1
  100. package/lib/typescript/src/components/ui/Thumbnail/normalize.d.ts +2 -6
  101. package/lib/typescript/src/components/ui/Thumbnail/normalize.d.ts.map +1 -1
  102. package/lib/typescript/src/components/ui/Thumbnail/styles.d.ts +9 -8
  103. package/lib/typescript/src/components/ui/Thumbnail/styles.d.ts.map +1 -1
  104. package/lib/typescript/src/components/ui/Thumbnail/types.d.ts +23 -5
  105. package/lib/typescript/src/components/ui/Thumbnail/types.d.ts.map +1 -1
  106. package/lib/typescript/src/components/ui/index.d.ts +1 -1
  107. package/lib/typescript/src/components/ui/index.d.ts.map +1 -1
  108. package/lib/typescript/src/components/ui/shared/pulse/constants.d.ts +2 -0
  109. package/lib/typescript/src/components/ui/shared/pulse/constants.d.ts.map +1 -0
  110. package/lib/typescript/src/components/ui/shared/pulse/normalizePulseOptions.d.ts +7 -0
  111. package/lib/typescript/src/components/ui/shared/pulse/normalizePulseOptions.d.ts.map +1 -0
  112. package/lib/typescript/src/components/ui/shared/pulse/types.d.ts +17 -0
  113. package/lib/typescript/src/components/ui/shared/pulse/types.d.ts.map +1 -0
  114. package/lib/typescript/src/components/ui/shared/pulse/usePulseAnimation.d.ts +8 -0
  115. package/lib/typescript/src/components/ui/shared/pulse/usePulseAnimation.d.ts.map +1 -0
  116. package/lib/typescript/src/components/ui/{Pulse → shared/pulse}/usePulseDriver.d.ts +1 -1
  117. package/lib/typescript/src/components/ui/shared/pulse/usePulseDriver.d.ts.map +1 -0
  118. package/lib/typescript/src/components/ui/shared/pulse/usePulseDriver.web.d.ts +7 -0
  119. package/lib/typescript/src/components/ui/shared/pulse/usePulseDriver.web.d.ts.map +1 -0
  120. package/package.json +2 -2
  121. package/src/components/ui/Avatar/Avatar.tsx +2 -6
  122. package/src/components/ui/Avatar/geometry.ts +30 -0
  123. package/src/components/ui/Avatar/styles.ts +2 -30
  124. package/src/components/ui/Avatar/types.ts +8 -2
  125. package/src/components/ui/AvatarGroup/AvatarGroup.tsx +1 -1
  126. package/src/components/ui/CircularProgress/CircularProgress.tsx +20 -26
  127. package/src/components/ui/CircularProgress/normalizeCircularProgress.ts +7 -15
  128. package/src/components/ui/CircularProgress/styles.ts +13 -0
  129. package/src/components/ui/CircularProgress/types.ts +19 -2
  130. package/src/components/ui/Pulse/PulseDot.tsx +6 -5
  131. package/src/components/ui/Pulse/constants.ts +14 -0
  132. package/src/components/ui/Pulse/types.ts +6 -6
  133. package/src/components/ui/Pulse/usePulse.ts +4 -81
  134. package/src/components/ui/Skeleton/Skeleton.tsx +6 -6
  135. package/src/components/ui/Skeleton/constants.ts +8 -0
  136. package/src/components/ui/Skeleton/types.ts +2 -2
  137. package/src/components/ui/TextField/TextFieldBase.tsx +28 -4
  138. package/src/components/ui/TextField/constants.ts +6 -0
  139. package/src/components/ui/TextField/styles.ts +8 -2
  140. package/src/components/ui/TextField/types.ts +41 -11
  141. package/src/components/ui/TextField/useMultilineLayout.ts +20 -0
  142. package/src/components/ui/TextField/useMultilineLayout.web.ts +59 -0
  143. package/src/components/ui/Textarea/types.ts +9 -6
  144. package/src/components/ui/Thumbnail/Thumbnail.tsx +19 -5
  145. package/src/components/ui/Thumbnail/constants.ts +24 -0
  146. package/src/components/ui/Thumbnail/index.ts +1 -0
  147. package/src/components/ui/Thumbnail/normalize.ts +38 -19
  148. package/src/components/ui/Thumbnail/styles.ts +6 -17
  149. package/src/components/ui/Thumbnail/types.ts +27 -5
  150. package/src/components/ui/index.ts +1 -0
  151. package/src/components/ui/shared/pulse/constants.ts +2 -0
  152. package/src/components/ui/shared/pulse/normalizePulseOptions.ts +48 -0
  153. package/src/components/ui/shared/pulse/types.ts +18 -0
  154. package/src/components/ui/shared/pulse/usePulseAnimation.ts +29 -0
  155. package/src/components/ui/{Pulse → shared/pulse}/usePulseDriver.ts +2 -2
  156. package/src/components/ui/{Pulse → shared/pulse}/usePulseDriver.web.ts +4 -19
  157. package/lib/module/components/ui/Pulse/normalizePulseOptions.js.map +0 -1
  158. package/lib/module/components/ui/Pulse/usePulseDriver.js.map +0 -1
  159. package/lib/module/components/ui/Pulse/usePulseDriver.web.js.map +0 -1
  160. package/lib/typescript/src/components/ui/Pulse/normalizePulseOptions.d.ts +0 -32
  161. package/lib/typescript/src/components/ui/Pulse/normalizePulseOptions.d.ts.map +0 -1
  162. package/lib/typescript/src/components/ui/Pulse/usePulseDriver.d.ts.map +0 -1
  163. package/lib/typescript/src/components/ui/Pulse/usePulseDriver.web.d.ts +0 -18
  164. package/lib/typescript/src/components/ui/Pulse/usePulseDriver.web.d.ts.map +0 -1
  165. package/src/components/ui/Pulse/normalizePulseOptions.ts +0 -76
@@ -1,68 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import { useEffect, useMemo } from 'react';
4
3
  import { createLogger } from "../../../utils/logger/index.js";
5
- import { normalizePulseOptions } from "./normalizePulseOptions.js";
6
- import { usePulseDriver } from './usePulseDriver';
7
- /**
8
- * 在两个 opacity 值之间无限循环,返回可直接拼到 Animated.View 上的 style。
9
- *
10
- * 这是**唯一**的公共实现:参数校验、默认值与 dev 诊断全在这里完成,平台差异只下沉到
11
- * `usePulseDriver(.web).ts`。此前 native / web 各有一份 `usePulse`,两边各自读原始
12
- * props、各自解释默认值,web 侧还把未校验的 duration 直接喂给 `setInterval`。
13
- */
14
-
15
- const BASE_DEFAULTS = {
16
- duration: 700,
17
- delay: 0,
18
- from: 0.6,
19
- to: 1
20
- };
21
-
22
- /** PulseDot / Skeleton 的默认值 —— 只有 from 更低,圆点 / 骨架淡到 0.5。 */
23
- export const DOT_DEFAULTS = {
24
- duration: 700,
25
- delay: 0,
26
- from: 0.5,
27
- to: 1
28
- };
29
-
30
- // logger 在模块加载时一次性建好 —— render 期创建每次都会产生新对象。
31
- const pulseLog = createLogger('Pulse');
32
- const pulseDotLog = createLogger('PulseDot');
33
- const skeletonLog = createLogger('Skeleton');
34
-
35
- /** 诊断告警的固定 scope 集合。 */
36
-
37
- function loggerForScope(scope) {
38
- switch (scope) {
39
- case 'Pulse':
40
- return pulseLog;
41
- case 'PulseDot':
42
- return pulseDotLog;
43
- case 'Skeleton':
44
- return skeletonLog;
45
- }
46
- }
47
-
48
- /** 内部:让 PulseDot / Skeleton 复用同一条归一化 + 诊断 + driver 链路。 */
49
- export function usePulseWithDefaults(options, defaults, scope) {
50
- // 依赖列表**故意**拆到 primitive:options / defaults 对象每次 render 都可能是新引用
51
- // (调用方常写内联字面量),直接依赖对象会让 memo 恒失效、并连带每帧重启 driver 的 effect。
52
- // 这八个 primitive 就是归一化的全部输入,拆开后覆盖完整、无遗漏。
53
- const normalized = useMemo(() => normalizePulseOptions(options, defaults),
54
- // eslint-disable-next-line react-hooks/exhaustive-deps
55
- [options?.duration, options?.delay, options?.from, options?.to, defaults.duration, defaults.delay, defaults.from, defaults.to]);
56
- useEffect(() => {
57
- if (typeof __DEV__ !== 'undefined' && __DEV__) {
58
- for (const item of normalized.diagnostics) {
59
- loggerForScope(scope).warn(`${item.field}=${String(item.received)} 无效,已回退为 ${item.fallback}`);
60
- }
61
- }
62
- }, [normalized.diagnostics, scope]);
63
- return usePulseDriver(normalized);
64
- }
4
+ import { usePulseAnimation } from "../shared/pulse/usePulseAnimation.js";
5
+ import { PULSE_DEFAULTS } from "./constants.js";
6
+ const log = createLogger('Pulse');
65
7
  export function usePulse(options = {}) {
66
- return usePulseWithDefaults(options, BASE_DEFAULTS, 'Pulse');
8
+ return usePulseAnimation(options, PULSE_DEFAULTS, log);
67
9
  }
68
10
  //# sourceMappingURL=usePulse.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","createLogger","normalizePulseOptions","usePulseDriver","BASE_DEFAULTS","duration","delay","from","to","DOT_DEFAULTS","pulseLog","pulseDotLog","skeletonLog","loggerForScope","scope","usePulseWithDefaults","options","defaults","normalized","__DEV__","item","diagnostics","warn","field","String","received","fallback","usePulse"],"sourceRoot":"../../../../../src","sources":["components/ui/Pulse/usePulse.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAC1C,SAASC,YAAY,QAAQ,gCAAuB;AACpD,SAASC,qBAAqB,QAAQ,4BAAyB;AAE/D,SAASC,cAAc,QAAQ,kBAAkB;AAGjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,aAA4B,GAAG;EACnCC,QAAQ,EAAE,GAAG;EACbC,KAAK,EAAE,CAAC;EACRC,IAAI,EAAE,GAAG;EACTC,EAAE,EAAE;AACN,CAAC;;AAED;AACA,OAAO,MAAMC,YAA2B,GAAG;EACzCJ,QAAQ,EAAE,GAAG;EACbC,KAAK,EAAE,CAAC;EACRC,IAAI,EAAE,GAAG;EACTC,EAAE,EAAE;AACN,CAAC;;AAED;AACA,MAAME,QAAQ,GAAGT,YAAY,CAAC,OAAO,CAAC;AACtC,MAAMU,WAAW,GAAGV,YAAY,CAAC,UAAU,CAAC;AAC5C,MAAMW,WAAW,GAAGX,YAAY,CAAC,UAAU,CAAC;;AAE5C;;AAGA,SAASY,cAAcA,CAACC,KAAiB,EAAE;EACzC,QAAQA,KAAK;IACX,KAAK,OAAO;MACV,OAAOJ,QAAQ;IACjB,KAAK,UAAU;MACb,OAAOC,WAAW;IACpB,KAAK,UAAU;MACb,OAAOC,WAAW;EACtB;AACF;;AAEA;AACA,OAAO,SAASG,oBAAoBA,CAClCC,OAAiC,EACjCC,QAAuB,EACvBH,KAAiB,EACjB;EACA;EACA;EACA;EACA,MAAMI,UAAU,GAAGlB,OAAO,CACxB,MAAME,qBAAqB,CAACc,OAAO,EAAEC,QAAQ,CAAC;EAC9C;EACA,CACED,OAAO,EAAEX,QAAQ,EACjBW,OAAO,EAAEV,KAAK,EACdU,OAAO,EAAET,IAAI,EACbS,OAAO,EAAER,EAAE,EACXS,QAAQ,CAACZ,QAAQ,EACjBY,QAAQ,CAACX,KAAK,EACdW,QAAQ,CAACV,IAAI,EACbU,QAAQ,CAACT,EAAE,CAEf,CAAC;EACDT,SAAS,CAAC,MAAM;IACd,IAAI,OAAOoB,OAAO,KAAK,WAAW,IAAIA,OAAO,EAAE;MAC7C,KAAK,MAAMC,IAAI,IAAIF,UAAU,CAACG,WAAW,EAAE;QACzCR,cAAc,CAACC,KAAK,CAAC,CAACQ,IAAI,CACxB,GAAGF,IAAI,CAACG,KAAK,IAAIC,MAAM,CAACJ,IAAI,CAACK,QAAQ,CAAC,YAAYL,IAAI,CAACM,QAAQ,EACjE,CAAC;MACH;IACF;EACF,CAAC,EAAE,CAACR,UAAU,CAACG,WAAW,EAAEP,KAAK,CAAC,CAAC;EACnC,OAAOX,cAAc,CAACe,UAAU,CAAC;AACnC;AAEA,OAAO,SAASS,QAAQA,CAACX,OAAqB,GAAG,CAAC,CAAC,EAAE;EACnD,OAAOD,oBAAoB,CAACC,OAAO,EAAEZ,aAAa,EAAE,OAAO,CAAC;AAC9D","ignoreList":[]}
1
+ {"version":3,"names":["createLogger","usePulseAnimation","PULSE_DEFAULTS","log","usePulse","options"],"sourceRoot":"../../../../../src","sources":["components/ui/Pulse/usePulse.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,gCAAuB;AACpD,SAASC,iBAAiB,QAAQ,sCAAmC;AACrE,SAASC,cAAc,QAAQ,gBAAa;AAG5C,MAAMC,GAAG,GAAGH,YAAY,CAAC,OAAO,CAAC;AAEjC,OAAO,SAASI,QAAQA,CAACC,OAAqB,GAAG,CAAC,CAAC,EAAE;EACnD,OAAOJ,iBAAiB,CAACI,OAAO,EAAEH,cAAc,EAAEC,GAAG,CAAC;AACxD","ignoreList":[]}
@@ -2,9 +2,13 @@
2
2
 
3
3
  import React from 'react';
4
4
  import Animated from 'react-native-reanimated';
5
- import { DOT_DEFAULTS, usePulseWithDefaults } from "../Pulse/usePulse.js";
5
+ import { createLogger } from "../../../utils/logger/index.js";
6
+ import { usePulseAnimation } from "../shared/pulse/usePulseAnimation.js";
7
+ import { SKELETON_DEFAULTS } from "./constants.js";
6
8
  import { r, useColors } from "../../../theme/index.js";
7
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
+ const log = createLogger('Skeleton');
11
+
8
12
  /**
9
13
  * 页面级加载占位骨架。3 个形状由 `shape` 切换。
10
14
  *
@@ -27,7 +31,7 @@ export function Skeleton({
27
31
  testID
28
32
  }) {
29
33
  const c = useColors();
30
- const animatedStyle = usePulseWithDefaults(undefined, DOT_DEFAULTS, 'Skeleton');
34
+ const animatedStyle = usePulseAnimation(undefined, SKELETON_DEFAULTS, log);
31
35
 
32
36
  // 按形状推默认尺寸 + 圆角;caller 显式传 width / height / radius 时 override
33
37
  const dim = (() => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","DOT_DEFAULTS","usePulseWithDefaults","r","useColors","jsx","_jsx","Skeleton","shape","width","height","size","radius","style","testID","c","animatedStyle","undefined","dim","borderRadius","View","backgroundColor","surfaceContainerHigh","accessibilityElementsHidden","importantForAccessibility"],"sourceRoot":"../../../../../src","sources":["components/ui/Skeleton/Skeleton.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,YAAY,EAAEC,oBAAoB,QAAQ,sBAAmB;AACtE,SAASC,CAAC,EAAEC,SAAS,QAAQ,yBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAAC;EACvBC,KAAK,GAAG,MAAM;EACdC,KAAK;EACLC,MAAM;EACNC,IAAI,GAAGR,CAAC,CAAC,EAAE,CAAC;EACZS,MAAM;EACNC,KAAK;EACLC;AACa,CAAC,EAAqB;EACnC,MAAMC,CAAC,GAAGX,SAAS,CAAC,CAAC;EACrB,MAAMY,aAAa,GAAGd,oBAAoB,CACxCe,SAAS,EACThB,YAAY,EACZ,UACF,CAAC;;EAED;EACA,MAAMiB,GAAG,GAAG,CAAC,MAAM;IACjB,IAAIV,KAAK,KAAK,QAAQ,EAAE;MACtB,OAAO;QAAEC,KAAK,EAAEE,IAAI;QAAED,MAAM,EAAEC,IAAI;QAAEQ,YAAY,EAAEP,MAAM,IAAID,IAAI,GAAG;MAAE,CAAC;IACxE;IACA,IAAIH,KAAK,KAAK,MAAM,EAAE;MACpB,OAAO;QACLC,KAAK,EAAEA,KAAK,IAAI,MAAM;QACtBC,MAAM,EAAEA,MAAM,IAAIP,CAAC,CAAC,EAAE,CAAC;QACvBgB,YAAY,EAAEP,MAAM,IAAIT,CAAC,CAAC,CAAC;MAC7B,CAAC;IACH;IACA,OAAO;MACLM,KAAK,EAAEA,KAAK,IAAI,MAAM;MACtBC,MAAM,EAAEA,MAAM,IAAIP,CAAC,CAAC,EAAE,CAAC;MACvBgB,YAAY,EAAEP,MAAM,IAAIT,CAAC,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAAC;EAEJ,oBACEG,IAAA,CAACN,QAAQ,CAACoB,IAAI;IACZP,KAAK,EAAE,CACL;MAAE,GAAGK,GAAG;MAAEG,eAAe,EAAEN,CAAC,CAACO;IAAqB,CAAC,EACnDN,aAAa,EACbH,KAAK,CACL;IACFC,MAAM,EAAEA,MAAO;IACfS,2BAA2B;IAC3BC,yBAAyB,EAAC;EAAqB,CAChD,CAAC;AAEN","ignoreList":[]}
1
+ {"version":3,"names":["React","Animated","createLogger","usePulseAnimation","SKELETON_DEFAULTS","r","useColors","jsx","_jsx","log","Skeleton","shape","width","height","size","radius","style","testID","c","animatedStyle","undefined","dim","borderRadius","View","backgroundColor","surfaceContainerHigh","accessibilityElementsHidden","importantForAccessibility"],"sourceRoot":"../../../../../src","sources":["components/ui/Skeleton/Skeleton.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,QAAQ,MAAM,yBAAyB;AAC9C,SAASC,YAAY,QAAQ,gCAAuB;AACpD,SAASC,iBAAiB,QAAQ,sCAAmC;AACrE,SAASC,iBAAiB,QAAQ,gBAAa;AAC/C,SAASC,CAAC,EAAEC,SAAS,QAAQ,yBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9C,MAAMC,GAAG,GAAGP,YAAY,CAAC,UAAU,CAAC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASQ,QAAQA,CAAC;EACvBC,KAAK,GAAG,MAAM;EACdC,KAAK;EACLC,MAAM;EACNC,IAAI,GAAGT,CAAC,CAAC,EAAE,CAAC;EACZU,MAAM;EACNC,KAAK;EACLC;AACa,CAAC,EAAqB;EACnC,MAAMC,CAAC,GAAGZ,SAAS,CAAC,CAAC;EACrB,MAAMa,aAAa,GAAGhB,iBAAiB,CAACiB,SAAS,EAAEhB,iBAAiB,EAAEK,GAAG,CAAC;;EAE1E;EACA,MAAMY,GAAG,GAAG,CAAC,MAAM;IACjB,IAAIV,KAAK,KAAK,QAAQ,EAAE;MACtB,OAAO;QAAEC,KAAK,EAAEE,IAAI;QAAED,MAAM,EAAEC,IAAI;QAAEQ,YAAY,EAAEP,MAAM,IAAID,IAAI,GAAG;MAAE,CAAC;IACxE;IACA,IAAIH,KAAK,KAAK,MAAM,EAAE;MACpB,OAAO;QACLC,KAAK,EAAEA,KAAK,IAAI,MAAM;QACtBC,MAAM,EAAEA,MAAM,IAAIR,CAAC,CAAC,EAAE,CAAC;QACvBiB,YAAY,EAAEP,MAAM,IAAIV,CAAC,CAAC,CAAC;MAC7B,CAAC;IACH;IACA,OAAO;MACLO,KAAK,EAAEA,KAAK,IAAI,MAAM;MACtBC,MAAM,EAAEA,MAAM,IAAIR,CAAC,CAAC,EAAE,CAAC;MACvBiB,YAAY,EAAEP,MAAM,IAAIV,CAAC,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAAC;EAEJ,oBACEG,IAAA,CAACP,QAAQ,CAACsB,IAAI;IACZP,KAAK,EAAE,CACL;MAAE,GAAGK,GAAG;MAAEG,eAAe,EAAEN,CAAC,CAACO;IAAqB,CAAC,EACnDN,aAAa,EACbH,KAAK,CACL;IACFC,MAAM,EAAEA,MAAO;IACfS,2BAA2B;IAC3BC,yBAAyB,EAAC;EAAqB,CAChD,CAAC;AAEN","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ export const SKELETON_DEFAULTS = {
4
+ duration: 700,
5
+ delay: 0,
6
+ from: 0.5,
7
+ to: 1
8
+ };
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SKELETON_DEFAULTS","duration","delay","from","to"],"sourceRoot":"../../../../../src","sources":["components/ui/Skeleton/constants.ts"],"mappings":";;AAEA,OAAO,MAAMA,iBAA0C,GAAG;EACxDC,QAAQ,EAAE,GAAG;EACbC,KAAK,EAAE,CAAC;EACRC,IAAI,EAAE,GAAG;EACTC,EAAE,EAAE;AACN,CAAC","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react';
4
4
  import { Platform, Text, TextInput, View } from 'react-native';
5
- import { fixed, space, useColors, useThemedStyles } from "../../../theme/index.js";
5
+ import { fixed, useColors, useThemedStyles } from "../../../theme/index.js";
6
6
  import { childTestID } from "../../../utils/testID/index.js";
7
7
  import { createLogger } from "../../../utils/logger/index.js";
8
8
  import { normalizeInputHeight, normalizeTextareaHeights, sanitizeTextFieldContainerStyle } from "./normalize.js";
@@ -10,6 +10,7 @@ import { makeStyles } from "./styles.js";
10
10
  import { TextFieldSlot } from "./TextFieldSlot.js";
11
11
  import { useErrorAnnouncement } from "./useErrorAnnouncement.js";
12
12
  import { useTextFieldValue } from "./useTextFieldValue.js";
13
+ import { useMultilineLayout } from './useMultilineLayout';
13
14
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
15
  const log = createLogger('TextField');
15
16
 
@@ -37,6 +38,9 @@ export const TextFieldBase = /*#__PURE__*/forwardRef(function TextFieldBase(prop
37
38
  placeholderTextColor: callerPlaceholder,
38
39
  onFocus,
39
40
  onBlur,
41
+ onContentSizeChange,
42
+ onLayout,
43
+ scrollEnabled,
40
44
  testID,
41
45
  style: _style,
42
46
  numberOfLines: _numberOfLines,
@@ -68,6 +72,15 @@ export const TextFieldBase = /*#__PURE__*/forwardRef(function TextFieldBase(prop
68
72
  }, scope);
69
73
  const normalizedInputHeight = normalizeInputHeight(height === undefined ? fixed.hitTarget : height);
70
74
  const normalizedTextareaHeights = normalizeTextareaHeights(minHeight, maxHeight);
75
+ const multilineLayout = useMultilineLayout({
76
+ enabled: multiline,
77
+ value: controller.value,
78
+ minHeight: normalizedTextareaHeights.minHeight,
79
+ maxHeight: normalizedTextareaHeights.maxHeight,
80
+ fontSize: styles.input.fontSize,
81
+ placeholder: allowedNativeProps.placeholder,
82
+ inputRef: nativeRef
83
+ });
71
84
  const sanitizedContainer = sanitizeTextFieldContainerStyle(containerStyle);
72
85
  const effectiveEditable = disabled !== true && editable !== false;
73
86
  const mergedAccessibilityState = {
@@ -127,6 +140,12 @@ export const TextFieldBase = /*#__PURE__*/forwardRef(function TextFieldBase(prop
127
140
  onChangeText: controller.onChangeText,
128
141
  editable: effectiveEditable,
129
142
  multiline: multiline,
143
+ onContentSizeChange: onContentSizeChange,
144
+ onLayout: event => {
145
+ if (multiline) multilineLayout.onLayout?.(event);
146
+ onLayout?.(event);
147
+ },
148
+ scrollEnabled: scrollEnabled ?? (multiline ? multilineLayout.scrollEnabled : undefined),
130
149
  onFocus: event => {
131
150
  setFocused(true);
132
151
  onFocus?.(event);
@@ -135,9 +154,7 @@ export const TextFieldBase = /*#__PURE__*/forwardRef(function TextFieldBase(prop
135
154
  setFocused(false);
136
155
  onBlur?.(event);
137
156
  },
138
- style: [styles.input, multiline && styles.inputMultiline, multiline && {
139
- minHeight: Math.max(0, normalizedHeight - space[4] * 2)
140
- }, searchLayout !== undefined && {
157
+ style: [styles.input, multiline && styles.inputMultiline, multiline && (multilineLayout.scrollEnabled ? styles.inputScrolling : styles.inputClipped), multiline && multilineLayout.inputStyle, searchLayout !== undefined && {
141
158
  minHeight: searchLayout.interactiveHeight
142
159
  }],
143
160
  placeholderTextColor: callerPlaceholder ?? colors.foregroundSubtle,
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useState","Platform","Text","TextInput","View","fixed","space","useColors","useThemedStyles","childTestID","createLogger","normalizeInputHeight","normalizeTextareaHeights","sanitizeTextFieldContainerStyle","makeStyles","TextFieldSlot","useErrorAnnouncement","useTextFieldValue","jsx","_jsx","jsxs","_jsxs","log","TextFieldBase","props","forwardedRef","multiline","height","minHeight","maxHeight","searchLayout","leading","trailing","error","disabled","editable","containerStyle","value","defaultValue","onChangeText","accessibilityState","accessibilityRole","placeholderTextColor","callerPlaceholder","onFocus","onBlur","testID","style","_style","numberOfLines","_numberOfLines","_ariaDisabled","readOnly","_readOnly","role","_role","enterKeyHint","_enterKeyHint","clearTextOnFocus","_clearTextOnFocus","allowedNativeProps","removedNativeAliasKey","Object","entries","filter","entry","undefined","map","name","join","colors","styles","focused","setFocused","nativeRef","useRef","scope","controller","normalizedInputHeight","hitTarget","normalizedTextareaHeights","sanitizedContainer","effectiveEditable","mergedAccessibilityState","normalizedHeight","filled","length","diagnostics","diagnosticKey","warn","focus","current","blur","wrapStateStyles","wrapActive","wrapError","wrapFocus","wrapFilled","wrapIdle","interactiveHeight","containerDisabled","rootCentered","minWidth","children","wrap","wrapMultiline","searchInteractiveRow","pointerEvents","searchVisibleSurface","top","verticalInset","bottom","slot","ref","event","input","inputMultiline","Math","max","foregroundSubtle","errorMsg","accessibilityLiveRegion","OS","displayName"],"sourceRoot":"../../../../../src","sources":["components/ui/TextField/TextFieldBase.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAEVC,UAAU,EACVC,SAAS,EACTC,mBAAmB,EACnBC,QAAQ,QACH,OAAO;AACd,SAASC,QAAQ,EAAEC,IAAI,EAAEC,SAAS,EAAEC,IAAI,QAAQ,cAAc;AAE9D,SAASC,KAAK,EAAEC,KAAK,EAAEC,SAAS,EAAEC,eAAe,QAAQ,yBAAgB;AACzE,SAASC,WAAW,QAAQ,gCAAuB;AACnD,SAASC,YAAY,QAAQ,gCAAuB;AACpD,SACEC,oBAAoB,EACpBC,wBAAwB,EACxBC,+BAA+B,QAC1B,gBAAa;AACpB,SAASC,UAAU,QAAQ,aAAU;AACrC,SAASC,aAAa,QAAQ,oBAAiB;AAE/C,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,iBAAiB,QAAQ,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAExD,MAAMC,GAAG,GAAGZ,YAAY,CAAC,WAAW,CAAC;;AAErC;;AAGA;AACA,OAAO,MAAMa,aAAa,gBAAG1B,UAAU,CACrC,SAAS0B,aAAaA,CAACC,KAAK,EAAEC,YAAY,EAAqB;EAC7D,MAAM;IACJC,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,SAAS;IACTC,YAAY;IACZC,OAAO;IACPC,QAAQ;IACRC,KAAK;IACLC,QAAQ;IACRC,QAAQ;IACRC,cAAc;IACdC,KAAK;IACLC,YAAY;IACZC,YAAY;IACZC,kBAAkB;IAClBC,iBAAiB;IACjBC,oBAAoB,EAAEC,iBAAiB;IACvCC,OAAO;IACPC,MAAM;IACNC,MAAM;IACNC,KAAK,EAAEC,MAAM;IACbC,aAAa,EAAEC,cAAc;IAC7B,CAAC,eAAe,GAAGC,aAAa;IAChCC,QAAQ,EAAEC,SAAS;IACnBC,IAAI,EAAEC,KAAK;IACXC,YAAY,EAAEC,aAAa;IAC3BC,gBAAgB,EAAEC,iBAAiB;IACnC,GAAGC;EACL,CAAC,GAAGpC,KAAqD;EACzD,MAAMqC,qBAAqB,GAAGC,MAAM,CAACC,OAAO,CAAC;IAC3C,OAAO,EAAEf,MAAM;IACf,eAAe,EAAEE,cAAc;IAC/B,eAAe,EAAEC,aAAa;IAC9B,UAAU,EAAEE,SAAS;IACrB,MAAM,EAAEE,KAAK;IACb,cAAc,EAAEE,aAAa;IAC7B,kBAAkB,EAAEE;EACtB,CAAC,CAAC,CACCK,MAAM,CAAC,CAAC,GAAGC,KAAK,CAAC,KAAKA,KAAK,KAAKC,SAAS,CAAC,CAC1CC,GAAG,CAAC,CAAC,CAACC,IAAI,CAAC,KAAKA,IAAI,CAAC,CACrBC,IAAI,CAAC,GAAG,CAAC;EACZ,MAAMC,MAAM,GAAG/D,SAAS,CAAC,CAAC;EAC1B,MAAMgE,MAAM,GAAG/D,eAAe,CAACM,UAAU,CAAC;EAC1C,MAAM,CAAC0D,OAAO,EAAEC,UAAU,CAAC,GAAGzE,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM0E,SAAS,GAAG9E,KAAK,CAAC+E,MAAM,CAAqB,IAAI,CAAC;EACxD,MAAMC,KAAK,GAAGlD,SAAS,GAAG,UAAU,GAAG,OAAO;EAC9C,MAAMmD,UAAU,GAAG5D,iBAAiB,CAClC;IACEoB,KAAK;IACLC,YAAY;IACZC,YAAY,EACV,OAAOA,YAAY,KAAK,UAAU,GAC7BA,YAAY,GACb2B;EACR,CAAC,EACDU,KACF,CAAC;EACD,MAAME,qBAAqB,GAAGnE,oBAAoB,CAChDgB,MAAM,KAAKuC,SAAS,GAAG7D,KAAK,CAAC0E,SAAS,GAAGpD,MAC3C,CAAC;EACD,MAAMqD,yBAAyB,GAAGpE,wBAAwB,CACxDgB,SAAS,EACTC,SACF,CAAC;EACD,MAAMoD,kBAAkB,GAAGpE,+BAA+B,CAACuB,cAAc,CAAC;EAC1E,MAAM8C,iBAAiB,GAAGhD,QAAQ,KAAK,IAAI,IAAIC,QAAQ,KAAK,KAAK;EACjE,MAAMgD,wBAAwB,GAAG;IAC/B,GAAG3C,kBAAkB;IACrBN,QAAQ,EAAE,CAACgD;EACb,CAAC;EACD,MAAME,gBAAgB,GAAG1D,SAAS,GAC9BsD,yBAAyB,CAACpD,SAAS,GACnCkD,qBAAqB,CAACzC,KAAK;EAC/B,MAAMgD,MAAM,GAAGR,UAAU,CAACxC,KAAK,CAACiD,MAAM,GAAG,CAAC;EAC1C,MAAMC,WAAW,GAAG,CAClB,GAAGT,qBAAqB,CAACS,WAAW,EACpC,GAAGP,yBAAyB,CAACO,WAAW,EACxC,GAAGN,kBAAkB,CAACM,WAAW,CAClC;EACD,MAAMC,aAAa,GAAGD,WAAW,CAAClB,IAAI,CAAC,GAAG,CAAC;EAE3CvE,SAAS,CAAC,MAAM;IACd,IAAI0F,aAAa,CAACF,MAAM,GAAG,CAAC,EAAE;MAC5BhE,GAAG,CAACmE,IAAI,CAAC,GAAGb,KAAK,WAAWY,aAAa,OAAO,CAAC;IACnD;EACF,CAAC,EAAE,CAACA,aAAa,EAAEZ,KAAK,CAAC,CAAC;EAC1B9E,SAAS,CAAC,MAAM;IACd,IAAI+D,qBAAqB,CAACyB,MAAM,GAAG,CAAC,EAAE;MACpChE,GAAG,CAACmE,IAAI,CAAC,GAAGb,KAAK,mBAAmBf,qBAAqB,IAAI,CAAC;IAChE;EACF,CAAC,EAAE,CAACA,qBAAqB,EAAEe,KAAK,CAAC,CAAC;EAClC5D,oBAAoB,CAACiB,KAAK,CAAC;EAE3BlC,mBAAmB,CACjB0B,YAAY,EACZ,OAAO;IACLiE,KAAK,EAAEA,CAAA,KAAMhB,SAAS,CAACiB,OAAO,EAAED,KAAK,CAAC,CAAC;IACvCE,IAAI,EAAEA,CAAA,KAAMlB,SAAS,CAACiB,OAAO,EAAEC,IAAI,CAAC;EACtC,CAAC,CAAC,EACF,EACF,CAAC;EAED,MAAMC,eAAe,GAAG5D,KAAK,GACzB,CAACsC,MAAM,CAACuB,UAAU,EAAEvB,MAAM,CAACwB,SAAS,CAAC,GACrCvB,OAAO,GACL,CAACD,MAAM,CAACuB,UAAU,EAAEvB,MAAM,CAACyB,SAAS,CAAC,GACrCX,MAAM,GACJ,CAACd,MAAM,CAACuB,UAAU,EAAEvB,MAAM,CAAC0B,UAAU,CAAC,GACtC,CAAC1B,MAAM,CAAC2B,QAAQ,CAAC;EACzB,MAAMC,iBAAiB,GACrBrE,YAAY,EAAEqE,iBAAiB,IAAIf,gBAAgB;EAErD,oBACE/D,KAAA,CAACjB,IAAI;IACH2C,KAAK,EAAE,CACLkC,kBAAkB,CAAClC,KAAK,EACxB,CAACmC,iBAAiB,IAAIX,MAAM,CAAC6B,iBAAiB,EAC9CtE,YAAY,KAAKoC,SAAS,IAAI,CAACxC,SAAS,IAAI6C,MAAM,CAAC8B,YAAY,EAC/D;MAAEC,QAAQ,EAAEjG,KAAK,CAAC0E,SAAS;MAAEnD,SAAS,EAAEwD;IAAiB,CAAC,CAC1D;IACFtC,MAAM,EAAEA,MAAO;IAAAyD,QAAA,gBAEflF,KAAA,CAACjB,IAAI;MACH2C,KAAK,EAAE,CACLwB,MAAM,CAACiC,IAAI,EACX9E,SAAS,IAAI6C,MAAM,CAACkC,aAAa,EACjC3E,YAAY,KAAKoC,SAAS,IAAI2B,eAAe,EAC7C/D,YAAY,KAAKoC,SAAS,IAAIK,MAAM,CAACmC,oBAAoB,EACzDhF,SAAS,GACL;QACEE,SAAS,EAAEwD,gBAAgB;QAC3B,IAAIJ,yBAAyB,CAACnD,SAAS,KAAKqC,SAAS,IAAI;UACvDrC,SAAS,EAAEmD,yBAAyB,CAACnD;QACvC,CAAC;MACH,CAAC,GACD;QAAEF,MAAM,EAAEwE;MAAkB,CAAC,CACjC;MAAAI,QAAA,GAEDzE,YAAY,gBACXX,IAAA,CAACf,IAAI;QACHuG,aAAa,EAAC,MAAM;QACpB5D,KAAK,EAAE,CACLwB,MAAM,CAACqC,oBAAoB,EAC3B,GAAGf,eAAe,EAClB;UACEgB,GAAG,EAAE/E,YAAY,CAACgF,aAAa;UAC/BC,MAAM,EAAEjF,YAAY,CAACgF;QACvB,CAAC;MACD,CACH,CAAC,GACA,IAAI,eACR3F,IAAA,CAACJ,aAAa;QACZiG,IAAI,EAAEjF,OAAQ;QACdmD,iBAAiB,EAAEA,iBAAkB;QACrCpC,MAAM,EAAErC,WAAW,CAACqC,MAAM,EAAE,SAAS;MAAE,CACxC,CAAC,eACF3B,IAAA,CAAChB,SAAS;QACR8G,GAAG,EAAEvC,SAAU;QAAA,GACVd,kBAAkB;QACvBvB,KAAK,EAAEwC,UAAU,CAACxC,KAAM;QACxBE,YAAY,EAAEsC,UAAU,CAACtC,YAAa;QACtCJ,QAAQ,EAAE+C,iBAAkB;QAC5BxD,SAAS,EAAEA,SAAU;QACrBkB,OAAO,EAAGsE,KAAK,IAAK;UAClBzC,UAAU,CAAC,IAAI,CAAC;UAChB7B,OAAO,GAAGsE,KAAK,CAAC;QAClB,CAAE;QACFrE,MAAM,EAAGqE,KAAK,IAAK;UACjBzC,UAAU,CAAC,KAAK,CAAC;UACjB5B,MAAM,GAAGqE,KAAK,CAAC;QACjB,CAAE;QACFnE,KAAK,EAAE,CACLwB,MAAM,CAAC4C,KAAK,EACZzF,SAAS,IAAI6C,MAAM,CAAC6C,cAAc,EAClC1F,SAAS,IAAI;UACXE,SAAS,EAAEyF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAElC,gBAAgB,GAAG9E,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACxD,CAAC,EACDwB,YAAY,KAAKoC,SAAS,IAAI;UAC5BtC,SAAS,EAAEE,YAAY,CAACqE;QAC1B,CAAC,CACD;QACFzD,oBAAoB,EAAEC,iBAAiB,IAAI2B,MAAM,CAACiD,gBAAiB;QACnE9E,iBAAiB,EAAEA,iBAAkB;QACrCD,kBAAkB,EAAE2C,wBAAyB;QAC7CrC,MAAM,EAAErC,WAAW,CAACqC,MAAM,EAAE,OAAO;MAAE,CACtC,CAAC,eACF3B,IAAA,CAACJ,aAAa;QACZiG,IAAI,EAAEhF,QAAS;QACfkD,iBAAiB,EAAEA,iBAAkB;QACrCpC,MAAM,EAAErC,WAAW,CAACqC,MAAM,EAAE,UAAU;MAAE,CACzC,CAAC;IAAA,CACE,CAAC,EACNb,KAAK,gBACJd,IAAA,CAACjB,IAAI;MACH6C,KAAK,EAAEwB,MAAM,CAACiD,QAAS;MACvBC,uBAAuB,EACrBxH,QAAQ,CAACyH,EAAE,KAAK,SAAS,GAAG,QAAQ,GAAGxD,SACxC;MACDpB,MAAM,EAAErC,WAAW,CAACqC,MAAM,EAAE,OAAO,CAAE;MAAAyD,QAAA,EAEpCtE;IAAK,CACF,CAAC,GACL,IAAI;EAAA,CACJ,CAAC;AAEX,CACF,CAAC;AAEDV,aAAa,CAACoG,WAAW,GAAG,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useState","Platform","Text","TextInput","View","fixed","useColors","useThemedStyles","childTestID","createLogger","normalizeInputHeight","normalizeTextareaHeights","sanitizeTextFieldContainerStyle","makeStyles","TextFieldSlot","useErrorAnnouncement","useTextFieldValue","useMultilineLayout","jsx","_jsx","jsxs","_jsxs","log","TextFieldBase","props","forwardedRef","multiline","height","minHeight","maxHeight","searchLayout","leading","trailing","error","disabled","editable","containerStyle","value","defaultValue","onChangeText","accessibilityState","accessibilityRole","placeholderTextColor","callerPlaceholder","onFocus","onBlur","onContentSizeChange","onLayout","scrollEnabled","testID","style","_style","numberOfLines","_numberOfLines","_ariaDisabled","readOnly","_readOnly","role","_role","enterKeyHint","_enterKeyHint","clearTextOnFocus","_clearTextOnFocus","allowedNativeProps","removedNativeAliasKey","Object","entries","filter","entry","undefined","map","name","join","colors","styles","focused","setFocused","nativeRef","useRef","scope","controller","normalizedInputHeight","hitTarget","normalizedTextareaHeights","multilineLayout","enabled","fontSize","input","placeholder","inputRef","sanitizedContainer","effectiveEditable","mergedAccessibilityState","normalizedHeight","filled","length","diagnostics","diagnosticKey","warn","focus","current","blur","wrapStateStyles","wrapActive","wrapError","wrapFocus","wrapFilled","wrapIdle","interactiveHeight","containerDisabled","rootCentered","minWidth","children","wrap","wrapMultiline","searchInteractiveRow","pointerEvents","searchVisibleSurface","top","verticalInset","bottom","slot","ref","event","inputMultiline","inputScrolling","inputClipped","inputStyle","foregroundSubtle","errorMsg","accessibilityLiveRegion","OS","displayName"],"sourceRoot":"../../../../../src","sources":["components/ui/TextField/TextFieldBase.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ import { space } from "../../../theme/index.js";
4
+ export const TEXT_FIELD_BORDER_WIDTH = 1;
5
+ export const TEXTAREA_VERTICAL_PADDING = space[4];
6
+ export const TEXTAREA_VERTICAL_INSET = 2 * (TEXTAREA_VERTICAL_PADDING + TEXT_FIELD_BORDER_WIDTH);
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["space","TEXT_FIELD_BORDER_WIDTH","TEXTAREA_VERTICAL_PADDING","TEXTAREA_VERTICAL_INSET"],"sourceRoot":"../../../../../src","sources":["components/ui/TextField/constants.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,yBAAgB;AAEtC,OAAO,MAAMC,uBAAuB,GAAG,CAAC;AACxC,OAAO,MAAMC,yBAAyB,GAAGF,KAAK,CAAC,CAAC,CAAC;AACjD,OAAO,MAAMG,uBAAuB,GAClC,CAAC,IAAID,yBAAyB,GAAGD,uBAAuB,CAAC","ignoreList":[]}
@@ -2,6 +2,8 @@
2
2
 
3
3
  import { StyleSheet } from 'react-native';
4
4
  import { fw, radius, space, type as t } from "../../../theme/index.js";
5
+ import { TEXTAREA_VERTICAL_PADDING, TEXT_FIELD_BORDER_WIDTH } from "./constants.js";
6
+
5
7
  /** TextField primitive styles —— Input + Textarea 共享。 */
6
8
  export const makeStyles = c => StyleSheet.create({
7
9
  wrap: {
@@ -10,10 +12,10 @@ export const makeStyles = c => StyleSheet.create({
10
12
  gap: space[3],
11
13
  paddingHorizontal: space[5],
12
14
  borderRadius: radius.md,
13
- borderWidth: 1
15
+ borderWidth: TEXT_FIELD_BORDER_WIDTH
14
16
  },
15
17
  wrapMultiline: {
16
- paddingVertical: space[4],
18
+ paddingVertical: TEXTAREA_VERTICAL_PADDING,
17
19
  alignItems: 'flex-start'
18
20
  },
19
21
  /** Search 的可见底色/边框绝不承载命中区域。 */
@@ -58,6 +60,12 @@ export const makeStyles = c => StyleSheet.create({
58
60
  inputMultiline: {
59
61
  textAlignVertical: 'top'
60
62
  },
63
+ inputScrolling: {
64
+ overflow: 'scroll'
65
+ },
66
+ inputClipped: {
67
+ overflow: 'hidden'
68
+ },
61
69
  slotDisplay: {
62
70
  alignItems: 'center',
63
71
  justifyContent: 'center',
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","fw","radius","space","type","t","makeStyles","c","create","wrap","flexDirection","alignItems","gap","paddingHorizontal","borderRadius","md","borderWidth","wrapMultiline","paddingVertical","searchInteractiveRow","searchVisibleSurface","position","left","right","wrapIdle","backgroundColor","surfaceContainerHigh","borderColor","wrapActive","surface","wrapFocus","primary","wrapFilled","outline","wrapError","error","input","flex","minWidth","fontSize","body","color","foreground","padding","margin","outlineWidth","inputMultiline","textAlignVertical","slotDisplay","justifyContent","minHeight","slotText","foregroundMuted","sm","slotActionLabel","xs","fontWeight","medium","slotActionLabelDisabled","foregroundSubtle","actionFrame","height","errorMsg","micro","marginTop","regular","containerDisabled","opacity","rootCentered"],"sourceRoot":"../../../../../src","sources":["components/ui/TextField/styles.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","fw","radius","space","type","t","TEXTAREA_VERTICAL_PADDING","TEXT_FIELD_BORDER_WIDTH","makeStyles","c","create","wrap","flexDirection","alignItems","gap","paddingHorizontal","borderRadius","md","borderWidth","wrapMultiline","paddingVertical","searchInteractiveRow","searchVisibleSurface","position","left","right","wrapIdle","backgroundColor","surfaceContainerHigh","borderColor","wrapActive","surface","wrapFocus","primary","wrapFilled","outline","wrapError","error","input","flex","minWidth","fontSize","body","color","foreground","padding","margin","outlineWidth","inputMultiline","textAlignVertical","inputScrolling","overflow","inputClipped","slotDisplay","justifyContent","minHeight","slotText","foregroundMuted","sm","slotActionLabel","xs","fontWeight","medium","slotActionLabelDisabled","foregroundSubtle","actionFrame","height","errorMsg","micro","marginTop","regular","containerDisabled","opacity","rootCentered"],"sourceRoot":"../../../../../src","sources":["components/ui/TextField/styles.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ import { TEXTAREA_VERTICAL_INSET } from "./constants.js";
4
+ /** 原生 Yoga 直接测量文本;固定 height 会阻断 iOS Fabric 的后续内容尺寸通知。 */
5
+ export function useMultilineLayout({
6
+ minHeight,
7
+ maxHeight
8
+ }) {
9
+ return {
10
+ inputStyle: {
11
+ minHeight: Math.max(0, minHeight - TEXTAREA_VERTICAL_INSET),
12
+ maxHeight: maxHeight === undefined ? undefined : Math.max(0, maxHeight - TEXTAREA_VERTICAL_INSET)
13
+ },
14
+ // 原生仅在内容溢出时滚动;min=max 时也不等待不会再变化的框高事件。
15
+ scrollEnabled: true
16
+ };
17
+ }
18
+ //# sourceMappingURL=useMultilineLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TEXTAREA_VERTICAL_INSET","useMultilineLayout","minHeight","maxHeight","inputStyle","Math","max","undefined","scrollEnabled"],"sourceRoot":"../../../../../src","sources":["components/ui/TextField/useMultilineLayout.ts"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,gBAAa;AAGrD;AACA,OAAO,SAASC,kBAAkBA,CAAC;EACjCC,SAAS;EACTC;AACoB,CAAC,EAAmB;EACxC,OAAO;IACLC,UAAU,EAAE;MACVF,SAAS,EAAEG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,SAAS,GAAGF,uBAAuB,CAAC;MAC3DG,SAAS,EACPA,SAAS,KAAKI,SAAS,GACnBA,SAAS,GACTF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,SAAS,GAAGH,uBAAuB;IACvD,CAAC;IACD;IACAQ,aAAa,EAAE;EACjB,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useLayoutEffect, useState } from 'react';
4
+ import { TEXTAREA_VERTICAL_INSET } from "./constants.js";
5
+ /** RNW 的 contentSize 使用 scrollHeight,固定高度会阻止缩短,须临时解除高度后测量。 */
6
+ export function useMultilineLayout({
7
+ enabled,
8
+ value,
9
+ minHeight,
10
+ maxHeight,
11
+ fontSize,
12
+ placeholder,
13
+ inputRef
14
+ }) {
15
+ const [contentHeight, setContentHeight] = useState(0);
16
+ const [width, setWidth] = useState(0);
17
+ const minimum = Math.max(0, minHeight - TEXTAREA_VERTICAL_INSET);
18
+ const maximum = maxHeight === undefined ? Infinity : Math.max(0, maxHeight - TEXTAREA_VERTICAL_INSET);
19
+ useLayoutEffect(() => {
20
+ if (!enabled || inputRef.current === null) return;
21
+ const node = inputRef.current;
22
+ const {
23
+ height,
24
+ minHeight: previousMinimum
25
+ } = node.style;
26
+ const scrollTop = node.scrollTop;
27
+ node.style.height = '0px';
28
+ node.style.minHeight = '0px';
29
+ const measured = node.scrollHeight;
30
+ node.style.height = height;
31
+ node.style.minHeight = previousMinimum;
32
+ node.scrollTop = scrollTop;
33
+ if (Number.isFinite(measured)) setContentHeight(measured);
34
+ }, [enabled, value, width, fontSize, placeholder, minHeight, maxHeight, inputRef]);
35
+ const onLayout = useCallback(event => setWidth(event.nativeEvent.layout.width), []);
36
+ return {
37
+ inputStyle: {
38
+ height: Math.min(maximum, Math.max(minimum, contentHeight))
39
+ },
40
+ scrollEnabled: contentHeight > maximum,
41
+ onLayout
42
+ };
43
+ }
44
+ //# sourceMappingURL=useMultilineLayout.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useLayoutEffect","useState","TEXTAREA_VERTICAL_INSET","useMultilineLayout","enabled","value","minHeight","maxHeight","fontSize","placeholder","inputRef","contentHeight","setContentHeight","width","setWidth","minimum","Math","max","maximum","undefined","Infinity","current","node","height","previousMinimum","style","scrollTop","measured","scrollHeight","Number","isFinite","onLayout","event","nativeEvent","layout","inputStyle","min","scrollEnabled"],"sourceRoot":"../../../../../src","sources":["components/ui/TextField/useMultilineLayout.web.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,eAAe,EAAEC,QAAQ,QAAQ,OAAO;AAC9D,SAASC,uBAAuB,QAAQ,gBAAa;AAOrD;AACA,OAAO,SAASC,kBAAkBA,CAAC;EACjCC,OAAO;EACPC,KAAK;EACLC,SAAS;EACTC,SAAS;EACTC,QAAQ;EACRC,WAAW;EACXC;AACoB,CAAC,EAAmB;EACxC,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGX,QAAQ,CAAC,CAAC,CAAC;EACrD,MAAM,CAACY,KAAK,EAAEC,QAAQ,CAAC,GAAGb,QAAQ,CAAC,CAAC,CAAC;EACrC,MAAMc,OAAO,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEX,SAAS,GAAGJ,uBAAuB,CAAC;EAChE,MAAMgB,OAAO,GACXX,SAAS,KAAKY,SAAS,GACnBC,QAAQ,GACRJ,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEV,SAAS,GAAGL,uBAAuB,CAAC;EACtDF,eAAe,CAAC,MAAM;IACpB,IAAI,CAACI,OAAO,IAAIM,QAAQ,CAACW,OAAO,KAAK,IAAI,EAAE;IAC3C,MAAMC,IAAI,GAAGZ,QAAQ,CAACW,OAA6C;IACnE,MAAM;MAAEE,MAAM;MAAEjB,SAAS,EAAEkB;IAAgB,CAAC,GAAGF,IAAI,CAACG,KAAK;IACzD,MAAMC,SAAS,GAAGJ,IAAI,CAACI,SAAS;IAChCJ,IAAI,CAACG,KAAK,CAACF,MAAM,GAAG,KAAK;IACzBD,IAAI,CAACG,KAAK,CAACnB,SAAS,GAAG,KAAK;IAC5B,MAAMqB,QAAQ,GAAGL,IAAI,CAACM,YAAY;IAClCN,IAAI,CAACG,KAAK,CAACF,MAAM,GAAGA,MAAM;IAC1BD,IAAI,CAACG,KAAK,CAACnB,SAAS,GAAGkB,eAAe;IACtCF,IAAI,CAACI,SAAS,GAAGA,SAAS;IAC1B,IAAIG,MAAM,CAACC,QAAQ,CAACH,QAAQ,CAAC,EAAEf,gBAAgB,CAACe,QAAQ,CAAC;EAC3D,CAAC,EAAE,CACDvB,OAAO,EACPC,KAAK,EACLQ,KAAK,EACLL,QAAQ,EACRC,WAAW,EACXH,SAAS,EACTC,SAAS,EACTG,QAAQ,CACT,CAAC;EACF,MAAMqB,QAAQ,GAAGhC,WAAW,CACzBiC,KAAK,IAAKlB,QAAQ,CAACkB,KAAK,CAACC,WAAW,CAACC,MAAM,CAACrB,KAAK,CAAC,EACnD,EACF,CAAC;EACD,OAAO;IACLsB,UAAU,EAAE;MACVZ,MAAM,EAAEP,IAAI,CAACoB,GAAG,CAAClB,OAAO,EAAEF,IAAI,CAACC,GAAG,CAACF,OAAO,EAAEJ,aAAa,CAAC;IAC5D,CAAC;IACD0B,aAAa,EAAE1B,aAAa,GAAGO,OAAO;IACtCa;EACF,CAAC;AACH","ignoreList":[]}
@@ -7,8 +7,8 @@ import { resolveImageSource } from "../../../utils/imageSource.js";
7
7
  import { createLogger } from "../../../utils/logger/index.js";
8
8
  import { ImageAttempt } from "../shared/ImageAttempt.js";
9
9
  import { A11Y_HIDDEN_PROPS } from "../shared/a11y.js";
10
- import { sanitizeThumbnailImageStyle } from "./normalize.js";
11
- import { makeStyles, sizingFor } from "./styles.js";
10
+ import { normalizeThumbnailDimensions, sanitizeThumbnailImageStyle } from "./normalize.js";
11
+ import { makeStyles } from "./styles.js";
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  const log = createLogger('Thumbnail');
14
14
  const hasOwn = (value, key) => Object.prototype.hasOwnProperty.call(value, key);
@@ -22,6 +22,7 @@ export function Thumbnail(props) {
22
22
  uri,
23
23
  source,
24
24
  size = 'md',
25
+ fallback,
25
26
  selected,
26
27
  containerStyle,
27
28
  imageStyle,
@@ -31,7 +32,8 @@ export function Thumbnail(props) {
31
32
  } = props;
32
33
  const colors = useColors();
33
34
  const styles = useThemedStyles(makeStyles);
34
- const dim = sizingFor(size);
35
+ const normalizedDimensions = normalizeThumbnailDimensions(size);
36
+ const dim = normalizedDimensions.dimensions;
35
37
  const hasUri = hasOwn(props, 'uri');
36
38
  const hasSource = hasOwn(props, 'source');
37
39
  const sourceCandidate = hasUri !== hasSource ? hasUri && typeof uri === 'string' ? {
@@ -39,7 +41,7 @@ export function Thumbnail(props) {
39
41
  } : source : undefined;
40
42
  const resolvedSource = resolveImageSource(sourceCandidate);
41
43
  const sanitizedImageStyle = sanitizeThumbnailImageStyle(imageStyle);
42
- const diagnostics = [...(resolvedSource === undefined ? ['source'] : []), ...sanitizedImageStyle.diagnostics.map(field => field === 'style' ? 'imageStyle' : `imageStyle.${field}`)];
44
+ const diagnostics = [...normalizedDimensions.diagnostics, ...(resolvedSource === undefined ? ['source'] : []), ...sanitizedImageStyle.diagnostics.map(field => field === 'style' ? 'imageStyle' : `imageStyle.${field}`)];
43
45
  const diagnosticKey = diagnostics.join(',');
44
46
  useEffect(() => {
45
47
  if (__DEV__ && diagnosticKey.length > 0) {
@@ -56,16 +58,21 @@ export function Thumbnail(props) {
56
58
  borderRadius: dim.borderRadius,
57
59
  borderColor: selected ? colors.primary : 'transparent'
58
60
  };
61
+ const fallbackContent = fallback === undefined ? null : /*#__PURE__*/_jsx(View, {
62
+ ...imageAccessibilityProps,
63
+ style: styles.fallback,
64
+ children: fallback
65
+ });
59
66
  return /*#__PURE__*/_jsx(View, {
60
67
  style: containerStyle,
61
68
  testID: testID,
62
69
  children: /*#__PURE__*/_jsxs(View, {
63
70
  style: [styles.visualFrame, dim],
64
- children: [resolvedSource === undefined ? null : /*#__PURE__*/_createElement(ImageAttempt, {
71
+ children: [resolvedSource === undefined ? fallbackContent : /*#__PURE__*/_createElement(ImageAttempt, {
65
72
  ...imageAccessibilityProps,
66
73
  key: resolvedSource.key,
67
74
  source: resolvedSource.source,
68
- fallback: null,
75
+ fallback: fallbackContent,
69
76
  style: [sanitizedImageStyle.style, StyleSheet.absoluteFill],
70
77
  resizeMode: resizeMode
71
78
  }), /*#__PURE__*/_jsx(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","createElement","_createElement","StyleSheet","View","useColors","useThemedStyles","resolveImageSource","createLogger","ImageAttempt","A11Y_HIDDEN_PROPS","sanitizeThumbnailImageStyle","makeStyles","sizingFor","jsx","_jsx","jsxs","_jsxs","log","hasOwn","value","key","Object","prototype","hasOwnProperty","call","Thumbnail","props","uri","source","size","selected","containerStyle","imageStyle","resizeMode","accessibilityLabel","testID","colors","styles","dim","hasUri","hasSource","sourceCandidate","trim","undefined","resolvedSource","sanitizedImageStyle","diagnostics","map","field","diagnosticKey","join","__DEV__","length","warn","normalizedLabel","imageAccessibilityProps","accessible","accessibilityRole","ringStyle","borderRadius","borderColor","primary","style","children","visualFrame","fallback","absoluteFill","pointerEvents","ring"],"sourceRoot":"../../../../../src","sources":["components/ui/Thumbnail/Thumbnail.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","createElement","_createElement","StyleSheet","View","useColors","useThemedStyles","resolveImageSource","createLogger","ImageAttempt","A11Y_HIDDEN_PROPS","normalizeThumbnailDimensions","sanitizeThumbnailImageStyle","makeStyles","jsx","_jsx","jsxs","_jsxs","log","hasOwn","value","key","Object","prototype","hasOwnProperty","call","Thumbnail","props","uri","source","size","fallback","selected","containerStyle","imageStyle","resizeMode","accessibilityLabel","testID","colors","styles","normalizedDimensions","dim","dimensions","hasUri","hasSource","sourceCandidate","trim","undefined","resolvedSource","sanitizedImageStyle","diagnostics","map","field","diagnosticKey","join","__DEV__","length","warn","normalizedLabel","imageAccessibilityProps","accessible","accessibilityRole","ringStyle","borderRadius","borderColor","primary","fallbackContent","style","children","visualFrame","absoluteFill","pointerEvents","ring"],"sourceRoot":"../../../../../src","sources":["components/ui/Thumbnail/Thumbnail.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import { r } from "../../../theme/index.js";
4
+ export const THUMBNAIL_DIMENSIONS = {
5
+ sm: {
6
+ width: r(64),
7
+ height: r(40),
8
+ borderRadius: r(6)
9
+ },
10
+ md: {
11
+ width: r(113),
12
+ height: r(67),
13
+ borderRadius: r(8)
14
+ },
15
+ lg: {
16
+ width: r(160),
17
+ height: r(96),
18
+ borderRadius: r(10)
19
+ }
20
+ };
21
+ export const RESERVED_IMAGE_STYLE_KEYS = ['position', 'top', 'right', 'bottom', 'left', 'width', 'height', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight'];
22
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["r","THUMBNAIL_DIMENSIONS","sm","width","height","borderRadius","md","lg","RESERVED_IMAGE_STYLE_KEYS"],"sourceRoot":"../../../../../src","sources":["components/ui/Thumbnail/constants.ts"],"mappings":";;AAAA,SAASA,CAAC,QAAQ,yBAAgB;AAGlC,OAAO,MAAMC,oBAEZ,GAAG;EACFC,EAAE,EAAE;IAAEC,KAAK,EAAEH,CAAC,CAAC,EAAE,CAAC;IAAEI,MAAM,EAAEJ,CAAC,CAAC,EAAE,CAAC;IAAEK,YAAY,EAAEL,CAAC,CAAC,CAAC;EAAE,CAAC;EACvDM,EAAE,EAAE;IAAEH,KAAK,EAAEH,CAAC,CAAC,GAAG,CAAC;IAAEI,MAAM,EAAEJ,CAAC,CAAC,EAAE,CAAC;IAAEK,YAAY,EAAEL,CAAC,CAAC,CAAC;EAAE,CAAC;EACxDO,EAAE,EAAE;IAAEJ,KAAK,EAAEH,CAAC,CAAC,GAAG,CAAC;IAAEI,MAAM,EAAEJ,CAAC,CAAC,EAAE,CAAC;IAAEK,YAAY,EAAEL,CAAC,CAAC,EAAE;EAAE;AAC1D,CAAC;AAED,OAAO,MAAMQ,yBAAyB,GAAG,CACvC,UAAU,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,CACH","ignoreList":[]}
@@ -1,7 +1,36 @@
1
1
  "use strict";
2
2
 
3
3
  import { StyleSheet } from 'react-native';
4
- const RESERVED_IMAGE_STYLE_KEYS = ['position', 'top', 'right', 'bottom', 'left', 'width', 'height', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight'];
4
+ import { RESERVED_IMAGE_STYLE_KEYS, THUMBNAIL_DIMENSIONS } from "./constants.js";
5
+ export function normalizeThumbnailDimensions(size) {
6
+ if (size === undefined || size === 'sm' || size === 'md' || size === 'lg') {
7
+ return {
8
+ dimensions: THUMBNAIL_DIMENSIONS[size ?? 'md'],
9
+ diagnostics: []
10
+ };
11
+ }
12
+ if (typeof size === 'object' && size !== null && !Array.isArray(size)) {
13
+ const {
14
+ width,
15
+ height,
16
+ borderRadius
17
+ } = size;
18
+ if (typeof width === 'number' && Number.isFinite(width) && width > 0 && typeof height === 'number' && Number.isFinite(height) && height > 0 && (borderRadius === undefined || typeof borderRadius === 'number' && Number.isFinite(borderRadius) && borderRadius >= 0)) {
19
+ return {
20
+ dimensions: {
21
+ width,
22
+ height,
23
+ borderRadius: borderRadius ?? THUMBNAIL_DIMENSIONS.md.borderRadius
24
+ },
25
+ diagnostics: []
26
+ };
27
+ }
28
+ }
29
+ return {
30
+ dimensions: THUMBNAIL_DIMENSIONS.md,
31
+ diagnostics: ['size']
32
+ };
33
+ }
5
34
  function invalidStyle() {
6
35
  return {
7
36
  style: {},
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","RESERVED_IMAGE_STYLE_KEYS","invalidStyle","style","diagnostics","isEmptyStyleInput","value","undefined","Array","isArray","every","sanitizeThumbnailImageStyle","flattened","flatten","source","reserved","Set","foundReserved","sanitized","key","Object","entries","has","add","filter"],"sourceRoot":"../../../../../src","sources":["components/ui/Thumbnail/normalize.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAIzC,MAAMC,yBAAyB,GAAG,CAChC,UAAU,EACV,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,CACH;AAOV,SAASC,YAAYA,CAAA,EAAiC;EACpD,OAAO;IAAEC,KAAK,EAAE,CAAC,CAAC;IAAEC,WAAW,EAAE,CAAC,OAAO;EAAE,CAAC;AAC9C;AAEA,SAASC,iBAAiBA,CAACC,KAAc,EAAW;EAClD,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,KAAK,EAAE,OAAO,IAAI;EACzE,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE,OAAO,KAAK;EACvC,OAAOA,KAAK,CAACI,KAAK,CAACL,iBAAiB,CAAC;AACvC;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASM,2BAA2BA,CACzCR,KAAiD,EACnB;EAC9B,IAAI;IACF,IAAIE,iBAAiB,CAACF,KAAK,CAAC,EAAE;MAC5B,OAAO;QAAEA,KAAK,EAAE,CAAC,CAAC;QAAEC,WAAW,EAAE;MAAG,CAAC;IACvC;IACA,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC1D,OAAOD,YAAY,CAAC,CAAC;IACvB;IAEA,MAAMU,SAAS,GAAGZ,UAAU,CAACa,OAAO,CAACV,KAAK,CAAY;IACtD,IAAIS,SAAS,KAAKL,SAAS,IAAIK,SAAS,KAAK,IAAI,IAAIA,SAAS,KAAK,KAAK,EAAE;MACxE,OAAOV,YAAY,CAAC,CAAC;IACvB;IACA,IAAI,OAAOU,SAAS,KAAK,QAAQ,IAAIJ,KAAK,CAACC,OAAO,CAACG,SAAS,CAAC,EAAE;MAC7D,OAAOV,YAAY,CAAC,CAAC;IACvB;IAEA,MAAMY,MAAM,GAAGF,SAAoC;IACnD,MAAMG,QAAQ,GAAG,IAAIC,GAAG,CAASf,yBAAyB,CAAC;IAC3D,MAAMgB,aAAa,GAAG,IAAID,GAAG,CAAS,CAAC;IACvC,MAAME,SAAkC,GAAG,CAAC,CAAC;IAC7C,KAAK,MAAM,CAACC,GAAG,EAAEb,KAAK,CAAC,IAAIc,MAAM,CAACC,OAAO,CAACP,MAAM,CAAC,EAAE;MACjD,IAAIC,QAAQ,CAACO,GAAG,CAACH,GAAG,CAAC,EAAE;QACrBF,aAAa,CAACM,GAAG,CAACJ,GAAG,CAAC;MACxB,CAAC,MAAM;QACLD,SAAS,CAACC,GAAG,CAAC,GAAGb,KAAK;MACxB;IACF;IAEA,OAAO;MACLH,KAAK,EAAEe,SAAgC;MACvCd,WAAW,EAAEH,yBAAyB,CAACuB,MAAM,CAAEL,GAAG,IAChDF,aAAa,CAACK,GAAG,CAACH,GAAG,CACvB;IACF,CAAC;EACH,CAAC,CAAC,MAAM;IACN,OAAOjB,YAAY,CAAC,CAAC;EACvB;AACF","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","RESERVED_IMAGE_STYLE_KEYS","THUMBNAIL_DIMENSIONS","normalizeThumbnailDimensions","size","undefined","dimensions","diagnostics","Array","isArray","width","height","borderRadius","Number","isFinite","md","invalidStyle","style","isEmptyStyleInput","value","every","sanitizeThumbnailImageStyle","flattened","flatten","source","reserved","Set","foundReserved","sanitized","key","Object","entries","has","add","filter"],"sourceRoot":"../../../../../src","sources":["components/ui/Thumbnail/normalize.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  import { StyleSheet } from 'react-native';
4
- import { r } from "../../../theme/index.js";
5
4
  /** Thumbnail 静态样式 ——
6
5
  * - `visualFrame`:固定尺寸、裁切、加载失败 placeholder
7
6
  * - `ring`:始终存在的 2pt visual overlay,selected 只切颜色 */
@@ -12,33 +11,11 @@ export const makeStyles = c => StyleSheet.create({
12
11
  },
13
12
  ring: {
14
13
  borderWidth: 2
14
+ },
15
+ fallback: {
16
+ ...StyleSheet.absoluteFill,
17
+ alignItems: 'center',
18
+ justifyContent: 'center'
15
19
  }
16
20
  });
17
-
18
- /** Thumbnail size 阶梯 —— width / height / borderRadius 全 r() 缩放。
19
- * 新增 size 在 types.ts 加 union + 这里加 case,两处同步。 */
20
- export const sizingFor = size => {
21
- switch (size) {
22
- case 'sm':
23
- return {
24
- width: r(64),
25
- height: r(40),
26
- borderRadius: r(6)
27
- };
28
- case 'lg':
29
- return {
30
- width: r(160),
31
- height: r(96),
32
- borderRadius: r(10)
33
- };
34
- case 'md':
35
- default:
36
- // 113×67 与 NewsList / NewsArea 历史一致,16:9.5 接近视频宽高比
37
- return {
38
- width: r(113),
39
- height: r(67),
40
- borderRadius: r(8)
41
- };
42
- }
43
- };
44
21
  //# sourceMappingURL=styles.js.map