@btndprojects/loam-ui-native 0.2.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 (365) hide show
  1. package/dist/accordion/index.js +4 -2
  2. package/dist/adaptive/index.js +12 -2
  3. package/dist/address-block/index.js +23 -0
  4. package/dist/alert/index.js +5 -2
  5. package/dist/analyzer/index.js +13 -5
  6. package/dist/announcement/index.js +15 -5
  7. package/dist/appearance-picker/index.js +15 -0
  8. package/dist/audio-player/index.js +26 -2
  9. package/dist/avatar/index.js +2 -2
  10. package/dist/avatar-group/index.js +5 -3
  11. package/dist/badge/index.js +6 -3
  12. package/dist/banner/index.js +3 -2
  13. package/dist/board/index.js +13 -6
  14. package/dist/button/index.js +6 -3
  15. package/dist/camera-permission/index.js +19 -11
  16. package/dist/capture-result/index.js +26 -16
  17. package/dist/card/index.js +7 -3
  18. package/dist/card-form/index.js +15 -9
  19. package/dist/carousel/index.js +3 -1
  20. package/dist/chart/index.js +15 -5
  21. package/dist/charts/index.js +18 -5
  22. package/dist/chat/index.js +35 -10
  23. package/dist/checkbox/index.js +6 -4
  24. package/dist/checklist/index.js +16 -7
  25. package/dist/checkout/index.js +25 -12
  26. package/dist/chip/index.js +7 -4
  27. package/dist/chunk-2BZD3NAP.js +1110 -0
  28. package/dist/chunk-2YKVID2V.js +35 -0
  29. package/dist/{chunk-H7DWSL4O.js → chunk-36DA3IPO.js} +115 -27
  30. package/dist/chunk-3A56MIAN.js +599 -0
  31. package/dist/{chunk-AEB7KCHQ.js → chunk-3SCKCWF5.js} +39 -28
  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-PMMTGBBS.js → chunk-4CZMQDQL.js} +75 -22
  36. package/dist/chunk-4QCR3K2J.js +1 -0
  37. package/dist/{chunk-E2E3I5W2.js → chunk-5DTKORLI.js} +54 -45
  38. package/dist/{chunk-5VFZRGVD.js → chunk-5J4WFXFA.js} +32 -15
  39. package/dist/{chunk-JBMLWFSJ.js → chunk-5KJ7TEQ6.js} +83 -48
  40. package/dist/chunk-5NU33TXK.js +529 -0
  41. package/dist/chunk-6KSUS7DF.js +690 -0
  42. package/dist/{chunk-3WEZCGHX.js → chunk-6RV6UW2J.js} +140 -56
  43. package/dist/chunk-6RZM7RP2.js +520 -0
  44. package/dist/{chunk-JJLPBRVZ.js → chunk-75BDCC7K.js} +2 -0
  45. package/dist/{chunk-U5NLHYV6.js → chunk-7CGJBQUA.js} +333 -22
  46. package/dist/{chunk-I4FHVKEC.js → chunk-7IVF6JLJ.js} +16 -5
  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-2SY63FCH.js → chunk-7NGMUVNU.js} +66 -30
  51. package/dist/chunk-7PBSIXT7.js +355 -0
  52. package/dist/chunk-7QOYGENL.js +443 -0
  53. package/dist/{chunk-TDMG26JI.js → chunk-A7SWYDE5.js} +40 -9
  54. package/dist/chunk-ADHPJALR.js +3051 -0
  55. package/dist/{chunk-ZLTO5VQI.js → chunk-ALJYZLNQ.js} +131 -61
  56. package/dist/{chunk-GDKVKNR2.js → chunk-AQ5FIG74.js} +110 -30
  57. package/dist/chunk-B2MMZZQB.js +426 -0
  58. package/dist/{chunk-QYPE5JX3.js → chunk-B7JZ3N5G.js} +142 -105
  59. package/dist/{chunk-QHTVYA65.js → chunk-BL37SW6G.js} +388 -102
  60. package/dist/chunk-BTRMA7GC.js +21 -0
  61. package/dist/{chunk-FUMHAAF3.js → chunk-C7IUWIUZ.js} +243 -92
  62. package/dist/chunk-CA3DUVYD.js +10 -0
  63. package/dist/{chunk-FYWNRX4F.js → chunk-CBCJSO2B.js} +143 -13
  64. package/dist/chunk-CHPX4MFI.js +239 -0
  65. package/dist/chunk-CLGAMIOT.js +648 -0
  66. package/dist/chunk-CUE7VML6.js +1141 -0
  67. package/dist/{chunk-D5N5QWI7.js → chunk-CVU6S2E5.js} +497 -235
  68. package/dist/{chunk-U23FYWME.js → chunk-CXPQMA6Z.js} +101 -34
  69. package/dist/{chunk-36EC2T6P.js → chunk-D2LN4I7I.js} +1 -1
  70. package/dist/{chunk-TLCIR6RG.js → chunk-D34LNBO5.js} +411 -155
  71. package/dist/{chunk-FV6HMP7W.js → chunk-D4BCQICM.js} +207 -65
  72. package/dist/chunk-EABKIIA4.js +1 -0
  73. package/dist/chunk-EICSYRAG.js +341 -0
  74. package/dist/chunk-EMWAJMAS.js +83 -0
  75. package/dist/chunk-EOLZWRV6.js +149 -0
  76. package/dist/chunk-EOQVTGB6.js +350 -0
  77. package/dist/{chunk-ZVATDZOM.js → chunk-ESGUHNB2.js} +106 -28
  78. package/dist/{chunk-46MMSDGL.js → chunk-F2KNBPKY.js} +104 -73
  79. package/dist/{chunk-KQZ3GLHR.js → chunk-G7H3NX3G.js} +40 -17
  80. package/dist/{chunk-3QMEOFW5.js → chunk-GM7YIPB7.js} +421 -207
  81. package/dist/{chunk-QHAITQIF.js → chunk-GVQQG435.js} +256 -86
  82. package/dist/chunk-HE43OMEL.js +1056 -0
  83. package/dist/{chunk-XIDTBCBA.js → chunk-HHOMFQ7R.js} +1049 -207
  84. package/dist/chunk-HNAKS4Z3.js +207 -0
  85. package/dist/chunk-HP6ST2OW.js +352 -0
  86. package/dist/chunk-HW3OWDTU.js +1 -0
  87. package/dist/{chunk-QP3KMOVF.js → chunk-HZDB44K4.js} +24 -14
  88. package/dist/chunk-I6CUP2LW.js +1155 -0
  89. package/dist/chunk-ICV4Y2WY.js +27 -0
  90. package/dist/chunk-IHSIENOE.js +3950 -0
  91. package/dist/{chunk-T5LTPKX6.js → chunk-IMMALLRU.js} +53 -25
  92. package/dist/{chunk-C4GTDLRC.js → chunk-JA6TK7H2.js} +154 -67
  93. package/dist/{chunk-EVOIGUBI.js → chunk-JAVZ5JPV.js} +43 -13
  94. package/dist/{chunk-CPTOADB2.js → chunk-JCMTP3E4.js} +527 -201
  95. package/dist/{chunk-OJQUBQWA.js → chunk-JCXFFK64.js} +73 -16
  96. package/dist/{chunk-V2OEB75Z.js → chunk-JWCVBFDU.js} +75 -35
  97. package/dist/chunk-JXRTD5RI.js +414 -0
  98. package/dist/chunk-JYIUZUIQ.js +1567 -0
  99. package/dist/chunk-K3TK3GIV.js +219 -0
  100. package/dist/chunk-KEVZIHM2.js +1511 -0
  101. package/dist/{chunk-VAOAKWUK.js → chunk-KHZDNQQD.js} +42 -8
  102. package/dist/chunk-KL4GDV4V.js +131 -0
  103. package/dist/{chunk-Q6NKEPRE.js → chunk-KNILMM4H.js} +73 -28
  104. package/dist/chunk-KRBUZV45.js +25 -0
  105. package/dist/{chunk-7BUIKDD6.js → chunk-KXLDK6HB.js} +91 -30
  106. package/dist/chunk-KZ3X7TSL.js +196 -0
  107. package/dist/{chunk-5UTRIXQ6.js → chunk-L2WMOA2V.js} +187 -43
  108. package/dist/chunk-L4D5LHCH.js +109 -0
  109. package/dist/{chunk-W63AJTM7.js → chunk-LAUJPLDB.js} +236 -71
  110. package/dist/{chunk-TN2ZNJUI.js → chunk-LGNTP5XA.js} +47 -13
  111. package/dist/chunk-LUZFCCSD.js +271 -0
  112. package/dist/{chunk-XTORZWRF.js → chunk-LXJCP4PL.js} +111 -30
  113. package/dist/chunk-MCOZJWPU.js +731 -0
  114. package/dist/{chunk-SATMR6SG.js → chunk-MG4SKWLL.js} +780 -142
  115. package/dist/{chunk-JUYWSSKW.js → chunk-MPEPTSER.js} +95 -16
  116. package/dist/chunk-MWPJ4YGP.js +1 -0
  117. package/dist/{chunk-LUMVGO2K.js → chunk-N7AX4OA4.js} +80 -29
  118. package/dist/chunk-NHSLM6SE.js +523 -0
  119. package/dist/{chunk-IT6FUXXG.js → chunk-NNJLVA7M.js} +43 -11
  120. package/dist/{chunk-TQVAIKFD.js → chunk-NZG75DGA.js} +102 -62
  121. package/dist/chunk-O76QXRBV.js +431 -0
  122. package/dist/chunk-OANH27AK.js +223 -0
  123. package/dist/chunk-OCHPK5YV.js +609 -0
  124. package/dist/chunk-OMHVEVX4.js +436 -0
  125. package/dist/{chunk-SWS5JQIF.js → chunk-ONKQUJWD.js} +187 -60
  126. package/dist/chunk-OVTK7A6T.js +615 -0
  127. package/dist/{chunk-UXGIW7OK.js → chunk-PCEFCOLN.js} +5 -1
  128. package/dist/{chunk-QIKT7LIB.js → chunk-PFLNFIVB.js} +91 -23
  129. package/dist/chunk-PHSZY37H.js +300 -0
  130. package/dist/chunk-PJLTKDVY.js +18 -0
  131. package/dist/{chunk-SHHY5OMK.js → chunk-PK7BN3MI.js} +83 -15
  132. package/dist/{chunk-YXOAPXMU.js → chunk-PWFRDRGS.js} +101 -14
  133. package/dist/{chunk-TY4MTKQJ.js → chunk-PYPMD46W.js} +332 -66
  134. package/dist/chunk-Q6CCHDI7.js +331 -0
  135. package/dist/chunk-QFA5WS2A.js +750 -0
  136. package/dist/chunk-QJMMM4RC.js +124 -0
  137. package/dist/chunk-QYWEVAM6.js +407 -0
  138. package/dist/chunk-R5T4VZ7Z.js +126 -0
  139. package/dist/chunk-R77HFLZD.js +1 -0
  140. package/dist/{chunk-LMPHCVJJ.js → chunk-RAESDNU5.js} +162 -68
  141. package/dist/chunk-RBYQUXNL.js +1 -0
  142. package/dist/chunk-RCM3DT5E.js +1 -0
  143. package/dist/chunk-RGNY56L7.js +282 -0
  144. package/dist/chunk-RIK6UX2K.js +344 -0
  145. package/dist/{chunk-5LAAAXFP.js → chunk-RJA3RXO3.js} +63 -54
  146. package/dist/chunk-RJYRJ3LD.js +1 -0
  147. package/dist/chunk-RMA3NOY4.js +599 -0
  148. package/dist/{chunk-VDPK5CY4.js → chunk-RSWKKAHK.js} +143 -61
  149. package/dist/{chunk-B7N4ASYE.js → chunk-RVOIIX3V.js} +17 -45
  150. package/dist/chunk-SA2RRBGT.js +1077 -0
  151. package/dist/{chunk-7OVVSVEZ.js → chunk-SG3J4R45.js} +440 -169
  152. package/dist/chunk-SPUK7JD4.js +238 -0
  153. package/dist/chunk-SWXV2K5N.js +434 -0
  154. package/dist/chunk-SYJEPXP6.js +1303 -0
  155. package/dist/{chunk-LKFC4CS7.js → chunk-SZLI34TA.js} +18 -9
  156. package/dist/{chunk-NBEF4EPJ.js → chunk-T77WJA74.js} +131 -16
  157. package/dist/chunk-TDWWVJA4.js +630 -0
  158. package/dist/chunk-TFHI5XDR.js +610 -0
  159. package/dist/chunk-TH4PW2WU.js +17 -0
  160. package/dist/chunk-TTQ24HQX.js +12 -0
  161. package/dist/chunk-TUACVJNG.js +12 -0
  162. package/dist/{chunk-F5B3UINI.js → chunk-TUL5RUIA.js} +171 -62
  163. package/dist/{chunk-C6APNDVA.js → chunk-TYOSA7JG.js} +63 -34
  164. package/dist/chunk-TYQTMMEV.js +1 -0
  165. package/dist/{chunk-DW3L54DQ.js → chunk-TZO6YDS7.js} +53 -12
  166. package/dist/{chunk-67IZZ2MJ.js → chunk-U3ETF22F.js} +75 -30
  167. package/dist/{chunk-EDCBJV7J.js → chunk-U6BYHD2N.js} +87 -31
  168. package/dist/{chunk-ENP3BMZU.js → chunk-UF6EJXPQ.js} +16 -1
  169. package/dist/{chunk-IPUNJMAQ.js → chunk-UNNQIPGK.js} +304 -68
  170. package/dist/chunk-UQVO6AJV.js +171 -0
  171. package/dist/{chunk-FZGAAOKS.js → chunk-VFDQAAIW.js} +138 -32
  172. package/dist/chunk-VIUE3VQT.js +1 -0
  173. package/dist/{chunk-5RENVKBQ.js → chunk-VJLSSSGC.js} +126 -30
  174. package/dist/chunk-VLMT6KYT.js +350 -0
  175. package/dist/chunk-VMHGBUGS.js +35 -0
  176. package/dist/{chunk-4IZXHVFJ.js → chunk-VQKPBYW6.js} +228 -172
  177. package/dist/{chunk-G6UESEVN.js → chunk-VSSTWLC5.js} +49 -11
  178. package/dist/{chunk-TRGFFU6A.js → chunk-VZYYZRPN.js} +866 -330
  179. package/dist/{chunk-JLC6PM5S.js → chunk-WAIJCD2V.js} +128 -54
  180. package/dist/chunk-WFMQ3WKM.js +378 -0
  181. package/dist/chunk-WJ2KDRMY.js +66 -0
  182. package/dist/chunk-WKFZJO54.js +437 -0
  183. package/dist/{chunk-QEYFDRHR.js → chunk-WVVD3XOV.js} +146 -84
  184. package/dist/chunk-XAIWMSLB.js +1 -0
  185. package/dist/chunk-XBXUBBJZ.js +98 -0
  186. package/dist/chunk-XCU7MYBJ.js +1 -0
  187. package/dist/chunk-XHE4PGCI.js +717 -0
  188. package/dist/chunk-XRSJ32M3.js +331 -0
  189. package/dist/chunk-XTCVOEAW.js +1 -0
  190. package/dist/chunk-XWGXVQF6.js +58 -0
  191. package/dist/{chunk-MKSNFG7H.js → chunk-Y3XKKO5K.js} +191 -109
  192. package/dist/chunk-Y4QNMBLO.js +533 -0
  193. package/dist/chunk-Y5H4CTKO.js +1 -0
  194. package/dist/chunk-YBQIN75A.js +403 -0
  195. package/dist/{chunk-PNF3NKB5.js → chunk-YJ5PXOX3.js} +28 -11
  196. package/dist/{chunk-M656FYNH.js → chunk-YLRSRUPS.js} +63 -49
  197. package/dist/chunk-YM6MPJ4A.js +1 -0
  198. package/dist/chunk-YV7KZENV.js +200 -0
  199. package/dist/chunk-Z7I4ZSO6.js +316 -0
  200. package/dist/{chunk-EY4DD67D.js → chunk-ZIRMWD2B.js} +199 -126
  201. package/dist/chunk-ZPMG3FWU.js +75 -0
  202. package/dist/{chunk-QRUMA22E.js → chunk-ZTXMK2G7.js} +92 -43
  203. package/dist/{chunk-2OLKPG4E.js → chunk-ZVJCWXAL.js} +189 -87
  204. package/dist/{chunk-YAAHPATV.js → chunk-ZYQ23DPT.js} +49 -34
  205. package/dist/coachmark/index.js +7 -3
  206. package/dist/code-block/index.js +4 -3
  207. package/dist/color-field/index.js +12 -4
  208. package/dist/color-picker/index.js +23 -0
  209. package/dist/commerce/index.js +27 -16
  210. package/dist/confirm/index.js +31 -0
  211. package/dist/connection-card/index.js +34 -0
  212. package/dist/connectivity/index.js +3 -2
  213. package/dist/context-menu/index.js +10 -2
  214. package/dist/copy-button/index.js +3 -2
  215. package/dist/data-grid/index.js +30 -17
  216. package/dist/date-range-picker/index.js +19 -9
  217. package/dist/description-list/index.js +4 -1
  218. package/dist/device-frame/index.js +30 -0
  219. package/dist/dialog/index.js +8 -2
  220. package/dist/divider/index.js +2 -0
  221. package/dist/empty-state/index.js +13 -2
  222. package/dist/error-summary/index.js +7 -2
  223. package/dist/fab/index.js +4 -2
  224. package/dist/file-manager/index.js +33 -17
  225. package/dist/file-upload/index.js +12 -6
  226. package/dist/filter-bar/index.js +10 -6
  227. package/dist/flow-run/index.js +19 -12
  228. package/dist/form/index.js +30 -3
  229. package/dist/gallery/index.js +5 -2
  230. package/dist/hold-to-confirm/index.js +4 -2
  231. package/dist/hover-card/index.js +18 -0
  232. package/dist/icon-tile/index.js +10 -0
  233. package/dist/image/index.js +9 -0
  234. package/dist/index.d.ts +29826 -17941
  235. package/dist/index.js +197 -141
  236. package/dist/infinite-list/index.js +4 -2
  237. package/dist/inline-edit/index.js +5 -4
  238. package/dist/input/index.js +4 -3
  239. package/dist/interactions/index.js +4 -1
  240. package/dist/invoice/index.js +18 -9
  241. package/dist/job-row/index.js +22 -0
  242. package/dist/json-inspector/index.js +20 -0
  243. package/dist/kbd/index.js +2 -2
  244. package/dist/keyboard/index.js +7 -2
  245. package/dist/level-meter/index.js +9 -0
  246. package/dist/list-row/index.js +11 -3
  247. package/dist/log-viewer/index.js +9 -2
  248. package/dist/map-view/index.js +13 -2
  249. package/dist/markdown/index.js +8 -5
  250. package/dist/metric/index.js +6 -3
  251. package/dist/metric-strip/index.js +12 -0
  252. package/dist/money/index.js +11 -4
  253. package/dist/nav-drawer/index.js +6 -2
  254. package/dist/nav-header/index.js +10 -4
  255. package/dist/navigation/index.js +29 -2
  256. package/dist/notification-center/index.js +24 -10
  257. package/dist/number-roll/index.js +3 -1
  258. package/dist/onboarding-pager/index.js +22 -0
  259. package/dist/one-handed/index.js +2 -2
  260. package/dist/os-surfaces/index.js +6 -3
  261. package/dist/otp/index.js +5 -4
  262. package/dist/page-header/index.js +2 -1
  263. package/dist/pagination/index.js +4 -2
  264. package/dist/payment-method/index.js +17 -11
  265. package/dist/payment-status/index.js +22 -14
  266. package/dist/permission/index.js +18 -2
  267. package/dist/picker/index.js +17 -6
  268. package/dist/progress/index.js +7 -2
  269. package/dist/provenance/index.js +16 -0
  270. package/dist/pull-to-refresh/index.js +2 -2
  271. package/dist/qr-code/index.js +16 -0
  272. package/dist/query-builder/index.js +30 -0
  273. package/dist/radio-group/index.js +6 -4
  274. package/dist/rating/index.js +7 -2
  275. package/dist/receivables/index.js +31 -18
  276. package/dist/recording-indicator/index.js +21 -0
  277. package/dist/refund/index.js +24 -15
  278. package/dist/repeatable-rows/index.js +19 -0
  279. package/dist/save-status/index.js +5 -3
  280. package/dist/screen/index.js +3 -0
  281. package/dist/scroll-area/index.js +1 -1
  282. package/dist/search-field/index.js +8 -3
  283. package/dist/secret-field/index.js +19 -0
  284. package/dist/section-header/index.js +4 -0
  285. package/dist/segmented-control/index.js +2 -2
  286. package/dist/sheet/index.js +9 -3
  287. package/dist/shortcuts-sheet/index.js +2 -0
  288. package/dist/sign-in-screen/index.js +25 -0
  289. package/dist/skeleton/index.js +3 -1
  290. package/dist/slider/index.js +2 -1
  291. package/dist/sortable/index.js +4 -3
  292. package/dist/spinner/index.js +2 -1
  293. package/dist/split-button/index.js +17 -5
  294. package/dist/spotlight/index.js +7 -1
  295. package/dist/stack/index.js +2 -0
  296. package/dist/stage-timeline/index.js +6 -3
  297. package/dist/status-dot/index.js +6 -2
  298. package/dist/stepper/index.js +7 -3
  299. package/dist/streaming-text/index.js +2 -1
  300. package/dist/survey/index.js +24 -14
  301. package/dist/switch/index.js +6 -2
  302. package/dist/system-state/index.js +12 -4
  303. package/dist/tab-bar/index.js +10 -2
  304. package/dist/tabs/index.js +10 -2
  305. package/dist/tags-input/index.js +8 -5
  306. package/dist/text/index.js +4 -0
  307. package/dist/textarea/index.js +5 -4
  308. package/dist/thinking/index.js +4 -1
  309. package/dist/tile-rail/index.js +10 -0
  310. package/dist/time-field/index.js +15 -7
  311. package/dist/time-range-control/index.js +26 -12
  312. package/dist/timeline/index.js +2 -2
  313. package/dist/toast/index.js +4 -2
  314. package/dist/toolbar/index.js +3 -2
  315. package/dist/tour/index.js +12 -10
  316. package/dist/transcript/index.js +28 -0
  317. package/dist/truncation-notice/index.js +2 -2
  318. package/dist/update-notice/index.js +15 -8
  319. package/dist/video-player/index.js +26 -2
  320. package/dist/viewfinder/index.js +12 -4
  321. package/dist/widget/index.js +11 -4
  322. package/dist/wizard/index.js +7 -4
  323. package/package.json +13 -13
  324. package/dist/chunk-2PKYGLQ6.js +0 -268
  325. package/dist/chunk-2SWKL3AJ.js +0 -466
  326. package/dist/chunk-2TXERVVA.js +0 -1081
  327. package/dist/chunk-3DUWIYV5.js +0 -437
  328. package/dist/chunk-3NMD74ZU.js +0 -4
  329. package/dist/chunk-4DS5ZWVC.js +0 -83
  330. package/dist/chunk-6YAQBXB3.js +0 -93
  331. package/dist/chunk-74FLKD24.js +0 -237
  332. package/dist/chunk-CMTVNF3D.js +0 -104
  333. package/dist/chunk-DN7MNQIP.js +0 -799
  334. package/dist/chunk-DVGBZ3TX.js +0 -455
  335. package/dist/chunk-F3H33DQX.js +0 -300
  336. package/dist/chunk-FAJI7BSC.js +0 -443
  337. package/dist/chunk-G3AFC24V.js +0 -60
  338. package/dist/chunk-HJLPZA4X.js +0 -369
  339. package/dist/chunk-HYEOQWT7.js +0 -647
  340. package/dist/chunk-IDM7JJMO.js +0 -110
  341. package/dist/chunk-IVKMZ7BB.js +0 -326
  342. package/dist/chunk-IXKWIFWZ.js +0 -334
  343. package/dist/chunk-JV5YOTOB.js +0 -164
  344. package/dist/chunk-KFJGFLMW.js +0 -158
  345. package/dist/chunk-LQP4KEXZ.js +0 -214
  346. package/dist/chunk-NTQ2F3AU.js +0 -257
  347. package/dist/chunk-O5V4TG3V.js +0 -329
  348. package/dist/chunk-OWAMM2DK.js +0 -280
  349. package/dist/chunk-PID3NJB7.js +0 -405
  350. package/dist/chunk-QDZGFXQD.js +0 -176
  351. package/dist/chunk-QPWDDJJ4.js +0 -385
  352. package/dist/chunk-ROCUG24E.js +0 -416
  353. package/dist/chunk-RU3ZPNL6.js +0 -1986
  354. package/dist/chunk-RXSCIO6W.js +0 -153
  355. package/dist/chunk-SKWO3SZF.js +0 -2284
  356. package/dist/chunk-UQGBTPXH.js +0 -218
  357. package/dist/chunk-UYGDJWMN.js +0 -273
  358. package/dist/chunk-W74TXYFB.js +0 -107
  359. package/dist/chunk-WRDSPUE7.js +0 -417
  360. package/dist/chunk-XBZGDDMR.js +0 -105
  361. package/dist/chunk-XN4KG3P4.js +0 -1040
  362. package/dist/chunk-XQXMLMH3.js +0 -211
  363. package/dist/chunk-ZECZOOSB.js +0 -245
  364. /package/dist/{chunk-VFCUIDRT.js → chunk-3BKLBYPK.js} +0 -0
  365. /package/dist/{chunk-GEIGMWNF.js → chunk-QNZII37O.js} +0 -0
