@hzblj/kara-components 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/lib/module/atoms/activity-indicator/activity-indicator.android.js +6 -1
  3. package/lib/module/atoms/activity-indicator/activity-indicator.android.js.map +1 -1
  4. package/lib/module/atoms/activity-indicator/activity-indicator.ios.js +2 -0
  5. package/lib/module/atoms/activity-indicator/activity-indicator.ios.js.map +1 -1
  6. package/lib/module/atoms/avatar/avatar.js +5 -0
  7. package/lib/module/atoms/avatar/avatar.js.map +1 -1
  8. package/lib/module/atoms/box/box.js +3 -0
  9. package/lib/module/atoms/box/box.js.map +1 -1
  10. package/lib/module/atoms/box/index.js +0 -1
  11. package/lib/module/atoms/box/index.js.map +1 -1
  12. package/lib/module/atoms/button/button-tokens.js +2 -2
  13. package/lib/module/atoms/button/button-tokens.js.map +1 -1
  14. package/lib/module/atoms/button/button.android.js +6 -2
  15. package/lib/module/atoms/button/button.android.js.map +1 -1
  16. package/lib/module/atoms/button/button.ios.js +7 -2
  17. package/lib/module/atoms/button/button.ios.js.map +1 -1
  18. package/lib/module/atoms/card/card.android.js +5 -3
  19. package/lib/module/atoms/card/card.android.js.map +1 -1
  20. package/lib/module/atoms/card/card.ios.js +7 -3
  21. package/lib/module/atoms/card/card.ios.js.map +1 -1
  22. package/lib/module/atoms/checkbox/checkbox.android.js +1 -1
  23. package/lib/module/atoms/checkbox/checkbox.android.js.map +1 -1
  24. package/lib/module/atoms/fab/fab.android.js +9 -1
  25. package/lib/module/atoms/fab/fab.android.js.map +1 -1
  26. package/lib/module/atoms/fab/fab.ios.js +9 -3
  27. package/lib/module/atoms/fab/fab.ios.js.map +1 -1
  28. package/lib/module/atoms/glass-view/glass-view.android.js +1 -1
  29. package/lib/module/atoms/glass-view/glass-view.android.js.map +1 -1
  30. package/lib/module/atoms/h-stack/h-stack.ios.js +5 -3
  31. package/lib/module/atoms/h-stack/h-stack.ios.js.map +1 -1
  32. package/lib/module/atoms/icon-button/icon-button.android.js +9 -0
  33. package/lib/module/atoms/icon-button/icon-button.android.js.map +1 -1
  34. package/lib/module/atoms/icon-button/icon-button.ios.js +9 -2
  35. package/lib/module/atoms/icon-button/icon-button.ios.js.map +1 -1
  36. package/lib/module/atoms/image/image.js +4 -4
  37. package/lib/module/atoms/image/image.js.map +1 -1
  38. package/lib/module/atoms/index.js +1 -0
  39. package/lib/module/atoms/index.js.map +1 -1
  40. package/lib/module/atoms/pressable/pressable.js +75 -27
  41. package/lib/module/atoms/pressable/pressable.js.map +1 -1
  42. package/lib/module/atoms/progress/progress.android.js +7 -0
  43. package/lib/module/atoms/progress/progress.android.js.map +1 -1
  44. package/lib/module/atoms/progress/progress.ios.js +6 -1
  45. package/lib/module/atoms/progress/progress.ios.js.map +1 -1
  46. package/lib/module/atoms/rn-text/rn-text.js +66 -26
  47. package/lib/module/atoms/rn-text/rn-text.js.map +1 -1
  48. package/lib/module/atoms/segmented-control/segmented-control.android.js +1 -1
  49. package/lib/module/atoms/segmented-control/segmented-control.android.js.map +1 -1
  50. package/lib/module/atoms/segmented-control/segmented-control.ios.js +1 -1
  51. package/lib/module/atoms/segmented-control/segmented-control.ios.js.map +1 -1
  52. package/lib/module/atoms/skeleton/skeleton.js +22 -8
  53. package/lib/module/atoms/skeleton/skeleton.js.map +1 -1
  54. package/lib/module/atoms/stagger/index.js +5 -0
  55. package/lib/module/atoms/stagger/index.js.map +1 -0
  56. package/lib/module/atoms/stagger/stagger.js +102 -0
  57. package/lib/module/atoms/stagger/stagger.js.map +1 -0
  58. package/lib/module/atoms/stagger/stagger.types.js +4 -0
  59. package/lib/module/atoms/stagger/stagger.types.js.map +1 -0
  60. package/lib/module/atoms/surface/surface.android.js +5 -3
  61. package/lib/module/atoms/surface/surface.android.js.map +1 -1
  62. package/lib/module/atoms/surface/surface.ios.js +7 -3
  63. package/lib/module/atoms/surface/surface.ios.js.map +1 -1
  64. package/lib/module/atoms/switch/switch.android.js +1 -1
  65. package/lib/module/atoms/switch/switch.android.js.map +1 -1
  66. package/lib/module/atoms/text/text.android.js +5 -3
  67. package/lib/module/atoms/text/text.android.js.map +1 -1
  68. package/lib/module/atoms/text/text.ios.js +6 -4
  69. package/lib/module/atoms/text/text.ios.js.map +1 -1
  70. package/lib/module/atoms/v-stack/v-stack.ios.js +5 -3
  71. package/lib/module/atoms/v-stack/v-stack.ios.js.map +1 -1
  72. package/lib/module/atoms/z-stack/z-stack.ios.js +5 -3
  73. package/lib/module/atoms/z-stack/z-stack.ios.js.map +1 -1
  74. package/lib/module/glyph/glyph.android.js +2 -0
  75. package/lib/module/glyph/glyph.android.js.map +1 -1
  76. package/lib/module/glyph/glyph.ios.js +5 -2
  77. package/lib/module/glyph/glyph.ios.js.map +1 -1
  78. package/lib/module/molecules/collapsible/collapsible.android.js +18 -8
  79. package/lib/module/molecules/collapsible/collapsible.android.js.map +1 -1
  80. package/lib/module/molecules/labeled-content/labeled-content.js +4 -1
  81. package/lib/module/molecules/labeled-content/labeled-content.js.map +1 -1
  82. package/lib/module/molecules/link/link.js +4 -1
  83. package/lib/module/molecules/link/link.js.map +1 -1
  84. package/lib/module/molecules/list-item/list-item.js +4 -1
  85. package/lib/module/molecules/list-item/list-item.js.map +1 -1
  86. package/lib/module/molecules/navigation-bar/navigation-bar.android.js +1 -1
  87. package/lib/module/molecules/navigation-bar/navigation-bar.android.js.map +1 -1
  88. package/lib/module/molecules/navigation-bar/navigation-bar.ios.js +1 -1
  89. package/lib/module/molecules/navigation-bar/navigation-bar.ios.js.map +1 -1
  90. package/lib/module/molecules/rn-list-item/rn-list-item.js +10 -2
  91. package/lib/module/molecules/rn-list-item/rn-list-item.js.map +1 -1
  92. package/lib/module/molecules/scroll-edge-container/scroll-edge-container.android.js +5 -6
  93. package/lib/module/molecules/scroll-edge-container/scroll-edge-container.android.js.map +1 -1
  94. package/lib/module/molecules/stepper/stepper.ios.js +6 -2
  95. package/lib/module/molecules/stepper/stepper.ios.js.map +1 -1
  96. package/lib/module/organisms/fab-menu/fab-menu.android.js +8 -5
  97. package/lib/module/organisms/fab-menu/fab-menu.android.js.map +1 -1
  98. package/lib/module/organisms/fab-menu/fab-menu.ios.js +5 -2
  99. package/lib/module/organisms/fab-menu/fab-menu.ios.js.map +1 -1
  100. package/lib/module/organisms/snackbar/snackbar.js +155 -18
  101. package/lib/module/organisms/snackbar/snackbar.js.map +1 -1
  102. package/lib/module/organisms/swipe-actions/swipe-actions.android.js +1 -1
  103. package/lib/module/organisms/swipe-actions/swipe-actions.android.js.map +1 -1
  104. package/lib/module/use-stack-modifiers.js +10 -8
  105. package/lib/module/use-stack-modifiers.js.map +1 -1
  106. package/lib/typescript/atoms/activity-indicator/activity-indicator.types.d.ts +2 -0
  107. package/lib/typescript/atoms/avatar/avatar.types.d.ts +5 -0
  108. package/lib/typescript/atoms/box/box.d.ts +3 -0
  109. package/lib/typescript/atoms/box/index.d.ts +0 -1
  110. package/lib/typescript/atoms/button/button-tokens.d.ts +1 -1
  111. package/lib/typescript/atoms/button/button.types.d.ts +2 -0
  112. package/lib/typescript/atoms/card/card.types.d.ts +2 -2
  113. package/lib/typescript/atoms/fab/fab.types.d.ts +8 -1
  114. package/lib/typescript/atoms/h-stack/h-stack.types.d.ts +6 -3
  115. package/lib/typescript/atoms/icon-button/icon-button.types.d.ts +7 -0
  116. package/lib/typescript/atoms/image/image.d.ts +2 -2
  117. package/lib/typescript/atoms/index.d.ts +1 -0
  118. package/lib/typescript/atoms/pressable/pressable.types.d.ts +10 -9
  119. package/lib/typescript/atoms/progress/progress.types.d.ts +2 -0
  120. package/lib/typescript/atoms/rn-text/rn-text.types.d.ts +7 -4
  121. package/lib/typescript/atoms/skeleton/skeleton.types.d.ts +3 -2
  122. package/lib/typescript/atoms/stagger/index.d.ts +2 -0
  123. package/lib/typescript/atoms/stagger/stagger.d.ts +2 -0
  124. package/lib/typescript/atoms/stagger/stagger.types.d.ts +32 -0
  125. package/lib/typescript/atoms/surface/surface.types.d.ts +2 -2
  126. package/lib/typescript/atoms/text/text.types.d.ts +2 -2
  127. package/lib/typescript/atoms/v-stack/v-stack.types.d.ts +3 -3
  128. package/lib/typescript/atoms/z-stack/z-stack.types.d.ts +3 -3
  129. package/lib/typescript/glyph/glyph.types.d.ts +2 -0
  130. package/lib/typescript/molecules/labeled-content/labeled-content.types.d.ts +4 -2
  131. package/lib/typescript/molecules/link/link.types.d.ts +2 -1
  132. package/lib/typescript/molecules/list-item/list-item.types.d.ts +5 -3
  133. package/lib/typescript/molecules/stepper/stepper.ios.d.ts +1 -1
  134. package/lib/typescript/organisms/fab-menu/fab-menu.types.d.ts +5 -0
  135. package/lib/typescript/organisms/snackbar/snackbar.types.d.ts +35 -4
  136. package/lib/typescript/use-stack-modifiers.d.ts +6 -5
  137. package/package.json +4 -4
  138. package/src/atoms/activity-indicator/activity-indicator.android.tsx +7 -1
  139. package/src/atoms/activity-indicator/activity-indicator.ios.tsx +9 -1
  140. package/src/atoms/activity-indicator/activity-indicator.types.ts +2 -0
  141. package/src/atoms/avatar/avatar.tsx +5 -1
  142. package/src/atoms/avatar/avatar.types.ts +5 -0
  143. package/src/atoms/box/box.tsx +3 -0
  144. package/src/atoms/box/index.ts +0 -1
  145. package/src/atoms/button/button-tokens.ts +2 -2
  146. package/src/atoms/button/button.android.tsx +5 -3
  147. package/src/atoms/button/button.ios.tsx +10 -2
  148. package/src/atoms/button/button.types.ts +2 -0
  149. package/src/atoms/card/card.android.tsx +6 -4
  150. package/src/atoms/card/card.ios.tsx +7 -3
  151. package/src/atoms/card/card.types.ts +8 -7
  152. package/src/atoms/checkbox/checkbox.android.tsx +1 -1
  153. package/src/atoms/fab/fab.android.tsx +5 -3
  154. package/src/atoms/fab/fab.ios.tsx +8 -4
  155. package/src/atoms/fab/fab.types.ts +8 -1
  156. package/src/atoms/glass-view/glass-view.android.tsx +1 -1
  157. package/src/atoms/h-stack/h-stack.ios.tsx +6 -4
  158. package/src/atoms/h-stack/h-stack.types.ts +17 -13
  159. package/src/atoms/icon-button/icon-button.android.tsx +16 -3
  160. package/src/atoms/icon-button/icon-button.ios.tsx +13 -4
  161. package/src/atoms/icon-button/icon-button.types.ts +7 -0
  162. package/src/atoms/image/image.tsx +3 -3
  163. package/src/atoms/index.ts +1 -0
  164. package/src/atoms/pressable/pressable.tsx +164 -100
  165. package/src/atoms/pressable/pressable.types.ts +32 -29
  166. package/src/atoms/progress/progress.android.tsx +5 -3
  167. package/src/atoms/progress/progress.ios.tsx +5 -2
  168. package/src/atoms/progress/progress.types.ts +2 -0
  169. package/src/atoms/rn-text/rn-text.tsx +101 -32
  170. package/src/atoms/rn-text/rn-text.types.ts +7 -3
  171. package/src/atoms/segmented-control/segmented-control.android.tsx +1 -1
  172. package/src/atoms/segmented-control/segmented-control.ios.tsx +1 -1
  173. package/src/atoms/skeleton/skeleton.tsx +20 -6
  174. package/src/atoms/skeleton/skeleton.types.ts +3 -2
  175. package/src/atoms/stagger/index.ts +2 -0
  176. package/src/atoms/stagger/stagger.tsx +98 -0
  177. package/src/atoms/stagger/stagger.types.ts +35 -0
  178. package/src/atoms/surface/surface.android.tsx +6 -4
  179. package/src/atoms/surface/surface.ios.tsx +7 -3
  180. package/src/atoms/surface/surface.types.ts +10 -9
  181. package/src/atoms/switch/switch.android.tsx +1 -1
  182. package/src/atoms/text/text.android.tsx +6 -4
  183. package/src/atoms/text/text.ios.tsx +6 -4
  184. package/src/atoms/text/text.types.ts +23 -22
  185. package/src/atoms/v-stack/v-stack.ios.tsx +6 -4
  186. package/src/atoms/v-stack/v-stack.types.ts +17 -16
  187. package/src/atoms/z-stack/z-stack.ios.tsx +6 -4
  188. package/src/atoms/z-stack/z-stack.types.ts +15 -14
  189. package/src/glyph/glyph.android.tsx +14 -2
  190. package/src/glyph/glyph.ios.tsx +13 -3
  191. package/src/glyph/glyph.types.ts +2 -0
  192. package/src/molecules/collapsible/collapsible.android.tsx +27 -7
  193. package/src/molecules/labeled-content/labeled-content.tsx +12 -1
  194. package/src/molecules/labeled-content/labeled-content.types.ts +4 -2
  195. package/src/molecules/link/link.tsx +2 -1
  196. package/src/molecules/link/link.types.ts +2 -1
  197. package/src/molecules/list-item/list-item.tsx +20 -2
  198. package/src/molecules/list-item/list-item.types.ts +5 -3
  199. package/src/molecules/navigation-bar/navigation-bar.android.tsx +1 -1
  200. package/src/molecules/navigation-bar/navigation-bar.ios.tsx +1 -1
  201. package/src/molecules/rn-list-item/rn-list-item.tsx +18 -3
  202. package/src/molecules/scroll-edge-container/scroll-edge-container.android.tsx +5 -4
  203. package/src/molecules/stepper/stepper.ios.tsx +8 -2
  204. package/src/organisms/fab-menu/fab-menu.android.tsx +9 -5
  205. package/src/organisms/fab-menu/fab-menu.ios.tsx +6 -2
  206. package/src/organisms/fab-menu/fab-menu.types.ts +5 -0
  207. package/src/organisms/snackbar/snackbar.tsx +125 -21
  208. package/src/organisms/snackbar/snackbar.types.ts +38 -4
  209. package/src/organisms/swipe-actions/swipe-actions.android.tsx +1 -1
  210. package/src/use-stack-modifiers.ts +20 -7
  211. package/lib/module/atoms/box/a-box.js +0 -6
  212. package/lib/module/atoms/box/a-box.js.map +0 -1
  213. package/lib/typescript/atoms/box/a-box.d.ts +0 -49
  214. package/src/atoms/box/a-box.ts +0 -5
