@hzblj/kara-components 0.20.1 → 0.21.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 (480) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/lib/module/atoms/activity-indicator/activity-indicator.android.js +1 -1
  3. package/lib/module/atoms/activity-indicator/activity-indicator.android.js.map +1 -1
  4. package/lib/module/atoms/activity-indicator/activity-indicator.ios.js +1 -1
  5. package/lib/module/atoms/activity-indicator/activity-indicator.ios.js.map +1 -1
  6. package/lib/module/atoms/badge/badge.android.js +1 -1
  7. package/lib/module/atoms/badge/badge.android.js.map +1 -1
  8. package/lib/module/atoms/badge/badge.ios.js +1 -1
  9. package/lib/module/atoms/badge/badge.ios.js.map +1 -1
  10. package/lib/module/atoms/blur-view/blur-view.android.js +22 -1
  11. package/lib/module/atoms/blur-view/blur-view.android.js.map +1 -1
  12. package/lib/module/atoms/blur-view/blur-view.ios.js +20 -0
  13. package/lib/module/atoms/blur-view/blur-view.ios.js.map +1 -1
  14. package/lib/module/atoms/button/button.android.js +1 -1
  15. package/lib/module/atoms/button/button.android.js.map +1 -1
  16. package/lib/module/atoms/button/button.ios.js +1 -1
  17. package/lib/module/atoms/button/button.ios.js.map +1 -1
  18. package/lib/module/atoms/card/card.android.js +1 -1
  19. package/lib/module/atoms/card/card.android.js.map +1 -1
  20. package/lib/module/atoms/card/card.ios.js +1 -1
  21. package/lib/module/atoms/card/card.ios.js.map +1 -1
  22. package/lib/module/atoms/checkbox/checkbox.android.js +1 -1
  23. package/lib/module/atoms/checkbox/checkbox.android.js.map +1 -1
  24. package/lib/module/atoms/checkbox/checkbox.ios.js +1 -1
  25. package/lib/module/atoms/checkbox/checkbox.ios.js.map +1 -1
  26. package/lib/module/atoms/color-picker/color-picker.android.js +1 -1
  27. package/lib/module/atoms/color-picker/color-picker.android.js.map +1 -1
  28. package/lib/module/atoms/color-picker/color-picker.ios.js +1 -1
  29. package/lib/module/atoms/color-picker/color-picker.ios.js.map +1 -1
  30. package/lib/module/atoms/date-picker/date-picker.android.js +1 -1
  31. package/lib/module/atoms/date-picker/date-picker.android.js.map +1 -1
  32. package/lib/module/atoms/date-picker/date-picker.ios.js +1 -1
  33. package/lib/module/atoms/date-picker/date-picker.ios.js.map +1 -1
  34. package/lib/module/atoms/divider/divider.android.js +1 -1
  35. package/lib/module/atoms/divider/divider.android.js.map +1 -1
  36. package/lib/module/atoms/divider/divider.ios.js +1 -1
  37. package/lib/module/atoms/divider/divider.ios.js.map +1 -1
  38. package/lib/module/atoms/fab/fab.android.js +1 -1
  39. package/lib/module/atoms/fab/fab.android.js.map +1 -1
  40. package/lib/module/atoms/fab/fab.ios.js +1 -1
  41. package/lib/module/atoms/fab/fab.ios.js.map +1 -1
  42. package/lib/module/atoms/glyph/glyph-button.android.js.map +1 -0
  43. package/lib/module/atoms/glyph/glyph-button.ios.js.map +1 -0
  44. package/lib/module/atoms/glyph/glyph-button.types.js.map +1 -0
  45. package/lib/module/atoms/glyph/glyph.android.js.map +1 -0
  46. package/lib/module/atoms/glyph/glyph.ios.js.map +1 -0
  47. package/lib/module/atoms/glyph/glyph.types.js.map +1 -0
  48. package/lib/module/atoms/glyph/index.js.map +1 -0
  49. package/lib/module/atoms/glyph/rn-glyph.android.js.map +1 -0
  50. package/lib/module/atoms/glyph/rn-glyph.ios.js.map +1 -0
  51. package/lib/module/atoms/h-stack/h-stack.android.js +2 -2
  52. package/lib/module/atoms/h-stack/h-stack.android.js.map +1 -1
  53. package/lib/module/atoms/h-stack/h-stack.ios.js +2 -2
  54. package/lib/module/atoms/h-stack/h-stack.ios.js.map +1 -1
  55. package/lib/module/atoms/icon/icon.android.js +1 -1
  56. package/lib/module/atoms/icon/icon.android.js.map +1 -1
  57. package/lib/module/atoms/icon/icon.ios.js +1 -1
  58. package/lib/module/atoms/icon/icon.ios.js.map +1 -1
  59. package/lib/module/atoms/icon-button/icon-button.android.js +1 -1
  60. package/lib/module/atoms/icon-button/icon-button.android.js.map +1 -1
  61. package/lib/module/atoms/icon-button/icon-button.ios.js +1 -1
  62. package/lib/module/atoms/icon-button/icon-button.ios.js.map +1 -1
  63. package/lib/module/atoms/island/island.android.js +3 -1
  64. package/lib/module/atoms/island/island.android.js.map +1 -1
  65. package/lib/module/atoms/island/island.ios.js +3 -1
  66. package/lib/module/atoms/island/island.ios.js.map +1 -1
  67. package/lib/module/atoms/list/list.android.js +2 -2
  68. package/lib/module/atoms/list/list.android.js.map +1 -1
  69. package/lib/module/atoms/list/list.ios.js +1 -1
  70. package/lib/module/atoms/list/list.ios.js.map +1 -1
  71. package/lib/module/atoms/picker/picker.android.js +2 -2
  72. package/lib/module/atoms/picker/picker.android.js.map +1 -1
  73. package/lib/module/atoms/picker/picker.ios.js +1 -1
  74. package/lib/module/atoms/picker/picker.ios.js.map +1 -1
  75. package/lib/module/atoms/pressable/pressable.js +1 -1
  76. package/lib/module/atoms/pressable/pressable.js.map +1 -1
  77. package/lib/module/atoms/progress/progress.android.js +1 -1
  78. package/lib/module/atoms/progress/progress.android.js.map +1 -1
  79. package/lib/module/atoms/progress/progress.ios.js +1 -1
  80. package/lib/module/atoms/progress/progress.ios.js.map +1 -1
  81. package/lib/module/atoms/scroll-view/scroll-view.android.js +2 -2
  82. package/lib/module/atoms/scroll-view/scroll-view.android.js.map +1 -1
  83. package/lib/module/atoms/scroll-view/scroll-view.ios.js +1 -1
  84. package/lib/module/atoms/scroll-view/scroll-view.ios.js.map +1 -1
  85. package/lib/module/atoms/segmented-control/segmented-control.android.js +1 -1
  86. package/lib/module/atoms/segmented-control/segmented-control.android.js.map +1 -1
  87. package/lib/module/atoms/segmented-control/segmented-control.ios.js +1 -1
  88. package/lib/module/atoms/segmented-control/segmented-control.ios.js.map +1 -1
  89. package/lib/module/atoms/slider/slider.android.js +1 -1
  90. package/lib/module/atoms/slider/slider.android.js.map +1 -1
  91. package/lib/module/atoms/slider/slider.ios.js +1 -1
  92. package/lib/module/atoms/slider/slider.ios.js.map +1 -1
  93. package/lib/module/atoms/spacer/spacer.android.js +1 -1
  94. package/lib/module/atoms/spacer/spacer.android.js.map +1 -1
  95. package/lib/module/atoms/spacer/spacer.ios.js +1 -1
  96. package/lib/module/atoms/spacer/spacer.ios.js.map +1 -1
  97. package/lib/module/atoms/surface/surface.android.js +1 -1
  98. package/lib/module/atoms/surface/surface.android.js.map +1 -1
  99. package/lib/module/atoms/surface/surface.ios.js +1 -1
  100. package/lib/module/atoms/surface/surface.ios.js.map +1 -1
  101. package/lib/module/atoms/switch/switch.android.js +1 -1
  102. package/lib/module/atoms/switch/switch.android.js.map +1 -1
  103. package/lib/module/atoms/switch/switch.ios.js +1 -1
  104. package/lib/module/atoms/switch/switch.ios.js.map +1 -1
  105. package/lib/module/atoms/text/text.android.js +1 -1
  106. package/lib/module/atoms/text/text.android.js.map +1 -1
  107. package/lib/module/atoms/text/text.ios.js +1 -1
  108. package/lib/module/atoms/text/text.ios.js.map +1 -1
  109. package/lib/module/atoms/text-field/text-field.android.js +2 -2
  110. package/lib/module/atoms/text-field/text-field.android.js.map +1 -1
  111. package/lib/module/atoms/text-field/text-field.ios.js +1 -1
  112. package/lib/module/atoms/text-field/text-field.ios.js.map +1 -1
  113. package/lib/module/atoms/v-stack/v-stack.android.js +2 -2
  114. package/lib/module/atoms/v-stack/v-stack.android.js.map +1 -1
  115. package/lib/module/atoms/v-stack/v-stack.ios.js +2 -2
  116. package/lib/module/atoms/v-stack/v-stack.ios.js.map +1 -1
  117. package/lib/module/atoms/z-stack/z-stack.android.js +2 -2
  118. package/lib/module/atoms/z-stack/z-stack.android.js.map +1 -1
  119. package/lib/module/atoms/z-stack/z-stack.ios.js +2 -2
  120. package/lib/module/atoms/z-stack/z-stack.ios.js.map +1 -1
  121. package/lib/module/hooks/host-context.js.map +1 -0
  122. package/lib/module/hooks/use-refresh-state.js.map +1 -0
  123. package/lib/module/hooks/use-stack-modifiers.js.map +1 -0
  124. package/lib/module/molecules/collapsible/collapsible.android.js +2 -2
  125. package/lib/module/molecules/collapsible/collapsible.android.js.map +1 -1
  126. package/lib/module/molecules/collapsible/collapsible.ios.js +1 -1
  127. package/lib/module/molecules/collapsible/collapsible.ios.js.map +1 -1
  128. package/lib/module/molecules/labeled-content/labeled-content.js +1 -1
  129. package/lib/module/molecules/labeled-content/labeled-content.js.map +1 -1
  130. package/lib/module/molecules/list-item/list-item.js +1 -1
  131. package/lib/module/molecules/list-item/list-item.js.map +1 -1
  132. package/lib/module/molecules/navigation-bar/navigation-bar.constants.js +5 -0
  133. package/lib/module/molecules/navigation-bar/navigation-bar.constants.js.map +1 -0
  134. package/lib/module/molecules/navigation-bar/navigation-bar.ios.js +31 -4
  135. package/lib/module/molecules/navigation-bar/navigation-bar.ios.js.map +1 -1
  136. package/lib/module/molecules/pager/pager.android.js +1 -1
  137. package/lib/module/molecules/pager/pager.android.js.map +1 -1
  138. package/lib/module/molecules/pager/pager.ios.js +1 -1
  139. package/lib/module/molecules/pager/pager.ios.js.map +1 -1
  140. package/lib/module/molecules/radio-group/radio-group.android.js +1 -1
  141. package/lib/module/molecules/radio-group/radio-group.android.js.map +1 -1
  142. package/lib/module/molecules/radio-group/radio-group.ios.js +2 -2
  143. package/lib/module/molecules/radio-group/radio-group.ios.js.map +1 -1
  144. package/lib/module/molecules/rn-list-item/rn-list-item.js +1 -1
  145. package/lib/module/molecules/rn-list-item/rn-list-item.js.map +1 -1
  146. package/lib/module/molecules/rn-tooltip/rn-tooltip.android.js +1 -1
  147. package/lib/module/molecules/rn-tooltip/rn-tooltip.android.js.map +1 -1
  148. package/lib/module/molecules/search-bar/search-bar.js +1 -1
  149. package/lib/module/molecules/search-bar/search-bar.js.map +1 -1
  150. package/lib/module/molecules/stepper/stepper.android.js +2 -2
  151. package/lib/module/molecules/stepper/stepper.android.js.map +1 -1
  152. package/lib/module/molecules/stepper/stepper.ios.js +1 -1
  153. package/lib/module/molecules/stepper/stepper.ios.js.map +1 -1
  154. package/lib/module/molecules/tooltip/tooltip.android.js +1 -1
  155. package/lib/module/molecules/tooltip/tooltip.android.js.map +1 -1
  156. package/lib/module/molecules/tooltip/tooltip.ios.js +1 -1
  157. package/lib/module/molecules/tooltip/tooltip.ios.js.map +1 -1
  158. package/lib/module/organisms/action-sheet/action-sheet.android.js +1 -1
  159. package/lib/module/organisms/action-sheet/action-sheet.android.js.map +1 -1
  160. package/lib/module/organisms/action-sheet/action-sheet.ios.js +1 -1
  161. package/lib/module/organisms/action-sheet/action-sheet.ios.js.map +1 -1
  162. package/lib/module/organisms/alert/alert.android.js +1 -1
  163. package/lib/module/organisms/alert/alert.android.js.map +1 -1
  164. package/lib/module/organisms/alert/alert.ios.js +1 -1
  165. package/lib/module/organisms/alert/alert.ios.js.map +1 -1
  166. package/lib/module/organisms/context-menu/context-menu.android.js +2 -2
  167. package/lib/module/organisms/context-menu/context-menu.android.js.map +1 -1
  168. package/lib/module/organisms/fab-menu/fab-menu.android.js +2 -2
  169. package/lib/module/organisms/fab-menu/fab-menu.android.js.map +1 -1
  170. package/lib/module/organisms/fab-menu/fab-menu.ios.js +2 -2
  171. package/lib/module/organisms/fab-menu/fab-menu.ios.js.map +1 -1
  172. package/lib/module/organisms/form/form.android.js +1 -1
  173. package/lib/module/organisms/form/form.android.js.map +1 -1
  174. package/lib/module/organisms/form/form.ios.js +1 -1
  175. package/lib/module/organisms/form/form.ios.js.map +1 -1
  176. package/lib/module/organisms/header/header-color.js +8 -0
  177. package/lib/module/organisms/header/header-color.js.map +1 -0
  178. package/lib/module/organisms/header/header-inset.android.js +6 -0
  179. package/lib/module/organisms/header/header-inset.android.js.map +1 -0
  180. package/lib/module/organisms/header/header-inset.ios.js +19 -0
  181. package/lib/module/organisms/header/header-inset.ios.js.map +1 -0
  182. package/lib/module/organisms/header/header-options.android.js +180 -0
  183. package/lib/module/organisms/header/header-options.android.js.map +1 -0
  184. package/lib/module/organisms/header/header-options.ios.js +145 -0
  185. package/lib/module/organisms/header/header-options.ios.js.map +1 -0
  186. package/lib/module/organisms/header/header-options.types.js +4 -0
  187. package/lib/module/organisms/header/header-options.types.js.map +1 -0
  188. package/lib/module/organisms/header/header-search-accessory.android.js +5 -0
  189. package/lib/module/organisms/header/header-search-accessory.android.js.map +1 -0
  190. package/lib/module/organisms/header/header-search-accessory.ios.js +35 -0
  191. package/lib/module/organisms/header/header-search-accessory.ios.js.map +1 -0
  192. package/lib/module/organisms/header/header-search-accessory.types.js +4 -0
  193. package/lib/module/organisms/header/header-search-accessory.types.js.map +1 -0
  194. package/lib/module/organisms/header/header-search-input.android.js +80 -0
  195. package/lib/module/organisms/header/header-search-input.android.js.map +1 -0
  196. package/lib/module/organisms/header/header-search-input.ios.js +8 -0
  197. package/lib/module/organisms/header/header-search-input.ios.js.map +1 -0
  198. package/lib/module/organisms/header/header-search-input.types.js +4 -0
  199. package/lib/module/organisms/header/header-search-input.types.js.map +1 -0
  200. package/lib/module/organisms/header/header-search-scrim.js +62 -0
  201. package/lib/module/organisms/header/header-search-scrim.js.map +1 -0
  202. package/lib/module/organisms/header/header-title.js +230 -0
  203. package/lib/module/organisms/header/header-title.js.map +1 -0
  204. package/lib/module/organisms/header/header.types.js +4 -0
  205. package/lib/module/organisms/header/header.types.js.map +1 -0
  206. package/lib/module/organisms/header/hero-header-background.android.js +33 -0
  207. package/lib/module/organisms/header/hero-header-background.android.js.map +1 -0
  208. package/lib/module/organisms/header/hero-header-background.ios.js +40 -0
  209. package/lib/module/organisms/header/hero-header-background.ios.js.map +1 -0
  210. package/lib/module/organisms/header/hero-header-background.types.js +4 -0
  211. package/lib/module/organisms/header/hero-header-background.types.js.map +1 -0
  212. package/lib/module/organisms/header/index.js +13 -0
  213. package/lib/module/organisms/header/index.js.map +1 -0
  214. package/lib/module/organisms/header/native-subtitle.android.js +5 -0
  215. package/lib/module/organisms/header/native-subtitle.android.js.map +1 -0
  216. package/lib/module/organisms/header/native-subtitle.ios.js +22 -0
  217. package/lib/module/organisms/header/native-subtitle.ios.js.map +1 -0
  218. package/lib/module/organisms/header/native-subtitle.types.js +4 -0
  219. package/lib/module/organisms/header/native-subtitle.types.js.map +1 -0
  220. package/lib/module/organisms/header/sheet-grabber.android.js +5 -0
  221. package/lib/module/organisms/header/sheet-grabber.android.js.map +1 -0
  222. package/lib/module/organisms/header/sheet-grabber.ios.js +15 -0
  223. package/lib/module/organisms/header/sheet-grabber.ios.js.map +1 -0
  224. package/lib/module/organisms/header/sheet-grabber.types.js +4 -0
  225. package/lib/module/organisms/header/sheet-grabber.types.js.map +1 -0
  226. package/lib/module/organisms/header/use-header-bar-inset.android.js +4 -0
  227. package/lib/module/organisms/header/use-header-bar-inset.android.js.map +1 -0
  228. package/lib/module/organisms/header/use-header-bar-inset.ios.js +9 -0
  229. package/lib/module/organisms/header/use-header-bar-inset.ios.js.map +1 -0
  230. package/lib/module/organisms/header/use-header-bar-inset.types.js +2 -0
  231. package/lib/module/organisms/header/use-header-bar-inset.types.js.map +1 -0
  232. package/lib/module/organisms/header/use-header-scroll-to-top.js +51 -0
  233. package/lib/module/organisms/header/use-header-scroll-to-top.js.map +1 -0
  234. package/lib/module/organisms/header/use-header-search.js +135 -0
  235. package/lib/module/organisms/header/use-header-search.js.map +1 -0
  236. package/lib/module/organisms/header/use-header.js +74 -0
  237. package/lib/module/organisms/header/use-header.js.map +1 -0
  238. package/lib/module/organisms/header/use-hero-header.js +189 -0
  239. package/lib/module/organisms/header/use-hero-header.js.map +1 -0
  240. package/lib/module/organisms/header/use-stack-screen-options.js +77 -0
  241. package/lib/module/organisms/header/use-stack-screen-options.js.map +1 -0
  242. package/lib/module/organisms/menu/menu.android.js +2 -2
  243. package/lib/module/organisms/menu/menu.android.js.map +1 -1
  244. package/lib/module/organisms/menu/menu.ios.js +1 -1
  245. package/lib/module/organisms/menu/menu.ios.js.map +1 -1
  246. package/lib/module/organisms/sheet/use-sheet-header.js +3 -1
  247. package/lib/module/organisms/sheet/use-sheet-header.js.map +1 -1
  248. package/lib/module/organisms/snackbar/snackbar.js +1 -1
  249. package/lib/module/organisms/snackbar/snackbar.js.map +1 -1
  250. package/lib/module/organisms/swipe-actions/swipe-actions.android.js +1 -1
  251. package/lib/module/organisms/swipe-actions/swipe-actions.android.js.map +1 -1
  252. package/lib/module/organisms/swipe-actions/swipe-actions.ios.js +1 -1
  253. package/lib/module/organisms/swipe-actions/swipe-actions.ios.js.map +1 -1
  254. package/lib/module/templates/screen/screen.android.js +3 -3
  255. package/lib/module/templates/screen/screen.android.js.map +1 -1
  256. package/lib/module/templates/screen/screen.ios.js +3 -3
  257. package/lib/module/templates/screen/screen.ios.js.map +1 -1
  258. package/lib/module/utils/ripple-clip.js.map +1 -0
  259. package/lib/module/utils/tap-modifiers.js.map +1 -0
  260. package/lib/typescript/atoms/blur-view/blur-view.types.d.ts +8 -0
  261. package/lib/typescript/atoms/island/island.types.d.ts +17 -0
  262. package/lib/typescript/molecules/navigation-bar/navigation-bar.constants.d.ts +2 -0
  263. package/lib/typescript/molecules/navigation-bar/navigation-bar.types.d.ts +67 -4
  264. package/lib/typescript/organisms/header/header-color.d.ts +6 -0
  265. package/lib/typescript/organisms/header/header-inset.d.ts +1 -0
  266. package/lib/typescript/organisms/header/header-inset.ios.d.ts +2 -0
  267. package/lib/typescript/organisms/header/header-options.d.ts +1 -0
  268. package/lib/typescript/organisms/header/header-options.ios.d.ts +2 -0
  269. package/lib/typescript/organisms/header/header-options.types.d.ts +4 -0
  270. package/lib/typescript/organisms/header/header-search-accessory.d.ts +1 -0
  271. package/lib/typescript/organisms/header/header-search-accessory.ios.d.ts +6 -0
  272. package/lib/typescript/organisms/header/header-search-accessory.types.d.ts +9 -0
  273. package/lib/typescript/organisms/header/header-search-input.d.ts +1 -0
  274. package/lib/typescript/organisms/header/header-search-input.ios.d.ts +5 -0
  275. package/lib/typescript/organisms/header/header-search-input.types.d.ts +17 -0
  276. package/lib/typescript/organisms/header/header-search-scrim.d.ts +11 -0
  277. package/lib/typescript/organisms/header/header-title.d.ts +22 -0
  278. package/lib/typescript/organisms/header/header.types.d.ts +440 -0
  279. package/lib/typescript/organisms/header/hero-header-background.d.ts +1 -0
  280. package/lib/typescript/organisms/header/hero-header-background.ios.d.ts +7 -0
  281. package/lib/typescript/organisms/header/hero-header-background.types.d.ts +9 -0
  282. package/lib/typescript/organisms/header/index.d.ts +11 -0
  283. package/lib/typescript/organisms/header/native-subtitle.d.ts +1 -0
  284. package/lib/typescript/organisms/header/native-subtitle.ios.d.ts +4 -0
  285. package/lib/typescript/organisms/header/native-subtitle.types.d.ts +6 -0
  286. package/lib/typescript/organisms/header/sheet-grabber.d.ts +1 -0
  287. package/lib/typescript/organisms/header/sheet-grabber.ios.d.ts +7 -0
  288. package/lib/typescript/organisms/header/sheet-grabber.types.d.ts +6 -0
  289. package/lib/typescript/organisms/header/use-header-bar-inset.d.ts +1 -0
  290. package/lib/typescript/organisms/header/use-header-bar-inset.ios.d.ts +1 -0
  291. package/lib/typescript/organisms/header/use-header-bar-inset.types.d.ts +6 -0
  292. package/lib/typescript/organisms/header/use-header-scroll-to-top.d.ts +8 -0
  293. package/lib/typescript/organisms/header/use-header-search.d.ts +12 -0
  294. package/lib/typescript/organisms/header/use-header.d.ts +14 -0
  295. package/lib/typescript/organisms/header/use-hero-header.d.ts +10 -0
  296. package/lib/typescript/organisms/header/use-stack-screen-options.d.ts +17 -0
  297. package/lib/typescript/templates/screen/screen.types.d.ts +6 -2
  298. package/package.json +24 -5
  299. package/src/atoms/activity-indicator/activity-indicator.android.tsx +1 -1
  300. package/src/atoms/activity-indicator/activity-indicator.ios.tsx +1 -1
  301. package/src/atoms/badge/badge.android.tsx +1 -1
  302. package/src/atoms/badge/badge.ios.tsx +1 -1
  303. package/src/atoms/blur-view/blur-view.android.tsx +28 -1
  304. package/src/atoms/blur-view/blur-view.ios.tsx +25 -0
  305. package/src/atoms/blur-view/blur-view.types.ts +8 -0
  306. package/src/atoms/button/button.android.tsx +1 -1
  307. package/src/atoms/button/button.ios.tsx +1 -1
  308. package/src/atoms/card/card.android.tsx +1 -1
  309. package/src/atoms/card/card.ios.tsx +1 -1
  310. package/src/atoms/checkbox/checkbox.android.tsx +1 -1
  311. package/src/atoms/checkbox/checkbox.ios.tsx +1 -1
  312. package/src/atoms/color-picker/color-picker.android.tsx +1 -1
  313. package/src/atoms/color-picker/color-picker.ios.tsx +1 -1
  314. package/src/atoms/date-picker/date-picker.android.tsx +1 -1
  315. package/src/atoms/date-picker/date-picker.ios.tsx +1 -1
  316. package/src/atoms/divider/divider.android.tsx +1 -1
  317. package/src/atoms/divider/divider.ios.tsx +1 -1
  318. package/src/atoms/fab/fab.android.tsx +1 -1
  319. package/src/atoms/fab/fab.ios.tsx +1 -1
  320. package/src/atoms/h-stack/h-stack.android.tsx +2 -2
  321. package/src/atoms/h-stack/h-stack.ios.tsx +2 -2
  322. package/src/atoms/icon/icon.android.tsx +1 -1
  323. package/src/atoms/icon/icon.ios.tsx +1 -1
  324. package/src/atoms/icon-button/icon-button.android.tsx +1 -1
  325. package/src/atoms/icon-button/icon-button.ios.tsx +1 -1
  326. package/src/atoms/island/island.android.tsx +3 -1
  327. package/src/atoms/island/island.ios.tsx +10 -2
  328. package/src/atoms/island/island.types.ts +18 -0
  329. package/src/atoms/list/list.android.tsx +2 -2
  330. package/src/atoms/list/list.ios.tsx +1 -1
  331. package/src/atoms/picker/picker.android.tsx +2 -3
  332. package/src/atoms/picker/picker.ios.tsx +1 -1
  333. package/src/atoms/pressable/pressable.tsx +1 -1
  334. package/src/atoms/progress/progress.android.tsx +1 -1
  335. package/src/atoms/progress/progress.ios.tsx +1 -1
  336. package/src/atoms/scroll-view/scroll-view.android.tsx +2 -2
  337. package/src/atoms/scroll-view/scroll-view.ios.tsx +1 -1
  338. package/src/atoms/segmented-control/segmented-control.android.tsx +1 -1
  339. package/src/atoms/segmented-control/segmented-control.ios.tsx +1 -1
  340. package/src/atoms/slider/slider.android.tsx +1 -1
  341. package/src/atoms/slider/slider.ios.tsx +1 -1
  342. package/src/atoms/spacer/spacer.android.tsx +1 -1
  343. package/src/atoms/spacer/spacer.ios.tsx +1 -1
  344. package/src/atoms/surface/surface.android.tsx +1 -1
  345. package/src/atoms/surface/surface.ios.tsx +1 -1
  346. package/src/atoms/switch/switch.android.tsx +1 -1
  347. package/src/atoms/switch/switch.ios.tsx +1 -1
  348. package/src/atoms/text/text.android.tsx +1 -1
  349. package/src/atoms/text/text.ios.tsx +1 -1
  350. package/src/atoms/text-field/text-field.android.tsx +2 -2
  351. package/src/atoms/text-field/text-field.ios.tsx +1 -1
  352. package/src/atoms/v-stack/v-stack.android.tsx +2 -2
  353. package/src/atoms/v-stack/v-stack.ios.tsx +2 -2
  354. package/src/atoms/z-stack/z-stack.android.tsx +2 -2
  355. package/src/atoms/z-stack/z-stack.ios.tsx +2 -2
  356. package/src/molecules/collapsible/collapsible.android.tsx +2 -2
  357. package/src/molecules/collapsible/collapsible.ios.tsx +1 -1
  358. package/src/molecules/labeled-content/labeled-content.tsx +1 -1
  359. package/src/molecules/list-item/list-item.tsx +1 -2
  360. package/src/molecules/navigation-bar/navigation-bar.constants.ts +2 -0
  361. package/src/molecules/navigation-bar/navigation-bar.ios.tsx +35 -5
  362. package/src/molecules/navigation-bar/navigation-bar.types.ts +69 -5
  363. package/src/molecules/pager/pager.android.tsx +1 -1
  364. package/src/molecules/pager/pager.ios.tsx +1 -1
  365. package/src/molecules/radio-group/radio-group.android.tsx +1 -1
  366. package/src/molecules/radio-group/radio-group.ios.tsx +2 -2
  367. package/src/molecules/rn-list-item/rn-list-item.tsx +1 -1
  368. package/src/molecules/rn-tooltip/rn-tooltip.android.tsx +1 -1
  369. package/src/molecules/search-bar/search-bar.tsx +1 -1
  370. package/src/molecules/stepper/stepper.android.tsx +2 -2
  371. package/src/molecules/stepper/stepper.ios.tsx +1 -1
  372. package/src/molecules/tooltip/tooltip.android.tsx +1 -1
  373. package/src/molecules/tooltip/tooltip.ios.tsx +1 -1
  374. package/src/organisms/action-sheet/action-sheet.android.tsx +1 -1
  375. package/src/organisms/action-sheet/action-sheet.ios.tsx +1 -1
  376. package/src/organisms/alert/alert.android.tsx +1 -1
  377. package/src/organisms/alert/alert.ios.tsx +1 -1
  378. package/src/organisms/context-menu/context-menu.android.tsx +2 -2
  379. package/src/organisms/fab-menu/fab-menu.android.tsx +2 -2
  380. package/src/organisms/fab-menu/fab-menu.ios.tsx +2 -3
  381. package/src/organisms/form/form.android.tsx +1 -1
  382. package/src/organisms/form/form.ios.tsx +1 -1
  383. package/src/organisms/header/header-color.ts +7 -0
  384. package/src/organisms/header/header-inset.android.tsx +3 -0
  385. package/src/organisms/header/header-inset.ios.tsx +12 -0
  386. package/src/organisms/header/header-options.android.tsx +168 -0
  387. package/src/organisms/header/header-options.ios.tsx +138 -0
  388. package/src/organisms/header/header-options.types.ts +6 -0
  389. package/src/organisms/header/header-search-accessory.android.tsx +4 -0
  390. package/src/organisms/header/header-search-accessory.ios.tsx +42 -0
  391. package/src/organisms/header/header-search-accessory.types.ts +12 -0
  392. package/src/organisms/header/header-search-input.android.tsx +89 -0
  393. package/src/organisms/header/header-search-input.ios.tsx +7 -0
  394. package/src/organisms/header/header-search-input.types.ts +21 -0
  395. package/src/organisms/header/header-search-scrim.tsx +49 -0
  396. package/src/organisms/header/header-title.tsx +220 -0
  397. package/src/organisms/header/header.types.ts +416 -0
  398. package/src/organisms/header/hero-header-background.android.tsx +22 -0
  399. package/src/organisms/header/hero-header-background.ios.tsx +26 -0
  400. package/src/organisms/header/hero-header-background.types.ts +11 -0
  401. package/src/organisms/header/index.ts +11 -0
  402. package/src/organisms/header/native-subtitle.android.tsx +5 -0
  403. package/src/organisms/header/native-subtitle.ios.tsx +22 -0
  404. package/src/organisms/header/native-subtitle.types.ts +8 -0
  405. package/src/organisms/header/sheet-grabber.android.tsx +4 -0
  406. package/src/organisms/header/sheet-grabber.ios.tsx +12 -0
  407. package/src/organisms/header/sheet-grabber.types.ts +8 -0
  408. package/src/organisms/header/use-header-bar-inset.android.ts +1 -0
  409. package/src/organisms/header/use-header-bar-inset.ios.ts +7 -0
  410. package/src/organisms/header/use-header-bar-inset.types.ts +6 -0
  411. package/src/organisms/header/use-header-scroll-to-top.ts +48 -0
  412. package/src/organisms/header/use-header-search.tsx +138 -0
  413. package/src/organisms/header/use-header.ts +67 -0
  414. package/src/organisms/header/use-hero-header.tsx +222 -0
  415. package/src/organisms/header/use-stack-screen-options.ts +66 -0
  416. package/src/organisms/menu/menu.android.tsx +2 -2
  417. package/src/organisms/menu/menu.ios.tsx +1 -1
  418. package/src/organisms/sheet/use-sheet-header.tsx +4 -1
  419. package/src/organisms/snackbar/snackbar.tsx +1 -1
  420. package/src/organisms/swipe-actions/swipe-actions.android.tsx +1 -1
  421. package/src/organisms/swipe-actions/swipe-actions.ios.tsx +1 -1
  422. package/src/templates/screen/screen.android.tsx +8 -3
  423. package/src/templates/screen/screen.ios.tsx +8 -3
  424. package/src/templates/screen/screen.types.ts +7 -2
  425. package/lib/module/glyph/glyph-button.android.js.map +0 -1
  426. package/lib/module/glyph/glyph-button.ios.js.map +0 -1
  427. package/lib/module/glyph/glyph-button.types.js.map +0 -1
  428. package/lib/module/glyph/glyph.android.js.map +0 -1
  429. package/lib/module/glyph/glyph.ios.js.map +0 -1
  430. package/lib/module/glyph/glyph.types.js.map +0 -1
  431. package/lib/module/glyph/index.js.map +0 -1
  432. package/lib/module/glyph/rn-glyph.android.js.map +0 -1
  433. package/lib/module/glyph/rn-glyph.ios.js.map +0 -1
  434. package/lib/module/host-context.js.map +0 -1
  435. package/lib/module/ripple-clip.js.map +0 -1
  436. package/lib/module/tap-modifiers.js.map +0 -1
  437. package/lib/module/use-refresh-state.js.map +0 -1
  438. package/lib/module/use-stack-modifiers.js.map +0 -1
  439. /package/lib/module/{glyph → atoms/glyph}/glyph-button.android.js +0 -0
  440. /package/lib/module/{glyph → atoms/glyph}/glyph-button.ios.js +0 -0
  441. /package/lib/module/{glyph → atoms/glyph}/glyph-button.types.js +0 -0
  442. /package/lib/module/{glyph → atoms/glyph}/glyph.android.js +0 -0
  443. /package/lib/module/{glyph → atoms/glyph}/glyph.ios.js +0 -0
  444. /package/lib/module/{glyph → atoms/glyph}/glyph.types.js +0 -0
  445. /package/lib/module/{glyph → atoms/glyph}/index.js +0 -0
  446. /package/lib/module/{glyph → atoms/glyph}/rn-glyph.android.js +0 -0
  447. /package/lib/module/{glyph → atoms/glyph}/rn-glyph.ios.js +0 -0
  448. /package/lib/module/{host-context.js → hooks/host-context.js} +0 -0
  449. /package/lib/module/{use-refresh-state.js → hooks/use-refresh-state.js} +0 -0
  450. /package/lib/module/{use-stack-modifiers.js → hooks/use-stack-modifiers.js} +0 -0
  451. /package/lib/module/{ripple-clip.js → utils/ripple-clip.js} +0 -0
  452. /package/lib/module/{tap-modifiers.js → utils/tap-modifiers.js} +0 -0
  453. /package/lib/typescript/{glyph → atoms/glyph}/glyph-button.d.ts +0 -0
  454. /package/lib/typescript/{glyph → atoms/glyph}/glyph-button.ios.d.ts +0 -0
  455. /package/lib/typescript/{glyph → atoms/glyph}/glyph-button.types.d.ts +0 -0
  456. /package/lib/typescript/{glyph → atoms/glyph}/glyph.d.ts +0 -0
  457. /package/lib/typescript/{glyph → atoms/glyph}/glyph.ios.d.ts +0 -0
  458. /package/lib/typescript/{glyph → atoms/glyph}/glyph.types.d.ts +0 -0
  459. /package/lib/typescript/{glyph → atoms/glyph}/index.d.ts +0 -0
  460. /package/lib/typescript/{glyph → atoms/glyph}/rn-glyph.d.ts +0 -0
  461. /package/lib/typescript/{glyph → atoms/glyph}/rn-glyph.ios.d.ts +0 -0
  462. /package/lib/typescript/{host-context.d.ts → hooks/host-context.d.ts} +0 -0
  463. /package/lib/typescript/{use-refresh-state.d.ts → hooks/use-refresh-state.d.ts} +0 -0
  464. /package/lib/typescript/{use-stack-modifiers.d.ts → hooks/use-stack-modifiers.d.ts} +0 -0
  465. /package/lib/typescript/{ripple-clip.d.ts → utils/ripple-clip.d.ts} +0 -0
  466. /package/lib/typescript/{tap-modifiers.d.ts → utils/tap-modifiers.d.ts} +0 -0
  467. /package/src/{glyph → atoms/glyph}/glyph-button.android.tsx +0 -0
  468. /package/src/{glyph → atoms/glyph}/glyph-button.ios.tsx +0 -0
  469. /package/src/{glyph → atoms/glyph}/glyph-button.types.ts +0 -0
  470. /package/src/{glyph → atoms/glyph}/glyph.android.tsx +0 -0
  471. /package/src/{glyph → atoms/glyph}/glyph.ios.tsx +0 -0
  472. /package/src/{glyph → atoms/glyph}/glyph.types.ts +0 -0
  473. /package/src/{glyph → atoms/glyph}/index.ts +0 -0
  474. /package/src/{glyph → atoms/glyph}/rn-glyph.android.tsx +0 -0
  475. /package/src/{glyph → atoms/glyph}/rn-glyph.ios.tsx +0 -0
  476. /package/src/{host-context.tsx → hooks/host-context.tsx} +0 -0
  477. /package/src/{use-refresh-state.ts → hooks/use-refresh-state.ts} +0 -0
  478. /package/src/{use-stack-modifiers.ts → hooks/use-stack-modifiers.ts} +0 -0
  479. /package/src/{ripple-clip.ts → utils/ripple-clip.ts} +0 -0
  480. /package/src/{tap-modifiers.ts → utils/tap-modifiers.ts} +0 -0
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=header-search-accessory.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["organisms/header/header-search-accessory.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ import { Host } from '@expo/ui/jetpack-compose';
4
+ import { iconResourceName } from '@hzblj/expo-native-icons';
5
+ import { SearchField } from '@hzblj/kara-native/jetpack-compose';
6
+ import { useAppTheme } from '@hzblj/kara-theme';
7
+ import { useImperativeHandle, useMemo, useRef } from 'react';
8
+ import { StyleSheet, View } from 'react-native';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ /** Material's search field is 56dp; the row adds 8dp above it and 12dp below, under the top app bar. */
11
+ const FIELD_HEIGHT = 56;
12
+
13
+ /** The row's height under the bar, for what is laid out below it (the scrim starts there). */
14
+ export const HEADER_SEARCH_ROW_HEIGHT = 8 + FIELD_HEIGHT + 12;
15
+ const styles = StyleSheet.create({
16
+ field: {
17
+ height: FIELD_HEIGHT
18
+ },
19
+ row: {
20
+ paddingBottom: 12,
21
+ paddingHorizontal: 16,
22
+ paddingTop: 8
23
+ }
24
+ });
25
+ const ignoreDetachedView = () => undefined;
26
+ export const HeaderSearchInput = ({
27
+ clearIcon,
28
+ onChangeText,
29
+ onFocusChange,
30
+ placeholder,
31
+ ref,
32
+ voice
33
+ }) => {
34
+ const theme = useAppTheme();
35
+ const fieldRef = useRef(null);
36
+ const face = theme.typography.body;
37
+ useImperativeHandle(ref, () => ({
38
+ blur: () => {
39
+ fieldRef.current?.blurField().catch(ignoreDetachedView);
40
+ },
41
+ clear: () => {
42
+ fieldRef.current?.clearQuery().catch(ignoreDetachedView);
43
+ },
44
+ setText: text => {
45
+ fieldRef.current?.setQuery(text).catch(ignoreDetachedView);
46
+ }
47
+ }), []);
48
+ const nativeVoice = useMemo(() => voice && {
49
+ ...voice,
50
+ microphoneIconName: voice.microphoneIcon ? iconResourceName(voice.microphoneIcon) : undefined,
51
+ stopIconName: voice.stopIcon ? iconResourceName(voice.stopIcon) : undefined
52
+ }, [voice]);
53
+ const fieldClearIcon = voice?.clearIcon ?? clearIcon;
54
+ return /*#__PURE__*/_jsx(View, {
55
+ style: styles.row,
56
+ children: /*#__PURE__*/_jsx(Host, {
57
+ colorScheme: theme.dark ? 'dark' : 'light',
58
+ ignoreSafeAreaKeyboardInsets: true,
59
+ seedColor: theme.materialSeed,
60
+ style: styles.field,
61
+ children: /*#__PURE__*/_jsx(SearchField, {
62
+ cancelLabel: "Cancel",
63
+ clearIconName: fieldClearIcon ? iconResourceName(fieldClearIcon) : undefined,
64
+ clearLabel: voice?.clearLabel ?? 'Clear',
65
+ containerColor: theme.color('fill.quaternary'),
66
+ fontFamily: face.fontFamily,
67
+ fontSize: face.fontSize,
68
+ iconColor: theme.color('content.secondary'),
69
+ onFocusChange: onFocusChange,
70
+ onQueryChange: onChangeText,
71
+ placeholder: placeholder,
72
+ placeholderColor: theme.color('content.tertiary'),
73
+ ref: fieldRef,
74
+ textColor: theme.color('content.primary'),
75
+ voice: nativeVoice
76
+ })
77
+ })
78
+ });
79
+ };
80
+ //# sourceMappingURL=header-search-input.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Host","iconResourceName","SearchField","useAppTheme","useImperativeHandle","useMemo","useRef","StyleSheet","View","jsx","_jsx","FIELD_HEIGHT","HEADER_SEARCH_ROW_HEIGHT","styles","create","field","height","row","paddingBottom","paddingHorizontal","paddingTop","ignoreDetachedView","undefined","HeaderSearchInput","clearIcon","onChangeText","onFocusChange","placeholder","ref","voice","theme","fieldRef","face","typography","body","blur","current","blurField","catch","clear","clearQuery","setText","text","setQuery","nativeVoice","microphoneIconName","microphoneIcon","stopIconName","stopIcon","fieldClearIcon","style","children","colorScheme","dark","ignoreSafeAreaKeyboardInsets","seedColor","materialSeed","cancelLabel","clearIconName","clearLabel","containerColor","color","fontFamily","fontSize","iconColor","onQueryChange","placeholderColor","textColor"],"sourceRoot":"../../../../src","sources":["organisms/header/header-search-input.android.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ /** iOS searches in the navigation bar itself (`headerSearchBarOptions`). */
4
+ export const HeaderSearchInput = () => null;
5
+
6
+ /** The row's height under the bar. iOS has none. */
7
+ export const HEADER_SEARCH_ROW_HEIGHT = 0;
8
+ //# sourceMappingURL=header-search-input.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HeaderSearchInput","HEADER_SEARCH_ROW_HEIGHT"],"sourceRoot":"../../../../src","sources":["organisms/header/header-search-input.ios.tsx"],"mappings":";;AAEA;AACA,OAAO,MAAMA,iBAA6C,GAAGA,CAAA,KAAM,IAAI;;AAEvE;AACA,OAAO,MAAMC,wBAAwB,GAAG,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=header-search-input.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["organisms/header/header-search-input.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ import { useAppTheme } from '@hzblj/kara-theme';
4
+ import { Platform, Pressable, StyleSheet, View } from 'react-native';
5
+ import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
6
+ import { SafeAreaView } from 'react-native-screens/experimental';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const SCRIM_OPACITY = 0.7;
9
+ const ENTERING = FadeIn.duration(200);
10
+ const EXITING = FadeOut.duration(200);
11
+ const TOP_EDGE = {
12
+ top: true
13
+ };
14
+ const styles = StyleSheet.create({
15
+ fill: {
16
+ flex: 1
17
+ },
18
+ layer: {
19
+ bottom: 0,
20
+ left: 0,
21
+ position: 'absolute',
22
+ right: 0,
23
+ zIndex: 10
24
+ }
25
+ });
26
+ /**
27
+ * Washes the content out while the search field is focused and empty, as the system's own search does without
28
+ * dimming the bar; a tap on it ends the search. iOS starts it under the bar, following the bar natively
29
+ * (react-native-screens' `SafeAreaView`), Android under the search row.
30
+ */
31
+ export const HeaderSearchScrim = ({
32
+ onPress,
33
+ topOffset
34
+ }) => {
35
+ const theme = useAppTheme();
36
+ const scrim = /*#__PURE__*/_jsx(Animated.View, {
37
+ entering: ENTERING,
38
+ exiting: EXITING,
39
+ style: [styles.fill, {
40
+ backgroundColor: theme.color('surface.base'),
41
+ opacity: SCRIM_OPACITY
42
+ }],
43
+ children: /*#__PURE__*/_jsx(Pressable, {
44
+ accessible: false,
45
+ onPress: onPress,
46
+ style: styles.fill
47
+ })
48
+ });
49
+ return /*#__PURE__*/_jsx(View, {
50
+ pointerEvents: "box-none",
51
+ style: [styles.layer, {
52
+ top: topOffset
53
+ }],
54
+ children: Platform.OS === 'ios' ? /*#__PURE__*/_jsx(SafeAreaView, {
55
+ edges: TOP_EDGE,
56
+ pointerEvents: "box-none",
57
+ style: styles.fill,
58
+ children: scrim
59
+ }) : scrim
60
+ });
61
+ };
62
+ //# sourceMappingURL=header-search-scrim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useAppTheme","Platform","Pressable","StyleSheet","View","Animated","FadeIn","FadeOut","SafeAreaView","jsx","_jsx","SCRIM_OPACITY","ENTERING","duration","EXITING","TOP_EDGE","top","styles","create","fill","flex","layer","bottom","left","position","right","zIndex","HeaderSearchScrim","onPress","topOffset","theme","scrim","entering","exiting","style","backgroundColor","color","opacity","children","accessible","pointerEvents","OS","edges"],"sourceRoot":"../../../../src","sources":["organisms/header/header-search-scrim.tsx"],"mappings":";;AAAA,SAAQA,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,QAAQ,EAAEC,SAAS,EAAEC,UAAU,EAAEC,IAAI,QAAO,cAAc;AAClE,OAAOC,QAAQ,IAAGC,MAAM,EAAEC,OAAO,QAAO,yBAAyB;AACjE,SAAQC,YAAY,QAAO,mCAAmC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE9D,MAAMC,aAAa,GAAG,GAAG;AACzB,MAAMC,QAAQ,GAAGN,MAAM,CAACO,QAAQ,CAAC,GAAG,CAAC;AACrC,MAAMC,OAAO,GAAGP,OAAO,CAACM,QAAQ,CAAC,GAAG,CAAC;AACrC,MAAME,QAAQ,GAAG;EAACC,GAAG,EAAE;AAAI,CAAC;AAE5B,MAAMC,MAAM,GAAGd,UAAU,CAACe,MAAM,CAAC;EAC/BC,IAAI,EAAE;IAACC,IAAI,EAAE;EAAC,CAAC;EACfC,KAAK,EAAE;IAACC,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAE,CAAC;IAAEC,QAAQ,EAAE,UAAU;IAAEC,KAAK,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAE;AACxE,CAAC,CAAC;AAOF;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAACC,OAAO;EAAEC;AAAiC,CAAC,KAAK;EACjF,MAAMC,KAAK,GAAG9B,WAAW,CAAC,CAAC;EAC3B,MAAM+B,KAAK,gBACTrB,IAAA,CAACL,QAAQ,CAACD,IAAI;IACZ4B,QAAQ,EAAEpB,QAAS;IACnBqB,OAAO,EAAEnB,OAAQ;IACjBoB,KAAK,EAAE,CAACjB,MAAM,CAACE,IAAI,EAAE;MAACgB,eAAe,EAAEL,KAAK,CAACM,KAAK,CAAC,cAAc,CAAC;MAAEC,OAAO,EAAE1B;IAAa,CAAC,CAAE;IAAA2B,QAAA,eAE7F5B,IAAA,CAACR,SAAS;MAACqC,UAAU,EAAE,KAAM;MAACX,OAAO,EAAEA,OAAQ;MAACM,KAAK,EAAEjB,MAAM,CAACE;IAAK,CAAE;EAAC,CACzD,CAChB;EAED,oBACET,IAAA,CAACN,IAAI;IAACoC,aAAa,EAAC,UAAU;IAACN,KAAK,EAAE,CAACjB,MAAM,CAACI,KAAK,EAAE;MAACL,GAAG,EAAEa;IAAS,CAAC,CAAE;IAAAS,QAAA,EACpErC,QAAQ,CAACwC,EAAE,KAAK,KAAK,gBACpB/B,IAAA,CAACF,YAAY;MAACkC,KAAK,EAAE3B,QAAS;MAACyB,aAAa,EAAC,UAAU;MAACN,KAAK,EAAEjB,MAAM,CAACE,IAAK;MAAAmB,QAAA,EACxEP;IAAK,CACM,CAAC,GAEfA;EACD,CACG,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useMemo, useState } from 'react';
4
+ import { Platform, StyleSheet, useWindowDimensions, View } from 'react-native';
5
+ import Animated, { Extrapolation, interpolate, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue } from 'react-native-reanimated';
6
+ import { scheduleOnRN } from 'react-native-worklets';
7
+ import { RnText } from "../../atoms/rn-text/index.js";
8
+ import { hasNativeSubtitle, NativeSubtitle } from './native-subtitle';
9
+
10
+ /** Past half, a revealed title counts as shown: the native title and subtitle switch then. */
11
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
12
+ const REVEALED_THRESHOLD = 0.5;
13
+
14
+ /** iOS centres a custom title view in what the bar items leave; this much stays for them on a leading title. */
15
+ const LEADING_TITLE_RESERVED_WIDTH = 200;
16
+ const styles = StyleSheet.create({
17
+ largeTitle: {
18
+ paddingHorizontal: 16,
19
+ paddingVertical: 8
20
+ },
21
+ leadingTitleAndroid: {
22
+ paddingStart: 2,
23
+ paddingTop: 1
24
+ },
25
+ leadingTitleIos: {
26
+ flexShrink: 1,
27
+ paddingTop: 1
28
+ },
29
+ shrink: {
30
+ flexShrink: 1
31
+ }
32
+ });
33
+ export const useIsTitleRevealed = progress => {
34
+ const [revealed, setRevealed] = useState(() => progress === undefined || progress.value > REVEALED_THRESHOLD);
35
+ useAnimatedReaction(() => progress === undefined || progress.value > REVEALED_THRESHOLD, (isRevealed, wasRevealed) => {
36
+ if (isRevealed !== wasRevealed) {
37
+ scheduleOnRN(setRevealed, isRevealed);
38
+ }
39
+ });
40
+ return revealed;
41
+ };
42
+ const Reveal = ({
43
+ children,
44
+ progress
45
+ }) => {
46
+ const animatedStyle = useAnimatedStyle(() => ({
47
+ opacity: progress.value
48
+ }));
49
+ return /*#__PURE__*/_jsx(Animated.View, {
50
+ style: [styles.shrink, animatedStyle],
51
+ children: children
52
+ });
53
+ };
54
+ const BarTitle = ({
55
+ title
56
+ }) => /*#__PURE__*/_jsx(RnText, {
57
+ accessibilityRole: "header",
58
+ allowFontScaling: false,
59
+ numberOfLines: 1,
60
+ variant: "headline",
61
+ children: title
62
+ });
63
+ const LeadingTitle = ({
64
+ subtitle,
65
+ title
66
+ }) => {
67
+ const {
68
+ width
69
+ } = useWindowDimensions();
70
+ const content = /*#__PURE__*/_jsxs(_Fragment, {
71
+ children: [/*#__PURE__*/_jsx(RnText, {
72
+ accessibilityRole: "header",
73
+ allowFontScaling: false,
74
+ numberOfLines: 1,
75
+ variant: "subheadlineMedium",
76
+ children: title
77
+ }), /*#__PURE__*/_jsx(RnText, {
78
+ allowFontScaling: false,
79
+ color: "content.secondary",
80
+ numberOfLines: 1,
81
+ variant: "label",
82
+ children: subtitle
83
+ })]
84
+ });
85
+ if (Platform.OS === 'ios') {
86
+ return /*#__PURE__*/_jsx(View, {
87
+ style: [styles.leadingTitleIos, {
88
+ width
89
+ }],
90
+ children: /*#__PURE__*/_jsx(View, {
91
+ style: {
92
+ maxWidth: width - LEADING_TITLE_RESERVED_WIDTH
93
+ },
94
+ children: content
95
+ })
96
+ });
97
+ }
98
+ return /*#__PURE__*/_jsx(View, {
99
+ style: [styles.leadingTitleAndroid, {
100
+ maxWidth: width - LEADING_TITLE_RESERVED_WIDTH
101
+ }],
102
+ children: content
103
+ });
104
+ };
105
+ const LargeTitle = ({
106
+ height,
107
+ title
108
+ }) => {
109
+ const onLayout = useCallback(event => {
110
+ height.value = event.nativeEvent.layout.height;
111
+ }, [height]);
112
+ return /*#__PURE__*/_jsx(View, {
113
+ onLayout: onLayout,
114
+ style: styles.largeTitle,
115
+ children: /*#__PURE__*/_jsx(RnText, {
116
+ accessibilityRole: "header",
117
+ allowFontScaling: false,
118
+ numberOfLines: 1,
119
+ variant: "headingM",
120
+ children: title
121
+ })
122
+ });
123
+ };
124
+ const CollapsingTitle = ({
125
+ height,
126
+ scrollY,
127
+ title
128
+ }) => {
129
+ const progress = useDerivedValue(() => {
130
+ if (height.value === 0) {
131
+ return 0;
132
+ }
133
+ return interpolate(scrollY.value, [height.value / 2, height.value], [0, 1], Extrapolation.CLAMP);
134
+ });
135
+ return /*#__PURE__*/_jsx(Reveal, {
136
+ progress: progress,
137
+ children: /*#__PURE__*/_jsx(BarTitle, {
138
+ title: title
139
+ })
140
+ });
141
+ };
142
+ /**
143
+ * The title half of a header: the options that show the title (centred, leading with a subtitle, revealed on scroll or
144
+ * large), plus on Android the large title row and the scroll worklet that collapses it into the bar, as Material's large
145
+ * top app bar does. iOS needs neither: the large title is UIKit's own.
146
+ */
147
+ export const useHeaderTitle = ({
148
+ largeTitle,
149
+ subtitle,
150
+ title,
151
+ titleHidden,
152
+ titleRevealProgress
153
+ }) => {
154
+ const scrollY = useSharedValue(0);
155
+ const largeTitleHeight = useSharedValue(0);
156
+ const revealed = useIsTitleRevealed(titleRevealProgress);
157
+ const isAndroidLargeTitle = Platform.OS === 'android' && largeTitle === true && !!title;
158
+ const onScroll = useCallback(offsetY => {
159
+ 'worklet';
160
+
161
+ scrollY.value = offsetY;
162
+ }, [scrollY]);
163
+ const options = useMemo(() => {
164
+ const titleOptions = {};
165
+ if (largeTitle !== undefined) {
166
+ titleOptions.headerLargeTitleEnabled = Platform.OS === 'ios' && largeTitle;
167
+ }
168
+ if (title === undefined) {
169
+ return titleOptions;
170
+ }
171
+ titleOptions.title = title;
172
+ if (titleHidden) {
173
+ titleOptions.headerTitle = '';
174
+ return titleOptions;
175
+ }
176
+ if (subtitle !== undefined && hasNativeSubtitle) {
177
+ const shownTitle = revealed ? title : '';
178
+
179
+ // The subtitle styles the screen's navigation item from inside its tree, which `headerBackground` is.
180
+ titleOptions.headerBackground = () => /*#__PURE__*/_jsx(NativeSubtitle, {
181
+ subtitle: subtitle,
182
+ subtitleHidden: !revealed
183
+ });
184
+ titleOptions.headerTitle = shownTitle;
185
+ titleOptions.title = shownTitle;
186
+ return titleOptions;
187
+ }
188
+ if (subtitle !== undefined) {
189
+ const leadingTitle = /*#__PURE__*/_jsx(LeadingTitle, {
190
+ subtitle: subtitle,
191
+ title: title
192
+ });
193
+ titleOptions.headerTitle = () => titleRevealProgress ? /*#__PURE__*/_jsx(Reveal, {
194
+ progress: titleRevealProgress,
195
+ children: leadingTitle
196
+ }) : leadingTitle;
197
+ return titleOptions;
198
+ }
199
+ if (titleRevealProgress) {
200
+ titleOptions.headerTitle = () => /*#__PURE__*/_jsx(Reveal, {
201
+ progress: titleRevealProgress,
202
+ children: /*#__PURE__*/_jsx(BarTitle, {
203
+ title: title
204
+ })
205
+ });
206
+ return titleOptions;
207
+ }
208
+ if (isAndroidLargeTitle) {
209
+ titleOptions.headerTitle = () => /*#__PURE__*/_jsx(CollapsingTitle, {
210
+ height: largeTitleHeight,
211
+ scrollY: scrollY,
212
+ title: title
213
+ });
214
+ return titleOptions;
215
+ }
216
+ titleOptions.headerTitle = title;
217
+ return titleOptions;
218
+ }, [isAndroidLargeTitle, largeTitle, largeTitleHeight, revealed, scrollY, subtitle, title, titleHidden, titleRevealProgress]);
219
+ const largeTitleRow = useMemo(() => isAndroidLargeTitle && title ? /*#__PURE__*/_jsx(LargeTitle, {
220
+ height: largeTitleHeight,
221
+ title: title
222
+ }) : null, [isAndroidLargeTitle, largeTitleHeight, title]);
223
+ return {
224
+ largeTitle: largeTitleRow,
225
+ onScroll,
226
+ options,
227
+ revealed
228
+ };
229
+ };
230
+ //# sourceMappingURL=header-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useMemo","useState","Platform","StyleSheet","useWindowDimensions","View","Animated","Extrapolation","interpolate","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","scheduleOnRN","RnText","hasNativeSubtitle","NativeSubtitle","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","REVEALED_THRESHOLD","LEADING_TITLE_RESERVED_WIDTH","styles","create","largeTitle","paddingHorizontal","paddingVertical","leadingTitleAndroid","paddingStart","paddingTop","leadingTitleIos","flexShrink","shrink","useIsTitleRevealed","progress","revealed","setRevealed","undefined","value","isRevealed","wasRevealed","Reveal","children","animatedStyle","opacity","style","BarTitle","title","accessibilityRole","allowFontScaling","numberOfLines","variant","LeadingTitle","subtitle","width","content","color","OS","maxWidth","LargeTitle","height","onLayout","event","nativeEvent","layout","CollapsingTitle","scrollY","CLAMP","useHeaderTitle","titleHidden","titleRevealProgress","largeTitleHeight","isAndroidLargeTitle","onScroll","offsetY","options","titleOptions","headerLargeTitleEnabled","headerTitle","shownTitle","headerBackground","subtitleHidden","leadingTitle","largeTitleRow"],"sourceRoot":"../../../../src","sources":["organisms/header/header-title.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=header.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["organisms/header/header.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ import { useAppTheme } from '@hzblj/kara-theme';
4
+ import { StyleSheet } from 'react-native';
5
+ import Animated, { useAnimatedStyle } from 'react-native-reanimated';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const styles = StyleSheet.create({
8
+ bar: {
9
+ left: 0,
10
+ position: 'absolute',
11
+ right: 0,
12
+ top: 0
13
+ }
14
+ });
15
+
16
+ /** The top app bar's surface, fading in behind the transparent bar as the hero scrolls away. */
17
+ export const HeroHeaderBackground = ({
18
+ height,
19
+ progress
20
+ }) => {
21
+ const theme = useAppTheme();
22
+ const animatedStyle = useAnimatedStyle(() => ({
23
+ opacity: progress.value
24
+ }));
25
+ return /*#__PURE__*/_jsx(Animated.View, {
26
+ pointerEvents: "none",
27
+ style: [styles.bar, {
28
+ backgroundColor: theme.color('surface.base'),
29
+ height
30
+ }, animatedStyle]
31
+ });
32
+ };
33
+ //# sourceMappingURL=hero-header-background.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useAppTheme","StyleSheet","Animated","useAnimatedStyle","jsx","_jsx","styles","create","bar","left","position","right","top","HeroHeaderBackground","height","progress","theme","animatedStyle","opacity","value","View","pointerEvents","style","backgroundColor","color"],"sourceRoot":"../../../../src","sources":["organisms/header/hero-header-background.android.tsx"],"mappings":";;AAAA,SAAQA,WAAW,QAAO,mBAAmB;AAC7C,SAAQC,UAAU,QAAO,cAAc;AACvC,OAAOC,QAAQ,IAAGC,gBAAgB,QAAO,yBAAyB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAIlE,MAAMC,MAAM,GAAGL,UAAU,CAACM,MAAM,CAAC;EAC/BC,GAAG,EAAE;IAACC,IAAI,EAAE,CAAC;IAAEC,QAAQ,EAAE,UAAU;IAAEC,KAAK,EAAE,CAAC;IAAEC,GAAG,EAAE;EAAC;AACvD,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,oBAAmD,GAAGA,CAAC;EAACC,MAAM;EAAEC;AAAmC,CAAC,KAAK;EACpH,MAAMC,KAAK,GAAGhB,WAAW,CAAC,CAAC;EAC3B,MAAMiB,aAAa,GAAGd,gBAAgB,CAAC,OAAO;IAACe,OAAO,EAAEH,QAAQ,CAACI;EAAK,CAAC,CAAC,CAAC;EAEzE,oBACEd,IAAA,CAACH,QAAQ,CAACkB,IAAI;IACZC,aAAa,EAAC,MAAM;IACpBC,KAAK,EAAE,CAAChB,MAAM,CAACE,GAAG,EAAE;MAACe,eAAe,EAAEP,KAAK,CAACQ,KAAK,CAAC,cAAc,CAAC;MAAEV;IAAM,CAAC,EAAEG,aAAa;EAAE,CAC5F,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ import { isScrollEdgeEffectAvailable } from '@hzblj/kara-native';
4
+ import { StyleSheet, View } from 'react-native';
5
+ import { BlurView } from "../../atoms/blur-view/index.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const styles = StyleSheet.create({
8
+ bar: {
9
+ left: 0,
10
+ position: 'absolute',
11
+ right: 0,
12
+ top: 0
13
+ }
14
+ });
15
+
16
+ /**
17
+ * iOS 26 draws the bar's background itself: its scroll edge effect, switched on once the reveal starts. Before it the
18
+ * bar's own blur cannot fade, so the bar's chrome material comes in behind the transparent bar by its intensity, the
19
+ * way UIKit fades a material in, rather than by its opacity.
20
+ */
21
+ export const HeroHeaderBackground = ({
22
+ height,
23
+ progress
24
+ }) => {
25
+ if (isScrollEdgeEffectAvailable()) {
26
+ return null;
27
+ }
28
+ return /*#__PURE__*/_jsx(View, {
29
+ pointerEvents: "none",
30
+ style: [styles.bar, {
31
+ height
32
+ }],
33
+ children: /*#__PURE__*/_jsx(BlurView, {
34
+ flex: 1,
35
+ intensity: progress,
36
+ material: "ultraThick"
37
+ })
38
+ });
39
+ };
40
+ //# sourceMappingURL=hero-header-background.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isScrollEdgeEffectAvailable","StyleSheet","View","BlurView","jsx","_jsx","styles","create","bar","left","position","right","top","HeroHeaderBackground","height","progress","pointerEvents","style","children","flex","intensity","material"],"sourceRoot":"../../../../src","sources":["organisms/header/hero-header-background.ios.tsx"],"mappings":";;AAAA,SAAQA,2BAA2B,QAAO,oBAAoB;AAC9D,SAAQC,UAAU,EAAEC,IAAI,QAAO,cAAc;AAE7C,SAAQC,QAAQ,QAAO,gCAAuB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAG9C,MAAMC,MAAM,GAAGL,UAAU,CAACM,MAAM,CAAC;EAC/BC,GAAG,EAAE;IAACC,IAAI,EAAE,CAAC;IAAEC,QAAQ,EAAE,UAAU;IAAEC,KAAK,EAAE,CAAC;IAAEC,GAAG,EAAE;EAAC;AACvD,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAmD,GAAGA,CAAC;EAACC,MAAM;EAAEC;AAAmC,CAAC,KAAK;EACpH,IAAIf,2BAA2B,CAAC,CAAC,EAAE;IACjC,OAAO,IAAI;EACb;EAEA,oBACEK,IAAA,CAACH,IAAI;IAACc,aAAa,EAAC,MAAM;IAACC,KAAK,EAAE,CAACX,MAAM,CAACE,GAAG,EAAE;MAACM;IAAM,CAAC,CAAE;IAAAI,QAAA,eACvDb,IAAA,CAACF,QAAQ;MAACgB,IAAI,EAAE,CAAE;MAACC,SAAS,EAAEL,QAAS;MAACM,QAAQ,EAAC;IAAY,CAAE;EAAC,CAC5D,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=hero-header-background.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["organisms/header/hero-header-background.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ export * from "./header.types.js";
4
+ export * from './header-inset';
5
+ export { useIsTitleRevealed } from "./header-title.js";
6
+ export * from './sheet-grabber';
7
+ export * from "./use-header.js";
8
+ export * from './use-header-bar-inset';
9
+ export * from "./use-header-scroll-to-top.js";
10
+ export * from "./use-header-search.js";
11
+ export * from "./use-hero-header.js";
12
+ export * from "./use-stack-screen-options.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useIsTitleRevealed"],"sourceRoot":"../../../../src","sources":["organisms/header/index.ts"],"mappings":";;AAAA,cAAc,mBAAgB;AAC9B,cAAc,gBAAgB;AAC9B,SAAQA,kBAAkB,QAAO,mBAAgB;AACjD,cAAc,iBAAiB;AAE/B,cAAc,iBAAc;AAC5B,cAAc,wBAAwB;AACtC,cAAc,+BAA4B;AAC1C,cAAc,wBAAqB;AACnC,cAAc,sBAAmB;AACjC,cAAc,+BAA4B","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export const hasNativeSubtitle = false;
4
+ export const NativeSubtitle = () => null;
5
+ //# sourceMappingURL=native-subtitle.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["hasNativeSubtitle","NativeSubtitle"],"sourceRoot":"../../../../src","sources":["organisms/header/native-subtitle.android.tsx"],"mappings":";;AAEA,OAAO,MAAMA,iBAAiB,GAAG,KAAK;AAEtC,OAAO,MAAMC,cAAuC,GAAGA,CAAA,KAAM,IAAI","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import { isScrollEdgeEffectAvailable } from '@hzblj/kara-native';
4
+ import { NavigationItemSubtitle } from '@hzblj/kara-native/swift-ui';
5
+ import { useAppTheme } from '@hzblj/kara-theme';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ /** iOS 26 puts a title and its subtitle on the leading side itself (`UINavigationItem.style = .browser`). */
8
+ export const hasNativeSubtitle = isScrollEdgeEffectAvailable();
9
+ export const NativeSubtitle = ({
10
+ subtitle,
11
+ subtitleHidden
12
+ }) => {
13
+ const theme = useAppTheme();
14
+ return /*#__PURE__*/_jsx(NavigationItemSubtitle, {
15
+ color: theme.color('content.secondary'),
16
+ fontFamily: theme.typography.label.fontFamily,
17
+ fontSize: theme.typography.label.fontSize,
18
+ subtitle: subtitle,
19
+ subtitleHidden: subtitleHidden
20
+ });
21
+ };
22
+ //# sourceMappingURL=native-subtitle.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isScrollEdgeEffectAvailable","NavigationItemSubtitle","useAppTheme","jsx","_jsx","hasNativeSubtitle","NativeSubtitle","subtitle","subtitleHidden","theme","color","fontFamily","typography","label","fontSize"],"sourceRoot":"../../../../src","sources":["organisms/header/native-subtitle.ios.tsx"],"mappings":";;AAAA,SAAQA,2BAA2B,QAAO,oBAAoB;AAC9D,SAAQC,sBAAsB,QAAO,6BAA6B;AAClE,SAAQC,WAAW,QAAO,mBAAmB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI7C;AACA,OAAO,MAAMC,iBAAiB,GAAGL,2BAA2B,CAAC,CAAC;AAE9D,OAAO,MAAMM,cAAuC,GAAGA,CAAC;EAACC,QAAQ;EAAEC;AAAmC,CAAC,KAAK;EAC1G,MAAMC,KAAK,GAAGP,WAAW,CAAC,CAAC;EAE3B,oBACEE,IAAA,CAACH,sBAAsB;IACrBS,KAAK,EAAED,KAAK,CAACC,KAAK,CAAC,mBAAmB,CAAE;IACxCC,UAAU,EAAEF,KAAK,CAACG,UAAU,CAACC,KAAK,CAACF,UAAW;IAC9CG,QAAQ,EAAEL,KAAK,CAACG,UAAU,CAACC,KAAK,CAACC,QAAS;IAC1CP,QAAQ,EAAEA,QAAS;IACnBC,cAAc,EAAEA;EAAe,CAChC,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=native-subtitle.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["organisms/header/native-subtitle.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ /** Android's modal is a full screen with no grabber. */
4
+ export const SheetGrabber = () => null;
5
+ //# sourceMappingURL=sheet-grabber.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SheetGrabber"],"sourceRoot":"../../../../src","sources":["organisms/header/sheet-grabber.android.tsx"],"mappings":";;AAEA;AACA,OAAO,MAAMA,YAAmC,GAAGA,CAAA,KAAM,IAAI","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ import { SheetGrabber as NativeSheetGrabber } from '@hzblj/kara-native/swift-ui';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ /**
6
+ * The system grabber of a native-stack screen presented as a sheet (`presentation: 'modal'`), which react-native-screens
7
+ * gives only `formSheet`. Render it anywhere in the presented content, a nested stack's screens included; it takes no
8
+ * room. Android draws no grabber on a full-screen modal, and this renders nothing there.
9
+ */
10
+ export const SheetGrabber = ({
11
+ visible = true
12
+ }) => /*#__PURE__*/_jsx(NativeSheetGrabber, {
13
+ grabberVisible: visible
14
+ });
15
+ //# sourceMappingURL=sheet-grabber.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SheetGrabber","NativeSheetGrabber","jsx","_jsx","visible","grabberVisible"],"sourceRoot":"../../../../src","sources":["organisms/header/sheet-grabber.ios.tsx"],"mappings":";;AAAA,SAAQA,YAAY,IAAIC,kBAAkB,QAAO,6BAA6B;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI9E;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMH,YAAmC,GAAGA,CAAC;EAACI,OAAO,GAAG;AAAuB,CAAC,kBACrFD,IAAA,CAACF,kBAAkB;EAACI,cAAc,EAAED;AAAQ,CAAE,CAC/C","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=sheet-grabber.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["organisms/header/sheet-grabber.types.ts"],"mappings":"","ignoreList":[]}