@thewhileloop/whileui 1.2.3 → 2.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 (688) hide show
  1. package/README.md +246 -83
  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 +3 -4
  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 +33 -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 +49 -17
  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 +6 -1
  69. package/dist/blocks/layout/smart-input.js +121 -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 +0 -1
  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 +52 -15
  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 +2 -3
  103. package/dist/components/alert/alert.js +19 -8
  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 -51
  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 +2 -3
  115. package/dist/components/avatar/avatar.js +7 -8
  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 +6 -7
  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 +11 -10
  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 +5 -3
  127. package/dist/components/card/card.js +28 -14
  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 +146 -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 +0 -1
  147. package/dist/components/data-row/data-row.js +35 -17
  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 +0 -1
  159. package/dist/components/form-field/form-field.js +26 -13
  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 +1 -2
  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 +2 -3
  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 +0 -1
  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 +1 -2
  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 +6 -5
  185. package/dist/components/numeric-input/numeric-input.js +55 -26
  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 +3 -4
  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 +4 -2
  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 +7 -1
  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 +0 -1
  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 +0 -1
  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 +7 -8
  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 +15 -7
  217. package/dist/components/select/select.js +53 -11
  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 +0 -1
  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 +3 -4
  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 +1 -2
  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 +0 -1
  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 +6 -7
  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 +0 -1
  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 +2 -3
  249. package/dist/components/textarea/textarea.js +16 -8
  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 +5 -6
  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 +6 -7
  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 +7 -8
  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 +1 -2
  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 +0 -1
  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/tap-only.d.ts +11 -0
  295. package/dist/lib/tap-only.js +24 -0
  296. package/dist/lib/theme-bridge.d.ts +0 -1
  297. package/dist/lib/theme-bridge.js +11 -3
  298. package/dist/lib/theme-colors.d.ts +2 -46
  299. package/dist/lib/theme-colors.js +25 -226
  300. package/dist/lib/theme-contract.d.ts +78 -0
  301. package/dist/lib/theme-contract.js +481 -0
  302. package/dist/lib/theme-derive.d.ts +4 -0
  303. package/dist/lib/theme-derive.js +80 -0
  304. package/dist/lib/theme-presets.d.ts +31 -0
  305. package/dist/lib/theme-presets.js +221 -0
  306. package/dist/lib/tv.d.ts +0 -1
  307. package/dist/lib/tv.js +0 -1
  308. package/dist/lib/visual-token-contract.d.ts +110 -0
  309. package/dist/lib/visual-token-contract.js +583 -0
  310. package/dist/lib/visual-tokens.d.ts +2 -38
  311. package/dist/lib/visual-tokens.js +22 -75
  312. package/dist/tokens.d.ts +4 -0
  313. package/dist/tokens.js +6 -0
  314. package/dist/vite.d.ts +0 -1
  315. package/dist/vite.js +0 -1
  316. package/package.json +30 -20
  317. package/dist/blocks/auth/forgot-password-form.d.ts +0 -10
  318. package/dist/blocks/auth/forgot-password-form.d.ts.map +0 -1
  319. package/dist/blocks/auth/forgot-password-form.js +0 -17
  320. package/dist/blocks/auth/forgot-password-form.js.map +0 -1
  321. package/dist/blocks/auth/index.d.ts +0 -8
  322. package/dist/blocks/auth/index.d.ts.map +0 -1
  323. package/dist/blocks/auth/index.js +0 -8
  324. package/dist/blocks/auth/index.js.map +0 -1
  325. package/dist/blocks/auth/reset-password-form.d.ts +0 -9
  326. package/dist/blocks/auth/reset-password-form.d.ts.map +0 -1
  327. package/dist/blocks/auth/reset-password-form.js +0 -16
  328. package/dist/blocks/auth/reset-password-form.js.map +0 -1
  329. package/dist/blocks/auth/sign-in-form.d.ts +0 -17
  330. package/dist/blocks/auth/sign-in-form.d.ts.map +0 -1
  331. package/dist/blocks/auth/sign-in-form.js +0 -19
  332. package/dist/blocks/auth/sign-in-form.js.map +0 -1
  333. package/dist/blocks/auth/sign-up-form.d.ts +0 -17
  334. package/dist/blocks/auth/sign-up-form.d.ts.map +0 -1
  335. package/dist/blocks/auth/sign-up-form.js +0 -21
  336. package/dist/blocks/auth/sign-up-form.js.map +0 -1
  337. package/dist/blocks/auth/social-connections.d.ts +0 -10
  338. package/dist/blocks/auth/social-connections.d.ts.map +0 -1
  339. package/dist/blocks/auth/social-connections.js +0 -8
  340. package/dist/blocks/auth/social-connections.js.map +0 -1
  341. package/dist/blocks/auth/user-menu.d.ts +0 -12
  342. package/dist/blocks/auth/user-menu.d.ts.map +0 -1
  343. package/dist/blocks/auth/user-menu.js +0 -10
  344. package/dist/blocks/auth/user-menu.js.map +0 -1
  345. package/dist/blocks/auth/verify-email-form.d.ts +0 -10
  346. package/dist/blocks/auth/verify-email-form.d.ts.map +0 -1
  347. package/dist/blocks/auth/verify-email-form.js +0 -17
  348. package/dist/blocks/auth/verify-email-form.js.map +0 -1
  349. package/dist/blocks/chat/chat.d.ts.map +0 -1
  350. package/dist/blocks/chat/chat.js.map +0 -1
  351. package/dist/blocks/chat/index.d.ts.map +0 -1
  352. package/dist/blocks/chat/index.js.map +0 -1
  353. package/dist/blocks/commerce/checkout-summary.d.ts.map +0 -1
  354. package/dist/blocks/commerce/checkout-summary.js.map +0 -1
  355. package/dist/blocks/commerce/feature-gate.d.ts.map +0 -1
  356. package/dist/blocks/commerce/feature-gate.js.map +0 -1
  357. package/dist/blocks/commerce/index.d.ts.map +0 -1
  358. package/dist/blocks/commerce/index.js.map +0 -1
  359. package/dist/blocks/commerce/metric-card.d.ts.map +0 -1
  360. package/dist/blocks/commerce/metric-card.js.map +0 -1
  361. package/dist/blocks/commerce/plan-toggle.d.ts.map +0 -1
  362. package/dist/blocks/commerce/plan-toggle.js.map +0 -1
  363. package/dist/blocks/commerce/pricing-card.d.ts.map +0 -1
  364. package/dist/blocks/commerce/pricing-card.js.map +0 -1
  365. package/dist/blocks/commerce/product-card.d.ts.map +0 -1
  366. package/dist/blocks/commerce/product-card.js.map +0 -1
  367. package/dist/blocks/commerce/subscription-card.d.ts.map +0 -1
  368. package/dist/blocks/commerce/subscription-card.js.map +0 -1
  369. package/dist/blocks/commerce/upgrade-banner.d.ts.map +0 -1
  370. package/dist/blocks/commerce/upgrade-banner.js.map +0 -1
  371. package/dist/blocks/commerce/usage-bar.d.ts.map +0 -1
  372. package/dist/blocks/commerce/usage-bar.js.map +0 -1
  373. package/dist/blocks/datepicker/date-range-picker-modal.d.ts.map +0 -1
  374. package/dist/blocks/datepicker/date-range-picker-modal.js.map +0 -1
  375. package/dist/blocks/datepicker/datepicker-inline.d.ts.map +0 -1
  376. package/dist/blocks/datepicker/datepicker-inline.js.map +0 -1
  377. package/dist/blocks/datepicker/datepicker-modal.d.ts.map +0 -1
  378. package/dist/blocks/datepicker/datepicker-modal.js.map +0 -1
  379. package/dist/blocks/datepicker/index.d.ts.map +0 -1
  380. package/dist/blocks/datepicker/index.js.map +0 -1
  381. package/dist/blocks/datepicker/use-calendar-theme.d.ts.map +0 -1
  382. package/dist/blocks/datepicker/use-calendar-theme.js.map +0 -1
  383. package/dist/blocks/layout/action-bar.d.ts.map +0 -1
  384. package/dist/blocks/layout/action-bar.js.map +0 -1
  385. package/dist/blocks/layout/app-shell.d.ts.map +0 -1
  386. package/dist/blocks/layout/app-shell.js.map +0 -1
  387. package/dist/blocks/layout/confirm-action-sheet.d.ts.map +0 -1
  388. package/dist/blocks/layout/confirm-action-sheet.js.map +0 -1
  389. package/dist/blocks/layout/content-skeleton.d.ts.map +0 -1
  390. package/dist/blocks/layout/content-skeleton.js.map +0 -1
  391. package/dist/blocks/layout/empty-state.d.ts.map +0 -1
  392. package/dist/blocks/layout/empty-state.js.map +0 -1
  393. package/dist/blocks/layout/error-boundary.d.ts.map +0 -1
  394. package/dist/blocks/layout/error-boundary.js.map +0 -1
  395. package/dist/blocks/layout/error-state.d.ts.map +0 -1
  396. package/dist/blocks/layout/error-state.js.map +0 -1
  397. package/dist/blocks/layout/form-modal-screen.d.ts.map +0 -1
  398. package/dist/blocks/layout/form-modal-screen.js.map +0 -1
  399. package/dist/blocks/layout/index.d.ts.map +0 -1
  400. package/dist/blocks/layout/index.js.map +0 -1
  401. package/dist/blocks/layout/loading-screen.d.ts.map +0 -1
  402. package/dist/blocks/layout/loading-screen.js.map +0 -1
  403. package/dist/blocks/layout/onboarding-screen.d.ts +0 -19
  404. package/dist/blocks/layout/onboarding-screen.d.ts.map +0 -1
  405. package/dist/blocks/layout/onboarding-screen.js +0 -35
  406. package/dist/blocks/layout/onboarding-screen.js.map +0 -1
  407. package/dist/blocks/layout/page-skeleton.d.ts.map +0 -1
  408. package/dist/blocks/layout/page-skeleton.js.map +0 -1
  409. package/dist/blocks/layout/pull-to-refresh-scroll-view.d.ts.map +0 -1
  410. package/dist/blocks/layout/pull-to-refresh-scroll-view.js.map +0 -1
  411. package/dist/blocks/layout/screen-skeleton.d.ts.map +0 -1
  412. package/dist/blocks/layout/screen-skeleton.js.map +0 -1
  413. package/dist/blocks/layout/sheet.d.ts.map +0 -1
  414. package/dist/blocks/layout/sheet.js.map +0 -1
  415. package/dist/blocks/layout/smart-image.d.ts +0 -9
  416. package/dist/blocks/layout/smart-image.d.ts.map +0 -1
  417. package/dist/blocks/layout/smart-image.js +0 -23
  418. package/dist/blocks/layout/smart-image.js.map +0 -1
  419. package/dist/blocks/layout/smart-input.d.ts.map +0 -1
  420. package/dist/blocks/layout/smart-input.js.map +0 -1
  421. package/dist/blocks/lists/index.d.ts.map +0 -1
  422. package/dist/blocks/lists/index.js.map +0 -1
  423. package/dist/blocks/lists/list-item.d.ts.map +0 -1
  424. package/dist/blocks/lists/list-item.js.map +0 -1
  425. package/dist/blocks/lists/notification-item.d.ts.map +0 -1
  426. package/dist/blocks/lists/notification-item.js.map +0 -1
  427. package/dist/blocks/lists/swipeable-item.d.ts +0 -17
  428. package/dist/blocks/lists/swipeable-item.d.ts.map +0 -1
  429. package/dist/blocks/lists/swipeable-item.js +0 -65
  430. package/dist/blocks/lists/swipeable-item.js.map +0 -1
  431. package/dist/blocks/lists/timeline-feed.d.ts.map +0 -1
  432. package/dist/blocks/lists/timeline-feed.js.map +0 -1
  433. package/dist/blocks/media/index.d.ts.map +0 -1
  434. package/dist/blocks/media/index.js.map +0 -1
  435. package/dist/blocks/media/smart-image.d.ts.map +0 -1
  436. package/dist/blocks/media/smart-image.js.map +0 -1
  437. package/dist/blocks/navigation/bottom-nav.d.ts.map +0 -1
  438. package/dist/blocks/navigation/bottom-nav.js.map +0 -1
  439. package/dist/blocks/navigation/drawer-menu.d.ts.map +0 -1
  440. package/dist/blocks/navigation/drawer-menu.js.map +0 -1
  441. package/dist/blocks/navigation/floating-bottom-nav.d.ts.map +0 -1
  442. package/dist/blocks/navigation/floating-bottom-nav.js.map +0 -1
  443. package/dist/blocks/navigation/header.d.ts.map +0 -1
  444. package/dist/blocks/navigation/header.js.map +0 -1
  445. package/dist/blocks/navigation/index.d.ts.map +0 -1
  446. package/dist/blocks/navigation/index.js.map +0 -1
  447. package/dist/blocks/navigation/navigation-sidebar.d.ts +0 -25
  448. package/dist/blocks/navigation/navigation-sidebar.d.ts.map +0 -1
  449. package/dist/blocks/navigation/navigation-sidebar.js +0 -18
  450. package/dist/blocks/navigation/navigation-sidebar.js.map +0 -1
  451. package/dist/blocks/navigation/tab-bar.d.ts.map +0 -1
  452. package/dist/blocks/navigation/tab-bar.js.map +0 -1
  453. package/dist/blocks/profile/account-card.d.ts +0 -11
  454. package/dist/blocks/profile/account-card.d.ts.map +0 -1
  455. package/dist/blocks/profile/account-card.js +0 -10
  456. package/dist/blocks/profile/account-card.js.map +0 -1
  457. package/dist/blocks/profile/index.d.ts +0 -5
  458. package/dist/blocks/profile/index.d.ts.map +0 -1
  459. package/dist/blocks/profile/index.js +0 -5
  460. package/dist/blocks/profile/index.js.map +0 -1
  461. package/dist/blocks/profile/profile-header.d.ts +0 -27
  462. package/dist/blocks/profile/profile-header.d.ts.map +0 -1
  463. package/dist/blocks/profile/profile-header.js +0 -11
  464. package/dist/blocks/profile/profile-header.js.map +0 -1
  465. package/dist/blocks/profile/settings-item.d.ts +0 -15
  466. package/dist/blocks/profile/settings-item.d.ts.map +0 -1
  467. package/dist/blocks/profile/settings-item.js +0 -11
  468. package/dist/blocks/profile/settings-item.js.map +0 -1
  469. package/dist/blocks/profile/settings-section.d.ts +0 -7
  470. package/dist/blocks/profile/settings-section.d.ts.map +0 -1
  471. package/dist/blocks/profile/settings-section.js +0 -9
  472. package/dist/blocks/profile/settings-section.js.map +0 -1
  473. package/dist/blocks/splash/index.d.ts.map +0 -1
  474. package/dist/blocks/splash/index.js.map +0 -1
  475. package/dist/blocks/splash/splash-screen.d.ts.map +0 -1
  476. package/dist/blocks/splash/splash-screen.js.map +0 -1
  477. package/dist/components/accordion/accordion.d.ts.map +0 -1
  478. package/dist/components/accordion/accordion.js.map +0 -1
  479. package/dist/components/accordion/index.d.ts.map +0 -1
  480. package/dist/components/accordion/index.js.map +0 -1
  481. package/dist/components/alert/alert.d.ts.map +0 -1
  482. package/dist/components/alert/alert.js.map +0 -1
  483. package/dist/components/alert/index.d.ts.map +0 -1
  484. package/dist/components/alert/index.js.map +0 -1
  485. package/dist/components/alert-dialog/alert-dialog.d.ts.map +0 -1
  486. package/dist/components/alert-dialog/alert-dialog.js.map +0 -1
  487. package/dist/components/alert-dialog/index.d.ts.map +0 -1
  488. package/dist/components/alert-dialog/index.js.map +0 -1
  489. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +0 -1
  490. package/dist/components/aspect-ratio/aspect-ratio.js.map +0 -1
  491. package/dist/components/aspect-ratio/index.d.ts.map +0 -1
  492. package/dist/components/aspect-ratio/index.js.map +0 -1
  493. package/dist/components/avatar/avatar.d.ts.map +0 -1
  494. package/dist/components/avatar/avatar.js.map +0 -1
  495. package/dist/components/avatar/index.d.ts.map +0 -1
  496. package/dist/components/avatar/index.js.map +0 -1
  497. package/dist/components/badge/badge.d.ts.map +0 -1
  498. package/dist/components/badge/badge.js.map +0 -1
  499. package/dist/components/badge/index.d.ts.map +0 -1
  500. package/dist/components/badge/index.js.map +0 -1
  501. package/dist/components/box/box.d.ts +0 -143
  502. package/dist/components/box/box.d.ts.map +0 -1
  503. package/dist/components/box/box.js +0 -38
  504. package/dist/components/box/box.js.map +0 -1
  505. package/dist/components/box/index.d.ts +0 -2
  506. package/dist/components/box/index.d.ts.map +0 -1
  507. package/dist/components/box/index.js +0 -2
  508. package/dist/components/box/index.js.map +0 -1
  509. package/dist/components/button/button.d.ts.map +0 -1
  510. package/dist/components/button/button.js.map +0 -1
  511. package/dist/components/button/index.d.ts.map +0 -1
  512. package/dist/components/button/index.js.map +0 -1
  513. package/dist/components/card/card.d.ts.map +0 -1
  514. package/dist/components/card/card.js.map +0 -1
  515. package/dist/components/card/index.d.ts.map +0 -1
  516. package/dist/components/card/index.js.map +0 -1
  517. package/dist/components/checkbox/checkbox.d.ts.map +0 -1
  518. package/dist/components/checkbox/checkbox.js.map +0 -1
  519. package/dist/components/checkbox/index.d.ts.map +0 -1
  520. package/dist/components/checkbox/index.js.map +0 -1
  521. package/dist/components/collapsible/collapsible.d.ts.map +0 -1
  522. package/dist/components/collapsible/collapsible.js.map +0 -1
  523. package/dist/components/collapsible/index.d.ts.map +0 -1
  524. package/dist/components/collapsible/index.js.map +0 -1
  525. package/dist/components/context-menu/context-menu.d.ts.map +0 -1
  526. package/dist/components/context-menu/context-menu.js.map +0 -1
  527. package/dist/components/context-menu/index.d.ts.map +0 -1
  528. package/dist/components/context-menu/index.js.map +0 -1
  529. package/dist/components/data-row/data-row.d.ts.map +0 -1
  530. package/dist/components/data-row/data-row.js.map +0 -1
  531. package/dist/components/data-row/index.d.ts.map +0 -1
  532. package/dist/components/data-row/index.js.map +0 -1
  533. package/dist/components/dialog/dialog.d.ts.map +0 -1
  534. package/dist/components/dialog/dialog.js.map +0 -1
  535. package/dist/components/dialog/index.d.ts.map +0 -1
  536. package/dist/components/dialog/index.js.map +0 -1
  537. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
  538. package/dist/components/dropdown-menu/dropdown-menu.js.map +0 -1
  539. package/dist/components/dropdown-menu/index.d.ts.map +0 -1
  540. package/dist/components/dropdown-menu/index.js.map +0 -1
  541. package/dist/components/form-field/form-field.d.ts.map +0 -1
  542. package/dist/components/form-field/form-field.js.map +0 -1
  543. package/dist/components/form-field/index.d.ts.map +0 -1
  544. package/dist/components/form-field/index.js.map +0 -1
  545. package/dist/components/hover-card/hover-card.d.ts.map +0 -1
  546. package/dist/components/hover-card/hover-card.js.map +0 -1
  547. package/dist/components/hover-card/index.d.ts.map +0 -1
  548. package/dist/components/hover-card/index.js.map +0 -1
  549. package/dist/components/input/index.d.ts.map +0 -1
  550. package/dist/components/input/index.js.map +0 -1
  551. package/dist/components/input/input.d.ts.map +0 -1
  552. package/dist/components/input/input.js.map +0 -1
  553. package/dist/components/label/index.d.ts.map +0 -1
  554. package/dist/components/label/index.js.map +0 -1
  555. package/dist/components/label/label.d.ts.map +0 -1
  556. package/dist/components/label/label.js.map +0 -1
  557. package/dist/components/labeled-field/index.d.ts.map +0 -1
  558. package/dist/components/labeled-field/index.js.map +0 -1
  559. package/dist/components/labeled-field/labeled-field.d.ts.map +0 -1
  560. package/dist/components/labeled-field/labeled-field.js.map +0 -1
  561. package/dist/components/layout/index.d.ts +0 -2
  562. package/dist/components/layout/index.d.ts.map +0 -1
  563. package/dist/components/layout/index.js +0 -2
  564. package/dist/components/layout/index.js.map +0 -1
  565. package/dist/components/layout/layout.d.ts +0 -395
  566. package/dist/components/layout/layout.d.ts.map +0 -1
  567. package/dist/components/layout/layout.js +0 -93
  568. package/dist/components/layout/layout.js.map +0 -1
  569. package/dist/components/menubar/index.d.ts.map +0 -1
  570. package/dist/components/menubar/index.js.map +0 -1
  571. package/dist/components/menubar/menubar.d.ts.map +0 -1
  572. package/dist/components/menubar/menubar.js.map +0 -1
  573. package/dist/components/numeric-input/index.d.ts.map +0 -1
  574. package/dist/components/numeric-input/index.js.map +0 -1
  575. package/dist/components/numeric-input/numeric-input.d.ts.map +0 -1
  576. package/dist/components/numeric-input/numeric-input.js.map +0 -1
  577. package/dist/components/otp-input/index.d.ts.map +0 -1
  578. package/dist/components/otp-input/index.js.map +0 -1
  579. package/dist/components/otp-input/otp-input.d.ts.map +0 -1
  580. package/dist/components/otp-input/otp-input.js.map +0 -1
  581. package/dist/components/popover/index.d.ts.map +0 -1
  582. package/dist/components/popover/index.js.map +0 -1
  583. package/dist/components/popover/popover.d.ts.map +0 -1
  584. package/dist/components/popover/popover.js.map +0 -1
  585. package/dist/components/pressable/index.d.ts.map +0 -1
  586. package/dist/components/pressable/index.js.map +0 -1
  587. package/dist/components/pressable/pressable.d.ts.map +0 -1
  588. package/dist/components/pressable/pressable.js.map +0 -1
  589. package/dist/components/progress/index.d.ts.map +0 -1
  590. package/dist/components/progress/index.js.map +0 -1
  591. package/dist/components/progress/progress.d.ts.map +0 -1
  592. package/dist/components/progress/progress.js.map +0 -1
  593. package/dist/components/radio-group/index.d.ts.map +0 -1
  594. package/dist/components/radio-group/index.js.map +0 -1
  595. package/dist/components/radio-group/radio-group.d.ts.map +0 -1
  596. package/dist/components/radio-group/radio-group.js.map +0 -1
  597. package/dist/components/row/index.d.ts.map +0 -1
  598. package/dist/components/row/index.js.map +0 -1
  599. package/dist/components/row/row.d.ts.map +0 -1
  600. package/dist/components/row/row.js.map +0 -1
  601. package/dist/components/segmented-control/index.d.ts.map +0 -1
  602. package/dist/components/segmented-control/index.js.map +0 -1
  603. package/dist/components/segmented-control/segmented-control.d.ts.map +0 -1
  604. package/dist/components/segmented-control/segmented-control.js.map +0 -1
  605. package/dist/components/select/index.d.ts.map +0 -1
  606. package/dist/components/select/index.js.map +0 -1
  607. package/dist/components/select/select.d.ts.map +0 -1
  608. package/dist/components/select/select.js.map +0 -1
  609. package/dist/components/separator/index.d.ts.map +0 -1
  610. package/dist/components/separator/index.js.map +0 -1
  611. package/dist/components/separator/separator.d.ts.map +0 -1
  612. package/dist/components/separator/separator.js.map +0 -1
  613. package/dist/components/skeleton/index.d.ts.map +0 -1
  614. package/dist/components/skeleton/index.js.map +0 -1
  615. package/dist/components/skeleton/skeleton.d.ts.map +0 -1
  616. package/dist/components/skeleton/skeleton.js.map +0 -1
  617. package/dist/components/spinner/index.d.ts.map +0 -1
  618. package/dist/components/spinner/index.js.map +0 -1
  619. package/dist/components/spinner/spinner.d.ts.map +0 -1
  620. package/dist/components/spinner/spinner.js.map +0 -1
  621. package/dist/components/stack/index.d.ts.map +0 -1
  622. package/dist/components/stack/index.js.map +0 -1
  623. package/dist/components/stack/stack.d.ts.map +0 -1
  624. package/dist/components/stack/stack.js.map +0 -1
  625. package/dist/components/switch/index.d.ts.map +0 -1
  626. package/dist/components/switch/index.js.map +0 -1
  627. package/dist/components/switch/switch.d.ts.map +0 -1
  628. package/dist/components/switch/switch.js.map +0 -1
  629. package/dist/components/tabs/index.d.ts.map +0 -1
  630. package/dist/components/tabs/index.js.map +0 -1
  631. package/dist/components/tabs/tabs.d.ts.map +0 -1
  632. package/dist/components/tabs/tabs.js.map +0 -1
  633. package/dist/components/text/index.d.ts.map +0 -1
  634. package/dist/components/text/index.js.map +0 -1
  635. package/dist/components/text/text.d.ts.map +0 -1
  636. package/dist/components/text/text.js.map +0 -1
  637. package/dist/components/textarea/index.d.ts.map +0 -1
  638. package/dist/components/textarea/index.js.map +0 -1
  639. package/dist/components/textarea/textarea.d.ts.map +0 -1
  640. package/dist/components/textarea/textarea.js.map +0 -1
  641. package/dist/components/toast/index.d.ts.map +0 -1
  642. package/dist/components/toast/index.js.map +0 -1
  643. package/dist/components/toast/toast.d.ts.map +0 -1
  644. package/dist/components/toast/toast.js.map +0 -1
  645. package/dist/components/toggle/index.d.ts.map +0 -1
  646. package/dist/components/toggle/index.js.map +0 -1
  647. package/dist/components/toggle/toggle.d.ts.map +0 -1
  648. package/dist/components/toggle/toggle.js.map +0 -1
  649. package/dist/components/toggle-group/index.d.ts.map +0 -1
  650. package/dist/components/toggle-group/index.js.map +0 -1
  651. package/dist/components/toggle-group/toggle-group.d.ts.map +0 -1
  652. package/dist/components/toggle-group/toggle-group.js.map +0 -1
  653. package/dist/components/tooltip/index.d.ts.map +0 -1
  654. package/dist/components/tooltip/index.js.map +0 -1
  655. package/dist/components/tooltip/tooltip.d.ts.map +0 -1
  656. package/dist/components/tooltip/tooltip.js.map +0 -1
  657. package/dist/components/view/index.d.ts.map +0 -1
  658. package/dist/components/view/index.js.map +0 -1
  659. package/dist/components/view/view.d.ts.map +0 -1
  660. package/dist/components/view/view.js.map +0 -1
  661. package/dist/index.d.ts.map +0 -1
  662. package/dist/index.js.map +0 -1
  663. package/dist/lib/cn.d.ts.map +0 -1
  664. package/dist/lib/cn.js.map +0 -1
  665. package/dist/lib/font-context.d.ts.map +0 -1
  666. package/dist/lib/font-context.js.map +0 -1
  667. package/dist/lib/frosted-surface.d.ts.map +0 -1
  668. package/dist/lib/frosted-surface.js.map +0 -1
  669. package/dist/lib/index.d.ts +0 -6
  670. package/dist/lib/index.d.ts.map +0 -1
  671. package/dist/lib/index.js +0 -6
  672. package/dist/lib/index.js.map +0 -1
  673. package/dist/lib/interaction-tokens.d.ts.map +0 -1
  674. package/dist/lib/interaction-tokens.js.map +0 -1
  675. package/dist/lib/portal.d.ts.map +0 -1
  676. package/dist/lib/portal.js.map +0 -1
  677. package/dist/lib/react-native-classname.d.ts.map +0 -1
  678. package/dist/lib/react-native-classname.js.map +0 -1
  679. package/dist/lib/theme-bridge.d.ts.map +0 -1
  680. package/dist/lib/theme-bridge.js.map +0 -1
  681. package/dist/lib/theme-colors.d.ts.map +0 -1
  682. package/dist/lib/theme-colors.js.map +0 -1
  683. package/dist/lib/tv.d.ts.map +0 -1
  684. package/dist/lib/tv.js.map +0 -1
  685. package/dist/lib/visual-tokens.d.ts.map +0 -1
  686. package/dist/lib/visual-tokens.js.map +0 -1
  687. package/dist/vite.d.ts.map +0 -1
  688. package/dist/vite.js.map +0 -1
