@hzblj/kara-components 0.7.0 → 0.9.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.
Files changed (135) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +5 -5
  3. package/lib/module/atoms/activity-indicator/activity-indicator.android.js +42 -0
  4. package/lib/module/atoms/activity-indicator/activity-indicator.android.js.map +1 -0
  5. package/lib/module/atoms/activity-indicator/activity-indicator.ios.js +19 -0
  6. package/lib/module/atoms/activity-indicator/activity-indicator.ios.js.map +1 -0
  7. package/lib/module/atoms/activity-indicator/activity-indicator.types.js +4 -0
  8. package/lib/module/atoms/activity-indicator/activity-indicator.types.js.map +1 -0
  9. package/lib/module/atoms/activity-indicator/index.js +2 -1
  10. package/lib/module/atoms/activity-indicator/index.js.map +1 -1
  11. package/lib/module/atoms/avatar/avatar.js +2 -4
  12. package/lib/module/atoms/avatar/avatar.js.map +1 -1
  13. package/lib/module/atoms/blur-view/blur-view.android.js +100 -0
  14. package/lib/module/atoms/blur-view/blur-view.android.js.map +1 -0
  15. package/lib/module/atoms/blur-view/blur-view.ios.js +43 -0
  16. package/lib/module/atoms/blur-view/blur-view.ios.js.map +1 -0
  17. package/lib/module/atoms/blur-view/blur-view.types.js +4 -0
  18. package/lib/module/atoms/blur-view/blur-view.types.js.map +1 -0
  19. package/lib/module/atoms/blur-view/index.js +5 -0
  20. package/lib/module/atoms/blur-view/index.js.map +1 -0
  21. package/lib/module/atoms/glass-view/glass-view.android.js +36 -5
  22. package/lib/module/atoms/glass-view/glass-view.android.js.map +1 -1
  23. package/lib/module/atoms/image/image.js +13 -6
  24. package/lib/module/atoms/image/image.js.map +1 -1
  25. package/lib/module/atoms/image/image.types.js +4 -0
  26. package/lib/module/atoms/image/image.types.js.map +1 -0
  27. package/lib/module/atoms/image/index.js +1 -0
  28. package/lib/module/atoms/image/index.js.map +1 -1
  29. package/lib/module/atoms/index.js +1 -0
  30. package/lib/module/atoms/index.js.map +1 -1
  31. package/lib/module/atoms/island/island.android.js +6 -2
  32. package/lib/module/atoms/island/island.android.js.map +1 -1
  33. package/lib/module/atoms/island/island.ios.js +5 -2
  34. package/lib/module/atoms/island/island.ios.js.map +1 -1
  35. package/lib/module/atoms/pressable/pressable.js +38 -6
  36. package/lib/module/atoms/pressable/pressable.js.map +1 -1
  37. package/lib/module/atoms/progress/progress.ios.js +10 -4
  38. package/lib/module/atoms/progress/progress.ios.js.map +1 -1
  39. package/lib/module/atoms/rn-text/rn-text.js +5 -2
  40. package/lib/module/atoms/rn-text/rn-text.js.map +1 -1
  41. package/lib/module/atoms/skeleton/skeleton.js +5 -5
  42. package/lib/module/atoms/skeleton/skeleton.js.map +1 -1
  43. package/lib/module/atoms/surface/surface.ios.js +3 -0
  44. package/lib/module/atoms/surface/surface.ios.js.map +1 -1
  45. package/lib/module/atoms/text/text.android.js +5 -2
  46. package/lib/module/atoms/text/text.android.js.map +1 -1
  47. package/lib/module/atoms/text/text.ios.js +14 -3
  48. package/lib/module/atoms/text/text.ios.js.map +1 -1
  49. package/lib/module/atoms/text-field/text-field.android.js +19 -4
  50. package/lib/module/atoms/text-field/text-field.android.js.map +1 -1
  51. package/lib/module/atoms/text-field/text-field.ios.js +7 -2
  52. package/lib/module/atoms/text-field/text-field.ios.js.map +1 -1
  53. package/lib/module/molecules/collapsible/collapsible.android.js +37 -7
  54. package/lib/module/molecules/collapsible/collapsible.android.js.map +1 -1
  55. package/lib/module/molecules/navigation-bar/navigation-bar.android.js +2 -8
  56. package/lib/module/molecules/navigation-bar/navigation-bar.android.js.map +1 -1
  57. package/lib/module/molecules/pager/pager.android.js +5 -4
  58. package/lib/module/molecules/pager/pager.android.js.map +1 -1
  59. package/lib/module/molecules/scroll-edge-container/scroll-edge-container.android.js +114 -11
  60. package/lib/module/molecules/scroll-edge-container/scroll-edge-container.android.js.map +1 -1
  61. package/lib/module/molecules/stepper/stepper.ios.js +45 -8
  62. package/lib/module/molecules/stepper/stepper.ios.js.map +1 -1
  63. package/lib/module/ripple-clip.js +9 -1
  64. package/lib/module/ripple-clip.js.map +1 -1
  65. package/lib/typescript/atoms/activity-indicator/activity-indicator.d.ts +1 -3
  66. package/lib/typescript/atoms/activity-indicator/activity-indicator.ios.d.ts +3 -0
  67. package/lib/typescript/atoms/activity-indicator/activity-indicator.types.d.ts +17 -0
  68. package/lib/typescript/atoms/activity-indicator/index.d.ts +1 -0
  69. package/lib/typescript/atoms/blur-view/blur-view.d.ts +1 -0
  70. package/lib/typescript/atoms/blur-view/blur-view.ios.d.ts +3 -0
  71. package/lib/typescript/atoms/blur-view/blur-view.types.d.ts +31 -0
  72. package/lib/typescript/atoms/blur-view/index.d.ts +2 -0
  73. package/lib/typescript/atoms/box/a-box.d.ts +1 -1
  74. package/lib/typescript/atoms/glass-view/glass-view.types.d.ts +12 -5
  75. package/lib/typescript/atoms/image/image.d.ts +12 -4
  76. package/lib/typescript/atoms/image/image.types.d.ts +4 -0
  77. package/lib/typescript/atoms/image/index.d.ts +1 -0
  78. package/lib/typescript/atoms/index.d.ts +1 -0
  79. package/lib/typescript/atoms/island/island.types.d.ts +8 -4
  80. package/lib/typescript/atoms/pressable/pressable.types.d.ts +5 -3
  81. package/lib/typescript/atoms/progress/progress.types.d.ts +2 -2
  82. package/lib/typescript/atoms/rn-text/rn-text.types.d.ts +7 -2
  83. package/lib/typescript/atoms/skeleton/skeleton.types.d.ts +8 -4
  84. package/lib/typescript/atoms/surface/surface.types.d.ts +2 -2
  85. package/lib/typescript/atoms/text/text.types.d.ts +7 -2
  86. package/lib/typescript/atoms/text-field/text-field.types.d.ts +6 -2
  87. package/lib/typescript/molecules/scroll-edge-container/scroll-edge-container.types.d.ts +6 -4
  88. package/lib/typescript/molecules/stepper/stepper.ios.d.ts +5 -0
  89. package/lib/typescript/molecules/stepper/stepper.types.d.ts +1 -4
  90. package/package.json +5 -5
  91. package/src/atoms/activity-indicator/activity-indicator.android.tsx +32 -0
  92. package/src/atoms/activity-indicator/activity-indicator.ios.tsx +15 -0
  93. package/src/atoms/activity-indicator/activity-indicator.types.ts +20 -0
  94. package/src/atoms/activity-indicator/index.ts +1 -0
  95. package/src/atoms/avatar/avatar.tsx +1 -1
  96. package/src/atoms/blur-view/blur-view.android.tsx +68 -0
  97. package/src/atoms/blur-view/blur-view.ios.tsx +37 -0
  98. package/src/atoms/blur-view/blur-view.types.ts +34 -0
  99. package/src/atoms/blur-view/index.ts +2 -0
  100. package/src/atoms/glass-view/glass-view.android.tsx +41 -3
  101. package/src/atoms/glass-view/glass-view.types.ts +12 -5
  102. package/src/atoms/image/image.tsx +11 -12
  103. package/src/atoms/image/image.types.ts +6 -0
  104. package/src/atoms/image/index.ts +1 -0
  105. package/src/atoms/index.ts +1 -0
  106. package/src/atoms/island/island.android.tsx +10 -2
  107. package/src/atoms/island/island.ios.tsx +4 -2
  108. package/src/atoms/island/island.types.ts +8 -4
  109. package/src/atoms/pressable/pressable.tsx +46 -6
  110. package/src/atoms/pressable/pressable.types.ts +5 -3
  111. package/src/atoms/progress/progress.ios.tsx +14 -5
  112. package/src/atoms/progress/progress.types.ts +2 -2
  113. package/src/atoms/rn-text/rn-text.tsx +6 -3
  114. package/src/atoms/rn-text/rn-text.types.ts +15 -9
  115. package/src/atoms/skeleton/skeleton.tsx +4 -4
  116. package/src/atoms/skeleton/skeleton.types.ts +8 -4
  117. package/src/atoms/surface/surface.ios.tsx +2 -1
  118. package/src/atoms/surface/surface.types.ts +2 -2
  119. package/src/atoms/text/text.android.tsx +7 -1
  120. package/src/atoms/text/text.ios.tsx +14 -3
  121. package/src/atoms/text/text.types.ts +7 -2
  122. package/src/atoms/text-field/text-field.android.tsx +19 -3
  123. package/src/atoms/text-field/text-field.ios.tsx +7 -1
  124. package/src/atoms/text-field/text-field.types.ts +6 -2
  125. package/src/molecules/collapsible/collapsible.android.tsx +47 -7
  126. package/src/molecules/navigation-bar/navigation-bar.android.tsx +1 -6
  127. package/src/molecules/pager/pager.android.tsx +4 -1
  128. package/src/molecules/scroll-edge-container/scroll-edge-container.android.tsx +103 -10
  129. package/src/molecules/scroll-edge-container/scroll-edge-container.types.ts +6 -4
  130. package/src/molecules/stepper/stepper.ios.tsx +37 -1
  131. package/src/molecules/stepper/stepper.types.ts +1 -4
  132. package/src/ripple-clip.ts +10 -1
  133. package/lib/module/atoms/activity-indicator/activity-indicator.js +0 -14
  134. package/lib/module/atoms/activity-indicator/activity-indicator.js.map +0 -1
  135. package/src/atoms/activity-indicator/activity-indicator.tsx +0 -9
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { useSplitSx } from '@hzblj/kara-sx';
4
- import { useCallback } from 'react';
5
- import { Pressable as RNPressable } from 'react-native';
4
+ import { useAppTheme, withOpacity } from '@hzblj/kara-theme';
5
+ import { useCallback, useMemo } from 'react';
6
+ import { Platform, Pressable as RNPressable, View } from 'react-native';
6
7
  import Animated, { useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';
7
8
  import { haptics } from "../../haptics/index.js";
9
+ import { splitForRipple } from "../../ripple-clip.js";
8
10
  import { jsx as _jsx } from "react/jsx-runtime";
9
11
  const SPRING = {
10
12
  damping: 20,
@@ -22,28 +24,58 @@ export const Pressable = ({
22
24
  const [resolved, rest] = useSplitSx(props);
23
25
  const scale = useSharedValue(1);
24
26
  const feedback = haptic === true ? 'light' : haptic || undefined;
27
+ const theme = useAppTheme();
28
+ const isAndroid = Platform.OS === 'android';
25
29
  const rStyle = useAnimatedStyle(() => ({
26
30
  transform: [{
27
31
  scale: scale.value
28
32
  }]
29
33
  }), []);
30
34
 
35
+ // Android's press is Material's: a ripple over the content — the pressed state layer, `onSurface` at 10 % — clipped to
36
+ // the shape by an outer view (`splitForRipple`), and nothing moves. iOS springs down.
37
+ const ripple = useMemo(() => isAndroid ? {
38
+ color: withOpacity(String(theme.color('content.primary')), 'o10'),
39
+ foreground: true
40
+ } : undefined, [isAndroid, theme]);
41
+ const androidStyle = useMemo(() => isAndroid ? splitForRipple(resolved) : undefined, [isAndroid, resolved]);
42
+
31
43
  // The finger is down: the Taptic Engine has until the release to wake, so the haptic lands with the press.
32
44
  const onPressIn = useCallback(() => {
33
- scale.value = withSpring(0.96, SPRING);
45
+ if (!isAndroid) {
46
+ scale.value = withSpring(0.96, SPRING);
47
+ }
34
48
  if (feedback) {
35
49
  haptics.prepare(feedback);
36
50
  }
37
- }, [feedback, scale]);
51
+ }, [feedback, isAndroid, scale]);
38
52
  const onPressOut = useCallback(() => {
39
- scale.value = withSpring(1, SPRING);
40
- }, [scale]);
53
+ if (!isAndroid) {
54
+ scale.value = withSpring(1, SPRING);
55
+ }
56
+ }, [isAndroid, scale]);
41
57
  const onPressWithHaptic = useCallback(() => {
42
58
  if (feedback) {
43
59
  haptics.play(feedback);
44
60
  }
45
61
  onPress?.();
46
62
  }, [feedback, onPress]);
