@krizaka/ui 3.4.0 → 3.6.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 (337) hide show
  1. package/README.md +1 -0
  2. package/dist/app-shell.d.ts +24 -22
  3. package/dist/app-shell.js +9 -3
  4. package/dist/app-shell.js.map +1 -1
  5. package/dist/argument-card.js +3 -3
  6. package/dist/chat.d.ts +187 -0
  7. package/dist/chat.js +132 -0
  8. package/dist/chat.js.map +1 -0
  9. package/dist/chunk-3GODX3D6.js +25 -0
  10. package/dist/chunk-3GODX3D6.js.map +1 -0
  11. package/dist/chunk-ECSCA3CN.js +128 -0
  12. package/dist/chunk-ECSCA3CN.js.map +1 -0
  13. package/dist/chunk-F2GKFIYK.js +47 -0
  14. package/dist/chunk-F2GKFIYK.js.map +1 -0
  15. package/dist/{chunk-R6SDS7JM.js → chunk-ND3L5VHT.js} +25 -2
  16. package/dist/chunk-ND3L5VHT.js.map +1 -0
  17. package/dist/command.js +1 -1
  18. package/dist/data-table.js +20 -134
  19. package/dist/data-table.js.map +1 -1
  20. package/dist/dialog.js +7 -3
  21. package/dist/dialog.js.map +1 -1
  22. package/dist/loader.d.ts +21 -1
  23. package/dist/loader.js +7 -3
  24. package/dist/loader.js.map +1 -1
  25. package/dist/map.js +7 -1
  26. package/dist/map.js.map +1 -1
  27. package/dist/marketing-layout.d.ts +3 -9
  28. package/dist/marketing-layout.js +24 -7
  29. package/dist/marketing-layout.js.map +1 -1
  30. package/dist/match-dialog.d.ts +32 -0
  31. package/dist/match-dialog.js +168 -0
  32. package/dist/match-dialog.js.map +1 -0
  33. package/dist/native.d.ts +484 -106
  34. package/dist/native.js +1967 -1323
  35. package/dist/native.js.map +1 -1
  36. package/dist/page-hero.js +3 -3
  37. package/dist/photo-grid.d.ts +122 -0
  38. package/dist/photo-grid.js +94 -0
  39. package/dist/photo-grid.js.map +1 -0
  40. package/dist/skip-link.d.ts +15 -0
  41. package/dist/skip-link.js +10 -0
  42. package/dist/skip-link.js.map +1 -0
  43. package/dist/step-progress.d.ts +20 -0
  44. package/dist/step-progress.js +17 -0
  45. package/dist/step-progress.js.map +1 -0
  46. package/dist/swipe-deck.d.ts +183 -0
  47. package/dist/swipe-deck.js +144 -0
  48. package/dist/swipe-deck.js.map +1 -0
  49. package/dist/tag-selector.d.ts +26 -0
  50. package/dist/tag-selector.js +21 -0
  51. package/dist/tag-selector.js.map +1 -0
  52. package/dist/tree-view.d.ts +2 -0
  53. package/dist/tree-view.js.map +1 -1
  54. package/dist/verified-badge.d.ts +16 -0
  55. package/dist/verified-badge.js +23 -0
  56. package/dist/verified-badge.js.map +1 -0
  57. package/package.json +120 -8
  58. package/registry/achievement.json +2 -1
  59. package/registry/action-bar.json +2 -1
  60. package/registry/action-sheet.json +1 -0
  61. package/registry/activity-feed.json +2 -1
  62. package/registry/alert.json +2 -1
  63. package/registry/app-shell.json +27 -5
  64. package/registry/argument-card.json +2 -1
  65. package/registry/audio-player.json +2 -1
  66. package/registry/auth-layout.json +7 -2
  67. package/registry/avatar.json +2 -1
  68. package/registry/badge.json +2 -1
  69. package/registry/button.json +2 -1
  70. package/registry/card-grid.json +2 -1
  71. package/registry/card.json +2 -1
  72. package/registry/catalogue-page.json +5 -2
  73. package/registry/changelog-page.json +5 -2
  74. package/registry/chat.json +918 -0
  75. package/registry/checkbox.json +2 -1
  76. package/registry/chip-link.json +2 -1
  77. package/registry/chip.json +2 -1
  78. package/registry/choice-grid.json +2 -1
  79. package/registry/cn.json +1 -0
  80. package/registry/code-block.json +2 -1
  81. package/registry/combobox.json +2 -1
  82. package/registry/command.json +2 -1
  83. package/registry/component-page.json +5 -2
  84. package/registry/confirm-button.json +2 -1
  85. package/registry/contact-page.json +5 -2
  86. package/registry/continue-prompt.json +2 -1
  87. package/registry/countdown.json +2 -1
  88. package/registry/cta-panel.json +2 -1
  89. package/registry/dashboard-layout.json +5 -2
  90. package/registry/data-table.json +2 -1
  91. package/registry/date-picker.json +3 -2
  92. package/registry/decision-list.json +2 -1
  93. package/registry/description-list.json +2 -1
  94. package/registry/detail-layout.json +16 -2
  95. package/registry/dialog.json +10 -4
  96. package/registry/docs-article-page.json +16 -2
  97. package/registry/docs-hub-page.json +5 -2
  98. package/registry/docs-layout.json +2 -1
  99. package/registry/dropdown-menu.json +2 -1
  100. package/registry/empty-state.json +14 -2
  101. package/registry/error-page.json +5 -2
  102. package/registry/examples/chat/conversation.d.ts +4 -0
  103. package/registry/examples/chat/conversation.js +22 -0
  104. package/registry/examples/chat/conversation.tsx +21 -0
  105. package/registry/examples/chat/inbox.d.ts +4 -0
  106. package/registry/examples/chat/inbox.js +15 -0
  107. package/registry/examples/chat/inbox.tsx +12 -0
  108. package/registry/examples/chat/native/conversation.d.ts +4 -0
  109. package/registry/examples/chat/native/conversation.dark.png +0 -0
  110. package/registry/examples/chat/native/conversation.js +23 -0
  111. package/registry/examples/chat/native/conversation.light.png +0 -0
  112. package/registry/examples/chat/native/conversation.tsx +20 -0
  113. package/registry/examples/chat/native/inbox.d.ts +4 -0
  114. package/registry/examples/chat/native/inbox.dark.png +0 -0
  115. package/registry/examples/chat/native/inbox.js +16 -0
  116. package/registry/examples/chat/native/inbox.light.png +0 -0
  117. package/registry/examples/chat/native/inbox.tsx +13 -0
  118. package/registry/examples/detail-layout/checkout.d.ts +4 -0
  119. package/registry/examples/detail-layout/checkout.js +37 -0
  120. package/registry/examples/detail-layout/checkout.tsx +44 -0
  121. package/registry/examples/docs-article-page/faq.d.ts +4 -0
  122. package/registry/examples/docs-article-page/faq.js +31 -0
  123. package/registry/examples/docs-article-page/faq.tsx +40 -0
  124. package/registry/examples/empty-state/library.d.ts +4 -0
  125. package/registry/examples/empty-state/library.js +25 -0
  126. package/registry/examples/empty-state/library.tsx +20 -0
  127. package/registry/examples/loader/branded.d.ts +4 -0
  128. package/registry/examples/loader/branded.js +12 -0
  129. package/registry/examples/loader/branded.tsx +7 -0
  130. package/registry/examples/loader/native/branded.d.ts +4 -0
  131. package/registry/examples/loader/native/branded.dark.png +0 -0
  132. package/registry/examples/loader/native/branded.js +12 -0
  133. package/registry/examples/loader/native/branded.light.png +0 -0
  134. package/registry/examples/loader/native/branded.tsx +11 -0
  135. package/registry/examples/longform-page/case-study.d.ts +4 -0
  136. package/registry/examples/longform-page/case-study.js +41 -0
  137. package/registry/examples/longform-page/case-study.tsx +40 -0
  138. package/registry/examples/match-dialog/its-a-match.d.ts +4 -0
  139. package/registry/examples/match-dialog/its-a-match.js +29 -0
  140. package/registry/examples/match-dialog/its-a-match.tsx +25 -0
  141. package/registry/examples/match-dialog/native/its-a-match.d.ts +4 -0
  142. package/registry/examples/match-dialog/native/its-a-match.dark.png +0 -0
  143. package/registry/examples/match-dialog/native/its-a-match.js +28 -0
  144. package/registry/examples/match-dialog/native/its-a-match.light.png +0 -0
  145. package/registry/examples/match-dialog/native/its-a-match.tsx +22 -0
  146. package/registry/examples/photo-grid/native/profile-photos.d.ts +4 -0
  147. package/registry/examples/photo-grid/native/profile-photos.dark.png +0 -0
  148. package/registry/examples/photo-grid/native/profile-photos.js +27 -0
  149. package/registry/examples/photo-grid/native/profile-photos.light.png +0 -0
  150. package/registry/examples/photo-grid/native/profile-photos.tsx +24 -0
  151. package/registry/examples/photo-grid/profile-photos.d.ts +4 -0
  152. package/registry/examples/photo-grid/profile-photos.js +28 -0
  153. package/registry/examples/photo-grid/profile-photos.tsx +25 -0
  154. package/registry/examples/pull-to-refresh/native/branded.d.ts +4 -0
  155. package/registry/examples/pull-to-refresh/native/branded.dark.png +0 -0
  156. package/registry/examples/pull-to-refresh/native/branded.js +14 -0
  157. package/registry/examples/pull-to-refresh/native/branded.light.png +0 -0
  158. package/registry/examples/pull-to-refresh/native/branded.tsx +23 -0
  159. package/registry/examples/screen/native/app-shell.d.ts +4 -0
  160. package/registry/examples/screen/native/app-shell.dark.png +0 -0
  161. package/registry/examples/screen/native/app-shell.js +25 -0
  162. package/registry/examples/screen/native/app-shell.light.png +0 -0
  163. package/registry/examples/screen/native/app-shell.tsx +33 -0
  164. package/registry/examples/screen/native/auth.d.ts +4 -0
  165. package/registry/examples/screen/native/auth.dark.png +0 -0
  166. package/registry/examples/screen/native/auth.js +24 -0
  167. package/registry/examples/screen/native/auth.light.png +0 -0
  168. package/registry/examples/screen/native/auth.tsx +20 -0
  169. package/registry/examples/screen/native/chat.d.ts +4 -0
  170. package/registry/examples/screen/native/chat.dark.png +0 -0
  171. package/registry/examples/screen/native/chat.js +27 -0
  172. package/registry/examples/screen/native/chat.light.png +0 -0
  173. package/registry/examples/screen/native/chat.tsx +22 -0
  174. package/registry/examples/screen/native/feed.d.ts +4 -0
  175. package/registry/examples/screen/native/feed.dark.png +0 -0
  176. package/registry/examples/screen/native/feed.js +24 -0
  177. package/registry/examples/screen/native/feed.light.png +0 -0
  178. package/registry/examples/screen/native/feed.tsx +34 -0
  179. package/registry/examples/screen/native/map.d.ts +4 -0
  180. package/registry/examples/screen/native/map.dark.png +0 -0
  181. package/registry/examples/screen/native/map.js +26 -0
  182. package/registry/examples/screen/native/map.light.png +0 -0
  183. package/registry/examples/screen/native/map.tsx +31 -0
  184. package/registry/examples/screen/native/notifications.d.ts +4 -0
  185. package/registry/examples/screen/native/notifications.dark.png +0 -0
  186. package/registry/examples/screen/native/notifications.js +21 -0
  187. package/registry/examples/screen/native/notifications.light.png +0 -0
  188. package/registry/examples/screen/native/notifications.tsx +21 -0
  189. package/registry/examples/screen/native/profile.d.ts +4 -0
  190. package/registry/examples/screen/native/profile.dark.png +0 -0
  191. package/registry/examples/screen/native/profile.js +29 -0
  192. package/registry/examples/screen/native/profile.light.png +0 -0
  193. package/registry/examples/screen/native/profile.tsx +27 -0
  194. package/registry/examples/screen/native/settings.d.ts +4 -0
  195. package/registry/examples/screen/native/settings.dark.png +0 -0
  196. package/registry/examples/screen/native/settings.js +20 -0
  197. package/registry/examples/screen/native/settings.light.png +0 -0
  198. package/registry/examples/screen/native/settings.tsx +19 -0
  199. package/registry/examples/skip-link/default.d.ts +4 -0
  200. package/registry/examples/skip-link/default.js +19 -0
  201. package/registry/examples/skip-link/default.tsx +12 -0
  202. package/registry/examples/splash-handoff/native/default.d.ts +4 -0
  203. package/registry/examples/splash-handoff/native/default.dark.png +0 -0
  204. package/registry/examples/splash-handoff/native/default.js +12 -0
  205. package/registry/examples/splash-handoff/native/default.light.png +0 -0
  206. package/registry/examples/splash-handoff/native/default.tsx +11 -0
  207. package/registry/examples/split-view/nearby.d.ts +4 -0
  208. package/registry/examples/split-view/nearby.js +33 -0
  209. package/registry/examples/split-view/nearby.tsx +45 -0
  210. package/registry/examples/split-view/notifications.d.ts +4 -0
  211. package/registry/examples/split-view/notifications.js +33 -0
  212. package/registry/examples/split-view/notifications.tsx +31 -0
  213. package/registry/examples/status-page/maintenance.d.ts +4 -0
  214. package/registry/examples/status-page/maintenance.js +29 -0
  215. package/registry/examples/status-page/maintenance.tsx +24 -0
  216. package/registry/examples/step-progress/native/sign-up.d.ts +4 -0
  217. package/registry/examples/step-progress/native/sign-up.dark.png +0 -0
  218. package/registry/examples/step-progress/native/sign-up.js +12 -0
  219. package/registry/examples/step-progress/native/sign-up.light.png +0 -0
  220. package/registry/examples/step-progress/native/sign-up.tsx +11 -0
  221. package/registry/examples/step-progress/sign-up.d.ts +4 -0
  222. package/registry/examples/step-progress/sign-up.js +22 -0
  223. package/registry/examples/step-progress/sign-up.tsx +16 -0
  224. package/registry/examples/swipe-deck/discover.d.ts +4 -0
  225. package/registry/examples/swipe-deck/discover.js +41 -0
  226. package/registry/examples/swipe-deck/discover.tsx +37 -0
  227. package/registry/examples/swipe-deck/native/discover.d.ts +4 -0
  228. package/registry/examples/swipe-deck/native/discover.dark.png +0 -0
  229. package/registry/examples/swipe-deck/native/discover.js +39 -0
  230. package/registry/examples/swipe-deck/native/discover.light.png +0 -0
  231. package/registry/examples/swipe-deck/native/discover.tsx +35 -0
  232. package/registry/examples/tag-selector/interests.d.ts +4 -0
  233. package/registry/examples/tag-selector/interests.js +14 -0
  234. package/registry/examples/tag-selector/interests.tsx +12 -0
  235. package/registry/examples/tag-selector/native/interests.d.ts +4 -0
  236. package/registry/examples/tag-selector/native/interests.dark.png +0 -0
  237. package/registry/examples/tag-selector/native/interests.js +15 -0
  238. package/registry/examples/tag-selector/native/interests.light.png +0 -0
  239. package/registry/examples/tag-selector/native/interests.tsx +15 -0
  240. package/registry/examples/verified-badge/native/verified.d.ts +4 -0
  241. package/registry/examples/verified-badge/native/verified.dark.png +0 -0
  242. package/registry/examples/verified-badge/native/verified.js +18 -0
  243. package/registry/examples/verified-badge/native/verified.light.png +0 -0
  244. package/registry/examples/verified-badge/native/verified.tsx +15 -0
  245. package/registry/examples/verified-badge/verified.d.ts +4 -0
  246. package/registry/examples/verified-badge/verified.js +17 -0
  247. package/registry/examples/verified-badge/verified.tsx +13 -0
  248. package/registry/fab.json +1 -0
  249. package/registry/field.json +2 -1
  250. package/registry/file-upload.json +3 -2
  251. package/registry/filter-bar.json +2 -1
  252. package/registry/form.json +3 -2
  253. package/registry/gallery-page.json +5 -2
  254. package/registry/glow-card.json +2 -1
  255. package/registry/goal-gauge.json +2 -1
  256. package/registry/header.json +1 -0
  257. package/registry/how-it-works-page.json +5 -2
  258. package/registry/image-cropper.json +2 -1
  259. package/registry/image-viewer.json +1 -0
  260. package/registry/index.json +608 -19
  261. package/registry/iso.json +2 -1
  262. package/registry/kanban.json +2 -1
  263. package/registry/kbd.json +2 -1
  264. package/registry/landing-page.json +5 -2
  265. package/registry/landscape.json +2 -1
  266. package/registry/legal-page.json +5 -2
  267. package/registry/link-card.json +2 -1
  268. package/registry/list.json +2 -1
  269. package/registry/loader.json +47 -3
  270. package/registry/longform-page.json +16 -2
  271. package/registry/map.json +4 -3
  272. package/registry/marketing-layout.json +13 -4
  273. package/registry/marquee.json +2 -1
  274. package/registry/mascot-quote.json +2 -1
  275. package/registry/mascot-state.json +2 -1
  276. package/registry/mascots.json +2 -1
  277. package/registry/match-dialog.json +315 -0
  278. package/registry/media-capture.json +2 -1
  279. package/registry/media-picker.json +1 -0
  280. package/registry/meter.json +2 -1
  281. package/registry/nav-bar.json +2 -1
  282. package/registry/number-ticker.json +2 -1
  283. package/registry/onboarding.json +1 -0
  284. package/registry/otp-input.json +1 -0
  285. package/registry/page-header.json +2 -1
  286. package/registry/page-hero.json +2 -1
  287. package/registry/page.json +2 -1
  288. package/registry/pagination.json +2 -1
  289. package/registry/permission-prompt.json +1 -0
  290. package/registry/photo-grid.json +303 -0
  291. package/registry/pointer-light.json +2 -1
  292. package/registry/popover.json +2 -1
  293. package/registry/pricing-page.json +5 -2
  294. package/registry/product-page.json +5 -2
  295. package/registry/profile-card.json +2 -1
  296. package/registry/progress.json +2 -1
  297. package/registry/promise-card.json +2 -1
  298. package/registry/pull-to-refresh.json +68 -4
  299. package/registry/radio-group.json +2 -1
  300. package/registry/screen.json +233 -0
  301. package/registry/scroll-stage.json +2 -1
  302. package/registry/search-field.json +2 -1
  303. package/registry/section-backdrop.json +2 -1
  304. package/registry/segmented.json +1 -0
  305. package/registry/separator.json +2 -1
  306. package/registry/settings-layout.json +5 -2
  307. package/registry/skeleton.json +2 -1
  308. package/registry/skip-link.json +122 -0
  309. package/registry/slider.json +2 -1
  310. package/registry/slot.json +2 -1
  311. package/registry/spinner.json +2 -1
  312. package/registry/splash-handoff.json +138 -0
  313. package/registry/split-view.json +27 -2
  314. package/registry/stage-banner.json +2 -1
  315. package/registry/stat.json +2 -1
  316. package/registry/status-page.json +18 -2
  317. package/registry/step-progress.json +256 -0
  318. package/registry/stepper.json +2 -1
  319. package/registry/swipe-deck.json +513 -0
  320. package/registry/swipeable-row.json +1 -0
  321. package/registry/switch.json +2 -1
  322. package/registry/tab-bar.json +1 -0
  323. package/registry/tabs.json +2 -1
  324. package/registry/tag-input.json +2 -1
  325. package/registry/tag-selector.json +277 -0
  326. package/registry/terminal-replay.json +2 -1
  327. package/registry/theme.json +2 -1
  328. package/registry/toast.json +2 -1
  329. package/registry/toc.json +2 -1
  330. package/registry/tooltip.json +2 -1
  331. package/registry/tree-view.json +10 -4
  332. package/registry/txt.json +1 -0
  333. package/registry/verified-badge.json +203 -0
  334. package/registry/video-player.json +2 -1
  335. package/registry/video-trimmer.json +2 -1
  336. package/registry/virtual.json +2 -1
  337. package/dist/chunk-R6SDS7JM.js.map +0 -1