@@ -1,14 +1,17 @@
1
- import { CardBrandMark } from './chunk-ROCUG24E.js';
2
- import { usePayLabels } from './chunk-GEIGMWNF.js';
3
- import { Checkbox } from './chunk-Q6NKEPRE.js';
4
- import { TextField, useColorTransition } from './chunk-7BUIKDD6.js';
5
- import { NO_UA_FOCUS_RING } from './chunk-3NMD74ZU.js';
1
+ import { CardBrandMark } from './chunk-TDWWVJA4.js';
2
+ import { usePayLabels } from './chunk-QNZII37O.js';
3
+ import { Checkbox } from './chunk-KNILMM4H.js';
4
+ import { softToneSkin } from './chunk-PJLTKDVY.js';
5
+ import { TextField, useColorTransition } from './chunk-KXLDK6HB.js';
6
+ import { fieldSurfaceFill } from './chunk-43K3BLXV.js';
7
+ import { isAndroidIdiom } from './chunk-TH4PW2WU.js';
6
8
  import { useLabels } from './chunk-APCWFOZW.js';
7
- import { Icon } from './chunk-UXGIW7OK.js';
9
+ import { NO_UA_FOCUS_RING } from './chunk-2YKVID2V.js';
10
+ import { Icon } from './chunk-PCEFCOLN.js';
8
11
  import { useResolvedMotion, springConfig } from './chunk-J64KGCGX.js';