63
+ if (androidStyle) {
64
+ return /*#__PURE__*/_jsx(View, {
65
+ style: androidStyle.outer,
66
+ children: /*#__PURE__*/_jsx(RNPressable, {
67
+ android_ripple: ripple,
68
+ disabled: disabled,
69
+ hitSlop: 8,
70
+ onPress: onPressWithHaptic,
71
+ onPressIn: onPressIn,
72
+ style: androidStyle.inner,
73
+ testID: testID,
74
+ ...rest,
75
+ children: children
76
+ })
77
+ });
78
+ }
47
79
  return /*#__PURE__*/_jsx(AnimatedPressable, {
48
80
  disabled: disabled,
49
81
  hitSlop: 8,
@@ -1 +1 @@
1
- {"version":3,"names":["useSplitSx","useCallback","Pressable","RNPressable","Animated","useAnimatedStyle","useSharedValue","withSpring","haptics","jsx","_jsx","SPRING","damping","stiffness","AnimatedPressable","createAnimatedComponent","children","disabled","haptic","onPress","testID","props","resolved","rest","scale","feedback","undefined","rStyle","transform","value","onPressIn","prepare","onPressOut","onPressWithHaptic","play","hitSlop","style"],"sourceRoot":"../../../../src","sources":["atoms/pressable/pressable.tsx"],"mappings":";;AAAA,SAAQA,UAAU,QAAO,gBAAgB;AACzC,SAAQC,WAAW,QAAO,OAAO;AACjC,SAAQC,SAAS,IAAIC,WAAW,QAAO,cAAc;AACrD,OAAOC,QAAQ,IAAGC,gBAAgB,EAAEC,cAAc,EAAEC,UAAU,QAAO,yBAAyB;AAE9F,SAAQC,OAAO,QAAO,wBAAe;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAGrC,MAAMC,MAAM,GAAG;EAACC,OAAO,EAAE,EAAE;EAAEC,SAAS,EAAE;AAAG,CAAC;AAE5C,MAAMC,iBAAiB,GAAGV,QAAQ,CAACW,uBAAuB,CAACZ,WAAW,CAAC;AAEvE,OAAO,MAAMD,SAA6B,GAAGA,CAAC;EAC5Cc,QAAQ;EACRC,QAAQ,GAAG,KAAK;EAChBC,MAAM,GAAG,KAAK;EACdC,OAAO;EACPC,MAAM;EACN,GAAGC;AACW,CAAC,KAAK;EACpB,MAAM,CAACC,QAAQ,EAAEC,IAAI,CAAC,GAAGvB,UAAU,CAACqB,KAAK,CAAC;EAC1C,MAAMG,KAAK,GAAGlB,cAAc,CAAC,CAAC,CAAC;EAC/B,MAAMmB,QAAQ,GAAGP,MAAM,KAAK,IAAI,GAAG,OAAO,GAAGA,MAAM,IAAIQ,SAAS;EAEhE,MAAMC,MAAM,GAAGtB,gBAAgB,CAAC,OAAO;IAACuB,SAAS,EAAE,CAAC;MAACJ,KAAK,EAAEA,KAAK,CAACK;IAAK,CAAC;EAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;EAEhF;EACA,MAAMC,SAAS,GAAG7B,WAAW,CAAC,MAAM;IAClCuB,KAAK,CAACK,KAAK,GAAGtB,UAAU,CAAC,IAAI,EAAEI,MAAM,CAAC;IAEtC,IAAIc,QAAQ,EAAE;MACZjB,OAAO,CAACuB,OAAO,CAACN,QAAQ,CAAC;IAC3B;EACF,CAAC,EAAE,CAACA,QAAQ,EAAED,KAAK,CAAC,CAAC;EAErB,MAAMQ,UAAU,GAAG/B,WAAW,CAAC,MAAM;IACnCuB,KAAK,CAACK,KAAK,GAAGtB,UAAU,CAAC,CAAC,EAAEI,MAAM,CAAC;EACrC,CAAC,EAAE,CAACa,KAAK,CAAC,CAAC;EAEX,MAAMS,iBAAiB,GAAGhC,WAAW,CAAC,MAAM;IAC1C,IAAIwB,QAAQ,EAAE;MACZjB,OAAO,CAAC0B,IAAI,CAACT,QAAQ,CAAC;IACxB;IAEAN,OAAO,GAAG,CAAC;EACb,CAAC,EAAE,CAACM,QAAQ,EAAEN,OAAO,CAAC,CAAC;EAEvB,oBACET,IAAA,CAACI,iBAAiB;IAChBG,QAAQ,EAAEA,QAAS;IACnBkB,OAAO,EAAE,CAAE;IACXhB,OAAO,EAAEc,iBAAkB;IAC3BH,SAAS,EAAEA,SAAU;IACrBE,UAAU,EAAEA,UAAW;IACvBI,KAAK,EAAE,CAACd,QAAQ,EAAEK,MAAM,CAAE;IAC1BP,MAAM,EAAEA,MAAO;IAAA,GACXG,IAAI;IAAAP,QAAA,EAEPA;EAAQ,CACQ,CAAC;AAExB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useSplitSx","useAppTheme","withOpacity","useCallback","useMemo","Platform","Pressable","RNPressable","View","Animated","useAnimatedStyle","useSharedValue","withSpring","haptics","splitForRipple","jsx","_jsx","SPRING","damping","stiffness","AnimatedPressable","createAnimatedComponent","children","disabled","haptic","onPress","testID","props","resolved","rest","scale","feedback","undefined","theme","isAndroid","OS","rStyle","transform","value","ripple","color","String","foreground","androidStyle","onPressIn","prepare","onPressOut","onPressWithHaptic","play","style","outer","android_ripple","hitSlop","inner"],"sourceRoot":"../../../../src","sources":["atoms/pressable/pressable.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import { ProgressView } from '@expo/ui/swift-ui';
4
- import { progressViewStyle, tint } from '@expo/ui/swift-ui/modifiers';
3
+ import { Gauge, ProgressView } from '@expo/ui/swift-ui';
4
+ import { gaugeStyle, progressViewStyle, tint } from '@expo/ui/swift-ui/modifiers';
5
5
  import { useAppTheme } from '@hzblj/kara-theme';
6
6
  import { useMemo } from 'react';
7
7
  import { useHostGuard } from "../../host-context.js";
@@ -12,8 +12,14 @@ export const Progress = ({
12
12
  }) => {
13
13
  useHostGuard('Progress');
14
14
  const theme = useAppTheme();
15
- const modifiers = useMemo(() => [progressViewStyle(circular ? 'circular' : 'linear'), tint(theme.color('fill.accent.primary'))], [circular, theme]);
16
- return /*#__PURE__*/_jsx(ProgressView, {
15
+ const ring = circular && value !== undefined;
16
+ const modifiers = useMemo(() => [ring ? gaugeStyle('circularCapacity') : progressViewStyle(circular ? 'circular' : 'linear'), tint(theme.color('fill.accent.primary'))], [circular, ring, theme]);
17
+
18
+ // SwiftUI's circular `ProgressView` ignores its value on iOS and spins; a ring that fills is a capacity `Gauge`.
19
+ return ring ? /*#__PURE__*/_jsx(Gauge, {
20
+ modifiers: modifiers,
21
+ value: value
22
+ }) : /*#__PURE__*/_jsx(ProgressView, {
17
23
  modifiers: modifiers,
18
24
  value: value ?? null
19
25
  });
@@ -1 +1 @@
1
- {"version":3,"names":["ProgressView","progressViewStyle","tint","useAppTheme","useMemo","useHostGuard","jsx","_jsx","Progress","circular","value","theme","modifiers","color"],"sourceRoot":"../../../../src","sources":["atoms/progress/progress.ios.tsx"],"mappings":";;AAAA,SAAQA,YAAY,QAAO,mBAAmB;AAC9C,SAAQC,iBAAiB,EAAEC,IAAI,QAAO,6BAA6B;AACnE,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAE7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,OAAO,MAAMC,QAA2B,GAAGA,CAAC;EAACC,QAAQ,GAAG,KAAK;EAAEC;AAAoB,CAAC,KAAK;EACvFL,YAAY,CAAC,UAAU,CAAC;EACxB,MAAMM,KAAK,GAAGR,WAAW,CAAC,CAAC;EAE3B,MAAMS,SAAS,GAAGR,OAAO,CACvB,MAAM,CAACH,iBAAiB,CAACQ,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC,EAAEP,IAAI,CAACS,KAAK,CAACE,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,EACrG,CAACJ,QAAQ,EAAEE,KAAK,CAClB,CAAC;EAED,oBAAOJ,IAAA,CAACP,YAAY;IAACY,SAAS,EAAEA,SAAU;IAACF,KAAK,EAAEA,KAAK,IAAI;EAAK,CAAE,CAAC;AACrE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Gauge","ProgressView","gaugeStyle","progressViewStyle","tint","useAppTheme","useMemo","useHostGuard","jsx","_jsx","Progress","circular","value","theme","ring","undefined","modifiers","color"],"sourceRoot":"../../../../src","sources":["atoms/progress/progress.ios.tsx"],"mappings":";;AAAA,SAAQA,KAAK,EAAEC,YAAY,QAAO,mBAAmB;AACrD,SAAQC,UAAU,EAAEC,iBAAiB,EAAEC,IAAI,QAAO,6BAA6B;AAC/E,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAE7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,OAAO,MAAMC,QAA2B,GAAGA,CAAC;EAACC,QAAQ,GAAG,KAAK;EAAEC;AAAoB,CAAC,KAAK;EACvFL,YAAY,CAAC,UAAU,CAAC;EACxB,MAAMM,KAAK,GAAGR,WAAW,CAAC,CAAC;EAE3B,MAAMS,IAAI,GAAGH,QAAQ,IAAIC,KAAK,KAAKG,SAAS;EAC5C,MAAMC,SAAS,GAAGV,OAAO,CACvB,MAAM,CACJQ,IAAI,GAAGZ,UAAU,CAAC,kBAAkB,CAAC,GAAGC,iBAAiB,CAACQ,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC,EAC3FP,IAAI,CAACS,KAAK,CAACI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CACzC,EACD,CAACN,QAAQ,EAAEG,IAAI,EAAED,KAAK,CACxB,CAAC;;EAED;EACA,OAAOC,IAAI,gBACTL,IAAA,CAACT,KAAK;IAACgB,SAAS,EAAEA,SAAU;IAACJ,KAAK,EAAEA;EAAM,CAAE,CAAC,gBAE7CH,IAAA,CAACR,YAAY;IAACe,SAAS,EAAEA,SAAU;IAACJ,KAAK,EAAEA,KAAK,IAAI;EAAK,CAAE,CAC5D;AACH,CAAC","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import { useSplitSx } from '@hzblj/kara-sx';
3
4
  import { MAX_FONT_SCALE, useAppTheme } from '@hzblj/kara-theme';
4
5
  import { Text as RNText, useWindowDimensions } from 'react-native';
5
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -10,6 +11,8 @@ export const RnText = ({
10
11
  ...props
11
12
  }) => {
12
13
  const theme = useAppTheme();
14
+ // A view style, which a text accepts whole — only React Native's types disagree, on `userSelect`'s width.
15
+ const [sx, rest] = useSplitSx(props);
13
16
  const {
14
17
  fontScale
15
18
  } = useWindowDimensions();
@@ -26,12 +29,12 @@ export const RnText = ({
26
29
  const lineHeight = style.lineHeight * Math.min(fontScale, MAX_FONT_SCALE);
27
30
  return /*#__PURE__*/_jsx(RNText, {
28
31
  maxFontSizeMultiplier: MAX_FONT_SCALE,
29
- style: [style, {
32
+ style: [style, sx, {
30
33
  color: theme.color(color),
31
34
  lineHeight,
32
35
  textAlign: align
33
36
  }],
34
- ...props
37
+ ...rest
35
38
  });
36
39
  };
37
40
  //# sourceMappingURL=rn-text.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MAX_FONT_SCALE","useAppTheme","Text","RNText","useWindowDimensions","jsx","_jsx","RnText","align","color","variant","props","theme","fontScale","style","typography","lineHeight","Math","min","maxFontSizeMultiplier","textAlign"],"sourceRoot":"../../../../src","sources":["atoms/rn-text/rn-text.tsx"],"mappings":";;AAAA,SAAQA,cAAc,EAAEC,WAAW,QAAO,mBAAmB;AAC7D,SAAQC,IAAI,IAAIC,MAAM,EAAEC,mBAAmB,QAAO,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAIhE,OAAO,MAAMC,MAAuB,GAAGA,CAAC;EACtCC,KAAK;EACLC,KAAK,GAAG,iBAAiB;EACzBC,OAAO,GAAG,MAAM;EAChB,GAAGC;AACQ,CAAC,KAAK;EACjB,MAAMC,KAAK,GAAGX,WAAW,CAAC,CAAC;EAC3B,MAAM;IAACY;EAAS,CAAC,GAAGT,mBAAmB,CAAC,CAAC;EACzC,MAAMU,KAAK,GAAGF,KAAK,CAACG,UAAU,CAACL,OAAO,CAAC;;EAEvC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMM,UAAU,GAAGF,KAAK,CAACE,UAAU,GAAGC,IAAI,CAACC,GAAG,CAACL,SAAS,EAAEb,cAAc,CAAC;EAEzE,oBACEM,IAAA,CAACH,MAAM;IACLgB,qBAAqB,EAAEnB,cAAe;IACtCc,KAAK,EAAE,CAACA,KAAK,EAAE;MAACL,KAAK,EAAEG,KAAK,CAACH,KAAK,CAACA,KAAK,CAAC;MAAEO,UAAU;MAAEI,SAAS,EAAEZ;IAAK,CAAC,CAAE;IAAA,GACtEG;EAAK,CACV,CAAC;AAEN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useSplitSx","MAX_FONT_SCALE","useAppTheme","Text","RNText","useWindowDimensions","jsx","_jsx","RnText","align","color","variant","props","theme","sx","rest","fontScale","style","typography","lineHeight","Math","min","maxFontSizeMultiplier","textAlign"],"sourceRoot":"../../../../src","sources":["atoms/rn-text/rn-text.tsx"],"mappings":";;AAAA,SAAQA,UAAU,QAAO,gBAAgB;AACzC,SAAQC,cAAc,EAAEC,WAAW,QAAO,mBAAmB;AAC7D,SAAQC,IAAI,IAAIC,MAAM,EAAkBC,mBAAmB,QAAO,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAIhF,OAAO,MAAMC,MAAuB,GAAGA,CAAC;EACtCC,KAAK;EACLC,KAAK,GAAG,iBAAiB;EACzBC,OAAO,GAAG,MAAM;EAChB,GAAGC;AACQ,CAAC,KAAK;EACjB,MAAMC,KAAK,GAAGX,WAAW,CAAC,CAAC;EAC3B;EACA,MAAM,CAACY,EAAE,EAAEC,IAAI,CAAC,GAAGf,UAAU,CAACY,KAAK,CAAyC;EAC5E,MAAM;IAACI;EAAS,CAAC,GAAGX,mBAAmB,CAAC,CAAC;EACzC,MAAMY,KAAK,GAAGJ,KAAK,CAACK,UAAU,CAACP,OAAO,CAAC;;EAEvC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMQ,UAAU,GAAGF,KAAK,CAACE,UAAU,GAAGC,IAAI,CAACC,GAAG,CAACL,SAAS,EAAEf,cAAc,CAAC;EAEzE,oBACEM,IAAA,CAACH,MAAM;IACLkB,qBAAqB,EAAErB,cAAe;IACtCgB,KAAK,EAAE,CAACA,KAAK,EAAEH,EAAE,EAAE;MAACJ,KAAK,EAAEG,KAAK,CAACH,KAAK,CAACA,KAAK,CAAC;MAAES,UAAU;MAAEI,SAAS,EAAEd;IAAK,CAAC,CAAE;IAAA,GAC1EM;EAAI,CACT,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -7,9 +7,9 @@ import { ABox } from "../box/index.js";
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  export const Skeleton = ({
9
9
  borderRadius = 'small',
10
- height,
10
+ h,
11
11
  testID,
12
- width
12
+ w
13
13
  }) => {
14
14
  const pulse = useSharedValue(opacity.o40);
15
15
  useEffect(() => {
@@ -23,11 +23,11 @@ export const Skeleton = ({
23
23
  return /*#__PURE__*/_jsx(ABox, {
24
24
  bg: "fill.quaternary",
25
25
  borderRadius: borderRadius,
26
- h: height,
26
+ h: h,
27
27
  style: rStyle,
28
28
  testID: testID,
29
- w: width,
30
- wide: width === undefined
29
+ w: w,
30
+ wide: w === undefined
31
31
  });
32
32
  };
33
33
  //# sourceMappingURL=skeleton.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["duration","opacity","useEffect","useAnimatedStyle","useSharedValue","withRepeat","withTiming","ABox","jsx","_jsx","Skeleton","borderRadius","height","testID","width","pulse","o40","value","o100","d800","rStyle","bg","h","style","w","wide","undefined"],"sourceRoot":"../../../../src","sources":["atoms/skeleton/skeleton.tsx"],"mappings":";;AAAA,SAAQA,QAAQ,EAAEC,OAAO,QAAO,mBAAmB;AACnD,SAAQC,SAAS,QAAO,OAAO;AAC/B,SAAQC,gBAAgB,EAAEC,cAAc,EAAEC,UAAU,EAAEC,UAAU,QAAO,yBAAyB;AAEhG,SAAQC,IAAI,QAAO,iBAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG3B,OAAO,MAAMC,QAA2B,GAAGA,CAAC;EAACC,YAAY,GAAG,OAAO;EAAEC,MAAM;EAAEC,MAAM;EAAEC;AAAoB,CAAC,KAAK;EAC7G,MAAMC,KAAK,GAAGX,cAAc,CAASH,OAAO,CAACe,GAAG,CAAC;EAEjDd,SAAS,CAAC,MAAM;IACda,KAAK,CAACE,KAAK,GAAGZ,UAAU,CAACC,UAAU,CAACL,OAAO,CAACiB,IAAI,EAAE;MAAClB,QAAQ,EAAEA,QAAQ,CAACmB;IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;EACzF,CAAC,EAAE,CAACJ,KAAK,CAAC,CAAC;EAEX,MAAMK,MAAM,GAAGjB,gBAAgB,CAAC,OAAO;IAACF,OAAO,EAAEc,KAAK,CAACE;EAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EAEnE,oBACER,IAAA,CAACF,IAAI;IACHc,EAAE,EAAC,iBAAiB;IACpBV,YAAY,EAAEA,YAAa;IAC3BW,CAAC,EAAEV,MAAO;IACVW,KAAK,EAAEH,MAAO;IACdP,MAAM,EAAEA,MAAO;IACfW,CAAC,EAAEV,KAAM;IACTW,IAAI,EAAEX,KAAK,KAAKY;EAAU,CAC3B,CAAC;AAEN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["duration","opacity","useEffect","useAnimatedStyle","useSharedValue","withRepeat","withTiming","ABox","jsx","_jsx","Skeleton","borderRadius","h","testID","w","pulse","o40","value","o100","d800","rStyle","bg","style","wide","undefined"],"sourceRoot":"../../../../src","sources":["atoms/skeleton/skeleton.tsx"],"mappings":";;AAAA,SAAQA,QAAQ,EAAEC,OAAO,QAAO,mBAAmB;AACnD,SAAQC,SAAS,QAAO,OAAO;AAC/B,SAAQC,gBAAgB,EAAEC,cAAc,EAAEC,UAAU,EAAEC,UAAU,QAAO,yBAAyB;AAEhG,SAAQC,IAAI,QAAO,iBAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG3B,OAAO,MAAMC,QAA2B,GAAGA,CAAC;EAACC,YAAY,GAAG,OAAO;EAAEC,CAAC;EAAEC,MAAM;EAAEC;AAAgB,CAAC,KAAK;EACpG,MAAMC,KAAK,GAAGX,cAAc,CAASH,OAAO,CAACe,GAAG,CAAC;EAEjDd,SAAS,CAAC,MAAM;IACda,KAAK,CAACE,KAAK,GAAGZ,UAAU,CAACC,UAAU,CAACL,OAAO,CAACiB,IAAI,EAAE;MAAClB,QAAQ,EAAEA,QAAQ,CAACmB;IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;EACzF,CAAC,EAAE,CAACJ,KAAK,CAAC,CAAC;EAEX,MAAMK,MAAM,GAAGjB,gBAAgB,CAAC,OAAO;IAACF,OAAO,EAAEc,KAAK,CAACE;EAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EAEnE,oBACER,IAAA,CAACF,IAAI;IACHc,EAAE,EAAC,iBAAiB;IACpBV,YAAY,EAAEA,YAAa;IAC3BC,CAAC,EAAEA,CAAE;IACLU,KAAK,EAAEF,MAAO;IACdP,MAAM,EAAEA,MAAO;IACfC,CAAC,EAAEA,CAAE;IACLS,IAAI,EAAET,CAAC,KAAKU;EAAU,CACvB,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -11,7 +11,10 @@ export const Surface = ({
11
11
  ...sx
12
12
  }) => {
13
13
  useHostGuard('Surface');
14
+
15
+ // `surface.primary` unless told otherwise, as Material's `Surface` is on Android — without it a plain one drew nothing.
14
16
  const modifiers = useSxModifiers({
17
+ bg: 'surface.primary',
15
18
  borderRadius: 'large',
16
19
  p: 's16',
17
20
  ...sx
@@ -1 +1 @@
1
- {"version":3,"names":["GlassEffectContainer","VStack","useSxModifiers","useHostGuard","jsx","_jsx","Surface","children","glass","testID","sx","modifiers","borderRadius","p","content","alignment"],"sourceRoot":"../../../../src","sources":["atoms/surface/surface.ios.tsx"],"mappings":";;AAAA,SAAQA,oBAAoB,EAAEC,MAAM,QAAO,mBAAmB;AAC9D,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,OAAO,MAAMC,OAAyB,GAAGA,CAAC;EAACC,QAAQ;EAAEC,KAAK,GAAG,KAAK;EAAEC,MAAM;EAAE,GAAGC;AAAgB,CAAC,KAAK;EACnGP,YAAY,CAAC,SAAS,CAAC;EAEvB,MAAMQ,SAAS,GAAGT,cAAc,CAAC;IAACU,YAAY,EAAE,OAAO;IAAEC,CAAC,EAAE,KAAK;IAAE,GAAGH;EAAE,CAAC,CAAC;EAC1E,MAAMI,OAAO,gBACXT,IAAA,CAACJ,MAAM;IAACc,SAAS,EAAC,SAAS;IAACJ,SAAS,EAAEA,SAAU;IAACF,MAAM,EAAEA,MAAO;IAAAF,QAAA,EAC9DA;EAAQ,CACH,CACT;EAED,IAAI,CAACC,KAAK,EAAE;IACV,OAAOM,OAAO;EAChB;EAEA,oBAAOT,IAAA,CAACL,oBAAoB;IAAAO,QAAA,EAAEO;EAAO,CAAuB,CAAC;AAC/D,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["GlassEffectContainer","VStack","useSxModifiers","useHostGuard","jsx","_jsx","Surface","children","glass","testID","sx","modifiers","bg","borderRadius","p","content","alignment"],"sourceRoot":"../../../../src","sources":["atoms/surface/surface.ios.tsx"],"mappings":";;AAAA,SAAQA,oBAAoB,EAAEC,MAAM,QAAO,mBAAmB;AAC9D,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,OAAO,MAAMC,OAAyB,GAAGA,CAAC;EAACC,QAAQ;EAAEC,KAAK,GAAG,KAAK;EAAEC,MAAM;EAAE,GAAGC;AAAgB,CAAC,KAAK;EACnGP,YAAY,CAAC,SAAS,CAAC;;EAEvB;EACA,MAAMQ,SAAS,GAAGT,cAAc,CAAC;IAACU,EAAE,EAAE,iBAAiB;IAAEC,YAAY,EAAE,OAAO;IAAEC,CAAC,EAAE,KAAK;IAAE,GAAGJ;EAAE,CAAC,CAAC;EACjG,MAAMK,OAAO,gBACXV,IAAA,CAACJ,MAAM;IAACe,SAAS,EAAC,SAAS;IAACL,SAAS,EAAEA,SAAU;IAACF,MAAM,EAAEA,MAAO;IAAAF,QAAA,EAC9DA;EAAQ,CACH,CACT;EAED,IAAI,CAACC,KAAK,EAAE;IACV,OAAOO,OAAO;EAChB;EAEA,oBAAOV,IAAA,CAACL,oBAAoB;IAAAO,QAAA,EAAEQ;EAAO,CAAuB,CAAC;AAC/D,CAAC","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { Text as ComposeText } from '@expo/ui/jetpack-compose';
4
4
  import { testID as testIdModifier } from '@expo/ui/jetpack-compose/modifiers';
5
+ import { useSxModifiers } from '@hzblj/kara-sx';
5
6
  import { useAppTheme } from '@hzblj/kara-theme';
6
7
  import { useMemo } from 'react';
7
8
  import { useHostGuard } from "../../host-context.js";
@@ -26,12 +27,14 @@ export const Text = ({
26
27
  numberOfLines,
27
28
  testID,
28
29
  transform,
29
- variant = 'body'
30
+ variant = 'body',
31
+ ...sx
30
32
  }) => {
31
33
  useHostGuard('Text');
32
34
  const theme = useAppTheme();
33
35
  const style = theme.typography[variant];
34
- const modifiers = useMemo(() => testID ? [testIdModifier(testID)] : undefined, [testID]);
36
+ const sxModifiers = useSxModifiers(sx);
37
+ const modifiers = useMemo(() => testID ? [...sxModifiers, testIdModifier(testID)] : sxModifiers, [sxModifiers, testID]);
35
38
  return /*#__PURE__*/_jsx(ComposeText, {
36
39
  color: theme.colorString(color),
37
40
  maxLines: numberOfLines,
@@ -1 +1 @@
1
- {"version":3,"names":["Text","ComposeText","testID","testIdModifier","useAppTheme","useMemo","useHostGuard","jsx","_jsx","DECORATION","none","strikethrough","underline","applyTransform","children","transform","toUpperCase","toLowerCase","decorationOf","decoration","undefined","align","color","numberOfLines","variant","theme","style","typography","modifiers","colorString","maxLines","fontFamily","fontSize","fontWeight","lineHeight","textAlign","textDecoration"],"sourceRoot":"../../../../src","sources":["atoms/text/text.android.tsx"],"mappings":";;AAAA,SAAQA,IAAI,IAAIC,WAAW,QAAO,0BAA0B;AAC5D,SAAQC,MAAM,IAAIC,cAAc,QAAO,oCAAoC;AAC3E,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAE7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,MAAMC,UAAU,GAAG;EACjBC,IAAI,EAAE,MAAM;EACZC,aAAa,EAAE,aAAa;EAC5BC,SAAS,EAAE;AACb,CAAU;AAEV,MAAMC,cAAc,GAAGA,CAACC,QAA+B,EAAEC,SAAoC,KAAK;EAChG,IAAI,CAACA,SAAS,IAAI,OAAOD,QAAQ,KAAK,QAAQ,EAAE;IAC9C,OAAOA,QAAQ;EACjB;EAEA,OAAOC,SAAS,KAAK,WAAW,GAAGD,QAAQ,CAACE,WAAW,CAAC,CAAC,GAAGF,QAAQ,CAACG,WAAW,CAAC,CAAC;AACpF,CAAC;AAED,MAAMC,YAAY,GAAIC,UAAsC,IAC1DA,UAAU,KAAKC,SAAS,GAAGA,SAAS,GAAGX,UAAU,CAACU,UAAU,CAAC;AAE/D,OAAO,MAAMnB,IAAmB,GAAGA,CAAC;EAClCqB,KAAK;EACLP,QAAQ;EACRQ,KAAK,GAAG,iBAAiB;EACzBH,UAAU;EACVI,aAAa;EACbrB,MAAM;EACNa,SAAS;EACTS,OAAO,GAAG;AACD,CAAC,KAAK;EACflB,YAAY,CAAC,MAAM,CAAC;EACpB,MAAMmB,KAAK,GAAGrB,WAAW,CAAC,CAAC;EAC3B,MAAMsB,KAAK,GAAGD,KAAK,CAACE,UAAU,CAACH,OAAO,CAAC;EACvC,MAAMI,SAAS,GAAGvB,OAAO,CAAC,MAAOH,MAAM,GAAG,CAACC,cAAc,CAACD,MAAM,CAAC,CAAC,GAAGkB,SAAU,EAAE,CAAClB,MAAM,CAAC,CAAC;EAE1F,oBACEM,IAAA,CAACP,WAAW;IACVqB,KAAK,EAAEG,KAAK,CAACI,WAAW,CAACP,KAAK,CAAE;IAChCQ,QAAQ,EAAEP,aAAc;IACxBK,SAAS,EAAEA,SAAU;IACrBF,KAAK,EAAE;MACLK,UAAU,EAAEL,KAAK,CAACK,UAAU;MAC5BC,QAAQ,EAAEN,KAAK,CAACM,QAAQ;MACxBC,UAAU,EAAEP,KAAK,CAACO,UAAU;MAC5BC,UAAU,EAAER,KAAK,CAACQ,UAAU;MAC5BC,SAAS,EAAEd,KAAK;MAChBe,cAAc,EAAElB,YAAY,CAACC,UAAU;IACzC,CAAE;IAAAL,QAAA,EAEDD,cAAc,CAACC,QAAQ,EAAEC,SAAS;EAAC,CACzB,CAAC;AAElB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Text","ComposeText","testID","testIdModifier","useSxModifiers","useAppTheme","useMemo","useHostGuard","jsx","_jsx","DECORATION","none","strikethrough","underline","applyTransform","children","transform","toUpperCase","toLowerCase","decorationOf","decoration","undefined","align","color","numberOfLines","variant","sx","theme","style","typography","sxModifiers","modifiers","colorString","maxLines","fontFamily","fontSize","fontWeight","lineHeight","textAlign","textDecoration"],"sourceRoot":"../../../../src","sources":["atoms/text/text.android.tsx"],"mappings":";;AAAA,SAAQA,IAAI,IAAIC,WAAW,QAAO,0BAA0B;AAC5D,SAAQC,MAAM,IAAIC,cAAc,QAAO,oCAAoC;AAC3E,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAE7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,MAAMC,UAAU,GAAG;EACjBC,IAAI,EAAE,MAAM;EACZC,aAAa,EAAE,aAAa;EAC5BC,SAAS,EAAE;AACb,CAAU;AAEV,MAAMC,cAAc,GAAGA,CAACC,QAA+B,EAAEC,SAAoC,KAAK;EAChG,IAAI,CAACA,SAAS,IAAI,OAAOD,QAAQ,KAAK,QAAQ,EAAE;IAC9C,OAAOA,QAAQ;EACjB;EAEA,OAAOC,SAAS,KAAK,WAAW,GAAGD,QAAQ,CAACE,WAAW,CAAC,CAAC,GAAGF,QAAQ,CAACG,WAAW,CAAC,CAAC;AACpF,CAAC;AAED,MAAMC,YAAY,GAAIC,UAAsC,IAC1DA,UAAU,KAAKC,SAAS,GAAGA,SAAS,GAAGX,UAAU,CAACU,UAAU,CAAC;AAE/D,OAAO,MAAMpB,IAAmB,GAAGA,CAAC;EAClCsB,KAAK;EACLP,QAAQ;EACRQ,KAAK,GAAG,iBAAiB;EACzBH,UAAU;EACVI,aAAa;EACbtB,MAAM;EACNc,SAAS;EACTS,OAAO,GAAG,MAAM;EAChB,GAAGC;AACM,CAAC,KAAK;EACfnB,YAAY,CAAC,MAAM,CAAC;EACpB,MAAMoB,KAAK,GAAGtB,WAAW,CAAC,CAAC;EAC3B,MAAMuB,KAAK,GAAGD,KAAK,CAACE,UAAU,CAACJ,OAAO,CAAC;EACvC,MAAMK,WAAW,GAAG1B,cAAc,CAACsB,EAAE,CAAC;EACtC,MAAMK,SAAS,GAAGzB,OAAO,CACvB,MAAOJ,MAAM,GAAG,CAAC,GAAG4B,WAAW,EAAE3B,cAAc,CAACD,MAAM,CAAC,CAAC,GAAG4B,WAAY,EACvE,CAACA,WAAW,EAAE5B,MAAM,CACtB,CAAC;EAED,oBACEO,IAAA,CAACR,WAAW;IACVsB,KAAK,EAAEI,KAAK,CAACK,WAAW,CAACT,KAAK,CAAE;IAChCU,QAAQ,EAAET,aAAc;IACxBO,SAAS,EAAEA,SAAU;IACrBH,KAAK,EAAE;MACLM,UAAU,EAAEN,KAAK,CAACM,UAAU;MAC5BC,QAAQ,EAAEP,KAAK,CAACO,QAAQ;MACxBC,UAAU,EAAER,KAAK,CAACQ,UAAU;MAC5BC,UAAU,EAAET,KAAK,CAACS,UAAU;MAC5BC,SAAS,EAAEhB,KAAK;MAChBiB,cAAc,EAAEpB,YAAY,CAACC,UAAU;IACzC,CAAE;IAAAL,QAAA,EAEDD,cAAc,CAACC,QAAQ,EAAEC,SAAS;EAAC,CACzB,CAAC;AAElB,CAAC","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  import { Text as SwiftUIText } from '@expo/ui/swift-ui';
4
4
  import { foregroundStyle, lineLimit, lineSpacing, multilineTextAlignment, strikethrough, textCase, underline } from '@expo/ui/swift-ui/modifiers';
5
5
  import { scaledFont } from '@hzblj/kara-native/swift-ui';
6
+ import { useSxModifiers } from '@hzblj/kara-sx';
6
7
  import { useAppTheme } from '@hzblj/kara-theme';
7
8
  import { useMemo } from 'react';
8
9
  import { useHostGuard } from "../../host-context.js";
@@ -12,6 +13,13 @@ const ALIGNMENT = {
12
13
  left: 'leading',
13
14
  right: 'trailing'
14
15
  };
16
+
17
+ /** Where a frame larger than the text — `wide`, `w`, `h` — puts it: on the side its lines align to, centred vertically. */
18
+ const FRAME_ALIGNMENT = {
19
+ center: 'center',
20
+ left: 'leading',
21
+ right: 'trailing'
22
+ };
15
23
  export const Text = ({
16
24
  align,
17
25
  children,
@@ -20,11 +28,14 @@ export const Text = ({
20
28
  numberOfLines,
21
29
  testID,
22
30
  transform,
23
- variant = 'body'
31
+ variant = 'body',
32
+ ...sx
24
33
  }) => {
25
34
  useHostGuard('Text');
26
35
  const theme = useAppTheme();
27
36
  const style = theme.typography[variant];
37
+ // After the text's own modifiers: the font and colour belong to the glyphs, the padding and frame to the box around.
38
+ const sxModifiers = useSxModifiers(sx, FRAME_ALIGNMENT[align ?? 'left']);
28
39
  const modifiers = useMemo(() => {
29
40
  const list = [
30
41
  // Not `@expo/ui`'s `font()`: for the platform's face it gives either Apple's size or a size that ignores Dynamic
@@ -56,8 +67,8 @@ export const Text = ({
56
67
  if (numberOfLines !== undefined) {
57
68
  list.push(lineLimit(numberOfLines));
58
69
  }
59
- return list;
60
- }, [align, color, decoration, numberOfLines, style, theme, transform]);
70
+ return [...list, ...sxModifiers];
71
+ }, [align, color, decoration, numberOfLines, style, sxModifiers, theme, transform]);
61
72
  return /*#__PURE__*/_jsx(SwiftUIText, {
62
73
  modifiers: modifiers,
63
74
  testID: testID,
@@ -1 +1 @@
1
- {"version":3,"names":["Text","SwiftUIText","foregroundStyle","lineLimit","lineSpacing","multilineTextAlignment","strikethrough","textCase","underline","scaledFont","useAppTheme","useMemo","useHostGuard","jsx","_jsx","ALIGNMENT","center","left","right","align","children","color","decoration","numberOfLines","testID","transform","variant","theme","style","typography","modifiers","list","family","fontFamily","size","fontSize","textStyle","scalesWith","weight","Math","max","lineHeight","push","isActive","pattern","undefined"],"sourceRoot":"../../../../src","sources":["atoms/text/text.ios.tsx"],"mappings":";;AAAA,SAAQA,IAAI,IAAIC,WAAW,QAAO,mBAAmB;AACrD,SACEC,eAAe,EACfC,SAAS,EACTC,WAAW,EAEXC,sBAAsB,EACtBC,aAAa,EACbC,QAAQ,EACRC,SAAS,QACJ,6BAA6B;AACpC,SAAQC,UAAU,QAAO,6BAA6B;AACtD,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAE7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,MAAMC,SAAS,GAAG;EAChBC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,SAAS;EACfC,KAAK,EAAE;AACT,CAAU;AAEV,OAAO,MAAMlB,IAAmB,GAAGA,CAAC;EAClCmB,KAAK;EACLC,QAAQ;EACRC,KAAK,GAAG,iBAAiB;EACzBC,UAAU;EACVC,aAAa;EACbC,MAAM;EACNC,SAAS;EACTC,OAAO,GAAG;AACD,CAAC,KAAK;EACfd,YAAY,CAAC,MAAM,CAAC;EACpB,MAAMe,KAAK,GAAGjB,WAAW,CAAC,CAAC;EAC3B,MAAMkB,KAAK,GAAGD,KAAK,CAACE,UAAU,CAACH,OAAO,CAAC;EAEvC,MAAMI,SAAS,GAAGnB,OAAO,CAAC,MAAM;IAC9B,MAAMoB,IAAsB,GAAG;IAC7B;IACA;IACAtB,UAAU,CAAC;MAACuB,MAAM,EAAEJ,KAAK,CAACK,UAAU;MAAEC,IAAI,EAAEN,KAAK,CAACO,QAAQ;MAAEC,SAAS,EAAER,KAAK,CAACS,UAAU;MAAEC,MAAM,EAAEV,KAAK,CAACU;IAAM,CAAC,CAAC,EAC/GlC,WAAW,CAACmC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEZ,KAAK,CAACa,UAAU,GAAGb,KAAK,CAACO,QAAQ,CAAC,CAAC,EAC3DjC,eAAe,CAACyB,KAAK,CAACN,KAAK,CAACA,KAAK,CAAC,CAAC,CACpC;IAED,IAAIF,KAAK,EAAE;MACTY,IAAI,CAACW,IAAI,CAACrC,sBAAsB,CAACU,SAAS,CAACI,KAAK,CAAC,CAAC,CAAC;IACrD;IAEA,IAAIM,SAAS,EAAE;MACbM,IAAI,CAACW,IAAI,CAACnC,QAAQ,CAACkB,SAAS,CAAC,CAAC;IAChC;IAEA,IAAIH,UAAU,KAAK,WAAW,EAAE;MAC9BS,IAAI,CAACW,IAAI,CAAClC,SAAS,CAAC;QAACmC,QAAQ,EAAE,IAAI;QAAEC,OAAO,EAAE;MAAO,CAAC,CAAC,CAAC;IAC1D;IAEA,IAAItB,UAAU,KAAK,eAAe,EAAE;MAClCS,IAAI,CAACW,IAAI,CAACpC,aAAa,CAAC;QAACqC,QAAQ,EAAE,IAAI;QAAEC,OAAO,EAAE;MAAO,CAAC,CAAC,CAAC;IAC9D;IAEA,IAAIrB,aAAa,KAAKsB,SAAS,EAAE;MAC/Bd,IAAI,CAACW,IAAI,CAACvC,SAAS,CAACoB,aAAa,CAAC,CAAC;IACrC;IAEA,OAAOQ,IAAI;EACb,CAAC,EAAE,CAACZ,KAAK,EAAEE,KAAK,EAAEC,UAAU,EAAEC,aAAa,EAAEK,KAAK,EAAED,KAAK,EAAEF,SAAS,CAAC,CAAC;EAEtE,oBACEX,IAAA,CAACb,WAAW;IAAC6B,SAAS,EAAEA,SAAU;IAACN,MAAM,EAAEA,MAAO;IAAAJ,QAAA,EAC/CA;EAAQ,CACE,CAAC;AAElB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Text","SwiftUIText","foregroundStyle","lineLimit","lineSpacing","multilineTextAlignment","strikethrough","textCase","underline","scaledFont","useSxModifiers","useAppTheme","useMemo","useHostGuard","jsx","_jsx","ALIGNMENT","center","left","right","FRAME_ALIGNMENT","align","children","color","decoration","numberOfLines","testID","transform","variant","sx","theme","style","typography","sxModifiers","modifiers","list","family","fontFamily","size","fontSize","textStyle","scalesWith","weight","Math","max","lineHeight","push","isActive","pattern","undefined"],"sourceRoot":"../../../../src","sources":["atoms/text/text.ios.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  import { Column, Text as ComposeText, OutlinedTextField, useNativeState } from '@expo/ui/jetpack-compose';
4
4
  import { useSxModifiers } from '@hzblj/kara-sx';
5
5
  import { useAppTheme } from '@hzblj/kara-theme';
6
+ import { Glyph } from "../../glyph/index.js";
6
7
  import { useHostGuard } from "../../host-context.js";
7
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
9
  export const TextField = ({
@@ -20,17 +21,19 @@ export const TextField = ({
20
21
  const modifiers = useSxModifiers({
21
22
  wide: true
22
23
  });
24
+ const invalid = Boolean(error);
25
+ const message = typeof error === 'string' && error ? error : undefined;
23
26
  return /*#__PURE__*/_jsxs(Column, {
24
27
  verticalArrangement: {
25
28
  spacedBy: 4
26
29
  },
27
30
  children: [label ? /*#__PURE__*/_jsx(ComposeText, {
28
- color: theme.colorString(error ? 'content.destructive' : 'content.secondary'),
31
+ color: theme.colorString(invalid ? 'content.destructive' : 'content.secondary'),
29
32
  style: theme.typography.labelMedium,
30
33
  children: label
31
- }) : null, /*#__PURE__*/_jsx(OutlinedTextField, {
34
+ }) : null, /*#__PURE__*/_jsxs(OutlinedTextField, {
32
35
  enabled: !disabled,
33
- isError: error,
36
+ isError: invalid,
34
37
  modifiers: modifiers,
35
38
  onValueChange: onChangeText,
36
39
  singleLine: !multiline,
@@ -40,7 +43,19 @@ export const TextField = ({
40
43
  fontWeight: theme.typography.body.fontWeight
41
44
  },
42
45
  value: value,
43
- visualTransformation: secure ? 'password' : 'none'
46
+ visualTransformation: secure ? 'password' : 'none',
47
+ children: [invalid ? /*#__PURE__*/_jsx(OutlinedTextField.TrailingIcon, {
48
+ children: /*#__PURE__*/_jsx(Glyph, {
49
+ color: "content.destructive",
50
+ name: "error"
51
+ })
52
+ }) : null, message ? /*#__PURE__*/_jsx(OutlinedTextField.SupportingText, {
53
+ children: /*#__PURE__*/_jsx(ComposeText, {
54
+ color: theme.colorString('content.destructive'),
55
+ style: theme.typography.footnote,
56
+ children: message
57
+ })
58
+ }) : null]
44
59
  })]
45
60
  });
46
61
  };
@@ -1 +1 @@
1
- {"version":3,"names":["Column","Text","ComposeText","OutlinedTextField","useNativeState","useSxModifiers","useAppTheme","useHostGuard","jsx","_jsx","jsxs","_jsxs","TextField","defaultValue","disabled","error","label","multiline","onChangeText","secure","theme","value","modifiers","wide","verticalArrangement","spacedBy","children","color","colorString","style","typography","labelMedium","enabled","isError","onValueChange","singleLine","textStyle","fontFamily","body","fontWeight","visualTransformation"],"sourceRoot":"../../../../src","sources":["atoms/text-field/text-field.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,EAAEC,IAAI,IAAIC,WAAW,EAAEC,iBAAiB,EAAEC,cAAc,QAAO,0BAA0B;AACvG,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C,OAAO,MAAMC,SAA6B,GAAGA,CAAC;EAC5CC,YAAY,GAAG,EAAE;EACjBC,QAAQ,GAAG,KAAK;EAChBC,KAAK,GAAG,KAAK;EACbC,KAAK;EACLC,SAAS,GAAG,KAAK;EACjBC,YAAY;EACZC,MAAM,GAAG;AACK,CAAC,KAAK;EACpBZ,YAAY,CAAC,WAAW,CAAC;EACzB,MAAMa,KAAK,GAAGd,WAAW,CAAC,CAAC;EAC3B,MAAMe,KAAK,GAAGjB,cAAc,CAACS,YAAY,CAAC;EAC1C,MAAMS,SAAS,GAAGjB,cAAc,CAAC;IAACkB,IAAI,EAAE;EAAI,CAAC,CAAC;EAE9C,oBACEZ,KAAA,CAACX,MAAM;IAACwB,mBAAmB,EAAE;MAACC,QAAQ,EAAE;IAAC,CAAE;IAAAC,QAAA,GACxCV,KAAK,gBACJP,IAAA,CAACP,WAAW;MACVyB,KAAK,EAAEP,KAAK,CAACQ,WAAW,CAACb,KAAK,GAAG,qBAAqB,GAAG,mBAAmB,CAAE;MAC9Ec,KAAK,EAAET,KAAK,CAACU,UAAU,CAACC,WAAY;MAAAL,QAAA,EAEnCV;IAAK,CACK,CAAC,GACZ,IAAI,eACRP,IAAA,CAACN,iBAAiB;MAChB6B,OAAO,EAAE,CAAClB,QAAS;MACnBmB,OAAO,EAAElB,KAAM;MACfO,SAAS,EAAEA,SAAU;MACrBY,aAAa,EAAEhB,YAAa;MAC5BiB,UAAU,EAAE,CAAClB,SAAU;MACvBmB,SAAS,EAAE;QACTT,KAAK,EAAEP,KAAK,CAACQ,WAAW,CAAC,iBAAiB,CAAC;QAC3CS,UAAU,EAAEjB,KAAK,CAACU,UAAU,CAACQ,IAAI,CAACD,UAAU;QAC5CE,UAAU,EAAEnB,KAAK,CAACU,UAAU,CAACQ,IAAI,CAACC;MACpC,CAAE;MACFlB,KAAK,EAAEA,KAAM;MACbmB,oBAAoB,EAAErB,MAAM,GAAG,UAAU,GAAG;IAAO,CACpD,CAAC;EAAA,CACI,CAAC;AAEb,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Column","Text","ComposeText","OutlinedTextField","useNativeState","useSxModifiers","useAppTheme","Glyph","useHostGuard","jsx","_jsx","jsxs","_jsxs","TextField","defaultValue","disabled","error","label","multiline","onChangeText","secure","theme","value","modifiers","wide","invalid","Boolean","message","undefined","verticalArrangement","spacedBy","children","color","colorString","style","typography","labelMedium","enabled","isError","onValueChange","singleLine","textStyle","fontFamily","body","fontWeight","visualTransformation","TrailingIcon","name","SupportingText","footnote"],"sourceRoot":"../../../../src","sources":["atoms/text-field/text-field.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,EAAEC,IAAI,IAAIC,WAAW,EAAEC,iBAAiB,EAAEC,cAAc,QAAO,0BAA0B;AACvG,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,KAAK,QAAO,sBAAa;AACjC,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C,OAAO,MAAMC,SAA6B,GAAGA,CAAC;EAC5CC,YAAY,GAAG,EAAE;EACjBC,QAAQ,GAAG,KAAK;EAChBC,KAAK,GAAG,KAAK;EACbC,KAAK;EACLC,SAAS,GAAG,KAAK;EACjBC,YAAY;EACZC,MAAM,GAAG;AACK,CAAC,KAAK;EACpBZ,YAAY,CAAC,WAAW,CAAC;EACzB,MAAMa,KAAK,GAAGf,WAAW,CAAC,CAAC;EAC3B,MAAMgB,KAAK,GAAGlB,cAAc,CAACU,YAAY,CAAC;EAC1C,MAAMS,SAAS,GAAGlB,cAAc,CAAC;IAACmB,IAAI,EAAE;EAAI,CAAC,CAAC;EAC9C,MAAMC,OAAO,GAAGC,OAAO,CAACV,KAAK,CAAC;EAC9B,MAAMW,OAAO,GAAG,OAAOX,KAAK,KAAK,QAAQ,IAAIA,KAAK,GAAGA,KAAK,GAAGY,SAAS;EAEtE,oBACEhB,KAAA,CAACZ,MAAM;IAAC6B,mBAAmB,EAAE;MAACC,QAAQ,EAAE;IAAC,CAAE;IAAAC,QAAA,GACxCd,KAAK,gBACJP,IAAA,CAACR,WAAW;MACV8B,KAAK,EAAEX,KAAK,CAACY,WAAW,CAACR,OAAO,GAAG,qBAAqB,GAAG,mBAAmB,CAAE;MAChFS,KAAK,EAAEb,KAAK,CAACc,UAAU,CAACC,WAAY;MAAAL,QAAA,EAEnCd;IAAK,CACK,CAAC,GACZ,IAAI,eACRL,KAAA,CAACT,iBAAiB;MAChBkC,OAAO,EAAE,CAACtB,QAAS;MACnBuB,OAAO,EAAEb,OAAQ;MACjBF,SAAS,EAAEA,SAAU;MACrBgB,aAAa,EAAEpB,YAAa;MAC5BqB,UAAU,EAAE,CAACtB,SAAU;MACvBuB,SAAS,EAAE;QACTT,KAAK,EAAEX,KAAK,CAACY,WAAW,CAAC,iBAAiB,CAAC;QAC3CS,UAAU,EAAErB,KAAK,CAACc,UAAU,CAACQ,IAAI,CAACD,UAAU;QAC5CE,UAAU,EAAEvB,KAAK,CAACc,UAAU,CAACQ,IAAI,CAACC;MACpC,CAAE;MACFtB,KAAK,EAAEA,KAAM;MACbuB,oBAAoB,EAAEzB,MAAM,GAAG,UAAU,GAAG,MAAO;MAAAW,QAAA,GAElDN,OAAO,gBACNf,IAAA,CAACP,iBAAiB,CAAC2C,YAAY;QAAAf,QAAA,eAC7BrB,IAAA,CAACH,KAAK;UAACyB,KAAK,EAAC,qBAAqB;UAACe,IAAI,EAAC;QAAO,CAAE;MAAC,CACpB,CAAC,GAC/B,IAAI,EACPpB,OAAO,gBACNjB,IAAA,CAACP,iBAAiB,CAAC6C,cAAc;QAAAjB,QAAA,eAC/BrB,IAAA,CAACR,WAAW;UAAC8B,KAAK,EAAEX,KAAK,CAACY,WAAW,CAAC,qBAAqB,CAAE;UAACC,KAAK,EAAEb,KAAK,CAACc,UAAU,CAACc,QAAS;UAAAlB,QAAA,EAC5FJ;QAAO,CACG;MAAC,CACkB,CAAC,GACjC,IAAI;IAAA,CACS,CAAC;EAAA,CACd,CAAC;AAEb,CAAC","ignoreList":[]}
@@ -48,7 +48,8 @@ export const TextField = ({
48
48
  }) => {
49
49
  useHostGuard('TextField');
50
50
  const text = useNativeState(defaultValue);
51
- const tone = TONE[toneOf(disabled, error)];
51
+ const tone = TONE[toneOf(disabled, Boolean(error))];
52
+ const message = tone === TONE.error && typeof error === 'string' && error ? error : undefined;
52
53
  const sxModifiers = useSxModifiers({
53
54
  bg: tone.bg,
54
55
  borderColor: tone.border,
@@ -83,7 +84,11 @@ export const TextField = ({
83
84
  onTextChange: onChangeText,
84
85
  testID: testID,
85
86
  text: text
86
- })]
87
+ }), message ? /*#__PURE__*/_jsx(Text, {
88
+ color: "content.destructive",
89
+ variant: "footnote",
90
+ children: message
91
+ }) : null]
87
92
  });
88
93
  };
89
94
  //# sourceMappingURL=text-field.ios.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SecureField","TextField","SwiftUITextField","useNativeState","VStack","disabled","disabledModifier","textFieldStyle","useSxModifiers","spacing","useMemo","useHostGuard","Text","jsx","_jsx","jsxs","_jsxs","TONE","default","bg","border","label","error","toneOf","defaultValue","multiline","onChangeText","secure","testID","text","tone","sxModifiers","borderColor","borderRadius","borderWidth","px","py","wide","modifiers","list","push","alignment","s4","children","color","variant","onTextChange","axis"],"sourceRoot":"../../../../src","sources":["atoms/text-field/text-field.ios.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SecureField","TextField","SwiftUITextField","useNativeState","VStack","disabled","disabledModifier","textFieldStyle","useSxModifiers","spacing","useMemo","useHostGuard","Text","jsx","_jsx","jsxs","_jsxs","TONE","default","bg","border","label","error","toneOf","defaultValue","multiline","onChangeText","secure","testID","text","tone","Boolean","message","undefined","sxModifiers","borderColor","borderRadius","borderWidth","px","py","wide","modifiers","list","push","alignment","s4","children","color","variant","onTextChange","axis"],"sourceRoot":"../../../../src","sources":["atoms/text-field/text-field.ios.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,31 @@
1
1
  "use strict";
2
2
 
3
- import { AnimatedVisibility, Column, Text as ComposeText, Row } from '@expo/ui/jetpack-compose';
4
- import { clickable } from '@expo/ui/jetpack-compose/modifiers';
5
- import { useAppTheme } from '@hzblj/kara-theme';
3
+ import { AnimatedVisibility, Box, Column, Text as ComposeText, EnterTransition, ExitTransition, Row } from '@expo/ui/jetpack-compose';
4
+ import { animated, clickable, defaultMinSize, fillMaxWidth, graphicsLayer, tween } from '@expo/ui/jetpack-compose/modifiers';
5
+ import { duration, useAppTheme } from '@hzblj/kara-theme';
6
6
  import { useMemo } from 'react';
7
7
  import { Glyph } from "../../glyph/index.js";
8
8
  import { useHostGuard } from "../../host-context.js";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ /** Material's standard easing, at the length a disclosure takes. */
11
+ const TURN = tween({
12
+ durationMillis: duration.d200,
13
+ easing: 'fastOutSlowIn'
14
+ });
15
+
16
+ /** Down from the row, fading in — Compose's default grows from a corner, sideways as well as down. */
17
+ const ENTER = EnterTransition.expandVertically().plus(EnterTransition.fadeIn());
18
+ const EXIT = ExitTransition.shrinkVertically().plus(ExitTransition.fadeOut());
19
+ const WIDE = [fillMaxWidth()];
20
+
21
+ /** Material's least touch target. */
22
+ const ROW_HEIGHT = 48;
23
+
24
+ /**
25
+ * A pressable row and an animated reveal: the content expands down from the row, and the chevron turns a quarter
26
+ * toward it, as a Material disclosure does — it used to jump between two glyphs. The row spans its parent, the chevron
27
+ * at the far end, and is never shorter than a touch target.
28
+ */
10
29
  export const Collapsible = ({
11
30
  children,
12
31
  expanded,
@@ -15,8 +34,14 @@ export const Collapsible = ({
15
34
  }) => {
16
35
  useHostGuard('Collapsible');
17
36
  const theme = useAppTheme();
18
- const modifiers = useMemo(() => [clickable(() => onExpandedChange(!expanded))], [expanded, onExpandedChange]);
37
+ const modifiers = useMemo(() => [fillMaxWidth(), defaultMinSize({
38
+ minHeight: ROW_HEIGHT
39
+ }), clickable(() => onExpandedChange(!expanded))], [expanded, onExpandedChange]);
40
+ const turn = useMemo(() => [graphicsLayer({
41
+ rotationZ: animated(expanded ? 90 : 0, TURN)
42
+ })], [expanded]);
19
43
  return /*#__PURE__*/_jsxs(Column, {
44
+ modifiers: WIDE,
20
45
  children: [/*#__PURE__*/_jsxs(Row, {
21
46
  horizontalArrangement: "spaceBetween",
22
47
  modifiers: modifiers,
@@ -25,11 +50,16 @@ export const Collapsible = ({
25
50
  color: theme.colorString('content.primary'),
26
51
  style: theme.typography.body,
27
52
  children: label
28
- }), /*#__PURE__*/_jsx(Glyph, {
29
- name: expanded ? 'chevronDown' : 'chevronRight',
30
- size: "s20"
53
+ }), /*#__PURE__*/_jsx(Box, {
54
+ modifiers: turn,
55
+ children: /*#__PURE__*/_jsx(Glyph, {
56
+ name: "chevronRight",
57
+ size: "s20"
58
+ })
31
59
  })]
32
60
  }), /*#__PURE__*/_jsx(AnimatedVisibility, {
61
+ enterTransition: ENTER,
62
+ exitTransition: EXIT,
33
63
  visible: expanded,
34
64
  children: children
35
65
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["AnimatedVisibility","Column","Text","ComposeText","Row","clickable","useAppTheme","useMemo","Glyph","useHostGuard","jsx","_jsx","jsxs","_jsxs","Collapsible","children","expanded","label","onExpandedChange","theme","modifiers","horizontalArrangement","verticalAlignment","color","colorString","style","typography","body","name","size","visible"],"sourceRoot":"../../../../src","sources":["molecules/collapsible/collapsible.android.tsx"],"mappings":";;AAAA,SAAQA,kBAAkB,EAAEC,MAAM,EAAEC,IAAI,IAAIC,WAAW,EAAEC,GAAG,QAAO,0BAA0B;AAC7F,SAAQC,SAAS,QAAO,oCAAoC;AAC5D,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,KAAK,QAAO,sBAAa;AACjC,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C,OAAO,MAAMC,WAAiC,GAAGA,CAAC;EAACC,QAAQ;EAAEC,QAAQ;EAAEC,KAAK;EAAEC;AAAkC,CAAC,KAAK;EACpHT,YAAY,CAAC,aAAa,CAAC;EAC3B,MAAMU,KAAK,GAAGb,WAAW,CAAC,CAAC;EAC3B,MAAMc,SAAS,GAAGb,OAAO,CAAC,MAAM,CAACF,SAAS,CAAC,MAAMa,gBAAgB,CAAC,CAACF,QAAQ,CAAC,CAAC,CAAC,EAAE,CAACA,QAAQ,EAAEE,gBAAgB,CAAC,CAAC;EAE7G,oBACEL,KAAA,CAACZ,MAAM;IAAAc,QAAA,gBACLF,KAAA,CAACT,GAAG;MAACiB,qBAAqB,EAAC,cAAc;MAACD,SAAS,EAAEA,SAAU;MAACE,iBAAiB,EAAC,QAAQ;MAAAP,QAAA,gBACxFJ,IAAA,CAACR,WAAW;QAACoB,KAAK,EAAEJ,KAAK,CAACK,WAAW,CAAC,iBAAiB,CAAE;QAACC,KAAK,EAAEN,KAAK,CAACO,UAAU,CAACC,IAAK;QAAAZ,QAAA,EACpFE;MAAK,CACK,CAAC,eACdN,IAAA,CAACH,KAAK;QAACoB,IAAI,EAAEZ,QAAQ,GAAG,aAAa,GAAG,cAAe;QAACa,IAAI,EAAC;MAAK,CAAE,CAAC;IAAA,CAClE,CAAC,eACNlB,IAAA,CAACX,kBAAkB;MAAC8B,OAAO,EAAEd,QAAS;MAAAD,QAAA,EAAEA;IAAQ,CAAqB,CAAC;EAAA,CAChE,CAAC;AAEb,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["AnimatedVisibility","Box","Column","Text","ComposeText","EnterTransition","ExitTransition","Row","animated","clickable","defaultMinSize","fillMaxWidth","graphicsLayer","tween","duration","useAppTheme","useMemo","Glyph","useHostGuard","jsx","_jsx","jsxs","_jsxs","TURN","durationMillis","d200","easing","ENTER","expandVertically","plus","fadeIn","EXIT","shrinkVertically","fadeOut","WIDE","ROW_HEIGHT","Collapsible","children","expanded","label","onExpandedChange","theme","modifiers","minHeight","turn","rotationZ","horizontalArrangement","verticalAlignment","color","colorString","style","typography","body","name","size","enterTransition","exitTransition","visible"],"sourceRoot":"../../../../src","sources":["molecules/collapsible/collapsible.android.tsx"],"mappings":";;AAAA,SACEA,kBAAkB,EAClBC,GAAG,EACHC,MAAM,EACNC,IAAI,IAAIC,WAAW,EACnBC,eAAe,EACfC,cAAc,EACdC,GAAG,QACE,0BAA0B;AACjC,SACEC,QAAQ,EACRC,SAAS,EACTC,cAAc,EACdC,YAAY,EACZC,aAAa,EACbC,KAAK,QACA,oCAAoC;AAC3C,SAAQC,QAAQ,EAAEC,WAAW,QAAO,mBAAmB;AACvD,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,KAAK,QAAO,sBAAa;AACjC,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C;AACA,MAAMC,IAAI,GAAGV,KAAK,CAAC;EAACW,cAAc,EAAEV,QAAQ,CAACW,IAAI;EAAEC,MAAM,EAAE;AAAe,CAAC,CAAC;;AAE5E;AACA,MAAMC,KAAK,GAAGtB,eAAe,CAACuB,gBAAgB,CAAC,CAAC,CAACC,IAAI,CAACxB,eAAe,CAACyB,MAAM,CAAC,CAAC,CAAC;AAC/E,MAAMC,IAAI,GAAGzB,cAAc,CAAC0B,gBAAgB,CAAC,CAAC,CAACH,IAAI,CAACvB,cAAc,CAAC2B,OAAO,CAAC,CAAC,CAAC;AAE7E,MAAMC,IAAI,GAAG,CAACvB,YAAY,CAAC,CAAC,CAAC;;AAE7B;AACA,MAAMwB,UAAU,GAAG,EAAE;;AAErB;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAiC,GAAGA,CAAC;EAACC,QAAQ;EAAEC,QAAQ;EAAEC,KAAK;EAAEC;AAAkC,CAAC,KAAK;EACpHtB,YAAY,CAAC,aAAa,CAAC;EAC3B,MAAMuB,KAAK,GAAG1B,WAAW,CAAC,CAAC;EAC3B,MAAM2B,SAAS,GAAG1B,OAAO,CACvB,MAAM,CAACL,YAAY,CAAC,CAAC,EAAED,cAAc,CAAC;IAACiC,SAAS,EAAER;EAAU,CAAC,CAAC,EAAE1B,SAAS,CAAC,MAAM+B,gBAAgB,CAAC,CAACF,QAAQ,CAAC,CAAC,CAAC,EAC7G,CAACA,QAAQ,EAAEE,gBAAgB,CAC7B,CAAC;EACD,MAAMI,IAAI,GAAG5B,OAAO,CAAC,MAAM,CAACJ,aAAa,CAAC;IAACiC,SAAS,EAAErC,QAAQ,CAAC8B,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAEf,IAAI;EAAC,CAAC,CAAC,CAAC,EAAE,CAACe,QAAQ,CAAC,CAAC;EAEvG,oBACEhB,KAAA,CAACpB,MAAM;IAACwC,SAAS,EAAER,IAAK;IAAAG,QAAA,gBACtBf,KAAA,CAACf,GAAG;MAACuC,qBAAqB,EAAC,cAAc;MAACJ,SAAS,EAAEA,SAAU;MAACK,iBAAiB,EAAC,QAAQ;MAAAV,QAAA,gBACxFjB,IAAA,CAAChB,WAAW;QAAC4C,KAAK,EAAEP,KAAK,CAACQ,WAAW,CAAC,iBAAiB,CAAE;QAACC,KAAK,EAAET,KAAK,CAACU,UAAU,CAACC,IAAK;QAAAf,QAAA,EACpFE;MAAK,CACK,CAAC,eACdnB,IAAA,CAACnB,GAAG;QAACyC,SAAS,EAAEE,IAAK;QAAAP,QAAA,eACnBjB,IAAA,CAACH,KAAK;UAACoC,IAAI,EAAC,cAAc;UAACC,IAAI,EAAC;QAAK,CAAE;MAAC,CACrC,CAAC;IAAA,CACH,CAAC,eACNlC,IAAA,CAACpB,kBAAkB;MAACuD,eAAe,EAAE5B,KAAM;MAAC6B,cAAc,EAAEzB,IAAK;MAAC0B,OAAO,EAAEnB,QAAS;MAAAD,QAAA,EACjFA;IAAQ,CACS,CAAC;EAAA,CACf,CAAC;AAEb,CAAC","ignoreList":[]}
@@ -4,17 +4,10 @@ import { iconResourceName } from '@hzblj/kara-native';
4
4
  import { TopAppBar } from '@hzblj/kara-native/jetpack-compose';
5
5
  import { useAppTheme } from '@hzblj/kara-theme';
6
6
  import { useMemo } from 'react';
7
- import { StyleSheet } from 'react-native';
8
7
  import { Island } from "../../atoms/island/index.js";
9
8
  import { jsx as _jsx } from "react/jsx-runtime";
10
9
  /** Material's small top app bar. */
11
10
  const BAR_HEIGHT = 64;
12
- const styles = StyleSheet.create({
13
- bar: {
14
- height: BAR_HEIGHT,
15
- width: '100%'
16
- }
17
- });
18
11
  const DEFAULT_LABELS = {
19
12
  back: 'Back',
20
13
  close: 'Close'
@@ -52,9 +45,10 @@ export const NavigationBar = ({
52
45
  const nativeLeadingItems = useMemo(() => leadingItems?.map(toNativeItem), [leadingItems]);
53
46
  const nativeTrailingItems = useMemo(() => trailingItems?.map(toNativeItem), [trailingItems]);
54
47
  return /*#__PURE__*/_jsx(Island, {
48
+ h: BAR_HEIGHT,
55
49
  matchContents: false,
56
- style: styles.bar,
57
50
  testID: testID,
51
+ w: "100%",
58
52
  children: /*#__PURE__*/_jsx(TopAppBar, {
59
53
  fontFamily: font.fontFamily,
60
54
  fontSize: font.fontSize,
@@ -1 +1 @@
1
- {"version":3,"names":["iconResourceName","TopAppBar","useAppTheme","useMemo","StyleSheet","Island","jsx","_jsx","BAR_HEIGHT","styles","create","bar","height","width","DEFAULT_LABELS","back","close","toNativeItem","onPress","testID","item","type","iconName","icon","label","NavigationBar","inverted","leadingItems","title","titleAlignment","titleVisible","trailingItems","theme","font","typography","headline","color","nativeLeadingItems","map","nativeTrailingItems","matchContents","style","children","fontFamily","fontSize","itemColor","titleColor"],"sourceRoot":"../../../../src","sources":["molecules/navigation-bar/navigation-bar.android.tsx"],"mappings":";;AAAA,SAAQA,gBAAgB,QAAO,oBAAoB;AACnD,SAAQC,SAAS,QAA2B,oCAAoC;AAChF,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,UAAU,QAAO,cAAc;AACvC,SAAQC,MAAM,QAAO,6BAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAGzC;AACA,MAAMC,UAAU,GAAG,EAAE;AAErB,MAAMC,MAAM,GAAGL,UAAU,CAACM,MAAM,CAAC;EAC/BC,GAAG,EAAE;IAACC,MAAM,EAAEJ,UAAU;IAAEK,KAAK,EAAE;EAAM;AACzC,CAAC,CAAC;AAEF,MAAMC,cAAc,GAAG;EAACC,IAAI,EAAE,MAAM;EAAEC,KAAK,EAAE;AAAO,CAAU;AAE9D,MAAMC,YAAY,GAAGA,CAAC;EAACC,OAAO;EAAEC,MAAM;EAAE,GAAGC;AAAuB,CAAC,KACjEA,IAAI,CAACC,IAAI,KAAK,MAAM,GAChB;EAACC,QAAQ,EAAEtB,gBAAgB,CAACoB,IAAI,CAACG,IAAI,CAAC;EAAEC,KAAK,EAAEJ,IAAI,CAACI,KAAK;EAAEN,OAAO;EAAEC,MAAM;EAAEE,IAAI,EAAE;AAAM,CAAC,GACzF;EAACG,KAAK,EAAEJ,IAAI,CAACI,KAAK,IAAIV,cAAc,CAACM,IAAI,CAACC,IAAI,CAAC;EAAEH,OAAO;EAAEC,MAAM;EAAEE,IAAI,EAAED,IAAI,CAACC;AAAI,CAAC;;AAExF;AACA,OAAO,MAAMI,aAAqC,GAAGA,CAAC;EACpDC,QAAQ,GAAG,KAAK;EAChBC,YAAY;EACZR,MAAM;EACNS,KAAK;EACLC,cAAc,GAAG,QAAQ;EACzBC,YAAY,GAAG,IAAI;EACnBC;AACkB,CAAC,KAAK;EACxB,MAAMC,KAAK,GAAG9B,WAAW,CAAC,CAAC;EAC3B,MAAM+B,IAAI,GAAGD,KAAK,CAACE,UAAU,CAACC,QAAQ;EACtC,MAAMC,KAAK,GAAGJ,KAAK,CAACI,KAAK,CAACV,QAAQ,GAAG,eAAe,GAAG,iBAAiB,CAAC;EAEzE,MAAMW,kBAAkB,GAAGlC,OAAO,CAAC,MAAMwB,YAAY,EAAEW,GAAG,CAACrB,YAAY,CAAC,EAAE,CAACU,YAAY,CAAC,CAAC;EACzF,MAAMY,mBAAmB,GAAGpC,OAAO,CAAC,MAAM4B,aAAa,EAAEO,GAAG,CAACrB,YAAY,CAAC,EAAE,CAACc,aAAa,CAAC,CAAC;EAE5F,oBACExB,IAAA,CAACF,MAAM;IAACmC,aAAa,EAAE,KAAM;IAACC,KAAK,EAAEhC,MAAM,CAACE,GAAI;IAACQ,MAAM,EAAEA,MAAO;IAAAuB,QAAA,eAC9DnC,IAAA,CAACN,SAAS;MACR0C,UAAU,EAAEV,IAAI,CAACU,UAAW;MAC5BC,QAAQ,EAAEX,IAAI,CAACW,QAAS;MACxBC,SAAS,EAAET,KAAM;MACjBT,YAAY,EAAEU,kBAAmB;MACjCT,KAAK,EAAEA,KAAM;MACbC,cAAc,EAAEA,cAAe;MAC/BiB,UAAU,EAAEV,KAAM;MAClBN,YAAY,EAAEA,YAAa;MAC3BC,aAAa,EAAEQ;IAAoB,CACpC;EAAC,CACI,CAAC;AAEb,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["iconResourceName","TopAppBar","useAppTheme","useMemo","Island","jsx","_jsx","BAR_HEIGHT","DEFAULT_LABELS","back","close","toNativeItem","onPress","testID","item","type","iconName","icon","label","NavigationBar","inverted","leadingItems","title","titleAlignment","titleVisible","trailingItems","theme","font","typography","headline","color","nativeLeadingItems","map","nativeTrailingItems","h","matchContents","w","children","fontFamily","fontSize","itemColor","titleColor"],"sourceRoot":"../../../../src","sources":["molecules/navigation-bar/navigation-bar.android.tsx"],"mappings":";;AAAA,SAAQA,gBAAgB,QAAO,oBAAoB;AACnD,SAAQC,SAAS,QAA2B,oCAAoC;AAChF,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,MAAM,QAAO,6BAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAGzC;AACA,MAAMC,UAAU,GAAG,EAAE;AAErB,MAAMC,cAAc,GAAG;EAACC,IAAI,EAAE,MAAM;EAAEC,KAAK,EAAE;AAAO,CAAU;AAE9D,MAAMC,YAAY,GAAGA,CAAC;EAACC,OAAO;EAAEC,MAAM;EAAE,GAAGC;AAAuB,CAAC,KACjEA,IAAI,CAACC,IAAI,KAAK,MAAM,GAChB;EAACC,QAAQ,EAAEhB,gBAAgB,CAACc,IAAI,CAACG,IAAI,CAAC;EAAEC,KAAK,EAAEJ,IAAI,CAACI,KAAK;EAAEN,OAAO;EAAEC,MAAM;EAAEE,IAAI,EAAE;AAAM,CAAC,GACzF;EAACG,KAAK,EAAEJ,IAAI,CAACI,KAAK,IAAIV,cAAc,CAACM,IAAI,CAACC,IAAI,CAAC;EAAEH,OAAO;EAAEC,MAAM;EAAEE,IAAI,EAAED,IAAI,CAACC;AAAI,CAAC;;AAExF;AACA,OAAO,MAAMI,aAAqC,GAAGA,CAAC;EACpDC,QAAQ,GAAG,KAAK;EAChBC,YAAY;EACZR,MAAM;EACNS,KAAK;EACLC,cAAc,GAAG,QAAQ;EACzBC,YAAY,GAAG,IAAI;EACnBC;AACkB,CAAC,KAAK;EACxB,MAAMC,KAAK,GAAGxB,WAAW,CAAC,CAAC;EAC3B,MAAMyB,IAAI,GAAGD,KAAK,CAACE,UAAU,CAACC,QAAQ;EACtC,MAAMC,KAAK,GAAGJ,KAAK,CAACI,KAAK,CAACV,QAAQ,GAAG,eAAe,GAAG,iBAAiB,CAAC;EAEzE,MAAMW,kBAAkB,GAAG5B,OAAO,CAAC,MAAMkB,YAAY,EAAEW,GAAG,CAACrB,YAAY,CAAC,EAAE,CAACU,YAAY,CAAC,CAAC;EACzF,MAAMY,mBAAmB,GAAG9B,OAAO,CAAC,MAAMsB,aAAa,EAAEO,GAAG,CAACrB,YAAY,CAAC,EAAE,CAACc,aAAa,CAAC,CAAC;EAE5F,oBACEnB,IAAA,CAACF,MAAM;IAAC8B,CAAC,EAAE3B,UAAW;IAAC4B,aAAa,EAAE,KAAM;IAACtB,MAAM,EAAEA,MAAO;IAACuB,CAAC,EAAC,MAAM;IAAAC,QAAA,eACnE/B,IAAA,CAACL,SAAS;MACRqC,UAAU,EAAEX,IAAI,CAACW,UAAW;MAC5BC,QAAQ,EAAEZ,IAAI,CAACY,QAAS;MACxBC,SAAS,EAAEV,KAAM;MACjBT,YAAY,EAAEU,kBAAmB;MACjCT,KAAK,EAAEA,KAAM;MACbC,cAAc,EAAEA,cAAe;MAC/BkB,UAAU,EAAEX,KAAM;MAClBN,YAAY,EAAEA,YAAa;MAC3BC,aAAa,EAAEQ;IAAoB,CACpC;EAAC,CACI,CAAC;AAEb,CAAC","ignoreList":[]}