@hzblj/kara-components 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/lib/module/atoms/badge/badge.android.js +8 -2
  3. package/lib/module/atoms/badge/badge.android.js.map +1 -1
  4. package/lib/module/atoms/button/button-tokens.js +39 -0
  5. package/lib/module/atoms/button/button-tokens.js.map +1 -1
  6. package/lib/module/atoms/button/button.android.js +40 -12
  7. package/lib/module/atoms/button/button.android.js.map +1 -1
  8. package/lib/module/atoms/button/button.ios.js +5 -2
  9. package/lib/module/atoms/button/button.ios.js.map +1 -1
  10. package/lib/module/atoms/checkbox/checkbox.android.js +17 -2
  11. package/lib/module/atoms/checkbox/checkbox.android.js.map +1 -1
  12. package/lib/module/atoms/date-picker/date-picker.android.js +72 -0
  13. package/lib/module/atoms/date-picker/date-picker.android.js.map +1 -0
  14. package/lib/module/atoms/date-picker/{date-picker.js → date-picker.ios.js} +4 -7
  15. package/lib/module/atoms/date-picker/date-picker.ios.js.map +1 -0
  16. package/lib/module/atoms/date-picker/index.js +1 -1
  17. package/lib/module/atoms/date-picker/index.js.map +1 -1
  18. package/lib/module/atoms/fab/fab.android.js +5 -3
  19. package/lib/module/atoms/fab/fab.android.js.map +1 -1
  20. package/lib/module/atoms/glass-view/glass-fallback.js +5 -2
  21. package/lib/module/atoms/glass-view/glass-fallback.js.map +1 -1
  22. package/lib/module/atoms/icon/icon.android.js +10 -12
  23. package/lib/module/atoms/icon/icon.android.js.map +1 -1
  24. package/lib/module/atoms/icon/icon.ios.js +15 -3
  25. package/lib/module/atoms/icon/icon.ios.js.map +1 -1
  26. package/lib/module/atoms/icon/index.js +0 -1
  27. package/lib/module/atoms/icon/index.js.map +1 -1
  28. package/lib/module/atoms/index.js +1 -1
  29. package/lib/module/atoms/index.js.map +1 -1
  30. package/lib/module/atoms/list/list.android.js +8 -2
  31. package/lib/module/atoms/list/list.android.js.map +1 -1
  32. package/lib/module/atoms/picker/index.js +1 -1
  33. package/lib/module/atoms/picker/index.js.map +1 -1
  34. package/lib/module/atoms/picker/picker.android.js +87 -0
  35. package/lib/module/atoms/picker/picker.android.js.map +1 -0
  36. package/lib/module/atoms/picker/{picker.js → picker.ios.js} +1 -1
  37. package/lib/module/atoms/picker/picker.ios.js.map +1 -0
  38. package/lib/module/atoms/rn-icon/index.js +5 -0
  39. package/lib/module/atoms/rn-icon/index.js.map +1 -0
  40. package/lib/module/atoms/rn-icon/rn-icon.android.js +29 -0
  41. package/lib/module/atoms/rn-icon/rn-icon.android.js.map +1 -0
  42. package/lib/module/atoms/rn-icon/rn-icon.ios.js +29 -0
  43. package/lib/module/atoms/rn-icon/rn-icon.ios.js.map +1 -0
  44. package/lib/module/atoms/rn-icon/rn-icon.types.js +4 -0
  45. package/lib/module/atoms/rn-icon/rn-icon.types.js.map +1 -0
  46. package/lib/module/atoms/surface/surface.android.js +33 -5
  47. package/lib/module/atoms/surface/surface.android.js.map +1 -1
  48. package/lib/module/atoms/switch/switch.android.js +14 -1
  49. package/lib/module/atoms/switch/switch.android.js.map +1 -1
  50. package/lib/module/glyph/glyph-button.android.js +25 -0
  51. package/lib/module/glyph/glyph-button.android.js.map +1 -0
  52. package/lib/module/glyph/glyph-button.ios.js +33 -0
  53. package/lib/module/glyph/glyph-button.ios.js.map +1 -0
  54. package/lib/module/glyph/glyph-button.types.js +4 -0
  55. package/lib/module/glyph/glyph-button.types.js.map +1 -0
  56. package/lib/module/glyph/glyph.android.js +20 -0
  57. package/lib/module/glyph/glyph.android.js.map +1 -0
  58. package/lib/module/glyph/glyph.ios.js +24 -0
  59. package/lib/module/glyph/glyph.ios.js.map +1 -0
  60. package/lib/module/glyph/glyph.types.js +4 -0
  61. package/lib/module/glyph/glyph.types.js.map +1 -0
  62. package/lib/module/glyph/index.js +8 -0
  63. package/lib/module/glyph/index.js.map +1 -0
  64. package/lib/module/glyph/rn-glyph.android.js +25 -0
  65. package/lib/module/glyph/rn-glyph.android.js.map +1 -0
  66. package/lib/module/glyph/rn-glyph.ios.js +26 -0
  67. package/lib/module/glyph/rn-glyph.ios.js.map +1 -0
  68. package/lib/module/molecules/collapsible/collapsible.android.js +2 -2
  69. package/lib/module/molecules/collapsible/collapsible.android.js.map +1 -1
  70. package/lib/module/molecules/labeled-content/labeled-content.js +2 -1
  71. package/lib/module/molecules/labeled-content/labeled-content.js.map +1 -1
  72. package/lib/module/molecules/list-item/list-item.js +2 -1
  73. package/lib/module/molecules/list-item/list-item.js.map +1 -1
  74. package/lib/module/molecules/navigation-bar/navigation-bar.android.js +8 -4
  75. package/lib/module/molecules/navigation-bar/navigation-bar.android.js.map +1 -1
  76. package/lib/module/molecules/radio-group/radio-group.android.js +5 -0
  77. package/lib/module/molecules/radio-group/radio-group.android.js.map +1 -1
  78. package/lib/module/molecules/radio-group/radio-group.ios.js +2 -2
  79. package/lib/module/molecules/radio-group/radio-group.ios.js.map +1 -1
  80. package/lib/module/molecules/search-bar/search-bar.js +10 -23
  81. package/lib/module/molecules/search-bar/search-bar.js.map +1 -1
  82. package/lib/module/molecules/stepper/stepper.android.js +7 -5
  83. package/lib/module/molecules/stepper/stepper.android.js.map +1 -1
  84. package/lib/module/organisms/alert/alert.android.js +42 -13
  85. package/lib/module/organisms/alert/alert.android.js.map +1 -1
  86. package/lib/module/organisms/context-menu/context-menu.android.js +82 -31
  87. package/lib/module/organisms/context-menu/context-menu.android.js.map +1 -1
  88. package/lib/module/organisms/context-menu/context-menu.ios.js +37 -16
  89. package/lib/module/organisms/context-menu/context-menu.ios.js.map +1 -1
  90. package/lib/module/organisms/fab-menu/fab-menu.android.js +6 -2
  91. package/lib/module/organisms/fab-menu/fab-menu.android.js.map +1 -1
  92. package/lib/module/organisms/fab-menu/fab-menu.ios.js +15 -6
  93. package/lib/module/organisms/fab-menu/fab-menu.ios.js.map +1 -1
  94. package/lib/module/organisms/form/form.android.js +1 -0
  95. package/lib/module/organisms/form/form.android.js.map +1 -1
  96. package/lib/module/organisms/index.js +0 -1
  97. package/lib/module/organisms/index.js.map +1 -1
  98. package/lib/module/organisms/menu/menu.android.js +51 -33
  99. package/lib/module/organisms/menu/menu.android.js.map +1 -1
  100. package/lib/typescript/atoms/button/button-tokens.d.ts +6 -1
  101. package/lib/typescript/atoms/date-picker/date-picker.d.ts +1 -2
  102. package/lib/typescript/atoms/date-picker/date-picker.ios.d.ts +3 -0
  103. package/lib/typescript/atoms/glass-view/glass-fallback.d.ts +4 -1
  104. package/lib/typescript/atoms/glass-view/glass-view.types.d.ts +1 -1
  105. package/lib/typescript/atoms/icon/icon.ios.d.ts +4 -0
  106. package/lib/typescript/atoms/icon/icon.types.d.ts +18 -1
  107. package/lib/typescript/atoms/icon/index.d.ts +0 -1
  108. package/lib/typescript/atoms/index.d.ts +1 -1
  109. package/lib/typescript/atoms/list/list.types.d.ts +9 -0
  110. package/lib/typescript/atoms/picker/picker.d.ts +1 -2
  111. package/lib/typescript/atoms/picker/picker.ios.d.ts +2 -0
  112. package/lib/typescript/atoms/rn-icon/index.d.ts +2 -0
  113. package/lib/typescript/atoms/rn-icon/rn-icon.d.ts +1 -0
  114. package/lib/typescript/atoms/rn-icon/rn-icon.ios.d.ts +3 -0
  115. package/lib/typescript/atoms/rn-icon/rn-icon.types.d.ts +5 -0
  116. package/lib/typescript/glyph/glyph-button.d.ts +1 -0
  117. package/lib/typescript/glyph/glyph-button.ios.d.ts +2 -0
  118. package/lib/typescript/glyph/glyph-button.types.d.ts +10 -0
  119. package/lib/typescript/glyph/glyph.d.ts +1 -0
  120. package/lib/typescript/glyph/glyph.ios.d.ts +3 -0
  121. package/lib/typescript/glyph/glyph.types.d.ts +13 -0
  122. package/lib/typescript/glyph/index.d.ts +5 -0
  123. package/lib/typescript/glyph/rn-glyph.d.ts +1 -0
  124. package/lib/typescript/glyph/rn-glyph.ios.d.ts +3 -0
  125. package/lib/typescript/molecules/scroll-edge-container/scroll-edge-container.types.d.ts +3 -0
  126. package/lib/typescript/organisms/context-menu/context-menu.types.d.ts +28 -2
  127. package/lib/typescript/organisms/fab-menu/fab-menu.types.d.ts +1 -1
  128. package/lib/typescript/organisms/form/form.types.d.ts +5 -0
  129. package/lib/typescript/organisms/index.d.ts +0 -1
  130. package/package.json +4 -6
  131. package/src/atoms/badge/badge.android.tsx +5 -2
  132. package/src/atoms/button/button-tokens.ts +49 -0
  133. package/src/atoms/button/button.android.tsx +46 -12
  134. package/src/atoms/button/button.ios.tsx +5 -2
  135. package/src/atoms/checkbox/checkbox.android.tsx +21 -4
  136. package/src/atoms/date-picker/date-picker.android.tsx +74 -0
  137. package/src/atoms/date-picker/date-picker.ios.tsx +27 -0
  138. package/src/atoms/fab/fab.android.tsx +4 -1
  139. package/src/atoms/glass-view/glass-fallback.tsx +5 -2
  140. package/src/atoms/glass-view/glass-view.types.ts +1 -1
  141. package/src/atoms/icon/icon.android.tsx +11 -7
  142. package/src/atoms/icon/icon.ios.tsx +25 -5
  143. package/src/atoms/icon/icon.types.ts +18 -24
  144. package/src/atoms/icon/index.ts +0 -1
  145. package/src/atoms/index.ts +1 -1
  146. package/src/atoms/list/list.android.tsx +12 -1
  147. package/src/atoms/list/list.types.ts +9 -0
  148. package/src/atoms/picker/picker.android.tsx +88 -0
  149. package/src/atoms/rn-icon/index.ts +2 -0
  150. package/src/atoms/rn-icon/rn-icon.android.tsx +28 -0
  151. package/src/atoms/rn-icon/rn-icon.ios.tsx +28 -0
  152. package/src/atoms/rn-icon/rn-icon.types.ts +8 -0
  153. package/src/atoms/surface/surface.android.tsx +28 -4
  154. package/src/atoms/switch/switch.android.tsx +24 -3
  155. package/src/glyph/glyph-button.android.tsx +25 -0
  156. package/src/glyph/glyph-button.ios.tsx +37 -0
  157. package/src/glyph/glyph-button.types.ts +12 -0
  158. package/src/glyph/glyph.android.tsx +12 -0
  159. package/src/glyph/glyph.ios.tsx +15 -0
  160. package/src/glyph/glyph.types.ts +15 -0
  161. package/src/glyph/index.ts +5 -0
  162. package/src/glyph/rn-glyph.android.tsx +14 -0
  163. package/src/glyph/rn-glyph.ios.tsx +16 -0
  164. package/src/molecules/collapsible/collapsible.android.tsx +2 -2
  165. package/src/molecules/labeled-content/labeled-content.tsx +2 -1
  166. package/src/molecules/list-item/list-item.tsx +2 -1
  167. package/src/molecules/navigation-bar/navigation-bar.android.tsx +11 -4
  168. package/src/molecules/radio-group/radio-group.android.tsx +11 -2
  169. package/src/molecules/radio-group/radio-group.ios.tsx +2 -2
  170. package/src/molecules/scroll-edge-container/scroll-edge-container.types.ts +3 -0
  171. package/src/molecules/search-bar/search-bar.tsx +4 -9
  172. package/src/molecules/stepper/stepper.android.tsx +3 -3
  173. package/src/organisms/alert/alert.android.tsx +44 -7
  174. package/src/organisms/context-menu/context-menu.android.tsx +71 -37
  175. package/src/organisms/context-menu/context-menu.ios.tsx +40 -18
  176. package/src/organisms/context-menu/context-menu.types.ts +29 -3
  177. package/src/organisms/fab-menu/fab-menu.android.tsx +3 -2
  178. package/src/organisms/fab-menu/fab-menu.ios.tsx +13 -12
  179. package/src/organisms/fab-menu/fab-menu.types.ts +1 -1
  180. package/src/organisms/form/form.android.tsx +1 -1
  181. package/src/organisms/form/form.types.ts +5 -0
  182. package/src/organisms/index.ts +0 -1
  183. package/src/organisms/menu/menu.android.tsx +36 -30
  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 +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":[]}