9
12
  import * as React from 'react';
10
- import { Text, useWindowDimensions, View, Easing, Animated, TextInput } from 'react-native';
11
- import { createStyleSheet, useStyles, useLoamTheme } from '@btndprojects/loam-theme-native';
13
+ import { Text, useWindowDimensions, View, Easing, Animated, TextInput, ActivityIndicator, Pressable } from 'react-native';
14
+ import { createStyleSheet, useLoamTheme, useStyles } from '@btndprojects/loam-theme-native';
12
15
  import { formatCard, formatExpiry, validCardNumber, resolvePayLabels, validExpiry, validCvc } from '@btndprojects/loam-pay';
13
16
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
14
17
 
@@ -22,6 +25,7 @@ var DEFAULT_LABELS = {
22
25
  saveCard: "Save this card for next time",
23
26
  testHint: "Test with 4242 4242 4242 4242 \xB7 12/34 \xB7 any code",
24
27
  valid: "Valid",
28
+ validating: "Validating",
25
29
  numberPlaceholder: "1234 5678 9012 3456"
26
30
  };
27
31
  function BrandSwap({ brand }) {
@@ -37,9 +41,15 @@ function BrandSwap({ brand }) {
37
41
  t.setValue(0);
38
42
  const done = () => setShown((s) => ({ ...s, prev: null }));
39
43
  if (theme.reduceMotion) {
40
- Animated.timing(t, { toValue: 1, duration: theme.duration.fast, useNativeDriver: true }).start(done);
44
+ Animated.timing(t, {
45
+ toValue: 1,
46
+ duration: theme.duration.fast,
47
+ useNativeDriver: true
48
+ }).start(done);
41
49
  } else {
42
- Animated.spring(t, { ...springConfig(theme, "fs"), toValue: 1, useNativeDriver: true }).start(done);
50
+ Animated.spring(t, { ...springConfig(theme, "fs"), toValue: 1, useNativeDriver: true }).start(
51
+ done
52
+ );
43
53
  }
44
54
  }, [shown.prev, t, theme]);
