@hzblj/kara-components 0.1.0 → 0.2.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 (231) hide show
  1. package/lib/module/atoms/badge/badge.android.js +8 -2
  2. package/lib/module/atoms/badge/badge.android.js.map +1 -1
  3. package/lib/module/atoms/button/button-tokens.js +39 -0
  4. package/lib/module/atoms/button/button-tokens.js.map +1 -1
  5. package/lib/module/atoms/button/button.android.js +40 -12
  6. package/lib/module/atoms/button/button.android.js.map +1 -1
  7. package/lib/module/atoms/button/button.ios.js +5 -2
  8. package/lib/module/atoms/button/button.ios.js.map +1 -1
  9. package/lib/module/atoms/checkbox/checkbox.android.js +17 -2
  10. package/lib/module/atoms/checkbox/checkbox.android.js.map +1 -1
  11. package/lib/module/atoms/date-picker/date-picker.android.js +72 -0
  12. package/lib/module/atoms/date-picker/date-picker.android.js.map +1 -0
  13. package/lib/module/atoms/date-picker/{date-picker.js → date-picker.ios.js} +4 -7
  14. package/lib/module/atoms/date-picker/date-picker.ios.js.map +1 -0
  15. package/lib/module/atoms/date-picker/index.js +1 -1
  16. package/lib/module/atoms/date-picker/index.js.map +1 -1
  17. package/lib/module/atoms/fab/fab.android.js +5 -3
  18. package/lib/module/atoms/fab/fab.android.js.map +1 -1
  19. package/lib/module/atoms/glass-view/glass-fallback.js +5 -2
  20. package/lib/module/atoms/glass-view/glass-fallback.js.map +1 -1
  21. package/lib/module/atoms/icon/icon.android.js +10 -12
  22. package/lib/module/atoms/icon/icon.android.js.map +1 -1
  23. package/lib/module/atoms/icon/icon.ios.js +15 -3
  24. package/lib/module/atoms/icon/icon.ios.js.map +1 -1
  25. package/lib/module/atoms/icon/index.js +0 -1
  26. package/lib/module/atoms/icon/index.js.map +1 -1
  27. package/lib/module/atoms/index.js +1 -1
  28. package/lib/module/atoms/index.js.map +1 -1
  29. package/lib/module/atoms/list/list.android.js +8 -2
  30. package/lib/module/atoms/list/list.android.js.map +1 -1
  31. package/lib/module/atoms/picker/index.js +1 -1
  32. package/lib/module/atoms/picker/index.js.map +1 -1
  33. package/lib/module/atoms/picker/picker.android.js +87 -0
  34. package/lib/module/atoms/picker/picker.android.js.map +1 -0
  35. package/lib/module/atoms/picker/{picker.js → picker.ios.js} +1 -1
  36. package/lib/module/atoms/picker/picker.ios.js.map +1 -0
  37. package/lib/module/atoms/rn-icon/index.js +5 -0
  38. package/lib/module/atoms/rn-icon/index.js.map +1 -0
  39. package/lib/module/atoms/rn-icon/rn-icon.android.js +29 -0
  40. package/lib/module/atoms/rn-icon/rn-icon.android.js.map +1 -0
  41. package/lib/module/atoms/rn-icon/rn-icon.ios.js +29 -0
  42. package/lib/module/atoms/rn-icon/rn-icon.ios.js.map +1 -0
  43. package/lib/module/atoms/rn-icon/rn-icon.types.js +4 -0
  44. package/lib/module/atoms/rn-icon/rn-icon.types.js.map +1 -0
  45. package/lib/module/atoms/surface/surface.android.js +33 -5
  46. package/lib/module/atoms/surface/surface.android.js.map +1 -1
  47. package/lib/module/atoms/switch/switch.android.js +14 -1
  48. package/lib/module/atoms/switch/switch.android.js.map +1 -1
  49. package/lib/module/glyph/glyph-button.android.js +25 -0
  50. package/lib/module/glyph/glyph-button.android.js.map +1 -0
  51. package/lib/module/glyph/glyph-button.ios.js +33 -0
  52. package/lib/module/glyph/glyph-button.ios.js.map +1 -0
  53. package/lib/module/glyph/glyph-button.types.js +4 -0
  54. package/lib/module/glyph/glyph-button.types.js.map +1 -0
  55. package/lib/module/glyph/glyph.android.js +20 -0
  56. package/lib/module/glyph/glyph.android.js.map +1 -0
  57. package/lib/module/glyph/glyph.ios.js +24 -0
  58. package/lib/module/glyph/glyph.ios.js.map +1 -0
  59. package/lib/module/glyph/glyph.types.js +4 -0
  60. package/lib/module/glyph/glyph.types.js.map +1 -0
  61. package/lib/module/glyph/index.js +8 -0
  62. package/lib/module/glyph/index.js.map +1 -0
  63. package/lib/module/glyph/rn-glyph.android.js +25 -0
  64. package/lib/module/glyph/rn-glyph.android.js.map +1 -0
  65. package/lib/module/glyph/rn-glyph.ios.js +26 -0
  66. package/lib/module/glyph/rn-glyph.ios.js.map +1 -0
  67. package/lib/module/molecules/collapsible/collapsible.android.js +2 -2
  68. package/lib/module/molecules/collapsible/collapsible.android.js.map +1 -1
  69. package/lib/module/molecules/labeled-content/labeled-content.js +2 -1
  70. package/lib/module/molecules/labeled-content/labeled-content.js.map +1 -1
  71. package/lib/module/molecules/list-item/list-item.js +2 -1
  72. package/lib/module/molecules/list-item/list-item.js.map +1 -1
  73. package/lib/module/molecules/navigation-bar/navigation-bar.android.js +8 -4
  74. package/lib/module/molecules/navigation-bar/navigation-bar.android.js.map +1 -1
  75. package/lib/module/molecules/radio-group/radio-group.android.js +5 -0
  76. package/lib/module/molecules/radio-group/radio-group.android.js.map +1 -1
  77. package/lib/module/molecules/radio-group/radio-group.ios.js +2 -2
  78. package/lib/module/molecules/radio-group/radio-group.ios.js.map +1 -1
  79. package/lib/module/molecules/search-bar/search-bar.js +10 -23
  80. package/lib/module/molecules/search-bar/search-bar.js.map +1 -1
  81. package/lib/module/molecules/stepper/stepper.android.js +7 -5
  82. package/lib/module/molecules/stepper/stepper.android.js.map +1 -1
  83. package/lib/module/organisms/alert/alert.android.js +42 -13
  84. package/lib/module/organisms/alert/alert.android.js.map +1 -1
  85. package/lib/module/organisms/context-menu/context-menu.android.js +82 -31
  86. package/lib/module/organisms/context-menu/context-menu.android.js.map +1 -1
  87. package/lib/module/organisms/context-menu/context-menu.ios.js +37 -16
  88. package/lib/module/organisms/context-menu/context-menu.ios.js.map +1 -1
  89. package/lib/module/organisms/fab-menu/fab-menu.android.js +6 -2
  90. package/lib/module/organisms/fab-menu/fab-menu.android.js.map +1 -1
  91. package/lib/module/organisms/fab-menu/fab-menu.ios.js +15 -6
  92. package/lib/module/organisms/fab-menu/fab-menu.ios.js.map +1 -1
  93. package/lib/module/organisms/form/form.android.js +1 -0
  94. package/lib/module/organisms/form/form.android.js.map +1 -1
  95. package/lib/module/organisms/index.js +0 -1
  96. package/lib/module/organisms/index.js.map +1 -1
  97. package/lib/module/organisms/menu/menu.android.js +51 -33
  98. package/lib/module/organisms/menu/menu.android.js.map +1 -1
  99. package/lib/typescript/atoms/button/button-tokens.d.ts +6 -1
  100. package/lib/typescript/atoms/date-picker/date-picker.d.ts +1 -2
  101. package/lib/typescript/atoms/date-picker/date-picker.ios.d.ts +3 -0
  102. package/lib/typescript/atoms/glass-view/glass-fallback.d.ts +4 -1
  103. package/lib/typescript/atoms/glass-view/glass-view.types.d.ts +1 -1
  104. package/lib/typescript/atoms/icon/icon.ios.d.ts +4 -0
  105. package/lib/typescript/atoms/icon/icon.types.d.ts +18 -1
  106. package/lib/typescript/atoms/icon/index.d.ts +0 -1
  107. package/lib/typescript/atoms/index.d.ts +1 -1
  108. package/lib/typescript/atoms/list/list.types.d.ts +9 -0
  109. package/lib/typescript/atoms/picker/picker.d.ts +1 -2
  110. package/lib/typescript/atoms/picker/picker.ios.d.ts +2 -0
  111. package/lib/typescript/atoms/rn-icon/index.d.ts +2 -0
  112. package/lib/typescript/atoms/rn-icon/rn-icon.d.ts +1 -0
  113. package/lib/typescript/atoms/rn-icon/rn-icon.ios.d.ts +3 -0
  114. package/lib/typescript/atoms/rn-icon/rn-icon.types.d.ts +5 -0
  115. package/lib/typescript/glyph/glyph-button.d.ts +1 -0
  116. package/lib/typescript/glyph/glyph-button.ios.d.ts +2 -0
  117. package/lib/typescript/glyph/glyph-button.types.d.ts +10 -0
  118. package/lib/typescript/glyph/glyph.d.ts +1 -0
  119. package/lib/typescript/glyph/glyph.ios.d.ts +3 -0
  120. package/lib/typescript/glyph/glyph.types.d.ts +13 -0
  121. package/lib/typescript/glyph/index.d.ts +5 -0
  122. package/lib/typescript/glyph/rn-glyph.d.ts +1 -0
  123. package/lib/typescript/glyph/rn-glyph.ios.d.ts +3 -0
  124. package/lib/typescript/molecules/scroll-edge-container/scroll-edge-container.types.d.ts +3 -0
  125. package/lib/typescript/organisms/context-menu/context-menu.types.d.ts +28 -2
  126. package/lib/typescript/organisms/fab-menu/fab-menu.types.d.ts +1 -1
  127. package/lib/typescript/organisms/form/form.types.d.ts +5 -0
  128. package/lib/typescript/organisms/index.d.ts +0 -1
  129. package/package.json +5 -7
  130. package/src/atoms/badge/badge.android.tsx +5 -2
  131. package/src/atoms/button/button-tokens.ts +49 -0
  132. package/src/atoms/button/button.android.tsx +46 -12
  133. package/src/atoms/button/button.ios.tsx +5 -2
  134. package/src/atoms/checkbox/checkbox.android.tsx +21 -4
  135. package/src/atoms/date-picker/date-picker.android.tsx +74 -0
  136. package/src/atoms/date-picker/date-picker.ios.tsx +27 -0
  137. package/src/atoms/fab/fab.android.tsx +4 -1
  138. package/src/atoms/glass-view/glass-fallback.tsx +5 -2
  139. package/src/atoms/glass-view/glass-view.types.ts +1 -1
  140. package/src/atoms/icon/icon.android.tsx +11 -7
  141. package/src/atoms/icon/icon.ios.tsx +25 -5
  142. package/src/atoms/icon/icon.types.ts +18 -24
  143. package/src/atoms/icon/index.ts +0 -1
  144. package/src/atoms/index.ts +1 -1
  145. package/src/atoms/list/list.android.tsx +12 -1
  146. package/src/atoms/list/list.types.ts +9 -0
  147. package/src/atoms/picker/picker.android.tsx +88 -0
  148. package/src/atoms/rn-icon/index.ts +2 -0
  149. package/src/atoms/rn-icon/rn-icon.android.tsx +28 -0
  150. package/src/atoms/rn-icon/rn-icon.ios.tsx +28 -0
  151. package/src/atoms/rn-icon/rn-icon.types.ts +8 -0
  152. package/src/atoms/surface/surface.android.tsx +28 -4
  153. package/src/atoms/switch/switch.android.tsx +24 -3
  154. package/src/glyph/glyph-button.android.tsx +25 -0
  155. package/src/glyph/glyph-button.ios.tsx +37 -0
  156. package/src/glyph/glyph-button.types.ts +12 -0
  157. package/src/glyph/glyph.android.tsx +12 -0
  158. package/src/glyph/glyph.ios.tsx +15 -0
  159. package/src/glyph/glyph.types.ts +15 -0
  160. package/src/glyph/index.ts +5 -0
  161. package/src/glyph/rn-glyph.android.tsx +14 -0
  162. package/src/glyph/rn-glyph.ios.tsx +16 -0
  163. package/src/molecules/collapsible/collapsible.android.tsx +2 -2
  164. package/src/molecules/labeled-content/labeled-content.tsx +2 -1
  165. package/src/molecules/list-item/list-item.tsx +2 -1
  166. package/src/molecules/navigation-bar/navigation-bar.android.tsx +11 -4
  167. package/src/molecules/radio-group/radio-group.android.tsx +11 -2
  168. package/src/molecules/radio-group/radio-group.ios.tsx +2 -2
  169. package/src/molecules/scroll-edge-container/scroll-edge-container.types.ts +3 -0
  170. package/src/molecules/search-bar/search-bar.tsx +4 -9
  171. package/src/molecules/stepper/stepper.android.tsx +3 -3
  172. package/src/organisms/alert/alert.android.tsx +44 -7
  173. package/src/organisms/context-menu/context-menu.android.tsx +71 -37
  174. package/src/organisms/context-menu/context-menu.ios.tsx +40 -18
  175. package/src/organisms/context-menu/context-menu.types.ts +29 -3
  176. package/src/organisms/fab-menu/fab-menu.android.tsx +3 -2
  177. package/src/organisms/fab-menu/fab-menu.ios.tsx +13 -12
  178. package/src/organisms/fab-menu/fab-menu.types.ts +1 -1
  179. package/src/organisms/form/form.android.tsx +1 -1
  180. package/src/organisms/form/form.types.ts +5 -0
  181. package/src/organisms/index.ts +0 -1
  182. package/src/organisms/menu/menu.android.tsx +36 -30
  183. package/CHANGELOG.md +0 -14
  184. package/lib/module/atoms/countdown/countdown-frame.js +0 -115
  185. package/lib/module/atoms/countdown/countdown-frame.js.map +0 -1
  186. package/lib/module/atoms/countdown/countdown-units.js +0 -25
  187. package/lib/module/atoms/countdown/countdown-units.js.map +0 -1
  188. package/lib/module/atoms/countdown/countdown.android.js +0 -53
  189. package/lib/module/atoms/countdown/countdown.android.js.map +0 -1
  190. package/lib/module/atoms/countdown/countdown.ios.js +0 -50
  191. package/lib/module/atoms/countdown/countdown.ios.js.map +0 -1
  192. package/lib/module/atoms/countdown/countdown.types.js +0 -4
  193. package/lib/module/atoms/countdown/countdown.types.js.map +0 -1
  194. package/lib/module/atoms/countdown/index.js +0 -5
  195. package/lib/module/atoms/countdown/index.js.map +0 -1
  196. package/lib/module/atoms/date-picker/date-picker.js.map +0 -1
  197. package/lib/module/atoms/icon/icon-names.js +0 -53
  198. package/lib/module/atoms/icon/icon-names.js.map +0 -1
  199. package/lib/module/atoms/picker/picker.js.map +0 -1
  200. package/lib/module/organisms/rn-context-menu/index.js +0 -5
  201. package/lib/module/organisms/rn-context-menu/index.js.map +0 -1
  202. package/lib/module/organisms/rn-context-menu/rn-context-menu.android.js +0 -101
  203. package/lib/module/organisms/rn-context-menu/rn-context-menu.android.js.map +0 -1
  204. package/lib/module/organisms/rn-context-menu/rn-context-menu.ios.js +0 -44
  205. package/lib/module/organisms/rn-context-menu/rn-context-menu.ios.js.map +0 -1
  206. package/lib/module/organisms/rn-context-menu/rn-context-menu.types.js +0 -4
  207. package/lib/module/organisms/rn-context-menu/rn-context-menu.types.js.map +0 -1
  208. package/lib/typescript/atoms/countdown/countdown-frame.d.ts +0 -17
  209. package/lib/typescript/atoms/countdown/countdown-units.d.ts +0 -5
  210. package/lib/typescript/atoms/countdown/countdown.d.ts +0 -1
  211. package/lib/typescript/atoms/countdown/countdown.ios.d.ts +0 -2
  212. package/lib/typescript/atoms/countdown/countdown.types.d.ts +0 -21
  213. package/lib/typescript/atoms/countdown/index.d.ts +0 -2
  214. package/lib/typescript/atoms/icon/icon-names.d.ts +0 -50
  215. package/lib/typescript/organisms/rn-context-menu/index.d.ts +0 -2
  216. package/lib/typescript/organisms/rn-context-menu/rn-context-menu.d.ts +0 -1
  217. package/lib/typescript/organisms/rn-context-menu/rn-context-menu.ios.d.ts +0 -2
  218. package/lib/typescript/organisms/rn-context-menu/rn-context-menu.types.d.ts +0 -33
  219. package/src/atoms/countdown/countdown-frame.tsx +0 -123
  220. package/src/atoms/countdown/countdown-units.ts +0 -37
  221. package/src/atoms/countdown/countdown.android.tsx +0 -49
  222. package/src/atoms/countdown/countdown.ios.tsx +0 -46
  223. package/src/atoms/countdown/countdown.types.ts +0 -24
  224. package/src/atoms/countdown/index.ts +0 -2
  225. package/src/atoms/date-picker/date-picker.tsx +0 -26
  226. package/src/atoms/icon/icon-names.ts +0 -53
  227. package/src/organisms/rn-context-menu/index.ts +0 -2
  228. package/src/organisms/rn-context-menu/rn-context-menu.android.tsx +0 -90
  229. package/src/organisms/rn-context-menu/rn-context-menu.ios.tsx +0 -47
  230. package/src/organisms/rn-context-menu/rn-context-menu.types.ts +0 -36
  231. /package/src/atoms/picker/{picker.tsx → picker.ios.tsx} +0 -0
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { Badge as ComposeBadge } from '@expo/ui/jetpack-compose';
3
+ import { Badge as ComposeBadge, Text as ComposeText } from '@expo/ui/jetpack-compose';
4
4
  import { useAppTheme } from '@hzblj/kara-theme';