@@ -2,9 +2,15 @@
2
2
 
3
3
  import { LazyColumn, PullToRefreshBox } from '@expo/ui/jetpack-compose';
4
4
  import { useSxModifiers } from '@hzblj/kara-sx';
5
+ import { Children, Fragment, isValidElement } from 'react';
5
6
  import { useHostGuard } from "../../host-context.js";
6
7
  import { useRefreshState } from "../../use-refresh-state.js";
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
+ import { Divider } from "../divider/index.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ /** A divider between rows, the separator SwiftUI's `List` draws on its own — so rows are written the same for both. */
11
+ const withSeparators = children => Children.toArray(children).map((child, index) => /*#__PURE__*/_jsxs(Fragment, {
12
+ children: [index > 0 ? /*#__PURE__*/_jsx(Divider, {}) : null, child]
13
+ }, /*#__PURE__*/isValidElement(child) && child.key !== null ? child.key : index));
8
14
  export const List = ({
9
15
  children,
10
16
  onRefresh
@@ -19,7 +25,7 @@ export const List = ({
19
25
  } = useRefreshState(onRefresh);
20
26
  const column = /*#__PURE__*/_jsx(LazyColumn, {
21
27
  modifiers: modifiers,
22
- children: children
28
+ children: withSeparators(children)
23
29
  });
24
30
  if (!onRefresh) {
25
31
  return column;
@@ -1 +1 @@
1
- {"version":3,"names":["LazyColumn","PullToRefreshBox","useSxModifiers","useHostGuard","useRefreshState","jsx","_jsx","List","children","onRefresh","modifiers","wide","isRefreshing","refresh","column"],"sourceRoot":"../../../../src","sources":["atoms/list/list.android.tsx"],"mappings":";;AAAA,SAAQA,UAAU,EAAEC,gBAAgB,QAAO,0BAA0B;AACrE,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,YAAY,QAAO,uBAAoB;AAC/C,SAAQC,eAAe,QAAO,4BAAyB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAGvD,OAAO,MAAMC,IAAmB,GAAGA,CAAC;EAACC,QAAQ;EAAEC;AAAoB,CAAC,KAAK;EACvEN,YAAY,CAAC,MAAM,CAAC;EACpB,MAAMO,SAAS,GAAGR,cAAc,CAAC;IAACS,IAAI,EAAE;EAAI,CAAC,CAAC;EAC9C,MAAM;IAACC,YAAY;IAAEC;EAAO,CAAC,GAAGT,eAAe,CAACK,SAAS,CAAC;EAE1D,MAAMK,MAAM,gBAAGR,IAAA,CAACN,UAAU;IAACU,SAAS,EAAEA,SAAU;IAAAF,QAAA,EAAEA;EAAQ,CAAa,CAAC;EAExE,IAAI,CAACC,SAAS,EAAE;IACd,OAAOK,MAAM;EACf;EAEA,oBACER,IAAA,CAACL,gBAAgB;IAACW,YAAY,EAAEA,YAAa;IAACH,SAAS,EAAEI,OAAQ;IAAAL,QAAA,EAC9DM;EAAM,CACS,CAAC;AAEvB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["LazyColumn","PullToRefreshBox","useSxModifiers","Children","Fragment","isValidElement","useHostGuard","useRefreshState","Divider","jsx","_jsx","jsxs","_jsxs","withSeparators","children","toArray","map","child","index","key","List","onRefresh","modifiers","wide","isRefreshing","refresh","column"],"sourceRoot":"../../../../src","sources":["atoms/list/list.android.tsx"],"mappings":";;AAAA,SAAQA,UAAU,EAAEC,gBAAgB,QAAO,0BAA0B;AACrE,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,QAAQ,EAAEC,QAAQ,EAAEC,cAAc,QAAO,OAAO;AACxD,SAAQC,YAAY,QAAO,uBAAoB;AAC/C,SAAQC,eAAe,QAAO,4BAAyB;AACvD,SAAQC,OAAO,QAAO,qBAAY;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGlC;AACA,MAAMC,cAAc,GAAIC,QAA+B,IACrDX,QAAQ,CAACY,OAAO,CAACD,QAAQ,CAAC,CAACE,GAAG,CAAC,CAACC,KAAK,EAAEC,KAAK,kBAC1CN,KAAA,CAACR,QAAQ;EAAAU,QAAA,GACNI,KAAK,GAAG,CAAC,gBAAGR,IAAA,CAACF,OAAO,IAAE,CAAC,GAAG,IAAI,EAC9BS,KAAK;AAAA,GAFO,aAAAZ,cAAc,CAACY,KAAK,CAAC,IAAIA,KAAK,CAACE,GAAG,KAAK,IAAI,GAAGF,KAAK,CAACE,GAAG,GAAGD,KAG/D,CACX,CAAC;AAEJ,OAAO,MAAME,IAAmB,GAAGA,CAAC;EAACN,QAAQ;EAAEO;AAAoB,CAAC,KAAK;EACvEf,YAAY,CAAC,MAAM,CAAC;EACpB,MAAMgB,SAAS,GAAGpB,cAAc,CAAC;IAACqB,IAAI,EAAE;EAAI,CAAC,CAAC;EAC9C,MAAM;IAACC,YAAY;IAAEC;EAAO,CAAC,GAAGlB,eAAe,CAACc,SAAS,CAAC;EAE1D,MAAMK,MAAM,gBAAGhB,IAAA,CAACV,UAAU;IAACsB,SAAS,EAAEA,SAAU;IAAAR,QAAA,EAAED,cAAc,CAACC,QAAQ;EAAC,CAAa,CAAC;EAExF,IAAI,CAACO,SAAS,EAAE;IACd,OAAOK,MAAM;EACf;EAEA,oBACEhB,IAAA,CAACT,gBAAgB;IAACuB,YAAY,EAAEA,YAAa;IAACH,SAAS,EAAEI,OAAQ;IAAAX,QAAA,EAC9DY;EAAM,CACS,CAAC;AAEvB,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
- export * from "./picker.js";
3
+ export * from './picker';
4
4
  export * from "./picker.types.js";
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["atoms/picker/index.ts"],"mappings":";;AAAA,cAAc,aAAU;AACxB,cAAc,mBAAgB","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["atoms/picker/index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,mBAAgB","ignoreList":[]}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ import { Text as ComposeText, DropdownMenuItem, ExposedDropdownMenu, ExposedDropdownMenuBox, Host, OutlinedTextField, useNativeState } from '@expo/ui/jetpack-compose';
4
+ import { fillMaxWidth, menuAnchor, testID as testIdModifier } from '@expo/ui/jetpack-compose/modifiers';
5
+ import { useAppTheme } from '@hzblj/kara-theme';
6
+ import { useEffect, useMemo, useState } from 'react';
7
+ import { Glyph } from "../../glyph/index.js";
8
+ import { HostBoundary } from "../../host-context.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const MATCH_HEIGHT_ONLY = {
11
+ horizontal: false,
12
+ vertical: true
13
+ };
14
+
15
+ /**
16
+ * Material's exposed dropdown: a read-only outlined field the width of its container, opening a menu of the options
17
+ * under it. Its own host, themed like an `Island`, so it drops into React Native layout like the iOS picker does.
18
+ */
19
+ export const Picker = ({
20
+ disabled = false,
21
+ onValueChange,
22
+ options,
23
+ testID,
24
+ value
25
+ }) => {
26
+ const theme = useAppTheme();
27
+ const [expanded, setExpanded] = useState(false);
28
+ const selectedLabel = options.find(option => option.value === value)?.label ?? '';
29
+ const label = useNativeState(selectedLabel);
30
+ const fieldModifiers = useMemo(() => {
31
+ const list = [fillMaxWidth(), menuAnchor('primaryNotEditable', !disabled)];
32
+ return testID ? [...list, testIdModifier(testID)] : list;
33
+ }, [disabled, testID]);
34
+
35
+ // `useNativeState` takes only its initial value; a new selection is pushed to the field.
36
+ useEffect(() => {
37
+ label.set(selectedLabel);
38
+ }, [label, selectedLabel]);
39
+ return /*#__PURE__*/_jsx(Host, {
40
+ colorScheme: theme.dark ? 'dark' : 'light',
41
+ matchContents: MATCH_HEIGHT_ONLY,
42
+ seedColor: theme.materialSeed,
43
+ children: /*#__PURE__*/_jsx(HostBoundary, {
44
+ children: /*#__PURE__*/_jsxs(ExposedDropdownMenuBox, {
45
+ expanded: expanded,
46
+ onExpandedChange: disabled ? undefined : setExpanded,
47
+ children: [/*#__PURE__*/_jsx(OutlinedTextField, {
48
+ enabled: !disabled,
49
+ modifiers: fieldModifiers,
50
+ readOnly: true,
51
+ singleLine: true,
52
+ textStyle: {
53
+ color: theme.colorString('content.primary'),
54
+ fontFamily: theme.typography.body.fontFamily,
55
+ fontWeight: theme.typography.body.fontWeight
56
+ },
57
+ value: label,
58
+ children: /*#__PURE__*/_jsx(OutlinedTextField.TrailingIcon, {
59
+ children: /*#__PURE__*/_jsx(Glyph, {
60
+ color: "content.secondary",
61
+ name: "chevronDown",
62
+ size: "s20"
63
+ })
64
+ })
65
+ }), /*#__PURE__*/_jsx(ExposedDropdownMenu, {
66
+ containerColor: theme.color('surface.primary'),
67
+ expanded: expanded,
68
+ onDismissRequest: () => setExpanded(false),
69
+ children: options.map(option => /*#__PURE__*/_jsx(DropdownMenuItem, {
70
+ onClick: () => {
71
+ setExpanded(false);
72
+ onValueChange?.(option.value);
73
+ },
74
+ children: /*#__PURE__*/_jsx(DropdownMenuItem.Text, {
75
+ children: /*#__PURE__*/_jsx(ComposeText, {
76
+ color: theme.colorString(option.value === value ? 'content.accent' : 'content.primary'),
77
+ style: theme.typography.body,
78
+ children: option.label
79
+ })
80
+ })
81
+ }, option.value))
82
+ })]
83
+ })
84
+ })
85
+ });
86
+ };
87
+ //# sourceMappingURL=picker.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Text","ComposeText","DropdownMenuItem","ExposedDropdownMenu","ExposedDropdownMenuBox","Host","OutlinedTextField","useNativeState","fillMaxWidth","menuAnchor","testID","testIdModifier","useAppTheme","useEffect","useMemo","useState","Glyph","HostBoundary","jsx","_jsx","jsxs","_jsxs","MATCH_HEIGHT_ONLY","horizontal","vertical","Picker","disabled","onValueChange","options","value","theme","expanded","setExpanded","selectedLabel","find","option","label","fieldModifiers","list","set","colorScheme","dark","matchContents","seedColor","materialSeed","children","onExpandedChange","undefined","enabled","modifiers","readOnly","singleLine","textStyle","color","colorString","fontFamily","typography","body","fontWeight","TrailingIcon","name","size","containerColor","onDismissRequest","map","onClick","style"],"sourceRoot":"../../../../src","sources":["atoms/picker/picker.android.tsx"],"mappings":"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","ignoreList":[]}
@@ -25,4 +25,4 @@ export const Picker = ({
25
25
  }, option.value))
26
26
  });
27
27
  };
