@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,394 +0,0 @@
1
- import { NO_UA_FOCUS_RING } from './chunk-3NMD74ZU.js';
2
- import { useResolvedMotion } from './chunk-6N33LFQA.js';
3
- import { Icon } from './chunk-TKVFVF5D.js';
4
- import * as React from 'react';
5
- import { View, TextInput, ScrollView, Text, Animated, Pressable, Easing } from 'react-native';
6
- import { createStyleSheet, useStyles, useLoamTheme } from '@btndprojects/loam-theme-native';
7
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
-
9
- var LEADING_ICON = 18;
10
- var CANCEL_WIDTH = 52;
11
- var RECENTS_MAX_H = 120;
12
- function SearchBar({
13
- data,
14
- recents = [],
15
- onSelect,
16
- placeholder = "Search",
17
- value,
18
- defaultValue = "",
19
- onChangeText
20
- }) {
21
- const { styles } = useStyles(sheet);
22
- const theme = useLoamTheme();
23
- const iconColor = theme.color.text3;
24
- const [focused, setFocused] = React.useState(false);
25
- const isControlled = value !== void 0;
26
- const [internal, setInternal] = React.useState(defaultValue);
27
- const query = isControlled ? value : internal;
28
- const handleChangeText = (text) => {
29
- if (!isControlled) setInternal(text);
30
- onChangeText?.(text);
31
- };
32
- const isEmpty = query.length === 0;
33
- const needle = query.toLowerCase();
34
- const matches = isEmpty ? [] : data.filter((item) => item.toLowerCase().includes(needle));
35
- const renderRow = (item, leading) => /* @__PURE__ */ jsxs(
36
- Pressable,
37
- {
38
- accessibilityRole: "button",
39
- accessibilityLabel: item,
40
- onPress: onSelect ? () => onSelect(item) : void 0,
41
- style: ({ pressed }) => [styles.row, pressed ? styles.rowPressed : null],
42
- children: [
43
- /* @__PURE__ */ jsx(Icon, { name: leading, size: LEADING_ICON, color: iconColor }),
44
- /* @__PURE__ */ jsx(Text, { style: styles.rowLabel, numberOfLines: 1, children: item }),
45
- /* @__PURE__ */ jsx(View, { style: styles.goIcon, children: /* @__PURE__ */ jsx(Icon, { name: "arrow-right", size: theme.icon.sm, color: iconColor }) })
46
- ]
47
- },
48
- item
49
- );
50
- return /* @__PURE__ */ jsxs(View, { style: styles.container, children: [
51
- /* @__PURE__ */ jsxs(View, { style: [styles.field, focused ? styles.fieldFocused : null], children: [
52
- /* @__PURE__ */ jsx(Icon, { name: "search", size: LEADING_ICON, color: iconColor }),
53
- /* @__PURE__ */ jsx(
54
- TextInput,
55
- {
56
- style: [styles.input, NO_UA_FOCUS_RING],
57
- value: query,
58
- onChangeText: handleChangeText,
59
- onFocus: () => setFocused(true),
60
- onBlur: () => setFocused(false),
61
- placeholder,
62
- placeholderTextColor: theme.color.text3
63
- }
64
- )
65
- ] }),
66
- /* @__PURE__ */ jsx(ScrollView, { style: styles.results, contentContainerStyle: styles.resultsContent, children: isEmpty ? /* @__PURE__ */ jsxs(Fragment, { children: [
67
- /* @__PURE__ */ jsx(Text, { style: styles.recentHeader, children: "Recent" }),
68
- recents.map((item) => renderRow(item, "more-horizontal"))
69
- ] }) : matches.length > 0 ? matches.map((item) => renderRow(item, "search")) : /* @__PURE__ */ jsxs(Text, { style: styles.empty, children: [
70
- 'No matches for "',
71
- query,
72
- '"'
73
- ] }) })
74
- ] });
75
- }
76
- function SearchExpand({
77
- recents = [],
78
- placeholder = "Search",
79
- value,
80
- defaultValue = "",
81
- onChangeText,
82
- onCancel,
83
- onSelectRecent,
84
- motion = "full"
85
- }) {
86
- const { styles: sx } = useStyles(expandSheet);
87
- const theme = useLoamTheme();
88
- const resolved = useResolvedMotion(motion);
89
- const animateTravel = resolved === "full";
90
- const animateFade = resolved !== "none";
91
- const isControlled = value !== void 0;
92
- const [internal, setInternal] = React.useState(defaultValue);
93
- const query = isControlled ? value : internal;
94
- const handleChangeText = (text) => {
95
- if (!isControlled) setInternal(text);
96
- onChangeText?.(text);
97
- };
98
- const [focused, setFocused] = React.useState(false);
99
- const cancelWidth = React.useRef(new Animated.Value(0)).current;
100
- const cancelOpacity = React.useRef(new Animated.Value(0)).current;
101
- const recentsHeight = React.useRef(new Animated.Value(0)).current;
102
- const recentsOpacity = React.useRef(new Animated.Value(0)).current;
103
- const drive = (val, to, kind, useNativeDriver) => {
104
- const enabled = kind === "fade" ? animateFade : animateTravel;
105
- if (!enabled) {
106
- val.setValue(to);
107
- return null;
108
- }
109
- return Animated.timing(val, {
110
- toValue: to,
111
- duration: theme.motion.toggle.duration,
112
- easing: Easing.bezier(...theme.motion.toggle.easing),
113
- useNativeDriver
114
- });
115
- };
116
- const runToggle = (open) => {
117
- const anims = [
118
- drive(cancelWidth, open ? CANCEL_WIDTH : 0, "travel", false),
119
- drive(cancelOpacity, open ? 1 : 0, "fade", true),
120
- drive(recentsHeight, open ? RECENTS_MAX_H : 0, "travel", false),
121
- drive(recentsOpacity, open ? 1 : 0, "fade", true)
122
- ].filter((a) => a !== null);
123
- if (anims.length > 0) Animated.parallel(anims).start();
124
- };
125
- const openAnim = () => runToggle(true);
126
- const closeAnim = () => runToggle(false);
127
- const inputRef = React.useRef(null);
128
- const handleFocus = () => {
129
- setFocused(true);
130
- openAnim();
131
- };
132
- const handleBlur = () => {
133
- setTimeout(() => {
134
- if (!query) {
135
- setFocused(false);
136
- closeAnim();
137
- }
138
- }, 150);
139
- };
140
- const handleCancel = () => {
141
- if (!isControlled) setInternal("");
142
- onChangeText?.("");
143
- inputRef.current?.blur();
144
- setFocused(false);
145
- closeAnim();
146
- onCancel?.();
147
- };
148
- const handleChipPress = (label) => {
149
- if (!isControlled) setInternal(label);
150
- onChangeText?.(label);
151
- onSelectRecent?.(label);
152
- };
153
- return /* @__PURE__ */ jsxs(View, { style: sx.wrapper, children: [
154
- /* @__PURE__ */ jsxs(
155
- View,
156
- {
157
- style: [sx.bar, focused ? sx.barFocused : null],
158
- accessibilityRole: "search",
159
- children: [
160
- /* @__PURE__ */ jsx(Icon, { name: "search", size: LEADING_ICON, color: theme.color.text3 }),
161
- /* @__PURE__ */ jsx(
162
- TextInput,
163
- {
164
- ref: inputRef,
165
- style: [sx.input, NO_UA_FOCUS_RING],
166
- value: query,
167
- onChangeText: handleChangeText,
168
- onFocus: handleFocus,
169
- onBlur: handleBlur,
170
- placeholder,
171
- placeholderTextColor: theme.color.text3,
172
- returnKeyType: "search"
173
- }
174
- ),
175
- /* @__PURE__ */ jsx(
176
- Animated.View,
177
- {
178
- style: {
179
- width: cancelWidth,
180
- overflow: "hidden",
181
- pointerEvents: focused ? "auto" : "none"
182
- },
183
- children: /* @__PURE__ */ jsx(Animated.View, { style: { opacity: cancelOpacity }, children: /* @__PURE__ */ jsx(
184
- Pressable,
185
- {
186
- accessibilityRole: "button",
187
- accessibilityLabel: "Cancel",
188
- onPress: handleCancel,
189
- style: sx.cancelBtn,
190
- children: /* @__PURE__ */ jsx(Text, { style: sx.cancelText, children: "Cancel" })
191
- }
192
- ) })
193
- }
194
- )
195
- ]
196
- }
197
- ),
198
- /* @__PURE__ */ jsx(
199
- Animated.View,
200
- {
201
- style: [
202
- sx.recentsWrap,
203
- {
204
- height: recentsHeight,
205
- opacity: recentsOpacity,
206
- pointerEvents: focused ? "auto" : "none"
207
- }
208
- ],
209
- children: /* @__PURE__ */ jsx(View, { style: sx.chipsRow, children: recents.map((label) => /* @__PURE__ */ jsxs(
210
- Pressable,
211
- {
212
- accessibilityRole: "button",
213
- accessibilityLabel: label,
214
- onPress: () => handleChipPress(label),
215
- style: sx.chip,
216
- children: [
217
- /* @__PURE__ */ jsx(Icon, { name: "search", size: 13, color: theme.color.text3 }),
218
- /* @__PURE__ */ jsx(Text, { style: sx.chipText, children: label })
219
- ]
220
- },
221
- label
222
- )) })
223
- }
224
- )
225
- ] });
226
- }
227
- var sheet = createStyleSheet((theme) => ({
228
- container: { gap: theme.space.s3 },
229
- field: {
230
- flexDirection: "row",
231
- alignItems: "center",
232
- gap: theme.space.s2,
233
- // A prominent, full-width field: the touch tier of the control-size ramp
234
- // (44pt), which also clears the tap minimum on its own.
235
- height: theme.ctl.lg,
236
- paddingHorizontal: theme.space.s4,
237
- borderRadius: theme.radius.full,
238
- backgroundColor: theme.color.surface2,
239
- // Transparent at rest rather than absent, so gaining focus tints the edge
240
- // instead of growing the field by 1.5px and nudging the row below.
241
- borderWidth: theme.borderWidth.thick,
242
- borderColor: "transparent"
243
- },
244
- // Same focused treatment as `SearchExpand`: the two sit in the same product.
245
- // The edge is the *measured* ring colour, not the raw
246
- // accent. `NO_UA_FOCUS_RING` removes the browser's own outline, so this edge
247
- // is the **only** focus affordance the field has — which makes it a focus
248
- // indicator under SC 1.4.11 and holds it to 3:1 against both the fill inside
249
- // it and the ground outside. The raw accent misses that in 10 of the 42
250
- // palette x mode x ground cases (worst 1.98:1 on `surface2`, four palettes).
251
- // `focus.ringColor` is the same accent lifted only where it could not clear
252
- // 3:1, so it is byte-identical in 9 of the 14 palette x mode combos and moves
253
- // exactly the five that were failing.
254
- fieldFocused: { borderColor: theme.focus.ringColor, backgroundColor: theme.color.surface },
255
- input: {
256
- flex: 1,
257
- padding: 0,
258
- color: theme.color.text,
259
- fontFamily: theme.font.sans,
260
- fontSize: theme.fontSize[16],
261
- backgroundColor: "transparent"
262
- },
263
- results: { alignSelf: "stretch" },
264
- resultsContent: { gap: theme.space.s1 },
265
- recentHeader: {
266
- fontFamily: theme.font.mono,
267
- fontSize: theme.fontSize[12],
268
- color: theme.color.text3,
269
- textTransform: "uppercase",
270
- // `theme.tracking.*` are em multiples, so they must be scaled by the size.
271
- letterSpacing: theme.tracking.wider * theme.fontSize[12],
272
- paddingHorizontal: theme.space.s3,
273
- paddingVertical: theme.space.s2
274
- },
275
- row: {
276
- flexDirection: "row",
277
- alignItems: "center",
278
- gap: theme.space.s3,
279
- paddingHorizontal: theme.space.s3,
280
- paddingVertical: theme.space.s3,
281
- borderRadius: theme.radius.md,
282
- backgroundColor: "transparent"
283
- },
284
- rowPressed: { backgroundColor: theme.color.surface2 },
285
- rowLabel: {
286
- flex: 1,
287
- fontFamily: theme.font.sans,
288
- fontSize: theme.fontSize[16],
289
- color: theme.color.text
290
- },
291
- goIcon: { transform: [{ rotate: "-45deg" }] },
292
- empty: {
293
- fontFamily: theme.font.sans,
294
- fontSize: theme.fontSize[14],
295
- color: theme.color.text3,
296
- textAlign: "center",
297
- paddingHorizontal: theme.space.s5,
298
- paddingVertical: theme.space.s6
299
- }
300
- }));
301
- var expandSheet = createStyleSheet((theme) => ({
302
- wrapper: {
303
- gap: theme.space[12]
304
- // reference: `gap:12px` (line 2399)
305
- },
306
- // Bar — resting state: surface2 pill, no visible border (transparent).
307
- // Geometry: `padding:12px 15px`, `border-radius:var(--r-full)` (line 2400).
308
- bar: {
309
- flexDirection: "row",
310
- alignItems: "center",
311
- gap: theme.space[10],
312
- // reference: `gap:10px`
313
- paddingVertical: theme.space[12],
314
- paddingHorizontal: theme.space[15],
315
- borderRadius: theme.radius.full,
316
- backgroundColor: theme.color.surface2,
317
- borderWidth: theme.borderWidth.thick,
318
- borderColor: "transparent"
319
- },
320
- // Focused state: accent border + surface background (reference line 2407),
321
- // through `focus.ringColor` for the reason given on `fieldFocused` above.
322
- barFocused: {
323
- borderColor: theme.focus.ringColor,
324
- backgroundColor: theme.color.surface
325
- },
326
- input: {
327
- flex: 1,
328
- minWidth: 0,
329
- padding: 0,
330
- color: theme.color.text,
331
- fontFamily: theme.font.sans,
332
- fontSize: theme.fontSize[15],
333
- // reference: `font-size:15px` (line 2402)
334
- backgroundColor: "transparent"
335
- },
336
- // Cancel button content (reference: `color:var(--accent)`, `font-weight:600`,
337
- // `font-size:14px`, line 2403 — the colour deliberately diverges, see below).
338
- cancelBtn: {
339
- alignItems: "center",
340
- justifyContent: "center",
341
- paddingHorizontal: theme.space[4]
342
- },
343
- // The label is real text at 14px semibold, so it is held to AA's 4.5:1 — not
344
- // the 3:1 a glyph gets — against the `surface` the bar paints while focused
345
- // (the only time Cancel is visible). The raw accent the reference names here
346
- // misses 4.5:1 in 40 of the 56 palette x mode x ground cases, bottoming out at
347
- // 1.75:1, so this takes `accentStrong`, which is measured against exactly the
348
- // reading grounds `surface`/`bg`/`surface-2` and clears AA on all of them by
349
- // construction. Unlike a chart mark or a knob glyph, there is no polarity
350
- // trap here: the bar's ground follows the colour mode.
351
- cancelText: {
352
- color: theme.color.accentStrong,
353
- fontFamily: theme.font.sans,
354
- fontWeight: theme.fontWeight.semibold,
355
- fontSize: theme.fontSize[14],
356
- // reference: `font-size:14px` (line 2403)
357
- whiteSpace: "nowrap"
358
- },
359
- // Recents chip row — hidden by default, revealed via animated height.
360
- // Reference: `display:flex;flex-wrap:wrap;gap:8px` (line 2405).
361
- recentsWrap: {
362
- overflow: "hidden"
363
- },
364
- chipsRow: {
365
- flexDirection: "row",
366
- flexWrap: "wrap",
367
- gap: theme.space[8]
368
- // reference: `gap:8px`
369
- },
370
- // Each chip: `padding:8px 14px`, `border-radius:999px`, `font-size:13px`,
371
- // `font-weight:600`, `border:1px solid var(--border-strong)`, `color:var(--text-2)`
372
- // (reference line 2406).
373
- chip: {
374
- flexDirection: "row",
375
- alignItems: "center",
376
- gap: theme.space[7],
377
- // reference: `gap:7px`
378
- paddingVertical: theme.space[8],
379
- paddingHorizontal: theme.space[14],
380
- borderRadius: theme.radius.full,
381
- borderWidth: theme.borderWidth.thin,
382
- borderColor: theme.color.borderStrong,
383
- backgroundColor: "transparent"
384
- },
385
- chipText: {
386
- fontFamily: theme.font.sans,
387
- fontWeight: theme.fontWeight.semibold,
388
- fontSize: theme.fontSize[13],
389
- // reference: `font-size:13px`
390
- color: theme.color.text2
391
- }
392
- }));
393
-
394
- export { SearchBar, SearchExpand };
@@ -1,83 +0,0 @@
1
- import 'react';
2
- import { View, Text } from 'react-native';
3
- import { createStyleSheet, useStyles } from '@btndprojects/loam-theme-native';
4
- import { jsxs, jsx } from 'react/jsx-runtime';
5
-
6
- // src/page-header/page-header.tsx
7
- function PageHeader({
8
- breadcrumb,
9
- title,
10
- titleAdornment,
11
- meta,
12
- actions,
13
- back,
14
- tabs,
15
- // Accepted for API consistency; intentionally unused (see PageHeaderMotion).
16
- motion: _motion = "none"
17
- }) {
18
- const { styles } = useStyles(sheet);
19
- return /* @__PURE__ */ jsxs(View, { style: styles.container, children: [
20
- back != null ? /* @__PURE__ */ jsx(View, { style: styles.backRow, children: back }) : null,
21
- breadcrumb != null ? /* @__PURE__ */ jsx(View, { children: breadcrumb }) : null,
22
- /* @__PURE__ */ jsxs(View, { style: styles.titleRow, children: [
23
- /* @__PURE__ */ jsxs(View, { style: styles.titleGroup, children: [
24
- /* @__PURE__ */ jsx(Text, { accessibilityRole: "header", style: styles.title, children: title }),
25
- titleAdornment != null ? /* @__PURE__ */ jsx(View, { style: styles.adornment, children: titleAdornment }) : null
26
- ] }),
27
- actions != null ? /* @__PURE__ */ jsx(View, { style: styles.actions, children: actions }) : null
28
- ] }),
29
- meta != null ? typeof meta === "string" ? /* @__PURE__ */ jsx(Text, { style: styles.meta, children: meta }) : /* @__PURE__ */ jsx(View, { children: meta }) : null,
30
- tabs != null ? /* @__PURE__ */ jsx(View, { style: styles.tabs, children: tabs }) : null
31
- ] });
32
- }
33
- var sheet = createStyleSheet((theme) => ({
34
- container: {
35
- gap: theme.space.s3,
36
- paddingHorizontal: theme.space.s4,
37
- paddingVertical: theme.space.s4,
38
- backgroundColor: theme.color.bg
39
- },
40
- backRow: { flexDirection: "row", alignItems: "center" },
41
- // Wraps the actions block below the title on a narrow viewport.
42
- titleRow: {
43
- flexDirection: "row",
44
- flexWrap: "wrap",
45
- alignItems: "flex-start",
46
- justifyContent: "space-between",
47
- gap: theme.space.s3
48
- },
49
- // `flexShrink: 1` + `minWidth: 0` lets a long title ellipsize / wrap instead
50
- // of pushing the actions off the row.
51
- titleGroup: {
52
- flexDirection: "row",
53
- alignItems: "center",
54
- flexShrink: 1,
55
- minWidth: 0,
56
- gap: theme.space.s2
57
- },
58
- // `title1` (28/34) is the content page-title role on the mobile ramp — one
59
- // step below the app bar's `largeTitle`, so the two never read as the same
60
- // element.
61
- title: {
62
- fontFamily: theme.font.display,
63
- fontWeight: theme.font.displayWeight,
64
- fontSize: theme.type.title1.fontSize,
65
- lineHeight: theme.type.title1.lineHeight,
66
- letterSpacing: theme.type.title1.letterSpacing,
67
- color: theme.color.text,
68
- flexShrink: 1
69
- },
70
- adornment: { flexDirection: "row", alignItems: "center" },
71
- actions: { flexDirection: "row", flexWrap: "wrap", alignItems: "center", gap: theme.space.s2 },
72
- // Secondary ink, callout size — the AA-safe muted line under the title.
73
- meta: {
74
- fontFamily: theme.font.sans,
75
- fontSize: theme.type.callout.fontSize,
76
- lineHeight: theme.type.callout.lineHeight,
77
- letterSpacing: theme.type.callout.letterSpacing,
78
- color: theme.color.text2
79
- },
80
- tabs: { marginTop: theme.space.s1 }
81
- }));
82
-
83
- export { PageHeader };
@@ -1,99 +0,0 @@
1
- import { haptics } from './chunk-NY2U3PBI.js';
2
- import * as React from 'react';
3
- import { StyleSheet, Animated, Pressable, Easing } from 'react-native';
4
- import { useLoamTheme } from '@btndprojects/loam-theme-native';
5
- import { jsx, jsxs } from 'react/jsx-runtime';
6
-
7
- function Touchable({
8
- children,
9
- onPress,
10
- scaleTo = 0.97,
11
- ripple = true,
12
- hapticOnPress = false,
13
- disabled = false,
14
- style,
15
- accessibilityLabel
16
- }) {
17
- const theme = useLoamTheme();
18
- const scale = React.useRef(new Animated.Value(1)).current;
19
- const highlight = React.useRef(new Animated.Value(0)).current;
20
- const overlayOpacity = highlight.interpolate({
21
- inputRange: [0, 1],
22
- outputRange: [0, 0.14]
23
- });
24
- const layerIn = theme.motion.hover;
25
- const layerOut = theme.motion.exit;
26
- const pressIn = () => {
27
- Animated.spring(scale, {
28
- toValue: scaleTo,
29
- useNativeDriver: true,
30
- speed: 40,
31
- bounciness: 6
32
- }).start();
33
- if (ripple) {
34
- Animated.timing(highlight, {
35
- toValue: 1,
36
- duration: layerIn.duration,
37
- easing: Easing.bezier(...layerIn.easing),
38
- useNativeDriver: true
39
- }).start();
40
- }
41
- };
42
- const pressOut = () => {
43
- Animated.spring(scale, {
44
- toValue: 1,
45
- useNativeDriver: true,
46
- speed: 40,
47
- bounciness: 6
48
- }).start();
49
- if (ripple) {
50
- Animated.timing(highlight, {
51
- toValue: 0,
52
- duration: layerOut.duration,
53
- easing: Easing.bezier(...layerOut.easing),
54
- useNativeDriver: true
55
- }).start();
56
- }
57
- };
58
- const handlePress = () => {
59
- if (hapticOnPress) haptics.selection();
60
- onPress?.();
61
- };
62
- return /* @__PURE__ */ jsx(
63
- Pressable,
64
- {
65
- accessibilityRole: "button",
66
- accessibilityLabel,
67
- accessibilityState: { disabled },
68
- disabled,
69
- onPress: disabled ? void 0 : handlePress,
70
- onPressIn: disabled ? void 0 : pressIn,
71
- onPressOut: disabled ? void 0 : pressOut,
72
- children: /* @__PURE__ */ jsxs(Animated.View, { style: [styles.base, style, { transform: [{ scale }] }], children: [
73
- children,
74
- ripple ? /* @__PURE__ */ jsx(
75
- Animated.View,
76
- {
77
- style: [
78
- StyleSheet.absoluteFillObject,
79
- styles.highlight,
80
- {
81
- backgroundColor: theme.color.accent,
82
- opacity: overlayOpacity,
83
- pointerEvents: "none"
84
- }
85
- ]
86
- }
87
- ) : null
88
- ] })
89
- }
90
- );
91
- }
92
- var styles = StyleSheet.create({
93
- // Clips the highlight overlay to the container's own border radius.
94
- base: { overflow: "hidden", position: "relative" },
95
- // Kept subtle — the animated `opacity` tops out well below this ceiling.
96
- highlight: { opacity: 0 }
97
- });
98
-
99
- export { Touchable };