@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,35 @@
1
+ import 'react';
2
+ import { View } from 'react-native';
3
+ import { useLoamTheme } from '@btndprojects/loam-theme-native';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ // src/divider/divider.tsx
7
+ function Divider({
8
+ inset = "full",
9
+ vertical = false,
10
+ align = "start",
11
+ style,
12
+ testID
13
+ }) {
14
+ const theme = useLoamTheme("divider");
15
+ const start = inset === "full" ? 0 : inset === 16 ? theme.space[16] : theme.space[16] + theme.space[22] + theme.space[12];
16
+ return /* @__PURE__ */ jsx(
17
+ View,
18
+ {
19
+ testID,
20
+ accessibilityElementsHidden: true,
21
+ importantForAccessibility: "no-hide-descendants",
22
+ "aria-hidden": true,
23
+ style: [
24
+ vertical ? { width: theme.borderWidth.thin, alignSelf: "stretch" } : {
25
+ height: theme.borderWidth.thin,
26
+ ...align === "end" ? { marginEnd: start } : { marginStart: start }
27
+ },
28
+ { backgroundColor: theme.color.border },
29
+ style
30
+ ]
31
+ }
32
+ );
33
+ }
34
+
35
+ export { Divider };
@@ -1,7 +1,11 @@
1
- import { Skeleton } from './chunk-PNF3NKB5.js';
2
- import { Button } from './chunk-E2E3I5W2.js';
1
+ import { EmptyState } from './chunk-QJMMM4RC.js';
2
+ import { Button } from './chunk-5DTKORLI.js';
3
+ import { resolveTextRole } from './chunk-L4D5LHCH.js';
4
+ import { Skeleton } from './chunk-YJ5PXOX3.js';
5
+ import { haptics } from './chunk-NY2U3PBI.js';
6
+ import { isAndroidIdiom } from './chunk-TH4PW2WU.js';
3
7
  import { useLabels, useLoamLocale } from './chunk-APCWFOZW.js';
4
- import { Icon } from './chunk-UXGIW7OK.js';
8
+ import { Icon } from './chunk-PCEFCOLN.js';
5
9
  import { springConfig } from './chunk-J64KGCGX.js';
6
10
  import * as React2 from 'react';
7
11
  import { Animated, PanResponder, View, Text, Pressable, ScrollView } from 'react-native';