@@ -1,26 +1,40 @@
1
1
  "use strict";
2
2
 
3
- import { duration, opacity } from '@hzblj/kara-theme';
3
+ import { timing } from '@hzblj/kara-sx';
4
+ import { duration, opacity, useReducedMotion } from '@hzblj/kara-theme';
4
5
  import { useEffect } from 'react';
5
- import { useAnimatedStyle, useSharedValue, withRepeat, withTiming } from 'react-native-reanimated';
6
- import { ABox } from "../box/index.js";
6
+ import { cancelAnimation, useAnimatedStyle, useSharedValue, withRepeat, withTiming } from 'react-native-reanimated';
7
+ import { Box } from "../box/index.js";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
+ /** A breath, not a transition, so it sits off the scale: `slow` twice each way, at constant speed. */
10
+ const PULSE = {
11
+ ...timing('slow', 'linear'),
12
+ duration: duration.slow * 2
13
+ };
8
14
  export const Skeleton = ({
9
15
  borderRadius = 'small',
10
16
  h,
11
17
  testID,
12
18
  w
13
19
  }) => {
20
+ const reduced = useReducedMotion();
14
21
  const pulse = useSharedValue(opacity.o40);
22
+
23
+ // With motion reduced it holds still, halfway between the two ends of the pulse.
15
24
  useEffect(() => {
16
- pulse.value = withRepeat(withTiming(opacity.o100, {
17
- duration: duration.d800
18
- }), -1, true);
19
- }, [pulse]);
25
+ if (reduced) {
26
+ cancelAnimation(pulse);
27
+ pulse.value = opacity.o70;
28
+ return;
29
+ }
30
+ pulse.value = opacity.o40;
31
+ pulse.value = withRepeat(withTiming(opacity.o100, PULSE), -1, true);
32
+ }, [pulse, reduced]);
20
33
  const rStyle = useAnimatedStyle(() => ({
21
34
  opacity: pulse.value
22
35
  }), []);
