@btndprojects/loam-ui-native 0.1.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/dist/accordion/index.js +7 -3
  2. package/dist/adaptive/index.js +16 -2
  3. package/dist/address-block/index.js +23 -0
  4. package/dist/alert/index.js +8 -2
  5. package/dist/analyzer/index.js +17 -6
  6. package/dist/announcement/index.js +18 -5
  7. package/dist/appearance-picker/index.js +15 -0
  8. package/dist/audio-player/index.js +29 -3
  9. package/dist/avatar/index.js +5 -2
  10. package/dist/avatar-group/index.js +9 -3
  11. package/dist/badge/index.js +10 -4
  12. package/dist/banner/index.js +6 -2
  13. package/dist/board/index.js +18 -6
  14. package/dist/button/index.js +9 -3
  15. package/dist/camera-permission/index.js +23 -12
  16. package/dist/capture-result/index.js +30 -17
  17. package/dist/card/index.js +10 -3
  18. package/dist/card-form/index.js +19 -9
  19. package/dist/carousel/index.js +6 -2
  20. package/dist/chart/index.js +18 -5
  21. package/dist/charts/index.js +21 -6
  22. package/dist/chat/index.js +41 -0
  23. package/dist/checkbox/index.js +9 -5
  24. package/dist/checklist/index.js +20 -8
  25. package/dist/checkout/index.js +30 -12
  26. package/dist/chip/index.js +11 -5
  27. package/dist/chunk-2BZD3NAP.js +1110 -0
  28. package/dist/chunk-2YKVID2V.js +35 -0
  29. package/dist/{chunk-JUAMLEHX.js → chunk-36DA3IPO.js} +137 -37
  30. package/dist/chunk-3A56MIAN.js +599 -0
  31. package/dist/chunk-3SCKCWF5.js +298 -0
  32. package/dist/chunk-3TZNDHKO.js +187 -0
  33. package/dist/chunk-43K3BLXV.js +9 -0
  34. package/dist/chunk-46ZJIQ2Z.js +208 -0
  35. package/dist/chunk-4CZMQDQL.js +192 -0
  36. package/dist/chunk-5DTKORLI.js +255 -0
  37. package/dist/{chunk-LOE5YNN3.js → chunk-5J4WFXFA.js} +68 -24
  38. package/dist/chunk-5KJ7TEQ6.js +305 -0
  39. package/dist/chunk-5NU33TXK.js +529 -0
  40. package/dist/chunk-5Z5ZYMOJ.js +1 -0
  41. package/dist/chunk-6KSUS7DF.js +690 -0
  42. package/dist/chunk-6RV6UW2J.js +349 -0
  43. package/dist/chunk-6RZM7RP2.js +520 -0
  44. package/dist/{chunk-4BXMXBJO.js → chunk-75BDCC7K.js} +24 -11
  45. package/dist/{chunk-PZXZJBMP.js → chunk-7CGJBQUA.js} +357 -32
  46. package/dist/{chunk-CJ5EOYZE.js → chunk-7IVF6JLJ.js} +24 -7
  47. package/dist/chunk-7IWCGXYA.js +143 -0
  48. package/dist/chunk-7LM4ASFH.js +172 -0
  49. package/dist/chunk-7MCEJFWV.js +341 -0
  50. package/dist/chunk-7NGMUVNU.js +245 -0
  51. package/dist/chunk-7PBSIXT7.js +355 -0
  52. package/dist/chunk-7QOYGENL.js +443 -0
  53. package/dist/{chunk-H6NIOQHK.js → chunk-A7SWYDE5.js} +66 -15
  54. package/dist/chunk-ADHPJALR.js +3051 -0
  55. package/dist/chunk-ALJYZLNQ.js +509 -0
  56. package/dist/chunk-APCWFOZW.js +28 -0
  57. package/dist/chunk-AQ5FIG74.js +419 -0
  58. package/dist/chunk-AWKQIE5I.js +139 -0
  59. package/dist/chunk-B2MMZZQB.js +426 -0
  60. package/dist/{chunk-ZVFE5QGU.js → chunk-B7JZ3N5G.js} +174 -97
  61. package/dist/chunk-BL37SW6G.js +1314 -0
  62. package/dist/chunk-BTRMA7GC.js +21 -0
  63. package/dist/chunk-C7IUWIUZ.js +643 -0
  64. package/dist/chunk-CA3DUVYD.js +10 -0
  65. package/dist/{chunk-S7F6XLTK.js → chunk-CBCJSO2B.js} +213 -54
  66. package/dist/chunk-CHPX4MFI.js +239 -0
  67. package/dist/chunk-CLGAMIOT.js +648 -0
  68. package/dist/chunk-CUE7VML6.js +1141 -0
  69. package/dist/chunk-CVU6S2E5.js +1587 -0
  70. package/dist/{chunk-AZRX6SAC.js → chunk-CXPQMA6Z.js} +112 -37
  71. package/dist/chunk-D2LN4I7I.js +581 -0
  72. package/dist/{chunk-UWFLYMAR.js → chunk-D34LNBO5.js} +635 -238
  73. package/dist/chunk-D4BCQICM.js +765 -0
  74. package/dist/chunk-EABKIIA4.js +1 -0
  75. package/dist/chunk-EICSYRAG.js +341 -0
  76. package/dist/chunk-EMWAJMAS.js +83 -0
  77. package/dist/chunk-EOLZWRV6.js +149 -0
  78. package/dist/chunk-EOQVTGB6.js +350 -0
  79. package/dist/{chunk-BEDBFJND.js → chunk-ESGUHNB2.js} +119 -43
  80. package/dist/{chunk-Q72LJOVE.js → chunk-F2KNBPKY.js} +74 -18
  81. package/dist/{chunk-O7AE6DAF.js → chunk-G7H3NX3G.js} +57 -24
  82. package/dist/chunk-GM7YIPB7.js +1052 -0
  83. package/dist/chunk-GVQQG435.js +581 -0
  84. package/dist/chunk-HE43OMEL.js +1056 -0
  85. package/dist/chunk-HHOMFQ7R.js +2535 -0
  86. package/dist/chunk-HJFFOOJ4.js +1 -0
  87. package/dist/chunk-HNAKS4Z3.js +207 -0
  88. package/dist/chunk-HP6ST2OW.js +352 -0
  89. package/dist/chunk-HW3OWDTU.js +1 -0
  90. package/dist/{chunk-3ENTMPQY.js → chunk-HZDB44K4.js} +102 -52
  91. package/dist/chunk-I2KLQ2HA.js +19 -0
  92. package/dist/chunk-I6CUP2LW.js +1155 -0
  93. package/dist/chunk-ICV4Y2WY.js +27 -0
  94. package/dist/chunk-IHSIENOE.js +3950 -0
  95. package/dist/{chunk-CUMUNPXY.js → chunk-IMMALLRU.js} +68 -32
  96. package/dist/chunk-J64KGCGX.js +55 -0
  97. package/dist/{chunk-IVNRBPGC.js → chunk-JA6TK7H2.js} +255 -84
  98. package/dist/{chunk-OOPPQH27.js → chunk-JAVZ5JPV.js} +83 -29
  99. package/dist/chunk-JCMTP3E4.js +1251 -0
  100. package/dist/{chunk-U7TFM2JA.js → chunk-JCXFFK64.js} +75 -18
  101. package/dist/chunk-JWCVBFDU.js +236 -0
  102. package/dist/chunk-JXRTD5RI.js +414 -0
  103. package/dist/chunk-JYIUZUIQ.js +1567 -0
  104. package/dist/chunk-K3TK3GIV.js +219 -0
  105. package/dist/chunk-KEVZIHM2.js +1511 -0
  106. package/dist/chunk-KHZDNQQD.js +171 -0
  107. package/dist/chunk-KL4GDV4V.js +131 -0
  108. package/dist/chunk-KNILMM4H.js +225 -0
  109. package/dist/chunk-KRBUZV45.js +25 -0
  110. package/dist/{chunk-ITTYJZWX.js → chunk-KXLDK6HB.js} +161 -45
  111. package/dist/chunk-KZ3X7TSL.js +196 -0
  112. package/dist/chunk-L2WMOA2V.js +474 -0
  113. package/dist/chunk-L4D5LHCH.js +109 -0
  114. package/dist/chunk-LAUJPLDB.js +853 -0
  115. package/dist/{chunk-SBMNWWBV.js → chunk-LGNTP5XA.js} +89 -17
  116. package/dist/chunk-LUZFCCSD.js +271 -0
  117. package/dist/{chunk-HPPW424V.js → chunk-LXJCP4PL.js} +129 -37
  118. package/dist/chunk-MCOZJWPU.js +731 -0
  119. package/dist/chunk-MG4SKWLL.js +2587 -0
  120. package/dist/chunk-MPEPTSER.js +414 -0
  121. package/dist/chunk-MWPJ4YGP.js +1 -0
  122. package/dist/{chunk-TKQYWZ5V.js → chunk-N7AX4OA4.js} +108 -41
  123. package/dist/chunk-NHSLM6SE.js +523 -0
  124. package/dist/chunk-NNCOFLNE.js +24 -0
  125. package/dist/{chunk-J7Q7VCVC.js → chunk-NNJLVA7M.js} +54 -15
  126. package/dist/chunk-NZG75DGA.js +282 -0
  127. package/dist/chunk-O76QXRBV.js +431 -0
  128. package/dist/chunk-OANH27AK.js +223 -0
  129. package/dist/chunk-OCHPK5YV.js +609 -0
  130. package/dist/chunk-OMHVEVX4.js +436 -0
  131. package/dist/{chunk-YF4NSSMT.js → chunk-ONKQUJWD.js} +220 -65
  132. package/dist/chunk-OVTK7A6T.js +615 -0
  133. package/dist/chunk-PCEFCOLN.js +120 -0
  134. package/dist/chunk-PFLNFIVB.js +186 -0
  135. package/dist/chunk-PHSZY37H.js +300 -0
  136. package/dist/chunk-PJLTKDVY.js +18 -0
  137. package/dist/{chunk-4YIP3CWS.js → chunk-PK7BN3MI.js} +89 -19
  138. package/dist/{chunk-KMI5ML5I.js → chunk-PWFRDRGS.js} +155 -29
  139. package/dist/chunk-PYPMD46W.js +707 -0
  140. package/dist/chunk-Q6CCHDI7.js +331 -0
  141. package/dist/chunk-QFA5WS2A.js +750 -0
  142. package/dist/chunk-QJMMM4RC.js +124 -0
  143. package/dist/chunk-QNZII37O.js +10 -0
  144. package/dist/chunk-QYWEVAM6.js +407 -0
  145. package/dist/chunk-R5T4VZ7Z.js +126 -0
  146. package/dist/chunk-R77HFLZD.js +1 -0
  147. package/dist/{chunk-YC6WORFL.js → chunk-RAESDNU5.js} +228 -102
  148. package/dist/chunk-RBYQUXNL.js +1 -0
  149. package/dist/chunk-RCM3DT5E.js +1 -0
  150. package/dist/chunk-RGNY56L7.js +282 -0
  151. package/dist/chunk-RIK6UX2K.js +344 -0
  152. package/dist/{chunk-LAECSR4H.js → chunk-RJA3RXO3.js} +75 -60
  153. package/dist/chunk-RJYRJ3LD.js +1 -0
  154. package/dist/chunk-RMA3NOY4.js +599 -0
  155. package/dist/{chunk-DM5QUKKO.js → chunk-RSWKKAHK.js} +160 -66
  156. package/dist/chunk-RVOIIX3V.js +204 -0
  157. package/dist/chunk-SA2RRBGT.js +1077 -0
  158. package/dist/chunk-SG3J4R45.js +1428 -0
  159. package/dist/chunk-SPUK7JD4.js +238 -0
  160. package/dist/chunk-SWXV2K5N.js +434 -0
  161. package/dist/chunk-SYJEPXP6.js +1303 -0
  162. package/dist/{chunk-N32RGOA5.js → chunk-SZLI34TA.js} +93 -28
  163. package/dist/{chunk-4GBOGOTV.js → chunk-T77WJA74.js} +143 -18
  164. package/dist/chunk-TDWWVJA4.js +630 -0
  165. package/dist/chunk-TFHI5XDR.js +610 -0
  166. package/dist/chunk-TH4PW2WU.js +17 -0
  167. package/dist/chunk-TTQ24HQX.js +12 -0
  168. package/dist/chunk-TUACVJNG.js +12 -0
  169. package/dist/{chunk-CYRBHQQZ.js → chunk-TUL5RUIA.js} +201 -59
  170. package/dist/{chunk-4ZAHCY44.js → chunk-TYOSA7JG.js} +74 -38
  171. package/dist/chunk-TYQTMMEV.js +1 -0
  172. package/dist/chunk-TZO6YDS7.js +346 -0
  173. package/dist/chunk-U3ETF22F.js +328 -0
  174. package/dist/chunk-U6BYHD2N.js +213 -0
  175. package/dist/{chunk-WSW6ZFAQ.js → chunk-UF6EJXPQ.js} +20 -5
  176. package/dist/chunk-UNNQIPGK.js +792 -0
  177. package/dist/chunk-UQEN55EY.js +1 -0
  178. package/dist/chunk-UQVO6AJV.js +171 -0
  179. package/dist/chunk-VFDQAAIW.js +351 -0
  180. package/dist/chunk-VIUE3VQT.js +1 -0
  181. package/dist/chunk-VJLSSSGC.js +438 -0
  182. package/dist/chunk-VLMT6KYT.js +350 -0
  183. package/dist/chunk-VMHGBUGS.js +35 -0
  184. package/dist/{chunk-7O2FMUPT.js → chunk-VQKPBYW6.js} +400 -139
  185. package/dist/{chunk-EJBDRVIH.js → chunk-VSSTWLC5.js} +61 -16
  186. package/dist/chunk-VZYYZRPN.js +1992 -0
  187. package/dist/chunk-W23G6JLF.js +37 -0
  188. package/dist/chunk-WAIJCD2V.js +480 -0
  189. package/dist/chunk-WFMQ3WKM.js +378 -0
  190. package/dist/chunk-WJ2KDRMY.js +66 -0
  191. package/dist/chunk-WKFZJO54.js +437 -0
  192. package/dist/{chunk-SYNOJOQO.js → chunk-WVVD3XOV.js} +189 -93
  193. package/dist/chunk-XAIWMSLB.js +1 -0
  194. package/dist/chunk-XBXUBBJZ.js +98 -0
  195. package/dist/chunk-XCU7MYBJ.js +1 -0
  196. package/dist/chunk-XHE4PGCI.js +717 -0
  197. package/dist/chunk-XRSJ32M3.js +331 -0
  198. package/dist/chunk-XTCVOEAW.js +1 -0
  199. package/dist/chunk-XWGXVQF6.js +58 -0
  200. package/dist/{chunk-35OFI3JG.js → chunk-Y3XKKO5K.js} +258 -123
  201. package/dist/chunk-Y4QNMBLO.js +533 -0
  202. package/dist/chunk-Y5H4CTKO.js +1 -0
  203. package/dist/chunk-YBQIN75A.js +403 -0
  204. package/dist/chunk-YJ5PXOX3.js +158 -0
  205. package/dist/{chunk-AWJOCGFZ.js → chunk-YLRSRUPS.js} +81 -55
  206. package/dist/chunk-YM6MPJ4A.js +1 -0
  207. package/dist/chunk-YV7KZENV.js +200 -0
  208. package/dist/chunk-Z7I4ZSO6.js +316 -0
  209. package/dist/chunk-ZIRMWD2B.js +555 -0
  210. package/dist/chunk-ZPMG3FWU.js +75 -0
  211. package/dist/{chunk-QWCMU5B2.js → chunk-ZTXMK2G7.js} +289 -115
  212. package/dist/chunk-ZVJCWXAL.js +541 -0
  213. package/dist/{chunk-P23EQNRQ.js → chunk-ZYQ23DPT.js} +215 -49
  214. package/dist/coachmark/index.js +10 -3
  215. package/dist/code-block/index.js +6 -3
  216. package/dist/color-field/index.js +15 -5
  217. package/dist/color-picker/index.js +23 -0
  218. package/dist/commerce/index.js +31 -17
  219. package/dist/confirm/index.js +31 -0
  220. package/dist/connection-card/index.js +34 -0
  221. package/dist/connectivity/index.js +6 -2
  222. package/dist/context-menu/index.js +13 -3
  223. package/dist/copy-button/index.js +5 -2
  224. package/dist/data-grid/index.js +35 -17
  225. package/dist/date-range-picker/index.js +22 -9
  226. package/dist/description-list/index.js +6 -1
  227. package/dist/device-frame/index.js +30 -0
  228. package/dist/dialog/index.js +10 -2
  229. package/dist/divider/index.js +2 -0
  230. package/dist/empty-state/index.js +15 -2
  231. package/dist/error-summary/index.js +9 -2
  232. package/dist/fab/index.js +7 -2
  233. package/dist/file-manager/index.js +44 -0
  234. package/dist/file-upload/index.js +16 -7
  235. package/dist/filter-bar/index.js +14 -7
  236. package/dist/flow-run/index.js +23 -13
  237. package/dist/form/index.js +32 -3
  238. package/dist/gallery/index.js +8 -2
  239. package/dist/hold-to-confirm/index.js +6 -2
  240. package/dist/hover-card/index.js +18 -0
  241. package/dist/icon-tile/index.js +10 -0
  242. package/dist/image/index.js +9 -0
  243. package/dist/index.d.ts +30789 -12332
  244. package/dist/index.js +424 -135
  245. package/dist/infinite-list/index.js +6 -2
  246. package/dist/inline-edit/index.js +8 -5
  247. package/dist/input/index.js +7 -4
  248. package/dist/interactions/index.js +5 -1
  249. package/dist/invoice/index.js +22 -9
  250. package/dist/job-row/index.js +22 -0
  251. package/dist/json-inspector/index.js +20 -0
  252. package/dist/kbd/index.js +5 -1
  253. package/dist/keyboard/index.js +9 -2
  254. package/dist/level-meter/index.js +9 -0
  255. package/dist/list-row/index.js +14 -4
  256. package/dist/log-viewer/index.js +11 -2
  257. package/dist/map-view/index.js +16 -3
  258. package/dist/markdown/index.js +12 -6
  259. package/dist/metric/index.js +10 -4
  260. package/dist/metric-strip/index.js +12 -0
  261. package/dist/money/index.js +16 -3
  262. package/dist/nav-drawer/index.js +8 -2
  263. package/dist/nav-header/index.js +15 -0
  264. package/dist/navigation/index.js +32 -2
  265. package/dist/notification-center/index.js +28 -12
  266. package/dist/number-roll/index.js +7 -2
  267. package/dist/onboarding-pager/index.js +22 -0
  268. package/dist/one-handed/index.js +5 -3
  269. package/dist/os-surfaces/index.js +9 -3
  270. package/dist/otp/index.js +9 -5
  271. package/dist/page-header/index.js +3 -1
  272. package/dist/pagination/index.js +8 -0
  273. package/dist/payment-method/index.js +21 -11
  274. package/dist/payment-status/index.js +26 -15
  275. package/dist/permission/index.js +21 -2
  276. package/dist/picker/index.js +22 -6
  277. package/dist/progress/index.js +11 -3
  278. package/dist/provenance/index.js +16 -0
  279. package/dist/pull-to-refresh/index.js +4 -2
  280. package/dist/qr-code/index.js +16 -0
  281. package/dist/query-builder/index.js +30 -0
  282. package/dist/radio-group/index.js +9 -5
  283. package/dist/rating/index.js +10 -2
  284. package/dist/receivables/index.js +35 -17
  285. package/dist/recording-indicator/index.js +21 -0
  286. package/dist/refund/index.js +28 -15
  287. package/dist/repeatable-rows/index.js +19 -0
  288. package/dist/save-status/index.js +7 -3
  289. package/dist/screen/index.js +3 -0
  290. package/dist/scroll-area/index.js +3 -1
  291. package/dist/search-field/index.js +13 -0
  292. package/dist/secret-field/index.js +19 -0
  293. package/dist/section-header/index.js +4 -0
  294. package/dist/segmented-control/index.js +4 -3
  295. package/dist/sheet/index.js +11 -3
  296. package/dist/shortcuts-sheet/index.js +2 -0
  297. package/dist/sign-in-screen/index.js +25 -0
  298. package/dist/skeleton/index.js +5 -1
  299. package/dist/slider/index.js +5 -2
  300. package/dist/sortable/index.js +8 -0
  301. package/dist/spinner/index.js +4 -1
  302. package/dist/split-button/index.js +21 -6
  303. package/dist/spotlight/index.js +9 -1
  304. package/dist/stack/index.js +2 -0
  305. package/dist/stage-timeline/index.js +8 -3
  306. package/dist/status-dot/index.js +8 -2
  307. package/dist/stepper/index.js +11 -4
  308. package/dist/streaming-text/index.js +4 -2
  309. package/dist/survey/index.js +29 -16
  310. package/dist/switch/index.js +9 -3
  311. package/dist/system-state/index.js +15 -4
  312. package/dist/tab-bar/index.js +13 -2
  313. package/dist/tabs/index.js +12 -2
  314. package/dist/tags-input/index.js +13 -0
  315. package/dist/text/index.js +4 -0
  316. package/dist/textarea/index.js +8 -5
  317. package/dist/thinking/index.js +6 -1
  318. package/dist/tile-rail/index.js +10 -0
  319. package/dist/time-field/index.js +20 -0
  320. package/dist/time-range-control/index.js +36 -0
  321. package/dist/timeline/index.js +4 -2
  322. package/dist/toast/index.js +6 -2
  323. package/dist/toolbar/index.js +5 -2
  324. package/dist/tour/index.js +15 -10
  325. package/dist/transcript/index.js +28 -0
  326. package/dist/truncation-notice/index.js +5 -2
  327. package/dist/update-notice/index.js +19 -9
  328. package/dist/video-player/index.js +29 -2
  329. package/dist/viewfinder/index.js +15 -5
  330. package/dist/widget/index.js +14 -4
  331. package/dist/wizard/index.js +10 -4
  332. package/package.json +13 -12
  333. package/dist/chunk-223Q2T2Q.js +0 -229
  334. package/dist/chunk-2A5NIQAK.js +0 -254
  335. package/dist/chunk-2GK6PHGE.js +0 -363
  336. package/dist/chunk-2ZZ7TDJ4.js +0 -324
  337. package/dist/chunk-3ARE4TES.js +0 -195
  338. package/dist/chunk-3NMD74ZU.js +0 -4
  339. package/dist/chunk-3WPW4KUN.js +0 -182
  340. package/dist/chunk-423B7SPN.js +0 -993
  341. package/dist/chunk-47FWHGUN.js +0 -394
  342. package/dist/chunk-4DS5ZWVC.js +0 -83
  343. package/dist/chunk-4SZYY6AN.js +0 -99
  344. package/dist/chunk-4YQOR7JM.js +0 -204
  345. package/dist/chunk-52X2VYTD.js +0 -228
  346. package/dist/chunk-5YNTNN5A.js +0 -177
  347. package/dist/chunk-6HT2LP62.js +0 -504
  348. package/dist/chunk-6N33LFQA.js +0 -35
  349. package/dist/chunk-6X6PQ443.js +0 -432
  350. package/dist/chunk-7CFF4HXS.js +0 -126
  351. package/dist/chunk-AI4DWZCD.js +0 -162
  352. package/dist/chunk-BTTFCMKG.js +0 -166
  353. package/dist/chunk-BV3B2HYZ.js +0 -1635
  354. package/dist/chunk-C2NTXVWM.js +0 -98
  355. package/dist/chunk-CDRZHT42.js +0 -424
  356. package/dist/chunk-DHWADYZX.js +0 -144
  357. package/dist/chunk-F5XNPWS7.js +0 -1024
  358. package/dist/chunk-FMYDDECK.js +0 -1521
  359. package/dist/chunk-GDKZTW34.js +0 -395
  360. package/dist/chunk-GL7B2DOW.js +0 -134
  361. package/dist/chunk-GNNJ4GCC.js +0 -471
  362. package/dist/chunk-HET4LLMX.js +0 -129
  363. package/dist/chunk-HZ6CNMAF.js +0 -870
  364. package/dist/chunk-IIQTAY3J.js +0 -715
  365. package/dist/chunk-JNH2TYIN.js +0 -96
  366. package/dist/chunk-JNY4ZHAR.js +0 -634
  367. package/dist/chunk-JXJB2X6M.js +0 -131
  368. package/dist/chunk-LRJNDEIA.js +0 -302
  369. package/dist/chunk-LSS54GLJ.js +0 -116
  370. package/dist/chunk-LZLHELAG.js +0 -137
  371. package/dist/chunk-MOUJOP55.js +0 -425
  372. package/dist/chunk-NKB7BZYK.js +0 -167
  373. package/dist/chunk-NQYBUO3K.js +0 -1795
  374. package/dist/chunk-O4AEHWII.js +0 -464
  375. package/dist/chunk-OETCUXQP.js +0 -134
  376. package/dist/chunk-OPXFZ4Y5.js +0 -204
  377. package/dist/chunk-PJXUJYS6.js +0 -248
  378. package/dist/chunk-PUPM2YGF.js +0 -376
  379. package/dist/chunk-QCDXZBC5.js +0 -247
  380. package/dist/chunk-QDYDBCFP.js +0 -197
  381. package/dist/chunk-QJJ6MADV.js +0 -274
  382. package/dist/chunk-QKXCPTFS.js +0 -349
  383. package/dist/chunk-RIBDXGUG.js +0 -108
  384. package/dist/chunk-RJQOOHT2.js +0 -214
  385. package/dist/chunk-RNGLIHFA.js +0 -191
  386. package/dist/chunk-RQ3HASCC.js +0 -6
  387. package/dist/chunk-RSOJT5YW.js +0 -124
  388. package/dist/chunk-RUZHTGKB.js +0 -237
  389. package/dist/chunk-RW6ZL2FQ.js +0 -284
  390. package/dist/chunk-TKVFVF5D.js +0 -95
  391. package/dist/chunk-TOXAGRDQ.js +0 -144
  392. package/dist/chunk-TUTI5HOZ.js +0 -112
  393. package/dist/chunk-UC2WGUP3.js +0 -627
  394. package/dist/chunk-UYG5L34B.js +0 -87
  395. package/dist/chunk-VBOXAEPI.js +0 -336
  396. package/dist/chunk-VCDBXW5H.js +0 -188
  397. package/dist/chunk-VEAYTRPX.js +0 -414
  398. package/dist/chunk-VQHPQEUH.js +0 -273
  399. package/dist/chunk-VXDZFJGP.js +0 -874
  400. package/dist/chunk-XNUVB5OL.js +0 -375
  401. package/dist/chunk-XOSCY2CW.js +0 -242
  402. package/dist/chunk-XXXEFXY5.js +0 -99
  403. package/dist/chunk-YDGVJETP.js +0 -60
  404. package/dist/chunk-YG3ZJHGU.js +0 -223
  405. package/dist/chunk-YTFKPRUK.js +0 -845
  406. package/dist/chunk-Z7H7VSFZ.js +0 -323
  407. package/dist/header/index.js +0 -5
  408. package/dist/search-bar/index.js +0 -5
  409. /package/dist/{chunk-3ECPOSKO.js → chunk-3BKLBYPK.js} +0 -0
  410. /package/dist/{chunk-JRLTGLN4.js → chunk-3UG6JUCV.js} +0 -0
  411. /package/dist/{chunk-RTIKSY6A.js → chunk-4QCR3K2J.js} +0 -0
  412. /package/dist/{chunk-VFCUIDRT.js → chunk-5WWRTEPS.js} +0 -0
