@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
@@ -0,0 +1,443 @@
1
+ import { storageKey } from './chunk-NNCOFLNE.js';
2
+ import { NameConflictDialog } from './chunk-CHPX4MFI.js';
3
+ import { Checkbox } from './chunk-KNILMM4H.js';
4
+ import { Alert } from './chunk-Z7I4ZSO6.js';
5
+ import { Sheet } from './chunk-B7JZ3N5G.js';
6
+ import { DialogTitle, DialogFooter, DialogDescription, Dialog } from './chunk-AQ5FIG74.js';
7
+ import { Button } from './chunk-5DTKORLI.js';
8
+ import { Input, TextField } from './chunk-KXLDK6HB.js';
9
+ import { useLabels } from './chunk-APCWFOZW.js';
10
+ import * as React from 'react';
11
+ import { View, Text, Platform } from 'react-native';
12
+ import { createStyleSheet, useLoamTheme, useStyles } from '@btndprojects/loam-theme-native';
13
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
14
+
15
+ var DEFAULT_LABELS = {
16
+ cancel: "Cancel",
17
+ confirm: "Confirm",
18
+ tryAgain: "Try again",
19
+ failed: "That didn\u2019t work. Check your connection and try again.",
20
+ typeToConfirm: () => ["Type", "to confirm"],
21
+ typeMismatch: (name) => `Type ${name} to confirm`,
22
+ remember: "Don\u2019t ask again",
23
+ rememberAction: "Don\u2019t Ask Again"
24
+ };
25
+ var CONFIRM_CONSEQUENCE_MAX = 4;
26
+ var ConfirmContext = React.createContext(null);
27
+ function memoryStorage() {
28
+ const data = /* @__PURE__ */ new Map();
29
+ return {
30
+ getItem: (k) => data.get(k) ?? null,
31
+ setItem: (k, v) => {
32
+ data.set(k, v);
33
+ },
34
+ removeItem: (k) => {
35
+ data.delete(k);
36
+ }
37
+ };
38
+ }
39
+ function ConfirmProvider({
40
+ children,
41
+ storage: storageProp,
42
+ labels,
43
+ platform
44
+ }) {
45
+ const [fallback] = React.useState(memoryStorage);
46
+ const storage = storageProp ?? fallback;
47
+ const [queue, setQueue] = React.useState([]);
48
+ const hidden = React.useRef(/* @__PURE__ */ new Set());
49
+ const known = React.useRef(/* @__PURE__ */ new Set());
50
+ const api = React.useMemo(() => {
51
+ const isHidden = (id) => {
52
+ if (hidden.current.has(id)) return true;
53
+ try {
54
+ return storage.getItem(storageKey("confirm", id)) === "1";
55
+ } catch {
56
+ return false;
57
+ }
58
+ };
59
+ return {
60
+ confirm: (options) => {
61
+ const id = options.tone !== "danger" ? options.remember?.id : void 0;
62
+ if (id) known.current.add(id);
63
+ if (id && isHidden(id)) return Promise.resolve(true);
64
+ return new Promise(
65
+ (resolve) => setQueue((q) => [...q, { kind: "confirm", options, resolve }])
66
+ );
67
+ },
68
+ prompt: (options) => new Promise(
69
+ (resolve) => setQueue((q) => [...q, { kind: "prompt", options, resolve }])
70
+ ),
71
+ resolveConflict: (options) => new Promise(
72
+ (resolve) => setQueue((q) => [...q, { kind: "conflict", options, resolve }])
73
+ ),
74
+ resetHidden: (id) => {
75
+ const ids = id ? [id] : [...known.current];
76
+ for (const one of ids) {
77
+ hidden.current.delete(one);
78
+ try {
79
+ storage.removeItem?.(storageKey("confirm", one));
80
+ } catch {
81
+ }
82
+ }
83
+ }
84
+ };
85
+ }, [storage]);
86
+ const current = queue[0] ?? null;
87
+ const settle = React.useCallback(
88
+ (value, rememberId) => {
89
+ if (rememberId) {
90
+ hidden.current.add(rememberId);
91
+ try {
92
+ storage.setItem(storageKey("confirm", rememberId), "1");
93
+ } catch {
94
+ }
95
+ }
96
+ setQueue(([head, ...rest]) => {
97
+ if (head) head.resolve(value);
98
+ return rest;
99
+ });
100
+ },
101
+ [storage]
102
+ );
103
+ return /* @__PURE__ */ jsxs(ConfirmContext.Provider, { value: api, children: [
104
+ children,
105
+ current?.kind === "conflict" ? /* @__PURE__ */ jsx(
106
+ NameConflictDialog,
107
+ {
108
+ platform,
109
+ ...current.options,
110
+ open: true,
111
+ onClose: () => settle(null),
112
+ onResolve: (choice, applyToAll) => settle({ choice, applyToAll })
113
+ },
114
+ queue.length + current.options.existing.name
115
+ ) : current ? /* @__PURE__ */ jsx(
116
+ ConfirmSurface,
117
+ {
118
+ request: current,
119
+ labels,
120
+ platform,
121
+ settle
122
+ },
123
+ queue.length + current.options.title
124
+ ) : null
125
+ ] });
126
+ }
127
+ function useConfirm() {
128
+ const api = React.useContext(ConfirmContext);
129
+ if (!api) throw new Error("useConfirm() needs a <ConfirmProvider> above it.");
130
+ return api;
131
+ }
132
+ function useOptionalConfirm() {
133
+ return React.useContext(ConfirmContext);
134
+ }
135
+ function resolvePlatform(explicit, themed) {
136
+ if (explicit) return explicit;
137
+ if (Platform.OS === "ios") return "ios";
138
+ if (Platform.OS === "android") return "android";
139
+ return themed === "Android" ? "android" : "ios";
140
+ }
141
+ function ConfirmSurface({
142
+ request,
143
+ labels: labelsProp,
144
+ platform,
145
+ settle,
146
+ preview
147
+ }) {
148
+ const labels = useLabels("confirm", DEFAULT_LABELS, labelsProp);
149
+ const theme = useLoamTheme("confirm");
150
+ const { styles } = useStyles(sheet);
151
+ const os = resolvePlatform(platform, theme.platform);
152
+ const { options } = request;
153
+ const isPrompt = request.kind === "prompt";
154
+ const danger = options.tone === "danger";
155
+ const confirmOpts = request.kind === "confirm" ? request.options : null;
156
+ const promptOpts = request.kind === "prompt" ? request.options : null;
157
+ const typeName = confirmOpts?.typeToConfirm;
158
+ const remember = !danger ? confirmOpts?.remember : void 0;
159
+ const consequence = (confirmOpts?.consequence ?? []).slice(0, CONFIRM_CONSEQUENCE_MAX);
160
+ const [value, setValue] = React.useState(preview?.value ?? promptOpts?.defaultValue ?? "");
161
+ const [typed, setTyped] = React.useState(preview?.typed ?? "");
162
+ const [error, setError] = React.useState(
163
+ () => preview?.validated ? promptOpts?.validate?.(preview.value ?? promptOpts.defaultValue ?? "") || null : null
164
+ );
165
+ const [validated, setValidated] = React.useState(preview?.validated ?? false);
166
+ const [busy, setBusy] = React.useState(preview?.busy ?? false);
167
+ const [failed, setFailed] = React.useState(preview?.failed ?? null);
168
+ const [remembered, setRemembered] = React.useState(preview?.remembered ?? false);
169
+ const settled = React.useRef(false);
170
+ const mismatch = typeName != null && typed !== typeName;
171
+ const hasField = isPrompt || typeName != null;
172
+ const asSheet = os === "ios" && hasField;
173
+ const dismissValue = isPrompt ? null : false;
174
+ const finish = (result, rememberId) => {
175
+ if (settled.current) return;
176
+ settled.current = true;
177
+ settle(result, rememberId);
178
+ };
179
+ const dismiss = () => {
180
+ if (!busy) finish(dismissValue);
181
+ };
182
+ const runValidate = (text) => {
183
+ const message = promptOpts?.validate?.(text) || null;
184
+ setError(message);
185
+ return message;
186
+ };
187
+ const submit = async (rememberThis = false) => {
188
+ if (busy || mismatch) return;
189
+ if (isPrompt) {
190
+ setValidated(true);
191
+ if (runValidate(value)) return;
192
+ }
193
+ const work = isPrompt ? () => promptOpts.onConfirm?.(value) : () => confirmOpts.onConfirm?.();
194
+ try {
195
+ setFailed(null);
196
+ const pending = work();
197
+ if (pending && typeof pending.then === "function") {
198
+ setBusy(true);
199
+ await pending;
200
+ }
201
+ } catch (e) {
202
+ setBusy(false);
203
+ setFailed(e instanceof Error && e.message ? e.message : labels.failed);
204
+ return;
205
+ }
206
+ setBusy(false);
207
+ finish(isPrompt ? value : true, rememberThis ? remember?.id : void 0);
208
+ };
209
+ const confirmLabel = failed ? labels.tryAgain : options.confirmLabel ?? labels.confirm;
210
+ const confirmButton = (size, fullWidth) => /* @__PURE__ */ jsx(
211
+ Button,
212
+ {
213
+ variant: danger ? "danger" : "primary",
214
+ size,
215
+ fullWidth,
216
+ loading: busy,
217
+ softDisabled: mismatch,
218
+ disabledReason: mismatch ? labels.typeMismatch(typeName) : void 0,
219
+ onPress: () => void submit(os === "android" && remembered),
220
+ children: confirmLabel
221
+ }
222
+ );
223
+ const body = /* @__PURE__ */ jsxs(Fragment, { children: [
224
+ consequence.length > 0 ? /* @__PURE__ */ jsx(View, { style: styles.consequence, testID: "confirm-consequence", children: consequence.map((line) => /* @__PURE__ */ jsx(Text, { style: styles.consequenceLine, children: line }, line)) }) : null,
225
+ typeName != null ? /* @__PURE__ */ jsxs(View, { style: styles.field, children: [
226
+ /* @__PURE__ */ jsxs(Text, { style: styles.typeLabel, nativeID: "confirm-type-label", children: [
227
+ labels.typeToConfirm(typeName)[0],
228
+ " ",
229
+ /* @__PURE__ */ jsx(Text, { style: styles.token, children: typeName }),
230
+ " ",
231
+ labels.typeToConfirm(typeName)[1]
232
+ ] }),
233
+ /* @__PURE__ */ jsx(
234
+ Input,
235
+ {
236
+ size: asSheet ? "lg" : "md",
237
+ value: typed,
238
+ onChangeText: setTyped,
239
+ autoFocus: !preview,
240
+ autoCapitalize: "none",
241
+ autoCorrect: false,
242
+ editable: !busy,
243
+ accessibilityLabelledBy: "confirm-type-label",
244
+ accessibilityLabel: labels.typeMismatch(typeName)
245
+ }
246
+ )
247
+ ] }) : null,
248
+ promptOpts ? /* @__PURE__ */ jsx(
249
+ TextField,
250
+ {
251
+ size: asSheet ? "lg" : "md",
252
+ label: promptOpts.label,
253
+ hint: promptOpts.hint,
254
+ error: error ?? void 0,
255
+ value,
256
+ placeholder: promptOpts.placeholder,
257
+ editable: !busy,
258
+ autoFocus: !preview,
259
+ selectTextOnFocus: true,
260
+ onChangeText: (next) => {
261
+ setValue(next);
262
+ if (validated) runValidate(next);
263
+ },
264
+ onSubmitEditing: () => void submit()
265
+ }
266
+ ) : null,
267
+ failed ? /* @__PURE__ */ jsx(Alert, { tone: "danger", title: failed }) : null
268
+ ] });
269
+ if (asSheet && preview) {
270
+ return /* @__PURE__ */ jsxs(View, { style: [styles.previewCard, styles.previewSheet], children: [
271
+ /* @__PURE__ */ jsx(DialogTitle, { children: options.title }),
272
+ options.body ? /* @__PURE__ */ jsx(Text, { style: styles.sheetDescription, children: options.body }) : null,
273
+ body,
274
+ confirmButton("lg", true)
275
+ ] });
276
+ }
277
+ if (asSheet) {
278
+ return /* @__PURE__ */ jsx(
279
+ Sheet,
280
+ {
281
+ open: true,
282
+ title: options.title,
283
+ detents: ["half"],
284
+ dismissible: !busy,
285
+ onClose: dismiss,
286
+ footer: /* @__PURE__ */ jsx(View, { style: styles.sheetFooter, children: confirmButton("lg", true) }),
287
+ children: /* @__PURE__ */ jsxs(View, { style: styles.sheetBody, children: [
288
+ options.body ? /* @__PURE__ */ jsx(Text, { style: styles.sheetDescription, children: options.body }) : null,
289
+ body
290
+ ] })
291
+ }
292
+ );
293
+ }
294
+ const cancel = /* @__PURE__ */ jsx(
295
+ Button,
296
+ {
297
+ variant: os === "android" ? "ghost" : "outline",
298
+ size: "md",
299
+ fullWidth: os === "ios",
300
+ disabled: busy,
301
+ onPress: dismiss,
302
+ children: options.cancelLabel ?? labels.cancel
303
+ }
304
+ );
305
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
306
+ body,
307
+ remember && os === "android" ? /* @__PURE__ */ jsx(
308
+ Checkbox,
309
+ {
310
+ size: "sm",
311
+ platform: "android",
312
+ label: remember.label ?? labels.remember,
313
+ checked: remembered,
314
+ onCheckedChange: setRemembered,
315
+ disabled: busy
316
+ }
317
+ ) : null,
318
+ os === "ios" && remember ? (
319
+ // Three actions stack: the confirm, “Don’t Ask Again”, Cancel last.
320
+ /* @__PURE__ */ jsxs(DialogFooter, { children: [
321
+ confirmButton("md", true),
322
+ /* @__PURE__ */ jsx(
323
+ Button,
324
+ {
325
+ variant: "outline",
326
+ size: "md",
327
+ fullWidth: true,
328
+ disabled: busy,
329
+ onPress: () => void submit(true),
330
+ children: remember.label ?? labels.rememberAction
331
+ }
332
+ ),
333
+ cancel
334
+ ] })
335
+ ) : /* @__PURE__ */ jsxs(DialogFooter, { children: [
336
+ cancel,
337
+ confirmButton("md", os === "ios")
338
+ ] })
339
+ ] });
340
+ if (preview) {
341
+ return /* @__PURE__ */ jsxs(View, { style: styles.previewCard, children: [
342
+ /* @__PURE__ */ jsx(DialogTitle, { children: options.title }),
343
+ options.body ? /* @__PURE__ */ jsx(DialogDescription, { children: options.body }) : null,
344
+ content
345
+ ] });
346
+ }
347
+ return /* @__PURE__ */ jsx(
348
+ Dialog,
349
+ {
350
+ open: true,
351
+ onClose: dismiss,
352
+ dismissible: !busy,
353
+ showClose: false,
354
+ platform: os,
355
+ title: options.title,
356
+ description: options.body,
357
+ children: content
358
+ }
359
+ );
360
+ }
361
+ function ConfirmPreview({
362
+ kind = "confirm",
363
+ options,
364
+ loading,
365
+ error,
366
+ typed,
367
+ value,
368
+ validated,
369
+ remembered,
370
+ labels,
371
+ platform
372
+ }) {
373
+ const request = kind === "prompt" ? { kind, options, resolve: () => {
374
+ } } : { kind, options, resolve: () => {
375
+ } };
376
+ return /* @__PURE__ */ jsx(
377
+ ConfirmSurface,
378
+ {
379
+ request,
380
+ labels,
381
+ platform,
382
+ settle: () => {
383
+ },
384
+ preview: { busy: loading, failed: error, typed, value, validated, remembered }
385
+ }
386
+ );
387
+ }
388
+ var sheet = createStyleSheet((theme) => ({
389
+ consequence: {
390
+ gap: theme.space.s1,
391
+ borderRadius: theme.radius.md,
392
+ backgroundColor: theme.color.surface2,
393
+ paddingHorizontal: theme.space.s4,
394
+ paddingVertical: theme.space.s3
395
+ },
396
+ consequenceLine: {
397
+ fontFamily: theme.font.sans,
398
+ fontSize: theme.type.footnote.fontSize,
399
+ lineHeight: theme.type.footnote.lineHeight,
400
+ fontWeight: theme.fontWeight.medium,
401
+ color: theme.color.text
402
+ },
403
+ field: { gap: theme.space.s2 },
404
+ typeLabel: {
405
+ fontFamily: theme.font.sans,
406
+ fontSize: theme.type.footnote.fontSize,
407
+ lineHeight: theme.type.footnote.lineHeight,
408
+ fontWeight: theme.fontWeight.semibold,
409
+ color: theme.color.text
410
+ },
411
+ token: {
412
+ fontFamily: theme.font.mono,
413
+ backgroundColor: theme.color.surface2,
414
+ color: theme.color.text
415
+ },
416
+ sheetBody: { gap: theme.space.s4 },
417
+ // The Modal card's look, drawn inline for ConfirmPreview.
418
+ previewCard: {
419
+ width: "100%",
420
+ maxWidth: theme.panel.xl,
421
+ backgroundColor: theme.color.surface,
422
+ borderRadius: theme.radius.xl,
423
+ borderWidth: theme.borderWidth.base,
424
+ borderColor: theme.color.border,
425
+ padding: theme.space.s5,
426
+ gap: theme.space.s3,
427
+ ...theme.shadow.lg
428
+ },
429
+ previewSheet: { gap: theme.space.s4 },
430
+ sheetDescription: {
431
+ fontFamily: theme.font.sans,
432
+ fontSize: theme.type.subheadline.fontSize,
433
+ lineHeight: theme.type.subheadline.lineHeight,
434
+ color: theme.color.text2
435
+ },
436
+ sheetFooter: {
437
+ paddingHorizontal: theme.space.s5,
438
+ paddingTop: theme.space.s3,
439
+ paddingBottom: theme.space.s5
440
+ }
441
+ }));
442
+
443
+ export { CONFIRM_CONSEQUENCE_MAX, ConfirmPreview, ConfirmProvider, useConfirm, useOptionalConfirm };
@@ -1,6 +1,7 @@
1
1
  import { DRAG_CURSOR } from './chunk-KTAC4MGE.js';