45
55
  const rise = theme.reduceMotion ? 0 : 6;
@@ -50,8 +60,14 @@ function BrandSwap({ brand }) {
50
60
  pointerEvents: "none",
51
61
  style: {
52
62
  position: "absolute",
53
- opacity: t.interpolate({ inputRange: [0, 1], outputRange: [1, 0], extrapolate: "clamp" }),
54
- transform: [{ translateY: t.interpolate({ inputRange: [0, 1], outputRange: [0, -rise] }) }]
63
+ opacity: t.interpolate({
64
+ inputRange: [0, 1],
65
+ outputRange: [1, 0],
66
+ extrapolate: "clamp"
67
+ }),
68
+ transform: [
69
+ { translateY: t.interpolate({ inputRange: [0, 1], outputRange: [0, -rise] }) }
70
+ ]
55
71
  },
56
72
  children: /* @__PURE__ */ jsx(CardBrandMark, { brand: shown.prev })
57
73
  }
@@ -61,7 +77,9 @@ function BrandSwap({ brand }) {
61
77
  {
62
78
  style: {
63
79
  opacity: shown.prev ? t.interpolate({ inputRange: [0, 1], outputRange: [0, 1], extrapolate: "clamp" }) : 1,
64
- transform: [{ translateY: t.interpolate({ inputRange: [0, 1], outputRange: [rise, 0] }) }]
80
+ transform: [
81
+ { translateY: t.interpolate({ inputRange: [0, 1], outputRange: [rise, 0] }) }
82
+ ]
65
83
  },
66
84
  children: /* @__PURE__ */ jsx(CardBrandMark, { brand: shown.cur })
67
85
  }
@@ -76,14 +94,40 @@ function ExpiryHint({
76
94
  hint,
77
95
  error,
78
96
  nativeID,
97
+ size = "sm",
98
+ variant = "plain",
79
99
  style,
80
100
  testID
81
101
  }) {
102
+ const theme = useLoamTheme("card-form");
82
103
  const { styles } = useStyles(sheet, { invalid: Boolean(error) });
83
104
  const message = error ?? hint;
84
105
  if (message === void 0 || message === "") return null;
85
- return /* @__PURE__ */ jsx(Text, { nativeID, testID, style: [styles.message, style], children: message });
106
+ return /* @__PURE__ */ jsx(
107
+ Text,
108
+ {
109
+ nativeID,
110
+ testID,
111
+ style: [
112
+ styles.message,
113
+ size === "md" ? { fontSize: theme.type.footnote.fontSize, minHeight: theme.type.footnote.lineHeight } : null,
114
+ variant === "soft" ? {
115
+ alignSelf: "flex-start",
116
+ paddingHorizontal: theme.space.s2,
117
+ borderRadius: theme.radius.sm,
118
+ backgroundColor: error ? theme.color.dangerSoft : theme.color.surface2
119
+ } : null,
120
+ style
121
+ ],
122
+ children: message
123
+ }
124
+ );
86
125
  }
126
+ var WALLET_CONTENT_TYPE = {
127
+ "cc-number": "creditCardNumber",
128
+ "cc-exp": "creditCardExpiration",
129
+ "cc-csc": "creditCardSecurityCode"
130
+ };
87
131
  function DigitsField({
88
132
  field,
89
133
  label,
@@ -99,7 +143,18 @@ function DigitsField({
99
143
  error,
100
144
  valid,
101
145
  onBlur,
146
+ tone: toneProp = "neutral",
147
+ leadingIcon,
148
+ trailingIcon,
149
+ clearable = false,
150
+ clearLabel = "Clear",
102
151
  motion = "full",
152
+ surface = "filled",
153
+ disabled = false,
154
+ size = "lg",
155
+ loading = false,
156
+ readOnly = false,
157
+ platform,
103
158
  testHintText,
104
159
  trailing,
105
160
  labels: labelsProp,
@@ -109,10 +164,11 @@ function DigitsField({
109
164
  const labels = useLabels("cardForm", DEFAULT_LABELS, labelsProp);
110
165
  const theme = useLoamTheme("card-form");
111
166
  const hasError = Boolean(error);
112
- const { styles } = useStyles(sheet, { invalid: hasError });
167
+ const { styles } = useStyles(sheet, { invalid: hasError, size });
113
168
  const labelId = React.useId();
114
169
  const messageId = React.useId();
115
170
  const testId = React.useId();
171
+ const android = isAndroidIdiom(theme, platform);
116
172
  const [focused, setFocused] = React.useState(false);
117
173
  const run = React.useContext(CardRunContext);
118
174
  const inputRef = React.useRef(null);
@@ -121,8 +177,9 @@ function DigitsField({
121
177
  focusRef.current = () => inputRef.current?.focus();
122
178
  const register = run?.register;
123
179
  React.useEffect(() => register?.(field, () => focusRef.current()), [register, field]);
124
- const isValid = Boolean(valid) && !hasError;
125
- const tone = hasError ? { border: theme.color.danger, fill: theme.color.dangerSoft } : focused ? { border: theme.focus.ringColor, fill: theme.color.surface } : { border: theme.color.borderStrong, fill: theme.color.surface2 };
180
+ const isLoading = loading && !disabled;
181
+ const isValid = Boolean(valid) && !hasError && !isLoading;
182
+ const tone = readOnly ? { border: theme.color.border, fill: fieldSurfaceFill(theme, surface) } : hasError ? { border: theme.color.danger, fill: theme.color.dangerSoft } : focused ? { border: theme.focus.ringColor, fill: theme.color.surface } : toneProp !== "neutral" ? { border: softToneSkin(theme, toneProp).edge, fill: fieldSurfaceFill(theme, surface) } : { border: theme.color.borderStrong, fill: fieldSurfaceFill(theme, surface) };
126
183
  const animate = useResolvedMotion(motion, "card-form") === "full";
127
184
  const easing = React.useMemo(() => Easing.bezier(...theme.easing.base), [theme.easing.base]);
128
185
  const borderColor = useColorTransition(tone.border, theme.duration.base, easing, animate);
@@ -132,47 +189,101 @@ function DigitsField({
132
189
  };
133
190
  const describedBy = [hasError || hint ? messageId : null, testHintText ? testId : null].filter(Boolean).join(" ");
134
191
  return /* @__PURE__ */ jsxs(View, { style: [styles.field, style], children: [
135
- /* @__PURE__ */ jsx(Text, { nativeID: labelId, style: styles.label, children: label }),
136
- /* @__PURE__ */ jsxs(Animated.View, { style: [styles.box, { borderColor, backgroundColor }], children: [
137
- /* @__PURE__ */ jsx(
138
- TextInput,
139
- {
140
- ref: inputRef,
141
- testID,
142
- value: format(digits),
143
- onChangeText: (typed) => onDigits(normalize(typed)),
144
- onKeyPress: handleKeyPress,
145
- onFocus: () => setFocused(true),
146
- onBlur: () => {
147
- setFocused(false);
148
- onBlur?.();
149
- },
150
- autoComplete,
151
- inputMode: "numeric",
152
- keyboardType: "number-pad",
153
- placeholder,
154
- placeholderTextColor: theme.color.text3,
155
- maxLength,
156
- "aria-labelledby": labelId,
157
- style: [styles.input, NO_UA_FOCUS_RING],
158
- ...{
159
- "aria-invalid": hasError || void 0,
160
- "aria-describedby": describedBy || void 0
161
- }
162
- }
163
- ),
164
- hasError ? /* @__PURE__ */ jsx(View, { "aria-hidden": true, children: /* @__PURE__ */ jsx(Icon, { name: "alert-triangle", size: theme.ctl.icon.lg, color: theme.color.dangerOnSoft }) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
165
- trailing,
166
- isValid ? /* @__PURE__ */ jsx(View, { accessibilityRole: "image", accessibilityLabel: labels.valid, children: /* @__PURE__ */ jsx(
167
- Icon,
168
- {
169
- name: "check-circle",
170
- size: theme.ctl.icon.lg,
171
- color: theme.color.goodOnSoft
172
- }
173
- ) }) : null
174
- ] })
175
- ] }),
192
+ /* @__PURE__ */ jsx(
193
+ Text,
194
+ {
195
+ nativeID: labelId,
196
+ style: [
197
+ styles.label,
198
+ android ? { fontSize: theme.fontSize[14], fontWeight: theme.fontWeight.medium } : { fontSize: theme.fontSize[13], fontWeight: theme.fontWeight.semibold }
199
+ ],
200
+ children: label
201
+ }
202
+ ),
203
+ /* @__PURE__ */ jsxs(
204
+ Animated.View,
205
+ {
206
+ style: [
207
+ styles.box,
208
+ { borderColor, backgroundColor },
209
+ disabled ? { opacity: theme.state.disabledOpacity } : null
210
+ ],
211
+ children: [
212
+ leadingIcon ? /* @__PURE__ */ jsx(Icon, { name: leadingIcon, size: theme.ctl.icon[size], color: theme.color.text3 }) : null,
213
+ /* @__PURE__ */ jsx(
214
+ TextInput,
215
+ {
216
+ ref: inputRef,
217
+ editable: !disabled && !readOnly,
218
+ "aria-busy": isLoading || void 0,
219
+ "aria-readonly": readOnly || void 0,
220
+ testID,
221
+ value: format(digits),
222
+ onChangeText: (typed) => onDigits(normalize(typed)),
223
+ onKeyPress: handleKeyPress,
224
+ onFocus: () => setFocused(true),
225
+ onBlur: () => {
226
+ setFocused(false);
227
+ onBlur?.();
228
+ },
229
+ autoComplete,
230
+ textContentType: WALLET_CONTENT_TYPE[autoComplete],
231
+ importantForAutofill: android ? "yes" : void 0,
232
+ inputMode: "numeric",
233
+ keyboardType: "number-pad",
234
+ placeholder,
235
+ placeholderTextColor: theme.color.text3,
236
+ maxLength,
237
+ "aria-labelledby": labelId,
238
+ style: [styles.input, NO_UA_FOCUS_RING],
239
+ ...{
240
+ "aria-invalid": hasError || void 0,
241
+ // Dimmed fields are not held to the text-contrast floor (a disabled control is exempt).
242
+ "aria-disabled": disabled || void 0,
243
+ "aria-describedby": describedBy || void 0
244
+ }
245
+ }
246
+ ),
247
+ isLoading ? /* @__PURE__ */ jsx(
248
+ ActivityIndicator,
249
+ {
250
+ testID: "card-field-spinner",
251
+ size: "small",
252
+ color: theme.color.accent,
253
+ accessibilityLabel: labels.validating
254
+ }
255
+ ) : hasError ? /* @__PURE__ */ jsx(View, { "aria-hidden": true, children: /* @__PURE__ */ jsx(
256
+ Icon,
257
+ {
258
+ name: "alert-triangle",
259
+ size: theme.ctl.icon[size],
260
+ color: theme.color.dangerOnSoft
261
+ }
262
+ ) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
263
+ clearable && !disabled && !readOnly && digits.length > 0 ? /* @__PURE__ */ jsx(
264
+ Pressable,
265
+ {
266
+ accessibilityRole: "button",
267
+ accessibilityLabel: clearLabel,
268
+ onPress: () => onDigits(""),
269
+ hitSlop: theme.space.s2,
270
+ children: /* @__PURE__ */ jsx(Icon, { name: "x", size: theme.ctl.icon[size], color: theme.color.text3 })
271
+ }
272
+ ) : null,
273
+ trailing,
274
+ trailingIcon ? /* @__PURE__ */ jsx(Icon, { name: trailingIcon, size: theme.ctl.icon[size], color: theme.color.text3 }) : null,
275
+ isValid ? /* @__PURE__ */ jsx(View, { accessibilityRole: "image", accessibilityLabel: labels.valid, children: /* @__PURE__ */ jsx(
276
+ Icon,
277
+ {
278
+ name: "check-circle",
279
+ size: theme.ctl.icon[size],
280
+ color: theme.color.goodOnSoft
281
+ }
282
+ ) }) : null
283
+ ] })
284
+ ]
285
+ }
286
+ ),
176
287
  /* @__PURE__ */ jsx(ExpiryHint, { nativeID: messageId, hint, error }),
177
288
  testHintText ? /* @__PURE__ */ jsx(Text, { nativeID: testId, style: styles.testHint, children: testHintText }) : null
178
289
  ] });
@@ -189,7 +300,18 @@ function CardNumberField({
189
300
  onChange,
190
301
  onComplete,
191
302
  onBlur,
303
+ tone,
304
+ leadingIcon,
305
+ trailingIcon,
306
+ clearable,
307
+ clearLabel,
192
308
  motion,
309
+ surface,
310
+ disabled,
311
+ size,
312
+ loading,
313
+ readOnly,
314
+ platform,
193
315
  labels: labelsProp,
194
316
  style,
195
317
  testID
@@ -217,7 +339,18 @@ function CardNumberField({
217
339
  error,
218
340
  valid,
219
341
  onBlur,
342
+ tone,
343
+ leadingIcon,
344
+ trailingIcon,
345
+ clearable,
346
+ clearLabel,
220
347
  motion,
348
+ surface,
349
+ disabled,
350
+ size,
351
+ loading,
352
+ readOnly,
353
+ platform,
221
354
  autoComplete: "cc-number",
222
355
  placeholder: labels.numberPlaceholder,
223
356
  labels: labelsProp,
@@ -238,7 +371,18 @@ function ExpiryField({
238
371
  onComplete,
239
372
  onBackspaceOut,
240
373
  onBlur,
374
+ tone,
375
+ leadingIcon,
376
+ trailingIcon,
377
+ clearable,
378
+ clearLabel,
241
379
  motion,
380
+ surface,
381
+ disabled,
382
+ size,
383
+ loading,
384
+ readOnly,
385
+ platform,
242
386
  labels: labelsProp,
243
387
  style,
244
388
  testID
@@ -265,7 +409,18 @@ function ExpiryField({
265
409
  error,
266
410
  valid,
267
411
  onBlur,
412
+ tone,
413
+ leadingIcon,
414
+ trailingIcon,
415
+ clearable,
416
+ clearLabel,
268
417
  motion,
418
+ surface,
419
+ disabled,
420
+ size,
421
+ loading,
422
+ readOnly,
423
+ platform,
269
424
  autoComplete: "cc-exp",
270
425
  placeholder: labels.expiryHint,
271
426
  labels: labelsProp,
@@ -286,7 +441,18 @@ function CvcField({
286
441
  onComplete,
287
442
  onBackspaceOut,
288
443
  onBlur,
444
+ tone,
445
+ leadingIcon,
446
+ trailingIcon,
447
+ clearable,
448
+ clearLabel,
289
449
  motion,
450
+ surface,
451
+ disabled,
452
+ size,
453
+ loading,
454
+ readOnly,
455
+ platform,
290
456
  labels: labelsProp,
291
457
  style,
292
458
  testID
@@ -317,7 +483,18 @@ function CvcField({
317
483
  error,
318
484
  valid,
319
485
  onBlur,
486
+ tone,
487
+ leadingIcon,
488
+ trailingIcon,
489
+ clearable,
490
+ clearLabel,
320
491
  motion,
492
+ surface,
493
+ disabled,
494
+ size,
495
+ loading,
496
+ readOnly,
497
+ platform,
321
498
  autoComplete: "cc-csc",
322
499
  placeholder: digits === 4 ? "1234" : "123",
323
500
  maxLength: digits,
@@ -331,8 +508,6 @@ var sheet = createStyleSheet((theme) => ({
331
508
  field: { flexShrink: 1, flexGrow: 1, gap: theme.space.s2 },
332
509
  label: {
333
510
  fontFamily: theme.font.sans,
334
- fontWeight: theme.fontWeight.semibold,
335
- fontSize: theme.fontSize[12],
336
511
  variants: {
337
512
  // The label turns danger with the field, so the failure is carried by the
338
513
  // label, the edge, the glyph and the message — never colour alone.
@@ -352,7 +527,33 @@ var sheet = createStyleSheet((theme) => ({
352
527
  // The reference draws a 1.5px field edge — the static `thick` weight.
353
528
  borderWidth: theme.borderWidth.thick,
354
529
  variants: {
355
- invalid: { true: {}, false: {} }
530
+ invalid: { true: {}, false: {} },
531
+ size: {
532
+ xs: {
533
+ height: theme.ctl.xs,
534
+ paddingHorizontal: theme.ctl.px.xs,
535
+ gap: theme.ctl.gap.xs,
536
+ borderRadius: theme.ctl.r.xs
537
+ },
538
+ sm: {
539
+ height: theme.ctl.sm,
540
+ paddingHorizontal: theme.ctl.px.sm,
541
+ gap: theme.ctl.gap.sm,
542
+ borderRadius: theme.ctl.r.sm
543
+ },
544
+ md: {
545
+ height: theme.ctl.md,
546
+ paddingHorizontal: theme.ctl.px.md,
547
+ gap: theme.ctl.gap.md,
548
+ borderRadius: theme.ctl.r.md
549
+ },
550
+ lg: {
551
+ height: theme.ctl.lg,
552
+ paddingHorizontal: theme.ctl.px.lg,
553
+ gap: theme.ctl.gap.lg,
554
+ borderRadius: theme.ctl.r.lg
555
+ }
556
+ }
356
557
  }
357
558
  },
358
559
  input: {
@@ -368,7 +569,13 @@ var sheet = createStyleSheet((theme) => ({
368
569
  // P11: a card number is a run of figures and lines up like one.
369
570
  fontVariant: ["tabular-nums"],
370
571
  variants: {
371
- invalid: { true: {}, false: {} }
572
+ invalid: { true: {}, false: {} },
573
+ size: {
574
+ xs: { fontSize: theme.ctl.fs.xs },
575
+ sm: { fontSize: theme.ctl.fs.sm },
576
+ md: { fontSize: theme.ctl.fs.md },
577
+ lg: { fontSize: theme.ctl.fs.lg }
578
+ }
372
579
  }
373
580
  },
374
581
  message: {
@@ -378,14 +585,15 @@ var sheet = createStyleSheet((theme) => ({
378
585
  minHeight: theme.fontSize[12] * theme.lineHeight.normal,
379
586
  variants: {
380
587
  invalid: {
381
- true: { fontWeight: theme.fontWeight.bold, color: theme.color.danger },
588
+ true: { fontWeight: theme.fontWeight.regular, color: theme.color.dangerOnSoft },
382
589
  false: { color: theme.color.text3 }
383
590
  }
384
591
  }
385
592
  },
386
593
  testHint: {
387
594
  fontFamily: theme.font.mono,
388
- fontSize: theme.fontSize[10],
595
+ fontSize: theme.type.caption1.fontSize,
596
+ lineHeight: theme.type.caption1.lineHeight,
389
597
  color: theme.color.text3
390
598
  }
391
599
  }));
@@ -415,6 +623,13 @@ function CardForm({
415
623
  save = false,
416
624
  layout = "auto",
417
625
  testHint = false,
626
+ platform,
627
+ surface,
628
+ disabled = false,
629
+ size,
630
+ loading,
631
+ density = "comfortable",
632
+ tone,
418
633
  now = 0,
419
634
  saveLabel,
420
635
  labels: labelsProp,
@@ -462,8 +677,8 @@ function CardForm({
462
677
  });
463
678
  onFieldBlur?.(field);
464
679
  };
465
- return /* @__PURE__ */ jsx(CardRunContext.Provider, { value: run, children: /* @__PURE__ */ jsxs(View, { testID, style: [styles.form, style], children: [
466
- /* @__PURE__ */ jsxs(View, { style: styles.fields, children: [
680
+ return /* @__PURE__ */ jsx(CardRunContext.Provider, { value: run, children: /* @__PURE__ */ jsxs(View, { testID, style: [styles.form, density === "compact" ? { gap: theme.space.s2 } : null, style], children: [
681
+ /* @__PURE__ */ jsxs(View, { style: [styles.fields, density === "compact" ? { gap: theme.space.s2 } : null], children: [
467
682
  /* @__PURE__ */ jsx(
468
683
  CardNumberField,
469
684
  {
@@ -473,6 +688,12 @@ function CardForm({
473
688
  valid: validFor("number"),
474
689
  testHint,
475
690
  labels: labelsProp,
691
+ platform,
692
+ surface,
693
+ disabled,
694
+ size,
695
+ tone,
696
+ loading,
476
697
  style: styles.numberField,
477
698
  onChange: (raw) => onChange({ number: raw }),
478
699
  onComplete: () => focus("expiry"),
@@ -486,6 +707,12 @@ function CardForm({
486
707
  error: errorFor("expiry"),
487
708
  valid: validFor("expiry"),
488
709
  labels: labelsProp,
710
+ platform,
711
+ surface,
712
+ disabled,
713
+ size,
714
+ tone,
715
+ loading,
489
716
  onChange: (raw) => onChange({ expiry: raw }),
490
717
  onComplete: () => focus("cvc"),
491
718
  onBackspaceOut: () => focus("number"),
@@ -500,6 +727,12 @@ function CardForm({
500
727
  error: errorFor("cvc"),
501
728
  valid: validFor("cvc"),
502
729
  labels: labelsProp,
730
+ platform,
731
+ surface,
732
+ disabled,
733
+ size,
734
+ tone,
735
+ loading,
503
736
  onChange: (raw) => onChange({ cvc: raw }),
504
737
  onBackspaceOut: () => focus("expiry"),
505
738
  onBlur: handleBlur("cvc")
@@ -511,7 +744,9 @@ function CardForm({
511
744
  {
512
745
  label: labels.nameOnCard,
513
746
  autoComplete: "cc-name",
514
- size: "lg",
747
+ size: size ?? "lg",
748
+ surface,
749
+ editable: !disabled,
515
750
  value: value.name ?? "",
516
751
  error: errors?.name,
517
752
  onChangeText: (next) => onChange({ name: next }),
@@ -523,7 +758,8 @@ function CardForm({
523
758
  {
524
759
  checked: save,
525
760
  onCheckedChange: (next) => onSaveChange?.(next),
526
- label: saveLabel ?? labels.saveCard
761
+ label: saveLabel ?? labels.saveCard,
762
+ disabled
527
763
  }
528
764
  ) }) : null
529
765
  ] }) });