28
- //# sourceMappingURL=picker.js.map
28
+ //# sourceMappingURL=picker.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Picker","NativePicker","useAppTheme","useCallback","jsx","_jsx","disabled","onValueChange","options","testID","value","theme","onChange","next","String","enabled","selectedValue","children","map","option","Item","color","colorString","label"],"sourceRoot":"../../../../src","sources":["atoms/picker/picker.ios.tsx"],"mappings":";;AAAA,SAAQA,MAAM,IAAIC,YAAY,QAAO,2BAA2B;AAChE,SAAQC,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,WAAW,QAAO,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAIjC,OAAO,MAAML,MAAuB,GAAGA,CAAC;EAACM,QAAQ,GAAG,KAAK;EAAEC,aAAa;EAAEC,OAAO;EAAEC,MAAM;EAAEC;AAAkB,CAAC,KAAK;EACjH,MAAMC,KAAK,GAAGT,WAAW,CAAC,CAAC;EAE3B,MAAMU,QAAQ,GAAGT,WAAW,CAAEU,IAA4B,IAAKN,aAAa,GAAGO,MAAM,CAACD,IAAI,CAAC,CAAC,EAAE,CAACN,aAAa,CAAC,CAAC;EAE9G,oBACEF,IAAA,CAACJ,YAAY;IAACc,OAAO,EAAE,CAACT,QAAS;IAACC,aAAa,EAAEK,QAAS;IAACI,aAAa,EAAEN,KAAM;IAACD,MAAM,EAAEA,MAAO;IAAAQ,QAAA,EAC7FT,OAAO,CAACU,GAAG,CAACC,MAAM,iBACjBd,IAAA,CAACJ,YAAY,CAACmB,IAAI;MAChBC,KAAK,EAAEV,KAAK,CAACW,WAAW,CAAC,iBAAiB,CAAE;MAE5CC,KAAK,EAAEJ,MAAM,CAACI,KAAM;MACpBb,KAAK,EAAES,MAAM,CAACT;IAAM,GAFfS,MAAM,CAACT,KAGb,CACF;EAAC,CACU,CAAC;AAEnB,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from './rn-icon';
4
+ export * from "./rn-icon.types.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["atoms/rn-icon/index.ts"],"mappings":";;AAAA,cAAc,WAAW;AACzB,cAAc,oBAAiB","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ import { iconResourceName } from '@hzblj/kara-native';
4
+ import { IconView } from '@hzblj/kara-native/jetpack-compose';
5
+ import { spacing, useAppTheme } from '@hzblj/kara-theme';
6
+ import { useMemo } from 'react';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ /** An `ImageView` over the app's vector drawable — what a list row wants, rather than a Compose host per row. */
9
+ export const RnIcon = ({
10
+ accessibilityLabel,
11
+ color = 'content.primary',
12
+ name,
13
+ size = 's24',
14
+ testID
15
+ }) => {
16
+ const theme = useAppTheme();
17
+ const style = useMemo(() => ({
18
+ height: spacing[size],
19
+ width: spacing[size]
20
+ }), [size]);
21
+ return /*#__PURE__*/_jsx(IconView, {
22
+ accessibilityLabel: accessibilityLabel,
23
+ iconColor: theme.color(color),
24
+ resourceName: iconResourceName(name),
25
+ style: style,
26
+ testID: testID
27
+ });
28
+ };
29
+ //# sourceMappingURL=rn-icon.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["iconResourceName","IconView","spacing","useAppTheme","useMemo","jsx","_jsx","RnIcon","accessibilityLabel","color","name","size","testID","theme","style","height","width","iconColor","resourceName"],"sourceRoot":"../../../../src","sources":["atoms/rn-icon/rn-icon.android.tsx"],"mappings":";;AAAA,SAAQA,gBAAgB,QAAO,oBAAoB;AACnD,SAAQC,QAAQ,QAAO,oCAAoC;AAC3D,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AACtD,SAAQC,OAAO,QAAO,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI7B;AACA,OAAO,MAAMC,MAAuB,GAAGA,CAAC;EACtCC,kBAAkB;EAClBC,KAAK,GAAG,iBAAiB;EACzBC,IAAI;EACJC,IAAI,GAAG,KAAK;EACZC;AACW,CAAC,KAAK;EACjB,MAAMC,KAAK,GAAGV,WAAW,CAAC,CAAC;EAC3B,MAAMW,KAAK,GAAGV,OAAO,CAAC,OAAO;IAACW,MAAM,EAAEb,OAAO,CAACS,IAAI,CAAC;IAAEK,KAAK,EAAEd,OAAO,CAACS,IAAI;EAAC,CAAC,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEpF,oBACEL,IAAA,CAACL,QAAQ;IACPO,kBAAkB,EAAEA,kBAAmB;IACvCS,SAAS,EAAEJ,KAAK,CAACJ,KAAK,CAACA,KAAK,CAAE;IAC9BS,YAAY,EAAElB,gBAAgB,CAACU,IAAI,CAAE;IACrCI,KAAK,EAAEA,KAAM;IACbF,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ import { iconResourceName } from '@hzblj/kara-native';
4
+ import { IconView } from '@hzblj/kara-native/swift-ui';
5
+ import { spacing, useAppTheme } from '@hzblj/kara-theme';
6
+ import { useMemo } from 'react';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ /** A `UIImageView` over the app's asset-catalog icon — what a list row wants, rather than a SwiftUI host per row. */
9
+ export const RnIcon = ({
10
+ accessibilityLabel,
11
+ color = 'content.primary',
12
+ name,
13
+ size = 's24',
14
+ testID
15
+ }) => {
16
+ const theme = useAppTheme();
17
+ const style = useMemo(() => ({
18
+ height: spacing[size],
19
+ width: spacing[size]
20
+ }), [size]);
21
+ return /*#__PURE__*/_jsx(IconView, {
22
+ accessibilityLabel: accessibilityLabel,
23
+ assetName: iconResourceName(name),
24
+ iconColor: theme.color(color),
25
+ style: style,
26
+ testID: testID
27
+ });
28
+ };
29
+ //# sourceMappingURL=rn-icon.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["iconResourceName","IconView","spacing","useAppTheme","useMemo","jsx","_jsx","RnIcon","accessibilityLabel","color","name","size","testID","theme","style","height","width","assetName","iconColor"],"sourceRoot":"../../../../src","sources":["atoms/rn-icon/rn-icon.ios.tsx"],"mappings":";;AAAA,SAAQA,gBAAgB,QAAO,oBAAoB;AACnD,SAAQC,QAAQ,QAAO,6BAA6B;AACpD,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AACtD,SAAQC,OAAO,QAAO,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI7B;AACA,OAAO,MAAMC,MAAuB,GAAGA,CAAC;EACtCC,kBAAkB;EAClBC,KAAK,GAAG,iBAAiB;EACzBC,IAAI;EACJC,IAAI,GAAG,KAAK;EACZC;AACW,CAAC,KAAK;EACjB,MAAMC,KAAK,GAAGV,WAAW,CAAC,CAAC;EAC3B,MAAMW,KAAK,GAAGV,OAAO,CAAC,OAAO;IAACW,MAAM,EAAEb,OAAO,CAACS,IAAI,CAAC;IAAEK,KAAK,EAAEd,OAAO,CAACS,IAAI;EAAC,CAAC,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEpF,oBACEL,IAAA,CAACL,QAAQ;IACPO,kBAAkB,EAAEA,kBAAmB;IACvCS,SAAS,EAAEjB,gBAAgB,CAACU,IAAI,CAAE;IAClCQ,SAAS,EAAEL,KAAK,CAACJ,KAAK,CAACA,KAAK,CAAE;IAC9BK,KAAK,EAAEA,KAAM;IACbF,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=rn-icon.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["atoms/rn-icon/rn-icon.types.ts"],"mappings":"","ignoreList":[]}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import { Surface as ComposeSurface, Shape } from '@expo/ui/jetpack-compose';
3
+ import { Column, Surface as ComposeSurface, Shape } 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 { radii, useAppTheme } from '@hzblj/kara-theme';
7
+ import { useMemo } from 'react';
6
8
  import { useHostGuard } from "../../host-context.js";