2
2
  import { haptics } from './chunk-NY2U3PBI.js';
3
3
  import { useLabels } from './chunk-APCWFOZW.js';
4
+ import { Icon } from './chunk-PCEFCOLN.js';
4
5
  import { useResolvedMotion } from './chunk-J64KGCGX.js';
5
6
  import * as React from 'react';
6
7
  import { Animated, Easing, PanResponder, View, Text } from 'react-native';
@@ -10,7 +11,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
10
11
  var GEOMETRY = {
11
12
  sm: { thumb: 18, track: 4, height: 32 },
12
13
  // loam-allow-raw: ramp keys, read via theme.space
13
- md: { thumb: 24, track: 6, height: 40 }
14
+ md: { thumb: 24, track: 4, height: 40 }
14
15
  // loam-allow-raw: ramp keys, read via theme.space
15
16
  };
16
17
  var THUMB_ACTIVE_SCALE = 1.18;
@@ -42,6 +43,9 @@ function Slider({
42
43
  showReadout = false,
43
44
  showTicks = false,
44
45
  accessibilityLabel,
46
+ error: errorMessage,
47
+ tone = "default",
48
+ bubble = "auto",
45
49
  labels: labelsProp
46
50
  }) {
47
51
  const labels = useLabels("slider", DEFAULT_LABELS, labelsProp);
@@ -51,6 +55,8 @@ function Slider({
51
55
  const current = clamp(isControlled ? value : internal, min, max);
52
56
  const { styles } = useStyles(sheet, { size, disabled });
53
57
  const theme = useLoamTheme("slider");
58
+ const errorId = React.useId();
59
+ const toneColor = errorMessage ? theme.color.danger : tone === "default" ? null : tone === "accent" ? theme.color.accentStrong : theme.color[tone];
54
60
  const fraction = max > min ? (current - min) / (max - min) : 0;
55
61
  const pct = `${fraction * 100}%`;
56
62
  const [trackWidth, setTrackWidth] = React.useState(0);
@@ -96,7 +102,10 @@ function Slider({
96
102
  useNativeDriver: true
97
103
  }).start();
98
104
  };
99
- const bubbleScale = React.useRef(new Animated.Value(0)).current;
105
+ const bubbleScale = React.useRef(new Animated.Value(bubble === "always" ? 1 : 0)).current;
106
+ const restBubble = bubble === "always" ? 1 : 0;
107
+ const restBubbleRef = React.useRef(restBubble);
108
+ restBubbleRef.current = restBubble;
100
109
  const bubbleRef = React.useRef(() => {
101
110
  });
102
111
  bubbleRef.current = (to) => {
@@ -111,6 +120,9 @@ function Slider({
111
120
  useNativeDriver: true
112
121
  }).start();
113
122
  };
123
+ React.useEffect(() => {
124
+ bubbleScale.setValue(restBubble);
125
+ }, [bubbleScale, restBubble]);
114
126
  const steppedRef = React.useRef(step > 0);
115
127
  steppedRef.current = step > 0;
116
128
  const pan = React.useRef(
@@ -130,12 +142,12 @@ function Slider({
130
142
  },
131
143
  onPanResponderRelease: () => {
132
144
  swellRef.current(1);
133
- bubbleRef.current(0);
145
+ bubbleRef.current(restBubbleRef.current);
134
146
  if (steppedRef.current) haptics.impact("medium");
135
147
  },
136
148
  onPanResponderTerminate: () => {
137
149
  swellRef.current(1);
138
- bubbleRef.current(0);
150
+ bubbleRef.current(restBubbleRef.current);
139
151
  }
140
152
  })
141
153
  ).current;
@@ -173,12 +185,19 @@ function Slider({
173
185
  "aria-valuemin": min,
174
186
  "aria-valuemax": max,
175
187
  "aria-valuenow": current,
188
+ "aria-invalid": errorMessage ? true : void 0,
189
+ "aria-describedby": errorMessage ? errorId : void 0,
176
190
  onLayout,
177
191
  style: [styles.container, !disabled && DRAG_CURSOR],
178
192
  ...disabled ? {} : pan.panHandlers,
179
193
  children: [
180
194
  /* @__PURE__ */ jsxs(View, { style: styles.track, children: [
181
- /* @__PURE__ */ jsx(View, { style: [styles.fill, { width: pct }] }),
195
+ /* @__PURE__ */ jsx(
196
+ View,
197
+ {
198
+ style: [styles.fill, { width: pct }, toneColor ? { backgroundColor: toneColor } : null]
199
+ }
200
+ ),
182
201
  showTickMarks && /* @__PURE__ */ jsx(View, { style: styles.ticks, children: tickIndices.map((i) => /* @__PURE__ */ jsx(View, { testID: `slider-tick-${i}`, style: styles.tick }, i)) })
183
202
  ] }),
184
203
  /* @__PURE__ */ jsx(
@@ -201,6 +220,7 @@ function Slider({
201
220
  testID: "slider-thumb",
202
221
  style: [
203
222
  styles.thumb,
223
+ errorMessage ? { borderColor: theme.color.danger } : null,
204
224
  {
205
225
  transform: [{ translateX: thumbTranslateX }, { scale: thumbScale }]
206
226
  }
@@ -212,7 +232,11 @@ function Slider({
212
232
  ),
213
233
  showValue ? /* @__PURE__ */ jsx(Text, { style: styles.value, children: current }) : null
214
234
  ] }),
215
- showReadout ? /* @__PURE__ */ jsx(Text, { style: styles.readout, children: readoutText }) : null
235
+ showReadout ? /* @__PURE__ */ jsx(Text, { style: styles.readout, children: readoutText }) : null,
236
+ errorMessage ? /* @__PURE__ */ jsxs(View, { style: styles.errorRow, children: [
237
+ /* @__PURE__ */ jsx(Icon, { name: "alert-triangle", size: theme.icon.sm, color: theme.color.danger }),
238
+ /* @__PURE__ */ jsx(Text, { nativeID: errorId, role: "alert", style: styles.errorText, children: errorMessage })
239
+ ] }) : null
216
240
  ] });
217
241
  }
218
242
  var sheet = createStyleSheet((theme) => ({
@@ -263,7 +287,7 @@ var sheet = createStyleSheet((theme) => ({
263
287
  top: 0,
264
288
  bottom: 0,
265
289
  borderRadius: theme.radius.full,
266
- backgroundColor: theme.color.accent,
290
+ backgroundColor: theme.color.accentStrong,
267
291
  variants: { size: {}, disabled: {} }
268
292
  },
269
293
  // Tick marks overlaid inside the track (reference sliderCtl line 2294).
@@ -297,7 +321,7 @@ var sheet = createStyleSheet((theme) => ({
297
321
  },
298
322
  // The pill-shaped card that floats above the thumb during drag.
299
323
  // Reference sliderCtl line 2292: background var(--text), color var(--bg),
300
- // font-size 12px, font-weight 700, padding 4px 9px, border-radius 8px.
324
+ // font-size 12px, font-weight 600, padding 4px 9px, border-radius 8px.
301
325
  bubbleCard: {
302
326
  backgroundColor: theme.color.text,
303
327
  borderRadius: theme.radius.sm,
@@ -308,7 +332,7 @@ var sheet = createStyleSheet((theme) => ({
308
332
  color: theme.color.bg,
309
333
  fontFamily: theme.font.sans,
310
334
  fontSize: theme.type.caption1.fontSize,
311
- fontWeight: theme.fontWeight.bold,
335
+ fontWeight: theme.fontWeight.semibold,
312
336
  lineHeight: theme.type.caption1.lineHeight
313
337
  },
314
338
  thumb: {
@@ -354,6 +378,13 @@ var sheet = createStyleSheet((theme) => ({
354
378
  fontSize: theme.fontSize[14],
355
379
  color: theme.color.text2
356
380
  },
381
+ errorRow: { flexDirection: "row", alignItems: "center", gap: theme.space.s1 },
382
+ errorText: {
383
+ fontFamily: theme.font.sans,
384
+ fontSize: theme.type.caption1.fontSize,
385
+ lineHeight: theme.type.caption1.lineHeight,
386
+ color: theme.color.danger
387
+ },
357
388
  // Read-out row: mono `min · value% · max` below the track.
358
389
  readout: {
359
390
  fontFamily: theme.font.mono,