23
- return /*#__PURE__*/_jsx(ABox, {
36
+ return /*#__PURE__*/_jsx(Box, {
37
+ "aria-hidden": true,
24
38
  bg: "fill.quaternary",
25
39
  borderRadius: borderRadius,
26
40
  h: h,
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["timing","duration","opacity","useReducedMotion","useEffect","cancelAnimation","useAnimatedStyle","useSharedValue","withRepeat","withTiming","Box","jsx","_jsx","PULSE","slow","Skeleton","borderRadius","h","testID","w","reduced","pulse","o40","value","o70","o100","rStyle","bg","style","wide","undefined"],"sourceRoot":"../../../../src","sources":["atoms/skeleton/skeleton.tsx"],"mappings":";;AAAA,SAAQA,MAAM,QAAO,gBAAgB;AACrC,SAAQC,QAAQ,EAAEC,OAAO,EAAEC,gBAAgB,QAAO,mBAAmB;AACrE,SAAQC,SAAS,QAAO,OAAO;AAC/B,SAAQC,eAAe,EAAEC,gBAAgB,EAAEC,cAAc,EAAEC,UAAU,EAAEC,UAAU,QAAO,yBAAyB;AAEjH,SAAQC,GAAG,QAAO,iBAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG1B;AACA,MAAMC,KAAK,GAAG;EAAC,GAAGb,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;EAAEC,QAAQ,EAAEA,QAAQ,CAACa,IAAI,GAAG;AAAC,CAAC;AAExE,OAAO,MAAMC,QAA2B,GAAGA,CAAC;EAACC,YAAY,GAAG,OAAO;EAAEC,CAAC;EAAEC,MAAM;EAAEC;AAAgB,CAAC,KAAK;EACpG,MAAMC,OAAO,GAAGjB,gBAAgB,CAAC,CAAC;EAClC,MAAMkB,KAAK,GAAGd,cAAc,CAASL,OAAO,CAACoB,GAAG,CAAC;;EAEjD;EACAlB,SAAS,CAAC,MAAM;IACd,IAAIgB,OAAO,EAAE;MACXf,eAAe,CAACgB,KAAK,CAAC;MACtBA,KAAK,CAACE,KAAK,GAAGrB,OAAO,CAACsB,GAAG;MACzB;IACF;IAEAH,KAAK,CAACE,KAAK,GAAGrB,OAAO,CAACoB,GAAG;IACzBD,KAAK,CAACE,KAAK,GAAGf,UAAU,CAACC,UAAU,CAACP,OAAO,CAACuB,IAAI,EAAEZ,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;EACrE,CAAC,EAAE,CAACQ,KAAK,EAAED,OAAO,CAAC,CAAC;EAEpB,MAAMM,MAAM,GAAGpB,gBAAgB,CAAC,OAAO;IAACJ,OAAO,EAAEmB,KAAK,CAACE;EAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EAEnE,oBACEX,IAAA,CAACF,GAAG;IACF,mBAAW;IACXiB,EAAE,EAAC,iBAAiB;IACpBX,YAAY,EAAEA,YAAa;IAC3BC,CAAC,EAAEA,CAAE;IACLW,KAAK,EAAEF,MAAO;IACdR,MAAM,EAAEA,MAAO;IACfC,CAAC,EAAEA,CAAE;IACLU,IAAI,EAAEV,CAAC,KAAKW;EAAU,CACvB,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from "./stagger.js";
4
+ export * from "./stagger.types.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["atoms/stagger/index.ts"],"mappings":";;AAAA,cAAc,cAAW;AACzB,cAAc,oBAAiB","ignoreList":[]}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ import { isMotionComponent } from '@hzblj/kara-sx';
4
+ import { duration } from '@hzblj/kara-theme';
5
+ import { Children, cloneElement, isValidElement, useLayoutEffect, useRef } from 'react';
6
+ import { Box } from "../box/index.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const asConfig = motion => typeof motion === 'string' ? {
9
+ preset: motion
10
+ } : motion;
11
+
12
+ /**
13
+ * The stagger's preset, or the child's own with the delay added: a child that names its look keeps it and only takes
14
+ * its turn. Reanimated's own builder is the child's, untouched, since adding a delay to one mutates it.
15
+ */
16
+ const withDelay = (own, fallback, delay) => {
17
+ if (own === undefined) {
18
+ return {
19
+ ...fallback,
20
+ delay: (fallback.delay ?? 0) + delay
21
+ };
22
+ }
23
+ if (typeof own === 'string') {
24
+ return {
25
+ delay,
26
+ preset: own
27
+ };
28
+ }
29
+ return typeof own === 'object' && own !== null && 'preset' in own ? {
30
+ ...own,
31
+ delay: (own.delay ?? 0) + delay
32
+ } : own;
33
+ };
34
+ export const Stagger = ({
35
+ children,
36
+ entering = 'fadeUp',
37
+ exiting,
38
+ from = 'start',
39
+ interval = 'stagger',
40
+ layout,
41
+ testID,
42
+ ...sx
43
+ }) => {
44
+ // The children that have arrived already. Only the ones new in this render take turns, so a list that grows by a
45
+ // page staggers the page, and an item added on its own arrives at once instead of after everything above it.
46
+ const arrived = useRef(new Set());
47
+ const items = Children.toArray(children);
48
+ const turns = new Map();
49
+ for (const item of items) {
50
+ if (/*#__PURE__*/isValidElement(item) && item.key !== null && !arrived.current.has(item.key)) {
51
+ turns.set(item.key, turns.size);
52
+ }
53
+ }
54
+
55
+ // Marked once committed: a render React throws away must not use up a child's turn.
56
+ useLayoutEffect(() => {
57
+ for (const key of turns.keys()) {
58
+ arrived.current.add(key);
59
+ }
60
+ });
61
+ const step = duration[interval];
62
+ const enter = asConfig(entering);
63
+ const leave = exiting === undefined ? undefined : asConfig(exiting);
64
+ const delayOf = key => {
65
+ const turn = key === null ? undefined : turns.get(key);
66
+ if (turn === undefined) {
67
+ return 0;
68
+ }
69
+ return (from === 'start' ? turn : turns.size - 1 - turn) * step;
70
+ };
71
+ return (
72
+ /*#__PURE__*/
73
+ // With `layout` the container moves and resizes with its children, so what holds it can follow.
74
+ _jsx(Box, {
75
+ layout: layout,
76
+ testID: testID,
77
+ ...sx,
78
+ children: items.map(item => {
79
+ if (! /*#__PURE__*/isValidElement(item)) {
80
+ return item;
81
+ }
82
+ const delay = delayOf(item.key);
83
+
84
+ // A component that takes the motion props gets them directly, with no view added around it.
85
+ if (isMotionComponent(item.type)) {
86
+ return /*#__PURE__*/cloneElement(item, {
87
+ entering: withDelay(item.props.entering, enter, delay),
88
+ exiting: item.props.exiting ?? leave,
89
+ layout: item.props.layout ?? layout
90
+ });
91
+ }
92
+ return /*#__PURE__*/_jsx(Box, {
93
+ entering: withDelay(undefined, enter, delay),
94
+ exiting: leave,
95
+ layout: layout,
96
+ children: item
97
+ }, item.key);
98
+ })
99
+ })
100
+ );
101
+ };
102
+ //# sourceMappingURL=stagger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isMotionComponent","duration","Children","cloneElement","isValidElement","useLayoutEffect","useRef","Box","jsx","_jsx","asConfig","motion","preset","withDelay","own","fallback","delay","undefined","Stagger","children","entering","exiting","from","interval","layout","testID","sx","arrived","Set","items","toArray","turns","Map","item","key","current","has","set","size","keys","add","step","enter","leave","delayOf","turn","get","map","type","props"],"sourceRoot":"../../../../src","sources":["atoms/stagger/stagger.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=stagger.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["atoms/stagger/stagger.types.ts"],"mappings":"","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { Column, Surface as ComposeSurface, Shape } 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
+ import { splitAccessibility, useAccessibilityModifiers, useSxModifiers } from '@hzblj/kara-sx';
6
6
  import { radii, useAppTheme } from '@hzblj/kara-theme';
7
7
  import { useMemo } from 'react';
8
8
  import { useHostGuard } from "../../host-context.js";
@@ -30,15 +30,17 @@ export const Surface = ({
30
30
  px,
31
31
  py,
32
32
  testID,
33
- ...sx
33
+ ...props
34
34
  }) => {
35
35
  useHostGuard('Surface');
36
+ const [accessibility, sx] = splitAccessibility(props);
36
37
  const theme = useAppTheme();
37
38
  const sxModifiers = useSxModifiers({
38
39
  ...sx,
39
40
  bg: undefined
40
41
  });
41
- const modifiers = useMemo(() => testID ? [...sxModifiers, testIdModifier(testID)] : sxModifiers, [sxModifiers, testID]);
42
+ const accessibilityModifiers = useAccessibilityModifiers(accessibility);
43
+ const modifiers = useMemo(() => [...sxModifiers, ...(testID ? [testIdModifier(testID)] : []), ...accessibilityModifiers], [accessibilityModifiers, sxModifiers, testID]);
42
44
  const contentModifiers = useSxModifiers({
43
45
  p,
44
46
  pb,
@@ -1 +1 @@
1
- {"version":3,"names":["Column","Surface","ComposeSurface","Shape","testID","testIdModifier","useSxModifiers","radii","useAppTheme","useMemo","useHostGuard","jsx","_jsx","cornerRadii","radius","bottomEnd","bottomStart","topEnd","topStart","children","glass","p","pb","pl","pr","pt","px","py","sx","theme","sxModifiers","bg","undefined","modifiers","contentModifiers","wide","color","contentColor","shape","RoundedCorner","borderRadius","tonalElevation"],"sourceRoot":"../../../../src","sources":["atoms/surface/surface.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,EAAEC,OAAO,IAAIC,cAAc,EAAEC,KAAK,QAAO,0BAA0B;AACjF,SAAQC,MAAM,IAAIC,cAAc,QAAO,oCAAoC;AAC3E,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,KAAK,EAAEC,WAAW,QAAO,mBAAmB;AACpD,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,MAAMC,WAAW,GAAIC,MAAc,KAAM;EAACC,SAAS,EAAED,MAAM;EAAEE,WAAW,EAAEF,MAAM;EAAEG,MAAM,EAAEH,MAAM;EAAEI,QAAQ,EAAEJ;AAAM,CAAC,CAAC;;AAEpH;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMb,OAAyB,GAAGA,CAAC;EACxCkB,QAAQ;EACRC,KAAK,GAAG,KAAK;EACbC,CAAC,GAAG,KAAK;EACTC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFvB,MAAM;EACN,GAAGwB;AACS,CAAC,KAAK;EAClBlB,YAAY,CAAC,SAAS,CAAC;EAEvB,MAAMmB,KAAK,GAAGrB,WAAW,CAAC,CAAC;EAC3B,MAAMsB,WAAW,GAAGxB,cAAc,CAAC;IAAC,GAAGsB,EAAE;IAAEG,EAAE,EAAEC;EAAS,CAAC,CAAC;EAC1D,MAAMC,SAAS,GAAGxB,OAAO,CACvB,MAAOL,MAAM,GAAG,CAAC,GAAG0B,WAAW,EAAEzB,cAAc,CAACD,MAAM,CAAC,CAAC,GAAG0B,WAAY,EACvE,CAACA,WAAW,EAAE1B,MAAM,CACtB,CAAC;EACD,MAAM8B,gBAAgB,GAAG5B,cAAc,CAAC;IAACe,CAAC;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEQ,IAAI,EAAEP,EAAE,CAACO;EAAI,CAAC,CAAC;EAEnF,oBACEvB,IAAA,CAACV,cAAc;IACbkC,KAAK,EAAEP,KAAK,CAACO,KAAK,CAACR,EAAE,CAACG,EAAE,IAAI,iBAAiB,CAAE;IAC/CM,YAAY,EAAER,KAAK,CAACO,KAAK,CAAC,iBAAiB,CAAE;IAC7CH,SAAS,EAAEA,SAAU;IACrBK,KAAK,EAAEnC,KAAK,CAACoC,aAAa,CAAC;MAAC1B,WAAW,EAAEA,WAAW,CAACN,KAAK,CAACqB,EAAE,CAACY,YAAY,IAAI,OAAO,CAAC;IAAC,CAAC,CAAE;IAC1FC,cAAc,EAAErB,KAAK,GAAG,CAAC,GAAG,CAAE;IAAAD,QAAA,eAE9BP,IAAA,CAACZ,MAAM;MAACiC,SAAS,EAAEC,gBAAiB;MAAAf,QAAA,EAAEA;IAAQ,CAAS;EAAC,CAC1C,CAAC;AAErB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Column","Surface","ComposeSurface","Shape","testID","testIdModifier","splitAccessibility","useAccessibilityModifiers","useSxModifiers","radii","useAppTheme","useMemo","useHostGuard","jsx","_jsx","cornerRadii","radius","bottomEnd","bottomStart","topEnd","topStart","children","glass","p","pb","pl","pr","pt","px","py","props","accessibility","sx","theme","sxModifiers","bg","undefined","accessibilityModifiers","modifiers","contentModifiers","wide","color","contentColor","shape","RoundedCorner","borderRadius","tonalElevation"],"sourceRoot":"../../../../src","sources":["atoms/surface/surface.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,EAAEC,OAAO,IAAIC,cAAc,EAAEC,KAAK,QAAO,0BAA0B;AACjF,SAAQC,MAAM,IAAIC,cAAc,QAAO,oCAAoC;AAC3E,SAAQC,kBAAkB,EAAEC,yBAAyB,EAAEC,cAAc,QAAO,gBAAgB;AAC5F,SAAQC,KAAK,EAAEC,WAAW,QAAO,mBAAmB;AACpD,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,MAAMC,WAAW,GAAIC,MAAc,KAAM;EAACC,SAAS,EAAED,MAAM;EAAEE,WAAW,EAAEF,MAAM;EAAEG,MAAM,EAAEH,MAAM;EAAEI,QAAQ,EAAEJ;AAAM,CAAC,CAAC;;AAEpH;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMf,OAAyB,GAAGA,CAAC;EACxCoB,QAAQ;EACRC,KAAK,GAAG,KAAK;EACbC,CAAC,GAAG,KAAK;EACTC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFC,EAAE;EACFzB,MAAM;EACN,GAAG0B;AACS,CAAC,KAAK;EAClBlB,YAAY,CAAC,SAAS,CAAC;EACvB,MAAM,CAACmB,aAAa,EAAEC,EAAE,CAAC,GAAG1B,kBAAkB,CAACwB,KAAK,CAAC;EAErD,MAAMG,KAAK,GAAGvB,WAAW,CAAC,CAAC;EAC3B,MAAMwB,WAAW,GAAG1B,cAAc,CAAC;IAAC,GAAGwB,EAAE;IAAEG,EAAE,EAAEC;EAAS,CAAC,CAAC;EAC1D,MAAMC,sBAAsB,GAAG9B,yBAAyB,CAACwB,aAAa,CAAC;EACvE,MAAMO,SAAS,GAAG3B,OAAO,CACvB,MAAM,CAAC,GAAGuB,WAAW,EAAE,IAAI9B,MAAM,GAAG,CAACC,cAAc,CAACD,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAGiC,sBAAsB,CAAC,EAC9F,CAACA,sBAAsB,EAAEH,WAAW,EAAE9B,MAAM,CAC9C,CAAC;EACD,MAAMmC,gBAAgB,GAAG/B,cAAc,CAAC;IAACe,CAAC;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEW,IAAI,EAAER,EAAE,CAACQ;EAAI,CAAC,CAAC;EAEnF,oBACE1B,IAAA,CAACZ,cAAc;IACbuC,KAAK,EAAER,KAAK,CAACQ,KAAK,CAACT,EAAE,CAACG,EAAE,IAAI,iBAAiB,CAAE;IAC/CO,YAAY,EAAET,KAAK,CAACQ,KAAK,CAAC,iBAAiB,CAAE;IAC7CH,SAAS,EAAEA,SAAU;IACrBK,KAAK,EAAExC,KAAK,CAACyC,aAAa,CAAC;MAAC7B,WAAW,EAAEA,WAAW,CAACN,KAAK,CAACuB,EAAE,CAACa,YAAY,IAAI,OAAO,CAAC;IAAC,CAAC,CAAE;IAC1FC,cAAc,EAAExB,KAAK,GAAG,CAAC,GAAG,CAAE;IAAAD,QAAA,eAE9BP,IAAA,CAACd,MAAM;MAACsC,SAAS,EAAEC,gBAAiB;MAAAlB,QAAA,EAAEA;IAAQ,CAAS;EAAC,CAC1C,CAAC;AAErB,CAAC","ignoreList":[]}
@@ -1,24 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  import { GlassEffectContainer, VStack } from '@expo/ui/swift-ui';
4
- import { useSxModifiers } from '@hzblj/kara-sx';
4
+ import { splitAccessibility, useAccessibilityModifiers, useSxModifiers } from '@hzblj/kara-sx';
5
+ import { useMemo } from 'react';
5
6
  import { useHostGuard } from "../../host-context.js";
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
8
  export const Surface = ({
8
9
  children,
9
10
  glass = false,
10
11
  testID,
11
- ...sx
12
+ ...props
12
13
  }) => {
13
14
  useHostGuard('Surface');
15
+ const [accessibility, sx] = splitAccessibility(props);
14
16
 
15
17
  // `surface.primary` unless told otherwise, as Material's `Surface` is on Android — without it a plain one drew nothing.
16
- const modifiers = useSxModifiers({
18
+ const sxModifiers = useSxModifiers({
17
19
  bg: 'surface.primary',
18
20
  borderRadius: 'large',
19
21
  p: 's16',
20
22
  ...sx
21
23
  });
24
+ const accessibilityModifiers = useAccessibilityModifiers(accessibility);
25
+ const modifiers = useMemo(() => [...sxModifiers, ...accessibilityModifiers], [accessibilityModifiers, sxModifiers]);
22
26
  const content = /*#__PURE__*/_jsx(VStack, {
23
27
  alignment: "leading",
24
28
  modifiers: modifiers,
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["GlassEffectContainer","VStack","splitAccessibility","useAccessibilityModifiers","useSxModifiers","useMemo","useHostGuard","jsx","_jsx","Surface","children","glass","testID","props","accessibility","sx","sxModifiers","bg","borderRadius","p","accessibilityModifiers","modifiers","content","alignment"],"sourceRoot":"../../../../src","sources":["atoms/surface/surface.ios.tsx"],"mappings":";;AAAA,SAAQA,oBAAoB,EAAEC,MAAM,QAAO,mBAAmB;AAC9D,SAAQC,kBAAkB,EAAEC,yBAAyB,EAAEC,cAAc,QAAO,gBAAgB;AAC5F,SAAQC,OAAO,QAAO,OAAO;AAC7B,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;AAAmB,CAAC,KAAK;EACtGP,YAAY,CAAC,SAAS,CAAC;EACvB,MAAM,CAACQ,aAAa,EAAEC,EAAE,CAAC,GAAGb,kBAAkB,CAACW,KAAK,CAAC;;EAErD;EACA,MAAMG,WAAW,GAAGZ,cAAc,CAAC;IAACa,EAAE,EAAE,iBAAiB;IAAEC,YAAY,EAAE,OAAO;IAAEC,CAAC,EAAE,KAAK;IAAE,GAAGJ;EAAE,CAAC,CAAC;EACnG,MAAMK,sBAAsB,GAAGjB,yBAAyB,CAACW,aAAa,CAAC;EACvE,MAAMO,SAAS,GAAGhB,OAAO,CAAC,MAAM,CAAC,GAAGW,WAAW,EAAE,GAAGI,sBAAsB,CAAC,EAAE,CAACA,sBAAsB,EAAEJ,WAAW,CAAC,CAAC;EACnH,MAAMM,OAAO,gBACXd,IAAA,CAACP,MAAM;IAACsB,SAAS,EAAC,SAAS;IAACF,SAAS,EAAEA,SAAU;IAACT,MAAM,EAAEA,MAAO;IAAAF,QAAA,EAC9DA;EAAQ,CACH,CACT;EAED,IAAI,CAACC,KAAK,EAAE;IACV,OAAOW,OAAO;EAChB;EAEA,oBAAOd,IAAA,CAACR,oBAAoB;IAAAU,QAAA,EAAEY;EAAO,CAAuB,CAAC;AAC/D,CAAC","ignoreList":[]}
@@ -32,7 +32,7 @@ export const Switch = ({
32
32
  const control = /*#__PURE__*/_jsx(ComposeSwitch, {
33
33
  colors: {
34
34
  checkedBorderColor: theme.color('fill.accent.primary'),
35
- checkedThumbColor: theme.color('content.on.bg'),
35
+ checkedThumbColor: theme.color('content.on.accent'),
36
36
  checkedTrackColor: theme.color('fill.accent.primary')
37
37
  },
38
38
  enabled: !disabled,
@@ -1 +1 @@
1
- {"version":3,"names":["Switch","ComposeSwitch","Row","Text","clickable","fillMaxWidth","useAppTheme","useCallback","useMemo","haptics","useHostGuard","jsx","_jsx","jsxs","_jsxs","NOOP","undefined","disabled","label","onValueChange","value","theme","toggle","next","play","rowModifiers","control","colors","checkedBorderColor","color","checkedThumbColor","checkedTrackColor","enabled","onCheckedChange","horizontalArrangement","modifiers","verticalAlignment","children","colorString","style","typography","body"],"sourceRoot":"../../../../src","sources":["atoms/switch/switch.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,IAAIC,aAAa,EAAEC,GAAG,EAAEC,IAAI,QAAO,0BAA0B;AAC3E,SAAQC,SAAS,EAAEC,YAAY,QAAO,oCAAoC;AAC1E,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,WAAW,EAAEC,OAAO,QAAO,OAAO;AAE1C,SAAQC,OAAO,QAAO,wBAAe;AACrC,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C;AACA,MAAMC,IAAI,GAAGA,CAAA,KAAMC,SAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMhB,MAAuB,GAAGA,CAAC;EAACiB,QAAQ,GAAG,KAAK;EAAEC,KAAK;EAAEC,aAAa;EAAEC;AAAkB,CAAC,KAAK;EACvGV,YAAY,CAAC,QAAQ,CAAC;EACtB,MAAMW,KAAK,GAAGf,WAAW,CAAC,CAAC;EAC3B,MAAMgB,MAAM,GAAGf,WAAW,CACvBgB,IAAa,IAAK;IACjBd,OAAO,CAACe,IAAI,CAACD,IAAI,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7CJ,aAAa,GAAGI,IAAI,CAAC;EACvB,CAAC,EACD,CAACJ,aAAa,CAChB,CAAC;EACD,MAAMM,YAAY,GAAGjB,OAAO,CAC1B,MAAOS,QAAQ,IAAI,CAACE,aAAa,GAAG,CAACd,YAAY,CAAC,CAAC,CAAC,GAAG,CAACA,YAAY,CAAC,CAAC,EAAED,SAAS,CAAC,MAAMkB,MAAM,CAAC,CAACF,KAAK,CAAC,CAAC,CAAE,EACzG,CAACH,QAAQ,EAAEE,aAAa,EAAEG,MAAM,EAAEF,KAAK,CACzC,CAAC;EACD,MAAMM,OAAO,gBACXd,IAAA,CAACX,aAAa;IACZ0B,MAAM,EAAE;MACNC,kBAAkB,EAAEP,KAAK,CAACQ,KAAK,CAAC,qBAAqB,CAAC;MACtDC,iBAAiB,EAAET,KAAK,CAACQ,KAAK,CAAC,eAAe,CAAC;MAC/CE,iBAAiB,EAAEV,KAAK,CAACQ,KAAK,CAAC,qBAAqB;IACtD,CAAE;IACFG,OAAO,EAAE,CAACf,QAAS;IACnBgB,eAAe,EAAEd,aAAa,GAAGG,MAAM,GAAGP,IAAK;IAC/CK,KAAK,EAAEA;EAAM,CACd,CACF;EAED,IAAI,CAACF,KAAK,EAAE;IACV,OAAOQ,OAAO;EAChB;EAEA,oBACEZ,KAAA,CAACZ,GAAG;IAACgC,qBAAqB,EAAC,cAAc;IAACC,SAAS,EAAEV,YAAa;IAACW,iBAAiB,EAAC,QAAQ;IAAAC,QAAA,gBAC3FzB,IAAA,CAACT,IAAI;MAAC0B,KAAK,EAAER,KAAK,CAACiB,WAAW,CAACrB,QAAQ,GAAG,kBAAkB,GAAG,iBAAiB,CAAE;MAACsB,KAAK,EAAElB,KAAK,CAACmB,UAAU,CAACC,IAAK;MAAAJ,QAAA,EAC7GnB;IAAK,CACF,CAAC,EACNQ,OAAO;EAAA,CACL,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Switch","ComposeSwitch","Row","Text","clickable","fillMaxWidth","useAppTheme","useCallback","useMemo","haptics","useHostGuard","jsx","_jsx","jsxs","_jsxs","NOOP","undefined","disabled","label","onValueChange","value","theme","toggle","next","play","rowModifiers","control","colors","checkedBorderColor","color","checkedThumbColor","checkedTrackColor","enabled","onCheckedChange","horizontalArrangement","modifiers","verticalAlignment","children","colorString","style","typography","body"],"sourceRoot":"../../../../src","sources":["atoms/switch/switch.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,IAAIC,aAAa,EAAEC,GAAG,EAAEC,IAAI,QAAO,0BAA0B;AAC3E,SAAQC,SAAS,EAAEC,YAAY,QAAO,oCAAoC;AAC1E,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,WAAW,EAAEC,OAAO,QAAO,OAAO;AAE1C,SAAQC,OAAO,QAAO,wBAAe;AACrC,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C;AACA,MAAMC,IAAI,GAAGA,CAAA,KAAMC,SAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMhB,MAAuB,GAAGA,CAAC;EAACiB,QAAQ,GAAG,KAAK;EAAEC,KAAK;EAAEC,aAAa;EAAEC;AAAkB,CAAC,KAAK;EACvGV,YAAY,CAAC,QAAQ,CAAC;EACtB,MAAMW,KAAK,GAAGf,WAAW,CAAC,CAAC;EAC3B,MAAMgB,MAAM,GAAGf,WAAW,CACvBgB,IAAa,IAAK;IACjBd,OAAO,CAACe,IAAI,CAACD,IAAI,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7CJ,aAAa,GAAGI,IAAI,CAAC;EACvB,CAAC,EACD,CAACJ,aAAa,CAChB,CAAC;EACD,MAAMM,YAAY,GAAGjB,OAAO,CAC1B,MAAOS,QAAQ,IAAI,CAACE,aAAa,GAAG,CAACd,YAAY,CAAC,CAAC,CAAC,GAAG,CAACA,YAAY,CAAC,CAAC,EAAED,SAAS,CAAC,MAAMkB,MAAM,CAAC,CAACF,KAAK,CAAC,CAAC,CAAE,EACzG,CAACH,QAAQ,EAAEE,aAAa,EAAEG,MAAM,EAAEF,KAAK,CACzC,CAAC;EACD,MAAMM,OAAO,gBACXd,IAAA,CAACX,aAAa;IACZ0B,MAAM,EAAE;MACNC,kBAAkB,EAAEP,KAAK,CAACQ,KAAK,CAAC,qBAAqB,CAAC;MACtDC,iBAAiB,EAAET,KAAK,CAACQ,KAAK,CAAC,mBAAmB,CAAC;MACnDE,iBAAiB,EAAEV,KAAK,CAACQ,KAAK,CAAC,qBAAqB;IACtD,CAAE;IACFG,OAAO,EAAE,CAACf,QAAS;IACnBgB,eAAe,EAAEd,aAAa,GAAGG,MAAM,GAAGP,IAAK;IAC/CK,KAAK,EAAEA;EAAM,CACd,CACF;EAED,IAAI,CAACF,KAAK,EAAE;IACV,OAAOQ,OAAO;EAChB;EAEA,oBACEZ,KAAA,CAACZ,GAAG;IAACgC,qBAAqB,EAAC,cAAc;IAACC,SAAS,EAAEV,YAAa;IAACW,iBAAiB,EAAC,QAAQ;IAAAC,QAAA,gBAC3FzB,IAAA,CAACT,IAAI;MAAC0B,KAAK,EAAER,KAAK,CAACiB,WAAW,CAACrB,QAAQ,GAAG,kBAAkB,GAAG,iBAAiB,CAAE;MAACsB,KAAK,EAAElB,KAAK,CAACmB,UAAU,CAACC,IAAK;MAAAJ,QAAA,EAC7GnB;IAAK,CACF,CAAC,EACNQ,OAAO;EAAA,CACL,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -2,7 +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
+ import { splitAccessibility, useAccessibilityModifiers, useSxModifiers } from '@hzblj/kara-sx';
6
6
  import { useAppTheme } from '@hzblj/kara-theme';
7
7
  import { useMemo } from 'react';
8
8
  import { useHostGuard } from "../../host-context.js";
@@ -28,13 +28,15 @@ export const Text = ({
28
28
  testID,
29
29
  transform,
30
30
  variant = 'body',
31
- ...sx
31
+ ...props
32
32
  }) => {
33
33
  useHostGuard('Text');
34
34
  const theme = useAppTheme();
35
35
  const style = theme.typography[variant];
36
+ const [accessibility, sx] = splitAccessibility(props);
36
37
  const sxModifiers = useSxModifiers(sx);
37
- const modifiers = useMemo(() => testID ? [...sxModifiers, testIdModifier(testID)] : sxModifiers, [sxModifiers, testID]);
38
+ const accessibilityModifiers = useAccessibilityModifiers(accessibility);
39
+ const modifiers = useMemo(() => [...sxModifiers, ...(testID ? [testIdModifier(testID)] : []), ...accessibilityModifiers], [accessibilityModifiers, sxModifiers, testID]);
38
40
  return /*#__PURE__*/_jsx(ComposeText, {
39
41
  color: theme.colorString(color),
40
42
  maxLines: numberOfLines,
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["Text","ComposeText","testID","testIdModifier","splitAccessibility","useAccessibilityModifiers","useSxModifiers","useAppTheme","useMemo","useHostGuard","jsx","_jsx","DECORATION","none","strikethrough","underline","applyTransform","children","transform","toUpperCase","toLowerCase","decorationOf","decoration","undefined","align","color","numberOfLines","variant","props","theme","style","typography","accessibility","sx","sxModifiers","accessibilityModifiers","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,kBAAkB,EAAEC,yBAAyB,EAAEC,cAAc,QAAO,gBAAgB;AAC5F,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,MAAMtB,IAAmB,GAAGA,CAAC;EAClCwB,KAAK;EACLP,QAAQ;EACRQ,KAAK,GAAG,iBAAiB;EACzBH,UAAU;EACVI,aAAa;EACbxB,MAAM;EACNgB,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,MAAM,CAACK,aAAa,EAAEC,EAAE,CAAC,GAAG7B,kBAAkB,CAACwB,KAAK,CAAC;EACrD,MAAMM,WAAW,GAAG5B,cAAc,CAAC2B,EAAE,CAAC;EACtC,MAAME,sBAAsB,GAAG9B,yBAAyB,CAAC2B,aAAa,CAAC;EACvE,MAAMI,SAAS,GAAG5B,OAAO,CACvB,MAAM,CAAC,GAAG0B,WAAW,EAAE,IAAIhC,MAAM,GAAG,CAACC,cAAc,CAACD,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAGiC,sBAAsB,CAAC,EAC9F,CAACA,sBAAsB,EAAED,WAAW,EAAEhC,MAAM,CAC9C,CAAC;EAED,oBACES,IAAA,CAACV,WAAW;IACVwB,KAAK,EAAEI,KAAK,CAACQ,WAAW,CAACZ,KAAK,CAAE;IAChCa,QAAQ,EAAEZ,aAAc;IACxBU,SAAS,EAAEA,SAAU;IACrBN,KAAK,EAAE;MACLS,UAAU,EAAET,KAAK,CAACS,UAAU;MAC5BC,QAAQ,EAAEV,KAAK,CAACU,QAAQ;MACxBC,UAAU,EAAEX,KAAK,CAACW,UAAU;MAC5BC,UAAU,EAAEZ,KAAK,CAACY,UAAU;MAC5BC,SAAS,EAAEnB,KAAK;MAChBoB,cAAc,EAAEvB,YAAY,CAACC,UAAU;IACzC,CAAE;IAAAL,QAAA,EAEDD,cAAc,CAACC,QAAQ,EAAEC,SAAS;EAAC,CACzB,CAAC;AAElB,CAAC","ignoreList":[]}
@@ -3,7 +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
+ import { splitAccessibility, useAccessibilityModifiers, useSxModifiers } from '@hzblj/kara-sx';
7
7
  import { useAppTheme } from '@hzblj/kara-theme';
8
8
  import { useMemo } from 'react';
9
9
  import { useHostGuard } from "../../host-context.js";
@@ -29,13 +29,15 @@ export const Text = ({
29
29
  testID,
30
30
  transform,
31
31
  variant = 'body',
32
- ...sx
32
+ ...props
33
33
  }) => {
34
34
  useHostGuard('Text');
35
35
  const theme = useAppTheme();
36
36
  const style = theme.typography[variant];
37
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 [accessibility, sx] = splitAccessibility(props);
38
39
  const sxModifiers = useSxModifiers(sx, FRAME_ALIGNMENT[align ?? 'left']);
40
+ const accessibilityModifiers = useAccessibilityModifiers(accessibility);
39
41
  const modifiers = useMemo(() => {
40
42
  const list = [
41
43
  // Not `@expo/ui`'s `font()`: for the platform's face it gives either Apple's size or a size that ignores Dynamic
@@ -67,8 +69,8 @@ export const Text = ({
67
69
  if (numberOfLines !== undefined) {
68
70
  list.push(lineLimit(numberOfLines));
69
71
  }
70
- return [...list, ...sxModifiers];
71
- }, [align, color, decoration, numberOfLines, style, sxModifiers, theme, transform]);
72
+ return [...list, ...sxModifiers, ...accessibilityModifiers];
73
+ }, [accessibilityModifiers, align, color, decoration, numberOfLines, style, sxModifiers, theme, transform]);
72
74
  return /*#__PURE__*/_jsx(SwiftUIText, {
73
75
  modifiers: modifiers,
74
76
  testID: testID,
@@ -1 +1 @@
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":";;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,SAA6BC,cAAc,QAAO,gBAAgB;AAClE,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;AACA,MAAMC,eAAe,GAAG;EACtBH,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,SAAS;EACfC,KAAK,EAAE;AACT,CAAsD;AAEtD,OAAO,MAAMnB,IAAmB,GAAGA,CAAC;EAClCqB,KAAK;EACLC,QAAQ;EACRC,KAAK,GAAG,iBAAiB;EACzBC,UAAU;EACVC,aAAa;EACbC,MAAM;EACNC,SAAS;EACTC,OAAO,GAAG,MAAM;EAChB,GAAGC;AACM,CAAC,KAAK;EACfhB,YAAY,CAAC,MAAM,CAAC;EACpB,MAAMiB,KAAK,GAAGnB,WAAW,CAAC,CAAC;EAC3B,MAAMoB,KAAK,GAAGD,KAAK,CAACE,UAAU,CAACJ,OAAO,CAAC;EACvC;EACA,MAAMK,WAAW,GAAGvB,cAAc,CAACmB,EAAE,EAAET,eAAe,CAACC,KAAK,IAAI,MAAM,CAAC,CAAC;EAExE,MAAMa,SAAS,GAAGtB,OAAO,CAAC,MAAM;IAC9B,MAAMuB,IAAsB,GAAG;IAC7B;IACA;IACA1B,UAAU,CAAC;MAAC2B,MAAM,EAAEL,KAAK,CAACM,UAAU;MAAEC,IAAI,EAAEP,KAAK,CAACQ,QAAQ;MAAEC,SAAS,EAAET,KAAK,CAACU,UAAU;MAAEC,MAAM,EAAEX,KAAK,CAACW;IAAM,CAAC,CAAC,EAC/GtC,WAAW,CAACuC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEb,KAAK,CAACc,UAAU,GAAGd,KAAK,CAACQ,QAAQ,CAAC,CAAC,EAC3DrC,eAAe,CAAC4B,KAAK,CAACP,KAAK,CAACA,KAAK,CAAC,CAAC,CACpC;IAED,IAAIF,KAAK,EAAE;MACTc,IAAI,CAACW,IAAI,CAACzC,sBAAsB,CAACW,SAAS,CAACK,KAAK,CAAC,CAAC,CAAC;IACrD;IAEA,IAAIM,SAAS,EAAE;MACbQ,IAAI,CAACW,IAAI,CAACvC,QAAQ,CAACoB,SAAS,CAAC,CAAC;IAChC;IAEA,IAAIH,UAAU,KAAK,WAAW,EAAE;MAC9BW,IAAI,CAACW,IAAI,CAACtC,SAAS,CAAC;QAACuC,QAAQ,EAAE,IAAI;QAAEC,OAAO,EAAE;MAAO,CAAC,CAAC,CAAC;IAC1D;IAEA,IAAIxB,UAAU,KAAK,eAAe,EAAE;MAClCW,IAAI,CAACW,IAAI,CAACxC,aAAa,CAAC;QAACyC,QAAQ,EAAE,IAAI;QAAEC,OAAO,EAAE;MAAO,CAAC,CAAC,CAAC;IAC9D;IAEA,IAAIvB,aAAa,KAAKwB,SAAS,EAAE;MAC/Bd,IAAI,CAACW,IAAI,CAAC3C,SAAS,CAACsB,aAAa,CAAC,CAAC;IACrC;IAEA,OAAO,CAAC,GAAGU,IAAI,EAAE,GAAGF,WAAW,CAAC;EAClC,CAAC,EAAE,CAACZ,KAAK,EAAEE,KAAK,EAAEC,UAAU,EAAEC,aAAa,EAAEM,KAAK,EAAEE,WAAW,EAAEH,KAAK,EAAEH,SAAS,CAAC,CAAC;EAEnF,oBACEZ,IAAA,CAACd,WAAW;IAACiC,SAAS,EAAEA,SAAU;IAACR,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","splitAccessibility","useAccessibilityModifiers","useSxModifiers","useAppTheme","useMemo","useHostGuard","jsx","_jsx","ALIGNMENT","center","left","right","FRAME_ALIGNMENT","align","children","color","decoration","numberOfLines","testID","transform","variant","props","theme","style","typography","accessibility","sx","sxModifiers","accessibilityModifiers","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":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { VStack as SwiftUIVStack } from '@expo/ui/swift-ui';
4
4
  import { onTapGesture } from '@expo/ui/swift-ui/modifiers';
5
- import { useSxModifiers } from '@hzblj/kara-sx';
5
+ import { splitAccessibility, useAccessibilityModifiers, useSxModifiers } from '@hzblj/kara-sx';
6
6
  import { spacing } from '@hzblj/kara-theme';
7
7
  import { useMemo } from 'react';
8
8
  import { useHostGuard } from "../../host-context.js";
@@ -18,11 +18,13 @@ export const VStack = ({
18
18
  onPress,
19
19
  spacing: gap,
20
20
  testID,
21
- ...sx
21
+ ...props
22
22
  }) => {
23
23
  useHostGuard('VStack');
24
+ const [accessibility, sx] = splitAccessibility(props);
24
25
  const sxModifiers = useSxModifiers(sx, ALIGNMENT[align]);
25
- const modifiers = useMemo(() => onPress ? [...sxModifiers, onTapGesture(onPress)] : sxModifiers, [onPress, sxModifiers]);
26
+ const accessibilityModifiers = useAccessibilityModifiers(accessibility, onPress !== undefined);
27
+ const modifiers = useMemo(() => [...sxModifiers, ...(onPress ? [onTapGesture(onPress)] : []), ...accessibilityModifiers], [accessibilityModifiers, onPress, sxModifiers]);
26
28
  return /*#__PURE__*/_jsx(SwiftUIVStack, {
27
29
  alignment: ALIGNMENT[align],
28
30
  modifiers: modifiers,
@@ -1 +1 @@
1
- {"version":3,"names":["VStack","SwiftUIVStack","onTapGesture","useSxModifiers","spacing","useMemo","useHostGuard","jsx","_jsx","ALIGNMENT","center","end","start","align","children","onPress","gap","testID","sx","sxModifiers","modifiers","alignment","undefined"],"sourceRoot":"../../../../src","sources":["atoms/v-stack/v-stack.ios.tsx"],"mappings":";;AAAA,SAAQA,MAAM,IAAIC,aAAa,QAAO,mBAAmB;AACzD,SAAQC,YAAY,QAAO,6BAA6B;AACxD,SAA6BC,cAAc,QAAO,gBAAgB;AAClE,SAAQC,OAAO,QAAO,mBAAmB;AACzC,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,MAAMC,SAAS,GAAG;EAChBC,MAAM,EAAE,QAAQ;EAChBC,GAAG,EAAE,UAAU;EACfC,KAAK,EAAE;AACT,CAAwD;AAExD,OAAO,MAAMZ,MAAuB,GAAGA,CAAC;EACtCa,KAAK,GAAG,OAAO;EACfC,QAAQ;EACRC,OAAO;EACPX,OAAO,EAAEY,GAAG;EACZC,MAAM;EACN,GAAGC;AACQ,CAAC,KAAK;EACjBZ,YAAY,CAAC,QAAQ,CAAC;EACtB,MAAMa,WAAW,GAAGhB,cAAc,CAACe,EAAE,EAAET,SAAS,CAACI,KAAK,CAAC,CAAC;EACxD,MAAMO,SAAS,GAAGf,OAAO,CACvB,MAAOU,OAAO,GAAG,CAAC,GAAGI,WAAW,EAAEjB,YAAY,CAACa,OAAO,CAAC,CAAC,GAAGI,WAAY,EACvE,CAACJ,OAAO,EAAEI,WAAW,CACvB,CAAC;EAED,oBACEX,IAAA,CAACP,aAAa;IACZoB,SAAS,EAAEZ,SAAS,CAACI,KAAK,CAAE;IAC5BO,SAAS,EAAEA,SAAU;IACrBhB,OAAO,EAAEY,GAAG,KAAKM,SAAS,GAAGA,SAAS,GAAGlB,OAAO,CAACY,GAAG,CAAE;IACtDC,MAAM,EAAEA,MAAO;IAAAH,QAAA,EAEdA;EAAQ,CACI,CAAC;AAEpB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["VStack","SwiftUIVStack","onTapGesture","splitAccessibility","useAccessibilityModifiers","useSxModifiers","spacing","useMemo","useHostGuard","jsx","_jsx","ALIGNMENT","center","end","start","align","children","onPress","gap","testID","props","accessibility","sx","sxModifiers","accessibilityModifiers","undefined","modifiers","alignment"],"sourceRoot":"../../../../src","sources":["atoms/v-stack/v-stack.ios.tsx"],"mappings":";;AAAA,SAAQA,MAAM,IAAIC,aAAa,QAAO,mBAAmB;AACzD,SAAQC,YAAY,QAAO,6BAA6B;AACxD,SAA6BC,kBAAkB,EAAEC,yBAAyB,EAAEC,cAAc,QAAO,gBAAgB;AACjH,SAAQC,OAAO,QAAO,mBAAmB;AACzC,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,MAAMC,SAAS,GAAG;EAChBC,MAAM,EAAE,QAAQ;EAChBC,GAAG,EAAE,UAAU;EACfC,KAAK,EAAE;AACT,CAAwD;AAExD,OAAO,MAAMd,MAAuB,GAAGA,CAAC;EACtCe,KAAK,GAAG,OAAO;EACfC,QAAQ;EACRC,OAAO;EACPX,OAAO,EAAEY,GAAG;EACZC,MAAM;EACN,GAAGC;AACQ,CAAC,KAAK;EACjBZ,YAAY,CAAC,QAAQ,CAAC;EACtB,MAAM,CAACa,aAAa,EAAEC,EAAE,CAAC,GAAGnB,kBAAkB,CAACiB,KAAK,CAAC;EACrD,MAAMG,WAAW,GAAGlB,cAAc,CAACiB,EAAE,EAAEX,SAAS,CAACI,KAAK,CAAC,CAAC;EACxD,MAAMS,sBAAsB,GAAGpB,yBAAyB,CAACiB,aAAa,EAAEJ,OAAO,KAAKQ,SAAS,CAAC;EAC9F,MAAMC,SAAS,GAAGnB,OAAO,CACvB,MAAM,CAAC,GAAGgB,WAAW,EAAE,IAAIN,OAAO,GAAG,CAACf,YAAY,CAACe,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAGO,sBAAsB,CAAC,EAC9F,CAACA,sBAAsB,EAAEP,OAAO,EAAEM,WAAW,CAC/C,CAAC;EAED,oBACEb,IAAA,CAACT,aAAa;IACZ0B,SAAS,EAAEhB,SAAS,CAACI,KAAK,CAAE;IAC5BW,SAAS,EAAEA,SAAU;IACrBpB,OAAO,EAAEY,GAAG,KAAKO,SAAS,GAAGA,SAAS,GAAGnB,OAAO,CAACY,GAAG,CAAE;IACtDC,MAAM,EAAEA,MAAO;IAAAH,QAAA,EAEdA;EAAQ,CACI,CAAC;AAEpB,CAAC","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { ZStack as SwiftUIZStack } from '@expo/ui/swift-ui';
4
4
  import { onTapGesture } from '@expo/ui/swift-ui/modifiers';
5
- import { useSxModifiers } from '@hzblj/kara-sx';
5
+ import { splitAccessibility, useAccessibilityModifiers, useSxModifiers } from '@hzblj/kara-sx';
6
6
  import { useMemo } from 'react';
7
7
  import { useHostGuard } from "../../host-context.js";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -16,11 +16,13 @@ export const ZStack = ({
16
16
  children,
17
17
  onPress,
18
18
  testID,
19
- ...sx
19
+ ...props
20
20
  }) => {
21
21
  useHostGuard('ZStack');
22
+ const [accessibility, sx] = splitAccessibility(props);
22
23
  const sxModifiers = useSxModifiers(sx, ALIGNMENT[align]);
23
- const modifiers = useMemo(() => onPress ? [...sxModifiers, onTapGesture(onPress)] : sxModifiers, [onPress, sxModifiers]);
24
+ const accessibilityModifiers = useAccessibilityModifiers(accessibility, onPress !== undefined);
25
+ const modifiers = useMemo(() => [...sxModifiers, ...(onPress ? [onTapGesture(onPress)] : []), ...accessibilityModifiers], [accessibilityModifiers, onPress, sxModifiers]);
24
26
  return /*#__PURE__*/_jsx(SwiftUIZStack, {
25
27
  alignment: ALIGNMENT[align],
26
28
  modifiers: modifiers,
@@ -1 +1 @@
1
- {"version":3,"names":["ZStack","SwiftUIZStack","onTapGesture","useSxModifiers","useMemo","useHostGuard","jsx","_jsx","ALIGNMENT","bottom","center","top","align","children","onPress","testID","sx","sxModifiers","modifiers","alignment"],"sourceRoot":"../../../../src","sources":["atoms/z-stack/z-stack.ios.tsx"],"mappings":";;AAAA,SAAQA,MAAM,IAAIC,aAAa,QAAO,mBAAmB;AACzD,SAAQC,YAAY,QAAO,6BAA6B;AACxD,SAA6BC,cAAc,QAAO,gBAAgB;AAClE,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,MAAMC,SAAS,GAAG;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,GAAG,EAAE;AACP,CAAwD;AAExD,OAAO,MAAMX,MAAuB,GAAGA,CAAC;EAACY,KAAK,GAAG,QAAQ;EAAEC,QAAQ;EAAEC,OAAO;EAAEC,MAAM;EAAE,GAAGC;AAAe,CAAC,KAAK;EAC5GX,YAAY,CAAC,QAAQ,CAAC;EACtB,MAAMY,WAAW,GAAGd,cAAc,CAACa,EAAE,EAAER,SAAS,CAACI,KAAK,CAAC,CAAC;EACxD,MAAMM,SAAS,GAAGd,OAAO,CACvB,MAAOU,OAAO,GAAG,CAAC,GAAGG,WAAW,EAAEf,YAAY,CAACY,OAAO,CAAC,CAAC,GAAGG,WAAY,EACvE,CAACH,OAAO,EAAEG,WAAW,CACvB,CAAC;EAED,oBACEV,IAAA,CAACN,aAAa;IAACkB,SAAS,EAAEX,SAAS,CAACI,KAAK,CAAE;IAACM,SAAS,EAAEA,SAAU;IAACH,MAAM,EAAEA,MAAO;IAAAF,QAAA,EAC9EA;EAAQ,CACI,CAAC;AAEpB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["ZStack","SwiftUIZStack","onTapGesture","splitAccessibility","useAccessibilityModifiers","useSxModifiers","useMemo","useHostGuard","jsx","_jsx","ALIGNMENT","bottom","center","top","align","children","onPress","testID","props","accessibility","sx","sxModifiers","accessibilityModifiers","undefined","modifiers","alignment"],"sourceRoot":"../../../../src","sources":["atoms/z-stack/z-stack.ios.tsx"],"mappings":";;AAAA,SAAQA,MAAM,IAAIC,aAAa,QAAO,mBAAmB;AACzD,SAAQC,YAAY,QAAO,6BAA6B;AACxD,SAA6BC,kBAAkB,EAAEC,yBAAyB,EAAEC,cAAc,QAAO,gBAAgB;AACjH,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C,MAAMC,SAAS,GAAG;EAChBC,MAAM,EAAE,QAAQ;EAChBC,MAAM,EAAE,QAAQ;EAChBC,GAAG,EAAE;AACP,CAAwD;AAExD,OAAO,MAAMb,MAAuB,GAAGA,CAAC;EAACc,KAAK,GAAG,QAAQ;EAAEC,QAAQ;EAAEC,OAAO;EAAEC,MAAM;EAAE,GAAGC;AAAkB,CAAC,KAAK;EAC/GX,YAAY,CAAC,QAAQ,CAAC;EACtB,MAAM,CAACY,aAAa,EAAEC,EAAE,CAAC,GAAGjB,kBAAkB,CAACe,KAAK,CAAC;EACrD,MAAMG,WAAW,GAAGhB,cAAc,CAACe,EAAE,EAAEV,SAAS,CAACI,KAAK,CAAC,CAAC;EACxD,MAAMQ,sBAAsB,GAAGlB,yBAAyB,CAACe,aAAa,EAAEH,OAAO,KAAKO,SAAS,CAAC;EAC9F,MAAMC,SAAS,GAAGlB,OAAO,CACvB,MAAM,CAAC,GAAGe,WAAW,EAAE,IAAIL,OAAO,GAAG,CAACd,YAAY,CAACc,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAGM,sBAAsB,CAAC,EAC9F,CAACA,sBAAsB,EAAEN,OAAO,EAAEK,WAAW,CAC/C,CAAC;EAED,oBACEZ,IAAA,CAACR,aAAa;IAACwB,SAAS,EAAEf,SAAS,CAACI,KAAK,CAAE;IAACU,SAAS,EAAEA,SAAU;IAACP,MAAM,EAAEA,MAAO;IAAAF,QAAA,EAC9EA;EAAQ,CACI,CAAC;AAEpB,CAAC","ignoreList":[]}
@@ -6,12 +6,14 @@ import { spacing, useAppTheme } from '@hzblj/kara-theme';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  /** The Material Symbol `@hzblj/kara-native` ships as a drawable — inside a Compose host. */
8
8
  export const Glyph = ({
9
+ accessibilityLabel,
9
10
  color = 'content.primary',
10
11
  name,
11
12
  size = 's24'
12
13
  }) => {
13
14
  const theme = useAppTheme();
14
15
  return /*#__PURE__*/_jsx(DrawableIcon, {
16
+ accessibilityLabel: accessibilityLabel,
15
17
  iconColor: theme.color(color),
16
18
  iconSize: spacing[size],
17
19
  resourceName: GLYPHS[name].android
@@ -1 +1 @@
1
- {"version":3,"names":["GLYPHS","DrawableIcon","spacing","useAppTheme","jsx","_jsx","Glyph","color","name","size","theme","iconColor","iconSize","resourceName","android"],"sourceRoot":"../../../src","sources":["glyph/glyph.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,QAAO,oBAAoB;AACzC,SAAQC,YAAY,QAAO,oCAAoC;AAC/D,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAItD;AACA,OAAO,MAAMC,KAAqB,GAAGA,CAAC;EAACC,KAAK,GAAG,iBAAiB;EAAEC,IAAI;EAAEC,IAAI,GAAG;AAAiB,CAAC,KAAK;EACpG,MAAMC,KAAK,GAAGP,WAAW,CAAC,CAAC;EAE3B,oBAAOE,IAAA,CAACJ,YAAY;IAACU,SAAS,EAAED,KAAK,CAACH,KAAK,CAACA,KAAK,CAAE;IAACK,QAAQ,EAAEV,OAAO,CAACO,IAAI,CAAE;IAACI,YAAY,EAAEb,MAAM,CAACQ,IAAI,CAAC,CAACM;EAAQ,CAAE,CAAC;AACrH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["GLYPHS","DrawableIcon","spacing","useAppTheme","jsx","_jsx","Glyph","accessibilityLabel","color","name","size","theme","iconColor","iconSize","resourceName","android"],"sourceRoot":"../../../src","sources":["glyph/glyph.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,QAAO,oBAAoB;AACzC,SAAQC,YAAY,QAAO,oCAAoC;AAC/D,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAItD;AACA,OAAO,MAAMC,KAAqB,GAAGA,CAAC;EACpCC,kBAAkB;EAClBC,KAAK,GAAG,iBAAiB;EACzBC,IAAI;EACJC,IAAI,GAAG;AACG,CAAC,KAAK;EAChB,MAAMC,KAAK,GAAGR,WAAW,CAAC,CAAC;EAE3B,oBACEE,IAAA,CAACJ,YAAY;IACXM,kBAAkB,EAAEA,kBAAmB;IACvCK,SAAS,EAAED,KAAK,CAACH,KAAK,CAACA,KAAK,CAAE;IAC9BK,QAAQ,EAAEX,OAAO,CAACQ,IAAI,CAAE;IACxBI,YAAY,EAAEd,MAAM,CAACS,IAAI,CAAC,CAACM;EAAQ,CACpC,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -1,22 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  import { Image } from '@expo/ui/swift-ui';
4
- import { accessibilityHidden } from '@expo/ui/swift-ui/modifiers';
4
+ import { accessibilityHidden, accessibilityLabel as labelModifier } from '@expo/ui/swift-ui/modifiers';
5
5
  import { GLYPHS } from '@hzblj/kara-native';
6
6
  import { spacing, useAppTheme } from '@hzblj/kara-theme';
7
+ import { useMemo } from 'react';
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  const DECORATIVE = [accessibilityHidden(true)];
9
10
 
10
11
  /** The SF Symbol the system already has — inside a SwiftUI host. */
11
12
  export const Glyph = ({
13
+ accessibilityLabel,
12
14
  color = 'content.primary',
13
15
  name,
14
16
  size = 's24'
15
17
  }) => {
16
18
  const theme = useAppTheme();
19
+ const modifiers = useMemo(() => accessibilityLabel ? [labelModifier(accessibilityLabel)] : DECORATIVE, [accessibilityLabel]);
17
20
  return /*#__PURE__*/_jsx(Image, {
18
21
  color: theme.color(color),
19
- modifiers: DECORATIVE,
22
+ modifiers: modifiers,
20
23
  size: spacing[size],
21
24
  systemName: GLYPHS[name].ios
22
25
  });
@@ -1 +1 @@
1
- {"version":3,"names":["Image","accessibilityHidden","GLYPHS","spacing","useAppTheme","jsx","_jsx","DECORATIVE","Glyph","color","name","size","theme","modifiers","systemName","ios"],"sourceRoot":"../../../src","sources":["glyph/glyph.ios.tsx"],"mappings":";;AAAA,SAAQA,KAAK,QAAO,mBAAmB;AACvC,SAAQC,mBAAmB,QAAO,6BAA6B;AAC/D,SAAQC,MAAM,QAAO,oBAAoB;AACzC,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAItD,MAAMC,UAAU,GAAG,CAACN,mBAAmB,CAAC,IAAI,CAAC,CAAC;;AAE9C;AACA,OAAO,MAAMO,KAAqB,GAAGA,CAAC;EAACC,KAAK,GAAG,iBAAiB;EAAEC,IAAI;EAAEC,IAAI,GAAG;AAAiB,CAAC,KAAK;EACpG,MAAMC,KAAK,GAAGR,WAAW,CAAC,CAAC;EAE3B,oBAAOE,IAAA,CAACN,KAAK;IAACS,KAAK,EAAEG,KAAK,CAACH,KAAK,CAACA,KAAK,CAAE;IAACI,SAAS,EAAEN,UAAW;IAACI,IAAI,EAAER,OAAO,CAACQ,IAAI,CAAE;IAACG,UAAU,EAAEZ,MAAM,CAACQ,IAAI,CAAC,CAACK;EAAI,CAAE,CAAC;AACvH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Image","accessibilityHidden","accessibilityLabel","labelModifier","GLYPHS","spacing","useAppTheme","useMemo","jsx","_jsx","DECORATIVE","Glyph","color","name","size","theme","modifiers","systemName","ios"],"sourceRoot":"../../../src","sources":["glyph/glyph.ios.tsx"],"mappings":";;AAAA,SAAQA,KAAK,QAAO,mBAAmB;AACvC,SAAQC,mBAAmB,EAAEC,kBAAkB,IAAIC,aAAa,QAAO,6BAA6B;AACpG,SAAQC,MAAM,QAAO,oBAAoB;AACzC,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AACtD,SAAQC,OAAO,QAAO,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI7B,MAAMC,UAAU,GAAG,CAACT,mBAAmB,CAAC,IAAI,CAAC,CAAC;;AAE9C;AACA,OAAO,MAAMU,KAAqB,GAAGA,CAAC;EACpCT,kBAAkB;EAClBU,KAAK,GAAG,iBAAiB;EACzBC,IAAI;EACJC,IAAI,GAAG;AACG,CAAC,KAAK;EAChB,MAAMC,KAAK,GAAGT,WAAW,CAAC,CAAC;EAC3B,MAAMU,SAAS,GAAGT,OAAO,CACvB,MAAOL,kBAAkB,GAAG,CAACC,aAAa,CAACD,kBAAkB,CAAC,CAAC,GAAGQ,UAAW,EAC7E,CAACR,kBAAkB,CACrB,CAAC;EAED,oBAAOO,IAAA,CAACT,KAAK;IAACY,KAAK,EAAEG,KAAK,CAACH,KAAK,CAACA,KAAK,CAAE;IAACI,SAAS,EAAEA,SAAU;IAACF,IAAI,EAAET,OAAO,CAACS,IAAI,CAAE;IAACG,UAAU,EAAEb,MAAM,CAACS,IAAI,CAAC,CAACK;EAAI,CAAE,CAAC;AACtH,CAAC","ignoreList":[]}
@@ -2,20 +2,28 @@
2
2
 
3
3
  import { AnimatedVisibility, Box, Column, Text as ComposeText, EnterTransition, ExitTransition, Row } from '@expo/ui/jetpack-compose';
4
4
  import { animated, clickable, defaultMinSize, fillMaxWidth, graphicsLayer, tween } from '@expo/ui/jetpack-compose/modifiers';
5
- import { duration, useAppTheme } from '@hzblj/kara-theme';
5
+ import { useAccessibilityModifiers } from '@hzblj/kara-sx';
6
+ import { duration, useAppTheme, useReducedMotion } from '@hzblj/kara-theme';
6
7
  import { useMemo } from 'react';
7
8
  import { Glyph } from "../../glyph/index.js";
8
9
  import { useHostGuard } from "../../host-context.js";
9
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
- /** Material's standard easing, at the length a disclosure takes. */
11
+ /** Material's standard easing, at the length a chevron turning takes. */
11
12
  const TURN = tween({
12
- durationMillis: duration.d200,
13
+ durationMillis: duration.fast,
13
14
  easing: 'fastOutSlowIn'
14
15
  });
16
+ const SNAP = tween({
17
+ durationMillis: duration.none
18
+ });
15
19
 
16
20
  /** Down from the row, fading in — Compose's default grows from a corner, sideways as well as down. */
17
21
  const ENTER = EnterTransition.expandVertically().plus(EnterTransition.fadeIn());
18
22
  const EXIT = ExitTransition.shrinkVertically().plus(ExitTransition.fadeOut());
23
+
24
+ /** With motion reduced (Compose follows the device's own setting, this `KaraProvider reduceMotion`): no growing. */
25
+ const FADE_IN = EnterTransition.fadeIn();
26
+ const FADE_OUT = ExitTransition.fadeOut();
19
27
  const WIDE = [fillMaxWidth()];
20
28
 
21
29
  /** Material's least touch target. */
@@ -34,12 +42,14 @@ export const Collapsible = ({
34
42
  }) => {
35
43
  useHostGuard('Collapsible');
36
44
  const theme = useAppTheme();
45
+ const reduced = useReducedMotion();
46
+ const accessibilityModifiers = useAccessibilityModifiers({}, true);
37
47
  const modifiers = useMemo(() => [fillMaxWidth(), defaultMinSize({
38
48
  minHeight: ROW_HEIGHT
39
- }), clickable(() => onExpandedChange(!expanded))], [expanded, onExpandedChange]);
49
+ }), clickable(() => onExpandedChange(!expanded)), ...accessibilityModifiers], [accessibilityModifiers, expanded, onExpandedChange]);
40
50
  const turn = useMemo(() => [graphicsLayer({
41
- rotationZ: animated(expanded ? 90 : 0, TURN)
42
- })], [expanded]);
51
+ rotationZ: animated(expanded ? 90 : 0, reduced ? SNAP : TURN)
52
+ })], [expanded, reduced]);
43
53
  return /*#__PURE__*/_jsxs(Column, {
44
54
  modifiers: WIDE,
45
55
  children: [/*#__PURE__*/_jsxs(Row, {
@@ -58,8 +68,8 @@ export const Collapsible = ({
58
68
  })
59
69
  })]
60
70
  }), /*#__PURE__*/_jsx(AnimatedVisibility, {
61
- enterTransition: ENTER,
62
- exitTransition: EXIT,
71
+ enterTransition: reduced ? FADE_IN : ENTER,
72
+ exitTransition: reduced ? FADE_OUT : EXIT,
63
73
  visible: expanded,
64
74
  children: children
65
75
  })]