@@ -1,11 +1,14 @@
1
- import { ContinuousNotice, ShutterButton, TorchToggle, GridToggle, GuideOverlay, ExpertPanel, LensPicker, SequenceStrip, ShutterTray, FlipButton, TrackingOverlay, GridOverlay, FocusTapZone, FocusIndicator } from './chunk-BV3B2HYZ.js';
2
- import { PlaceholderFeed } from './chunk-LAECSR4H.js';
3
- import { decorativeProps, camInk, SurfaceLiveRegion, ViewfinderTopBar, GlassIconButton, GuidanceChip, GateHint, useSurfaceAnnounce } from './chunk-RW6ZL2FQ.js';
4
- import { Icon } from './chunk-TKVFVF5D.js';
1
+ import { IdentifyCard, ContinuousNotice, ShutterButton, TorchToggle, ViewfinderGridToggle, GuideOverlay, ExpertPanel, LensPicker, SequenceStrip, ShutterTray, FlipButton, TrackingOverlay, ObjectHighlight, ObjectLabel, ViewfinderGridOverlay, FocusTapZone, FocusIndicator, ViewfinderModes } from './chunk-HHOMFQ7R.js';
2
+ import { PlaceholderFeed } from './chunk-RJA3RXO3.js';
3
+ import { camInk, decorativeProps, useAnalyzerCopy, useAnalyzerLabels, AnalyzerCopyScope, SurfaceLiveRegion, ViewfinderTopBar, GlassIconButton, GuidanceChip, GateHint, useSurfaceAnnounce } from './chunk-OCHPK5YV.js';
4
+ import { NAMED_ROLE } from './chunk-W23G6JLF.js';
5
+ import { Spinner } from './chunk-G7H3NX3G.js';
6
+ import { isAndroidIdiom } from './chunk-TH4PW2WU.js';
7
+ import { Icon } from './chunk-PCEFCOLN.js';
5
8
  import * as React2 from 'react';