@@ -0,0 +1,146 @@
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: string;
19
+ /** Default. Feeds, dashboards, most app screens. */
20
+ md: string;
21
+ /** Multi-column dashboards and wide tables. */
22
+ lg: string;
23
+ /** Near-full width, still stops short of an ultrawide monitor. */
24
+ xl: string;
25
+ /** Opt out — edge-to-edge at every width. */
26
+ full: string;
27
+ };
28
+ /** Fill the available height, for a container used as a screen root. */
29
+ fill: {
30
+ true: string;
31
+ false: string;
32
+ };
33
+ }, undefined, "w-full self-center", import("tailwind-variants/dist/config.js").TVConfig<{
34
+ size: {
35
+ /** Forms, auth, single-column reading. */
36
+ sm: string;
37
+ /** Default. Feeds, dashboards, most app screens. */
38
+ md: string;
39
+ /** Multi-column dashboards and wide tables. */
40
+ lg: string;
41
+ /** Near-full width, still stops short of an ultrawide monitor. */
42
+ xl: string;
43
+ /** Opt out — edge-to-edge at every width. */
44
+ full: string;
45
+ };
46
+ /** Fill the available height, for a container used as a screen root. */
47
+ fill: {
48
+ true: string;
49
+ false: string;
50
+ };
51
+ }, {
52
+ size: {
53
+ /** Forms, auth, single-column reading. */
54
+ sm: string;
55
+ /** Default. Feeds, dashboards, most app screens. */
56
+ md: string;
57
+ /** Multi-column dashboards and wide tables. */
58
+ lg: string;
59
+ /** Near-full width, still stops short of an ultrawide monitor. */
60
+ xl: string;
61
+ /** Opt out — edge-to-edge at every width. */
62
+ full: string;
63
+ };
64
+ /** Fill the available height, for a container used as a screen root. */
65
+ fill: {
66
+ true: string;
67
+ false: string;
68
+ };
69
+ }>, {
70
+ size: {
71
+ /** Forms, auth, single-column reading. */
72
+ sm: string;
73
+ /** Default. Feeds, dashboards, most app screens. */
74
+ md: string;
75
+ /** Multi-column dashboards and wide tables. */
76
+ lg: string;
77
+ /** Near-full width, still stops short of an ultrawide monitor. */
78
+ xl: string;
79
+ /** Opt out — edge-to-edge at every width. */
80
+ full: string;
81
+ };
82
+ /** Fill the available height, for a container used as a screen root. */
83
+ fill: {
84
+ true: string;
85
+ false: string;
86
+ };
87
+ }, undefined, import("tailwind-variants").TVReturnType<{
88
+ size: {
89
+ /** Forms, auth, single-column reading. */
90
+ sm: string;
91
+ /** Default. Feeds, dashboards, most app screens. */
92
+ md: string;
93
+ /** Multi-column dashboards and wide tables. */
94
+ lg: string;
95
+ /** Near-full width, still stops short of an ultrawide monitor. */
96
+ xl: string;
97
+ /** Opt out — edge-to-edge at every width. */
98
+ full: string;
99
+ };
100
+ /** Fill the available height, for a container used as a screen root. */
101
+ fill: {
102
+ true: string;
103
+ false: string;
104
+ };
105
+ }, undefined, "w-full self-center", import("tailwind-variants/dist/config.js").TVConfig<{
106
+ size: {
107
+ /** Forms, auth, single-column reading. */
108
+ sm: string;
109
+ /** Default. Feeds, dashboards, most app screens. */
110
+ md: string;
111
+ /** Multi-column dashboards and wide tables. */
112
+ lg: string;
113
+ /** Near-full width, still stops short of an ultrawide monitor. */
114
+ xl: string;
115
+ /** Opt out — edge-to-edge at every width. */
116
+ full: string;
117
+ };
118
+ /** Fill the available height, for a container used as a screen root. */
119
+ fill: {
120
+ true: string;
121
+ false: string;
122
+ };
123
+ }, {
124
+ size: {
125
+ /** Forms, auth, single-column reading. */
126
+ sm: string;
127
+ /** Default. Feeds, dashboards, most app screens. */
128
+ md: string;
129
+ /** Multi-column dashboards and wide tables. */
130
+ lg: string;
131
+ /** Near-full width, still stops short of an ultrawide monitor. */
132
+ xl: string;
133
+ /** Opt out — edge-to-edge at every width. */
134
+ full: string;
135
+ };
136
+ /** Fill the available height, for a container used as a screen root. */
137
+ fill: {
138
+ true: string;
139
+ false: string;
140
+ };
141
+ }>, unknown, unknown, undefined>>;
142
+ export interface ContainerProps extends ViewProps, VariantProps<typeof containerVariants> {
143
+ className?: string;
144
+ }
145
+ export declare function Container({ size, fill, className, children, ...props }: ContainerProps): import("react").JSX.Element;
146
+ 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
@@ -66,4 +66,3 @@ declare const DataRowLabel: React.ForwardRefExoticComponent<DataRowLabelProps &
66
66
  declare const DataRowDescription: React.ForwardRefExoticComponent<DataRowDescriptionProps & React.RefAttributes<Text>>;