7
9
  import { jsx as _jsx } from "react/jsx-runtime";
8
10
  const cornerRadii = radius => ({
@@ -11,18 +13,41 @@ const cornerRadii = radius => ({
11
13
  topEnd: radius,
12
14
  topStart: radius
13
15
  });
16
+
17
+ /**
18
+ * Material's `Surface`, with the padding on a `Column` inside it. Compose applies a `Surface`'s own modifiers before it
19
+ * draws the shape, so padding there would inset the background instead of the content — and a bare `Surface` stacks
20
+ * its children on top of each other rather than in a column.
21
+ */
14
22
  export const Surface = ({
15
23
  children,
16
24
  glass = false,
25
+ p = 's16',
26
+ pb,
27
+ pl,
28
+ pr,
29
+ pt,
30
+ px,
31
+ py,
17
32
  testID,
18
33
  ...sx
19
34
  }) => {
20
35
  useHostGuard('Surface');
21
36
  const theme = useAppTheme();
22
- const modifiers = useSxModifiers({
37
+ const sxModifiers = useSxModifiers({
23
38
  ...sx,
24
- bg: undefined,
25
- p: sx.p ?? 's16'
39
+ bg: undefined
40
+ });
41
+ const modifiers = useMemo(() => testID ? [...sxModifiers, testIdModifier(testID)] : sxModifiers, [sxModifiers, testID]);
42
+ const contentModifiers = useSxModifiers({
43
+ p,
44
+ pb,
45
+ pl,
46
+ pr,
47
+ pt,
48
+ px,
49
+ py,
50
+ wide: sx.wide
26
51
  });
27
52
  return /*#__PURE__*/_jsx(ComposeSurface, {
28
53
  color: theme.color(sx.bg ?? 'surface.primary'),
@@ -32,7 +57,10 @@ export const Surface = ({
32
57
  cornerRadii: cornerRadii(radii[sx.borderRadius ?? 'large'])
33
58
  }),
34
59
  tonalElevation: glass ? 3 : 0,
35
- children: children
60
+ children: /*#__PURE__*/_jsx(Column, {
61
+ modifiers: contentModifiers,
62
+ children: children
63
+ })
36
64
  });
37
65
  };
38
66
  //# sourceMappingURL=surface.android.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Surface","ComposeSurface","Shape","useSxModifiers","radii","useAppTheme","useHostGuard","jsx","_jsx","cornerRadii","radius","bottomEnd","bottomStart","topEnd","topStart","children","glass","testID","sx","theme","modifiers","bg","undefined","p","color","contentColor","shape","RoundedCorner","borderRadius","tonalElevation"],"sourceRoot":"../../../../src","sources":["atoms/surface/surface.android.tsx"],"mappings":";;AAAA,SAAQA,OAAO,IAAIC,cAAc,EAAEC,KAAK,QAAO,0BAA0B;AACzE,SAAQC,cAAc,QAAO,gBAAgB;AAC7C,SAAQC,KAAK,EAAEC,WAAW,QAAO,mBAAmB;AACpD,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,OAAO,MAAMV,OAAyB,GAAGA,CAAC;EAACe,QAAQ;EAAEC,KAAK,GAAG,KAAK;EAAEC,MAAM;EAAE,GAAGC;AAAgB,CAAC,KAAK;EACnGZ,YAAY,CAAC,SAAS,CAAC;EAEvB,MAAMa,KAAK,GAAGd,WAAW,CAAC,CAAC;EAC3B,MAAMe,SAAS,GAAGjB,cAAc,CAAC;IAAC,GAAGe,EAAE;IAAEG,EAAE,EAAEC,SAAS;IAAEC,CAAC,EAAEL,EAAE,CAACK,CAAC,IAAI;EAAK,CAAC,CAAC;EAE1E,oBACEf,IAAA,CAACP,cAAc;IACbuB,KAAK,EAAEL,KAAK,CAACK,KAAK,CAACN,EAAE,CAACG,EAAE,IAAI,iBAAiB,CAAE;IAC/CI,YAAY,EAAEN,KAAK,CAACK,KAAK,CAAC,iBAAiB,CAAE;IAC7CJ,SAAS,EAAEA,SAAU;IACrBM,KAAK,EAAExB,KAAK,CAACyB,aAAa,CAAC;MAAClB,WAAW,EAAEA,WAAW,CAACL,KAAK,CAACc,EAAE,CAACU,YAAY,IAAI,OAAO,CAAC;IAAC,CAAC,CAAE;IAC1FC,cAAc,EAAEb,KAAK,GAAG,CAAC,GAAG,CAAE;IAAAD,QAAA,EAE7BA;EAAQ,CACK,CAAC;AAErB,CAAC","ignoreList":[]}
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,9 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  import { Switch as ComposeSwitch, Row, Text } from '@expo/ui/jetpack-compose';
4
+ import { clickable, fillMaxWidth } from '@expo/ui/jetpack-compose/modifiers';
4
5
  import { 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 switch, tinted with the accent like SwiftUI's toggle. With a label it is a full-width row — label at the
11
+ * start, switch at the end — and the whole row toggles, the way a Material settings row does.
12
+ */
7
13
  export const Switch = ({
8
14
  disabled = false,
9
15
  label,
@@ -12,7 +18,13 @@ export const Switch = ({
12
18
  }) => {
13
19
  useHostGuard('Switch');
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(ComposeSwitch, {
23
+ colors: {
24
+ checkedBorderColor: theme.color('fill.accent.primary'),
25
+ checkedThumbColor: theme.color('content.on.bg'),
26
+ checkedTrackColor: theme.color('fill.accent.primary')
27
+ },
16
28
  enabled: !disabled,
17
29
  onCheckedChange: onValueChange,
18
30
  value: value
@@ -22,9 +34,10 @@ export const Switch = ({
22
34
  }
23
35
  return /*#__PURE__*/_jsxs(Row, {
24
36
  horizontalArrangement: "spaceBetween",
37
+ modifiers: rowModifiers,
25
38
  verticalAlignment: "center",
26
39
  children: [/*#__PURE__*/_jsx(Text, {
27
- color: theme.colorString('content.primary'),
40
+ color: theme.colorString(disabled ? 'content.tertiary' : 'content.primary'),
28
41
  style: theme.typography.body,
29
42
  children: label
30
43
  }), control]
@@ -1 +1 @@
1
- {"version":3,"names":["Switch","ComposeSwitch","Row","Text","useAppTheme","useHostGuard","jsx","_jsx","jsxs","_jsxs","disabled","label","onValueChange","value","theme","control","enabled","onCheckedChange","horizontalArrangement","verticalAlignment","children","color","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,WAAW,QAAO,mBAAmB;AAE7C,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C,OAAO,MAAMT,MAAuB,GAAGA,CAAC;EAACU,QAAQ,GAAG,KAAK;EAAEC,KAAK;EAAEC,aAAa;EAAEC;AAAkB,CAAC,KAAK;EACvGR,YAAY,CAAC,QAAQ,CAAC;EACtB,MAAMS,KAAK,GAAGV,WAAW,CAAC,CAAC;EAC3B,MAAMW,OAAO,gBAAGR,IAAA,CAACN,aAAa;IAACe,OAAO,EAAE,CAACN,QAAS;IAACO,eAAe,EAAEL,aAAc;IAACC,KAAK,EAAEA;EAAM,CAAE,CAAC;EAEnG,IAAI,CAACF,KAAK,EAAE;IACV,OAAOI,OAAO;EAChB;EAEA,oBACEN,KAAA,CAACP,GAAG;IAACgB,qBAAqB,EAAC,cAAc;IAACC,iBAAiB,EAAC,QAAQ;IAAAC,QAAA,gBAClEb,IAAA,CAACJ,IAAI;MAACkB,KAAK,EAAEP,KAAK,CAACQ,WAAW,CAAC,iBAAiB,CAAE;MAACC,KAAK,EAAET,KAAK,CAACU,UAAU,CAACC,IAAK;MAAAL,QAAA,EAC7ET;IAAK,CACF,CAAC,EACNI,OAAO;EAAA,CACL,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Switch","ComposeSwitch","Row","Text","clickable","fillMaxWidth","useAppTheme","useMemo","useHostGuard","jsx","_jsx","jsxs","_jsxs","disabled","label","onValueChange","value","theme","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,OAAO,QAAO,OAAO;AAE7B,SAAQC,YAAY,QAAO,uBAAoB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C;AACA;AACA;AACA;AACA,OAAO,MAAMZ,MAAuB,GAAGA,CAAC;EAACa,QAAQ,GAAG,KAAK;EAAEC,KAAK;EAAEC,aAAa;EAAEC;AAAkB,CAAC,KAAK;EACvGR,YAAY,CAAC,QAAQ,CAAC;EACtB,MAAMS,KAAK,GAAGX,WAAW,CAAC,CAAC;EAC3B,MAAMY,YAAY,GAAGX,OAAO,CAC1B,MAAOM,QAAQ,IAAI,CAACE,aAAa,GAAG,CAACV,YAAY,CAAC,CAAC,CAAC,GAAG,CAACA,YAAY,CAAC,CAAC,EAAED,SAAS,CAAC,MAAMW,aAAa,CAAC,CAACC,KAAK,CAAC,CAAC,CAAE,EAChH,CAACH,QAAQ,EAAEE,aAAa,EAAEC,KAAK,CACjC,CAAC;EACD,MAAMG,OAAO,gBACXT,IAAA,CAACT,aAAa;IACZmB,MAAM,EAAE;MACNC,kBAAkB,EAAEJ,KAAK,CAACK,KAAK,CAAC,qBAAqB,CAAC;MACtDC,iBAAiB,EAAEN,KAAK,CAACK,KAAK,CAAC,eAAe,CAAC;MAC/CE,iBAAiB,EAAEP,KAAK,CAACK,KAAK,CAAC,qBAAqB;IACtD,CAAE;IACFG,OAAO,EAAE,CAACZ,QAAS;IACnBa,eAAe,EAAEX,aAAc;IAC/BC,KAAK,EAAEA;EAAM,CACd,CACF;EAED,IAAI,CAACF,KAAK,EAAE;IACV,OAAOK,OAAO;EAChB;EAEA,oBACEP,KAAA,CAACV,GAAG;IAACyB,qBAAqB,EAAC,cAAc;IAACC,SAAS,EAAEV,YAAa;IAACW,iBAAiB,EAAC,QAAQ;IAAAC,QAAA,gBAC3FpB,IAAA,CAACP,IAAI;MAACmB,KAAK,EAAEL,KAAK,CAACc,WAAW,CAAClB,QAAQ,GAAG,kBAAkB,GAAG,iBAAiB,CAAE;MAACmB,KAAK,EAAEf,KAAK,CAACgB,UAAU,CAACC,IAAK;MAAAJ,QAAA,EAC7GhB;IAAK,CACF,CAAC,EACNK,OAAO;EAAA,CACL,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ import { IconButton as ComposeIconButton } from '@expo/ui/jetpack-compose';
4
+ import { GLYPHS } from '@hzblj/kara-native';
5
+ import { DrawableIcon } from '@hzblj/kara-native/jetpack-compose';
6
+ import { useAppTheme } from '@hzblj/kara-theme';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const GlyphButton = ({
9
+ accessibilityLabel,
10
+ disabled = false,
11
+ name,
12
+ onPress
13
+ }) => {
14
+ const theme = useAppTheme();
15
+ return /*#__PURE__*/_jsx(ComposeIconButton, {
16
+ enabled: !disabled,
17
+ onClick: onPress,
18
+ children: /*#__PURE__*/_jsx(DrawableIcon, {
19
+ accessibilityLabel: accessibilityLabel,
20
+ iconColor: theme.color(disabled ? 'btn.content.disabled' : 'content.primary'),
21
+ resourceName: GLYPHS[name].android
22
+ })
23
+ });
24
+ };
25
+ //# sourceMappingURL=glyph-button.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["IconButton","ComposeIconButton","GLYPHS","DrawableIcon","useAppTheme","jsx","_jsx","GlyphButton","accessibilityLabel","disabled","name","onPress","theme","enabled","onClick","children","iconColor","color","resourceName","android"],"sourceRoot":"../../../src","sources":["glyph/glyph-button.android.tsx"],"mappings":";;AAAA,SAAQA,UAAU,IAAIC,iBAAiB,QAAO,0BAA0B;AACxE,SAAQC,MAAM,QAAO,oBAAoB;AACzC,SAAQC,YAAY,QAAO,oCAAoC;AAC/D,SAAQC,WAAW,QAAO,mBAAmB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI7C,OAAO,MAAMC,WAAiC,GAAGA,CAAC;EAChDC,kBAAkB;EAClBC,QAAQ,GAAG,KAAK;EAChBC,IAAI;EACJC;AACgB,CAAC,KAAK;EACtB,MAAMC,KAAK,GAAGR,WAAW,CAAC,CAAC;EAE3B,oBACEE,IAAA,CAACL,iBAAiB;IAACY,OAAO,EAAE,CAACJ,QAAS;IAACK,OAAO,EAAEH,OAAQ;IAAAI,QAAA,eACtDT,IAAA,CAACH,YAAY;MACXK,kBAAkB,EAAEA,kBAAmB;MACvCQ,SAAS,EAAEJ,KAAK,CAACK,KAAK,CAACR,QAAQ,GAAG,sBAAsB,GAAG,iBAAiB,CAAE;MAC9ES,YAAY,EAAEhB,MAAM,CAACQ,IAAI,CAAC,CAACS;IAAQ,CACpC;EAAC,CACe,CAAC;AAExB,CAAC","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ import { Button } from '@expo/ui/swift-ui';
4
+ import { buttonStyle, disabled as disabledModifier, accessibilityLabel as labelModifier } from '@expo/ui/swift-ui/modifiers';
5
+ import { useMemo } from 'react';
6
+ import { Glyph } from './glyph';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const GlyphButton = ({
9
+ accessibilityLabel,
10
+ disabled = false,
11
+ name,
12
+ onPress
13
+ }) => {
14
+ const modifiers = useMemo(() => {
15
+ const list = [buttonStyle('plain')];
16
+ if (disabled) {
17
+ list.push(disabledModifier(true));
18
+ }
19
+ if (accessibilityLabel) {
20
+ list.push(labelModifier(accessibilityLabel));
21
+ }
22
+ return list;
23
+ }, [accessibilityLabel, disabled]);
24
+ return /*#__PURE__*/_jsx(Button, {
25
+ modifiers: modifiers,
26
+ onPress: onPress,
27
+ children: /*#__PURE__*/_jsx(Glyph, {
28
+ color: disabled ? 'btn.content.disabled' : 'content.primary',
29
+ name: name
30
+ })
31
+ });
32
+ };
33
+ //# sourceMappingURL=glyph-button.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Button","buttonStyle","disabled","disabledModifier","accessibilityLabel","labelModifier","useMemo","Glyph","jsx","_jsx","GlyphButton","name","onPress","modifiers","list","push","children","color"],"sourceRoot":"../../../src","sources":["glyph/glyph-button.ios.tsx"],"mappings":";;AAAA,SAAQA,MAAM,QAAO,mBAAmB;AACxC,SACEC,WAAW,EACXC,QAAQ,IAAIC,gBAAgB,EAC5BC,kBAAkB,IAAIC,aAAa,QAC9B,6BAA6B;AACpC,SAAQC,OAAO,QAAO,OAAO;AAE7B,SAAQC,KAAK,QAAO,SAAS;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG7B,OAAO,MAAMC,WAAiC,GAAGA,CAAC;EAChDN,kBAAkB;EAClBF,QAAQ,GAAG,KAAK;EAChBS,IAAI;EACJC;AACgB,CAAC,KAAK;EACtB,MAAMC,SAAS,GAAGP,OAAO,CAAC,MAAM;IAC9B,MAAMQ,IAAI,GAAG,CAACb,WAAW,CAAC,OAAO,CAAC,CAAC;IAEnC,IAAIC,QAAQ,EAAE;MACZY,IAAI,CAACC,IAAI,CAACZ,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC;IAEA,IAAIC,kBAAkB,EAAE;MACtBU,IAAI,CAACC,IAAI,CAACV,aAAa,CAACD,kBAAkB,CAAC,CAAC;IAC9C;IAEA,OAAOU,IAAI;EACb,CAAC,EAAE,CAACV,kBAAkB,EAAEF,QAAQ,CAAC,CAAC;EAElC,oBACEO,IAAA,CAACT,MAAM;IAACa,SAAS,EAAEA,SAAU;IAACD,OAAO,EAAEA,OAAQ;IAAAI,QAAA,eAC7CP,IAAA,CAACF,KAAK;MAACU,KAAK,EAAEf,QAAQ,GAAG,sBAAsB,GAAG,iBAAkB;MAACS,IAAI,EAAEA;IAAK,CAAE;EAAC,CAC7E,CAAC;AAEb,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=glyph-button.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["glyph/glyph-button.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ import { GLYPHS } from '@hzblj/kara-native';
4
+ import { DrawableIcon } from '@hzblj/kara-native/jetpack-compose';
5
+ import { spacing, useAppTheme } from '@hzblj/kara-theme';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ /** The Material Symbol `@hzblj/kara-native` ships as a drawable — inside a Compose host. */
8
+ export const Glyph = ({
9
+ color = 'content.primary',
10
+ name,
11
+ size = 's24'
12
+ }) => {
13
+ const theme = useAppTheme();
14
+ return /*#__PURE__*/_jsx(DrawableIcon, {
15
+ iconColor: theme.color(color),
16
+ iconSize: spacing[size],
17
+ resourceName: GLYPHS[name].android
18
+ });
19
+ };
20
+ //# sourceMappingURL=glyph.android.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ import { Image } from '@expo/ui/swift-ui';
4
+ import { accessibilityHidden } from '@expo/ui/swift-ui/modifiers';
5
+ import { GLYPHS } from '@hzblj/kara-native';
6
+ import { spacing, useAppTheme } from '@hzblj/kara-theme';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const DECORATIVE = [accessibilityHidden(true)];
9
+
10
+ /** The SF Symbol the system already has — inside a SwiftUI host. */
11
+ export const Glyph = ({
12
+ color = 'content.primary',
13
+ name,
14
+ size = 's24'
15
+ }) => {
16
+ const theme = useAppTheme();
17
+ return /*#__PURE__*/_jsx(Image, {
18
+ color: theme.color(color),
19
+ modifiers: DECORATIVE,
20
+ size: spacing[size],
21
+ systemName: GLYPHS[name].ios
22
+ });
23
+ };
24
+ //# sourceMappingURL=glyph.ios.js.map
@@ -0,0 +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":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=glyph.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["glyph/glyph.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ export * from './glyph';
4
+ export * from "./glyph.types.js";
5
+ export * from './glyph-button';
6
+ export * from "./glyph-button.types.js";
7
+ export * from './rn-glyph';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["glyph/index.ts"],"mappings":";;AAAA,cAAc,SAAS;AACvB,cAAc,kBAAe;AAC7B,cAAc,gBAAgB;AAC9B,cAAc,yBAAsB;AACpC,cAAc,YAAY","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ import { GLYPHS } from '@hzblj/kara-native';
4
+ import { IconView } from '@hzblj/kara-native/jetpack-compose';
5
+ import { spacing, useAppTheme } from '@hzblj/kara-theme';
6
+ import { useMemo } from 'react';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ /** The Material Symbol drawable in an `ImageView` — the React Native tier. */
9
+ export const RnGlyph = ({
10
+ color = 'content.primary',
11
+ name,
12
+ size = 's24'
13
+ }) => {
14
+ const theme = useAppTheme();
15
+ const style = useMemo(() => ({
16
+ height: spacing[size],
17
+ width: spacing[size]
18
+ }), [size]);
19
+ return /*#__PURE__*/_jsx(IconView, {
20
+ iconColor: theme.color(color),
21
+ resourceName: GLYPHS[name].android,
22
+ style: style
23
+ });
24
+ };
25
+ //# sourceMappingURL=rn-glyph.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GLYPHS","IconView","spacing","useAppTheme","useMemo","jsx","_jsx","RnGlyph","color","name","size","theme","style","height","width","iconColor","resourceName","android"],"sourceRoot":"../../../src","sources":["glyph/rn-glyph.android.tsx"],"mappings":";;AAAA,SAAQA,MAAM,QAAO,oBAAoB;AACzC,SAAQC,QAAQ,QAAO,oCAAoC;AAC3D,SAAQC,OAAO,EAAEC,WAAW,QAAO,mBAAmB;AACtD,SAAQC,OAAO,QAAO,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI7B;AACA,OAAO,MAAMC,OAAuB,GAAGA,CAAC;EAACC,KAAK,GAAG,iBAAiB;EAAEC,IAAI;EAAEC,IAAI,GAAG;AAAiB,CAAC,KAAK;EACtG,MAAMC,KAAK,GAAGR,WAAW,CAAC,CAAC;EAC3B,MAAMS,KAAK,GAAGR,OAAO,CAAC,OAAO;IAACS,MAAM,EAAEX,OAAO,CAACQ,IAAI,CAAC;IAAEI,KAAK,EAAEZ,OAAO,CAACQ,IAAI;EAAC,CAAC,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEpF,oBAAOJ,IAAA,CAACL,QAAQ;IAACc,SAAS,EAAEJ,KAAK,CAACH,KAAK,CAACA,KAAK,CAAE;IAACQ,YAAY,EAAEhB,MAAM,CAACS,IAAI,CAAC,CAACQ,OAAQ;IAACL,KAAK,EAAEA;EAAM,CAAE,CAAC;AACtG,CAAC","ignoreList":[]}