6
9
  import { View, Animated, Easing, Text, Pressable } from 'react-native';
7
10
  import { createStyleSheet, useStyles, useLoamTheme } from '@btndprojects/loam-theme-native';
8
- import { queueLabel, profile, caps, isFrozen, primaryCheck, TOASTS, gateHint, angleAt, viewfinderSubtitle, PRIVACY_STATEMENT, confidenceTone, confidenceLabel, CAPTURED_PILL, DONE_LABEL } from '@btndprojects/loam-analyzer';
11
+ import { queueLabel, localizeProfile, profile, caps, isFrozen, nearestToCentre, primaryCheck, gateHint, angleAt, viewfinderSubtitle, confidenceTone, confidenceLabel } from '@btndprojects/loam-analyzer';
9
12
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
10
13
 
11
14
  function numericRatio(ratio) {
@@ -18,13 +21,14 @@ function numericRatio(ratio) {
18
21
  }
19
22
  function CameraSurface({
20
23
  ratio,
21
- platform = "ios",
24
+ platform: platformProp,
22
25
  insets = {},
23
26
  feed,
24
27
  accessibilityLabel,
25
28
  children
26
29
  }) {
27
- const { styles } = useStyles(stageSheet);
30
+ const { styles, theme } = useStyles(stageSheet);
31
+ const platform = platformProp ?? (isAndroidIdiom(theme) ? "android" : "ios");
28
32
  const aspect = numericRatio(ratio);
29
33
  return /* @__PURE__ */ jsxs(
30
34
  View,
@@ -60,7 +64,7 @@ function PreviewSlot({ preview, label, topInset }) {
60
64
  return /* @__PURE__ */ jsx(View, { style: styles.previewSlot, children: preview ?? /* @__PURE__ */ jsx(PlaceholderFeed, { label, topInset }) });
61
65
  }
62
66
  function CaptureFlash({ token = null }) {
63
- const theme = useLoamTheme();
67
+ const theme = useLoamTheme("analyzer");
64
68
  const { styles } = useStyles(stageSheet);
65
69
  const [flashes, setFlashes] = React2.useState(0);
66
70
  const first = React2.useRef(true);
@@ -91,11 +95,12 @@ function CaptureFlash({ token = null }) {
91
95
  }
92
96
  );
93
97
  }
94
- function QueueBadge({ count, onPress }) {
95
- const theme = useLoamTheme();
98
+ function QueueBadge({ count, onPress, copy }) {
99
+ const theme = useLoamTheme("analyzer");
96
100
  const { styles } = useStyles(stageSheet);
101
+ const words = useAnalyzerCopy(copy);
97
102
  if (count <= 0) return null;
98
- const text = queueLabel(count);
103
+ const text = queueLabel(count, words);
99
104
  const ink = camInk(theme);
100
105
  const body = /* @__PURE__ */ jsxs(Fragment, { children: [
101
106
  /* @__PURE__ */ jsx(Icon, { name: "scan", size: theme.icon.sm, color: ink }),
@@ -113,7 +118,7 @@ function QueueBadge({ count, onPress }) {
113
118
  }
114
119
  );
115
120
  }
116
- return /* @__PURE__ */ jsx(View, { accessible: true, accessibilityLabel: text, style: styles.badge, children: body });
121
+ return /* @__PURE__ */ jsx(View, { accessible: true, accessibilityRole: NAMED_ROLE, accessibilityLabel: text, style: styles.badge, children: body });
117
122
  }
118
123
  var stageSheet = createStyleSheet((theme) => ({
119
124
  stage: {
@@ -183,22 +188,22 @@ var SCRIM_STOP = {
183
188
  analysing: "a10",
184
189
  failure: "a11"
185
190
  };
186
- function feedLabel(p, phase, platform, zoom) {
187
- const facing = platform === "web" ? "webcam \xB7 front" : "rear camera";
188
- if (phase === "live") return `${facing} \xB7 ${p.ratio} \xB7 ${zoom}x \xB7 placeholder feed`;
189
- if (phase === "captured") return `frozen frame \xB7 ${p.ratio} \xB7 placeholder`;
190
- if (phase === "analysing") return "frozen frame \xB7 analysing";
191
- if (phase === "result" || phase === "failure") return "frozen frame";
192
- if (phase === "done") return "captured frame";
193
- return `${facing} \xB7 ${p.ratio} \xB7 placeholder feed`;
191
+ function feedLabel(p, phase, platform, zoom, t) {
192
+ const facing = platform === "web" ? t.webcamFront : t.rearCamera;
193
+ if (phase === "live") return t.feedLive(facing, p.ratio, zoom);
194
+ if (phase === "captured") return t.feedCaptured(p.ratio);
195
+ if (phase === "analysing") return t.feedAnalysing;
196
+ if (phase === "result" || phase === "failure") return t.feedFrozen;
197
+ if (phase === "done") return t.feedDone;
198
+ return t.feedLive(facing, p.ratio, zoom);
194
199
  }
195
- function phaseMessage(p, phase) {
196
- if (phase === "live") return `${p.label}. ${p.subject}.`;
197
- if (phase === "captured") return CAPTURED_PILL;
198
- if (phase === "analysing") return "Analysing";
199
- if (phase === "result") return "Result ready";
200
- if (phase === "failure") return "Analysis failed";
201
- if (phase === "done") return DONE_LABEL;
200
+ function phaseMessage(p, phase, copy, t) {
201
+ if (phase === "live") return copy.viewfinder.phaseLine(p.label, p.subject);
202
+ if (phase === "captured") return copy.capturedPill;
203
+ if (phase === "analysing") return t.analysing;
204
+ if (phase === "result") return t.resultReady;
205
+ if (phase === "failure") return t.analysisFailed;
206
+ if (phase === "done") return copy.done;
202
207
  return null;
203
208
  }
204
209
  function detectedChip(detected, confidence) {
@@ -212,15 +217,17 @@ function detectedChip(detected, confidence) {
212
217
  function PhaseAnnouncer({
213
218
  profile: p,
214
219
  phase,
215
- detected
220
+ detected,
221
+ copy,
222
+ labels
216
223
  }) {
217
224
  const announce = useSurfaceAnnounce();
218
225
  const sink = React2.useRef(announce);
219
226
  sink.current = announce;
220
227
  React2.useEffect(() => {
221
- const message = phaseMessage(p, phase);
228
+ const message = phaseMessage(p, phase, copy, labels);
222
229
  if (message) sink.current?.(message);
223
- }, [p, phase]);
230
+ }, [p, phase, copy, labels]);
224
231
  React2.useEffect(() => {
225
232
  if (detected) sink.current?.(detected);
226
233
  }, [detected]);
@@ -229,12 +236,23 @@ function PhaseAnnouncer({
229
236
  function Analyzer({
230
237
  profile: profileProp,
231
238
  level = "guided",
232
- platform = "ios",
239
+ platform: platformProp,
233
240
  phase,
234
241
  ratio,
235
242
  insets,
236
243
  preview,
237
244
  objects = [],
245
+ highlight = true,
246
+ highlightPhase,
247
+ targetId,
248
+ aimedId,
249
+ identifySub,
250
+ identifyThumb,
251
+ modes,
252
+ mode,
253
+ onTargetChange,
254
+ onOpenResult,
255
+ onModeChange,
238
256
  gate = { pass: true, failing: [] },
239
257
  countdown = null,
240
258
  detected = null,
@@ -252,7 +270,11 @@ function Analyzer({
252
270
  focusPoint = null,
253
271
  flashToken = null,
254
272
  title,
255
- privacyStatement = PRIVACY_STATEMENT,
273
+ privacyStatement,
274
+ enforceGate = true,
275
+ uploadLabel,
276
+ labels: labelsProp,
277
+ copy: copyProp,
256
278
  children,
257
279
  onCapture,
258
280
  onUpload,
@@ -268,11 +290,16 @@ function Analyzer({
268
290
  onSequenceRead,
269
291
  onQueuePress,
270
292
  onGatePass,
271
- onNotify
293
+ onNotify,
294
+ loading = false,
295
+ tone
272
296
  }) {
273
- const theme = useLoamTheme();
297
+ const theme = useLoamTheme("analyzer");
298
+ const platform = platformProp ?? (isAndroidIdiom(theme) ? "android" : "ios");
274
299
  const { styles } = useStyles(analyzerSheet);
275
- const p = profile(profileProp);
300
+ const copy = useAnalyzerCopy(copyProp);
301
+ const t = useAnalyzerLabels(labelsProp);
302
+ const p = React2.useMemo(() => localizeProfile(profile(profileProp), copy), [profileProp, copy]);
276
303
  const caps$1 = caps(level);
277
304
  const chip = detected ? detectedChip(detected, detectedConfidence) : null;
278
305
  const live = phase === "live";
@@ -280,11 +307,42 @@ function Analyzer({
280
307
  const continuous = p.shutter === "continuous";
281
308
  const tracking = objects.length > 0;
282
309
  const trackLocked = objects.some((o) => o.locked === true);
310
+ const flow = highlight && objects.length > 0 && mode !== "photo";
311
+ const target = flow ? objects.find((o) => o.id === (targetId ?? aimedId ?? nearestToCentre(objects))) ?? objects[0] : void 0;
312
+ const hp = highlightPhase ?? (phase === "result" ? "result" : target?.locked ? "lock" : "aim");
313
+ const cardRef = React2.useRef(null);
314
+ const openResult = () => onOpenResult?.(cardRef);
315
+ const card = target && (hp === "identify" || hp === "result") ? (
316
+ // Native parts do not forward refs: the wrapper View is the morph source.
317
+ /* @__PURE__ */ jsx(View, { ref: cardRef, collapsable: false, children: /* @__PURE__ */ jsx(
318
+ IdentifyCard,
319
+ {
320
+ platform: platform === "android" ? "android" : "ios",
321
+ name: target.label,
322
+ sub: identifySub,
323
+ conf: target.conf,
324
+ thumb: identifyThumb,
325
+ onOpen: openResult
326
+ }
327
+ ) })
328
+ ) : null;
329
+ const modeStrip = modes && mode !== void 0 ? /* @__PURE__ */ jsx(
330
+ ViewfinderModes,
331
+ {
332
+ modes,
333
+ value: mode,
334
+ platform: platform === "android" ? "android" : "ios",
335
+ onChange: onModeChange
336
+ }
337
+ ) : null;
283
338
  const gateOpen = caps$1.gate ? gate.pass : true;
339
+ const captureOpen = (enforceGate ? gateOpen : true) && !loading;
284
340
  const blockedToast = React2.useMemo(() => {
285
341
  const check = primaryCheck(p, gate);
286
- return TOASTS.gateBlocked(check ? check.fix : gateHint(p, gate));
287
- }, [p, gate]);
342
+ return copy.toasts.gateBlocked(
343
+ check ? copy.checks[check.id]?.fix ?? check.fix : gateHint(p, gate, null, copy)
344
+ );
345
+ }, [p, gate, copy]);
288
346
  const notify = React2.useRef(onNotify);
289
347
  notify.current = onNotify;
290
348
  const gatePass = React2.useRef(onGatePass);
@@ -302,16 +360,16 @@ function Analyzer({
302
360
  (next) => {
303
361
  if (!caps$1.grid) return;
304
362
  onGridChange?.(next);
305
- notify.current?.({ title: TOASTS.grid(next) });
363
+ notify.current?.({ title: copy.toasts.grid(next) });
306
364
  },
307
365
  [caps$1.grid, onGridChange]
308
366
  );
309
367
  const close = React2.useCallback(() => {
310
368
  onClose?.();
311
- notify.current?.({ title: TOASTS.close });
369
+ notify.current?.({ title: copy.toasts.close });
312
370
  }, [onClose]);
313
371
  const angle = angleAt(p, angleIndex);
314
- const subtitle = viewfinderSubtitle(p, { angleIndex, shots });
372
+ const subtitle = viewfinderSubtitle(p, { angleIndex, shots }, copy);
315
373
  const sequence = caps$1.sequence && (p.frames === "multi" || typeof p.frames === "number" && p.frames > 1);
316
374
  const scrimStop = SCRIM_STOP[phase];
317
375
  const trayPrimary = continuous ? /* @__PURE__ */ jsx(ContinuousNotice, {}) : /* @__PURE__ */ jsx(
@@ -319,31 +377,64 @@ function Analyzer({
319
377
  {
320
378
  platform,
321
379
  mode: p.shutter,
322
- enabled: gateOpen,
380
+ enabled: captureOpen,
323
381
  countdown: caps$1.auto ? countdown : null,
324
382
  blockedToast,
325
383
  onPress: onCapture,
326
384
  onBlocked: blocked
327
385
  }
328
386
  );
329
- return /* @__PURE__ */ jsxs(SurfaceLiveRegion, { children: [
330
- /* @__PURE__ */ jsx(PhaseAnnouncer, { profile: p, phase, detected: chip ? chip.text : null }),
387
+ return /* @__PURE__ */ jsx(AnalyzerCopyScope.Provider, { value: copyProp, children: /* @__PURE__ */ jsxs(SurfaceLiveRegion, { children: [
388
+ /* @__PURE__ */ jsx(
389
+ PhaseAnnouncer,
390
+ {
391
+ profile: p,
392
+ phase,
393
+ detected: chip ? chip.text : null,
394
+ copy,
395
+ labels: t
396
+ }
397
+ ),
331
398
  /* @__PURE__ */ jsxs(
332
399
  CameraSurface,
333
400
  {
334
401
  ratio,
335
402
  platform,
336
403
  insets,
337
- accessibilityLabel: `${title ?? p.label} viewfinder`,
404
+ accessibilityLabel: copy.viewfinder.aria(title ?? p.label),
338
405
  feed: /* @__PURE__ */ jsxs(Fragment, { children: [
339
406
  /* @__PURE__ */ jsx(
340
407
  PreviewSlot,
341
408
  {
342
409
  preview,
343
- label: feedLabel(p, phase, platform, zoom),
410
+ label: feedLabel(p, phase, platform, zoom, t),
344
411
  topInset: insets?.top ?? 0
345
412
  }
346
413
  ),
414
+ loading ? /* @__PURE__ */ jsx(
415
+ View,
416
+ {
417
+ testID: "loam-cam-loading",
418
+ accessible: true,
419
+ accessibilityLabel: t.startingCamera,
420
+ accessibilityState: { busy: true },
421
+ "aria-busy": true,
422
+ style: [styles.loading, { backgroundColor: theme.black.a8 }],
423
+ children: /* @__PURE__ */ jsx(Spinner, { size: "lg", color: camInk(theme) })
424
+ }
425
+ ) : null,
426
+ tone && tone !== "neutral" ? /* @__PURE__ */ jsx(
427
+ View,
428
+ {
429
+ accessible: false,
430
+ testID: `loam-cam-tone-${tone}`,
431
+ style: [
432
+ styles.scrim,
433
+ { borderWidth: theme.borderWidth.thick, borderColor: theme.color[tone] }
434
+ ],
435
+ ...decorativeProps()
436
+ }
437
+ ) : null,
347
438
  scrimStop ? /* @__PURE__ */ jsx(
348
439
  View,
349
440
  {
@@ -353,7 +444,7 @@ function Analyzer({
353
444
  ...decorativeProps()
354
445
  }
355
446
  ) : null,
356
- tracking ? /* @__PURE__ */ jsx(
447
+ tracking && !target ? /* @__PURE__ */ jsx(
357
448
  TrackingOverlay,
358
449
  {
359
450
  objects,
@@ -362,8 +453,46 @@ function Analyzer({
362
453
  safeAreaBottom: insets?.bottom ?? 0
363
454
  }
364
455
  ) : null,
365
- live ? /* @__PURE__ */ jsx(GridOverlay, { visible: caps$1.grid && grid }) : null,
456
+ target ? /* @__PURE__ */ jsxs(Fragment, { children: [
457
+ /* @__PURE__ */ jsx(
458
+ ObjectHighlight,
459
+ {
460
+ target,
461
+ phase: hp,
462
+ locked: hp === "aim" ? true : target.locked !== false
463
+ }
464
+ ),
465
+ hp === "lock" || hp === "identify" ? /* @__PURE__ */ jsx(
466
+ ObjectLabel,
467
+ {
468
+ name: target.label,
469
+ conf: target.conf,
470
+ box: target.box,
471
+ state: target.locked === false ? "lost" : hp === "lock" ? "identifying" : "identified",
472
+ onOpen: openResult
473
+ }
474
+ ) : null
475
+ ] }) : null,
476
+ live ? /* @__PURE__ */ jsx(ViewfinderGridOverlay, { visible: caps$1.grid && grid }) : null,
366
477
  live ? /* @__PURE__ */ jsx(FocusTapZone, { onFocusPoint }) : null,
478
+ live && target ? objects.filter((o) => o.id !== target.id).map((o) => /* @__PURE__ */ jsx(
479
+ Pressable,
480
+ {
481
+ accessibilityRole: "button",
482
+ accessibilityLabel: o.label,
483
+ hitSlop: Math.max(0, (theme.hit.lg - theme.space[12]) / 2),
484
+ testID: `loam-target-dot-${o.id}`,
485
+ onPress: () => onTargetChange?.(o.id),
486
+ style: [
487
+ styles.targetDot,
488
+ {
489
+ left: `${o.box[0] + o.box[2] / 2}%`,
490
+ top: `${o.box[1] + o.box[3] / 2}%`
491
+ }
492
+ ]
493
+ },
494
+ o.id
495
+ )) : null,
367
496
  live ? /* @__PURE__ */ jsx(
368
497
  FocusIndicator,
369
498
  {
@@ -383,12 +512,12 @@ function Analyzer({
383
512
  onClose: onClose ? close : void 0,
384
513
  children: [
385
514
  caps$1.torch ? /* @__PURE__ */ jsx(TorchToggle, { on: torch, available: torchAvailable, onChange: onTorchChange }) : null,
386
- caps$1.grid ? /* @__PURE__ */ jsx(GridToggle, { on: grid, onChange: toggleGrid }) : null,
515
+ caps$1.grid ? /* @__PURE__ */ jsx(ViewfinderGridToggle, { on: grid, onChange: toggleGrid }) : null,
387
516
  caps$1.expert && onExpertOpenChange ? /* @__PURE__ */ jsx(
388
517
  GlassIconButton,
389
518
  {
390
519
  icon: "sliders",
391
- label: "Expert controls",
520
+ label: t.expertControls,
392
521
  on: expertOpen,
393
522
  onPress: () => onExpertOpenChange(!expertOpen)
394
523
  }
@@ -402,7 +531,7 @@ function Analyzer({
402
531
  {
403
532
  kind: p.guide,
404
533
  pass: gateOpen,
405
- dimmed: trackLocked,
534
+ dimmed: trackLocked || target !== void 0,
406
535
  hint: angle?.hint,
407
536
  scanning: continuous
408
537
  }
@@ -418,7 +547,7 @@ function Analyzer({
418
547
  onClose: onExpertOpenChange ? () => onExpertOpenChange(false) : void 0
419
548
  }
420
549
  ) }) : null,
421
- caps$1.zoom ? /* @__PURE__ */ jsx(LensPicker, { stops: zoomStops, value: zoom, onChange: onZoomChange }) : null,
550
+ caps$1.zoom && !card ? /* @__PURE__ */ jsx(LensPicker, { stops: zoomStops, value: zoom, onChange: onZoomChange }) : null,
422
551
  chip ? /* @__PURE__ */ jsx(GuidanceChip, { tone: chip.tone, icon: chip.icon, text: chip.text }) : null,
423
552
  caps$1.gate ? (
424
553
  // `live={!detected}` suspends the guidance line's announcements
@@ -438,7 +567,10 @@ function Analyzer({
438
567
  ] }) : null
439
568
  ] }),
440
569
  frozen || !live ? /* @__PURE__ */ jsx(View, { style: [styles.phaseLayer, styles.raised], children }) : null,
570
+ !live && card ? /* @__PURE__ */ jsx(View, { style: [styles.liveColumn, styles.raised], children: card }) : null,
441
571
  live ? /* @__PURE__ */ jsxs(View, { style: [styles.liveColumn, styles.raised], children: [
572
+ card,
573
+ modeStrip,
442
574
  sequence ? /* @__PURE__ */ jsx(
443
575
  SequenceStrip,
444
576
  {
@@ -455,18 +587,25 @@ function Analyzer({
455
587
  ShutterTray,
456
588
  {
457
589
  platform,
458
- start: /* @__PURE__ */ jsx(GlassIconButton, { icon: "upload", label: "Upload a photo", onPress: onUpload }),
590
+ start: /* @__PURE__ */ jsx(
591
+ GlassIconButton,
592
+ {
593
+ icon: "upload",
594
+ label: uploadLabel ?? t.uploadPhoto,
595
+ onPress: onUpload
596
+ }
597
+ ),
459
598
  primary: trayPrimary,
460
599
  stack: continuous,
461
600
  end: caps$1.flip ? /* @__PURE__ */ jsx(FlipButton, { onFlip }) : null
462
601
  }
463
602
  ),
464
- /* @__PURE__ */ jsx(Text, { style: [styles.privacy, { color: camInk(theme) }], children: privacyStatement })
603
+ privacyStatement ? /* @__PURE__ */ jsx(Text, { style: [styles.privacy, { color: camInk(theme) }], children: privacyStatement }) : null
465
604
  ] }) : null
466
605
  ]
467
606
  }
468
607
  )
469
- ] });
608
+ ] }) });
470
609
  }
471
610
  var analyzerSheet = createStyleSheet((theme) => ({
472
611
  scrim: {
@@ -477,6 +616,15 @@ var analyzerSheet = createStyleSheet((theme) => ({
477
616
  left: theme.space[0],
478
617
  right: theme.space[0]
479
618
  },
619
+ loading: {
620
+ position: "absolute",
621
+ top: theme.space[0],
622
+ bottom: theme.space[0],
623
+ left: theme.space[0],
624
+ right: theme.space[0],
625
+ alignItems: "center",
626
+ justifyContent: "center"
627
+ },
480
628
  topLayer: {
481
629
  pointerEvents: "box-none",
482
630
  zIndex: 1
@@ -508,6 +656,17 @@ var analyzerSheet = createStyleSheet((theme) => ({
508
656
  paddingHorizontal: theme.space[8],
509
657
  paddingBottom: theme.space[8]
510
658
  },
659
+ targetDot: {
660
+ position: "absolute",
661
+ width: theme.space[12],
662
+ height: theme.space[12],
663
+ marginLeft: -theme.space[12] / 2,
664
+ marginTop: -theme.space[12] / 2,
665
+ borderRadius: theme.radius.full,
666
+ borderWidth: theme.borderWidth.hair,
667
+ borderColor: theme.black.a12,
668
+ backgroundColor: camInk(theme)
669
+ },
511
670
  stretch: {
512
671
  alignSelf: "stretch"
513
672
  },