package/dist/native.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import * as React$1 from 'react';
2
2
  import React__default from 'react';
3
3
  import { StyleProp, ViewStyle, ViewProps, PressableProps, TextProps, ImageProps, TextInput, TextInputProps, Animated, NativeSyntheticEvent, NativeScrollEvent, TextStyle, RefreshControlProps, DimensionValue, ActivityIndicatorProps } from 'react-native';
4
4
 
@@ -71,7 +71,7 @@ type ActionSheetAction = {
71
71
  /** A destructive action wears the danger text. */
72
72
  destructive?: boolean;
73
73
  /** A decorative icon before the words. */
74
- icon?: React.ReactNode;
74
+ icon?: React$1.ReactNode;
75
75
  /** Cannot be chosen now. */
76
76
  disabled?: boolean;
77
77
  };
@@ -86,7 +86,7 @@ type ActionSheetProps = Controlled & {
86
86
  cancelLabel: string;
87
87
  };
88
88
  /** A short list of actions from the bottom edge — share, edit, delete — and a cancel button apart, as the platforms do. */
89
- declare function ActionSheet({ title, description, actions, cancelLabel, ...controlled }: ActionSheetProps): React.JSX.Element;
89
+ declare function ActionSheet({ title, description, actions, cancelLabel, ...controlled }: ActionSheetProps): React$1.JSX.Element;
90
90
 
91
91
  type ActivityTone = "neutral" | "accent" | "success" | "warning" | "danger" | "info";