67
67
  declare const DataRowValue: React.ForwardRefExoticComponent<DataRowValueProps & React.RefAttributes<Text>>;
68
68
  export { DataRow, DataRowLeft, DataRowCenter, DataRowRight, DataRowLabel, DataRowDescription, DataRowValue, dataRowVariants, };
69
- //# sourceMappingURL=data-row.d.ts.map
@@ -1,27 +1,40 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import React, { createContext, useContext } from 'react';
2
+ import React, { createContext, useContext, useMemo } from 'react';
3
3
  import { Text, View } from 'react-native';
4
4
  import { cn } from '../../lib/cn';
5
5
  import { tv } from '../../lib/tv';
6
6
  import { useVisualTokens } from '../../lib/visual-tokens';
7
+ import { typographyStyle } from '../../lib/recipes';
7
8
  const dataRowVariants = tv({
8
9
  base: 'w-full flex-row items-center gap-3',
9
10
  variants: {
10
11
  size: {
11
- default: 'min-h-11 py-2',
12
- compact: 'min-h-10 py-1.5',
12
+ default: '',
13
+ compact: '',
13
14
  },
14
15
  },
15
16
  defaultVariants: {
16
17
  size: 'default',
17
18
  },
18
19
  });
20
+ function getDataRowStyle(visual, size) {
21
+ if (size === 'compact') {
22
+ return {
23
+ minHeight: Math.round((visual.controlHeightSm + visual.controlHeightDefault) / 2),
24
+ paddingVertical: Math.max(4, Math.round(visual.controlPaddingYSm * 0.75)),
25
+ };
26
+ }
27
+ return {
28
+ minHeight: visual.controlHeightDefault,
29
+ paddingVertical: visual.controlPaddingYSm,
30
+ };
31
+ }
19
32
  const dataRowLabelVariants = tv({
20
33
  base: 'font-medium text-foreground',
21
34
  variants: {
22
35
  size: {
23
- default: 'text-sm',
24
- compact: 'text-xs',
36
+ default: '',
37
+ compact: '',
25
38
  },
26
39
  },
27
40
  defaultVariants: {
@@ -32,8 +45,8 @@ const dataRowDescriptionVariants = tv({
32
45
  base: 'text-muted-foreground',
33
46
  variants: {
34
47
  size: {
35
- default: 'text-xs',
36
- compact: 'text-xs',
48
+ default: '',
49
+ compact: '',
37
50
  },
38
51
  },
39
52
  defaultVariants: {
@@ -44,8 +57,8 @@ const dataRowValueVariants = tv({
44
57
  base: 'font-medium text-foreground text-right',
45
58
  variants: {
46
59
  size: {
47
- default: 'text-sm',
48
- compact: 'text-xs',
60
+ default: '',
61
+ compact: '',
49
62
  },
50
63
  },
51
64
  defaultVariants: {
@@ -55,8 +68,10 @@ const dataRowValueVariants = tv({
55
68
  const DataRowContext = createContext({
56
69
  size: 'default',
57
70
  });
58
- const DataRow = React.forwardRef(({ className, size = 'default', ...props }, ref) => {
59
- return (_jsx(DataRowContext.Provider, { value: { size }, children: _jsx(View, { ref: ref, className: cn(dataRowVariants({ size }), className), ...props }) }));
71
+ const DataRow = React.forwardRef(({ className, size = 'default', style, ...props }, ref) => {
72
+ const visual = useVisualTokens();
73
+ const contextValue = useMemo(() => ({ size }), [size]);
74
+ return (_jsx(DataRowContext.Provider, { value: contextValue, children: _jsx(View, { ref: ref, className: cn(dataRowVariants({ size }), className), style: [getDataRowStyle(visual, size), style], ...props }) }));
60
75
  });
61
76
  DataRow.displayName = 'DataRow';
62
77
  const DataRowLeft = React.forwardRef(({ className, ...props }, ref) => {
@@ -72,21 +87,24 @@ const DataRowRight = React.forwardRef(({ className, style, ...props }, ref) => {
72
87
  return (_jsx(View, { ref: ref, className: cn('ml-2 shrink-0 items-end justify-center', className), style: [{ maxWidth: `${visual.dataRowRightMaxWidthRatio * 100}%` }, style], ...props }));
73
88
  });
74
89
  DataRowRight.displayName = 'DataRowRight';
75
- const DataRowLabel = React.forwardRef(({ className, ...props }, ref) => {
90
+ const DataRowLabel = React.forwardRef(({ className, style, ...props }, ref) => {
76
91
  const { size } = useContext(DataRowContext);
77
- return (_jsx(Text, { ref: ref, className: cn(dataRowLabelVariants({ size }), className), numberOfLines: 1, ...props }));
92
+ const visual = useVisualTokens();
93
+ return (_jsx(Text, { ref: ref, className: cn(dataRowLabelVariants({ size }), className), style: [typographyStyle(visual, size === 'compact' ? 'caption' : 'label'), style], numberOfLines: 1, ...props }));
78
94
  });
79
95
  DataRowLabel.displayName = 'DataRowLabel';
80
96
  const DataRowDescription = React.forwardRef(({ className, style, ...props }, ref) => {
81
97
  const { size } = useContext(DataRowContext);
82
98
  const visual = useVisualTokens();
83
- return (_jsx(Text, { ref: ref, className: cn(dataRowDescriptionVariants({ size }), className), style: size === 'compact' ? [{ fontSize: visual.dataRowCompactDescriptionSize }, style] : style, numberOfLines: 2, ...props }));
99
+ return (_jsx(Text, { ref: ref, className: cn(dataRowDescriptionVariants({ size }), className), style: size === 'compact'
100
+ ? [{ fontSize: visual.dataRowCompactDescriptionSize }, style]
101
+ : [typographyStyle(visual, 'caption'), style], numberOfLines: 2, ...props }));
84
102
  });
85
103
  DataRowDescription.displayName = 'DataRowDescription';
86
- const DataRowValue = React.forwardRef(({ className, ...props }, ref) => {
104
+ const DataRowValue = React.forwardRef(({ className, style, ...props }, ref) => {
87
105
  const { size } = useContext(DataRowContext);
88
- return (_jsx(Text, { ref: ref, className: cn(dataRowValueVariants({ size }), className), numberOfLines: 1, ...props }));
106
+ const visual = useVisualTokens();
107
+ return (_jsx(Text, { ref: ref, className: cn(dataRowValueVariants({ size }), className), style: [typographyStyle(visual, size === 'compact' ? 'caption' : 'label'), style], numberOfLines: 1, ...props }));
89
108
  });
90
109
  DataRowValue.displayName = 'DataRowValue';
91
110
  export { DataRow, DataRowLeft, DataRowCenter, DataRowRight, DataRowLabel, DataRowDescription, DataRowValue, dataRowVariants, };
92
- //# sourceMappingURL=data-row.js.map
@@ -1,2 +1 @@
1
1
  export { DataRow, DataRowLeft, DataRowCenter, DataRowRight, DataRowLabel, DataRowDescription, DataRowValue, dataRowVariants, type DataRowProps, type DataRowLeftProps, type DataRowCenterProps, type DataRowRightProps, type DataRowLabelProps, type DataRowDescriptionProps, type DataRowValueProps, } from './data-row';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1 @@
1
1
  export { DataRow, DataRowLeft, DataRowCenter, DataRowRight, DataRowLabel, DataRowDescription, DataRowValue, dataRowVariants, } from './data-row';
2
- //# sourceMappingURL=index.js.map
@@ -33,37 +33,36 @@ export interface DialogCloseProps extends PressableProps {
33
33
  className?: string;
34
34
  asChild?: boolean;
35
35
  }
36
- declare function Dialog({ defaultOpen, open: controlledOpen, onOpenChange, children, }: DialogProps): import("react/jsx-runtime").JSX.Element;
36
+ declare function Dialog({ defaultOpen, open: controlledOpen, onOpenChange, children, }: DialogProps): React.JSX.Element;
37
37
  declare namespace Dialog {
38
38
  var displayName: string;
39
39
  }
40
- declare function DialogTrigger({ className, children, asChild, ...props }: DialogTriggerProps): import("react/jsx-runtime").JSX.Element;
40
+ declare function DialogTrigger({ className, children, asChild, onPress, ...props }: DialogTriggerProps): React.JSX.Element;
41
41
  declare namespace DialogTrigger {
42
42
  var displayName: string;
43
43
  }
44
- declare function DialogContent({ className, children, frosted, blurIntensity, blurTintToken, style, ...props }: DialogContentProps): import("react/jsx-runtime").JSX.Element;
44
+ declare function DialogContent({ className, children, frosted, blurIntensity, blurTintToken, style, ...props }: DialogContentProps): React.JSX.Element;
45
45
  declare namespace DialogContent {
46
46
  var displayName: string;
47
47
  }
48
- declare function DialogHeader({ className, ...props }: DialogHeaderProps): import("react/jsx-runtime").JSX.Element;
48
+ declare function DialogHeader({ className, ...props }: DialogHeaderProps): React.JSX.Element;
49
49
  declare namespace DialogHeader {
50
50
  var displayName: string;
51
51
  }
52
- declare function DialogFooter({ className, ...props }: DialogFooterProps): import("react/jsx-runtime").JSX.Element;
52
+ declare function DialogFooter({ className, ...props }: DialogFooterProps): React.JSX.Element;
53
53
  declare namespace DialogFooter {
54
54
  var displayName: string;
55
55
  }
56
- declare function DialogTitle({ className, ...props }: DialogTitleProps): import("react/jsx-runtime").JSX.Element;
56
+ declare function DialogTitle({ className, style, ...props }: DialogTitleProps): React.JSX.Element;
57
57
  declare namespace DialogTitle {
58
58
  var displayName: string;
59
59
  }
60
- declare function DialogDescription({ className, ...props }: DialogDescriptionProps): import("react/jsx-runtime").JSX.Element;
60
+ declare function DialogDescription({ className, style, ...props }: DialogDescriptionProps): React.JSX.Element;
61
61
  declare namespace DialogDescription {
62
62
  var displayName: string;
63
63
  }
64
- declare function DialogClose({ className, children, asChild, ...props }: DialogCloseProps): import("react/jsx-runtime").JSX.Element;
64
+ declare function DialogClose({ className, children, asChild, onPress, ...props }: DialogCloseProps): React.JSX.Element;
65
65
  declare namespace DialogClose {
66
66
  var displayName: string;
67
67
  }
68
68
  export { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose, };
69
- //# sourceMappingURL=dialog.d.ts.map
@@ -1,40 +1,44 @@
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, useCallback, useContext, useMemo, useState } from 'react';
3
3
  import { View, Modal, Pressable, Text, } from 'react-native';
4
4
  import { cn } from '../../lib/cn';
5
+ import { composeEventHandlers } from '../../lib/compose-event-handlers';
5
6
  import { useThemeColors } from '../../lib/theme-colors';
6
7
  import { useFrostedSurface } from '../../lib/frosted-surface';
8
+ import { useVisualTokens } from '../../lib/visual-tokens';
9
+ import { shadowStyle, typographyStyle } from '../../lib/recipes';
7
10
  const DialogContext = createContext({
8
11
  open: false,
9
12
  setOpen: () => { },
10
13
  });
11
- // ─── Components ──────────────────────────────────────────────
12
14
  function Dialog({ defaultOpen = false, open: controlledOpen, onOpenChange, children, }) {
13
15
  const [internalOpen, setInternalOpen] = useState(defaultOpen);
14
16
  const open = controlledOpen ?? internalOpen;
15
- const setOpen = (value) => {
16
- setInternalOpen(value);
17
+ const setOpen = useCallback((value) => {
18
+ if (controlledOpen === undefined) {
19
+ setInternalOpen(value);
20
+ }
17
21
  onOpenChange?.(value);
18
- };
19
- return _jsx(DialogContext.Provider, { value: { open, setOpen }, children: children });
22
+ }, [controlledOpen, onOpenChange]);
23
+ const contextValue = useMemo(() => ({ open, setOpen }), [open, setOpen]);
24
+ return _jsx(DialogContext.Provider, { value: contextValue, children: children });
20
25
  }
21
- function DialogTrigger({ className, children, asChild, ...props }) {
26
+ function DialogTrigger({ className, children, asChild, onPress, ...props }) {
22
27
  const { setOpen } = useContext(DialogContext);
23
28
  if (asChild && React.isValidElement(children)) {
24
29
  const child = children;
25
30
  return React.cloneElement(child, {
26
- onPress: (e) => {
27
- child.props.onPress?.(e);
28
- setOpen(true);
29
- },
30
31
  ...props,
32
+ className: cn(child.props.className, className),
33
+ onPress: composeEventHandlers(composeEventHandlers(child.props.onPress, onPress), () => setOpen(true)),
31
34
  });
32
35
  }
33
- return (_jsx(Pressable, { className: cn(className), onPress: () => setOpen(true), ...props, children: children }));
36
+ return (_jsx(Pressable, { accessibilityRole: "button", ...props, className: cn(className), onPress: composeEventHandlers(onPress, () => setOpen(true)), children: children }));
34
37
  }
35
38
  function DialogContent({ className, children, frosted = false, blurIntensity, blurTintToken, style, ...props }) {
36
39
  const { open, setOpen } = useContext(DialogContext);
37
40
  const colors = useThemeColors();
41
+ const visual = useVisualTokens();
38
42
  const frostedSurface = useFrostedSurface({
39
43
  frosted,
40
44
  blurIntensity,
@@ -43,7 +47,28 @@ function DialogContent({ className, children, frosted = false, blurIntensity, bl
43
47
  defaultBlurPreset: 'medium',
44
48
  });
45
49
  const contentStyle = [frostedSurface.surfaceStyle, style];
46
- return (_jsx(Modal, { visible: open, transparent: true, animationType: "fade", onRequestClose: () => setOpen(false), children: _jsx(Pressable, { className: "flex-1 justify-center items-center px-4", style: { backgroundColor: colors.overlayStrong }, onPress: () => setOpen(false), children: _jsxs(Pressable, { className: cn('w-full max-w-lg rounded-lg border border-border p-6 shadow-lg relative overflow-hidden', frosted ? 'bg-transparent' : 'bg-background', className), style: contentStyle, onPress: (e) => e.stopPropagation(), ...props, children: [frostedSurface.overlay, children] }) }) }));
50
+ return (_jsx(Modal, { visible: open, transparent: true, animationType: "fade", statusBarTranslucent: true, navigationBarTranslucent: true, onRequestClose: () => setOpen(false), children: _jsx(Pressable
51
+ // Tap-to-dismiss is a pointer affordance. Left accessible it would swallow the
52
+ // whole panel into one element; screen reader users close from inside.
53
+ , {
54
+ // Tap-to-dismiss is a pointer affordance. Left accessible it would swallow the
55
+ // whole panel into one element; screen reader users close from inside.
56
+ accessible: false, importantForAccessibility: "no", className: "flex-1 justify-center items-center px-4", style: { backgroundColor: colors.overlayStrong }, onPress: () => setOpen(false), children: _jsxs(Pressable
57
+ // Container, not a control — Pressable defaults to `accessible: true`, which
58
+ // on iOS collapses every descendant into one accessibility element.
59
+ , {
60
+ // Container, not a control — Pressable defaults to `accessible: true`, which
61
+ // on iOS collapses every descendant into one accessibility element.
62
+ accessible: false, className: cn('w-full border-border relative overflow-hidden', frosted ? 'bg-transparent' : 'bg-background', className), style: [
63
+ {
64
+ maxWidth: visual.sheetMaxWidth,
65
+ borderWidth: visual.borderWidthHairline,
66
+ borderRadius: visual.radiusXl,
67
+ padding: visual.surfacePaddingDefault,
68
+ },
69
+ shadowStyle(visual, colors, 'lg'),
70
+ contentStyle,
71
+ ], onPress: (e) => e.stopPropagation(), ...props, children: [frostedSurface.overlay, children] }) }) }));
47
72
  }
48
73
  function DialogHeader({ className, ...props }) {
49
74
  return _jsx(View, { className: cn('flex flex-col gap-1.5 pb-4', className), ...props });
@@ -51,26 +76,26 @@ function DialogHeader({ className, ...props }) {
51
76
  function DialogFooter({ className, ...props }) {
52
77
  return _jsx(View, { className: cn('flex flex-row justify-end gap-2 pt-4', className), ...props });
53
78
  }
54
- function DialogTitle({ className, ...props }) {
55
- return _jsx(Text, { className: cn('text-lg font-semibold text-foreground', className), ...props });
79
+ function DialogTitle({ className, style, ...props }) {
80
+ const visual = useVisualTokens();
81
+ return (_jsx(Text, { className: cn('font-semibold text-foreground', className), style: [typographyStyle(visual, 'title'), style], ...props }));
56
82
  }
57
- function DialogDescription({ className, ...props }) {
58
- return _jsx(Text, { className: cn('text-sm text-muted-foreground', className), ...props });
83
+ function DialogDescription({ className, style, ...props }) {
84
+ const visual = useVisualTokens();
85
+ return (_jsx(Text, { className: cn('text-muted-foreground', className), style: [typographyStyle(visual, 'label'), style], ...props }));
59
86
  }
60
87
  // ... (interfaces update needed too)
61
- function DialogClose({ className, children, asChild, ...props }) {
88
+ function DialogClose({ className, children, asChild, onPress, ...props }) {
62
89
  const { setOpen } = useContext(DialogContext);
63
90
  if (asChild && React.isValidElement(children)) {
64
91
  const child = children;
65
92
  return React.cloneElement(child, {
66
- onPress: (e) => {
67
- child.props.onPress?.(e);
68
- setOpen(false);
69
- },
70
93
  ...props,
94
+ className: cn(child.props.className, className),
95
+ onPress: composeEventHandlers(composeEventHandlers(child.props.onPress, onPress), () => setOpen(false)),
71
96
  });
72
97
  }
73
- return (_jsx(Pressable, { className: cn(className), onPress: () => setOpen(false), ...props, children: children }));
98
+ return (_jsx(Pressable, { accessibilityRole: "button", ...props, className: cn(className), onPress: composeEventHandlers(onPress, () => setOpen(false)), children: children }));
74
99
  }
75
100
  Dialog.displayName = 'Dialog';
76
101
  DialogTrigger.displayName = 'DialogTrigger';
@@ -81,4 +106,3 @@ DialogTitle.displayName = 'DialogTitle';
81
106
  DialogDescription.displayName = 'DialogDescription';
82
107
  DialogClose.displayName = 'DialogClose';
83
108
  export { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose, };
84
- //# sourceMappingURL=dialog.js.map
@@ -1,2 +1 @@
1
1
  export { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose, type DialogProps, type DialogTriggerProps, type DialogContentProps, type DialogHeaderProps, type DialogFooterProps, type DialogTitleProps, type DialogDescriptionProps, type DialogCloseProps, } from './dialog';
2
- //# sourceMappingURL=index.d.ts.map