@thewhileloop/whileui 1.2.3 → 3.0.0

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 (690) hide show
  1. package/README.md +264 -88
  2. package/dist/blocks/chat/chat.d.ts +3 -4
  3. package/dist/blocks/chat/chat.js +29 -17
  4. package/dist/blocks/chat/index.d.ts +0 -1
  5. package/dist/blocks/chat/index.js +0 -1
  6. package/dist/blocks/commerce/checkout-summary.d.ts +1 -2
  7. package/dist/blocks/commerce/checkout-summary.js +16 -4
  8. package/dist/blocks/commerce/feature-gate.d.ts +1 -2
  9. package/dist/blocks/commerce/feature-gate.js +14 -4
  10. package/dist/blocks/commerce/index.d.ts +0 -1
  11. package/dist/blocks/commerce/index.js +0 -1
  12. package/dist/blocks/commerce/metric-card.d.ts +10 -31
  13. package/dist/blocks/commerce/metric-card.js +7 -3
  14. package/dist/blocks/commerce/plan-toggle.d.ts +1 -2
  15. package/dist/blocks/commerce/plan-toggle.js +11 -9
  16. package/dist/blocks/commerce/pricing-card.d.ts +1 -2
  17. package/dist/blocks/commerce/pricing-card.js +23 -6
  18. package/dist/blocks/commerce/product-card.d.ts +1 -2
  19. package/dist/blocks/commerce/product-card.js +23 -9
  20. package/dist/blocks/commerce/subscription-card.d.ts +1 -2
  21. package/dist/blocks/commerce/subscription-card.js +6 -3
  22. package/dist/blocks/commerce/upgrade-banner.d.ts +1 -2
  23. package/dist/blocks/commerce/upgrade-banner.js +13 -3
  24. package/dist/blocks/commerce/usage-bar.d.ts +1 -2
  25. package/dist/blocks/commerce/usage-bar.js +4 -2
  26. package/dist/blocks/datepicker/date-range-picker-modal.d.ts +2 -3
  27. package/dist/blocks/datepicker/date-range-picker-modal.js +25 -7
  28. package/dist/blocks/datepicker/datepicker-inline.d.ts +1 -2
  29. package/dist/blocks/datepicker/datepicker-inline.js +9 -3
  30. package/dist/blocks/datepicker/datepicker-modal.d.ts +2 -3
  31. package/dist/blocks/datepicker/datepicker-modal.js +44 -18
  32. package/dist/blocks/datepicker/index.d.ts +0 -1
  33. package/dist/blocks/datepicker/index.js +0 -1
  34. package/dist/blocks/datepicker/use-calendar-theme.d.ts +0 -1
  35. package/dist/blocks/datepicker/use-calendar-theme.js +0 -1
  36. package/dist/blocks/layout/action-bar.d.ts +1 -2
  37. package/dist/blocks/layout/action-bar.js +0 -1
  38. package/dist/blocks/layout/app-shell.d.ts +1 -2
  39. package/dist/blocks/layout/app-shell.js +11 -5
  40. package/dist/blocks/layout/confirm-action-sheet.d.ts +1 -2
  41. package/dist/blocks/layout/confirm-action-sheet.js +18 -6
  42. package/dist/blocks/layout/content-skeleton.d.ts +1 -2
  43. package/dist/blocks/layout/content-skeleton.js +22 -9
  44. package/dist/blocks/layout/docked-input.d.ts +11 -0
  45. package/dist/blocks/layout/docked-input.js +27 -0
  46. package/dist/blocks/layout/empty-state.d.ts +1 -2
  47. package/dist/blocks/layout/empty-state.js +10 -5
  48. package/dist/blocks/layout/error-boundary.d.ts +1 -2
  49. package/dist/blocks/layout/error-boundary.js +0 -2
  50. package/dist/blocks/layout/error-state.d.ts +1 -2
  51. package/dist/blocks/layout/error-state.js +0 -2
  52. package/dist/blocks/layout/form-modal-screen.d.ts +1 -2
  53. package/dist/blocks/layout/form-modal-screen.js +24 -21
  54. package/dist/blocks/layout/index.d.ts +2 -2
  55. package/dist/blocks/layout/index.js +2 -2
  56. package/dist/blocks/layout/keyboard-aware-screen.d.ts +14 -0
  57. package/dist/blocks/layout/keyboard-aware-screen.js +12 -0
  58. package/dist/blocks/layout/loading-screen.d.ts +1 -2
  59. package/dist/blocks/layout/loading-screen.js +6 -8
  60. package/dist/blocks/layout/page-skeleton.d.ts +1 -2
  61. package/dist/blocks/layout/page-skeleton.js +38 -20
  62. package/dist/blocks/layout/pull-to-refresh-scroll-view.d.ts +8 -4
  63. package/dist/blocks/layout/pull-to-refresh-scroll-view.js +17 -4
  64. package/dist/blocks/layout/screen-skeleton.d.ts +1 -2
  65. package/dist/blocks/layout/screen-skeleton.js +0 -1
  66. package/dist/blocks/layout/sheet.d.ts +9 -9
  67. package/dist/blocks/layout/sheet.js +51 -21
  68. package/dist/blocks/layout/smart-input.d.ts +9 -3
  69. package/dist/blocks/layout/smart-input.js +136 -9
  70. package/dist/blocks/lists/index.d.ts +0 -2
  71. package/dist/blocks/lists/index.js +0 -2
  72. package/dist/blocks/lists/list-item.d.ts +1 -2
  73. package/dist/blocks/lists/list-item.js +20 -6
  74. package/dist/blocks/lists/notification-item.d.ts +1 -2
  75. package/dist/blocks/lists/notification-item.js +19 -6
  76. package/dist/blocks/lists/timeline-feed.d.ts +1 -2
  77. package/dist/blocks/lists/timeline-feed.js +4 -2
  78. package/dist/blocks/media/index.d.ts +0 -1
  79. package/dist/blocks/media/index.js +0 -1
  80. package/dist/blocks/media/smart-image.d.ts +39 -99
  81. package/dist/blocks/media/smart-image.js +24 -8
  82. package/dist/blocks/navigation/bottom-nav.d.ts +1 -2
  83. package/dist/blocks/navigation/bottom-nav.js +7 -4
  84. package/dist/blocks/navigation/drawer-menu.d.ts +1 -2
  85. package/dist/blocks/navigation/drawer-menu.js +117 -64
  86. package/dist/blocks/navigation/floating-bottom-nav.d.ts +1 -2
  87. package/dist/blocks/navigation/floating-bottom-nav.js +14 -5
  88. package/dist/blocks/navigation/header.d.ts +2 -3
  89. package/dist/blocks/navigation/header.js +13 -5
  90. package/dist/blocks/navigation/index.d.ts +0 -2
  91. package/dist/blocks/navigation/index.js +0 -2
  92. package/dist/blocks/navigation/tab-bar.d.ts +1 -2
  93. package/dist/blocks/navigation/tab-bar.js +22 -10
  94. package/dist/blocks/splash/index.d.ts +0 -1
  95. package/dist/blocks/splash/index.js +0 -1
  96. package/dist/blocks/splash/splash-screen.d.ts +3 -4
  97. package/dist/blocks/splash/splash-screen.js +15 -11
  98. package/dist/components/accordion/accordion.d.ts +4 -5
  99. package/dist/components/accordion/accordion.js +6 -7
  100. package/dist/components/accordion/index.d.ts +0 -1
  101. package/dist/components/accordion/index.js +0 -1
  102. package/dist/components/alert/alert.d.ts +23 -56
  103. package/dist/components/alert/alert.js +20 -9
  104. package/dist/components/alert/index.d.ts +0 -1
  105. package/dist/components/alert/index.js +0 -1
  106. package/dist/components/alert-dialog/alert-dialog.d.ts +9 -10
  107. package/dist/components/alert-dialog/alert-dialog.js +175 -54
  108. package/dist/components/alert-dialog/index.d.ts +0 -1
  109. package/dist/components/alert-dialog/index.js +0 -1
  110. package/dist/components/aspect-ratio/aspect-ratio.d.ts +1 -2
  111. package/dist/components/aspect-ratio/aspect-ratio.js +0 -3
  112. package/dist/components/aspect-ratio/index.d.ts +0 -1
  113. package/dist/components/aspect-ratio/index.js +0 -1
  114. package/dist/components/avatar/avatar.d.ts +20 -48
  115. package/dist/components/avatar/avatar.js +8 -9
  116. package/dist/components/avatar/index.d.ts +0 -1
  117. package/dist/components/avatar/index.js +0 -1
  118. package/dist/components/badge/badge.d.ts +86 -215
  119. package/dist/components/badge/badge.js +21 -9
  120. package/dist/components/badge/index.d.ts +0 -1
  121. package/dist/components/badge/index.js +0 -1
  122. package/dist/components/button/button.d.ts +75 -193
  123. package/dist/components/button/button.js +62 -33
  124. package/dist/components/button/index.d.ts +0 -1
  125. package/dist/components/button/index.js +0 -1
  126. package/dist/components/card/card.d.ts +32 -74
  127. package/dist/components/card/card.js +29 -15
  128. package/dist/components/card/index.d.ts +0 -1
  129. package/dist/components/card/index.js +0 -1
  130. package/dist/components/checkbox/checkbox.d.ts +1 -2
  131. package/dist/components/checkbox/checkbox.js +15 -2
  132. package/dist/components/checkbox/index.d.ts +0 -1
  133. package/dist/components/checkbox/index.js +0 -1
  134. package/dist/components/collapsible/collapsible.d.ts +4 -4
  135. package/dist/components/collapsible/collapsible.js +8 -11
  136. package/dist/components/collapsible/index.d.ts +0 -1
  137. package/dist/components/collapsible/index.js +0 -1
  138. package/dist/components/container/container.d.ts +74 -0
  139. package/dist/components/container/container.js +43 -0
  140. package/dist/components/container/index.d.ts +1 -0
  141. package/dist/components/container/index.js +1 -0
  142. package/dist/components/context-menu/context-menu.d.ts +6 -7
  143. package/dist/components/context-menu/context-menu.js +42 -12
  144. package/dist/components/context-menu/index.d.ts +0 -1
  145. package/dist/components/context-menu/index.js +0 -1
  146. package/dist/components/data-row/data-row.d.ts +18 -39
  147. package/dist/components/data-row/data-row.js +36 -18
  148. package/dist/components/data-row/index.d.ts +0 -1
  149. package/dist/components/data-row/index.js +0 -1
  150. package/dist/components/dialog/dialog.d.ts +8 -9
  151. package/dist/components/dialog/dialog.js +48 -24
  152. package/dist/components/dialog/index.d.ts +0 -1
  153. package/dist/components/dialog/index.js +0 -1
  154. package/dist/components/dropdown-menu/dropdown-menu.d.ts +6 -7
  155. package/dist/components/dropdown-menu/dropdown-menu.js +45 -11
  156. package/dist/components/dropdown-menu/index.d.ts +0 -1
  157. package/dist/components/dropdown-menu/index.js +0 -1
  158. package/dist/components/form-field/form-field.d.ts +31 -88
  159. package/dist/components/form-field/form-field.js +27 -14
  160. package/dist/components/form-field/index.d.ts +0 -1
  161. package/dist/components/form-field/index.js +0 -1
  162. package/dist/components/hover-card/hover-card.d.ts +4 -4
  163. package/dist/components/hover-card/hover-card.js +12 -3
  164. package/dist/components/hover-card/index.d.ts +0 -1
  165. package/dist/components/hover-card/index.js +0 -1
  166. package/dist/components/input/index.d.ts +0 -1
  167. package/dist/components/input/index.js +0 -1
  168. package/dist/components/input/input.d.ts +12 -32
  169. package/dist/components/input/input.js +18 -3
  170. package/dist/components/label/index.d.ts +0 -1
  171. package/dist/components/label/index.js +0 -1
  172. package/dist/components/label/label.d.ts +3 -4
  173. package/dist/components/label/label.js +0 -1
  174. package/dist/components/labeled-field/index.d.ts +0 -1
  175. package/dist/components/labeled-field/index.js +0 -1
  176. package/dist/components/labeled-field/labeled-field.d.ts +4 -4
  177. package/dist/components/labeled-field/labeled-field.js +10 -2
  178. package/dist/components/menubar/index.d.ts +0 -1
  179. package/dist/components/menubar/index.js +0 -1
  180. package/dist/components/menubar/menubar.d.ts +7 -8
  181. package/dist/components/menubar/menubar.js +48 -15
  182. package/dist/components/numeric-input/index.d.ts +0 -1
  183. package/dist/components/numeric-input/index.js +0 -1
  184. package/dist/components/numeric-input/numeric-input.d.ts +29 -83
  185. package/dist/components/numeric-input/numeric-input.js +93 -73
  186. package/dist/components/otp-input/index.d.ts +0 -1
  187. package/dist/components/otp-input/index.js +0 -1
  188. package/dist/components/otp-input/otp-input.d.ts +22 -67
  189. package/dist/components/otp-input/otp-input.js +13 -9
  190. package/dist/components/popover/index.d.ts +0 -1
  191. package/dist/components/popover/index.js +0 -1
  192. package/dist/components/popover/popover.d.ts +8 -5
  193. package/dist/components/popover/popover.js +21 -4
  194. package/dist/components/pressable/index.d.ts +0 -1
  195. package/dist/components/pressable/index.js +0 -1
  196. package/dist/components/pressable/pressable.d.ts +10 -4
  197. package/dist/components/pressable/pressable.js +47 -4
  198. package/dist/components/progress/index.d.ts +0 -1
  199. package/dist/components/progress/index.js +0 -1
  200. package/dist/components/progress/progress.d.ts +15 -40
  201. package/dist/components/progress/progress.js +5 -2
  202. package/dist/components/radio-group/index.d.ts +0 -1
  203. package/dist/components/radio-group/index.js +0 -1
  204. package/dist/components/radio-group/radio-group.d.ts +2 -3
  205. package/dist/components/radio-group/radio-group.js +16 -7
  206. package/dist/components/row/index.d.ts +0 -1
  207. package/dist/components/row/index.js +0 -1
  208. package/dist/components/row/row.d.ts +63 -164
  209. package/dist/components/row/row.js +0 -1
  210. package/dist/components/segmented-control/index.d.ts +0 -1
  211. package/dist/components/segmented-control/index.js +0 -1
  212. package/dist/components/segmented-control/segmented-control.d.ts +72 -245
  213. package/dist/components/segmented-control/segmented-control.js +57 -24
  214. package/dist/components/select/index.d.ts +0 -1
  215. package/dist/components/select/index.js +0 -1
  216. package/dist/components/select/select.d.ts +23 -27
  217. package/dist/components/select/select.js +54 -12
  218. package/dist/components/separator/index.d.ts +0 -1
  219. package/dist/components/separator/index.js +0 -1
  220. package/dist/components/separator/separator.d.ts +3 -4
  221. package/dist/components/separator/separator.js +0 -1
  222. package/dist/components/skeleton/index.d.ts +0 -1
  223. package/dist/components/skeleton/index.js +0 -1
  224. package/dist/components/skeleton/skeleton.d.ts +10 -31
  225. package/dist/components/skeleton/skeleton.js +7 -8
  226. package/dist/components/spinner/index.d.ts +0 -1
  227. package/dist/components/spinner/index.js +0 -1
  228. package/dist/components/spinner/spinner.d.ts +13 -38
  229. package/dist/components/spinner/spinner.js +4 -2
  230. package/dist/components/stack/index.d.ts +0 -1
  231. package/dist/components/stack/index.js +0 -1
  232. package/dist/components/stack/stack.d.ts +63 -164
  233. package/dist/components/stack/stack.js +0 -1
  234. package/dist/components/switch/index.d.ts +0 -1
  235. package/dist/components/switch/index.js +0 -1
  236. package/dist/components/switch/switch.d.ts +1 -2
  237. package/dist/components/switch/switch.js +21 -2
  238. package/dist/components/tabs/index.d.ts +0 -1
  239. package/dist/components/tabs/index.js +0 -1
  240. package/dist/components/tabs/tabs.d.ts +13 -34
  241. package/dist/components/tabs/tabs.js +42 -12
  242. package/dist/components/text/index.d.ts +0 -1
  243. package/dist/components/text/index.js +0 -1
  244. package/dist/components/text/text.d.ts +51 -132
  245. package/dist/components/text/text.js +0 -1
  246. package/dist/components/textarea/index.d.ts +0 -1
  247. package/dist/components/textarea/index.js +0 -1
  248. package/dist/components/textarea/textarea.d.ts +15 -40
  249. package/dist/components/textarea/textarea.js +17 -9
  250. package/dist/components/toast/index.d.ts +0 -1
  251. package/dist/components/toast/index.js +0 -1
  252. package/dist/components/toast/toast.d.ts +15 -40
  253. package/dist/components/toast/toast.js +40 -24
  254. package/dist/components/toggle/index.d.ts +0 -1
  255. package/dist/components/toggle/index.js +0 -1
  256. package/dist/components/toggle/toggle.d.ts +44 -141
  257. package/dist/components/toggle/toggle.js +32 -16
  258. package/dist/components/toggle-group/index.d.ts +0 -1
  259. package/dist/components/toggle-group/index.js +0 -1
  260. package/dist/components/toggle-group/toggle-group.d.ts +45 -142
  261. package/dist/components/toggle-group/toggle-group.js +36 -19
  262. package/dist/components/tooltip/index.d.ts +0 -1
  263. package/dist/components/tooltip/index.js +0 -1
  264. package/dist/components/tooltip/tooltip.d.ts +4 -4
  265. package/dist/components/tooltip/tooltip.js +20 -3
  266. package/dist/components/view/index.d.ts +0 -1
  267. package/dist/components/view/index.js +0 -1
  268. package/dist/components/view/view.d.ts +3 -4
  269. package/dist/components/view/view.js +0 -1
  270. package/dist/index.d.ts +9 -3
  271. package/dist/index.js +9 -7
  272. package/dist/lib/cn.d.ts +0 -1
  273. package/dist/lib/cn.js +0 -1
  274. package/dist/lib/compose-event-handlers.d.ts +15 -0
  275. package/dist/lib/compose-event-handlers.js +20 -0
  276. package/dist/lib/focus-ring.d.ts +25 -0
  277. package/dist/lib/focus-ring.js +25 -0
  278. package/dist/lib/font-context.d.ts +1 -1
  279. package/dist/lib/font-context.js +6 -4
  280. package/dist/lib/frosted-surface.d.ts +0 -1
  281. package/dist/lib/frosted-surface.js +31 -6
  282. package/dist/lib/interaction-tokens.d.ts +12 -1
  283. package/dist/lib/interaction-tokens.js +27 -13
  284. package/dist/lib/motion-policy.d.ts +25 -0
  285. package/dist/lib/motion-policy.js +97 -0
  286. package/dist/lib/overlay-insets.d.ts +17 -0
  287. package/dist/lib/overlay-insets.js +23 -0
  288. package/dist/lib/portal.d.ts +0 -1
  289. package/dist/lib/portal.js +0 -1
  290. package/dist/lib/react-native-classname.d.ts +0 -1
  291. package/dist/lib/react-native-classname.js +0 -1
  292. package/dist/lib/recipes.d.ts +30 -0
  293. package/dist/lib/recipes.js +138 -0
  294. package/dist/lib/ref-types.d.ts +3 -0
  295. package/dist/lib/ref-types.js +1 -0
  296. package/dist/lib/tap-only.d.ts +11 -0
  297. package/dist/lib/tap-only.js +24 -0
  298. package/dist/lib/theme-bridge.d.ts +4 -3
  299. package/dist/lib/theme-bridge.js +24 -12
  300. package/dist/lib/theme-colors.d.ts +2 -46
  301. package/dist/lib/theme-colors.js +25 -226
  302. package/dist/lib/theme-contract.d.ts +78 -0
  303. package/dist/lib/theme-contract.js +481 -0
  304. package/dist/lib/theme-derive.d.ts +4 -0
  305. package/dist/lib/theme-derive.js +80 -0
  306. package/dist/lib/theme-presets.d.ts +31 -0
  307. package/dist/lib/theme-presets.js +221 -0
  308. package/dist/lib/tv.d.ts +0 -1
  309. package/dist/lib/tv.js +0 -1
  310. package/dist/lib/visual-token-contract.d.ts +110 -0
  311. package/dist/lib/visual-token-contract.js +583 -0
  312. package/dist/lib/visual-tokens.d.ts +2 -38
  313. package/dist/lib/visual-tokens.js +22 -75
  314. package/dist/tokens.d.ts +4 -0
  315. package/dist/tokens.js +6 -0
  316. package/dist/vite.d.ts +0 -1
  317. package/dist/vite.js +0 -1
  318. package/package.json +40 -29
  319. package/dist/blocks/auth/forgot-password-form.d.ts +0 -10
  320. package/dist/blocks/auth/forgot-password-form.d.ts.map +0 -1
  321. package/dist/blocks/auth/forgot-password-form.js +0 -17
  322. package/dist/blocks/auth/forgot-password-form.js.map +0 -1
  323. package/dist/blocks/auth/index.d.ts +0 -8
  324. package/dist/blocks/auth/index.d.ts.map +0 -1
  325. package/dist/blocks/auth/index.js +0 -8
  326. package/dist/blocks/auth/index.js.map +0 -1
  327. package/dist/blocks/auth/reset-password-form.d.ts +0 -9
  328. package/dist/blocks/auth/reset-password-form.d.ts.map +0 -1
  329. package/dist/blocks/auth/reset-password-form.js +0 -16
  330. package/dist/blocks/auth/reset-password-form.js.map +0 -1
  331. package/dist/blocks/auth/sign-in-form.d.ts +0 -17
  332. package/dist/blocks/auth/sign-in-form.d.ts.map +0 -1
  333. package/dist/blocks/auth/sign-in-form.js +0 -19
  334. package/dist/blocks/auth/sign-in-form.js.map +0 -1
  335. package/dist/blocks/auth/sign-up-form.d.ts +0 -17
  336. package/dist/blocks/auth/sign-up-form.d.ts.map +0 -1
  337. package/dist/blocks/auth/sign-up-form.js +0 -21
  338. package/dist/blocks/auth/sign-up-form.js.map +0 -1
  339. package/dist/blocks/auth/social-connections.d.ts +0 -10
  340. package/dist/blocks/auth/social-connections.d.ts.map +0 -1
  341. package/dist/blocks/auth/social-connections.js +0 -8
  342. package/dist/blocks/auth/social-connections.js.map +0 -1
  343. package/dist/blocks/auth/user-menu.d.ts +0 -12
  344. package/dist/blocks/auth/user-menu.d.ts.map +0 -1
  345. package/dist/blocks/auth/user-menu.js +0 -10
  346. package/dist/blocks/auth/user-menu.js.map +0 -1
  347. package/dist/blocks/auth/verify-email-form.d.ts +0 -10
  348. package/dist/blocks/auth/verify-email-form.d.ts.map +0 -1
  349. package/dist/blocks/auth/verify-email-form.js +0 -17
  350. package/dist/blocks/auth/verify-email-form.js.map +0 -1
  351. package/dist/blocks/chat/chat.d.ts.map +0 -1
  352. package/dist/blocks/chat/chat.js.map +0 -1
  353. package/dist/blocks/chat/index.d.ts.map +0 -1
  354. package/dist/blocks/chat/index.js.map +0 -1
  355. package/dist/blocks/commerce/checkout-summary.d.ts.map +0 -1
  356. package/dist/blocks/commerce/checkout-summary.js.map +0 -1
  357. package/dist/blocks/commerce/feature-gate.d.ts.map +0 -1
  358. package/dist/blocks/commerce/feature-gate.js.map +0 -1
  359. package/dist/blocks/commerce/index.d.ts.map +0 -1
  360. package/dist/blocks/commerce/index.js.map +0 -1
  361. package/dist/blocks/commerce/metric-card.d.ts.map +0 -1
  362. package/dist/blocks/commerce/metric-card.js.map +0 -1
  363. package/dist/blocks/commerce/plan-toggle.d.ts.map +0 -1
  364. package/dist/blocks/commerce/plan-toggle.js.map +0 -1
  365. package/dist/blocks/commerce/pricing-card.d.ts.map +0 -1
  366. package/dist/blocks/commerce/pricing-card.js.map +0 -1
  367. package/dist/blocks/commerce/product-card.d.ts.map +0 -1
  368. package/dist/blocks/commerce/product-card.js.map +0 -1
  369. package/dist/blocks/commerce/subscription-card.d.ts.map +0 -1
  370. package/dist/blocks/commerce/subscription-card.js.map +0 -1
  371. package/dist/blocks/commerce/upgrade-banner.d.ts.map +0 -1
  372. package/dist/blocks/commerce/upgrade-banner.js.map +0 -1
  373. package/dist/blocks/commerce/usage-bar.d.ts.map +0 -1
  374. package/dist/blocks/commerce/usage-bar.js.map +0 -1
  375. package/dist/blocks/datepicker/date-range-picker-modal.d.ts.map +0 -1
  376. package/dist/blocks/datepicker/date-range-picker-modal.js.map +0 -1
  377. package/dist/blocks/datepicker/datepicker-inline.d.ts.map +0 -1
  378. package/dist/blocks/datepicker/datepicker-inline.js.map +0 -1
  379. package/dist/blocks/datepicker/datepicker-modal.d.ts.map +0 -1
  380. package/dist/blocks/datepicker/datepicker-modal.js.map +0 -1
  381. package/dist/blocks/datepicker/index.d.ts.map +0 -1
  382. package/dist/blocks/datepicker/index.js.map +0 -1
  383. package/dist/blocks/datepicker/use-calendar-theme.d.ts.map +0 -1
  384. package/dist/blocks/datepicker/use-calendar-theme.js.map +0 -1
  385. package/dist/blocks/layout/action-bar.d.ts.map +0 -1
  386. package/dist/blocks/layout/action-bar.js.map +0 -1
  387. package/dist/blocks/layout/app-shell.d.ts.map +0 -1
  388. package/dist/blocks/layout/app-shell.js.map +0 -1
  389. package/dist/blocks/layout/confirm-action-sheet.d.ts.map +0 -1
  390. package/dist/blocks/layout/confirm-action-sheet.js.map +0 -1
  391. package/dist/blocks/layout/content-skeleton.d.ts.map +0 -1
  392. package/dist/blocks/layout/content-skeleton.js.map +0 -1
  393. package/dist/blocks/layout/empty-state.d.ts.map +0 -1
  394. package/dist/blocks/layout/empty-state.js.map +0 -1
  395. package/dist/blocks/layout/error-boundary.d.ts.map +0 -1
  396. package/dist/blocks/layout/error-boundary.js.map +0 -1
  397. package/dist/blocks/layout/error-state.d.ts.map +0 -1
  398. package/dist/blocks/layout/error-state.js.map +0 -1
  399. package/dist/blocks/layout/form-modal-screen.d.ts.map +0 -1
  400. package/dist/blocks/layout/form-modal-screen.js.map +0 -1
  401. package/dist/blocks/layout/index.d.ts.map +0 -1
  402. package/dist/blocks/layout/index.js.map +0 -1
  403. package/dist/blocks/layout/loading-screen.d.ts.map +0 -1
  404. package/dist/blocks/layout/loading-screen.js.map +0 -1
  405. package/dist/blocks/layout/onboarding-screen.d.ts +0 -19
  406. package/dist/blocks/layout/onboarding-screen.d.ts.map +0 -1
  407. package/dist/blocks/layout/onboarding-screen.js +0 -35
  408. package/dist/blocks/layout/onboarding-screen.js.map +0 -1
  409. package/dist/blocks/layout/page-skeleton.d.ts.map +0 -1
  410. package/dist/blocks/layout/page-skeleton.js.map +0 -1
  411. package/dist/blocks/layout/pull-to-refresh-scroll-view.d.ts.map +0 -1
  412. package/dist/blocks/layout/pull-to-refresh-scroll-view.js.map +0 -1
  413. package/dist/blocks/layout/screen-skeleton.d.ts.map +0 -1
  414. package/dist/blocks/layout/screen-skeleton.js.map +0 -1
  415. package/dist/blocks/layout/sheet.d.ts.map +0 -1
  416. package/dist/blocks/layout/sheet.js.map +0 -1
  417. package/dist/blocks/layout/smart-image.d.ts +0 -9
  418. package/dist/blocks/layout/smart-image.d.ts.map +0 -1
  419. package/dist/blocks/layout/smart-image.js +0 -23
  420. package/dist/blocks/layout/smart-image.js.map +0 -1
  421. package/dist/blocks/layout/smart-input.d.ts.map +0 -1
  422. package/dist/blocks/layout/smart-input.js.map +0 -1
  423. package/dist/blocks/lists/index.d.ts.map +0 -1
  424. package/dist/blocks/lists/index.js.map +0 -1
  425. package/dist/blocks/lists/list-item.d.ts.map +0 -1
  426. package/dist/blocks/lists/list-item.js.map +0 -1
  427. package/dist/blocks/lists/notification-item.d.ts.map +0 -1
  428. package/dist/blocks/lists/notification-item.js.map +0 -1
  429. package/dist/blocks/lists/swipeable-item.d.ts +0 -17
  430. package/dist/blocks/lists/swipeable-item.d.ts.map +0 -1
  431. package/dist/blocks/lists/swipeable-item.js +0 -65
  432. package/dist/blocks/lists/swipeable-item.js.map +0 -1
  433. package/dist/blocks/lists/timeline-feed.d.ts.map +0 -1
  434. package/dist/blocks/lists/timeline-feed.js.map +0 -1
  435. package/dist/blocks/media/index.d.ts.map +0 -1
  436. package/dist/blocks/media/index.js.map +0 -1
  437. package/dist/blocks/media/smart-image.d.ts.map +0 -1
  438. package/dist/blocks/media/smart-image.js.map +0 -1
  439. package/dist/blocks/navigation/bottom-nav.d.ts.map +0 -1
  440. package/dist/blocks/navigation/bottom-nav.js.map +0 -1
  441. package/dist/blocks/navigation/drawer-menu.d.ts.map +0 -1
  442. package/dist/blocks/navigation/drawer-menu.js.map +0 -1
  443. package/dist/blocks/navigation/floating-bottom-nav.d.ts.map +0 -1
  444. package/dist/blocks/navigation/floating-bottom-nav.js.map +0 -1
  445. package/dist/blocks/navigation/header.d.ts.map +0 -1
  446. package/dist/blocks/navigation/header.js.map +0 -1
  447. package/dist/blocks/navigation/index.d.ts.map +0 -1
  448. package/dist/blocks/navigation/index.js.map +0 -1
  449. package/dist/blocks/navigation/navigation-sidebar.d.ts +0 -25
  450. package/dist/blocks/navigation/navigation-sidebar.d.ts.map +0 -1
  451. package/dist/blocks/navigation/navigation-sidebar.js +0 -18
  452. package/dist/blocks/navigation/navigation-sidebar.js.map +0 -1
  453. package/dist/blocks/navigation/tab-bar.d.ts.map +0 -1
  454. package/dist/blocks/navigation/tab-bar.js.map +0 -1
  455. package/dist/blocks/profile/account-card.d.ts +0 -11
  456. package/dist/blocks/profile/account-card.d.ts.map +0 -1
  457. package/dist/blocks/profile/account-card.js +0 -10
  458. package/dist/blocks/profile/account-card.js.map +0 -1
  459. package/dist/blocks/profile/index.d.ts +0 -5
  460. package/dist/blocks/profile/index.d.ts.map +0 -1
  461. package/dist/blocks/profile/index.js +0 -5
  462. package/dist/blocks/profile/index.js.map +0 -1
  463. package/dist/blocks/profile/profile-header.d.ts +0 -27
  464. package/dist/blocks/profile/profile-header.d.ts.map +0 -1
  465. package/dist/blocks/profile/profile-header.js +0 -11
  466. package/dist/blocks/profile/profile-header.js.map +0 -1
  467. package/dist/blocks/profile/settings-item.d.ts +0 -15
  468. package/dist/blocks/profile/settings-item.d.ts.map +0 -1
  469. package/dist/blocks/profile/settings-item.js +0 -11
  470. package/dist/blocks/profile/settings-item.js.map +0 -1
  471. package/dist/blocks/profile/settings-section.d.ts +0 -7
  472. package/dist/blocks/profile/settings-section.d.ts.map +0 -1
  473. package/dist/blocks/profile/settings-section.js +0 -9
  474. package/dist/blocks/profile/settings-section.js.map +0 -1
  475. package/dist/blocks/splash/index.d.ts.map +0 -1
  476. package/dist/blocks/splash/index.js.map +0 -1
  477. package/dist/blocks/splash/splash-screen.d.ts.map +0 -1
  478. package/dist/blocks/splash/splash-screen.js.map +0 -1
  479. package/dist/components/accordion/accordion.d.ts.map +0 -1
  480. package/dist/components/accordion/accordion.js.map +0 -1
  481. package/dist/components/accordion/index.d.ts.map +0 -1
  482. package/dist/components/accordion/index.js.map +0 -1
  483. package/dist/components/alert/alert.d.ts.map +0 -1
  484. package/dist/components/alert/alert.js.map +0 -1
  485. package/dist/components/alert/index.d.ts.map +0 -1
  486. package/dist/components/alert/index.js.map +0 -1
  487. package/dist/components/alert-dialog/alert-dialog.d.ts.map +0 -1
  488. package/dist/components/alert-dialog/alert-dialog.js.map +0 -1
  489. package/dist/components/alert-dialog/index.d.ts.map +0 -1
  490. package/dist/components/alert-dialog/index.js.map +0 -1
  491. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +0 -1
  492. package/dist/components/aspect-ratio/aspect-ratio.js.map +0 -1
  493. package/dist/components/aspect-ratio/index.d.ts.map +0 -1
  494. package/dist/components/aspect-ratio/index.js.map +0 -1
  495. package/dist/components/avatar/avatar.d.ts.map +0 -1
  496. package/dist/components/avatar/avatar.js.map +0 -1
  497. package/dist/components/avatar/index.d.ts.map +0 -1
  498. package/dist/components/avatar/index.js.map +0 -1
  499. package/dist/components/badge/badge.d.ts.map +0 -1
  500. package/dist/components/badge/badge.js.map +0 -1
  501. package/dist/components/badge/index.d.ts.map +0 -1
  502. package/dist/components/badge/index.js.map +0 -1
  503. package/dist/components/box/box.d.ts +0 -143
  504. package/dist/components/box/box.d.ts.map +0 -1
  505. package/dist/components/box/box.js +0 -38
  506. package/dist/components/box/box.js.map +0 -1
  507. package/dist/components/box/index.d.ts +0 -2
  508. package/dist/components/box/index.d.ts.map +0 -1
  509. package/dist/components/box/index.js +0 -2
  510. package/dist/components/box/index.js.map +0 -1
  511. package/dist/components/button/button.d.ts.map +0 -1
  512. package/dist/components/button/button.js.map +0 -1
  513. package/dist/components/button/index.d.ts.map +0 -1
  514. package/dist/components/button/index.js.map +0 -1
  515. package/dist/components/card/card.d.ts.map +0 -1
  516. package/dist/components/card/card.js.map +0 -1
  517. package/dist/components/card/index.d.ts.map +0 -1
  518. package/dist/components/card/index.js.map +0 -1
  519. package/dist/components/checkbox/checkbox.d.ts.map +0 -1
  520. package/dist/components/checkbox/checkbox.js.map +0 -1
  521. package/dist/components/checkbox/index.d.ts.map +0 -1
  522. package/dist/components/checkbox/index.js.map +0 -1
  523. package/dist/components/collapsible/collapsible.d.ts.map +0 -1
  524. package/dist/components/collapsible/collapsible.js.map +0 -1
  525. package/dist/components/collapsible/index.d.ts.map +0 -1
  526. package/dist/components/collapsible/index.js.map +0 -1
  527. package/dist/components/context-menu/context-menu.d.ts.map +0 -1
  528. package/dist/components/context-menu/context-menu.js.map +0 -1
  529. package/dist/components/context-menu/index.d.ts.map +0 -1
  530. package/dist/components/context-menu/index.js.map +0 -1
  531. package/dist/components/data-row/data-row.d.ts.map +0 -1
  532. package/dist/components/data-row/data-row.js.map +0 -1
  533. package/dist/components/data-row/index.d.ts.map +0 -1
  534. package/dist/components/data-row/index.js.map +0 -1
  535. package/dist/components/dialog/dialog.d.ts.map +0 -1
  536. package/dist/components/dialog/dialog.js.map +0 -1
  537. package/dist/components/dialog/index.d.ts.map +0 -1
  538. package/dist/components/dialog/index.js.map +0 -1
  539. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
  540. package/dist/components/dropdown-menu/dropdown-menu.js.map +0 -1
  541. package/dist/components/dropdown-menu/index.d.ts.map +0 -1
  542. package/dist/components/dropdown-menu/index.js.map +0 -1
  543. package/dist/components/form-field/form-field.d.ts.map +0 -1
  544. package/dist/components/form-field/form-field.js.map +0 -1
  545. package/dist/components/form-field/index.d.ts.map +0 -1
  546. package/dist/components/form-field/index.js.map +0 -1
  547. package/dist/components/hover-card/hover-card.d.ts.map +0 -1
  548. package/dist/components/hover-card/hover-card.js.map +0 -1
  549. package/dist/components/hover-card/index.d.ts.map +0 -1
  550. package/dist/components/hover-card/index.js.map +0 -1
  551. package/dist/components/input/index.d.ts.map +0 -1
  552. package/dist/components/input/index.js.map +0 -1
  553. package/dist/components/input/input.d.ts.map +0 -1
  554. package/dist/components/input/input.js.map +0 -1
  555. package/dist/components/label/index.d.ts.map +0 -1
  556. package/dist/components/label/index.js.map +0 -1
  557. package/dist/components/label/label.d.ts.map +0 -1
  558. package/dist/components/label/label.js.map +0 -1
  559. package/dist/components/labeled-field/index.d.ts.map +0 -1
  560. package/dist/components/labeled-field/index.js.map +0 -1
  561. package/dist/components/labeled-field/labeled-field.d.ts.map +0 -1
  562. package/dist/components/labeled-field/labeled-field.js.map +0 -1
  563. package/dist/components/layout/index.d.ts +0 -2
  564. package/dist/components/layout/index.d.ts.map +0 -1
  565. package/dist/components/layout/index.js +0 -2
  566. package/dist/components/layout/index.js.map +0 -1
  567. package/dist/components/layout/layout.d.ts +0 -395
  568. package/dist/components/layout/layout.d.ts.map +0 -1
  569. package/dist/components/layout/layout.js +0 -93
  570. package/dist/components/layout/layout.js.map +0 -1
  571. package/dist/components/menubar/index.d.ts.map +0 -1
  572. package/dist/components/menubar/index.js.map +0 -1
  573. package/dist/components/menubar/menubar.d.ts.map +0 -1
  574. package/dist/components/menubar/menubar.js.map +0 -1
  575. package/dist/components/numeric-input/index.d.ts.map +0 -1
  576. package/dist/components/numeric-input/index.js.map +0 -1
  577. package/dist/components/numeric-input/numeric-input.d.ts.map +0 -1
  578. package/dist/components/numeric-input/numeric-input.js.map +0 -1
  579. package/dist/components/otp-input/index.d.ts.map +0 -1
  580. package/dist/components/otp-input/index.js.map +0 -1
  581. package/dist/components/otp-input/otp-input.d.ts.map +0 -1
  582. package/dist/components/otp-input/otp-input.js.map +0 -1
  583. package/dist/components/popover/index.d.ts.map +0 -1
  584. package/dist/components/popover/index.js.map +0 -1
  585. package/dist/components/popover/popover.d.ts.map +0 -1
  586. package/dist/components/popover/popover.js.map +0 -1
  587. package/dist/components/pressable/index.d.ts.map +0 -1
  588. package/dist/components/pressable/index.js.map +0 -1
  589. package/dist/components/pressable/pressable.d.ts.map +0 -1
  590. package/dist/components/pressable/pressable.js.map +0 -1
  591. package/dist/components/progress/index.d.ts.map +0 -1
  592. package/dist/components/progress/index.js.map +0 -1
  593. package/dist/components/progress/progress.d.ts.map +0 -1
  594. package/dist/components/progress/progress.js.map +0 -1
  595. package/dist/components/radio-group/index.d.ts.map +0 -1
  596. package/dist/components/radio-group/index.js.map +0 -1
  597. package/dist/components/radio-group/radio-group.d.ts.map +0 -1
  598. package/dist/components/radio-group/radio-group.js.map +0 -1
  599. package/dist/components/row/index.d.ts.map +0 -1
  600. package/dist/components/row/index.js.map +0 -1
  601. package/dist/components/row/row.d.ts.map +0 -1
  602. package/dist/components/row/row.js.map +0 -1
  603. package/dist/components/segmented-control/index.d.ts.map +0 -1
  604. package/dist/components/segmented-control/index.js.map +0 -1
  605. package/dist/components/segmented-control/segmented-control.d.ts.map +0 -1
  606. package/dist/components/segmented-control/segmented-control.js.map +0 -1
  607. package/dist/components/select/index.d.ts.map +0 -1
  608. package/dist/components/select/index.js.map +0 -1
  609. package/dist/components/select/select.d.ts.map +0 -1
  610. package/dist/components/select/select.js.map +0 -1
  611. package/dist/components/separator/index.d.ts.map +0 -1
  612. package/dist/components/separator/index.js.map +0 -1
  613. package/dist/components/separator/separator.d.ts.map +0 -1
  614. package/dist/components/separator/separator.js.map +0 -1
  615. package/dist/components/skeleton/index.d.ts.map +0 -1
  616. package/dist/components/skeleton/index.js.map +0 -1
  617. package/dist/components/skeleton/skeleton.d.ts.map +0 -1
  618. package/dist/components/skeleton/skeleton.js.map +0 -1
  619. package/dist/components/spinner/index.d.ts.map +0 -1
  620. package/dist/components/spinner/index.js.map +0 -1
  621. package/dist/components/spinner/spinner.d.ts.map +0 -1
  622. package/dist/components/spinner/spinner.js.map +0 -1
  623. package/dist/components/stack/index.d.ts.map +0 -1
  624. package/dist/components/stack/index.js.map +0 -1
  625. package/dist/components/stack/stack.d.ts.map +0 -1
  626. package/dist/components/stack/stack.js.map +0 -1
  627. package/dist/components/switch/index.d.ts.map +0 -1
  628. package/dist/components/switch/index.js.map +0 -1
  629. package/dist/components/switch/switch.d.ts.map +0 -1
  630. package/dist/components/switch/switch.js.map +0 -1
  631. package/dist/components/tabs/index.d.ts.map +0 -1
  632. package/dist/components/tabs/index.js.map +0 -1
  633. package/dist/components/tabs/tabs.d.ts.map +0 -1
  634. package/dist/components/tabs/tabs.js.map +0 -1
  635. package/dist/components/text/index.d.ts.map +0 -1
  636. package/dist/components/text/index.js.map +0 -1
  637. package/dist/components/text/text.d.ts.map +0 -1
  638. package/dist/components/text/text.js.map +0 -1
  639. package/dist/components/textarea/index.d.ts.map +0 -1
  640. package/dist/components/textarea/index.js.map +0 -1
  641. package/dist/components/textarea/textarea.d.ts.map +0 -1
  642. package/dist/components/textarea/textarea.js.map +0 -1
  643. package/dist/components/toast/index.d.ts.map +0 -1
  644. package/dist/components/toast/index.js.map +0 -1
  645. package/dist/components/toast/toast.d.ts.map +0 -1
  646. package/dist/components/toast/toast.js.map +0 -1
  647. package/dist/components/toggle/index.d.ts.map +0 -1
  648. package/dist/components/toggle/index.js.map +0 -1
  649. package/dist/components/toggle/toggle.d.ts.map +0 -1
  650. package/dist/components/toggle/toggle.js.map +0 -1
  651. package/dist/components/toggle-group/index.d.ts.map +0 -1
  652. package/dist/components/toggle-group/index.js.map +0 -1
  653. package/dist/components/toggle-group/toggle-group.d.ts.map +0 -1
  654. package/dist/components/toggle-group/toggle-group.js.map +0 -1
  655. package/dist/components/tooltip/index.d.ts.map +0 -1
  656. package/dist/components/tooltip/index.js.map +0 -1
  657. package/dist/components/tooltip/tooltip.d.ts.map +0 -1
  658. package/dist/components/tooltip/tooltip.js.map +0 -1
  659. package/dist/components/view/index.d.ts.map +0 -1
  660. package/dist/components/view/index.js.map +0 -1
  661. package/dist/components/view/view.d.ts.map +0 -1
  662. package/dist/components/view/view.js.map +0 -1
  663. package/dist/index.d.ts.map +0 -1
  664. package/dist/index.js.map +0 -1
  665. package/dist/lib/cn.d.ts.map +0 -1
  666. package/dist/lib/cn.js.map +0 -1
  667. package/dist/lib/font-context.d.ts.map +0 -1
  668. package/dist/lib/font-context.js.map +0 -1
  669. package/dist/lib/frosted-surface.d.ts.map +0 -1
  670. package/dist/lib/frosted-surface.js.map +0 -1
  671. package/dist/lib/index.d.ts +0 -6
  672. package/dist/lib/index.d.ts.map +0 -1
  673. package/dist/lib/index.js +0 -6
  674. package/dist/lib/index.js.map +0 -1
  675. package/dist/lib/interaction-tokens.d.ts.map +0 -1
  676. package/dist/lib/interaction-tokens.js.map +0 -1
  677. package/dist/lib/portal.d.ts.map +0 -1
  678. package/dist/lib/portal.js.map +0 -1
  679. package/dist/lib/react-native-classname.d.ts.map +0 -1
  680. package/dist/lib/react-native-classname.js.map +0 -1
  681. package/dist/lib/theme-bridge.d.ts.map +0 -1
  682. package/dist/lib/theme-bridge.js.map +0 -1
  683. package/dist/lib/theme-colors.d.ts.map +0 -1
  684. package/dist/lib/theme-colors.js.map +0 -1
  685. package/dist/lib/tv.d.ts.map +0 -1
  686. package/dist/lib/tv.js.map +0 -1
  687. package/dist/lib/visual-tokens.d.ts.map +0 -1
  688. package/dist/lib/visual-tokens.js.map +0 -1
  689. package/dist/vite.d.ts.map +0 -1
  690. package/dist/vite.js.map +0 -1