5
5
  import { useHostGuard } from "../../host-context.js";
6
6
  import { BADGE_TOKENS } from "./badge-tokens.js";
7
+
8
+ /** Material's badge. Its content is a Compose `Text` — `@expo/ui`'s badge takes composable content, not a string. */
7
9
  import { jsx as _jsx } from "react/jsx-runtime";
8
10
  export const Badge = ({
9
11
  label,
@@ -15,7 +17,11 @@ export const Badge = ({
15
17
  return /*#__PURE__*/_jsx(ComposeBadge, {
16
18
  containerColor: theme.color(tokens.fill),
17
19
  contentColor: theme.color(tokens.content),
18
- children: label
20
+ children: /*#__PURE__*/_jsx(ComposeText, {
21
+ color: theme.colorString(tokens.content),
22
+ style: theme.typography.captionMedium,
23
+ children: label
24
+ })
19
25
  });
20
26
  };
21
27
  //# sourceMappingURL=badge.android.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Badge","ComposeBadge","useAppTheme","useHostGuard","BADGE_TOKENS","jsx","_jsx","label","tone","theme","tokens","containerColor","color","fill","contentColor","content","children"],"sourceRoot":"../../../../src","sources":["atoms/badge/badge.android.tsx"],"mappings":";;AAAA,SAAQA,KAAK,IAAIC,YAAY,QAAO,0BAA0B;AAC9D,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,YAAY,QAAO,uBAAoB;AAE/C,SAAQC,YAAY,QAAO,mBAAgB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE3C,OAAO,MAAMN,KAAqB,GAAGA,CAAC;EAACO,KAAK;EAAEC,IAAI,GAAG;AAAqB,CAAC,KAAK;EAC9EL,YAAY,CAAC,OAAO,CAAC;EACrB,MAAMM,KAAK,GAAGP,WAAW,CAAC,CAAC;EAC3B,MAAMQ,MAAM,GAAGN,YAAY,CAACI,IAAI,CAAC;EAEjC,oBACEF,IAAA,CAACL,YAAY;IAACU,cAAc,EAAEF,KAAK,CAACG,KAAK,CAACF,MAAM,CAACG,IAAI,CAAE;IAACC,YAAY,EAAEL,KAAK,CAACG,KAAK,CAACF,MAAM,CAACK,OAAO,CAAE;IAAAC,QAAA,EAC/FT;EAAK,CACM,CAAC;AAEnB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Badge","ComposeBadge","Text","ComposeText","useAppTheme","useHostGuard","BADGE_TOKENS","jsx","_jsx","label","tone","theme","tokens","containerColor","color","fill","contentColor","content","children","colorString","style","typography","captionMedium"],"sourceRoot":"../../../../src","sources":["atoms/badge/badge.android.tsx"],"mappings":";;AAAA,SAAQA,KAAK,IAAIC,YAAY,EAAEC,IAAI,IAAIC,WAAW,QAAO,0BAA0B;AACnF,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,YAAY,QAAO,uBAAoB;AAE/C,SAAQC,YAAY,QAAO,mBAAgB;;AAE3C;AAAA,SAAAC,GAAA,IAAAC,IAAA;AACA,OAAO,MAAMR,KAAqB,GAAGA,CAAC;EAACS,KAAK;EAAEC,IAAI,GAAG;AAAqB,CAAC,KAAK;EAC9EL,YAAY,CAAC,OAAO,CAAC;EACrB,MAAMM,KAAK,GAAGP,WAAW,CAAC,CAAC;EAC3B,MAAMQ,MAAM,GAAGN,YAAY,CAACI,IAAI,CAAC;EAEjC,oBACEF,IAAA,CAACP,YAAY;IAACY,cAAc,EAAEF,KAAK,CAACG,KAAK,CAACF,MAAM,CAACG,IAAI,CAAE;IAACC,YAAY,EAAEL,KAAK,CAACG,KAAK,CAACF,MAAM,CAACK,OAAO,CAAE;IAAAC,QAAA,eAChGV,IAAA,CAACL,WAAW;MAACW,KAAK,EAAEH,KAAK,CAACQ,WAAW,CAACP,MAAM,CAACK,OAAO,CAAE;MAACG,KAAK,EAAET,KAAK,CAACU,UAAU,CAACC,aAAc;MAAAJ,QAAA,EAC1FT;IAAK,CACK;EAAC,CACF,CAAC;AAEnB,CAAC","ignoreList":[]}
@@ -40,4 +40,43 @@ export const buttonTokens = (variant, disabled, theme) => {
40
40
  shadow: tokens.shadow
41
41
  };
42
42
  };
43
+
44
+ /** Relative luminance of a `#rrggbb` colour (any alpha ignored); `undefined` for anything else. */
45
+ const luminance = color => {
46
+ const hex = typeof color === 'string' ? /^#([0-9a-f]{6})/i.exec(color)?.[1] : undefined;
47
+ if (!hex) {
48
+ return undefined;
49
+ }
50
+ const [r, g, b] = [0, 2, 4].map(i => {
51
+ const channel = Number.parseInt(hex.slice(i, i + 2), 16) / 255;
52
+ return channel <= 0.04045 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4;
53
+ });
54
+ return 0.2126 * r + 0.7152 * g + 0.0722 * b;
55
+ };
56
+
57
+ /**
58
+ * The hex behind a token in the current appearance. Android resolves an adaptive entry to one; iOS hands the platform
59
+ * a dynamic colour instead, so there the authored entry is read and its branch picked. A system colour has none.
60
+ */
61
+ const currentHex = (token, theme) => {
62
+ const resolved = theme.color(token);
63
+ if (typeof resolved === 'string') {
64
+ return resolved;
65
+ }
66
+ const entry = token.split(':')[0].split('.').reduce((node, key) => node?.[key], theme);
67
+ if (entry && typeof entry === 'object' && 'adaptive' in entry) {
68
+ const {
69
+ dark,
70
+ light
71
+ } = entry.adaptive;
72
+ return theme.dark ? dark : light;
73
+ }
74
+ return entry;
75
+ };
76
+
77
+ /**
78
+ * The label for a button filled with an arbitrary `tint`: the on-accent white over a strong colour, the primary
79
+ * content colour over a pale one (`fill.accent.base`) — the light container tokens pair with it in both appearances.
80
+ */
81
+ export const contentOnTint = (tint, theme) => (luminance(currentHex(tint, theme)) ?? 0) > 0.4 ? 'content.primary' : 'content.on.bg';
43
82
  //# sourceMappingURL=button-tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TOKENS","accent","content","fill","shadow","destructive","glass","secondary","buttonTokens","variant","disabled","theme","tokens","disabledFill"],"sourceRoot":"../../../../src","sources":["atoms/button/button-tokens.ts"],"mappings":";;AAUA,MAAMA,MAAM,GAAG;EACbC,MAAM,EAAE;IAACC,OAAO,EAAE,eAAe;IAAEC,IAAI,EAAE,qBAAqB;IAAEC,MAAM,EAAE;EAAY,CAAC;EACrFC,WAAW,EAAE;IAACH,OAAO,EAAE,wBAAwB;IAAEC,IAAI,EAAE,0BAA0B;IAAEC,MAAM,EAAE;EAAiB,CAAC;EAC7GE,KAAK,EAAE;IAACJ,OAAO,EAAE,iBAAiB;IAAEC,IAAI,EAAE,mBAAmB;IAAEC,MAAM,EAAE;EAAW,CAAC;EACnFG,SAAS,EAAE;IAACL,OAAO,EAAE,iBAAiB;IAAEC,IAAI,EAAE,uBAAuB;IAAEC,MAAM,EAAE;EAAe;AAChG,CAAwD;AAExD,OAAO,MAAMI,YAAY,GAAGA,CAACC,OAAsB,EAAEC,QAAiB,EAAEC,KAAY,KAAK;EACvF,MAAMC,MAAM,GAAGZ,MAAM,CAACS,OAAO,CAAC;EAE9B,IAAI,CAACC,QAAQ,EAAE;IACb,OAAOE,MAAM;EACf;EAEA,MAAMC,YAAY,GAAG;IACnBZ,MAAM,EAAE,sBAAsB;IAC9BI,WAAW,EAAE,2BAA2B;IACxCC,KAAK,EAAE,uBAAuB;IAC9BC,SAAS,EAAE;EACb,CAAsD;EAEtD,KAAKI,KAAK;EAEV,OAAO;IAACT,OAAO,EAAE,sBAAsB;IAAEC,IAAI,EAAEU,YAAY,CAACJ,OAAO,CAAC;IAAEL,MAAM,EAAEQ,MAAM,CAACR;EAAM,CAAC;AAC9F,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TOKENS","accent","content","fill","shadow","destructive","glass","secondary","buttonTokens","variant","disabled","theme","tokens","disabledFill","luminance","color","hex","exec","undefined","r","g","b","map","i","channel","Number","parseInt","slice","currentHex","token","resolved","entry","split","reduce","node","key","dark","light","adaptive","contentOnTint","tint"],"sourceRoot":"../../../../src","sources":["atoms/button/button-tokens.ts"],"mappings":"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","ignoreList":[]}
@@ -1,38 +1,66 @@
1
1
  "use strict";
2
2
 
3
- import { Button as ComposeButton } from '@expo/ui/jetpack-compose';
3
+ import { Button as ComposeButton, Text as ComposeText, OutlinedButton } from '@expo/ui/jetpack-compose';
4
+ import { testID as testIdModifier } from '@expo/ui/jetpack-compose/modifiers';
4
5
  import { useSxModifiers } from '@hzblj/kara-sx';
5
6
  import { useAppTheme } from '@hzblj/kara-theme';
7
+ import { useMemo } from 'react';
6
8
  import { useHostGuard } from "../../host-context.js";
7
- import { buttonTokens } from "./button-tokens.js";
9
+ import { buttonTokens, contentOnTint } from "./button-tokens.js";
10
+
11
+ /**
12
+ * Material's filled button, in its own stadium shape. No `borderRadius` or `shadow` from the tokens: those shape the
13
+ * SwiftUI button's glossy ring, and laid over a Compose button they clip and outline a rounded rectangle around the
14
+ * pill Material draws. The label is a Compose `Text` — `@expo/ui`'s button takes composable content, not a string.
15
+ *
16
+ * Material has no glass, so `glass` is its outlined button — and a `tint` makes any variant a filled button in that
17
+ * colour, as a prominent style does on iOS. `buttonStyle` and `controlSize` are SwiftUI's alone.
18
+ */
8
19
  import { jsx as _jsx } from "react/jsx-runtime";
9
20
  export const Button = ({
10
21
  disabled = false,
11
22
  label,
12
23
  onPress,
13
24
  testID,
25
+ tint,
14
26
  variant = 'accent',
15
27
  wide = true
16
28
  }) => {
17
29
  useHostGuard('Button');
18
30
  const theme = useAppTheme();
19
31
  const tokens = buttonTokens(variant, disabled, theme);
20
- const modifiers = useSxModifiers({
21
- borderRadius: 'medium',
22
- shadow: tokens.shadow,
32
+ const sxModifiers = useSxModifiers({
23
33
  wide
24
34
  });
25
- return /*#__PURE__*/_jsx(ComposeButton, {
26
- colors: {
27
- containerColor: theme.color(tokens.fill),
28
- contentColor: theme.color(tokens.content),
29
- disabledContainerColor: theme.color(tokens.fill),
30
- disabledContentColor: theme.color(tokens.content)
35
+ const modifiers = useMemo(() => testID ? [...sxModifiers, testIdModifier(testID)] : sxModifiers, [sxModifiers, testID]);
36
+ const style = theme.typography.body;
37
+ const outlined = variant === 'glass' && !tint;
38
+ const fill = tint && !disabled ? tint : tokens.fill;
39
+ const content = tint && !disabled ? contentOnTint(tint, theme) : tokens.content;
40
+ const MaterialButton = outlined ? OutlinedButton : ComposeButton;
41
+ return /*#__PURE__*/_jsx(MaterialButton, {
42
+ colors: outlined ? {
43
+ contentColor: theme.color(content),
44
+ disabledContentColor: theme.color(content)
45
+ } : {
46
+ containerColor: theme.color(fill),
47
+ contentColor: theme.color(content),
48
+ disabledContainerColor: theme.color(fill),
49
+ disabledContentColor: theme.color(content)
31
50
  },
32
51
  enabled: !disabled,
33
52
  modifiers: modifiers,
34
53
  onClick: onPress,
35
- children: label
54
+ children: /*#__PURE__*/_jsx(ComposeText, {
55
+ color: theme.colorString(content),
56
+ style: {
57
+ fontFamily: style.fontFamily,
58
+ fontSize: style.fontSize,
59
+ fontWeight: style.fontWeight,
60
+ lineHeight: style.lineHeight
61
+ },
62
+ children: label
63
+ })
36
64
  });
37
65
  };
38
66
  //# sourceMappingURL=button.android.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Button","ComposeButton","useSxModifiers","useAppTheme","useHostGuard","buttonTokens","jsx","_jsx","disabled","label","onPress","testID","variant","wide","theme","tokens","modifiers","borderRadius","shadow","colors","containerColor","color","fill","contentColor","content","disabledContainerColor","disabledContentColor","enabled","onClick","children"],"sourceRoot":"../../../../src","sources":["atoms/button/button.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,IAAIC,aAAa,QAAO,0BAA0B;AAChE,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,YAAY,QAAO,uBAAoB;AAE/C,SAAQC,YAAY,QAAO,oBAAiB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE5C,OAAO,MAAMP,MAAuB,GAAGA,CAAC;EACtCQ,QAAQ,GAAG,KAAK;EAChBC,KAAK;EACLC,OAAO;EACPC,MAAM;EACNC,OAAO,GAAG,QAAQ;EAClBC,IAAI,GAAG;AACI,CAAC,KAAK;EACjBT,YAAY,CAAC,QAAQ,CAAC;EACtB,MAAMU,KAAK,GAAGX,WAAW,CAAC,CAAC;EAC3B,MAAMY,MAAM,GAAGV,YAAY,CAACO,OAAO,EAAEJ,QAAQ,EAAEM,KAAK,CAAC;EACrD,MAAME,SAAS,GAAGd,cAAc,CAAC;IAACe,YAAY,EAAE,QAAQ;IAAEC,MAAM,EAAEH,MAAM,CAACG,MAAM;IAAEL;EAAI,CAAC,CAAC;EAEvF,oBACEN,IAAA,CAACN,aAAa;IACZkB,MAAM,EAAE;MACNC,cAAc,EAAEN,KAAK,CAACO,KAAK,CAACN,MAAM,CAACO,IAAI,CAAC;MACxCC,YAAY,EAAET,KAAK,CAACO,KAAK,CAACN,MAAM,CAACS,OAAO,CAAC;MACzCC,sBAAsB,EAAEX,KAAK,CAACO,KAAK,CAACN,MAAM,CAACO,IAAI,CAAC;MAChDI,oBAAoB,EAAEZ,KAAK,CAACO,KAAK,CAACN,MAAM,CAACS,OAAO;IAClD,CAAE;IACFG,OAAO,EAAE,CAACnB,QAAS;IACnBQ,SAAS,EAAEA,SAAU;IACrBY,OAAO,EAAElB,OAAQ;IAAAmB,QAAA,EAEhBpB;EAAK,CACO,CAAC;AAEpB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Button","ComposeButton","Text","ComposeText","OutlinedButton","testID","testIdModifier","useSxModifiers","useAppTheme","useMemo","useHostGuard","buttonTokens","contentOnTint","jsx","_jsx","disabled","label","onPress","tint","variant","wide","theme","tokens","sxModifiers","modifiers","style","typography","body","outlined","fill","content","MaterialButton","colors","contentColor","color","disabledContentColor","containerColor","disabledContainerColor","enabled","onClick","children","colorString","fontFamily","fontSize","fontWeight","lineHeight"],"sourceRoot":"../../../../src","sources":["atoms/button/button.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,IAAIC,aAAa,EAAEC,IAAI,IAAIC,WAAW,EAAEC,cAAc,QAAO,0BAA0B;AACrG,SAAQC,MAAM,IAAIC,cAAc,QAAO,oCAAoC;AAC3E,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,OAAO,QAAO,OAAO;AAC7B,SAAQC,YAAY,QAAO,uBAAoB;AAE/C,SAAQC,YAAY,EAAEC,aAAa,QAAO,oBAAiB;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,SAAAC,GAAA,IAAAC,IAAA;AAQA,OAAO,MAAMd,MAAuB,GAAGA,CAAC;EACtCe,QAAQ,GAAG,KAAK;EAChBC,KAAK;EACLC,OAAO;EACPZ,MAAM;EACNa,IAAI;EACJC,OAAO,GAAG,QAAQ;EAClBC,IAAI,GAAG;AACI,CAAC,KAAK;EACjBV,YAAY,CAAC,QAAQ,CAAC;EACtB,MAAMW,KAAK,GAAGb,WAAW,CAAC,CAAC;EAC3B,MAAMc,MAAM,GAAGX,YAAY,CAACQ,OAAO,EAAEJ,QAAQ,EAAEM,KAAK,CAAC;EACrD,MAAME,WAAW,GAAGhB,cAAc,CAAC;IAACa;EAAI,CAAC,CAAC;EAC1C,MAAMI,SAAS,GAAGf,OAAO,CACvB,MAAOJ,MAAM,GAAG,CAAC,GAAGkB,WAAW,EAAEjB,cAAc,CAACD,MAAM,CAAC,CAAC,GAAGkB,WAAY,EACvE,CAACA,WAAW,EAAElB,MAAM,CACtB,CAAC;EACD,MAAMoB,KAAK,GAAGJ,KAAK,CAACK,UAAU,CAACC,IAAI;EACnC,MAAMC,QAAQ,GAAGT,OAAO,KAAK,OAAO,IAAI,CAACD,IAAI;EAC7C,MAAMW,IAAI,GAAGX,IAAI,IAAI,CAACH,QAAQ,GAAGG,IAAI,GAAGI,MAAM,CAACO,IAAI;EACnD,MAAMC,OAAO,GAAGZ,IAAI,IAAI,CAACH,QAAQ,GAAGH,aAAa,CAACM,IAAI,EAAEG,KAAK,CAAC,GAAGC,MAAM,CAACQ,OAAO;EAC/E,MAAMC,cAAc,GAAGH,QAAQ,GAAGxB,cAAc,GAAGH,aAAa;EAEhE,oBACEa,IAAA,CAACiB,cAAc;IACbC,MAAM,EACJJ,QAAQ,GACJ;MAACK,YAAY,EAAEZ,KAAK,CAACa,KAAK,CAACJ,OAAO,CAAC;MAAEK,oBAAoB,EAAEd,KAAK,CAACa,KAAK,CAACJ,OAAO;IAAC,CAAC,GAChF;MACEM,cAAc,EAAEf,KAAK,CAACa,KAAK,CAACL,IAAI,CAAC;MACjCI,YAAY,EAAEZ,KAAK,CAACa,KAAK,CAACJ,OAAO,CAAC;MAClCO,sBAAsB,EAAEhB,KAAK,CAACa,KAAK,CAACL,IAAI,CAAC;MACzCM,oBAAoB,EAAEd,KAAK,CAACa,KAAK,CAACJ,OAAO;IAC3C,CACL;IACDQ,OAAO,EAAE,CAACvB,QAAS;IACnBS,SAAS,EAAEA,SAAU;IACrBe,OAAO,EAAEtB,OAAQ;IAAAuB,QAAA,eAEjB1B,IAAA,CAACX,WAAW;MACV+B,KAAK,EAAEb,KAAK,CAACoB,WAAW,CAACX,OAAO,CAAE;MAClCL,KAAK,EAAE;QACLiB,UAAU,EAAEjB,KAAK,CAACiB,UAAU;QAC5BC,QAAQ,EAAElB,KAAK,CAACkB,QAAQ;QACxBC,UAAU,EAAEnB,KAAK,CAACmB,UAAU;QAC5BC,UAAU,EAAEpB,KAAK,CAACoB;MACpB,CAAE;MAAAL,QAAA,EAEDxB;IAAK,CACK;EAAC,CACA,CAAC;AAErB,CAAC","ignoreList":[]}
@@ -7,7 +7,7 @@ import { useMemo } from 'react';
7
7
  import { useHostGuard } from "../../host-context.js";
8
8
  import { Text } from "../text/index.js";
9
9
  import { VStack } from "../v-stack/index.js";
10
- import { buttonTokens } from "./button-tokens.js";
10
+ import { buttonTokens, contentOnTint } from "./button-tokens.js";
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  const STYLE_BY_VARIANT = {
13
13
  accent: 'borderedProminent',
@@ -48,6 +48,9 @@ export const Button = ({
48
48
  * button its height — without it a tinted glass button comes out shorter than every other variant.
49
49
  */
50
50
  const glassTint = style === 'glass' && resolvedTint ? theme.color(resolvedTint) : undefined;
51
+ const filled = Boolean(glassTint) || style === 'borderedProminent' || style === 'glassProminent';
52
+ // A prominent style — and tinted glass — is coloured by the tint, so a caller's own tint picks the label on it.
53
+ const content = tint && filled && !disabled ? contentOnTint(tint, theme) : tokens.content;
51
54
  const modifiers = useMemo(() => {
52
55
  const list = [buttonStyleModifier(glassTint ? 'plain' : style), controlSizeModifier(controlSize)];
53
56
  if (glassTint) {
@@ -76,7 +79,7 @@ export const Button = ({
76
79
  py: glassTint ? 's16' : undefined,
77
80
  wide: wide,
78
81
  children: /*#__PURE__*/_jsx(Text, {
79
- color: tokens.content,
82
+ color: content,
80
83
  variant: "body",
81
84
  children: label
82
85
  })
@@ -1 +1 @@
1
- {"version":3,"names":["Button","SwiftUIButton","buttonStyle","buttonStyleModifier","controlSize","controlSizeModifier","disabled","disabledModifier","glassEffect","glassEffectModifier","tint","tintModifier","useAppTheme","useMemo","useHostGuard","Text","VStack","buttonTokens","jsx","_jsx","STYLE_BY_VARIANT","accent","destructive","glass","secondary","TINT_BY_VARIANT","undefined","label","onPress","testID","variant","wide","theme","tokens","resolvedTint","style","glassTint","color","modifiers","list","push","interactive","shape","children","align","py","content"],"sourceRoot":"../../../../src","sources":["atoms/button/button.ios.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Button","SwiftUIButton","buttonStyle","buttonStyleModifier","controlSize","controlSizeModifier","disabled","disabledModifier","glassEffect","glassEffectModifier","tint","tintModifier","useAppTheme","useMemo","useHostGuard","Text","VStack","buttonTokens","contentOnTint","jsx","_jsx","STYLE_BY_VARIANT","accent","destructive","glass","secondary","TINT_BY_VARIANT","undefined","label","onPress","testID","variant","wide","theme","tokens","resolvedTint","style","glassTint","color","filled","Boolean","content","modifiers","list","push","interactive","shape","children","align","py"],"sourceRoot":"../../../../src","sources":["atoms/button/button.ios.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  import { Checkbox as ComposeCheckbox, Row, Text } from '@expo/ui/jetpack-compose';
4
- import { useAppTheme } from '@hzblj/kara-theme';
4
+ import { clickable, fillMaxWidth } from '@expo/ui/jetpack-compose/modifiers';
5
+ import { spacing, useAppTheme } from '@hzblj/kara-theme';
6
+ import { useMemo } from 'react';
5
7
  import { useHostGuard } from "../../host-context.js";
6
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ /**
10
+ * Material's checkbox, tinted with the accent. With a label it is a full-width row that toggles as a whole; the gap is
11
+ * explicit because a checkbox without a handler drops Material's 48dp touch target, and with it the space around it.
12
+ */
7
13
  export const Checkbox = ({
8
14
  disabled = false,
9
15
  label,
@@ -12,7 +18,12 @@ export const Checkbox = ({
12
18
  }) => {
13
19
  useHostGuard('Checkbox');
14
20
  const theme = useAppTheme();
21
+ const rowModifiers = useMemo(() => disabled || !onValueChange ? [fillMaxWidth()] : [fillMaxWidth(), clickable(() => onValueChange(!value))], [disabled, onValueChange, value]);
15
22
  const control = /*#__PURE__*/_jsx(ComposeCheckbox, {
23
+ colors: {
24
+ checkedColor: theme.color('fill.accent.primary'),
25
+ checkmarkColor: theme.color('content.on.bg')
26
+ },
16
27
  enabled: !disabled,
17
28
  onCheckedChange: onValueChange,
18
29
  value: value
@@ -21,9 +32,13 @@ export const Checkbox = ({
21
32
  return control;
22
33
  }
23
34
  return /*#__PURE__*/_jsxs(Row, {
35
+ horizontalArrangement: {
36
+ spacedBy: spacing.s8
37
+ },
38
+ modifiers: rowModifiers,
24
39
  verticalAlignment: "center",
25
40
  children: [control, /*#__PURE__*/_jsx(Text, {
26
- color: theme.colorString('content.primary'),
41
+ color: theme.colorString(disabled ? 'content.tertiary' : 'content.primary'),
27
42
  style: theme.typography.body,
28
43
  children: label
29
44
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["Checkbox","ComposeCheckbox","Row","Text","useAppTheme","useHostGuard","jsx","_jsx","jsxs","_jsxs","disabled","label","onValueChange","value","theme","control","enabled","onCheckedChange","verticalAlignment","children","color","colorString","style","typography","body"],"sourceRoot":"../../../../src","sources":["atoms/checkbox/checkbox.android.tsx"],"mappings":";;AAAA,SAAQA,QAAQ,IAAIC,eAAe,EAAEC,GAAG,EAAEC,IAAI,QAAO,0BAA0B;AAC/E,SAAQC,WAAW,QAAO,mBAAmB;AAE7C,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C,OAAO,MAAMT,QAA2B,GAAGA,CAAC;EAACU,QAAQ,GAAG,KAAK;EAAEC,KAAK;EAAEC,aAAa;EAAEC;AAAoB,CAAC,KAAK;EAC7GR,YAAY,CAAC,UAAU,CAAC;EACxB,MAAMS,KAAK,GAAGV,WAAW,CAAC,CAAC;EAC3B,MAAMW,OAAO,gBAAGR,IAAA,CAACN,eAAe;IAACe,OAAO,EAAE,CAACN,QAAS;IAACO,eAAe,EAAEL,aAAc;IAACC,KAAK,EAAEA;EAAM,CAAE,CAAC;EAErG,IAAI,CAACF,KAAK,EAAE;IACV,OAAOI,OAAO;EAChB;EAEA,oBACEN,KAAA,CAACP,GAAG;IAACgB,iBAAiB,EAAC,QAAQ;IAAAC,QAAA,GAC5BJ,OAAO,eACRR,IAAA,CAACJ,IAAI;MAACiB,KAAK,EAAEN,KAAK,CAACO,WAAW,CAAC,iBAAiB,CAAE;MAACC,KAAK,EAAER,KAAK,CAACS,UAAU,CAACC,IAAK;MAAAL,QAAA,EAC7ER;IAAK,CACF,CAAC;EAAA,CACJ,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Checkbox","ComposeCheckbox","Row","Text","clickable","fillMaxWidth","spacing","useAppTheme","useMemo","useHostGuard","jsx","_jsx","jsxs","_jsxs","disabled","label","onValueChange","value","theme","rowModifiers","control","colors","checkedColor","color","checkmarkColor","enabled","onCheckedChange","horizontalArrangement","spacedBy","s8","modifiers","verticalAlignment","children","colorString","style","typography","body"],"sourceRoot":"../../../../src","sources":["atoms/checkbox/checkbox.android.tsx"],"mappings":";;AAAA,SAAQA,QAAQ,IAAIC,eAAe,EAAEC,GAAG,EAAEC,IAAI,QAAO,0BAA0B;AAC/E,SAAQC,SAAS,EAAEC,YAAY,QAAO,oCAAoC;AAC1E,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AACtD,SAAQC,OAAO,QAAO,OAAO;AAE7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C;AACA;AACA;AACA;AACA,OAAO,MAAMb,QAA2B,GAAGA,CAAC;EAACc,QAAQ,GAAG,KAAK;EAAEC,KAAK;EAAEC,aAAa;EAAEC;AAAoB,CAAC,KAAK;EAC7GR,YAAY,CAAC,UAAU,CAAC;EACxB,MAAMS,KAAK,GAAGX,WAAW,CAAC,CAAC;EAC3B,MAAMY,YAAY,GAAGX,OAAO,CAC1B,MAAOM,QAAQ,IAAI,CAACE,aAAa,GAAG,CAACX,YAAY,CAAC,CAAC,CAAC,GAAG,CAACA,YAAY,CAAC,CAAC,EAAED,SAAS,CAAC,MAAMY,aAAa,CAAC,CAACC,KAAK,CAAC,CAAC,CAAE,EAChH,CAACH,QAAQ,EAAEE,aAAa,EAAEC,KAAK,CACjC,CAAC;EACD,MAAMG,OAAO,gBACXT,IAAA,CAACV,eAAe;IACdoB,MAAM,EAAE;MAACC,YAAY,EAAEJ,KAAK,CAACK,KAAK,CAAC,qBAAqB,CAAC;MAAEC,cAAc,EAAEN,KAAK,CAACK,KAAK,CAAC,eAAe;IAAC,CAAE;IACzGE,OAAO,EAAE,CAACX,QAAS;IACnBY,eAAe,EAAEV,aAAc;IAC/BC,KAAK,EAAEA;EAAM,CACd,CACF;EAED,IAAI,CAACF,KAAK,EAAE;IACV,OAAOK,OAAO;EAChB;EAEA,oBACEP,KAAA,CAACX,GAAG;IAACyB,qBAAqB,EAAE;MAACC,QAAQ,EAAEtB,OAAO,CAACuB;IAAE,CAAE;IAACC,SAAS,EAAEX,YAAa;IAACY,iBAAiB,EAAC,QAAQ;IAAAC,QAAA,GACpGZ,OAAO,eACRT,IAAA,CAACR,IAAI;MAACoB,KAAK,EAAEL,KAAK,CAACe,WAAW,CAACnB,QAAQ,GAAG,kBAAkB,GAAG,iBAAiB,CAAE;MAACoB,KAAK,EAAEhB,KAAK,CAACiB,UAAU,CAACC,IAAK;MAAAJ,QAAA,EAC7GjB;IAAK,CACF,CAAC;EAAA,CACJ,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ import { DateTimePicker } from '@expo/ui/community/datetime-picker';
4
+ import { useAppTheme } from '@hzblj/kara-theme';
5
+ import { useCallback, useState } from 'react';
6
+ import { Pressable } from "../pressable/index.js";
7
+ import { RnText } from "../rn-text/index.js";
8
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const formatted = (value, mode) => {
10
+ if (mode === 'time') {
11
+ return value.toLocaleTimeString(undefined, {
12
+ hour: '2-digit',
13
+ minute: '2-digit'
14
+ });
15
+ }
16
+ const date = value.toLocaleDateString(undefined, {
17
+ day: 'numeric',
18
+ month: 'short',
19
+ year: 'numeric'
20
+ });
21
+ return mode === 'datetime' ? `${date} ${value.toLocaleTimeString(undefined, {
22
+ hour: '2-digit',
23
+ minute: '2-digit'
24
+ })}` : date;
25
+ };
26
+
27
+ /**
28
+ * The value as a field that opens Material's date picker dialog on a tap. Android's picker *is* a dialog — mounted, it
29
+ * opens — so it is mounted only while open, and unmounted on confirm or dismiss, as the component asks its caller to.
30
+ */
31
+ export const DatePicker = ({
32
+ max,
33
+ min,
34
+ mode = 'date',
35
+ onValueChange,
36
+ testID,
37
+ value
38
+ }) => {
39
+ const theme = useAppTheme();
40
+ const [open, setOpen] = useState(false);
41
+ const show = useCallback(() => setOpen(true), []);
42
+ const hide = useCallback(() => setOpen(false), []);
43
+ const onChange = useCallback((_event, date) => {
44
+ setOpen(false);
45
+ onValueChange?.(date);
46
+ }, [onValueChange]);
47
+ return /*#__PURE__*/_jsxs(_Fragment, {
48
+ children: [/*#__PURE__*/_jsx(Pressable, {
49
+ alignSelf: "flex-start",
50
+ bg: "fill.tertiary",
51
+ borderRadius: "medium",
52
+ onPress: show,
53
+ px: "s12",
54
+ py: "s8",
55
+ testID: testID,
56
+ children: /*#__PURE__*/_jsx(RnText, {
57
+ variant: "body",
58
+ children: formatted(value, mode)
59
+ })
60
+ }), open ? /*#__PURE__*/_jsx(DateTimePicker, {
61
+ accentColor: theme.colorString('fill.accent.primary'),
62
+ maximumDate: max,
63
+ minimumDate: min,
64
+ mode: mode,
65
+ onDismiss: hide,
66
+ onValueChange: onChange,
67
+ presentation: "dialog",
68
+ value: value
69
+ }) : null]
70
+ });
71
+ };
72
+ //# sourceMappingURL=date-picker.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DateTimePicker","useAppTheme","useCallback","useState","Pressable","RnText","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","formatted","value","mode","toLocaleTimeString","undefined","hour","minute","date","toLocaleDateString","day","month","year","DatePicker","max","min","onValueChange","testID","theme","open","setOpen","show","hide","onChange","_event","children","alignSelf","bg","borderRadius","onPress","px","py","variant","accentColor","colorString","maximumDate","minimumDate","onDismiss","presentation"],"sourceRoot":"../../../../src","sources":["atoms/date-picker/date-picker.android.tsx"],"mappings":";;AAAA,SAAQA,cAAc,QAAO,oCAAoC;AACjE,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,WAAW,EAAEC,QAAQ,QAAO,OAAO;AAE3C,SAAQC,SAAS,QAAO,uBAAc;AACtC,SAAQC,MAAM,QAAO,qBAAY;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAGjC,MAAMC,SAAS,GAAGA,CAACC,KAAW,EAAEC,IAAoB,KAAa;EAC/D,IAAIA,IAAI,KAAK,MAAM,EAAE;IACnB,OAAOD,KAAK,CAACE,kBAAkB,CAACC,SAAS,EAAE;MAACC,IAAI,EAAE,SAAS;MAAEC,MAAM,EAAE;IAAS,CAAC,CAAC;EAClF;EAEA,MAAMC,IAAI,GAAGN,KAAK,CAACO,kBAAkB,CAACJ,SAAS,EAAE;IAACK,GAAG,EAAE,SAAS;IAAEC,KAAK,EAAE,OAAO;IAAEC,IAAI,EAAE;EAAS,CAAC,CAAC;EAEnG,OAAOT,IAAI,KAAK,UAAU,GACtB,GAAGK,IAAI,IAAIN,KAAK,CAACE,kBAAkB,CAACC,SAAS,EAAE;IAACC,IAAI,EAAE,SAAS;IAAEC,MAAM,EAAE;EAAS,CAAC,CAAC,EAAE,GACtFC,IAAI;AACV,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMK,UAA+B,GAAGA,CAAC;EAC9CC,GAAG;EACHC,GAAG;EACHZ,IAAI,GAAG,MAAM;EACba,aAAa;EACbC,MAAM;EACNf;AACe,CAAC,KAAK;EACrB,MAAMgB,KAAK,GAAG5B,WAAW,CAAC,CAAC;EAC3B,MAAM,CAAC6B,IAAI,EAAEC,OAAO,CAAC,GAAG5B,QAAQ,CAAC,KAAK,CAAC;EAEvC,MAAM6B,IAAI,GAAG9B,WAAW,CAAC,MAAM6B,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EACjD,MAAME,IAAI,GAAG/B,WAAW,CAAC,MAAM6B,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;EAElD,MAAMG,QAAQ,GAAGhC,WAAW,CAC1B,CAACiC,MAAe,EAAEhB,IAAU,KAAK;IAC/BY,OAAO,CAAC,KAAK,CAAC;IACdJ,aAAa,GAAGR,IAAI,CAAC;EACvB,CAAC,EACD,CAACQ,aAAa,CAChB,CAAC;EAED,oBACEhB,KAAA,CAAAF,SAAA;IAAA2B,QAAA,gBACE7B,IAAA,CAACH,SAAS;MACRiC,SAAS,EAAC,YAAY;MACtBC,EAAE,EAAC,eAAe;MAClBC,YAAY,EAAC,QAAQ;MACrBC,OAAO,EAAER,IAAK;MACdS,EAAE,EAAC,KAAK;MACRC,EAAE,EAAC,IAAI;MACPd,MAAM,EAAEA,MAAO;MAAAQ,QAAA,eAEf7B,IAAA,CAACF,MAAM;QAACsC,OAAO,EAAC,MAAM;QAAAP,QAAA,EAAExB,SAAS,CAACC,KAAK,EAAEC,IAAI;MAAC,CAAS;IAAC,CAC/C,CAAC,EACXgB,IAAI,gBACHvB,IAAA,CAACP,cAAc;MACb4C,WAAW,EAAEf,KAAK,CAACgB,WAAW,CAAC,qBAAqB,CAAE;MACtDC,WAAW,EAAErB,GAAI;MACjBsB,WAAW,EAAErB,GAAI;MACjBZ,IAAI,EAAEA,IAAK;MACXkC,SAAS,EAAEf,IAAK;MAChBN,aAAa,EAAEO,QAAS;MACxBe,YAAY,EAAC,QAAQ;MACrBpC,KAAK,EAAEA;IAAM,CACd,CAAC,GACA,IAAI;EAAA,CACR,CAAC;AAEP,CAAC","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  import { DateTimePicker } from '@expo/ui/community/datetime-picker';
4
4
  import { useCallback } from 'react';
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
+ /** The system's compact date picker, inline: a tap on it opens the calendar popover UIKit owns. */
6
7
  export const DatePicker = ({
7
8
  max,
8
9
  min,
@@ -11,18 +12,14 @@ export const DatePicker = ({
11
12
  testID,
12
13
  value
13
14
  }) => {
14
- const onChange = useCallback((_event, date) => {
15
- if (date) {
16
- onValueChange?.(date);
17
- }
18
- }, [onValueChange]);
15
+ const onChange = useCallback((_event, date) => onValueChange?.(date), [onValueChange]);
19
16
  return /*#__PURE__*/_jsx(DateTimePicker, {
20
17
  maximumDate: max,
21
18
  minimumDate: min,
22
19
  mode: mode,
23
- onChange: onChange,
20
+ onValueChange: onChange,
24
21
  testID: testID,
25
22
  value: value
26
23
  });
27
24
  };
28
- //# sourceMappingURL=date-picker.js.map
25
+ //# sourceMappingURL=date-picker.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DateTimePicker","useCallback","jsx","_jsx","DatePicker","max","min","mode","onValueChange","testID","value","onChange","_event","date","maximumDate","minimumDate"],"sourceRoot":"../../../../src","sources":["atoms/date-picker/date-picker.ios.tsx"],"mappings":";;AAAA,SAAQA,cAAc,QAAO,oCAAoC;AACjE,SAAQC,WAAW,QAAO,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAIjC;AACA,OAAO,MAAMC,UAA+B,GAAGA,CAAC;EAC9CC,GAAG;EACHC,GAAG;EACHC,IAAI,GAAG,MAAM;EACbC,aAAa;EACbC,MAAM;EACNC;AACe,CAAC,KAAK;EACrB,MAAMC,QAAQ,GAAGV,WAAW,CAAC,CAACW,MAAe,EAAEC,IAAU,KAAKL,aAAa,GAAGK,IAAI,CAAC,EAAE,CAACL,aAAa,CAAC,CAAC;EAErG,oBACEL,IAAA,CAACH,cAAc;IACbc,WAAW,EAAET,GAAI;IACjBU,WAAW,EAAET,GAAI;IACjBC,IAAI,EAAEA,IAAK;IACXC,aAAa,EAAEG,QAAS;IACxBF,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA;EAAM,CACd,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
- export * from "./date-picker.js";
3
+ export * from './date-picker';
4
4
  export * from "./date-picker.types.js";
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["atoms/date-picker/index.ts"],"mappings":";;AAAA,cAAc,kBAAe;AAC7B,cAAc,wBAAqB","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["atoms/date-picker/index.ts"],"mappings":";;AAAA,cAAc,eAAe;AAC7B,cAAc,wBAAqB","ignoreList":[]}
@@ -14,9 +14,11 @@ export const Fab = ({
14
14
  return /*#__PURE__*/_jsx(FloatingActionButton, {
15
15
  containerColor: theme.color('fill.accent.primary'),
16
16
  onClick: onPress,
17
- children: /*#__PURE__*/_jsx(Icon, {
18
- color: "content.on.bg",
19
- name: name
17
+ children: /*#__PURE__*/_jsx(FloatingActionButton.Icon, {
18
+ children: /*#__PURE__*/_jsx(Icon, {
19
+ color: "content.on.bg",
20
+ name: name
21
+ })
20
22
  })
21
23
  });
22
24
  };
@@ -1 +1 @@
1
- {"version":3,"names":["FloatingActionButton","useAppTheme","useHostGuard","Icon","jsx","_jsx","Fab","name","onPress","theme","containerColor","color","onClick","children"],"sourceRoot":"../../../../src","sources":["atoms/fab/fab.android.tsx"],"mappings":";;AAAA,SAAQA,oBAAoB,QAAO,0BAA0B;AAC7D,SAAQC,WAAW,QAAO,mBAAmB;AAE7C,SAAQC,YAAY,QAAO,uBAAoB;AAC/C,SAAQC,IAAI,QAAO,kBAAS;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG5B,OAAO,MAAMC,GAAiB,GAAGA,CAAC;EAACC,IAAI;EAAEC;AAAiB,CAAC,KAAK;EAC9DN,YAAY,CAAC,KAAK,CAAC;EAEnB,MAAMO,KAAK,GAAGR,WAAW,CAAC,CAAC;EAE3B,oBACEI,IAAA,CAACL,oBAAoB;IAACU,cAAc,EAAED,KAAK,CAACE,KAAK,CAAC,qBAAqB,CAAE;IAACC,OAAO,EAAEJ,OAAQ;IAAAK,QAAA,eACzFR,IAAA,CAACF,IAAI;MAACQ,KAAK,EAAC,eAAe;MAACJ,IAAI,EAAEA;IAAK,CAAE;EAAC,CACtB,CAAC;AAE3B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["FloatingActionButton","useAppTheme","useHostGuard","Icon","jsx","_jsx","Fab","name","onPress","theme","containerColor","color","onClick","children"],"sourceRoot":"../../../../src","sources":["atoms/fab/fab.android.tsx"],"mappings":";;AAAA,SAAQA,oBAAoB,QAAO,0BAA0B;AAC7D,SAAQC,WAAW,QAAO,mBAAmB;AAE7C,SAAQC,YAAY,QAAO,uBAAoB;AAC/C,SAAQC,IAAI,QAAO,kBAAS;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG5B,OAAO,MAAMC,GAAiB,GAAGA,CAAC;EAACC,IAAI;EAAEC;AAAiB,CAAC,KAAK;EAC9DN,YAAY,CAAC,KAAK,CAAC;EAEnB,MAAMO,KAAK,GAAGR,WAAW,CAAC,CAAC;EAE3B,oBACEI,IAAA,CAACL,oBAAoB;IAACU,cAAc,EAAED,KAAK,CAACE,KAAK,CAAC,qBAAqB,CAAE;IAACC,OAAO,EAAEJ,OAAQ;IAAAK,QAAA,eAEzFR,IAAA,CAACL,oBAAoB,CAACG,IAAI;MAAAU,QAAA,eACxBR,IAAA,CAACF,IAAI;QAACQ,KAAK,EAAC,eAAe;QAACJ,IAAI,EAAEA;MAAK,CAAE;IAAC,CACjB;EAAC,CACR,CAAC;AAE3B,CAAC","ignoreList":[]}
@@ -2,7 +2,10 @@
2
2
 
3
3
  import { Box } from "../box/index.js";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- /** The capsule drawn where there is no Liquid Glass to draw. */
5
+ /**
6
+ * The capsule drawn where there is no Liquid Glass to draw: the glass buttons' own translucent fill, so whatever sits
7
+ * on the glass — usually content meant for a colourful backdrop — stays readable, the way it would on real glass.
8
+ */
6
9
  export const GlassFallback = ({
7
10
  children,
8
11
  interactive: _interactive,
@@ -11,7 +14,7 @@ export const GlassFallback = ({
11
14
  }) => /*#__PURE__*/_jsx(Box, {
12
15
  borderRadius: "full",
13
16
  ...props,
14
- bg: tint ?? 'fill.tertiary',
17
+ bg: tint ?? 'btn.bg.glass.base',
15
18
  children: children
16
19
  });
17
20
  //# sourceMappingURL=glass-fallback.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Box","jsx","_jsx","GlassFallback","children","interactive","_interactive","tint","props","borderRadius","bg"],"sourceRoot":"../../../../src","sources":["atoms/glass-view/glass-fallback.tsx"],"mappings":";;AAAA,SAAQA,GAAG,QAAO,iBAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG1B;AACA,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAACC,QAAQ;EAAEC,WAAW,EAAEC,YAAY;EAAEC,IAAI;EAAE,GAAGC;AAAqB,CAAC,kBACjGN,IAAA,CAACF,GAAG;EAACS,YAAY,EAAC,MAAM;EAAA,GAAKD,KAAK;EAAEE,EAAE,EAAEH,IAAI,IAAI,eAAgB;EAAAH,QAAA,EAC7DA;AAAQ,CACN,CACN","ignoreList":[]}
1
+ {"version":3,"names":["Box","jsx","_jsx","GlassFallback","children","interactive","_interactive","tint","props","borderRadius","bg"],"sourceRoot":"../../../../src","sources":["atoms/glass-view/glass-fallback.tsx"],"mappings":";;AAAA,SAAQA,GAAG,QAAO,iBAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG1B;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAACC,QAAQ;EAAEC,WAAW,EAAEC,YAAY;EAAEC,IAAI;EAAE,GAAGC;AAAqB,CAAC,kBACjGN,IAAA,CAACF,GAAG;EAACS,YAAY,EAAC,MAAM;EAAA,GAAKD,KAAK;EAAEE,EAAE,EAAEH,IAAI,IAAI,mBAAoB;EAAAH,QAAA,EACjEA;AAAQ,CACN,CACN","ignoreList":[]}
@@ -1,26 +1,24 @@
1
1
  "use strict";
2
2
 
3
- import MaterialIcons from '@expo/vector-icons/MaterialIcons';
3
+ import { iconResourceName } from '@hzblj/kara-native';
4
+ import { DrawableIcon } from '@hzblj/kara-native/jetpack-compose';
4
5
  import { spacing, useAppTheme } from '@hzblj/kara-theme';
5
6
  import { useHostGuard } from "../../host-context.js";
6
- import { RnView } from "../rn-view/index.js";
7
- import { MATERIAL_ICONS } from "./icon-names.js";
8
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
+ /** The app's icon as the vector drawable the config plugin generated from the SVG, drawn by Material's `Icon`. */
9
9
  export const Icon = ({
10
+ accessibilityLabel,
10
11
  color = 'content.primary',
11
12
  name,
12
- size = 's24',
13
- testID
13
+ size = 's24'
14
14
  }) => {
15
15
  useHostGuard('Icon');
16
16
  const theme = useAppTheme();
17
- return /*#__PURE__*/_jsx(RnView, {
18
- children: /*#__PURE__*/_jsx(MaterialIcons, {
19
- color: theme.color(color),
20
- name: MATERIAL_ICONS[name],
21
- size: spacing[size],
22
- testID: testID
23
- })
17
+ return /*#__PURE__*/_jsx(DrawableIcon, {
18
+ accessibilityLabel: accessibilityLabel,
19
+ iconColor: theme.color(color),
20
+ iconSize: spacing[size],
21
+ resourceName: iconResourceName(name)
24
22
  });
25
23
  };
26
24
  //# sourceMappingURL=icon.android.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MaterialIcons","spacing","useAppTheme","useHostGuard","RnView","MATERIAL_ICONS","jsx","_jsx","Icon","color","name","size","testID","theme","children"],"sourceRoot":"../../../../src","sources":["atoms/icon/icon.android.tsx"],"mappings":";;AAAA,OAAOA,aAAa,MAAM,kCAAkC;AAC5D,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AACtD,SAAQC,YAAY,QAAO,uBAAoB;AAC/C,SAAQC,MAAM,QAAO,qBAAY;AAEjC,SAAQC,cAAc,QAAO,iBAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE3C,OAAO,MAAMC,IAAmB,GAAGA,CAAC;EAACC,KAAK,GAAG,iBAAiB;EAAEC,IAAI;EAAEC,IAAI,GAAG,KAAK;EAAEC;AAAiB,CAAC,KAAK;EACzGT,YAAY,CAAC,MAAM,CAAC;EACpB,MAAMU,KAAK,GAAGX,WAAW,CAAC,CAAC;EAE3B,oBACEK,IAAA,CAACH,MAAM;IAAAU,QAAA,eACLP,IAAA,CAACP,aAAa;MAACS,KAAK,EAAEI,KAAK,CAACJ,KAAK,CAACA,KAAK,CAAE;MAACC,IAAI,EAAEL,cAAc,CAACK,IAAI,CAAE;MAACC,IAAI,EAAEV,OAAO,CAACU,IAAI,CAAE;MAACC,MAAM,EAAEA;IAAO,CAAE;EAAC,CACvG,CAAC;AAEb,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["iconResourceName","DrawableIcon","spacing","useAppTheme","useHostGuard","jsx","_jsx","Icon","accessibilityLabel","color","name","size","theme","iconColor","iconSize","resourceName"],"sourceRoot":"../../../../src","sources":["atoms/icon/icon.android.tsx"],"mappings":";;AAAA,SAAQA,gBAAgB,QAAO,oBAAoB;AACnD,SAAQC,YAAY,QAAO,oCAAoC;AAC/D,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AAEtD,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C;AACA,OAAO,MAAMC,IAAmB,GAAGA,CAAC;EAACC,kBAAkB;EAAEC,KAAK,GAAG,iBAAiB;EAAEC,IAAI;EAAEC,IAAI,GAAG;AAAgB,CAAC,KAAK;EACrHP,YAAY,CAAC,MAAM,CAAC;EACpB,MAAMQ,KAAK,GAAGT,WAAW,CAAC,CAAC;EAE3B,oBACEG,IAAA,CAACL,YAAY;IACXO,kBAAkB,EAAEA,kBAAmB;IACvCK,SAAS,EAAED,KAAK,CAACH,KAAK,CAACA,KAAK,CAAE;IAC9BK,QAAQ,EAAEZ,OAAO,CAACS,IAAI,CAAE;IACxBI,YAAY,EAAEf,gBAAgB,CAACU,IAAI;EAAE,CACtC,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -1,11 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  import { Image } from '@expo/ui/swift-ui';
4
+ import { accessibilityHidden, frame, accessibilityLabel as labelModifier, resizable } from '@expo/ui/swift-ui/modifiers';
5
+ import { iconResourceName } from '@hzblj/kara-native';
4
6
  import { spacing, useAppTheme } from '@hzblj/kara-theme';
7
+ import { useMemo } from 'react';
5
8
  import { useHostGuard } from "../../host-context.js";
6
- import { SF_SYMBOLS } from "./icon-names.js";
7
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
+ /**
11
+ * The app's icon from its asset catalog — the template image set the config plugin generated from the SVG, vector data
12
+ * kept, so `resizable()` scales it crisply to the token size and the platform tints it.
13
+ */
8
14
  export const Icon = ({
15
+ accessibilityLabel,
9
16
  color = 'content.primary',
10
17
  name,
11
18
  size = 's24',
@@ -13,10 +20,15 @@ export const Icon = ({
13
20
  }) => {
14
21
  useHostGuard('Icon');
15
22
  const theme = useAppTheme();
23
+ const side = spacing[size];
24
+ const modifiers = useMemo(() => [resizable(), frame({
25
+ height: side,
26
+ width: side
27
+ }), accessibilityLabel ? labelModifier(accessibilityLabel) : accessibilityHidden(true)], [accessibilityLabel, side]);
16
28
  return /*#__PURE__*/_jsx(Image, {
29
+ assetName: iconResourceName(name),
17
30
  color: theme.color(color),
18
- size: spacing[size],
19
- systemName: SF_SYMBOLS[name],
31
+ modifiers: modifiers,
20
32
  testID: testID
21
33
  });
22
34
  };
@@ -1 +1 @@
1
- {"version":3,"names":["Image","spacing","useAppTheme","useHostGuard","SF_SYMBOLS","jsx","_jsx","Icon","color","name","size","testID","theme","systemName"],"sourceRoot":"../../../../src","sources":["atoms/icon/icon.ios.tsx"],"mappings":";;AAAA,SAAQA,KAAK,QAAO,mBAAmB;AACvC,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AAEtD,SAAQC,YAAY,QAAO,uBAAoB;AAE/C,SAAQC,UAAU,QAAO,iBAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEvC,OAAO,MAAMC,IAAmB,GAAGA,CAAC;EAACC,KAAK,GAAG,iBAAiB;EAAEC,IAAI;EAAEC,IAAI,GAAG,KAAK;EAAEC;AAAiB,CAAC,KAAK;EACzGR,YAAY,CAAC,MAAM,CAAC;EACpB,MAAMS,KAAK,GAAGV,WAAW,CAAC,CAAC;EAE3B,oBACEI,IAAA,CAACN,KAAK;IAACQ,KAAK,EAAEI,KAAK,CAACJ,KAAK,CAACA,KAAK,CAAE;IAACE,IAAI,EAAET,OAAO,CAACS,IAAI,CAAE;IAACG,UAAU,EAAET,UAAU,CAACK,IAAI,CAAc;IAACE,MAAM,EAAEA;EAAO,CAAE,CAAC;AAEvH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Image","accessibilityHidden","frame","accessibilityLabel","labelModifier","resizable","iconResourceName","spacing","useAppTheme","useMemo","useHostGuard","jsx","_jsx","Icon","color","name","size","testID","theme","side","modifiers","height","width","assetName"],"sourceRoot":"../../../../src","sources":["atoms/icon/icon.ios.tsx"],"mappings":";;AAAA,SAAQA,KAAK,QAAO,mBAAmB;AACvC,SAAQC,mBAAmB,EAAEC,KAAK,EAAEC,kBAAkB,IAAIC,aAAa,EAAEC,SAAS,QAAO,6BAA6B;AACtH,SAAQC,gBAAgB,QAAO,oBAAoB;AACnD,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AACtD,SAAQC,OAAO,QAAO,OAAO;AAE7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG/C;AACA;AACA;AACA;AACA,OAAO,MAAMC,IAAmB,GAAGA,CAAC;EAClCV,kBAAkB;EAClBW,KAAK,GAAG,iBAAiB;EACzBC,IAAI;EACJC,IAAI,GAAG,KAAK;EACZC;AACS,CAAC,KAAK;EACfP,YAAY,CAAC,MAAM,CAAC;EACpB,MAAMQ,KAAK,GAAGV,WAAW,CAAC,CAAC;EAC3B,MAAMW,IAAI,GAAGZ,OAAO,CAACS,IAAI,CAAC;EAE1B,MAAMI,SAAS,GAAGX,OAAO,CACvB,MAAM,CACJJ,SAAS,CAAC,CAAC,EACXH,KAAK,CAAC;IAACmB,MAAM,EAAEF,IAAI;IAAEG,KAAK,EAAEH;EAAI,CAAC,CAAC,EAClChB,kBAAkB,GAAGC,aAAa,CAACD,kBAAkB,CAAC,GAAGF,mBAAmB,CAAC,IAAI,CAAC,CACnF,EACD,CAACE,kBAAkB,EAAEgB,IAAI,CAC3B,CAAC;EAED,oBAAOP,IAAA,CAACZ,KAAK;IAACuB,SAAS,EAAEjB,gBAAgB,CAACS,IAAI,CAAE;IAACD,KAAK,EAAEI,KAAK,CAACJ,KAAK,CAACA,KAAK,CAAE;IAACM,SAAS,EAAEA,SAAU;IAACH,MAAM,EAAEA;EAAO,CAAE,CAAC;AACtH,CAAC","ignoreList":[]}
@@ -2,5 +2,4 @@
2
2
 
3
3
  export * from './icon';
4
4
  export * from "./icon.types.js";
5
- export * from "./icon-names.js";
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["atoms/icon/index.ts"],"mappings":";;AAAA,cAAc,QAAQ;AACtB,cAAc,iBAAc;AAC5B,cAAc,iBAAc","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["atoms/icon/index.ts"],"mappings":";;AAAA,cAAc,QAAQ;AACtB,cAAc,iBAAc","ignoreList":[]}
@@ -9,7 +9,6 @@ export * from "./card/index.js";
9
9
  export * from "./checkbox/index.js";
10
10
  export * from "./chip/index.js";
11
11
  export * from "./color-picker/index.js";
12
- export * from "./countdown/index.js";
13
12
  export * from "./date-picker/index.js";
14
13
  export * from "./divider/index.js";
15
14
  export * from "./fab/index.js";
@@ -25,6 +24,7 @@ export * from "./picker/index.js";
25
24
  export * from "./pressable/index.js";
26
25
  export * from "./progress/index.js";
27
26
  export * from "./rn-flat-list/index.js";
27
+ export * from "./rn-icon/index.js";
28
28
  export * from "./rn-scroll-view/index.js";
29
29
  export * from "./rn-section-list/index.js";
30
30
  export * from "./rn-text/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["atoms/index.ts"],"mappings":";;AAAA,cAAc,+BAAsB;AACpC,cAAc,mBAAU;AACxB,cAAc,kBAAS;AACvB,cAAc,gBAAO;AACrB,cAAc,mBAAU;AACxB,cAAc,iBAAQ;AACtB,cAAc,qBAAY;AAC1B,cAAc,iBAAQ;AACtB,cAAc,yBAAgB;AAC9B,cAAc,sBAAa;AAC3B,cAAc,wBAAe;AAC7B,cAAc,oBAAW;AACzB,cAAc,gBAAO;AACrB,cAAc,uBAAc;AAC5B,cAAc,uBAAc;AAC5B,cAAc,oBAAW;AACzB,cAAc,iBAAQ;AACtB,cAAc,wBAAe;AAC7B,cAAc,kBAAS;AACvB,cAAc,mBAAU;AACxB,cAAc,iBAAQ;AACtB,cAAc,mBAAU;AACxB,cAAc,sBAAa;AAC3B,cAAc,qBAAY;AAC1B,cAAc,yBAAgB;AAC9B,cAAc,2BAAkB;AAChC,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,oBAAW;AACzB,cAAc,wBAAe;AAC7B,cAAc,8BAAqB;AACnC,cAAc,qBAAY;AAC1B,cAAc,mBAAU;AACxB,cAAc,mBAAU;AACxB,cAAc,oBAAW;AACzB,cAAc,mBAAU;AACxB,cAAc,iBAAQ;AACtB,cAAc,uBAAc;AAC5B,cAAc,oBAAW;AACzB,cAAc,oBAAW","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["atoms/index.ts"],"mappings":";;AAAA,cAAc,+BAAsB;AACpC,cAAc,mBAAU;AACxB,cAAc,kBAAS;AACvB,cAAc,gBAAO;AACrB,cAAc,mBAAU;AACxB,cAAc,iBAAQ;AACtB,cAAc,qBAAY;AAC1B,cAAc,iBAAQ;AACtB,cAAc,yBAAgB;AAC9B,cAAc,wBAAe;AAC7B,cAAc,oBAAW;AACzB,cAAc,gBAAO;AACrB,cAAc,uBAAc;AAC5B,cAAc,uBAAc;AAC5B,cAAc,oBAAW;AACzB,cAAc,iBAAQ;AACtB,cAAc,wBAAe;AAC7B,cAAc,kBAAS;AACvB,cAAc,mBAAU;AACxB,cAAc,iBAAQ;AACtB,cAAc,mBAAU;AACxB,cAAc,sBAAa;AAC3B,cAAc,qBAAY;AAC1B,cAAc,yBAAgB;AAC9B,cAAc,oBAAW;AACzB,cAAc,2BAAkB;AAChC,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,oBAAW;AACzB,cAAc,wBAAe;AAC7B,cAAc,8BAAqB;AACnC,cAAc,qBAAY;AAC1B,cAAc,mBAAU;AACxB,cAAc,mBAAU;AACxB,cAAc,oBAAW;AACzB,cAAc,mBAAU;AACxB,cAAc,iBAAQ;AACtB,cAAc,uBAAc;AAC5B,cAAc,oBAAW;AACzB,cAAc,oBAAW","ignoreList":[]}