@@ -185,9 +189,12 @@ function svgDocument(frame, uid, width, height, fonts) {
185
189
  function escapeAttr(value) {
186
190
  return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/"/g, "&quot;");
187
191
  }
192
+ var LINE_KEY_TYPES = ["line", "radialLine", "bump", "slope", "parallel"];
188
193
  function Chart({
189
194
  style,
190
195
  bare,
196
+ size = "md",
197
+ tone,
191
198
  defaultTableOpen = false,
192
199
  onExportCsv,
193
200
  onExportImage,
@@ -208,14 +215,19 @@ function Chart({
208
215
  const [pinned, setPinned] = React2.useState(null);
209
216
  const [tableOpen, setTableOpen] = React2.useState(defaultTableOpen);
210
217
  const [zoom, setZoomState] = React2.useState(FULL_WINDOW);
211
- const spec = React2.useMemo(
212
- () => normalizeSpec({
213
- ...specInput,
218
+ const spec = React2.useMemo(() => {
219
+ const input = specInput;
220
+ const toneInk = tone ? tone === "neutral" ? theme.color.text3 : theme.color[tone] : void 0;
221
+ const sized = input.height === void 0 && size !== "md" ? { height: size === "sm" ? theme.space[224] : theme.space[256] + theme.space[128] } : null;
222
+ const toned = toneInk && input.series?.length === 1 && input.series[0]?.color === void 0 ? { series: [{ ...input.series[0], color: toneInk }] } : null;
223
+ return normalizeSpec({
224
+ ...input,
225
+ ...sized,
226
+ ...toned,
214
227
  locale: specInput.locale ?? providerLocale,
215
228
  copy: { ...labels, ...specInput.copy }
216
- }),
217
- [specInput, labels, providerLocale]
218
- );
229
+ });
230
+ }, [specInput, labels, providerLocale, size, tone, theme]);
219
231
  const measured = width || 360;
220
232
  const entry = React2.useRef(
221
233
  new Animated.Value(spec.animate && !theme.reduceMotion ? 0 : 1)
@@ -270,6 +282,7 @@ function Chart({
270
282
  const scaleRef = React2.useRef(1);
271
283
  scaleRef.current = measured / (width || measured);
272
284
  const originRef = React2.useRef({ x: 0, y: 0 });
285
+ const lastReadRef = React2.useRef(null);
273
286
  const scrub = React2.useCallback((lx, ly) => {
274
287
  const f = frameRef.current;
275
288
  const s = specRef.current;
@@ -282,6 +295,11 @@ function Chart({
282
295
  horizontal: f.horizontal
283
296
  });
284
297
  if (hit) {
298
+ const key = hit.si + ":" + hit.di;
299
+ if (key !== lastReadRef.current) {
300
+ lastReadRef.current = key;
301
+ haptics.selection();
302
+ }
285
303
  setPinned({ si: hit.si, di: hit.di, kind: hit.linkKind });
286
304
  s.onSelect?.(hit, s.series[hit.si]);
287
305
  }
@@ -377,6 +395,7 @@ function Chart({
377
395
  color: palette.series(i),
378
396
  edge: palette.edge(i),
379
397
  off: false,
398
+ line: false,
380
399
  index: i
381
400
  }));
382
401
  }
@@ -386,6 +405,7 @@ function Chart({
386
405
  color: z.color || palette.series(i),
387
406
  edge: z.color || palette.edge(i),
388
407
  off: !!hidden[z.id] || solo != null && solo !== i || !!z.hidden,
408
+ line: LINE_KEY_TYPES.includes(z.type ?? spec.type),
389
409
  index: i
390
410
  }));
391
411
  }, [spec, wholePlot, hidden, solo, palette]);
@@ -468,6 +488,7 @@ function Chart({
468
488
  const w = e.nativeEvent.layout.width;
469
489
  if (Math.abs(w - width) > 0.5) setWidth(w);
470
490
  };
491
+ const android = isAndroidIdiom(theme);
471
492
  const showReadout = !wholePlot && spec.tooltip.trigger !== "none" && spec.readout !== false;
472
493
  return /* @__PURE__ */ jsxs(
473
494
  View,
@@ -480,7 +501,10 @@ function Chart({
480
501
  children: [
481
502
  (spec.title || spec.subtitle) && /* @__PURE__ */ jsxs(View, { style: styles.header, children: [
482
503
  /* @__PURE__ */ jsxs(View, { style: styles.headerText, children: [
483
- spec.title ? /* @__PURE__ */ jsx(Text, { style: styles.title, children: spec.title }) : null,
504
+ spec.title ? (
505
+ // F50: the OS surface title, not the web card's 15 / 600.
506
+ /* @__PURE__ */ jsx(Text, { style: [styles.title, resolveTextRole(theme, "surfaceTitle", android)], children: spec.title })
507
+ ) : null,
484
508
  spec.subtitle ? /* @__PURE__ */ jsx(Text, { style: styles.subtitle, children: spec.subtitle }) : null
485
509
  ] }),
486
510
  /* @__PURE__ */ jsxs(View, { style: styles.toolbar, children: [
@@ -522,7 +546,7 @@ function Chart({
522
546
  ] }),
523
547
  showReadout && state === "ready" ? /* @__PURE__ */ jsx(View, { style: styles.readout, accessibilityLiveRegion: "polite", children: rows.length === 0 ? /* @__PURE__ */ jsx(Text, { style: styles.readoutHint, children: labels.readoutPlaceholder }) : /* @__PURE__ */ jsxs(Fragment, { children: [
524
548
  /* @__PURE__ */ jsxs(View, { style: styles.readoutBody, children: [
525
- /* @__PURE__ */ jsx(Text, { style: styles.readoutLabel, children: frame.axisLabels[pinned?.di ?? 0] }),
549
+ /* @__PURE__ */ jsx(Text, { style: [styles.readoutLabel, resolveTextRole(theme, "overline", android)], children: frame.axisLabels[pinned?.di ?? 0] }),
526
550
  /* @__PURE__ */ jsx(View, { style: styles.readoutRows, children: rows.map((r, i) => /* @__PURE__ */ jsxs(View, { style: styles.readoutRow, children: [
527
551
  /* @__PURE__ */ jsx(
528
552
  View,
@@ -545,64 +569,75 @@ function Chart({
545
569
  {
546
570
  accessibilityRole: "button",
547
571
  accessibilityLabel: labels.clearReading,
548
- style: ({ pressed }) => [styles.readoutClear, pressed && styles.pressed],
549
- onPress: () => setPinned(null),
550
- children: /* @__PURE__ */ jsx(Icon, { name: "x", size: 15, color: theme.color.text3 })
572
+ hitSlop: (theme.hit.md - theme.ctl.md) / 2,
573
+ style: ({ pressed }) => [styles.iconBox, pressed && styles.pressed],
574
+ onPress: () => {
575
+ lastReadRef.current = null;
576
+ setPinned(null);
577
+ },
578
+ children: /* @__PURE__ */ jsx(Icon, { name: "x", size: theme.ctl.icon.md, color: theme.color.text2 })
551
579
  }
552
580
  )
553
581
  ] }) }) : null,
554
- legendEntries.length > 1 ? /* @__PURE__ */ jsxs(
555
- ScrollView,
556
- {
557
- horizontal: true,
558
- showsHorizontalScrollIndicator: false,
559
- contentContainerStyle: styles.legend,
560
- children: [
561
- legendEntries.map((en) => /* @__PURE__ */ jsxs(
562
- Pressable,
563
- {
564
- accessibilityRole: "button",
565
- accessibilityState: { selected: !en.off },
566
- accessibilityLabel: en.label,
567
- hitSlop: {
568
- top: theme.space[6],
569
- bottom: theme.space[6],
570
- left: theme.space[4],
571
- right: theme.space[4]
572
- },
573
- style: ({ pressed }) => [
574
- styles.chip,
575
- en.off && styles.chipOff,
576
- pressed && styles.pressed
577
- ],
578
- onPress: () => toggle(en.id, en.index),
579
- onLongPress: () => setSolo((s) => s === en.index ? null : en.index),
580
- children: [
582
+ legendEntries.length > 1 ? /* @__PURE__ */ jsxs(LegendRow, { wrap: wholePlot, children: [
583
+ legendEntries.map((en) => /* @__PURE__ */ jsxs(
584
+ Pressable,
585
+ {
586
+ accessibilityRole: "button",
587
+ accessibilityState: { selected: !en.off },
588
+ accessibilityLabel: en.label,
589
+ hitSlop: {
590
+ top: (theme.hit.sm - theme.ctl.sm) / 2,
591
+ bottom: (theme.hit.sm - theme.ctl.sm) / 2
592
+ },
593
+ style: ({ pressed }) => [styles.key, pressed && styles.pressed],
594
+ onPress: () => toggle(en.id, en.index),
595
+ onLongPress: () => setSolo((s) => s === en.index ? null : en.index),
596
+ children: [
597
+ en.line ? (
598
+ // A line series: a 14 × 2 rule with a 6 ring, hollow when off.
599
+ /* @__PURE__ */ jsxs(View, { style: styles.lineKey, children: [
600
+ /* @__PURE__ */ jsx(View, { style: [styles.lineRule, { backgroundColor: en.edge }] }),
581
601
  /* @__PURE__ */ jsx(
582
602
  View,
583
603
  {
584
604
  style: [
585
- styles.swatch,
586
- // Outlined in the series edge: the pastel fill alone does
587
- // not clear 3:1 on the card.
588
- { backgroundColor: en.color, borderColor: en.edge },
589
- // The web twin greys the chip with `grayscale(1)`; RN has no
590
- // filter, so the muting is the system's own disabled opacity
591
- // rather than a hand-picked number. Only the *swatch* dims —
592
- // see the `chipOff` note for why the label does not.
593
- en.off && { opacity: theme.state.disabledOpacity }
605
+ styles.lineRing,
606
+ { borderColor: en.edge },
607
+ !en.off && { backgroundColor: en.edge }
594
608
  ]
595
609
  }
596
- ),
597
- /* @__PURE__ */ jsx(Text, { style: [styles.chipText, en.off && styles.chipTextOff], children: en.label })
598
- ]
599
- },
600
- en.id
601
- )),
602
- /* @__PURE__ */ jsx(Text, { style: styles.legendHint, children: labels.legendHint })
603
- ]
604
- }
605
- ) : null,
610
+ )
611
+ ] })
612
+ ) : (
613
+ // Off hollows the swatch: the fill drops, the series edge
614
+ // stays, so a hidden series never reads as a fourth grey one.
615
+ /* @__PURE__ */ jsx(
616
+ View,
617
+ {
618
+ style: [
619
+ styles.swatch,
620
+ { backgroundColor: en.off ? "transparent" : en.color, borderColor: en.edge }
621
+ ]
622
+ }
623
+ )
624
+ ),
625
+ /* @__PURE__ */ jsx(
626
+ Text,
627
+ {
628
+ style: [
629
+ styles.keyText,
630
+ en.off && (android ? styles.keyTextOff : styles.keyTextOffIos)
631
+ ],
632
+ children: en.label
633
+ }
634
+ )
635
+ ]
636
+ },
637
+ en.id
638
+ )),
639
+ /* @__PURE__ */ jsx(Text, { style: styles.legendHint, children: labels.legendHint })
640
+ ] }) : null,
606
641
  /* @__PURE__ */ jsx(View, { style: styles.plotWrap, children: /* @__PURE__ */ jsxs(View, { onLayout: onPlotLayout, style: styles.plot, children: [
607
642
  state === "loading" ? /* @__PURE__ */ jsx(
608
643
  View,
@@ -611,7 +646,7 @@ function Chart({
611
646
  accessibilityRole: "progressbar",
612
647
  accessibilityLabel: labels.loading,
613
648
  style: [styles.skeleton, { height }],
614
- children: Array.from({ length: 10 }, (_, i) => /* @__PURE__ */ jsx(
649
+ children: Array.from({ length: 12 }, (_, i) => /* @__PURE__ */ jsx(
615
650
  Skeleton,
616
651
  {
617
652
  style: { flex: 1, height: 28 + i * 37 % 62 + "%" },
@@ -622,20 +657,17 @@ function Chart({
622
657
  ))
623
658
  }
624
659
  ) : null,
625
- state === "empty" || state === "error" ? /* @__PURE__ */ jsxs(View, { style: [styles.message, { minHeight: Math.max(180, height * 0.7) }], children: [
626
- /* @__PURE__ */ jsx(View, { style: styles.messageIcon, children: /* @__PURE__ */ jsx(
627
- Icon,
628
- {
629
- name: state === "error" ? "alert-triangle" : "chart-bar",
630
- size: 22,
631
- color: theme.color.text3
632
- }
633
- ) }),
634
- /* @__PURE__ */ jsx(Text, { style: styles.messageTitle, children: state === "error" ? frame.problem?.title || spec.errorTitle || labels.errorTitle : spec.emptyTitle || labels.emptyTitle }),
635
- /* @__PURE__ */ jsx(Text, { style: styles.messageText, children: state === "error" ? frame.problem?.text || spec.errorText || labels.errorText : spec.emptyText || labels.emptyText }),
636
- state === "error" && spec.onRetry ? /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", onPress: spec.onRetry, children: labels.tryAgain }) : null,
637
- state === "empty" && spec.onReset ? /* @__PURE__ */ jsx(Button, { variant: "outline", size: "sm", onPress: spec.onReset, children: labels.clearFilter }) : null
638
- ] }) : null,
660
+ state === "empty" || state === "error" ? /* @__PURE__ */ jsx(View, { style: [styles.message, { minHeight: Math.max(180, height * 0.7) }], children: /* @__PURE__ */ jsx(
661
+ EmptyState,
662
+ {
663
+ variant: state === "error" ? "error" : "empty",
664
+ icon: state === "error" ? "alert-triangle" : "chart-bar",
665
+ title: state === "error" ? frame.problem?.title || spec.errorTitle || labels.errorTitle : spec.emptyTitle || labels.emptyTitle,
666
+ description: state === "error" ? frame.problem?.text || spec.errorText || labels.errorText : spec.emptyText || labels.emptyText,
667
+ actionLabel: state === "error" && spec.onRetry ? labels.tryAgain : state === "empty" && spec.onReset ? labels.clearFilter : void 0,
668
+ onAction: state === "error" ? spec.onRetry : spec.onReset
669
+ }
670
+ ) }) : null,
639
671
  state === "ready" ? /* @__PURE__ */ jsx(
640
672
  View,
641
673
  {
@@ -671,6 +703,22 @@ function Chart({
671
703
  }
672
704
  );
673
705
  }
706
+ function LegendRow({
707
+ wrap,
708
+ children
709
+ }) {
710
+ const { styles } = useStyles(stylesheet);
711
+ if (wrap) return /* @__PURE__ */ jsx(View, { style: [styles.legend, styles.legendWrap], children });
712
+ return /* @__PURE__ */ jsx(
713
+ ScrollView,
714
+ {
715
+ horizontal: true,
716
+ showsHorizontalScrollIndicator: false,
717
+ contentContainerStyle: styles.legend,
718
+ children
719
+ }
720
+ );
721
+ }
674
722
  function ToolButton({
675
723
  icon,
676
724
  label,
@@ -685,13 +733,22 @@ function ToolButton({
685
733
  accessibilityRole: "button",
686
734
  accessibilityLabel: label,
687
735
  accessibilityState: { selected: !!active },
736
+ hitSlop: (theme.hit.md - theme.ctl.md) / 2,
688
737
  style: ({ pressed }) => [
738
+ styles.iconBox,
689
739
  styles.toolButton,
690
740
  active && styles.toolButtonActive,
691
741
  pressed && styles.pressed
692
742
  ],
693
743
  onPress,
694
- children: /* @__PURE__ */ jsx(Icon, { name: icon, size: 17, color: active ? theme.color.accentStrong : theme.color.text2 })
744
+ children: /* @__PURE__ */ jsx(
745
+ Icon,
746
+ {
747
+ name: icon,
748
+ size: theme.ctl.icon.md,
749
+ color: active ? theme.color.accentOnSoft : theme.color.text
750
+ }
751
+ )
695
752
  }
696
753
  );
697
754
  }
@@ -701,9 +758,22 @@ function ChartDataTable({
701
758
  labels: labelsProp
702
759
  }) {
703
760
  const labels = useLabels("chart", DEFAULT_CHART_UI_LABELS, labelsProp);
761
+ const theme = useLoamTheme("chart");
762
+ const android = isAndroidIdiom(theme);
704
763
  const { styles } = useStyles(stylesheet);
705
764
  return /* @__PURE__ */ jsxs(View, { style: styles.tableWrap, children: [
706
- /* @__PURE__ */ jsx(Text, { style: styles.tableCaption, children: labels.tableRows(title || labels.dataCaption, model.rows.length) }),
765
+ /* @__PURE__ */ jsxs(
766
+ View,
767
+ {
768
+ style: styles.tableCaption,
769
+ accessible: true,
770
+ accessibilityLabel: labels.tableRows(title || labels.dataCaption, model.rows.length),
771
+ children: [
772
+ /* @__PURE__ */ jsx(Text, { style: [styles.tableCaptionText, resolveTextRole(theme, "overline", android)], children: title || labels.dataCaption }),
773
+ /* @__PURE__ */ jsx(Text, { style: styles.tableCount, children: model.rows.length })
774
+ ]
775
+ }
776
+ ),
707
777
  /* @__PURE__ */ jsx(ScrollView, { horizontal: true, focusable: true, showsHorizontalScrollIndicator: true, children: /* @__PURE__ */ jsx(ScrollView, { style: styles.tableScroll, focusable: true, nestedScrollEnabled: true, children: /* @__PURE__ */ jsxs(View, { accessibilityRole: "none", children: [
708
778
  /* @__PURE__ */ jsx(View, { style: [styles.tr, styles.thead], children: model.head.map((h, i) => /* @__PURE__ */ jsx(Text, { style: [styles.th, i === 0 && styles.thFirst], children: h }, i)) }),
709
779
  model.rows.map((r, i) => /* @__PURE__ */ jsx(View, { style: [styles.tr, i % 2 ? styles.trAlt : null], children: r.map((c, j) => /* @__PURE__ */ jsx(Text, { style: [styles.td, j === 0 && styles.tdFirst], children: c }, j)) }, i))
@@ -716,7 +786,7 @@ var stylesheet = createStyleSheet((theme) => ({
716
786
  paddingTop: theme.space[8]
717
787
  },
718
788
  card: {
719
- borderRadius: theme.radius.xl,
789
+ borderRadius: theme.radius.lg,
720
790
  borderWidth: theme.borderWidth.base,
721
791
  borderColor: theme.color.border,
722
792
  backgroundColor: theme.color.surface,
@@ -737,8 +807,6 @@ var stylesheet = createStyleSheet((theme) => ({
737
807
  headerText: { flex: 1, minWidth: 0, gap: theme.space.s1 },
738
808
  title: {
739
809
  fontFamily: theme.font.sans,
740
- fontSize: theme.fontSize[15],
741
- fontWeight: theme.fontWeight.extrabold,
742
810
  color: theme.color.text
743
811
  },
744
812
  subtitle: {
@@ -747,21 +815,26 @@ var stylesheet = createStyleSheet((theme) => ({
747
815
  color: theme.color.text3,
748
816
  lineHeight: theme.space[18]
749
817
  },
750
- toolbar: { flexDirection: "row", gap: theme.space.s2 },
751
- toolButton: {
752
- width: theme.tapMin,
753
- height: theme.tapMin,
818
+ toolbar: { flexDirection: "row", gap: theme.space.s1 },
819
+ // The md 36 icon box every chart control shares — the Button md tier, square.
820
+ iconBox: {
821
+ width: theme.ctl.md,
822
+ height: theme.ctl.md,
754
823
  alignItems: "center",
755
824
  justifyContent: "center",
756
- borderRadius: theme.radius.sm,
825
+ borderRadius: theme.ctl.r.md
826
+ },
827
+ // Button outline: the strong 1.5 pressable edge on no ground (R3).
828
+ toolButton: {
829
+ borderWidth: theme.borderWidth.strong,
830
+ borderColor: theme.color.borderStrong
831
+ },
832
+ // Pressed = tonal, as on web: the soft accent ground and its edge.
833
+ toolButtonActive: {
757
834
  borderWidth: theme.borderWidth.base,
758
- borderColor: theme.color.borderStrong,
759
- backgroundColor: theme.color.surface2
835
+ borderColor: theme.edge.accent,
836
+ backgroundColor: theme.color.accentSoft
760
837
  },
761
- // The active edge is a graphical object under SC 1.4.11, so it takes the
762
- // *measured* accent rather than the brand input — the same colour the focus
763
- // ring uses, for the same reason.
764
- toolButtonActive: { borderColor: theme.focus.ringColor, backgroundColor: theme.color.accentSoft },
765
838
  // Press feedback for every chart control. Web leans on the unlayered global
766
839
  // `button:hover { filter: var(--hover-filter) }`; native has no equivalent,
767
840
  // so without this a tap on the toolbar, a legend chip or the readout's clear
@@ -773,7 +846,7 @@ var stylesheet = createStyleSheet((theme) => ({
773
846
  flexDirection: "row",
774
847
  alignItems: "center",
775
848
  gap: theme.space.s3,
776
- minHeight: theme.space[46],
849
+ minHeight: theme.tapMin,
777
850
  marginHorizontal: theme.space.s4,
778
851
  marginBottom: theme.space.s3,
779
852
  paddingHorizontal: theme.space.s3,
@@ -790,9 +863,7 @@ var stylesheet = createStyleSheet((theme) => ({
790
863
  color: theme.color.text3
791
864
  },
792
865
  readoutLabel: {
793
- fontFamily: theme.font.mono,
794
- fontSize: theme.fontSize[11],
795
- letterSpacing: theme.tracking.wide,
866
+ fontFamily: theme.font.sans,
796
867
  color: theme.color.text3
797
868
  },
798
869
  readoutRows: {
@@ -810,96 +881,72 @@ var stylesheet = createStyleSheet((theme) => ({
810
881
  readoutValue: {
811
882
  fontFamily: theme.font.sans,
812
883
  fontSize: theme.fontSize[13],
813
- fontWeight: theme.fontWeight.bold,
884
+ fontWeight: theme.fontWeight.semibold,
814
885
  color: theme.color.text
815
886
  },
816
- readoutClear: {
817
- width: theme.space[38],
818
- height: theme.space[38],
819
- alignItems: "center",
820
- justifyContent: "center",
821
- borderRadius: theme.radius.sm,
822
- borderWidth: theme.borderWidth.base,
823
- borderColor: theme.color.borderStrong,
824
- backgroundColor: theme.color.surface
825
- },
887
+ legendWrap: { flexWrap: "wrap" },
826
888
  legend: {
827
889
  flexDirection: "row",
828
890
  alignItems: "center",
829
- gap: theme.space.s2,
891
+ gap: theme.space.s1,
830
892
  paddingHorizontal: theme.space.s4,
831
893
  paddingBottom: theme.space.s3
832
894
  },
833
- chip: {
895
+ // Legend key: a ghost toggle on the sm 30 tier, r-sm 8 (Refinement 37 F50,
896
+ // Final 10 iOS "Chip sm 30", which supersede the md 36 of Refinement 18/19) — no
897
+ // border or ground at rest, so a row of keys matches the icon Buttons.
898
+ // On stays neutral (R1 exception): the swatch carries on and off.
899
+ key: {
834
900
  flexDirection: "row",
835
901
  alignItems: "center",
836
- gap: theme.space[7],
837
- height: theme.space[32],
838
- paddingHorizontal: theme.space.s3,
839
- borderRadius: theme.radius.full,
840
- borderWidth: theme.borderWidth.base,
841
- borderColor: theme.color.borderStrong,
842
- backgroundColor: theme.color.surface2
902
+ gap: theme.space[8],
903
+ height: theme.ctl.sm,
904
+ paddingHorizontal: theme.space[10],
905
+ borderRadius: theme.ctl.r.sm
843
906
  },
844
- // No `opacity` here. An off chip is already carried on three axes — `border` for
845
- // `borderStrong`, transparent for `surface2`, and `text3` for `text2` in `chipTextOff`
846
- // — and dimming on top of that dims a *measured* ink: `text3` clears AA against the
847
- // surface with no headroom, so 60% puts an interactive control under it.
848
- chipOff: { borderColor: theme.color.border, backgroundColor: "transparent" },
849
- chipText: {
907
+ keyText: {
850
908
  fontFamily: theme.font.sans,
851
909
  fontSize: theme.fontSize[13],
852
- fontWeight: theme.fontWeight.semibold,
853
- color: theme.color.text2
910
+ fontWeight: theme.fontWeight.medium,
911
+ color: theme.color.text
854
912
  },
855
- chipTextOff: { color: theme.color.text3 },
913
+ // Hidden series: Android text-3, iOS text-2 (Final 10 platform rows).
914
+ keyTextOff: { color: theme.color.text3 },
915
+ keyTextOffIos: { color: theme.color.text2 },
856
916
  legendHint: {
857
- fontFamily: theme.font.mono,
858
- fontSize: theme.fontSize[11],
917
+ fontFamily: theme.font.sans,
918
+ fontSize: theme.fontSize[12],
859
919
  color: theme.color.text3,
860
920
  paddingLeft: theme.space.s1
861
921
  },
922
+ // One swatch: 10 × 10, r 3, a 1 px series edge.
862
923
  swatch: {
863
- width: theme.space[9],
864
- height: theme.space[9],
924
+ width: theme.space[10],
925
+ height: theme.space[10],
865
926
  borderRadius: theme.radius[3],
866
927
  borderWidth: 1
867
928
  },
929
+ lineKey: {
930
+ width: theme.space[14],
931
+ height: theme.space[10],
932
+ justifyContent: "center",
933
+ alignItems: "center"
934
+ },
935
+ lineRule: { position: "absolute", left: 0, right: 0, height: theme.space[2] },
936
+ lineRing: {
937
+ width: theme.space[6],
938
+ height: theme.space[6],
939
+ borderRadius: theme.radius.full,
940
+ borderWidth: theme.borderWidth.strong,
941
+ backgroundColor: theme.color.surface
942
+ },
868
943
  // The inset lives on a wrapper so the plot's own `onLayout` width is the
869
944
  // width the scene is drawn at — padding on the measured view would put the
870
945
  // viewBox and the drawn box out of step.
871
946
  plotWrap: { paddingHorizontal: theme.space.s4, paddingBottom: theme.space.s3 },
872
947
  plot: { position: "relative", minWidth: 0 },
873
948
  skeleton: { flexDirection: "row", alignItems: "flex-end", gap: theme.space[8] },
874
- message: {
875
- alignItems: "center",
876
- justifyContent: "center",
877
- gap: theme.space.s2,
878
- paddingHorizontal: theme.space.s5,
879
- paddingVertical: theme.space.s6
880
- },
881
- messageIcon: {
882
- width: theme.tapMin,
883
- height: theme.tapMin,
884
- alignItems: "center",
885
- justifyContent: "center",
886
- borderRadius: theme.radius.md,
887
- backgroundColor: theme.color.surface2
888
- },
889
- messageTitle: {
890
- fontFamily: theme.font.sans,
891
- fontSize: theme.fontSize[14],
892
- fontWeight: theme.fontWeight.bold,
893
- color: theme.color.text,
894
- textAlign: "center"
895
- },
896
- messageText: {
897
- fontFamily: theme.font.sans,
898
- fontSize: theme.fontSize[13],
899
- lineHeight: theme.space[19],
900
- color: theme.color.text3,
901
- textAlign: "center"
902
- },
949
+ message: { justifyContent: "center" },
903
950
  caption: {
904
951
  borderTopWidth: theme.borderWidth.base,
905
952
  borderTopColor: theme.color.border,
@@ -907,10 +954,12 @@ var stylesheet = createStyleSheet((theme) => ({
907
954
  paddingHorizontal: theme.space.s4,
908
955
  paddingVertical: theme.space.s2
909
956
  },
957
+ // Footnote and source are prose: sans 12 / 1.5 text-2 (R18).
910
958
  captionText: {
911
- fontFamily: theme.font.mono,
912
- fontSize: theme.fontSize[11],
913
- color: theme.color.text3
959
+ fontFamily: theme.font.sans,
960
+ fontSize: theme.fontSize[12],
961
+ lineHeight: theme.space[18],
962
+ color: theme.color.text2
914
963
  },
915
964
  tableWrap: {
916
965
  borderTopWidth: theme.borderWidth.base,
@@ -919,33 +968,40 @@ var stylesheet = createStyleSheet((theme) => ({
919
968
  },
920
969
  tableScroll: { maxHeight: theme.space[224] },
921
970
  tableCaption: {
922
- fontFamily: theme.font.mono,
923
- fontSize: theme.fontSize[11],
924
- letterSpacing: theme.tracking.wide,
925
- color: theme.color.text3,
971
+ flexDirection: "row",
972
+ alignItems: "baseline",
973
+ gap: theme.space[8],
926
974
  paddingHorizontal: theme.space.s4,
927
975
  paddingVertical: theme.space.s2
928
976
  },
929
- tr: { flexDirection: "row" },
977
+ tableCaptionText: { fontFamily: theme.font.sans, color: theme.color.text3 },
978
+ // The count style: mono 12 / 500 text-2.
979
+ tableCount: {
980
+ fontFamily: theme.font.mono,
981
+ fontSize: theme.fontSize[12],
982
+ fontWeight: theme.fontWeight.medium,
983
+ color: theme.color.text2
984
+ },
985
+ tr: { flexDirection: "row", height: theme.space[38], alignItems: "center" },
930
986
  trAlt: { backgroundColor: theme.color.surface2 },
931
987
  thead: { backgroundColor: theme.color.surface2 },
932
988
  th: {
933
989
  minWidth: theme.space[96],
934
- paddingHorizontal: theme.space[3],
935
- paddingVertical: theme.space[2],
990
+ paddingHorizontal: theme.space.s4,
991
+ paddingVertical: theme.space.s2,
992
+ ...theme.type.footnote,
936
993
  fontFamily: theme.font.sans,
937
- fontSize: theme.fontSize[13],
938
- fontWeight: theme.fontWeight.bold,
994
+ fontWeight: theme.platform === "Android" ? theme.fontWeight.medium : theme.fontWeight.semibold,
939
995
  color: theme.color.text2,
940
996
  textAlign: "right"
941
997
  },
942
998
  thFirst: { textAlign: "left", minWidth: theme.space[120] },
943
999
  td: {
944
1000
  minWidth: theme.space[96],
945
- paddingHorizontal: theme.space[3],
946
- paddingVertical: theme.space[2],
1001
+ paddingHorizontal: theme.space.s4,
1002
+ paddingVertical: theme.space.s2,
1003
+ ...theme.type.subheadline,
947
1004
  fontFamily: theme.font.sans,
948
- fontSize: theme.fontSize[13],
949
1005
  color: theme.color.text,
950
1006
  textAlign: "right"
951
1007
  },