@@ -1,19 +1,21 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from 'react';
3
- import { View } from 'react-native';
3
+ import { View, } from 'react-native';
4
4
  import { Text } from '../text';
5
5
  import { cn } from '../../lib/cn';
6
6
  import { tv } from '../../lib/tv';
7
7
  import { useFrostedSurface } from '../../lib/frosted-surface';
8
- // ─── Card ────────────────────────────────────────────────────
8
+ import { useVisualTokens } from '../../lib/visual-tokens';
9
+ import { useThemeColors } from '../../lib/theme-colors';
10
+ import { shadowStyle, surfacePadding, typographyStyle } from '../../lib/recipes';
9
11
  const cardVariants = tv({
10
- base: 'rounded-xl border border-border bg-card',
12
+ base: 'border border-border bg-card',
11
13
  variants: {
12
14
  padding: {
13
- none: 'p-0',
14
- sm: 'p-4',
15
- default: 'p-6',
16
- lg: 'p-8',
15
+ none: '',
16
+ sm: '',
17
+ default: '',
18
+ lg: '',
17
19
  },
18
20
  unstyled: {
19
21
  true: 'rounded-none border-0 bg-transparent shadow-none',
@@ -25,7 +27,9 @@ const cardVariants = tv({
25
27
  unstyled: false,
26
28
  },
27
29
  });
28
- const Card = React.forwardRef(({ className, padding, unstyled, frosted = false, blurIntensity, blurTintToken, style, children, ...props }, ref) => {
30
+ const Card = React.forwardRef(({ className, padding, unstyled, shadow = 'sm', frosted = false, blurIntensity, blurTintToken, style, children, ...props }, ref) => {
31
+ const visual = useVisualTokens();
32
+ const colors = useThemeColors();
29
33
  const frostedSurface = useFrostedSurface({
30
34
  frosted,
31
35
  blurIntensity,
@@ -33,7 +37,17 @@ const Card = React.forwardRef(({ className, padding, unstyled, frosted = false,
33
37
  defaultTintToken: 'card',
34
38
  defaultBlurPreset: 'subtle',
35
39
  });
36
- const cardStyle = [frostedSurface.surfaceStyle, style];
40
+ const effectivePadding = surfacePadding(visual, padding ?? 'default');
41
+ const cardStyle = [
42
+ {
43
+ borderRadius: unstyled ? 0 : visual.radiusXl,
44
+ padding: unstyled ? 0 : effectivePadding,
45
+ borderWidth: unstyled ? 0 : visual.borderWidthHairline,
46
+ },
47
+ unstyled ? null : shadowStyle(visual, colors, shadow),
48
+ frostedSurface.surfaceStyle,
49
+ style,
50
+ ];
37
51
  return (_jsxs(View, { ref: ref, className: cn(cardVariants({ padding, unstyled }), frosted && 'relative overflow-hidden bg-transparent', className), style: cardStyle, ...props, children: [frostedSurface.overlay, children] }));
38
52
  });
39
53
  Card.displayName = 'Card';
@@ -41,12 +55,14 @@ const CardHeader = React.forwardRef(({ className, ...props }, ref) => {
41
55
  return _jsx(View, { ref: ref, className: cn('pb-3', className), ...props });
42
56
  });
43
57
  CardHeader.displayName = 'CardHeader';
44
- const CardTitle = React.forwardRef(({ className, ...props }, ref) => {
45
- return (_jsx(Text, { ref: ref, className: cn('text-xl font-semibold text-card-foreground tracking-tight', className), ...props }));
58
+ const CardTitle = React.forwardRef(({ className, style, ...props }, ref) => {
59
+ const visual = useVisualTokens();
60
+ return (_jsx(Text, { ref: ref, className: cn('font-semibold text-card-foreground tracking-tight', className), style: [typographyStyle(visual, 'title'), style], ...props }));
46
61
  });
47
62
  CardTitle.displayName = 'CardTitle';
48
- const CardDescription = React.forwardRef(({ className, ...props }, ref) => {
49
- return _jsx(Text, { ref: ref, className: cn('text-sm text-muted-foreground', className), ...props });
63
+ const CardDescription = React.forwardRef(({ className, style, ...props }, ref) => {
64
+ const visual = useVisualTokens();
65
+ return (_jsx(Text, { ref: ref, className: cn('text-muted-foreground', className), style: [typographyStyle(visual, 'label'), style], ...props }));
50
66
  });
51
67
  CardDescription.displayName = 'CardDescription';
52
68
  const CardContent = React.forwardRef(({ className, ...props }, ref) => {
@@ -57,6 +73,4 @@ const CardFooter = React.forwardRef(({ className, ...props }, ref) => {
57
73
  return _jsx(View, { ref: ref, className: cn('flex-row items-center pt-1', className), ...props });
58
74
  });
59
75
  CardFooter.displayName = 'CardFooter';
60
- // ─── Exports ─────────────────────────────────────────────────
61
76
  export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, cardVariants };
62
- //# sourceMappingURL=card.js.map
@@ -1,2 +1 @@
1
1
  export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, cardVariants, type CardProps, type CardHeaderProps, type CardTitleProps, type CardDescriptionProps, type CardContentProps, type CardFooterProps, } from './card';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, cardVariants, } from './card';
2
- //# sourceMappingURL=index.js.map
@@ -6,9 +6,8 @@ export interface CheckboxProps extends Omit<ViewProps, 'children'> {
6
6
  disabled?: boolean;
7
7
  className?: string;
8
8
  }
9
- declare function Checkbox({ checked: controlledChecked, defaultChecked, onCheckedChange, disabled, className, ...props }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
9
+ declare function Checkbox({ checked: controlledChecked, defaultChecked, onCheckedChange, disabled, className, ...props }: CheckboxProps): import("react").JSX.Element;
10
10
  declare namespace Checkbox {
11
11
  var displayName: string;
12
12
  }
13
13
  export { Checkbox };
14
- //# sourceMappingURL=checkbox.d.ts.map
@@ -2,15 +2,20 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { Pressable, View } from 'react-native';
4
4
  import { cn } from '../../lib/cn';
5
+ import { focusRing } from '../../lib/focus-ring';
5
6
  import { useInteractionTokens, withInteractivePressableStyle } from '../../lib/interaction-tokens';
7
+ import { useVisualTokens } from '../../lib/visual-tokens';
6
8
  function Checkbox({ checked: controlledChecked, defaultChecked = false, onCheckedChange, disabled = false, className, ...props }) {
7
9
  const [internalChecked, setInternalChecked] = useState(defaultChecked);
8
10
  const isChecked = controlledChecked ?? internalChecked;
9
11
  const interaction = useInteractionTokens();
12
+ const visual = useVisualTokens();
10
13
  const interactiveStyle = withInteractivePressableStyle(undefined, interaction, {
11
14
  disabled,
12
15
  pressedVariant: 'default',
13
16
  });
17
+ const size = Math.max(18, Math.round(visual.controlHeightSm * 0.55));
18
+ const checkSize = Math.max(8, Math.round(size * 0.5));
14
19
  const handleToggle = () => {
15
20
  if (disabled)
16
21
  return;
@@ -18,8 +23,16 @@ function Checkbox({ checked: controlledChecked, defaultChecked = false, onChecke
18
23
  setInternalChecked(newValue);
19
24
  onCheckedChange?.(newValue);
20
25
  };
21
- return (_jsx(Pressable, { onPress: handleToggle, disabled: disabled, style: interactiveStyle, hitSlop: { top: 12, bottom: 12, left: 12, right: 12 }, accessibilityRole: "checkbox", accessibilityState: { checked: isChecked, disabled }, children: _jsx(View, { className: cn('h-5 w-5 items-center justify-center rounded border', isChecked ? 'border-primary bg-primary' : 'border-border bg-muted', className), ...props, children: isChecked && _jsx(View, { className: "h-2.5 w-2.5 rounded-sm bg-primary-foreground" }) }) }));
26
+ return (_jsx(Pressable, { onPress: handleToggle, disabled: disabled, style: interactiveStyle, hitSlop: { top: 12, bottom: 12, left: 12, right: 12 }, accessibilityRole: "checkbox", accessibilityState: { checked: isChecked, disabled }, "aria-checked": isChecked, children: _jsx(View, { className: cn('items-center justify-center', isChecked ? 'border-primary bg-primary' : 'border-border bg-muted', focusRing, className), style: {
27
+ width: size,
28
+ height: size,
29
+ borderWidth: visual.borderWidthControl,
30
+ borderRadius: Math.max(6, Math.round(visual.radiusSm * 0.7)),
31
+ }, ...props, children: isChecked && (_jsx(View, { className: "bg-primary-foreground", style: {
32
+ width: checkSize,
33
+ height: checkSize,
34
+ borderRadius: Math.max(3, Math.round(visual.radiusSm * 0.35)),
35
+ } })) }) }));
22
36
  }
23
37
  Checkbox.displayName = 'Checkbox';
24
38
  export { Checkbox };
25
- //# sourceMappingURL=checkbox.js.map
@@ -1,2 +1 @@
1
1
  export { Checkbox, type CheckboxProps } from './checkbox';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { Checkbox } from './checkbox';
2
- //# sourceMappingURL=index.js.map
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { type ViewProps, type PressableProps } from 'react-native';
2
3
  interface CollapsibleContextValue {
3
4
  isOpen: boolean;
@@ -20,17 +21,16 @@ export interface CollapsibleContentProps extends ViewProps {
20
21
  className?: string;
21
22
  forceMount?: boolean;
22
23
  }
23
- declare function Collapsible({ defaultOpen, open: controlledOpen, onOpenChange, disabled, className, children, ...props }: CollapsibleProps): import("react/jsx-runtime").JSX.Element;
24
+ declare function Collapsible({ defaultOpen, open: controlledOpen, onOpenChange, disabled, className, children, ...props }: CollapsibleProps): React.JSX.Element;
24
25
  declare namespace Collapsible {
25
26
  var displayName: string;
26
27
  }
27
- declare function CollapsibleTrigger({ className, children, asChild, onPress, ...props }: CollapsibleTriggerProps): import("react/jsx-runtime").JSX.Element;
28
+ declare function CollapsibleTrigger({ className, children, asChild, onPress, ...props }: CollapsibleTriggerProps): React.JSX.Element;
28
29
  declare namespace CollapsibleTrigger {
29
30
  var displayName: string;
30
31
  }
31
- declare function CollapsibleContent({ className, children, forceMount, ...props }: CollapsibleContentProps): import("react/jsx-runtime").JSX.Element | null;
32
+ declare function CollapsibleContent({ className, children, forceMount, ...props }: CollapsibleContentProps): React.JSX.Element | null;
32
33
  declare namespace CollapsibleContent {
33
34
  var displayName: string;
34
35
  }
35
36
  export { Collapsible, CollapsibleTrigger, CollapsibleContent };
36
- //# sourceMappingURL=collapsible.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import React, { createContext, useContext, useState } from 'react';
3
- import { View, Pressable } from 'react-native';
2
+ import React, { createContext, useCallback, useContext, useMemo, useState } from 'react';
3
+ import { View, Pressable, } from 'react-native';
4
4
  import Animated, { useSharedValue, useAnimatedStyle, withTiming, Easing, } from 'react-native-reanimated';
5
5
  import { cn } from '../../lib/cn';
6
6
  const CollapsibleContext = createContext({
@@ -8,22 +8,21 @@ const CollapsibleContext = createContext({
8
8
  toggle: () => { },
9
9
  disabled: false,
10
10
  });
11
- // Hook to access collapsible state
12
11
  export function useCollapsible() {
13
12
  return useContext(CollapsibleContext);
14
13
  }
15
- // ─── Components ──────────────────────────────────────────────
16
14
  function Collapsible({ defaultOpen = false, open: controlledOpen, onOpenChange, disabled = false, className, children, ...props }) {
17
15
  const [internalOpen, setInternalOpen] = useState(defaultOpen);
18
16
  const isOpen = controlledOpen ?? internalOpen;
19
- const toggle = () => {
17
+ const toggle = useCallback(() => {
20
18
  if (disabled)
21
19
  return;
22
20
  const next = !isOpen;
23
21
  setInternalOpen(next);
24
22
  onOpenChange?.(next);
25
- };
26
- return (_jsx(CollapsibleContext.Provider, { value: { isOpen, toggle, disabled }, children: _jsx(View, { className: cn(className), ...props, children: children }) }));
23
+ }, [disabled, isOpen, onOpenChange]);
24
+ const contextValue = useMemo(() => ({ isOpen, toggle, disabled }), [disabled, isOpen, toggle]);
25
+ return (_jsx(CollapsibleContext.Provider, { value: contextValue, children: _jsx(View, { className: cn(className), ...props, children: children }) }));
27
26
  }
28
27
  function CollapsibleTrigger({ className, children, asChild, onPress, ...props }) {
29
28
  const { toggle, disabled } = useContext(CollapsibleContext);
@@ -31,11 +30,10 @@ function CollapsibleTrigger({ className, children, asChild, onPress, ...props })
31
30
  onPress?.(e);
32
31
  toggle();
33
32
  };
34
- // When asChild is true, wrap child in an invisible pressable overlay
35
33
  if (asChild && React.isValidElement(children)) {
36
- return (_jsx(Pressable, { onPress: handlePress, disabled: disabled, className: cn(className), ...props, children: children }));
34
+ return (_jsx(Pressable, { accessibilityRole: "button", onPress: handlePress, disabled: disabled, className: cn(className), ...props, children: children }));
37
35
  }
38
- return (_jsx(Pressable, { className: cn(className), onPress: handlePress, disabled: disabled, ...props, children: children }));
36
+ return (_jsx(Pressable, { accessibilityRole: "button", className: cn(className), onPress: handlePress, disabled: disabled, ...props, children: children }));
39
37
  }
40
38
  function CollapsibleContent({ className, children, forceMount, ...props }) {
41
39
  const { isOpen } = useContext(CollapsibleContext);
@@ -57,4 +55,3 @@ Collapsible.displayName = 'Collapsible';
57
55
  CollapsibleTrigger.displayName = 'CollapsibleTrigger';
58
56
  CollapsibleContent.displayName = 'CollapsibleContent';
59
57
  export { Collapsible, CollapsibleTrigger, CollapsibleContent };
60
- //# sourceMappingURL=collapsible.js.map
@@ -1,2 +1 @@
1
1
  export { Collapsible, CollapsibleTrigger, CollapsibleContent, useCollapsible, type CollapsibleProps, type CollapsibleTriggerProps, type CollapsibleContentProps, } from './collapsible';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { Collapsible, CollapsibleTrigger, CollapsibleContent, useCollapsible, } from './collapsible';
2
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,74 @@
1
+ import { type ViewProps } from 'react-native';
2
+ import { type VariantProps } from '../../lib/tv';
3
+ /**
4
+ * A centred content column with a maximum width.
5
+ *
6
+ * Phone-first layouts stretch to whatever the viewport is, which is correct at
7
+ * 390px and wrong at 1600px — line lengths become unreadable and related controls
8
+ * drift apart. This caps the content and centres it.
9
+ *
10
+ * There is no platform branch and none is needed: every size here is wider than any
11
+ * phone, so on iOS and Android the cap never engages and this renders as a plain
12
+ * full-width `View`. The same component is a no-op on native and the whole fix on
13
+ * desktop.
14
+ */
15
+ declare const containerVariants: import("tailwind-variants").TVReturnType<{
16
+ size: {
17
+ /** Forms, auth, single-column reading. */
18
+ sm: "max-w-xl";
19
+ /** Default. Feeds, dashboards, most app screens. */
20
+ md: "max-w-3xl";
21
+ /** Multi-column dashboards and wide tables. */
22
+ lg: "max-w-5xl";
23
+ /** Near-full width, still stops short of an ultrawide monitor. */
24
+ xl: "max-w-7xl";
25
+ /** Opt out — edge-to-edge at every width. */
26
+ full: "max-w-none";
27
+ };
28
+ /** Fill the available height, for a container used as a screen root. */
29
+ fill: {
30
+ true: "flex-1";
31
+ false: "";
32
+ };
33
+ }, undefined, "w-full self-center", {
34
+ size: {
35
+ /** Forms, auth, single-column reading. */
36
+ sm: "max-w-xl";
37
+ /** Default. Feeds, dashboards, most app screens. */
38
+ md: "max-w-3xl";
39
+ /** Multi-column dashboards and wide tables. */
40
+ lg: "max-w-5xl";
41
+ /** Near-full width, still stops short of an ultrawide monitor. */
42
+ xl: "max-w-7xl";
43
+ /** Opt out — edge-to-edge at every width. */
44
+ full: "max-w-none";
45
+ };
46
+ /** Fill the available height, for a container used as a screen root. */
47
+ fill: {
48
+ true: "flex-1";
49
+ false: "";
50
+ };
51
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
52
+ size: {
53
+ /** Forms, auth, single-column reading. */
54
+ sm: "max-w-xl";
55
+ /** Default. Feeds, dashboards, most app screens. */
56
+ md: "max-w-3xl";
57
+ /** Multi-column dashboards and wide tables. */
58
+ lg: "max-w-5xl";
59
+ /** Near-full width, still stops short of an ultrawide monitor. */
60
+ xl: "max-w-7xl";
61
+ /** Opt out — edge-to-edge at every width. */
62
+ full: "max-w-none";
63
+ };
64
+ /** Fill the available height, for a container used as a screen root. */
65
+ fill: {
66
+ true: "flex-1";
67
+ false: "";
68
+ };
69
+ }, undefined>>;
70
+ export interface ContainerProps extends ViewProps, VariantProps<typeof containerVariants> {
71
+ className?: string;
72
+ }
73
+ export declare function Container({ size, fill, className, children, ...props }: ContainerProps): import("react").JSX.Element;
74
+ export { containerVariants };
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { View } from 'react-native';
3
+ import { cn } from '../../lib/cn';
4
+ import { tv } from '../../lib/tv';
5
+ /**
6
+ * A centred content column with a maximum width.
7
+ *
8
+ * Phone-first layouts stretch to whatever the viewport is, which is correct at
9
+ * 390px and wrong at 1600px — line lengths become unreadable and related controls
10
+ * drift apart. This caps the content and centres it.
11
+ *
12
+ * There is no platform branch and none is needed: every size here is wider than any
13
+ * phone, so on iOS and Android the cap never engages and this renders as a plain
14
+ * full-width `View`. The same component is a no-op on native and the whole fix on
15
+ * desktop.
16
+ */
17
+ const containerVariants = tv({
18
+ base: 'w-full self-center',
19
+ variants: {
20
+ size: {
21
+ /** Forms, auth, single-column reading. */
22
+ sm: 'max-w-xl',
23
+ /** Default. Feeds, dashboards, most app screens. */
24
+ md: 'max-w-3xl',
25
+ /** Multi-column dashboards and wide tables. */
26
+ lg: 'max-w-5xl',
27
+ /** Near-full width, still stops short of an ultrawide monitor. */
28
+ xl: 'max-w-7xl',
29
+ /** Opt out — edge-to-edge at every width. */
30
+ full: 'max-w-none',
31
+ },
32
+ /** Fill the available height, for a container used as a screen root. */
33
+ fill: {
34
+ true: 'flex-1',
35
+ false: '',
36
+ },
37
+ },
38
+ defaultVariants: { size: 'md', fill: false },
39
+ });
40
+ export function Container({ size, fill, className, children, ...props }) {
41
+ return (_jsx(View, { className: cn(containerVariants({ size, fill }), className), ...props, children: children }));
42
+ }
43
+ export { containerVariants };
@@ -0,0 +1 @@
1
+ export * from './container';
@@ -0,0 +1 @@
1
+ export * from './container';
@@ -21,29 +21,28 @@ export interface ContextMenuLabelProps extends ViewProps {
21
21
  export interface ContextMenuSeparatorProps extends ViewProps {
22
22
  className?: string;
23
23
  }
24
- declare function ContextMenu({ children }: ContextMenuProps): import("react/jsx-runtime").JSX.Element;
24
+ declare function ContextMenu({ children }: ContextMenuProps): React.JSX.Element;
25
25
  declare namespace ContextMenu {
26
26
  var displayName: string;
27
27
  }
28
- declare function ContextMenuTrigger({ className, children, asChild, ...props }: ContextMenuTriggerProps): import("react/jsx-runtime").JSX.Element;
28
+ declare function ContextMenuTrigger({ className, children, asChild, ...props }: ContextMenuTriggerProps): React.JSX.Element;
29
29
  declare namespace ContextMenuTrigger {
30
30
  var displayName: string;
31
31
  }
32
- declare function ContextMenuContent({ className, children, frosted, blurIntensity, blurTintToken, style, ...props }: ContextMenuContentProps): import("react/jsx-runtime").JSX.Element;
32
+ declare function ContextMenuContent({ className, children, frosted, blurIntensity, blurTintToken, style, ...props }: ContextMenuContentProps): React.JSX.Element;
33
33
  declare namespace ContextMenuContent {
34
34
  var displayName: string;
35
35
  }
36
- declare function ContextMenuItem({ className, ...props }: ContextMenuItemProps): import("react/jsx-runtime").JSX.Element;
36
+ declare function ContextMenuItem({ className, style, ...props }: ContextMenuItemProps): React.JSX.Element;
37
37
  declare namespace ContextMenuItem {
38
38
  var displayName: string;
39
39
  }
40
- declare function ContextMenuLabel({ className, children, ...props }: ContextMenuLabelProps): import("react/jsx-runtime").JSX.Element;
40
+ declare function ContextMenuLabel({ className, children, ...props }: ContextMenuLabelProps): React.JSX.Element;
41
41
  declare namespace ContextMenuLabel {
42
42
  var displayName: string;
43
43
  }
44
- declare function ContextMenuSeparator({ className, ...props }: ContextMenuSeparatorProps): import("react/jsx-runtime").JSX.Element;
44
+ declare function ContextMenuSeparator({ className, style, ...props }: ContextMenuSeparatorProps): React.JSX.Element;
45
45
  declare namespace ContextMenuSeparator {
46
46
  var displayName: string;
47
47
  }
48
48
  export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuLabel, ContextMenuSeparator, };
49
- //# sourceMappingURL=context-menu.d.ts.map
@@ -1,16 +1,19 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { createContext, useContext, useState } from 'react';
2
+ import React, { createContext, useContext, useMemo, useState } from 'react';
3
3
  import { View, Modal, Pressable, Text } from 'react-native';
4
4
  import { cn } from '../../lib/cn';
5
5
  import { useFrostedSurface } from '../../lib/frosted-surface';
6
+ import { useVisualTokens } from '../../lib/visual-tokens';
7
+ import { useThemeColors } from '../../lib/theme-colors';
8
+ import { shadowStyle, surfaceRadius, typographyStyle } from '../../lib/recipes';
6
9
  const ContextMenuContext = createContext({
7
10
  open: false,
8
11
  setOpen: () => { },
9
12
  });
10
- // ─── Components ──────────────────────────────────────────────
11
13
  function ContextMenu({ children }) {
12
14
  const [open, setOpen] = useState(false);
13
- return (_jsx(ContextMenuContext.Provider, { value: { open, setOpen }, children: children }));
15
+ const contextValue = useMemo(() => ({ open, setOpen }), [open]);
16
+ return _jsx(ContextMenuContext.Provider, { value: contextValue, children: children });
14
17
  }
15
18
  function ContextMenuTrigger({ className, children, asChild, ...props }) {
16
19
  const { setOpen } = useContext(ContextMenuContext);
@@ -25,10 +28,12 @@ function ContextMenuTrigger({ className, children, asChild, ...props }) {
25
28
  ...props,
26
29
  });
27
30
  }
28
- return (_jsx(Pressable, { className: cn(className), onLongPress: () => setOpen(true), delayLongPress: 300, ...props, children: children }));
31
+ return (_jsx(Pressable, { accessibilityRole: "button", className: cn(className), onLongPress: () => setOpen(true), delayLongPress: 300, ...props, children: children }));
29
32
  }
30
33
  function ContextMenuContent({ className, children, frosted = false, blurIntensity, blurTintToken, style, ...props }) {
31
34
  const { open, setOpen } = useContext(ContextMenuContext);
35
+ const visual = useVisualTokens();
36
+ const colors = useThemeColors();
32
37
  const frostedSurface = useFrostedSurface({
33
38
  frosted,
34
39
  blurIntensity,
@@ -36,21 +41,47 @@ function ContextMenuContent({ className, children, frosted = false, blurIntensit
36
41
  defaultTintToken: 'popover',
37
42
  defaultBlurPreset: 'medium',
38
43
  });
39
- const contentStyle = [frostedSurface.surfaceStyle, style];
40
- return (_jsx(Modal, { visible: open, transparent: true, animationType: "slide", onRequestClose: () => setOpen(false), children: _jsx(Pressable, { className: "flex-1 justify-end", onPress: () => setOpen(false), children: _jsxs(Pressable, { className: cn('w-full rounded-t-xl border-t border-x border-border p-2 pb-8 shadow-lg relative overflow-hidden', frosted ? 'bg-transparent' : 'bg-popover', className), style: contentStyle, onPress: (e) => e.stopPropagation(), ...props, children: [frostedSurface.overlay, children] }) }) }));
44
+ const contentStyle = [
45
+ {
46
+ borderTopLeftRadius: surfaceRadius(visual, 'lg'),
47
+ borderTopRightRadius: surfaceRadius(visual, 'lg'),
48
+ borderTopWidth: visual.borderWidthHairline,
49
+ borderLeftWidth: visual.borderWidthHairline,
50
+ borderRightWidth: visual.borderWidthHairline,
51
+ },
52
+ shadowStyle(visual, colors, 'md'),
53
+ frostedSurface.surfaceStyle,
54
+ style,
55
+ ];
56
+ return (_jsx(Modal, { visible: open, transparent: true, animationType: "slide", statusBarTranslucent: true, navigationBarTranslucent: true, onRequestClose: () => setOpen(false), children: _jsx(Pressable, { accessible: false, importantForAccessibility: "no", className: "flex-1 justify-end", onPress: () => setOpen(false), children: _jsxs(Pressable, { accessible: false, accessibilityRole: "menu", className: cn('w-full border-border p-2 pb-8 relative overflow-hidden', frosted ? 'bg-transparent' : 'bg-popover', className), style: contentStyle, onPress: (e) => e.stopPropagation(), ...props, children: [frostedSurface.overlay, children] }) }) }));
41
57
  }
42
- function ContextMenuItem({ className, ...props }) {
58
+ function ContextMenuItem({ className, style, ...props }) {
43
59
  const { setOpen } = useContext(ContextMenuContext);
44
- return (_jsx(Pressable, { className: cn('flex flex-row items-center rounded-md px-2 py-2 active:bg-accent', className), onPress: (e) => {
60
+ const visual = useVisualTokens();
61
+ const tokenStyle = {
62
+ borderRadius: visual.radiusSm,
63
+ minHeight: visual.touchTargetMinSize,
64
+ paddingHorizontal: visual.controlPaddingXSm,
65
+ paddingVertical: visual.controlPaddingYSm,
66
+ };
67
+ return (_jsx(Pressable, { accessibilityRole: "menuitem", className: cn('flex flex-row items-center active:bg-accent', className), style: (state) => [tokenStyle, typeof style === 'function' ? style(state) : style], onPress: (e) => {
45
68
  props.onPress?.(e);
46
69
  setOpen(false);
47
70
  }, ...props }));
48
71
  }
49
72
  function ContextMenuLabel({ className, children, ...props }) {
50
- return (_jsx(View, { className: cn('px-2 py-1.5', className), ...props, children: typeof children === 'string' ? (_jsx(Text, { className: "text-sm font-semibold text-foreground", children: children })) : (children) }));
73
+ const visual = useVisualTokens();
74
+ return (_jsx(View, { className: cn('px-2 py-1.5', className), ...props, children: typeof children === 'string' ? (_jsx(Text
75
+ // A menu section label is a heading — without this it announces as plain text
76
+ // and rotor navigation cannot find it.
77
+ , {
78
+ // A menu section label is a heading — without this it announces as plain text
79
+ // and rotor navigation cannot find it.
80
+ accessibilityRole: "header", className: "font-semibold text-foreground", style: typographyStyle(visual, 'label'), children: children })) : (children) }));
51
81
  }
52
- function ContextMenuSeparator({ className, ...props }) {
53
- return _jsx(View, { className: cn('-mx-1 my-1 h-px bg-border', className), ...props });
82
+ function ContextMenuSeparator({ className, style, ...props }) {
83
+ const visual = useVisualTokens();
84
+ return (_jsx(View, { className: cn('-mx-1 my-1 bg-border', className), style: [{ height: visual.borderWidthHairline }, style], ...props }));
54
85
  }
55
86
  ContextMenu.displayName = 'ContextMenu';
56
87
  ContextMenuTrigger.displayName = 'ContextMenuTrigger';
@@ -59,4 +90,3 @@ ContextMenuItem.displayName = 'ContextMenuItem';
59
90
  ContextMenuLabel.displayName = 'ContextMenuLabel';
60
91
  ContextMenuSeparator.displayName = 'ContextMenuSeparator';
61
92
  export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuLabel, ContextMenuSeparator, };
62
- //# sourceMappingURL=context-menu.js.map
@@ -1,2 +1 @@
1
1
  export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuLabel, ContextMenuSeparator, type ContextMenuProps, type ContextMenuTriggerProps, type ContextMenuContentProps, type ContextMenuItemProps, type ContextMenuLabelProps, type ContextMenuSeparatorProps, } from './context-menu';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuLabel, ContextMenuSeparator, } from './context-menu';
2
- //# sourceMappingURL=index.js.map
@@ -1,41 +1,21 @@
1
- import React from 'react';
2
- import { Text, View, type TextProps, type ViewProps } from 'react-native';
1
+ import { type TextInstance, type TextProps, type ViewInstance, type ViewProps } from 'react-native';
2
+ import type { ForwardRefComponent } from '../../lib/ref-types';
3
3
  declare const dataRowVariants: import("tailwind-variants").TVReturnType<{
4
4
  size: {
5
- default: string;
6
- compact: string;
5
+ default: "";
6
+ compact: "";
7
7
  };
8
- }, undefined, "w-full flex-row items-center gap-3", import("tailwind-variants/dist/config.js").TVConfig<{
8
+ }, undefined, "w-full flex-row items-center gap-3", {
9
9
  size: {
10
- default: string;
11
- compact: string;
10
+ default: "";
11
+ compact: "";
12
12
  };
13
- }, {
13
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
14
14
  size: {
15
- default: string;
16
- compact: string;
15
+ default: "";
16
+ compact: "";
17
17
  };
18
- }>, {
19
- size: {
20
- default: string;
21
- compact: string;
22
- };
23
- }, undefined, import("tailwind-variants").TVReturnType<{
24
- size: {
25
- default: string;
26
- compact: string;
27
- };
28
- }, undefined, "w-full flex-row items-center gap-3", import("tailwind-variants/dist/config.js").TVConfig<{
29
- size: {
30
- default: string;
31
- compact: string;
32
- };
33
- }, {
34
- size: {
35
- default: string;
36
- compact: string;
37
- };
38
- }>, unknown, unknown, undefined>>;
18
+ }, undefined>>;
39
19
  export interface DataRowProps extends ViewProps {
40
20
  size?: 'default' | 'compact';
41
21
  className?: string;
@@ -58,12 +38,11 @@ export interface DataRowDescriptionProps extends TextProps {
58
38
  export interface DataRowValueProps extends TextProps {
59
39
  className?: string;
60
40
  }
61
- declare const DataRow: React.ForwardRefExoticComponent<DataRowProps & React.RefAttributes<View>>;
62
- declare const DataRowLeft: React.ForwardRefExoticComponent<DataRowLeftProps & React.RefAttributes<View>>;
63
- declare const DataRowCenter: React.ForwardRefExoticComponent<DataRowCenterProps & React.RefAttributes<View>>;
64
- declare const DataRowRight: React.ForwardRefExoticComponent<DataRowRightProps & React.RefAttributes<View>>;
65
- declare const DataRowLabel: React.ForwardRefExoticComponent<DataRowLabelProps & React.RefAttributes<Text>>;
66
- declare const DataRowDescription: React.ForwardRefExoticComponent<DataRowDescriptionProps & React.RefAttributes<Text>>;
67
- declare const DataRowValue: React.ForwardRefExoticComponent<DataRowValueProps & React.RefAttributes<Text>>;
41
+ declare const DataRow: ForwardRefComponent<ViewInstance, DataRowProps>;
42
+ declare const DataRowLeft: ForwardRefComponent<ViewInstance, DataRowLeftProps>;
43
+ declare const DataRowCenter: ForwardRefComponent<ViewInstance, DataRowCenterProps>;
44
+ declare const DataRowRight: ForwardRefComponent<ViewInstance, DataRowRightProps>;
45
+ declare const DataRowLabel: ForwardRefComponent<TextInstance, DataRowLabelProps>;
46
+ declare const DataRowDescription: ForwardRefComponent<TextInstance, DataRowDescriptionProps>;
47
+ declare const DataRowValue: ForwardRefComponent<TextInstance, DataRowValueProps>;
68
48
  export { DataRow, DataRowLeft, DataRowCenter, DataRowRight, DataRowLabel, DataRowDescription, DataRowValue, dataRowVariants, };
69
- //# sourceMappingURL=data-row.d.ts.map