92
92
  type ActivityEvent = {
@@ -130,16 +130,16 @@ type ActivityFeedProps<T extends ActivityEvent> = {
130
130
  /** Announce new events (a stream). */
131
131
  live?: boolean;
132
132
  /** Before an event's text: its actor's `Avatar`. */
133
- leading?: (event: T) => React.ReactNode;
133
+ leading?: (event: T) => React$1.ReactNode;
134
134
  /** Shown when there is no event (an `EmptyState`). */
135
- empty?: React.ReactNode;
135
+ empty?: React$1.ReactNode;
136
136
  /** The words, passed translated. */
137
137
  labels?: Partial<ActivityFeedLabels>;
138
138
  /** Styles of the list. */
139
139
  style?: StyleProp<ViewStyle>;
140
140
  };
141
141
  /** What happened, newest first — the web `ActivityFeed`: by day under sticky headings, runs folded, “2 min ago”, new events announced. */
142
- declare function ActivityFeed<T extends ActivityEvent>({ events, "aria-label": label, locale, now: given, fold, live, leading, empty, labels: words, style }: ActivityFeedProps<T>): React.JSX.Element;
142
+ declare function ActivityFeed<T extends ActivityEvent>({ events, "aria-label": label, locale, now: given, fold, live, leading, empty, labels: words, style }: ActivityFeedProps<T>): React$1.JSX.Element;
143
143
 
144
144
  type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl";
145
145
  type AvatarProps = Omit<ViewProps, "children"> & {
@@ -154,7 +154,7 @@ type AvatarProps = Omit<ViewProps, "children"> & {
154
154
  /** The person's name: the image's accessible name and the source of the default initial. */
155
155
  alt?: string;
156
156
  /** Shown while there is no image or when it fails: default, the first letter of `alt`. */
157
- fallback?: React.ReactNode;
157
+ fallback?: React$1.ReactNode;
158
158
  /** A size of the scale, or points. */
159
159
  size?: AvatarSize | number;
160
160
  /** A dot at the bottom right: `online` (success), `away` (warning), `busy` (danger), `offline` (hollow). */
@@ -164,7 +164,7 @@ type AvatarProps = Omit<ViewProps, "children"> & {
164
164
  /** A ring around it: `story` (an unseen story, in the accent gradient), `seen` (a story already watched), `live` (danger). */
165
165
  ring?: "story" | "seen" | "live";
166
166
  };
167
- declare function AvatarRoot({ src, svg, alt, fallback, size, presence, presenceLabel, ring, style, ...props }: AvatarProps): React.JSX.Element;
167
+ declare function AvatarRoot({ src, svg, alt, fallback, size, presence, presenceLabel, ring, style, ...props }: AvatarProps): React$1.JSX.Element;
168
168
  type AvatarGroupProps = ViewProps & {
169
169
  /** How many avatars are shown; the rest becomes a `+n` avatar. */
170
170
  max?: number;
@@ -172,7 +172,7 @@ type AvatarGroupProps = ViewProps & {
172
172
  size?: AvatarSize | number;
173
173
  };
174
174
  /** Overlapping avatars; past `max`, a `+n` avatar counts the rest. */
175
- declare function AvatarGroup({ max, size, style, children, ...props }: AvatarGroupProps): React.JSX.Element;
175
+ declare function AvatarGroup({ max, size, style, children, ...props }: AvatarGroupProps): React$1.JSX.Element;
176
176
  /** `Avatar` (an image with a fallback) and `Avatar.Group`. */
177
177
  declare const Avatar: typeof AvatarRoot & {
178
178
  Group: typeof AvatarGroup;
@@ -188,10 +188,10 @@ type BadgeProps = ViewProps & {
188
188
  dot?: boolean;
189
189
  /** The dot breathes (still when the system reduces motion). */
190
190
  pulse?: boolean;
191
- children?: React.ReactNode;
191
+ children?: React$1.ReactNode;
192
192
  };
193
193
  /** A short status in capitals: a tone, a size, an optional (pulsing) dot. */
194
- declare function Badge({ tone, size, dot, pulse, style, children, ...props }: BadgeProps): React.JSX.Element;
194
+ declare function Badge({ tone, size, dot, pulse, style, children, ...props }: BadgeProps): React$1.JSX.Element;
195
195
 
196
196
  type ButtonVariant = "primary" | "gradient" | "secondary" | "outline" | "ghost" | "danger";
197
197
  type ButtonSize = "sm" | "md" | "lg";
@@ -211,18 +211,18 @@ type ButtonProps = BaseProps & {
211
211
  /** The visible text — passed translated. It is also the accessible name. */
212
212
  label: string;
213
213
  /** Before the label (an icon component from the app's icon set). */
214
- icon?: React.ReactNode;
214
+ icon?: React$1.ReactNode;
215
215
  };
216
216
  /** The action. `variant` × `size` × `shape`, `loading`, `icon`; the haptics, if any, belong to the app's `onPress`. */
217
- declare function Button({ label, icon, variant, size, shape, loading, disabled, style, ...props }: ButtonProps): React.JSX.Element;
217
+ declare function Button({ label, icon, variant, size, shape, loading, disabled, style, ...props }: ButtonProps): React$1.JSX.Element;
218
218
  type IconButtonProps = BaseProps & {
219
219
  /** The accessible name — required, passed translated. */
220
220
  label: string;
221
221
  /** The icon (from the app's icon set); the button shows nothing else. */
222
- icon: React.ReactNode;
222
+ icon: React$1.ReactNode;
223
223
  };
224
224
  /** A square button holding only an icon: `label` is required, it is its accessible name. */
225
- declare function IconButton({ label, icon, variant, size, shape, loading, disabled, style, ...props }: IconButtonProps): React.JSX.Element;
225
+ declare function IconButton({ label, icon, variant, size, shape, loading, disabled, style, ...props }: IconButtonProps): React$1.JSX.Element;
226
226
 
227
227
  type TxtVariant = "display" | "title" | "body" | "caption" | "label" | "mono";
228
228
  type TxtTone = "text" | "secondary" | "muted" | "accent" | "success" | "warning" | "danger" | "onAccent" | "onMedia";
@@ -233,7 +233,7 @@ type TxtProps = TextProps & {
233
233
  tone?: TxtTone;
234
234
  };
235
235
  /** Text in the platform's scale, coloured by a role of the current theme. `title` and `display` are headers for screen readers. */
236
- declare function Txt({ variant, tone, style, ...props }: TxtProps): React.JSX.Element;
236
+ declare function Txt({ variant, tone, style, ...props }: TxtProps): React$1.JSX.Element;
237
237
  declare const textStyles: {
238
238
  display: {
239
239
  fontSize: number;
@@ -279,7 +279,7 @@ type CardRootProps = ViewProps & {
279
279
  onPress?: PressableProps["onPress"];
280
280
  };
281
281
  /** The frame: the theme's surface, a hairline border, rounded corners; `onPress` makes it a pressable card. */
282
- declare function CardRoot({ tone, radius, onPress, style, ...props }: CardRootProps): React.JSX.Element;
282
+ declare function CardRoot({ tone, radius, onPress, style, ...props }: CardRootProps): React$1.JSX.Element;
283
283
  declare const ASPECT: {
284
284
  readonly video: number;
285
285
  readonly square: 1;
@@ -290,22 +290,22 @@ type CardMediaProps = ViewProps & {
290
290
  aspect?: keyof typeof ASPECT | "auto";
291
291
  };
292
292
  /** The media area at the top of a card: a fixed ratio, the `media` role behind (what shows while an image loads). */
293
- declare function CardMedia({ aspect, style, ...props }: CardMediaProps): React.JSX.Element;
293
+ declare function CardMedia({ aspect, style, ...props }: CardMediaProps): React$1.JSX.Element;
294
294
  type CardImageProps = Omit<ImageProps, "source" | "src"> & {
295
295
  /** The image URI; absent or `null`: the `fallback` on the media colour. */
296
296
  src?: string | null;
297
297
  /** Shown when there is no image: an icon, an illustration (decorative). */
298
- fallback?: React.ReactNode;
298
+ fallback?: React$1.ReactNode;
299
299
  };
300
300
  /** The image of a media (it fills it), or its `fallback` when there is none. Decorative unless `alt` is given. */
301
- declare function CardImage({ src, fallback, alt, style, ...props }: CardImageProps): React.JSX.Element;
301
+ declare function CardImage({ src, fallback, alt, style, ...props }: CardImageProps): React$1.JSX.Element;
302
302
  declare const CORNER: Record<"top-left" | "top-right" | "bottom-left" | "bottom-right", ViewStyle>;
303
303
  type CardOverlayProps = ViewProps & {
304
304
  /** The corner of the media it sits in: top-left (default) · top-right · bottom-left · bottom-right. */
305
305
  corner?: keyof typeof CORNER;
306
306
  };
307
307
  /** What sits on the media (badges, a caption), in a corner. */
308
- declare function CardOverlay({ corner, style, ...props }: CardOverlayProps): React.JSX.Element;
308
+ declare function CardOverlay({ corner, style, ...props }: CardOverlayProps): React$1.JSX.Element;
309
309
  declare const PADDING: {
310
310
  readonly none: 0;
311
311
  readonly sm: 12;
@@ -316,11 +316,11 @@ type CardBodyProps = ViewProps & {
316
316
  /** none · sm · md (default) · lg. */
317
317
  padding?: keyof typeof PADDING;
318
318
  };
319
- declare function CardBody({ padding, style, ...props }: CardBodyProps): React.JSX.Element;
319
+ declare function CardBody({ padding, style, ...props }: CardBodyProps): React$1.JSX.Element;
320
320
  /** The card's name: one line, a header for screen readers. */
321
- declare function CardTitle({ numberOfLines, ...props }: Omit<TxtProps, "variant">): React.JSX.Element;
322
- declare function CardDescription({ numberOfLines, ...props }: Omit<TxtProps, "variant">): React.JSX.Element;
323
- declare function CardFooter({ style, ...props }: ViewProps): React.JSX.Element;
321
+ declare function CardTitle({ numberOfLines, ...props }: Omit<TxtProps, "variant">): React$1.JSX.Element;
322
+ declare function CardDescription({ numberOfLines, ...props }: Omit<TxtProps, "variant">): React$1.JSX.Element;
323
+ declare function CardFooter({ style, ...props }: ViewProps): React$1.JSX.Element;
324
324
  /** `Card.Root/Media/Image/Overlay/Body/Title/Description/Footer` — the web parts, on View, Image and Text. */
325
325
  declare const Card: {
326
326
  Root: typeof CardRoot;
@@ -333,9 +333,100 @@ declare const Card: {
333
333
  Footer: typeof CardFooter;
334
334
  };
335
335
 
336
+ /** Where a sent message stands. */
337
+ type MessageStatus = "sending" | "sent" | "delivered" | "read" | "failed";
338
+ type MessageBubbleLabels = {
339
+ /** The words of each status (“Sent”, “Read”…), shown under the last message of yours. */
340
+ status?: Partial<Record<MessageStatus, string>>;
341
+ /** The retry hint of a failed message (“Tap to retry”). */
342
+ retry?: string;
343
+ };
344
+ type MessageBubbleProps = {
345
+ /** The text. */
346
+ text: string;
347
+ /** Yours (right, in the accent) or theirs (left). */
348
+ mine?: boolean;
349
+ /** The time, written by the app (“14:02”). */
350
+ time?: string;
351
+ /** Where a message of yours stands; shown when `showStatus`. */
352
+ status?: MessageStatus;
353
+ /** Show the status under the bubble (the last message of yours). */
354
+ showStatus?: boolean;
355
+ /** A line above the text: what it answers (“Replied to your story”). */
356
+ context?: string;
357
+ /** Called when a failed message is pressed: send it again. */
358
+ onRetry?: () => void;
359
+ /** Part of a run of the same sender: the corner towards the next one is tighter. */
360
+ grouped?: "first" | "middle" | "last" | "single";
361
+ /** The words, passed translated. */
362
+ labels?: MessageBubbleLabels;
363
+ /** Styles merged last. */
364
+ style?: StyleProp<ViewStyle>;
365
+ };
366
+ /** A message: yours in the accent on the right, theirs on the left, the time inside, the receipt under the last of yours. */
367
+ declare function MessageBubble({ text, mine, time, status, showStatus, context, onRetry, grouped, labels, style }: MessageBubbleProps): React$1.JSX.Element;
368
+ type TypingIndicatorProps = {
369
+ /** What is said to screen readers and shown beside the dots (“Elena is typing”) — passed translated. */
370
+ label: string;
371
+ /** Show the words beside the dots. Default false. */
372
+ showLabel?: boolean;
373
+ /** Styles merged last. */
374
+ style?: StyleProp<ViewStyle>;
375
+ };
376
+ /** Three dots that breathe in a bubble while the other person types; still under reduced motion. */
377
+ declare function TypingIndicator({ label, showLabel, style }: TypingIndicatorProps): React$1.JSX.Element;
378
+ type MessageComposerProps = {
379
+ /** The draft (controlled). */
380
+ value: string;
381
+ /** Called on every key (send the typing signal from here). */
382
+ onValueChange: (text: string) => void;
383
+ /** Sends the draft; the composer does not clear it — the app does once sent. */
384
+ onSend: () => void;
385
+ /** The input's name and placeholder (“Message”) — passed translated. */
386
+ placeholder: string;
387
+ /** The send button's name (“Send”). */
388
+ sendLabel: string;
389
+ /** Before the input: an attach button. */
390
+ leading?: React$1.ReactNode;
391
+ /** Cannot write (blocked, read-only): the reason in its place. */
392
+ disabledReason?: string;
393
+ /** The longest message. Default 4000. */
394
+ maxLength?: number;
395
+ /** Styles merged last. */
396
+ style?: StyleProp<ViewStyle>;
397
+ };
398
+ /** Where a message is written: a growing input, an attach slot, a send button that wakes when there is something to send. */
399
+ declare function MessageComposer({ value, onValueChange, onSend, placeholder, sendLabel, leading, disabledReason, maxLength, style }: MessageComposerProps): React$1.JSX.Element;
400
+ type ConversationItemProps = {
401
+ /** The other person's name. */
402
+ name: string;
403
+ /** Their avatar's URI. */
404
+ avatar?: string | null;
405
+ /** Their presence (a dot on the avatar). */
406
+ presence?: "online" | "away" | "busy" | "offline";
407
+ /** The presence in words (“online”). */
408
+ presenceLabel?: string;
409
+ /** The last message, or “typing…”. */
410
+ preview: string;
411
+ /** The preview is the typing signal: in the accent. */
412
+ typing?: boolean;
413
+ /** When (“14:02”, “Mon”). */
414
+ time?: string;
415
+ /** Unread messages: a count in the accent, the name in bold. */
416
+ unread?: number;
417
+ /** The unread count in words (“3 unread”). */
418
+ unreadLabel?: string;
419
+ /** Opens the conversation. */
420
+ onPress?: () => void;
421
+ /** Styles merged last. */
422
+ style?: StyleProp<ViewStyle>;
423
+ };
424
+ /** A conversation in the list: avatar and presence, name, the last message or typing, the time, the unread count. */
425
+ declare function ConversationItem({ name, avatar, presence, presenceLabel, preview, typing, time, unread, unreadLabel, onPress, style }: ConversationItemProps): React$1.JSX.Element;
426
+
336
427
  type CheckboxProps = {
337
428
  /** The words next to the box: text (pressable with it), or a `Txt` with links inside (terms, privacy) — then the box alone is pressed and `label` names it. */
338
- children?: React.ReactNode;
429
+ children?: React$1.ReactNode;
339
430
  /** The accessible name when `children` is not plain text (a sentence with links), passed translated. */
340
431
  label?: string;
341
432
  /** Ticked (controlled). */
@@ -355,7 +446,7 @@ type CheckboxProps = {
355
446
  * A checkbox for React Native: a 44-pt row — the box and its words, pressed as one — with an error under it. The web
356
447
  * `Checkbox` with `children`.
357
448
  */
358
- declare function Checkbox({ children, label, checked, defaultChecked, onCheckedChange, error, disabled, style }: CheckboxProps): React.JSX.Element;
449
+ declare function Checkbox({ children, label, checked, defaultChecked, onCheckedChange, error, disabled, style }: CheckboxProps): React$1.JSX.Element;
359
450
 
360
451
  type ChipSize = "sm" | "md";
361
452
  type CommonProps = Omit<PressableProps, "children" | "style" | "onPress"> & {
@@ -364,7 +455,7 @@ type CommonProps = Omit<PressableProps, "children" | "style" | "onPress"> & {
364
455
  /** Styles merged last. */
365
456
  style?: StyleProp<ViewStyle>;
366
457
  /** The text (passed translated) or a node (an icon and a text). */
367
- children: React.ReactNode;
458
+ children: React$1.ReactNode;
368
459
  };
369
460
  type ToggleChipProps = CommonProps & {
370
461
  /** Inside `Chip.Group`: the value this chip stands for (required there, ignored alone). */
@@ -387,7 +478,7 @@ type RemovableChipProps = CommonProps & {
387
478
  };
388
479
  type ChipProps = ToggleChipProps | RemovableChipProps;
389
480
  /** A selectable pill (`selected` / `onSelectedChange`), an item of `Chip.Group` (`value`), or `removable`. */
390
- declare function ChipBase(props: ChipProps): React.JSX.Element;
481
+ declare function ChipBase(props: ChipProps): React$1.JSX.Element;
391
482
  type GroupBase = {
392
483
  /** sm · md (default); in a group, the group's size. */
393
484
  size?: ChipSize;
@@ -398,7 +489,7 @@ type GroupBase = {
398
489
  "aria-label"?: string;
399
490
  /** Styles merged last. */
400
491
  style?: StyleProp<ViewStyle>;
401
- children: React.ReactNode;
492
+ children: React$1.ReactNode;
402
493
  };
403
494
  type ChipGroupProps = (GroupBase & {
404
495
  type: "single";
@@ -412,7 +503,7 @@ type ChipGroupProps = (GroupBase & {
412
503
  onValueChange?: (value: string[]) => void;
413
504
  });
414
505
  /** A set of chips: `single` (one value, a radio group; pressing the chosen chip keeps it) or `multiple` (toggles). */
415
- declare function ChipGroup(props: ChipGroupProps): React.JSX.Element;
506
+ declare function ChipGroup(props: ChipGroupProps): React$1.JSX.Element;
416
507
  /** `Chip` and `Chip.Group`. */
417
508
  declare const Chip: typeof ChipBase & {
418
509
  Group: typeof ChipGroup;
@@ -454,7 +545,7 @@ type SelectProps = FieldShared & {
454
545
  sheetTitle?: string;
455
546
  };
456
547
  /** One choice among many — the web `<select>`: a field that opens a sheet of options; picking one closes it. */
457
- declare function Select({ options, value: valueProp, defaultValue, onValueChange, sheetTitle, ...shared }: SelectProps): React.JSX.Element;
548
+ declare function Select({ options, value: valueProp, defaultValue, onValueChange, sheetTitle, ...shared }: SelectProps): React$1.JSX.Element;
458
549
  type ComboboxLabels = {
459
550
  /** The search box's name and placeholder ("Search"). */
460
551
  search: string;
@@ -481,7 +572,7 @@ type ComboboxProps = FieldShared & {
481
572
  labels?: Partial<ComboboxLabels>;
482
573
  };
483
574
  /** A choice among many, searched: a field that opens a sheet with a search box and the matching options. */
484
- declare function Combobox({ options, onSearch, multiple, value, onValueChange, labels: given, ...shared }: ComboboxProps): React.JSX.Element;
575
+ declare function Combobox({ options, onSearch, multiple, value, onValueChange, labels: given, ...shared }: ComboboxProps): React$1.JSX.Element;
485
576
 
486
577
  type CountdownProps = {
487
578
  /** The moment it counts down to: a Date, an ISO string or epoch milliseconds. */
@@ -507,7 +598,7 @@ type CountdownProps = {
507
598
  * danger text role (≥ 4.5:1 in both themes) and its last segment breathes (still when the system reduces motion).
508
599
  * `showLabel` writes `label` before the segments; it is the accessible name either way.
509
600
  */
510
- declare function Countdown({ target, skewMs, units, urgentBelowMs, size, label, showLabel, style }: CountdownProps): React.JSX.Element;
601
+ declare function Countdown({ target, skewMs, units, urgentBelowMs, size, label, showLabel, style }: CountdownProps): React$1.JSX.Element;
511
602
 
512
603
  type DateFieldLabels = {
513
604
  /** The name of the day's box. */
@@ -542,7 +633,7 @@ type DateFieldProps = {
542
633
  /** Not available. */
543
634
  disabled?: boolean;
544
635
  /** The first box (in the locale's order), to focus the field from the one before it. */
545
- inputRef?: React.Ref<TextInput>;
636
+ inputRef?: React$1.Ref<TextInput>;
546
637
  /** Called by the last box's return key (`returnKeyType`): move to the next field, or send the form. */
547
638
  onSubmitEditing?: () => void;
548
639
  /** The last box's return key. Default `done`. */
@@ -554,7 +645,7 @@ type DateFieldProps = {
554
645
  * A date typed as day, month and year — a memorable date (a birth date, an expiry) that a calendar would make slow to
555
646
  * reach: numeric keypads, the boxes in the locale's order, the next box focused once one is full. No native module.
556
647
  */
557
- declare function DateField({ label, hint, error, value, defaultValue, onValueChange, onBlur, locale, labels: given, autoComplete, disabled, inputRef, onSubmitEditing, returnKeyType, style }: DateFieldProps): React.JSX.Element;
648
+ declare function DateField({ label, hint, error, value, defaultValue, onValueChange, onBlur, locale, labels: given, autoComplete, disabled, inputRef, onSubmitEditing, returnKeyType, style }: DateFieldProps): React$1.JSX.Element;
558
649
 
559
650
  type CalendarLabels = {
560
651
  /** The previous-month button ("Previous month"). */
@@ -593,7 +684,7 @@ type CalendarProps = {
593
684
  style?: StyleProp<ViewStyle>;
594
685
  };
595
686
  /** A month to pick a day or the ends of a period — the web `Calendar`: 44-pt days, today's node, the range as a band. */
596
- declare function Calendar({ locale, value, range, onSelect, defaultMonth, min, max, isDateDisabled, weekStartsOn, today: todayProp, labels: given, style }: CalendarProps): React.JSX.Element;
687
+ declare function Calendar({ locale, value, range, onSelect, defaultMonth, min, max, isDateDisabled, weekStartsOn, today: todayProp, labels: given, style }: CalendarProps): React$1.JSX.Element;
597
688
  type MonthPickerProps = {
598
689
  /** The BCP 47 locale of the month names: always explicit. */
599
690
  locale: string;
@@ -614,7 +705,7 @@ type MonthPickerProps = {
614
705
  style?: StyleProp<ViewStyle>;
615
706
  };
616
707
  /** A month of a year: the twelve months in a grid, the year above them — the web `MonthPicker`. */
617
- declare function MonthPicker({ locale, value, onValueChange, min, max, labels, style }: MonthPickerProps): React.JSX.Element;
708
+ declare function MonthPicker({ locale, value, onValueChange, min, max, labels, style }: MonthPickerProps): React$1.JSX.Element;
618
709
  type DayStripProps = {
619
710
  /** The group's accessible name ("Delivery day"), passed translated. */
620
711
  label: string;
@@ -642,7 +733,7 @@ type DayStripProps = {
642
733
  style?: StyleProp<ViewStyle>;
643
734
  };
644
735
  /** The days ahead in a row that scrolls sideways — the web `DayStrip`: a radio group of 56×72-pt days. */
645
- declare function DayStrip({ label, locale, value: valueProp, defaultValue, onValueChange, start, days, isDateDisabled, isDateMarked, markedLabel, today: todayProp, style }: DayStripProps): React.JSX.Element;
736
+ declare function DayStrip({ label, locale, value: valueProp, defaultValue, onValueChange, start, days, isDateDisabled, isDateMarked, markedLabel, today: todayProp, style }: DayStripProps): React$1.JSX.Element;
646
737
  type TimePickerLabels = {
647
738
  /** The hours' wheel ("Hours"). */
648
739
  hours: string;
@@ -680,7 +771,7 @@ type TimePickerProps = {
680
771
  style?: StyleProp<ViewStyle>;
681
772
  };
682
773
  /** A time of day: wheels to set one, or slots to book one — the web `TimePicker`. */
683
- declare function TimePicker({ label, locale, value: valueProp, defaultValue, onValueChange, variant, minuteStep, hour12, labels: given, slots, isTimeDisabled, disabled, style }: TimePickerProps): React.JSX.Element;
774
+ declare function TimePicker({ label, locale, value: valueProp, defaultValue, onValueChange, variant, minuteStep, hour12, labels: given, slots, isTimeDisabled, disabled, style }: TimePickerProps): React$1.JSX.Element;
684
775
  type DateWheelProps = {
685
776
  /** The visible label, passed translated (the group's name). */
686
777
  label: string;
@@ -710,13 +801,13 @@ type DateWheelProps = {
710
801
  style?: StyleProp<ViewStyle>;
711
802
  };
712
803
  /** Day, month and year as three wheels in the locale's order, bounded by `min` and `max` — the web `DateWheel`. */
713
- declare function DateWheel({ label, locale, value: valueProp, defaultValue, onValueChange, min, max, defaultView, hint, error, labels: given, disabled, style }: DateWheelProps): React.JSX.Element;
804
+ declare function DateWheel({ label, locale, value: valueProp, defaultValue, onValueChange, min, max, defaultView, hint, error, labels: given, disabled, style }: DateWheelProps): React$1.JSX.Element;
714
805
 
715
806
  type DescriptionItem = {
716
807
  /** The term (“Status”, “Credits”) — passed translated. */
717
808
  term: string;
718
809
  /** The value: text, a `Badge`. */
719
- details: React.ReactNode;
810
+ details: React$1.ReactNode;
720
811
  /** A line under the value (a date, a unit). */
721
812
  hint?: string;
722
813
  /** A stable key, when the terms are not unique. */
@@ -731,7 +822,7 @@ type DescriptionListProps = {
731
822
  style?: StyleProp<ViewStyle>;
732
823
  };
733
824
  /** Term and value pairs — the web `DescriptionList`: a job's details, a payout's breakdown; each pair read as one. */
734
- declare function DescriptionList({ items, layout, style }: DescriptionListProps): React.JSX.Element;
825
+ declare function DescriptionList({ items, layout, style }: DescriptionListProps): React$1.JSX.Element;
735
826
 
736
827
  type SheetProps = {
737
828
  /** Open (controlled). */
@@ -743,7 +834,7 @@ type SheetProps = {
743
834
  /** The name of the close action read by screen readers ("Close"), passed translated. */
744
835
  closeLabel?: string;
745
836
  /** The content: a list, details, a form. */
746
- children: React.ReactNode;
837
+ children: React$1.ReactNode;
747
838
  /** Styles merged last, on the sheet. */
748
839
  style?: StyleProp<ViewStyle>;
749
840
  };
@@ -752,26 +843,26 @@ type SheetProps = {
752
843
  * a choice (`Select`, `Combobox`), the details of a pin on a map, a short form. React Native's `Modal`: focus stays
753
844
  * inside, the back button closes it. Rises with the theme's ease; still under reduced motion.
754
845
  */
755
- declare function Sheet({ open, onOpenChange, title, closeLabel, children, style }: SheetProps): React.JSX.Element;
846
+ declare function Sheet({ open, onOpenChange, title, closeLabel, children, style }: SheetProps): React$1.JSX.Element;
756
847
 
757
848
  type EmptyStateProps = Omit<ViewProps, "children"> & {
758
849
  /** A decorative icon (hidden from screen readers). */
759
- icon?: React.ReactNode;
850
+ icon?: React$1.ReactNode;
760
851
  /** What is empty, in a few words ("No notifications yet"). */
761
852
  title: string;
762
853
  /** Why, or what will fill it. */
763
854
  description?: string;
764
855
  /** What to do next: a Button. */
765
- action?: React.ReactNode;
856
+ action?: React$1.ReactNode;
766
857
  };
767
858
  /** What a list, a search or a screen says when it has nothing to show — every word is a prop. */
768
- declare function EmptyState({ icon, title, description, action, style, ...props }: EmptyStateProps): React.JSX.Element;
859
+ declare function EmptyState({ icon, title, description, action, style, ...props }: EmptyStateProps): React$1.JSX.Element;
769
860
 
770
861
  type FabProps = {
771
862
  /** The action in words (“New challenge”) — passed translated: the accessible name, and shown when `extended`. */
772
863
  label: string;
773
864
  /** The icon (decorative). */
774
- icon: React.ReactNode;
865
+ icon: React$1.ReactNode;
775
866
  /** What it does. */
776
867
  onPress: () => void;
777
868
  /** Shows the words beside the icon (collapse it while the list scrolls down). */
@@ -787,7 +878,7 @@ type FabProps = {
787
878
  * The screen's main action, floating above the content in the accent — one per screen (create, compose, record). It
788
879
  * keeps clear of the safe area and the tab bar (`offset`), shows its words when `extended`, a light tap confirms.
789
880
  */
790
- declare function Fab({ label, icon, onPress, extended, placement, offset, style }: FabProps): React.JSX.Element;
881
+ declare function Fab({ label, icon, onPress, extended, placement, offset, style }: FabProps): React$1.JSX.Element;
791
882
 
792
883
  type TextFieldProps = Omit<TextInputProps, "value" | "defaultValue" | "onChangeText" | "style" | "editable"> & {
793
884
  /** The visible label above the input, passed translated (also its accessible name). */
@@ -805,9 +896,9 @@ type TextFieldProps = Omit<TextInputProps, "value" | "defaultValue" | "onChangeT
805
896
  /** Not available: dimmed, not focusable. */
806
897
  disabled?: boolean;
807
898
  /** Something at the end of the input: a spinner while a value is checked, a check once it is, a show-password button. */
808
- end?: React.ReactNode;
899
+ end?: React$1.ReactNode;
809
900
  /** The input itself, to focus it (`ref.current?.focus()`) or move to the next field. */
810
- inputRef?: React.Ref<TextInput>;
901
+ inputRef?: React$1.Ref<TextInput>;
811
902
  /** Styles merged last, on the field (label, input, caption). */
812
903
  style?: StyleProp<ViewStyle>;
813
904
  };
@@ -816,7 +907,7 @@ type TextFieldProps = Omit<TextInputProps, "value" | "defaultValue" | "onChangeT
816
907
  * `autoComplete`, `returnKeyType`…), a hint or an error under it — the web `Field` + `Input`. `multiline` makes it a
817
908
  * text area.
818
909
  */
819
- declare function TextField({ label, hint, error, value, defaultValue, onValueChange, disabled, end, inputRef, style, multiline, onFocus, onBlur, ...props }: TextFieldProps): React.JSX.Element;
910
+ declare function TextField({ label, hint, error, value, defaultValue, onValueChange, disabled, end, inputRef, style, multiline, onFocus, onBlur, ...props }: TextFieldProps): React$1.JSX.Element;
820
911
 
821
912
  type GoalGaugeProps = Omit<ViewProps, "children"> & {
822
913
  /** What the gauge counts (“Backers”) — passed translated; the meter's accessible name. */
@@ -837,7 +928,7 @@ type GoalGaugeProps = Omit<ViewProps, "children"> & {
837
928
  animated?: boolean;
838
929
  };
839
930
  /** A goal in steps for React Native: `role="meter"`, the reached steps lit, the value in words beside the label. */
840
- declare function GoalGauge({ label, segments, value, valueText, mode, showLabel, variant, animated, style, ...props }: GoalGaugeProps): React.JSX.Element;
931
+ declare function GoalGauge({ label, segments, value, valueText, mode, showLabel, variant, animated, style, ...props }: GoalGaugeProps): React$1.JSX.Element;
841
932
 
842
933
  type HeaderProps = {
843
934
  /** The screen's title — a heading, shown large under the bar until the content scrolls under it. */
@@ -853,9 +944,9 @@ type HeaderProps = {
853
944
  /** Called by the back button. */
854
945
  onBack?: () => void;
855
946
  /** Buttons at the right of the bar (`IconButton`s). */
856
- actions?: React.ReactNode;
947
+ actions?: React$1.ReactNode;
857
948
  /** Under the title: a `SearchField`, `Tabs`. */
858
- children?: React.ReactNode;
949
+ children?: React$1.ReactNode;
859
950
  /** Styles merged last. */
860
951
  style?: StyleProp<ViewStyle>;
861
952
  };
@@ -864,7 +955,7 @@ type HeaderProps = {
864
955
  * the bar as the content scrolls — the iOS idiom, readable on Android. Feed it the list's scroll with
865
956
  * `useCollapsingHeader()`. The title is the screen's heading for screen readers either way.
866
957
  */
867
- declare function Header({ title, subtitle, scrollY, size, backLabel, onBack, actions, children, style }: HeaderProps): React.JSX.Element;
958
+ declare function Header({ title, subtitle, scrollY, size, backLabel, onBack, actions, children, style }: HeaderProps): React$1.JSX.Element;
868
959
  /** The scroll position a `Header` folds with: `<ScrollView onScroll={onScroll} scrollEventThrottle={16}>` and `<Header scrollY={scrollY}>`. */
869
960
  declare function useCollapsingHeader(): {
870
961
  scrollY: Animated.Value;
@@ -896,7 +987,7 @@ type ImageViewerProps = {
896
987
  * and right between images, swipe down to close. Screen readers get the image's words, its position, and the close
897
988
  * button; their swipes move between images (accessibility actions).
898
989
  */
899
- declare function ImageViewer({ images, index, onIndexChange, closeLabel, positionLabel }: ImageViewerProps): React.JSX.Element | null;
990
+ declare function ImageViewer({ images, index, onIndexChange, closeLabel, positionLabel }: ImageViewerProps): React$1.JSX.Element | null;
900
991
  /** Preloads the neighbours of the image open, so a swipe shows the next one at once. */
901
992
  declare function prefetchNeighbours(images: readonly ViewerImage[], index: number | null): void;
902
993
 
@@ -929,7 +1020,7 @@ type LoaderGlyphProps = {
929
1020
  color?: string;
930
1021
  };
931
1022
  /** The Krizaka loader glyph (decorative): a hexagon traced by a segment of light around a node; done, a check or a cross. */
932
- declare function LoaderGlyph({ state, value, size, color }: LoaderGlyphProps): React.JSX.Element;
1023
+ declare function LoaderGlyph({ state, value, size, color }: LoaderGlyphProps): React$1.JSX.Element;
933
1024
  /** `active` once it has lasted `delay` ms, then held at least `minDuration` ms: a wait never flashes nor blinks. */
934
1025
  declare function useDelayedWait(active: boolean, delay?: number, minDuration?: number): boolean;
935
1026
  type LoaderProps = {
@@ -953,11 +1044,16 @@ type LoaderProps = {
953
1044
  endDuration?: number;
954
1045
  /** inline (default) · block (a region's centre) · overlay (over its parent, frosted) · page (the whole screen). */
955
1046
  variant?: "inline" | "block" | "overlay" | "page";
1047
+ /**
1048
+ * The product whose animated mark waits in place of the Krizaka glyph (`orochia`, `orazaka`, `yazakia`, `yororis`,
1049
+ * `krizaka`). Still when the system reduces motion; the ending stays the check or the cross.
1050
+ */
1051
+ product?: BrandId;
956
1052
  /** Styles merged last. */
957
1053
  style?: StyleProp<ViewStyle>;
958
1054
  };
959
1055
  /** A wait from start to end — the web `Loader`: delayed, never blinking, announced when it shows and when it ends. */
960
- declare function Loader({ label, status, successLabel, errorLabel, value, eta, delay, minDuration, endDuration, variant, style }: LoaderProps): React.JSX.Element | null;
1056
+ declare function Loader({ label, status, successLabel, errorLabel, value, eta, delay, minDuration, endDuration, variant, product, style }: LoaderProps): React$1.JSX.Element | null;
961
1057
 
962
1058
  /**
963
1059
  * The Krizaka flock — the geometry of the mascots, drawn by the web `Mascot` (`./mascot.tsx`) and the native one
@@ -992,7 +1088,7 @@ type MascotStateProps = Omit<ViewProps, "children"> & {
992
1088
  /** Why, or what comes next. */
993
1089
  description?: string;
994
1090
  /** What to do next: a Button. */
995
- action?: React.ReactNode;
1091
+ action?: React$1.ReactNode;
996
1092
  /** The bird's size: `sm` 64, `md` 96 (default), `lg` 128 points. */
997
1093
  size?: keyof typeof SIZE;
998
1094
  /** `stacked` (default): the bird above centred words. `inline`: the bird beside the words. */
@@ -1006,16 +1102,16 @@ type MascotStateProps = Omit<ViewProps, "children"> & {
1006
1102
  * A moment told by a bird of the flock — an empty list, a long wait, a success, an error, a welcome — for React Native.
1007
1103
  * Announced: `alert` for an error, a polite live region otherwise (`busy` while thinking).
1008
1104
  */
1009
- declare function MascotState({ bird, mood, title, description, action, size, layout, tone, animated, style, ...props }: MascotStateProps): React.JSX.Element;
1105
+ declare function MascotState({ bird, mood, title, description, action, size, layout, tone, animated, style, ...props }: MascotStateProps): React$1.JSX.Element;
1010
1106
  type PresetProps = Omit<MascotStateProps, "mood">;
1011
1107
  /** It failed: what went wrong and what to do. */
1012
- declare const ErrorState: (props: PresetProps) => React.JSX.Element;
1108
+ declare const ErrorState: (props: PresetProps) => React$1.JSX.Element;
1013
1109
  /** It is done: a payment, a verification, a delivery. */
1014
- declare const SuccessState: (props: PresetProps) => React.JSX.Element;
1110
+ declare const SuccessState: (props: PresetProps) => React$1.JSX.Element;
1015
1111
  /** A long task runs: what runs, beside the bird. */
1016
- declare const LoadingState: (props: PresetProps) => React.JSX.Element;
1112
+ declare const LoadingState: (props: PresetProps) => React$1.JSX.Element;
1017
1113
  /** A first screen, an onboarding step. */
1018
- declare const WelcomeState: (props: PresetProps) => React.JSX.Element;
1114
+ declare const WelcomeState: (props: PresetProps) => React$1.JSX.Element;
1019
1115
 
1020
1116
  interface MascotProps {
1021
1117
  /** Which bird of the flock: `falcon` (watch), `owl` (reading), `duck` (building), `flamingo` (answers), `pigeon` (delivery), `lovebird` (introductions), `crane` (listening). */
@@ -1039,6 +1135,36 @@ interface MascotProps {
1039
1135
  */
1040
1136
  declare function Mascot({ bird, mood, tone, size, animated, title, style }: MascotProps): React__default.JSX.Element;
1041
1137
 
1138
+ type MatchDialogProps = {
1139
+ /** Shown (controlled). */
1140
+ open: boolean;
1141
+ /** Called when it closes. */
1142
+ onOpenChange: (open: boolean) => void;
1143
+ /** The headline (“It's a match!”) — passed translated, announced. */
1144
+ title: string;
1145
+ /** A line under it (“You and Elena liked each other”). */
1146
+ description?: string;
1147
+ /** The two people: their avatar URIs and names. */
1148
+ people: readonly [{
1149
+ src?: string | null;
1150
+ name: string;
1151
+ }, {
1152
+ src?: string | null;
1153
+ name: string;
1154
+ }];
1155
+ /** The main action (“Send a message”). */
1156
+ primaryLabel: string;
1157
+ /** What it does. */
1158
+ onPrimary: () => void;
1159
+ /** The way back (“Keep swiping”). */
1160
+ secondaryLabel: string;
1161
+ };
1162
+ /**
1163
+ * The moment two people choose each other — a match, a pair, a deal: full screen in the brand gradient, the two avatars
1164
+ * meeting at a heart, a success tick, the next step. Under reduced motion they are simply there.
1165
+ */
1166
+ declare function MatchDialog({ open, onOpenChange, title, description, people, primaryLabel, onPrimary, secondaryLabel }: MatchDialogProps): React$1.JSX.Element;
1167
+
1042
1168
  type MeterPart = {
1043
1169
  /** Its name (“To the creator”) — passed translated. */
1044
1170
  label: string;
@@ -1074,12 +1200,12 @@ type MeterProps = {
1074
1200
  /** Shows the label and the value above the bar. */
1075
1201
  showLabel?: boolean;
1076
1202
  /** A ring's centre: the value, a word. */
1077
- children?: React.ReactNode;
1203
+ children?: React$1.ReactNode;
1078
1204
  /** Styles merged last. */
1079
1205
  style?: StyleProp<ViewStyle>;
1080
1206
  };
1081
1207
  /** A measure within a range — a quota, a balance, a share — toned by thresholds or split into parts: the web `Meter`. */
1082
- declare function Meter({ label, value, min, max, valueText, thresholds, optimum, parts, variant, size, showLabel, children, style }: MeterProps): React.JSX.Element;
1208
+ declare function Meter({ label, value, min, max, valueText, thresholds, optimum, parts, variant, size, showLabel, children, style }: MeterProps): React$1.JSX.Element;
1083
1209
 
1084
1210
  type NumberTickerProps = {
1085
1211
  /** The value to show. */
@@ -1105,11 +1231,11 @@ type NumberTickerProps = {
1105
1231
  * A figure that climbs to its value — the web `NumberTicker`: tabular digits (no jitter), the final value for screen
1106
1232
  * readers from the first frame, still under reduced motion.
1107
1233
  */
1108
- declare function NumberTicker({ value, locale, format, trigger, duration, announce, variant, tone, style }: NumberTickerProps): React.JSX.Element;
1234
+ declare function NumberTicker({ value, locale, format, trigger, duration, announce, variant, tone, style }: NumberTickerProps): React$1.JSX.Element;
1109
1235
 
1110
1236
  type OnboardingSlide = {
1111
1237
  /** The picture: a `Mascot`, an illustration, a product mark (decorative). */
1112
- visual?: React.ReactNode;
1238
+ visual?: React$1.ReactNode;
1113
1239
  /** The promise, in a few words — passed translated. */
1114
1240
  title: string;
1115
1241
  /** One or two sentences. */
@@ -1138,7 +1264,7 @@ type OnboardingProps = {
1138
1264
  * A first launch in a few slides: swipe or tap Next, Skip at any time, dots that say where you are, the safe areas
1139
1265
  * kept. Each slide is announced with its position; the buttons do everything a swipe does.
1140
1266
  */
1141
- declare function Onboarding({ slides, labels, onDone, style }: OnboardingProps): React.JSX.Element;
1267
+ declare function Onboarding({ slides, labels, onDone, style }: OnboardingProps): React$1.JSX.Element;
1142
1268
 
1143
1269
  /**
1144
1270
  * The Orazaka mark for React Native — the geometry of the web mark (marks/orazaka-geometry.ts): the three shards turn
@@ -1179,7 +1305,7 @@ type OtpInputProps = {
1179
1305
  * A one-time code in boxes — one real input underneath, so the keyboard's suggestion of the code from a message
1180
1306
  * (iOS `oneTimeCode`, Android `sms-otp`) and pasting fill every box at once; the caret shows in the next empty box.
1181
1307
  */
1182
- declare function OtpInput({ label, length, value, onValueChange, onComplete, mode, invalid, disabled, autoFocus, style }: OtpInputProps): React.JSX.Element;
1308
+ declare function OtpInput({ label, length, value, onValueChange, onComplete, mode, invalid, disabled, autoFocus, style }: OtpInputProps): React$1.JSX.Element;
1183
1309
 
1184
1310
  type PaginationLabels = {
1185
1311
  /** The previous-page button ("Previous page"). */
@@ -1217,7 +1343,7 @@ type PaginationProps = {
1217
1343
  * Previous / next with where the list stands ("Page 3 of 12"), or the two buttons of a cursor — the web
1218
1344
  * `Pagination` folded, the form a phone's thumb reaches. On a feed, prefer loading more at the end of the list.
1219
1345
  */
1220
- declare function Pagination({ page, pageCount, onPageChange, hasPrevious, hasNext, onPrevious, onNext, status, disabled, labels, style }: PaginationProps): React.JSX.Element;
1346
+ declare function Pagination({ page, pageCount, onPageChange, hasPrevious, hasNext, onPrevious, onNext, status, disabled, labels, style }: PaginationProps): React$1.JSX.Element;
1221
1347
 
1222
1348
  type PermissionStatus = "undetermined" | "granted" | "denied" | "blocked";
1223
1349
  type PermissionPromptProps = {
@@ -1244,7 +1370,7 @@ type PermissionPromptProps = {
1244
1370
  /** The bird above (decorative): the falcon watches (camera), the pigeon delivers (notifications). Default falcon. */
1245
1371
  mascot?: MascotProps["bird"];
1246
1372
  /** Rendered once granted: the camera, the screen. Absent: nothing. */
1247
- children?: React.ReactNode;
1373
+ children?: React$1.ReactNode;
1248
1374
  /** Styles merged last. */
1249
1375
  style?: StyleProp<ViewStyle>;
1250
1376
  };
@@ -1252,7 +1378,7 @@ type PermissionPromptProps = {
1252
1378
  * Before the system's permission dialog, the app says why: a bird, what it is for, the button that asks — and, once the
1253
1379
  * system will not ask again, the way to the settings. Once granted, its children (the camera, the feature) show.
1254
1380
  */
1255
- declare function PermissionPrompt({ status, title, description, allowLabel, onAllow, settingsLabel, onOpenSettings, blockedDescription, dismissLabel, onDismiss, mascot, children, style, }: PermissionPromptProps): React.JSX.Element;
1381
+ declare function PermissionPrompt({ status, title, description, allowLabel, onAllow, settingsLabel, onOpenSettings, blockedDescription, dismissLabel, onDismiss, mascot, children, style, }: PermissionPromptProps): React$1.JSX.Element;
1256
1382
 
1257
1383
  interface PhoenixProps {
1258
1384
  /** `own` (default): the violet wing and the gold wing of the Krizaka story. `brand`: the theme's accent and accent-2. */
@@ -1269,6 +1395,58 @@ interface PhoenixProps {
1269
1395
  /** The phoenix of the Krizaka story — the comeback — for React Native: the web `Phoenix`'s geometry. */
1270
1396
  declare function Phoenix({ tone, size, animated, title, style }: PhoenixProps): React__default.JSX.Element;
1271
1397
 
1398
+ /** A photo of the grid. */
1399
+ type GridPhoto = {
1400
+ /** A stable id. */
1401
+ id: string;
1402
+ /** Its URI. */
1403
+ uri: string;
1404
+ /** What it shows — its accessible name. */
1405
+ alt?: string;
1406
+ };
1407
+ type PhotoGridLabels = {
1408
+ /** An empty slot's button (“Add a photo”). */
1409
+ add: string;
1410
+ /** The first photo's badge (“Main”). */
1411
+ main: string;
1412
+ /** A photo's menu title: `(n) => "Photo " + n`. */
1413
+ photo: (position: number) => string;
1414
+ /** Make it the main photo. */
1415
+ makeMain: string;
1416
+ /** Move it one place earlier. */
1417
+ moveEarlier: string;
1418
+ /** Move it one place later. */
1419
+ moveLater: string;
1420
+ /** Remove it. */
1421
+ remove: string;
1422
+ /** Cancel. */
1423
+ cancel: string;
1424
+ };
1425
+ type PhotoGridProps = {
1426
+ /** The photos, in order: the first is the main one. */
1427
+ value: readonly GridPhoto[];
1428
+ /** Called with the new order, or without a removed photo. */
1429
+ onValueChange: (photos: GridPhoto[]) => void;
1430
+ /** Called by an empty slot: open the `MediaPicker`, the camera or the editor, then add what comes back. */
1431
+ onAdd?: () => void;
1432
+ /** How many slots. Default 6. */
1433
+ slots?: number;
1434
+ /** Fewest photos required: the empty slots up to it are marked. Default 1. */
1435
+ required?: number;
1436
+ /** Columns. Default 3. */
1437
+ columns?: number;
1438
+ /** The words, passed translated. */
1439
+ labels: PhotoGridLabels;
1440
+ /** Styles merged last. */
1441
+ style?: StyleProp<ViewStyle>;
1442
+ };
1443
+ /**
1444
+ * A profile's photos in a grid of slots — the first one is the main photo, empty slots invite to add. A long press (or
1445
+ * a tap) opens a photo's menu: make it the main one, move it earlier or later, remove it; every move is a tick, and
1446
+ * screen readers get the same actions on each photo.
1447
+ */
1448
+ declare function PhotoGrid({ value, onValueChange, onAdd, slots, required, columns, labels, style }: PhotoGridProps): React$1.JSX.Element;
1449
+
1272
1450
  /** The mark of a Krizaka brand by id, for React Native — the counterpart of the web `ProductLogo`. */
1273
1451
  declare function ProductMark({ id, ...props }: NativeMarkProps & {
1274
1452
  id: BrandId;
@@ -1286,7 +1464,7 @@ interface ProfileStat {
1286
1464
  }
1287
1465
  type ProfileCardProps = Omit<ViewProps, "children"> & {
1288
1466
  /** The portrait: an `Avatar`, an image, a mark. Decorative — the name carries the meaning. */
1289
- visual: React.ReactNode;
1467
+ visual: React$1.ReactNode;
1290
1468
  /** The name (the card's heading). */
1291
1469
  name: string;
1292
1470
  /** The headline gauge's label (“Profile complete”); without it, no headline gauge. */
@@ -1300,12 +1478,12 @@ type ProfileCardProps = Omit<ViewProps, "children"> & {
1300
1478
  /** One line under the gauges. */
1301
1479
  caption?: string;
1302
1480
  /** Under everything: actions (a `Button`), chips. */
1303
- children?: React.ReactNode;
1481
+ children?: React$1.ReactNode;
1304
1482
  /** The gauges fill once on mount; still when the system reduces motion. */
1305
1483
  animated?: boolean;
1306
1484
  };
1307
1485
  /** A profile at a glance for React Native: portrait, name, a headline gauge, stats in words, a line, actions. */
1308
- declare function ProfileCard({ visual, name, statLabel, value, valueText, stats, caption, children, animated, style, ...props }: ProfileCardProps): React.JSX.Element;
1486
+ declare function ProfileCard({ visual, name, statLabel, value, valueText, stats, caption, children, animated, style, ...props }: ProfileCardProps): React$1.JSX.Element;
1309
1487
 
1310
1488
  type ProgressProps = {
1311
1489
  /** `bar` (default) or `ring`. */
@@ -1321,7 +1499,7 @@ type ProgressProps = {
1321
1499
  /** The value in words for screen readers ("$420 of $1,000") — default: the percentage. */
1322
1500
  valueText?: string;
1323
1501
  /** A ring's centre: an amount, a percentage, an icon. */
1324
- children?: React.ReactNode;
1502
+ children?: React$1.ReactNode;
1325
1503
  /** Styles merged last. */
1326
1504
  style?: StyleProp<ViewStyle>;
1327
1505
  };
@@ -1329,7 +1507,7 @@ type ProgressProps = {
1329
1507
  * A progress bar or ring in the accent gradient (`accent` → `accent2`): it moves to `value` / `max` when it changes,
1330
1508
  * indeterminate without a value. Still under reduced motion. A `progressbar` with its value for screen readers.
1331
1509
  */
1332
- declare function Progress({ variant, size, value, max, label, valueText, children, style }: ProgressProps): React.JSX.Element;
1510
+ declare function Progress({ variant, size, value, max, label, valueText, children, style }: ProgressProps): React$1.JSX.Element;
1333
1511
 
1334
1512
  type PullToRefreshProps = Omit<RefreshControlProps, "colors" | "tintColor" | "progressBackgroundColor" | "titleColor" | "title"> & {
1335
1513
  /** The words of the pull (“Pull to refresh”) — passed translated; shown on iOS under the spinner. */
@@ -1339,7 +1517,34 @@ type PullToRefreshProps = Omit<RefreshControlProps, "colors" | "tintColor" | "pr
1339
1517
  * The platform's pull to refresh in the theme's accent: the `refreshControl` of a ScrollView or a FlatList. `List`
1340
1518
  * draws it already with `onRefresh`.
1341
1519
  */
1342
- declare function PullToRefresh({ label, ...props }: PullToRefreshProps): React.JSX.Element;
1520
+ declare function PullToRefresh({ label, ...props }: PullToRefreshProps): React$1.JSX.Element;
1521
+ /** What `BrandedRefresh` hands to the scrollable: spread it on a `ScrollView` / `FlatList` (`{...scroll}`). */
1522
+ type BrandedRefreshScrollProps = {
1523
+ refreshControl: React$1.ReactElement<RefreshControlProps>;
1524
+ onScroll: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
1525
+ scrollEventThrottle: number;
1526
+ };
1527
+ type BrandedRefreshProps = {
1528
+ /** The product whose mark is drawn as the person pulls and turns while it refreshes. */
1529
+ product: BrandId;
1530
+ /** Whether the data is refreshing: keep it true until the new data is there. */
1531
+ refreshing: boolean;
1532
+ /** Called when the person pulls past the threshold. */
1533
+ onRefresh: () => void;
1534
+ /** The words announced when the refresh starts (“Refreshing your videos”) — passed translated. */
1535
+ label: string;
1536
+ /** The scrollable, given the props to spread: `{(scroll) => <ScrollView {...scroll}>…</ScrollView>}`. */
1537
+ children: (scroll: BrandedRefreshScrollProps) => React$1.ReactElement;
1538
+ /** The pull (in points) at which the mark is complete. Default 72. */
1539
+ threshold?: number;
1540
+ };
1541
+ /**
1542
+ * The product's mark as the pull-to-refresh: it grows and turns into place as the person pulls (iOS, where the content
1543
+ * overscrolls) and keeps its own motion while it refreshes (iOS and Android). The platform's control still does the
1544
+ * gesture, so the system announces it too; ours announces `label` when the refresh starts. Under reduced motion the mark
1545
+ * is still and appears without the growing.
1546
+ */
1547
+ declare function BrandedRefresh({ product, refreshing, onRefresh, label, children, threshold }: BrandedRefreshProps): React$1.JSX.Element;
1343
1548
 
1344
1549
  /** A choice: the value stored and its words (passed translated), a line under them, a second line on a key. */
1345
1550
  type RadioOption = {
@@ -1377,7 +1582,31 @@ type RadioGroupProps = {
1377
1582
  * One choice among a few, all visible — the web `RadioGroup` in its four looks. A radio group for VoiceOver and
1378
1583
  * TalkBack; each press plays a haptic (`selection`, `impact` for a tactile key) when the app passes `haptics`.
1379
1584
  */
1380
- declare function RadioGroup({ label, options, value: valueProp, defaultValue, onValueChange, variant, error, disabled, style }: RadioGroupProps): React.JSX.Element;
1585
+ declare function RadioGroup({ label, options, value: valueProp, defaultValue, onValueChange, variant, error, disabled, style }: RadioGroupProps): React$1.JSX.Element;
1586
+
1587
+ type ScreenProps = {
1588
+ /** At the top: a `Header`, a `StepProgress` (they keep clear of the status bar themselves). */
1589
+ header?: React$1.ReactNode;
1590
+ /** At the bottom: a `TabBar`, a `MessageComposer`, a main `Button` (they keep clear of the home indicator). */
1591
+ footer?: React$1.ReactNode;
1592
+ /** The content. */
1593
+ children: React$1.ReactNode;
1594
+ /** The content scrolls (default) — or not, for a list that scrolls itself (`List`, `FlatList`). */
1595
+ scroll?: boolean;
1596
+ /** The content rises with the keyboard (a form, a chat). Default true. */
1597
+ keyboard?: boolean;
1598
+ /** Padding around the content. Default 16. */
1599
+ padding?: number;
1600
+ /** The surface: `surface0` (default) or `surface1`. */
1601
+ surface?: "surface0" | "surface1";
1602
+ /** Styles of the content. */
1603
+ contentStyle?: StyleProp<ViewStyle>;
1604
+ };
1605
+ /**
1606
+ * A screen of the app: a header, the content (scrolling, rising with the keyboard), a footer — on the theme's surface,
1607
+ * clear of the safe areas through its parts. The base of the templates: app shell, sign-in, profile, feed, chat, settings.
1608
+ */
1609
+ declare function Screen({ header, footer, children, scroll, keyboard, padding, surface, contentStyle }: ScreenProps): React$1.JSX.Element;
1381
1610
 
1382
1611
  type SearchFieldProps = Omit<TextInputProps, "value" | "defaultValue" | "onChangeText" | "style" | "onSubmitEditing"> & {
1383
1612
  /** The accessible name of the input ("Search videos"), passed translated. */
@@ -1407,7 +1636,7 @@ type SearchFieldProps = Omit<TextInputProps, "value" | "defaultValue" | "onChang
1407
1636
  * A search box: the glyph, the input with the keyboard's search key, a clear button, and a debounced `onSearch` —
1408
1637
  * the web `SearchField` without the shortcut and the suggestions (a screen of results is the native idiom).
1409
1638
  */
1410
- declare function SearchField({ label, value, defaultValue, onValueChange, onSearch, debounce, onSubmit, clearLabel, cancelLabel, onCancel, style, placeholder, onFocus, onBlur, ...props }: SearchFieldProps): React.JSX.Element;
1639
+ declare function SearchField({ label, value, defaultValue, onValueChange, onSearch, debounce, onSubmit, clearLabel, cancelLabel, onCancel, style, placeholder, onFocus, onBlur, ...props }: SearchFieldProps): React$1.JSX.Element;
1411
1640
 
1412
1641
  type SegmentedOption<T extends string> = {
1413
1642
  value: T;
@@ -1432,7 +1661,7 @@ type SegmentedProps<T extends string> = {
1432
1661
  * Switches between views of one screen: equal segments on a track, the chosen one raised — the web
1433
1662
  * `Tabs variant="segmented"`. A tab list for screen readers. To filter a list, use `Chip.Group`.
1434
1663
  */
1435
- declare function Segmented<T extends string>({ options, value, onValueChange, size, "aria-label": label, style }: SegmentedProps<T>): React.JSX.Element;
1664
+ declare function Segmented<T extends string>({ options, value, onValueChange, size, "aria-label": label, style }: SegmentedProps<T>): React$1.JSX.Element;
1436
1665
 
1437
1666
  type SkeletonProps = {
1438
1667
  /** `text` (a line), `circle` (an avatar), `rect` (a media, a card). */
@@ -1447,7 +1676,7 @@ type SkeletonProps = {
1447
1676
  testID?: string;
1448
1677
  };
1449
1678
  /** A pulsing placeholder the size of what is loading — hidden from screen readers; still when the system reduces motion. */
1450
- declare function Skeleton({ shape, width, height, style, testID }: SkeletonProps): React.JSX.Element;
1679
+ declare function Skeleton({ shape, width, height, style, testID }: SkeletonProps): React$1.JSX.Element;
1451
1680
 
1452
1681
  type SliderValue = number | [number, number];
1453
1682
  type SliderProps<V extends SliderValue = number> = {
@@ -1496,7 +1725,7 @@ type SliderProps<V extends SliderValue = number> = {
1496
1725
  * Each step the thumb passes ticks under the thumb (`selection` haptic); for VoiceOver and TalkBack each thumb is an
1497
1726
  * adjustable control (swipe up or down by a step), its value read as words.
1498
1727
  */
1499
- declare function Slider<V extends SliderValue = number>({ label, thumbLabels, value, defaultValue, onValueChange, onValueCommit, min, max, step, formatValue, showLabel, floatingValue, ticks, marks, tone, orientation, disabled, style, }: SliderProps<V>): React.JSX.Element;
1728
+ declare function Slider<V extends SliderValue = number>({ label, thumbLabels, value, defaultValue, onValueChange, onValueCommit, min, max, step, formatValue, showLabel, floatingValue, ticks, marks, tone, orientation, disabled, style, }: SliderProps<V>): React$1.JSX.Element;
1500
1729
 
1501
1730
  type SpinnerProps = Omit<ActivityIndicatorProps, "size" | "color"> & {
1502
1731
  /** The accessible name of the wait, e.g. "Loading" — passed translated. */
@@ -1505,7 +1734,57 @@ type SpinnerProps = Omit<ActivityIndicatorProps, "size" | "color"> & {
1505
1734
  size?: "sm" | "md" | "lg";
1506
1735
  };
1507
1736
  /** An indeterminate wait: the platform's activity indicator in the accent, named by `label`. */
1508
- declare function Spinner({ label, size, ...props }: SpinnerProps): React.JSX.Element;
1737
+ declare function Spinner({ label, size, ...props }: SpinnerProps): React$1.JSX.Element;
1738
+
1739
+ type SplashHandoffProps = {
1740
+ /** The product whose animated mark holds the screen. */
1741
+ product: BrandId;
1742
+ /** `true` once the first screen is ready to show: the splash dissolves into it. */
1743
+ ready: boolean;
1744
+ /**
1745
+ * Called once the splash is on screen and painted — hide the native splash here
1746
+ * (`SplashScreen.hideAsync()` of expo-splash-screen), so the static image dissolves into this one with no flash.
1747
+ */
1748
+ onShown?: () => void;
1749
+ /** Called when the dissolve is over and the splash has left. */
1750
+ onDone?: () => void;
1751
+ /** The mark's side, in points. Default 96 — the size of the native splash icon, so nothing jumps. */
1752
+ size?: number;
1753
+ /** The background. Default: the theme's page colour, the one `app.json` gives the native splash. */
1754
+ background?: string;
1755
+ /** The words a screen reader hears while it waits (“Orochia is opening”) — passed translated. */
1756
+ label: string;
1757
+ /** The dissolve, in milliseconds. Default 320; none under reduced motion. */
1758
+ duration?: number;
1759
+ /** Styles merged last. */
1760
+ style?: StyleProp<ViewStyle>;
1761
+ };
1762
+ /**
1763
+ * The splash hand-off: the app's first frame is the static native splash; this puts the product's animated mark at the
1764
+ * same place and size over the same background, then dissolves it away once `ready`. Render it above the app's root
1765
+ * (absolute, full screen) and unmount nothing yourself: it removes its own content when the dissolve ends. Reduced
1766
+ * motion: the mark stands still and the splash leaves without fading.
1767
+ */
1768
+ declare function SplashHandoff({ product, ready, onShown, onDone, size, background, label, duration, style }: SplashHandoffProps): React$1.JSX.Element | null;
1769
+
1770
+ type StepProgressProps = {
1771
+ /** The current step, from 1. */
1772
+ step: number;
1773
+ /** How many steps. */
1774
+ total: number;
1775
+ /** The position in words: `(n, total) => "Step " + n + " of " + total` — passed translated. */
1776
+ label: (step: number, total: number) => string;
1777
+ /** The back button's words (“Back”); with `onBack` it shows. */
1778
+ backLabel?: string;
1779
+ /** Goes back a step. */
1780
+ onBack?: () => void;
1781
+ /** At the right: a Skip button. */
1782
+ trailing?: React.ReactNode;
1783
+ /** Styles merged last. */
1784
+ style?: StyleProp<ViewStyle>;
1785
+ };
1786
+ /** The head of a multi-step flow (a sign-up, a profile to fill): back, segments that fill, the position in words. */
1787
+ declare function StepProgress({ step, total, label, backLabel, onBack, trailing, style }: StepProgressProps): React$1.JSX.Element;
1509
1788
 
1510
1789
  type StepStatus = "done" | "current" | "upcoming" | "error";
1511
1790
  type Step = {
@@ -1518,7 +1797,7 @@ type Step = {
1518
1797
  /** Between 0 and 1 for the current step: its glyph grows to it. */
1519
1798
  value?: number;
1520
1799
  /** Anything under the step while it is current or failed: a progress bar, an action. */
1521
- content?: React.ReactNode;
1800
+ content?: React$1.ReactNode;
1522
1801
  };
1523
1802
  type StepperProps = {
1524
1803
  /** The steps, in order. */
@@ -1535,7 +1814,70 @@ type StepperProps = {
1535
1814
  style?: StyleProp<ViewStyle>;
1536
1815
  };
1537
1816
  /** The steps of a process, where it stands — the web `Stepper`: done steps checked, the current one tracing, a failure crossed. */
1538
- declare function Stepper({ steps, current, orientation, statusLabels, "aria-label": label, style }: StepperProps): React.JSX.Element;
1817
+ declare function Stepper({ steps, current, orientation, statusLabels, "aria-label": label, style }: StepperProps): React$1.JSX.Element;
1818
+
1819
+ type PersonCardProps = {
1820
+ /** The person's photos (URIs), the first shown first; tap the left or right side to move between them. */
1821
+ photos: readonly {
1822
+ uri: string;
1823
+ alt?: string;
1824
+ }[];
1825
+ /** The name. */
1826
+ name: string;
1827
+ /** The age, written after the name. */
1828
+ age?: number;
1829
+ /** Beside the name: a `VerifiedBadge`. */
1830
+ badge?: React$1.ReactNode;
1831
+ /** A line under the name: a `DistanceChip`, a job. */
1832
+ meta?: React$1.ReactNode;
1833
+ /** A sentence about the person. */
1834
+ bio?: string;
1835
+ /** At the bottom: the interests as chips. */
1836
+ footer?: React$1.ReactNode;
1837
+ /** The photo position, read: `(n, total) => "Photo " + n + " of " + total`. */
1838
+ photoLabel?: (position: number, total: number) => string;
1839
+ /** Styles merged last. */
1840
+ style?: StyleProp<ViewStyle>;
1841
+ };
1842
+ /** A person on a card: the photos full bleed (tap a side to change), the name and age over a scrim, a line, a bio, chips. */
1843
+ declare function PersonCard({ photos, name, age, badge, meta, bio, footer, photoLabel, style }: PersonCardProps): React$1.JSX.Element;
1844
+ type SwipeDirection = "like" | "pass";
1845
+ type SwipeDeckLabels = {
1846
+ /** The like button and action (“Like”). */
1847
+ like: string;
1848
+ /** The pass button and action (“Pass”). */
1849
+ pass: string;
1850
+ /** The stamp shown while dragging right (“LIKE”). */
1851
+ likeStamp?: string;
1852
+ /** The stamp shown while dragging left (“NOPE”). */
1853
+ passStamp?: string;
1854
+ /** Announced when the deck is empty. */
1855
+ empty?: string;
1856
+ };
1857
+ type SwipeDeckProps<T> = {
1858
+ /** The cards still to decide, the first on top. */
1859
+ items: readonly T[];
1860
+ /** A card's id. */
1861
+ getId: (item: T) => string;
1862
+ /** A card (usually a `PersonCard`). */
1863
+ renderCard: (item: T) => React$1.ReactNode;
1864
+ /** Called with the card decided and the decision; remove it from `items`. */
1865
+ onSwipe: (item: T, direction: SwipeDirection) => void;
1866
+ /** Shown when there is no card left (an `EmptyState`). */
1867
+ empty?: React$1.ReactNode;
1868
+ /** The words, passed translated. */
1869
+ labels: SwipeDeckLabels;
1870
+ /** Hide the like and pass buttons (the app draws its own). */
1871
+ hideButtons?: boolean;
1872
+ /** Styles merged last. */
1873
+ style?: StyleProp<ViewStyle>;
1874
+ };
1875
+ /**
1876
+ * A deck of cards to decide one by one: drag the top card right to like, left to pass (it tilts, a stamp says what it
1877
+ * will do, past a third of the screen it flies off), or press the buttons; a tick marks the decision. Screen readers
1878
+ * get “Like” and “Pass” as actions of the card. Under reduced motion the card leaves without flying.
1879
+ */
1880
+ declare function SwipeDeck<T>({ items, getId, renderCard, onSwipe, empty, labels, hideButtons, style }: SwipeDeckProps<T>): React$1.JSX.Element;
1539
1881
 
1540
1882
  type SwipeAction = {
1541
1883
  /** The action's words — passed translated; also its accessibility action. */
@@ -1545,11 +1887,11 @@ type SwipeAction = {
1545
1887
  /** The tone: `danger` (delete), `accent` (pin, reply), `neutral` (archive, mute). Default `neutral`. */
1546
1888
  tone?: "neutral" | "accent" | "success" | "warning" | "danger";
1547
1889
  /** A decorative icon above the words. */
1548
- icon?: React.ReactNode;
1890
+ icon?: React$1.ReactNode;
1549
1891
  };
1550
1892
  type SwipeableRowProps = {
1551
1893
  /** The row's content (a `ListItem`). */
1552
- children: React.ReactNode;
1894
+ children: React$1.ReactNode;
1553
1895
  /** Revealed by a swipe to the left, at the right edge (the first is the outermost). */
1554
1896
  trailing?: readonly SwipeAction[];
1555
1897
  /** Revealed by a swipe to the right, at the left edge. */
@@ -1573,7 +1915,7 @@ type SwipeableRowProps = {
1573
1915
  * a full swipe runs the outermost one, a tick marks the threshold. Screen readers get the same actions from the
1574
1916
  * rotor (accessibility actions): nothing is reachable only by a gesture.
1575
1917
  */
1576
- declare function SwipeableRow({ children, trailing, leading, fullSwipe, actionWidth, onActivate, testID, style }: SwipeableRowProps): React.JSX.Element;
1918
+ declare function SwipeableRow({ children, trailing, leading, fullSwipe, actionWidth, onActivate, testID, style }: SwipeableRowProps): React$1.JSX.Element;
1577
1919
 
1578
1920
  type SwitchProps = {
1579
1921
  /** The accessible name ("Push notifications"), passed translated — also the visible words when `children` is not given and `showLabel` is set. */
@@ -1602,7 +1944,7 @@ type SwitchProps = {
1602
1944
  * not the system's: the same look on iOS and Android, a `selection` haptic when it flips. `showLabel` makes it a
1603
1945
  * settings row (the label and its description beside it, all pressable).
1604
1946
  */
1605
- declare function Switch({ label, checked, defaultChecked, onCheckedChange, description, showLabel, size, error, disabled, style }: SwitchProps): React.JSX.Element;
1947
+ declare function Switch({ label, checked, defaultChecked, onCheckedChange, description, showLabel, size, error, disabled, style }: SwitchProps): React$1.JSX.Element;
1606
1948
 
1607
1949
  type TabBarItem<T extends string> = {
1608
1950
  /** The section's key (the route name). */
@@ -1610,7 +1952,7 @@ type TabBarItem<T extends string> = {
1610
1952
  /** Its name under the icon — passed translated. */
1611
1953
  label: string;
1612
1954
  /** The icon: a function of the selected state and the colour (`(on, color) => <HomeIcon color={color} />`). */
1613
- icon: (selected: boolean, color: string) => React.ReactNode;
1955
+ icon: (selected: boolean, color: string) => React$1.ReactNode;
1614
1956
  /** A count on the icon (`99+` past 99); `true` for a dot without a number. */
1615
1957
  badge?: number | boolean;
1616
1958
  /** The badge in words for screen readers (“3 unread”) — passed translated. */
@@ -1635,7 +1977,7 @@ type TabBarProps<T extends string> = {
1635
1977
  * badge for what is new; clear of the home indicator (the safe area), a tick on change, a second press to go back to
1636
1978
  * the top. Plug it in expo-router's or React Navigation's `tabBar`.
1637
1979
  */
1638
- declare function TabBar<T extends string>({ items, value, onValueChange, onReselect, "aria-label": label, style }: TabBarProps<T>): React.JSX.Element;
1980
+ declare function TabBar<T extends string>({ items, value, onValueChange, onReselect, "aria-label": label, style }: TabBarProps<T>): React$1.JSX.Element;
1639
1981
 
1640
1982
  type TabItem<T extends string> = {
1641
1983
  /** The tab's key. */
@@ -1645,7 +1987,7 @@ type TabItem<T extends string> = {
1645
1987
  /** A count after the words (unread, results). */
1646
1988
  count?: number;
1647
1989
  /** The panel shown while it is selected. */
1648
- content?: React.ReactNode;
1990
+ content?: React$1.ReactNode;
1649
1991
  /** Cannot be selected. */
1650
1992
  disabled?: boolean;
1651
1993
  };
@@ -1669,7 +2011,30 @@ type TabsProps<T extends string> = {
1669
2011
  * Sections of one screen — the web `Tabs`: a tab list (underlined, scrolling sideways when long, or segmented) and the
1670
2012
  * selected panel under it. For the app's main sections, use `TabBar`.
1671
2013
  */
1672
- declare function Tabs<T extends string>({ items, value, defaultValue, onValueChange, "aria-label": label, variant, style }: TabsProps<T>): React.JSX.Element;
2014
+ declare function Tabs<T extends string>({ items, value, defaultValue, onValueChange, "aria-label": label, variant, style }: TabsProps<T>): React$1.JSX.Element;
2015
+
2016
+ type TagOption = {
2017
+ value: string;
2018
+ label: string;
2019
+ };
2020
+ type TagSelectorProps = {
2021
+ /** The group's name (“Interests”) — passed translated. */
2022
+ label: string;
2023
+ /** The tags offered. */
2024
+ options: readonly TagOption[];
2025
+ /** The tags chosen. */
2026
+ value: readonly string[];
2027
+ /** Called with the tags chosen. */
2028
+ onValueChange: (value: string[]) => void;
2029
+ /** The most that can be chosen; the others turn off once reached. */
2030
+ max?: number;
2031
+ /** The count under the tags: `(n, max) => n + " of " + max`. */
2032
+ countLabel?: (count: number, max: number) => string;
2033
+ /** Styles merged last. */
2034
+ style?: StyleProp<ViewStyle>;
2035
+ };
2036
+ /** Interests, languages, what one is looking for: toggle chips with a limit and a count — the others rest once it is reached. */
2037
+ declare function TagSelector({ label, options, value, onValueChange, max, countLabel, style }: TagSelectorProps): React$1.JSX.Element;
1673
2038
 
1674
2039
  type ThemeName = "dark" | "light";
1675
2040
  /** The colour roles of one theme (the @krizaka/tokens roles). */
@@ -1788,7 +2153,7 @@ type ThemeContextValue = {
1788
2153
  insets: Insets;
1789
2154
  };
1790
2155
  type ThemeProviderProps = {
1791
- children: React.ReactNode;
2156
+ children: React$1.ReactNode;
1792
2157
  /** Controlled mode (with `onModeChange`). */
1793
2158
  mode?: Mode;
1794
2159
  /** Uncontrolled: the mode before the user picks one. Default: follow the system. */
@@ -1809,7 +2174,7 @@ type ThemeProviderProps = {
1809
2174
  insets?: Insets;
1810
2175
  };
1811
2176
  /** Once, at the root of the app. Without it, `useTheme()` follows the system with the platform's roles. */
1812
- declare function ThemeProvider({ children, mode: controlled, defaultMode, onModeChange, overrides, fonts, haptics, insets }: ThemeProviderProps): React.JSX.Element;
2177
+ declare function ThemeProvider({ children, mode: controlled, defaultMode, onModeChange, overrides, fonts, haptics, insets }: ThemeProviderProps): React$1.JSX.Element;
1813
2178
  /** The current theme: `{ mode, setMode, scheme, theme, radius, motion, fonts }`. */
1814
2179
  declare function useTheme(): ThemeContextValue;
1815
2180
  /** True while the system asks to reduce motion: every loop and transition of /native stops. */
@@ -1824,7 +2189,7 @@ type ToastOptions = {
1824
2189
  description?: string;
1825
2190
  tone?: ToastTone;
1826
2191
  /** A decorative icon before the text. */
1827
- icon?: React.ReactNode;
2192
+ icon?: React$1.ReactNode;
1828
2193
  /** Milliseconds on screen; `Infinity` keeps it until dismissed. Default: the Toaster's `duration`. */
1829
2194
  duration?: number;
1830
2195
  /** Pressing the toast (opening what it is about); it is then dismissed. */
@@ -1864,7 +2229,20 @@ type ToasterProps = {
1864
2229
  max?: number;
1865
2230
  };
1866
2231
  /** Mount once, at the root (inside `ThemeProvider`). Then call `toast()` from anywhere. */
1867
- declare function Toaster({ closeLabel, position, offset, duration, max }: ToasterProps): React.JSX.Element | null;
2232
+ declare function Toaster({ closeLabel, position, offset, duration, max }: ToasterProps): React$1.JSX.Element | null;
2233
+
2234
+ type VerifiedBadgeProps = {
2235
+ /** Its words, read (and shown with `showLabel`): “Verified” — passed translated. */
2236
+ label: string;
2237
+ /** Show the words beside the seal. Default false: the seal alone, named. */
2238
+ showLabel?: boolean;
2239
+ /** The seal's side, in points. Default 16. */
2240
+ size?: number;
2241
+ /** On a photo (white seal on the accent, a ring of the media): `media`. Default `surface`. */
2242
+ on?: "surface" | "media";
2243
+ };
2244
+ /** A seal that says the person or the account was verified (a selfie check, an ID) — the accent, named in words. */
2245
+ declare function VerifiedBadge({ label, showLabel, size, on }: VerifiedBadgeProps): React$1.JSX.Element;
1868
2246
 
1869
2247
  /** A value of a wheel: what is stored, and its words (passed translated or formatted for the locale). */
1870
2248
  type WheelOption = {
@@ -1876,7 +2254,7 @@ type WheelPickerProps = {
1876
2254
  /** The group's accessible name ("Departure time"), passed translated. */
1877
2255
  label: string;
1878
2256
  /** The wheels (`Wheel`), and dividers (`WheelDivider`) between them. */
1879
- children: React.ReactNode;
2257
+ children: React$1.ReactNode;
1880
2258
  /** How many values are visible: 3, 5 (default) or 7. */
1881
2259
  visible?: 3 | 5 | 7;
1882
2260
  /** Marks the group invalid (a danger edge). */
@@ -1887,11 +2265,11 @@ type WheelPickerProps = {
1887
2265
  style?: StyleProp<ViewStyle>;
1888
2266
  };
1889
2267
  /** The frame of one or several wheels: a raised surface, the lit band across them — the web `WheelPicker`. */
1890
- declare function WheelPicker({ label, children, visible, invalid, unset, style }: WheelPickerProps): React.JSX.Element;
2268
+ declare function WheelPicker({ label, children, visible, invalid, unset, style }: WheelPickerProps): React$1.JSX.Element;
1891
2269
  /** A divider between two wheels (`:` between the hours and the minutes). */
1892
2270
  declare function WheelDivider({ children }: {
1893
2271
  children: string;
1894
- }): React.JSX.Element;
2272
+ }): React$1.JSX.Element;
1895
2273
  type WheelProps = {
1896
2274
  /** The column's accessible name ("Hour", "Month"), passed translated. */
1897
2275
  label: string;
@@ -1912,7 +2290,7 @@ type WheelProps = {
1912
2290
  * One column of a `WheelPicker`: values that snap under the band, a tick of the hand (`selection` haptic) at each one
1913
2291
  * passed. For VoiceOver and TalkBack it is an adjustable control: swipe up or down to change it, its value read as words.
1914
2292
  */
1915
- declare function Wheel({ label, options, value: valueProp, defaultValue, onValueChange, disabled, style }: WheelProps): React.JSX.Element;
2293
+ declare function Wheel({ label, options, value: valueProp, defaultValue, onValueChange, disabled, style }: WheelProps): React$1.JSX.Element;
1916
2294
 
1917
2295
  /**
1918
2296
  * The Yazakia mark for React Native — the geometry of the web mark (marks/yazakia-geometry.ts): two voices, two
@@ -1928,4 +2306,4 @@ declare function YazakiaMark({ size, animated, title, neutral }: NativeMarkProps
1928
2306
  */
1929
2307
  declare function YororisMark({ size, animated, title, neutral }: NativeMarkProps): React__default.JSX.Element;
1930
2308
 
1931
- export { ActionSheet, type ActionSheetAction, type ActionSheetProps, type ActivityEvent, ActivityFeed, type ActivityFeedLabels, type ActivityFeedProps, type ActivityTone, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, AvatarRoot, type AvatarSize, Badge, type BadgeProps, type BadgeTone, type BrandId, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Calendar, type CalendarLabels, type CalendarProps, Card, CardBody, type CardBodyProps, CardDescription, CardFooter, CardImage, type CardImageProps, CardMedia, type CardMediaProps, CardOverlay, type CardOverlayProps, CardRoot, type CardRootProps, CardTitle, Checkbox, type CheckboxProps, Chip, type ChipGroupProps, type ChipProps, type ChipSize, Combobox, type ComboboxLabels, type ComboboxProps, Countdown, type CountdownProps, type CountdownUnits, DateField, type DateFieldLabels, type DateFieldProps, type DatePart, DateWheel, type DateWheelProps, DayStrip, type DayStripProps, type DescriptionItem, DescriptionList, type DescriptionListProps, EmptyState, type EmptyStateProps, ErrorState, Fab, type FabProps, GoalGauge, type GoalGaugeProps, type HapticKind, Header, type HeaderProps, IconButton, type IconButtonProps, ImageViewer, type ImageViewerProps, type Insets, KrizakaMark, Loader, LoaderGlyph, type LoaderGlyphProps, type LoaderProps, LoadingState, Mascot, type MascotProps, MascotState, type MascotStateProps, Meter, type MeterPart, type MeterProps, type Mode, MonthPicker, type MonthPickerProps, type Motion, type NativeMarkProps, NumberTicker, type NumberTickerProps, Onboarding, type OnboardingProps, type OnboardingSlide, OrazakaMark, OrochiaMark, OtpInput, type OtpInputProps, Pagination, type PaginationLabels, type PaginationProps, PermissionPrompt, type PermissionPromptProps, type PermissionStatus, Phoenix, type PhoenixProps, ProductMark, ProfileCard, type ProfileCardProps, type ProfileStat, Progress, type ProgressProps, PullToRefresh, type PullToRefreshProps, RadioGroup, type RadioGroupProps, type RadioOption, type Radius, SearchField, type SearchFieldProps, Segmented, type SegmentedOption, type SegmentedProps, Select, type SelectOption, type SelectProps, Sheet, type SheetProps, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderValue, Spinner, type SpinnerProps, type Step, type StepStatus, Stepper, type StepperProps, SuccessState, type SwipeAction, SwipeableRow, type SwipeableRowProps, Switch, type SwitchProps, TabBar, type TabBarItem, type TabBarProps, type TabItem, Tabs, type TabsProps, TextField, type TextFieldProps, type Theme, type ThemeContextValue, type ThemeFonts, type ThemeName, type ThemeOverrides, ThemeProvider, type ThemeProviderProps, TimePicker, type TimePickerLabels, type TimePickerProps, type TimeValue, type ToastItem, type ToastOptions, type ToastTone, Toaster, type ToasterProps, Txt, type TxtProps, type TxtTone, type TxtVariant, type ViewerImage, WelcomeState, Wheel, WheelDivider, type WheelOption, WheelPicker, type WheelPickerProps, type WheelProps, YazakiaMark, YororisMark, addDays, addMonths, ageOn, alpha, calendarLabels, comboboxLabels, composeDate, dateFieldLabels, datePartsOrder, daysInMonth, formatTime, isRealDate, latestBirthDate, monthNames, prefetchNeighbours, splitDuration, textStyles, timeSlots, timeToMinutes, toast, todayIso, useCollapsingHeader, useCountdown, useDelayedWait, useReducedMotion, useTheme, uses12Hours };
2309
+ export { ActionSheet, type ActionSheetAction, type ActionSheetProps, type ActivityEvent, ActivityFeed, type ActivityFeedLabels, type ActivityFeedProps, type ActivityTone, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, AvatarRoot, type AvatarSize, Badge, type BadgeProps, type BadgeTone, type BrandId, BrandedRefresh, type BrandedRefreshProps, type BrandedRefreshScrollProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Calendar, type CalendarLabels, type CalendarProps, Card, CardBody, type CardBodyProps, CardDescription, CardFooter, CardImage, type CardImageProps, CardMedia, type CardMediaProps, CardOverlay, type CardOverlayProps, CardRoot, type CardRootProps, CardTitle, Checkbox, type CheckboxProps, Chip, type ChipGroupProps, type ChipProps, type ChipSize, Combobox, type ComboboxLabels, type ComboboxProps, ConversationItem, type ConversationItemProps, Countdown, type CountdownProps, type CountdownUnits, DateField, type DateFieldLabels, type DateFieldProps, type DatePart, DateWheel, type DateWheelProps, DayStrip, type DayStripProps, type DescriptionItem, DescriptionList, type DescriptionListProps, EmptyState, type EmptyStateProps, ErrorState, Fab, type FabProps, GoalGauge, type GoalGaugeProps, type GridPhoto, type HapticKind, Header, type HeaderProps, IconButton, type IconButtonProps, ImageViewer, type ImageViewerProps, type Insets, KrizakaMark, Loader, LoaderGlyph, type LoaderGlyphProps, type LoaderProps, LoadingState, Mascot, type MascotProps, MascotState, type MascotStateProps, MatchDialog, type MatchDialogProps, MessageBubble, type MessageBubbleLabels, type MessageBubbleProps, MessageComposer, type MessageComposerProps, type MessageStatus, Meter, type MeterPart, type MeterProps, type Mode, MonthPicker, type MonthPickerProps, type Motion, type NativeMarkProps, NumberTicker, type NumberTickerProps, Onboarding, type OnboardingProps, type OnboardingSlide, OrazakaMark, OrochiaMark, OtpInput, type OtpInputProps, Pagination, type PaginationLabels, type PaginationProps, PermissionPrompt, type PermissionPromptProps, type PermissionStatus, PersonCard, type PersonCardProps, Phoenix, type PhoenixProps, PhotoGrid, type PhotoGridLabels, type PhotoGridProps, ProductMark, ProfileCard, type ProfileCardProps, type ProfileStat, Progress, type ProgressProps, PullToRefresh, type PullToRefreshProps, RadioGroup, type RadioGroupProps, type RadioOption, type Radius, Screen, type ScreenProps, SearchField, type SearchFieldProps, Segmented, type SegmentedOption, type SegmentedProps, Select, type SelectOption, type SelectProps, Sheet, type SheetProps, Skeleton, type SkeletonProps, Slider, type SliderProps, type SliderValue, Spinner, type SpinnerProps, SplashHandoff, type SplashHandoffProps, type Step, StepProgress, type StepProgressProps, type StepStatus, Stepper, type StepperProps, SuccessState, type SwipeAction, SwipeDeck, type SwipeDeckLabels, type SwipeDeckProps, type SwipeDirection, SwipeableRow, type SwipeableRowProps, Switch, type SwitchProps, TabBar, type TabBarItem, type TabBarProps, type TabItem, Tabs, type TabsProps, type TagOption, TagSelector, type TagSelectorProps, TextField, type TextFieldProps, type Theme, type ThemeContextValue, type ThemeFonts, type ThemeName, type ThemeOverrides, ThemeProvider, type ThemeProviderProps, TimePicker, type TimePickerLabels, type TimePickerProps, type TimeValue, type ToastItem, type ToastOptions, type ToastTone, Toaster, type ToasterProps, Txt, type TxtProps, type TxtTone, type TxtVariant, TypingIndicator, type TypingIndicatorProps, VerifiedBadge, type VerifiedBadgeProps, type ViewerImage, WelcomeState, Wheel, WheelDivider, type WheelOption, WheelPicker, type WheelPickerProps, type WheelProps, YazakiaMark, YororisMark, addDays, addMonths, ageOn, alpha, calendarLabels, comboboxLabels, composeDate, dateFieldLabels, datePartsOrder, daysInMonth, formatTime, isRealDate, latestBirthDate, monthNames, prefetchNeighbours, splitDuration, textStyles, timeSlots, timeToMinutes, toast, todayIso, useCollapsingHeader, useCountdown, useDelayedWait, useReducedMotion, useTheme, uses12Hours };