@ankhorage/zora 2.8.6 → 2.9.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 (395) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/dist/components/app-bar/AppBar.d.ts.map +1 -1
  4. package/dist/components/app-bar/AppBar.js +3 -3
  5. package/dist/components/app-bar/AppBar.js.map +1 -1
  6. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  7. package/dist/components/avatar/Avatar.js +1 -1
  8. package/dist/components/avatar/Avatar.js.map +1 -1
  9. package/dist/components/avatar-group/AvatarGroup.d.ts.map +1 -1
  10. package/dist/components/avatar-group/AvatarGroup.js +1 -1
  11. package/dist/components/avatar-group/AvatarGroup.js.map +1 -1
  12. package/dist/components/badge/Badge.d.ts.map +1 -1
  13. package/dist/components/badge/Badge.js +1 -1
  14. package/dist/components/badge/Badge.js.map +1 -1
  15. package/dist/components/breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  16. package/dist/components/breadcrumbs/Breadcrumbs.js +2 -2
  17. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -1
  18. package/dist/components/button/Button.d.ts.map +1 -1
  19. package/dist/components/button/Button.js +2 -2
  20. package/dist/components/button/Button.js.map +1 -1
  21. package/dist/components/button-group/ButtonGroup.d.ts.map +1 -1
  22. package/dist/components/button-group/ButtonGroup.js +1 -1
  23. package/dist/components/button-group/ButtonGroup.js.map +1 -1
  24. package/dist/components/card/Card.d.ts.map +1 -1
  25. package/dist/components/card/Card.js +3 -2
  26. package/dist/components/card/Card.js.map +1 -1
  27. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  28. package/dist/components/checkbox/Checkbox.js +2 -2
  29. package/dist/components/checkbox/Checkbox.js.map +1 -1
  30. package/dist/components/checkbox/CheckboxGroup.d.ts.map +1 -1
  31. package/dist/components/checkbox/CheckboxGroup.js +7 -4
  32. package/dist/components/checkbox/CheckboxGroup.js.map +1 -1
  33. package/dist/components/chip/Chip.d.ts.map +1 -1
  34. package/dist/components/chip/Chip.js +2 -2
  35. package/dist/components/chip/Chip.js.map +1 -1
  36. package/dist/components/chip-group/ChipGroup.d.ts.map +1 -1
  37. package/dist/components/chip-group/ChipGroup.js +5 -2
  38. package/dist/components/chip-group/ChipGroup.js.map +1 -1
  39. package/dist/components/data-table/DataTable.d.ts.map +1 -1
  40. package/dist/components/data-table/DataTable.js +20 -14
  41. package/dist/components/data-table/DataTable.js.map +1 -1
  42. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  43. package/dist/components/date-picker/DatePicker.js +23 -6
  44. package/dist/components/date-picker/DatePicker.js.map +1 -1
  45. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  46. package/dist/components/drawer/Drawer.js +2 -2
  47. package/dist/components/drawer/Drawer.js.map +1 -1
  48. package/dist/components/form/Form.d.ts.map +1 -1
  49. package/dist/components/form/Form.js +5 -3
  50. package/dist/components/form/Form.js.map +1 -1
  51. package/dist/components/form/FormActions.d.ts.map +1 -1
  52. package/dist/components/form/FormActions.js +2 -2
  53. package/dist/components/form/FormActions.js.map +1 -1
  54. package/dist/components/form/FormError.d.ts.map +1 -1
  55. package/dist/components/form/FormError.js +1 -1
  56. package/dist/components/form/FormError.js.map +1 -1
  57. package/dist/components/form/FormField.d.ts.map +1 -1
  58. package/dist/components/form/FormField.js +3 -3
  59. package/dist/components/form/FormField.js.map +1 -1
  60. package/dist/components/gradient/Gradient.d.ts.map +1 -1
  61. package/dist/components/gradient/Gradient.js +1 -1
  62. package/dist/components/gradient/Gradient.js.map +1 -1
  63. package/dist/components/heading/Heading.d.ts.map +1 -1
  64. package/dist/components/heading/Heading.js +2 -2
  65. package/dist/components/heading/Heading.js.map +1 -1
  66. package/dist/components/icon/Icon.d.ts.map +1 -1
  67. package/dist/components/icon/Icon.js +1 -1
  68. package/dist/components/icon/Icon.js.map +1 -1
  69. package/dist/components/icon-button/IconButton.d.ts.map +1 -1
  70. package/dist/components/icon-button/IconButton.js +2 -2
  71. package/dist/components/icon-button/IconButton.js.map +1 -1
  72. package/dist/components/image/Image.d.ts.map +1 -1
  73. package/dist/components/image/Image.js +1 -1
  74. package/dist/components/image/Image.js.map +1 -1
  75. package/dist/components/input/Input.d.ts.map +1 -1
  76. package/dist/components/input/Input.js +2 -2
  77. package/dist/components/input/Input.js.map +1 -1
  78. package/dist/components/media-card/MediaCard.d.ts.map +1 -1
  79. package/dist/components/media-card/MediaCard.js +2 -2
  80. package/dist/components/media-card/MediaCard.js.map +1 -1
  81. package/dist/components/metric-card/MetricCard.d.ts.map +1 -1
  82. package/dist/components/metric-card/MetricCard.js +2 -2
  83. package/dist/components/metric-card/MetricCard.js.map +1 -1
  84. package/dist/components/modal/Modal.d.ts.map +1 -1
  85. package/dist/components/modal/Modal.js +2 -2
  86. package/dist/components/modal/Modal.js.map +1 -1
  87. package/dist/components/navigation-item/NavigationItem.d.ts.map +1 -1
  88. package/dist/components/navigation-item/NavigationItem.js +2 -2
  89. package/dist/components/navigation-item/NavigationItem.js.map +1 -1
  90. package/dist/components/navigation-list/NavigationList.d.ts.map +1 -1
  91. package/dist/components/navigation-list/NavigationList.js +3 -3
  92. package/dist/components/navigation-list/NavigationList.js.map +1 -1
  93. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  94. package/dist/components/pagination/Pagination.js +8 -7
  95. package/dist/components/pagination/Pagination.js.map +1 -1
  96. package/dist/components/progress/Progress.d.ts.map +1 -1
  97. package/dist/components/progress/Progress.js +1 -1
  98. package/dist/components/progress/Progress.js.map +1 -1
  99. package/dist/components/radio/Radio.js +2 -2
  100. package/dist/components/radio/Radio.js.map +1 -1
  101. package/dist/components/radio/RadioGroup.d.ts.map +1 -1
  102. package/dist/components/radio/RadioGroup.js +7 -4
  103. package/dist/components/radio/RadioGroup.js.map +1 -1
  104. package/dist/components/rating/Rating.d.ts.map +1 -1
  105. package/dist/components/rating/Rating.js +1 -1
  106. package/dist/components/rating/Rating.js.map +1 -1
  107. package/dist/components/search-bar/SearchBar.d.ts.map +1 -1
  108. package/dist/components/search-bar/SearchBar.js +5 -2
  109. package/dist/components/search-bar/SearchBar.js.map +1 -1
  110. package/dist/components/select/Select.d.ts.map +1 -1
  111. package/dist/components/select/Select.js +12 -4
  112. package/dist/components/select/Select.js.map +1 -1
  113. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  114. package/dist/components/tabs/Tabs.js +17 -4
  115. package/dist/components/tabs/Tabs.js.map +1 -1
  116. package/dist/components/text/Text.d.ts.map +1 -1
  117. package/dist/components/text/Text.js +1 -1
  118. package/dist/components/text/Text.js.map +1 -1
  119. package/dist/components/textarea/Textarea.d.ts.map +1 -1
  120. package/dist/components/textarea/Textarea.js +2 -2
  121. package/dist/components/textarea/Textarea.js.map +1 -1
  122. package/dist/components/time-picker/TimePicker.d.ts.map +1 -1
  123. package/dist/components/time-picker/TimePicker.js +16 -4
  124. package/dist/components/time-picker/TimePicker.js.map +1 -1
  125. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  126. package/dist/components/toolbar/Toolbar.js +1 -1
  127. package/dist/components/toolbar/Toolbar.js.map +1 -1
  128. package/dist/foundation/Box.d.ts.map +1 -1
  129. package/dist/foundation/Box.js +1 -1
  130. package/dist/foundation/Box.js.map +1 -1
  131. package/dist/foundation/Center.d.ts.map +1 -1
  132. package/dist/foundation/Center.js +1 -1
  133. package/dist/foundation/Center.js.map +1 -1
  134. package/dist/foundation/Container.d.ts.map +1 -1
  135. package/dist/foundation/Container.js +1 -1
  136. package/dist/foundation/Container.js.map +1 -1
  137. package/dist/foundation/Divider.d.ts.map +1 -1
  138. package/dist/foundation/Divider.js +1 -1
  139. package/dist/foundation/Divider.js.map +1 -1
  140. package/dist/foundation/Grid.d.ts.map +1 -1
  141. package/dist/foundation/Grid.js +1 -1
  142. package/dist/foundation/Grid.js.map +1 -1
  143. package/dist/foundation/Inline.d.ts.map +1 -1
  144. package/dist/foundation/Inline.js +1 -1
  145. package/dist/foundation/Inline.js.map +1 -1
  146. package/dist/foundation/Show.d.ts.map +1 -1
  147. package/dist/foundation/Show.js +1 -1
  148. package/dist/foundation/Show.js.map +1 -1
  149. package/dist/foundation/Spacer.d.ts.map +1 -1
  150. package/dist/foundation/Spacer.js +1 -1
  151. package/dist/foundation/Spacer.js.map +1 -1
  152. package/dist/foundation/Stack.d.ts.map +1 -1
  153. package/dist/foundation/Stack.js +1 -1
  154. package/dist/foundation/Stack.js.map +1 -1
  155. package/dist/foundation/Surface.d.ts.map +1 -1
  156. package/dist/foundation/Surface.js +1 -1
  157. package/dist/foundation/Surface.js.map +1 -1
  158. package/dist/layout/app-shell/AppShell.d.ts.map +1 -1
  159. package/dist/layout/app-shell/AppShell.js +1 -1
  160. package/dist/layout/app-shell/AppShell.js.map +1 -1
  161. package/dist/layout/screen/Screen.d.ts.map +1 -1
  162. package/dist/layout/screen/Screen.js +1 -1
  163. package/dist/layout/screen/Screen.js.map +1 -1
  164. package/dist/layout/screen-section/ScreenSection.d.ts.map +1 -1
  165. package/dist/layout/screen-section/ScreenSection.js +1 -1
  166. package/dist/layout/screen-section/ScreenSection.js.map +1 -1
  167. package/dist/layout/settings-layout/SettingsLayout.d.ts.map +1 -1
  168. package/dist/layout/settings-layout/SettingsLayout.js +1 -1
  169. package/dist/layout/settings-layout/SettingsLayout.js.map +1 -1
  170. package/dist/layout/sidebar-layout/SidebarLayout.d.ts.map +1 -1
  171. package/dist/layout/sidebar-layout/SidebarLayout.js +1 -1
  172. package/dist/layout/sidebar-layout/SidebarLayout.js.map +1 -1
  173. package/dist/layout/topbar-layout/TopbarLayout.d.ts.map +1 -1
  174. package/dist/layout/topbar-layout/TopbarLayout.js +1 -1
  175. package/dist/layout/topbar-layout/TopbarLayout.js.map +1 -1
  176. package/dist/patterns/auth/ForgotPasswordForm.d.ts.map +1 -1
  177. package/dist/patterns/auth/ForgotPasswordForm.js +3 -3
  178. package/dist/patterns/auth/ForgotPasswordForm.js.map +1 -1
  179. package/dist/patterns/auth/OAuthProviderButton.d.ts.map +1 -1
  180. package/dist/patterns/auth/OAuthProviderButton.js +2 -2
  181. package/dist/patterns/auth/OAuthProviderButton.js.map +1 -1
  182. package/dist/patterns/auth/OAuthProviderList.d.ts.map +1 -1
  183. package/dist/patterns/auth/OAuthProviderList.js +2 -2
  184. package/dist/patterns/auth/OAuthProviderList.js.map +1 -1
  185. package/dist/patterns/auth/OtpForm.d.ts.map +1 -1
  186. package/dist/patterns/auth/OtpForm.js +3 -3
  187. package/dist/patterns/auth/OtpForm.js.map +1 -1
  188. package/dist/patterns/auth/SignInForm.d.ts.map +1 -1
  189. package/dist/patterns/auth/SignInForm.js +4 -4
  190. package/dist/patterns/auth/SignInForm.js.map +1 -1
  191. package/dist/patterns/auth/SignUpForm.d.ts.map +1 -1
  192. package/dist/patterns/auth/SignUpForm.js +3 -3
  193. package/dist/patterns/auth/SignUpForm.js.map +1 -1
  194. package/dist/patterns/chat-list-item/ChatListItem.d.ts.map +1 -1
  195. package/dist/patterns/chat-list-item/ChatListItem.js +2 -2
  196. package/dist/patterns/chat-list-item/ChatListItem.js.map +1 -1
  197. package/dist/patterns/collection-editor/CollectionEditor.d.ts.map +1 -1
  198. package/dist/patterns/collection-editor/CollectionEditor.js +5 -5
  199. package/dist/patterns/collection-editor/CollectionEditor.js.map +1 -1
  200. package/dist/patterns/confirm-dialog/ConfirmDialog.d.ts.map +1 -1
  201. package/dist/patterns/confirm-dialog/ConfirmDialog.js +4 -4
  202. package/dist/patterns/confirm-dialog/ConfirmDialog.js.map +1 -1
  203. package/dist/patterns/disclosure-section/DisclosureSection.d.ts.map +1 -1
  204. package/dist/patterns/disclosure-section/DisclosureSection.js +4 -3
  205. package/dist/patterns/disclosure-section/DisclosureSection.js.map +1 -1
  206. package/dist/patterns/empty-state/EmptyState.d.ts.map +1 -1
  207. package/dist/patterns/empty-state/EmptyState.js +4 -4
  208. package/dist/patterns/empty-state/EmptyState.js.map +1 -1
  209. package/dist/patterns/filter-bar/FilterBar.d.ts.map +1 -1
  210. package/dist/patterns/filter-bar/FilterBar.js +1 -1
  211. package/dist/patterns/filter-bar/FilterBar.js.map +1 -1
  212. package/dist/patterns/hero/Hero.d.ts.map +1 -1
  213. package/dist/patterns/hero/Hero.js +10 -6
  214. package/dist/patterns/hero/Hero.js.map +1 -1
  215. package/dist/patterns/image-preview/ImagePreview.d.ts.map +1 -1
  216. package/dist/patterns/image-preview/ImagePreview.js +1 -1
  217. package/dist/patterns/image-preview/ImagePreview.js.map +1 -1
  218. package/dist/patterns/image-upload-field/ImageUploadField.d.ts.map +1 -1
  219. package/dist/patterns/image-upload-field/ImageUploadField.js +19 -13
  220. package/dist/patterns/image-upload-field/ImageUploadField.js.map +1 -1
  221. package/dist/patterns/inspector-field/InspectorField.d.ts.map +1 -1
  222. package/dist/patterns/inspector-field/InspectorField.js +1 -1
  223. package/dist/patterns/inspector-field/InspectorField.js.map +1 -1
  224. package/dist/patterns/message-bubble/MessageBubble.d.ts.map +1 -1
  225. package/dist/patterns/message-bubble/MessageBubble.js +2 -2
  226. package/dist/patterns/message-bubble/MessageBubble.js.map +1 -1
  227. package/dist/patterns/notice/Notice.d.ts.map +1 -1
  228. package/dist/patterns/notice/Notice.js +1 -1
  229. package/dist/patterns/notice/Notice.js.map +1 -1
  230. package/dist/patterns/post-card/PostCard.d.ts.map +1 -1
  231. package/dist/patterns/post-card/PostCard.js +2 -2
  232. package/dist/patterns/post-card/PostCard.js.map +1 -1
  233. package/dist/patterns/product-card/ProductCard.d.ts.map +1 -1
  234. package/dist/patterns/product-card/ProductCard.js +4 -4
  235. package/dist/patterns/product-card/ProductCard.js.map +1 -1
  236. package/dist/patterns/product-card/types.d.ts +2 -1
  237. package/dist/patterns/product-card/types.d.ts.map +1 -1
  238. package/dist/patterns/product-card/types.js.map +1 -1
  239. package/dist/patterns/responsive-panel/ResponsivePanel.d.ts.map +1 -1
  240. package/dist/patterns/responsive-panel/ResponsivePanel.js +13 -4
  241. package/dist/patterns/responsive-panel/ResponsivePanel.js.map +1 -1
  242. package/dist/patterns/scanner/BarcodeScannerView.d.ts.map +1 -1
  243. package/dist/patterns/scanner/BarcodeScannerView.js +3 -3
  244. package/dist/patterns/scanner/BarcodeScannerView.js.map +1 -1
  245. package/dist/patterns/scanner/CameraPermissionView.d.ts.map +1 -1
  246. package/dist/patterns/scanner/CameraPermissionView.js +4 -4
  247. package/dist/patterns/scanner/CameraPermissionView.js.map +1 -1
  248. package/dist/patterns/scanner/ScanOverlay.d.ts.map +1 -1
  249. package/dist/patterns/scanner/ScanOverlay.js +1 -1
  250. package/dist/patterns/scanner/ScanOverlay.js.map +1 -1
  251. package/dist/patterns/section-header/SectionHeader.d.ts.map +1 -1
  252. package/dist/patterns/section-header/SectionHeader.js +1 -1
  253. package/dist/patterns/section-header/SectionHeader.js.map +1 -1
  254. package/dist/patterns/selection/SelectableItem.d.ts +1 -1
  255. package/dist/patterns/selection/SelectableItem.d.ts.map +1 -1
  256. package/dist/patterns/selection/SelectableItem.js +15 -5
  257. package/dist/patterns/selection/SelectableItem.js.map +1 -1
  258. package/dist/patterns/selection/SelectionProvider.d.ts +1 -1
  259. package/dist/patterns/selection/SelectionProvider.d.ts.map +1 -1
  260. package/dist/patterns/selection/SelectionProvider.js +4 -2
  261. package/dist/patterns/selection/SelectionProvider.js.map +1 -1
  262. package/dist/patterns/selection/types.d.ts +3 -0
  263. package/dist/patterns/selection/types.d.ts.map +1 -1
  264. package/dist/patterns/selection/types.js.map +1 -1
  265. package/dist/patterns/settings-row/SettingsRow.d.ts.map +1 -1
  266. package/dist/patterns/settings-row/SettingsRow.js +3 -3
  267. package/dist/patterns/settings-row/SettingsRow.js.map +1 -1
  268. package/dist/patterns/switch-field/SwitchField.d.ts.map +1 -1
  269. package/dist/patterns/switch-field/SwitchField.js +2 -2
  270. package/dist/patterns/switch-field/SwitchField.js.map +1 -1
  271. package/dist/patterns/tile-grid/TileGrid.d.ts.map +1 -1
  272. package/dist/patterns/tile-grid/TileGrid.js +1 -1
  273. package/dist/patterns/tile-grid/TileGrid.js.map +1 -1
  274. package/dist/patterns/timeline/Timeline.d.ts.map +1 -1
  275. package/dist/patterns/timeline/Timeline.js +1 -1
  276. package/dist/patterns/timeline/Timeline.js.map +1 -1
  277. package/dist/patterns/tree-view/TreeItem.d.ts.map +1 -1
  278. package/dist/patterns/tree-view/TreeItem.js +3 -3
  279. package/dist/patterns/tree-view/TreeItem.js.map +1 -1
  280. package/dist/patterns/tree-view/TreeView.d.ts.map +1 -1
  281. package/dist/patterns/tree-view/TreeView.js +4 -2
  282. package/dist/patterns/tree-view/TreeView.js.map +1 -1
  283. package/dist/patterns/zora-drawer-content/ZoraDrawerContent.d.ts.map +1 -1
  284. package/dist/patterns/zora-drawer-content/ZoraDrawerContent.js +2 -2
  285. package/dist/patterns/zora-drawer-content/ZoraDrawerContent.js.map +1 -1
  286. package/dist/patterns/zora-tab-bar/ZoraTabBar.d.ts.map +1 -1
  287. package/dist/patterns/zora-tab-bar/ZoraTabBar.js +5 -3
  288. package/dist/patterns/zora-tab-bar/ZoraTabBar.js.map +1 -1
  289. package/dist/registry.d.ts +1 -1
  290. package/dist/registry.d.ts.map +1 -1
  291. package/dist/registry.js +2 -1
  292. package/dist/registry.js.map +1 -1
  293. package/dist/theme/ZoraBaseProps.d.ts +6 -0
  294. package/dist/theme/ZoraBaseProps.d.ts.map +1 -1
  295. package/dist/theme/ZoraBaseProps.js.map +1 -1
  296. package/package.json +2 -2
  297. package/src/components/app-bar/AppBar.tsx +3 -0
  298. package/src/components/avatar/Avatar.tsx +1 -0
  299. package/src/components/avatar-group/AvatarGroup.tsx +1 -0
  300. package/src/components/badge/Badge.tsx +1 -0
  301. package/src/components/breadcrumbs/Breadcrumbs.tsx +2 -0
  302. package/src/components/button/Button.tsx +8 -1
  303. package/src/components/button-group/ButtonGroup.tsx +1 -0
  304. package/src/components/card/Card.tsx +3 -1
  305. package/src/components/checkbox/Checkbox.tsx +7 -2
  306. package/src/components/checkbox/CheckboxGroup.tsx +8 -0
  307. package/src/components/chip/Chip.tsx +8 -1
  308. package/src/components/chip-group/ChipGroup.tsx +5 -0
  309. package/src/components/data-table/DataTable.tsx +25 -8
  310. package/src/components/date-picker/DatePicker.tsx +26 -3
  311. package/src/components/drawer/Drawer.tsx +2 -1
  312. package/src/components/form/Form.tsx +5 -0
  313. package/src/components/form/FormActions.tsx +8 -1
  314. package/src/components/form/FormError.tsx +7 -1
  315. package/src/components/form/FormField.tsx +3 -0
  316. package/src/components/gradient/Gradient.tsx +1 -0
  317. package/src/components/heading/Heading.tsx +3 -2
  318. package/src/components/icon/Icon.tsx +6 -1
  319. package/src/components/icon-button/IconButton.tsx +2 -0
  320. package/src/components/image/Image.tsx +6 -1
  321. package/src/components/input/Input.tsx +3 -0
  322. package/src/components/media-card/MediaCard.tsx +2 -0
  323. package/src/components/metric-card/MetricCard.tsx +2 -0
  324. package/src/components/modal/Modal.tsx +2 -1
  325. package/src/components/navigation-item/NavigationItem.tsx +2 -0
  326. package/src/components/navigation-list/NavigationList.tsx +3 -0
  327. package/src/components/pagination/Pagination.tsx +8 -1
  328. package/src/components/progress/Progress.tsx +1 -0
  329. package/src/components/radio/Radio.tsx +2 -2
  330. package/src/components/radio/RadioGroup.tsx +8 -0
  331. package/src/components/rating/Rating.tsx +1 -0
  332. package/src/components/search-bar/SearchBar.tsx +7 -1
  333. package/src/components/select/Select.tsx +30 -21
  334. package/src/components/tabs/Tabs.tsx +17 -3
  335. package/src/components/text/Text.tsx +1 -0
  336. package/src/components/textarea/Textarea.tsx +2 -0
  337. package/src/components/time-picker/TimePicker.tsx +19 -2
  338. package/src/components/toolbar/Toolbar.tsx +1 -0
  339. package/src/foundation/Box.tsx +6 -1
  340. package/src/foundation/Center.tsx +6 -1
  341. package/src/foundation/Container.tsx +6 -1
  342. package/src/foundation/Divider.tsx +6 -1
  343. package/src/foundation/Grid.tsx +6 -1
  344. package/src/foundation/Inline.tsx +6 -1
  345. package/src/foundation/Show.tsx +6 -1
  346. package/src/foundation/Spacer.tsx +6 -1
  347. package/src/foundation/Stack.tsx +6 -1
  348. package/src/foundation/Surface.tsx +6 -1
  349. package/src/interactionPolicy.test.ts +226 -0
  350. package/src/layout/app-shell/AppShell.tsx +1 -0
  351. package/src/layout/screen/Screen.tsx +1 -0
  352. package/src/layout/screen-section/ScreenSection.tsx +1 -0
  353. package/src/layout/settings-layout/SettingsLayout.tsx +1 -0
  354. package/src/layout/sidebar-layout/SidebarLayout.tsx +1 -0
  355. package/src/layout/topbar-layout/TopbarLayout.tsx +1 -0
  356. package/src/patterns/auth/ForgotPasswordForm.tsx +3 -0
  357. package/src/patterns/auth/OAuthProviderButton.tsx +2 -0
  358. package/src/patterns/auth/OAuthProviderList.tsx +2 -0
  359. package/src/patterns/auth/OtpForm.tsx +3 -0
  360. package/src/patterns/auth/SignInForm.tsx +4 -0
  361. package/src/patterns/auth/SignUpForm.tsx +3 -0
  362. package/src/patterns/chat-list-item/ChatListItem.tsx +2 -0
  363. package/src/patterns/collection-editor/CollectionEditor.tsx +12 -1
  364. package/src/patterns/confirm-dialog/ConfirmDialog.tsx +15 -2
  365. package/src/patterns/disclosure-section/DisclosureSection.tsx +4 -1
  366. package/src/patterns/empty-state/EmptyState.tsx +4 -0
  367. package/src/patterns/filter-bar/FilterBar.tsx +1 -0
  368. package/src/patterns/hero/Hero.tsx +14 -4
  369. package/src/patterns/image-preview/ImagePreview.tsx +1 -0
  370. package/src/patterns/image-upload-field/ImageUploadField.tsx +30 -9
  371. package/src/patterns/inspector-field/InspectorField.tsx +1 -0
  372. package/src/patterns/message-bubble/MessageBubble.tsx +2 -0
  373. package/src/patterns/notice/Notice.tsx +1 -0
  374. package/src/patterns/post-card/PostCard.tsx +2 -0
  375. package/src/patterns/product-card/ProductCard.tsx +19 -3
  376. package/src/patterns/product-card/types.ts +3 -1
  377. package/src/patterns/responsive-panel/ResponsivePanel.tsx +15 -2
  378. package/src/patterns/scanner/BarcodeScannerView.tsx +3 -0
  379. package/src/patterns/scanner/CameraPermissionView.tsx +4 -0
  380. package/src/patterns/scanner/ScanOverlay.tsx +1 -0
  381. package/src/patterns/section-header/SectionHeader.tsx +1 -0
  382. package/src/patterns/selection/SelectableItem.tsx +16 -4
  383. package/src/patterns/selection/SelectionProvider.tsx +3 -1
  384. package/src/patterns/selection/types.ts +3 -0
  385. package/src/patterns/settings-row/SettingsRow.tsx +4 -2
  386. package/src/patterns/switch-field/SwitchField.tsx +9 -1
  387. package/src/patterns/tile-grid/TileGrid.tsx +1 -0
  388. package/src/patterns/timeline/Timeline.tsx +1 -0
  389. package/src/patterns/tree-view/TreeItem.tsx +3 -0
  390. package/src/patterns/tree-view/TreeView.tsx +3 -0
  391. package/src/patterns/zora-drawer-content/ZoraDrawerContent.tsx +2 -0
  392. package/src/patterns/zora-tab-bar/ZoraTabBar.tsx +11 -2
  393. package/src/registry.test.ts +47 -14
  394. package/src/registry.ts +29 -3
  395. package/src/theme/ZoraBaseProps.ts +8 -0
@@ -42,7 +42,8 @@ function createPaginationItems({ page, pageCount, siblingCount, boundaryCount, c
42
42
  });
43
43
  return items;
44
44
  }
45
- function PaginationInner({ themeId: _themeId, mode: _mode, page, pageCount, onPageChange, disabled = false, siblingCount = 1, boundaryCount = 1, showFirstLast = false, previousLabel = 'Previous', nextLabel = 'Next', firstLabel = 'First', lastLabel = 'Last', compact = false, testID, }) {
45
+ function PaginationInner({ themeId: _themeId, mode: _mode, page, pageCount, onPageChange, disabled = false, siblingCount = 1, boundaryCount = 1, showFirstLast = false, previousLabel = 'Previous', nextLabel = 'Next', firstLabel = 'First', lastLabel = 'Last', compact = false, testID, interactionPolicy, }) {
46
+ const passive = interactionPolicy === 'passive';
46
47
  const normalizedPageCount = Math.max(0, Math.trunc(Number.isFinite(pageCount) ? pageCount : 0));
47
48
  const currentPage = clampInteger(page, 1, Math.max(normalizedPageCount, 1));
48
49
  const safeSiblingCount = normalizeCount(siblingCount, 1);
@@ -59,31 +60,31 @@ function PaginationInner({ themeId: _themeId, mode: _mode, page, pageCount, onPa
59
60
  const navigationDisabled = disabled || normalizedPageCount <= 1;
60
61
  const changePage = (nextPage) => {
61
62
  const clampedPage = clampInteger(nextPage, 1, Math.max(normalizedPageCount, 1));
62
- if (disabled || clampedPage === currentPage) {
63
+ if (passive || disabled || clampedPage === currentPage) {
63
64
  return;
64
65
  }
65
66
  onPageChange?.(clampedPage);
66
67
  };
67
68
  return (<Stack align="center" direction="row" gap="xs" testID={testID}>
68
- {showFirstLast ? (<Button disabled={navigationDisabled || currentPage === 1} onPress={() => changePage(1)} size="s" testID={testID ? `${testID}-first` : undefined} variant="ghost">
69
+ {showFirstLast ? (<Button disabled={navigationDisabled || currentPage === 1} interactionPolicy={interactionPolicy} onPress={() => changePage(1)} size="s" testID={testID ? `${testID}-first` : undefined} variant="ghost">
69
70
  {firstLabel}
70
71
  </Button>) : null}
71
72
 
72
- <Button disabled={navigationDisabled || !canGoPrevious} onPress={() => changePage(currentPage - 1)} size="s" testID={testID ? `${testID}-previous` : undefined} variant="ghost">
73
+ <Button disabled={navigationDisabled || !canGoPrevious} interactionPolicy={interactionPolicy} onPress={() => changePage(currentPage - 1)} size="s" testID={testID ? `${testID}-previous` : undefined} variant="ghost">
73
74
  {previousLabel}
74
75
  </Button>
75
76
 
76
77
  {items.map((item, index) => item === 'ellipsis' ? (<Text key={`ellipsis-${index}`} emphasis="muted" variant="bodySmall">
77
78
 
78
- </Text>) : (<Button color={item === currentPage ? 'primary' : 'neutral'} disabled={disabled} key={item} onPress={() => changePage(item)} size="s" testID={testID ? `${testID}-page-${item}` : undefined} variant={item === currentPage ? 'solid' : 'ghost'}>
79
+ </Text>) : (<Button color={item === currentPage ? 'primary' : 'neutral'} disabled={disabled} interactionPolicy={interactionPolicy} key={item} onPress={() => changePage(item)} size="s" testID={testID ? `${testID}-page-${item}` : undefined} variant={item === currentPage ? 'solid' : 'ghost'}>
79
80
  {item}
80
81
  </Button>))}
81
82
 
82
- <Button disabled={navigationDisabled || !canGoNext} onPress={() => changePage(currentPage + 1)} size="s" testID={testID ? `${testID}-next` : undefined} variant="ghost">
83
+ <Button disabled={navigationDisabled || !canGoNext} interactionPolicy={interactionPolicy} onPress={() => changePage(currentPage + 1)} size="s" testID={testID ? `${testID}-next` : undefined} variant="ghost">
83
84
  {nextLabel}
84
85
  </Button>
85
86
 
86
- {showFirstLast ? (<Button disabled={navigationDisabled || currentPage === normalizedPageCount} onPress={() => changePage(normalizedPageCount)} size="s" testID={testID ? `${testID}-last` : undefined} variant="ghost">
87
+ {showFirstLast ? (<Button disabled={navigationDisabled || currentPage === normalizedPageCount} interactionPolicy={interactionPolicy} onPress={() => changePage(normalizedPageCount)} size="s" testID={testID ? `${testID}-last` : undefined} variant="ghost">
87
88
  {lastLabel}
88
89
  </Button>) : null}
89
90
  </Stack>);
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../src/components/pagination/Pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Stack } from '../../foundation';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Button } from '../button';\nimport { Text } from '../text';\nimport type { PaginationProps } from './types';\n\ntype PaginationItem = number | 'ellipsis';\n\nfunction clampInteger(value: number, min: number, max: number): number {\n if (!Number.isFinite(value)) {\n return min;\n }\n\n return Math.min(Math.max(Math.trunc(value), min), max);\n}\n\nfunction createRange(start: number, end: number): number[] {\n if (end < start) {\n return [];\n }\n\n return Array.from({ length: end - start + 1 }, (_, index) => start + index);\n}\n\nfunction normalizeCount(value: number | undefined, fallback: number): number {\n if (value === undefined || !Number.isFinite(value)) {\n return fallback;\n }\n\n return Math.max(0, Math.trunc(value));\n}\n\nfunction createPaginationItems({\n page,\n pageCount,\n siblingCount,\n boundaryCount,\n compact,\n}: {\n page: number;\n pageCount: number;\n siblingCount: number;\n boundaryCount: number;\n compact: boolean;\n}): readonly PaginationItem[] {\n if (pageCount <= 0) {\n return [];\n }\n\n if (compact) {\n return [page];\n }\n\n const boundaries = createRange(1, Math.min(boundaryCount, pageCount));\n const trailingBoundaries = createRange(Math.max(pageCount - boundaryCount + 1, 1), pageCount);\n const siblings = createRange(\n Math.max(page - siblingCount, 1),\n Math.min(page + siblingCount, pageCount),\n );\n const pages = [...new Set([...boundaries, ...siblings, ...trailingBoundaries])].sort(\n (left, right) => left - right,\n );\n const items: PaginationItem[] = [];\n\n pages.forEach((nextPage, index) => {\n const previousPage = pages[index - 1];\n if (previousPage !== undefined && nextPage - previousPage > 1) {\n items.push('ellipsis');\n }\n\n items.push(nextPage);\n });\n\n return items;\n}\n\nfunction PaginationInner({\n themeId: _themeId,\n mode: _mode,\n page,\n pageCount,\n onPageChange,\n disabled = false,\n siblingCount = 1,\n boundaryCount = 1,\n showFirstLast = false,\n previousLabel = 'Previous',\n nextLabel = 'Next',\n firstLabel = 'First',\n lastLabel = 'Last',\n compact = false,\n testID,\n}: PaginationProps) {\n const normalizedPageCount = Math.max(0, Math.trunc(Number.isFinite(pageCount) ? pageCount : 0));\n const currentPage = clampInteger(page, 1, Math.max(normalizedPageCount, 1));\n const safeSiblingCount = normalizeCount(siblingCount, 1);\n const safeBoundaryCount = normalizeCount(boundaryCount, 1);\n const items = createPaginationItems({\n boundaryCount: safeBoundaryCount,\n compact,\n page: currentPage,\n pageCount: normalizedPageCount,\n siblingCount: safeSiblingCount,\n });\n const canGoPrevious = currentPage > 1;\n const canGoNext = currentPage < normalizedPageCount;\n const navigationDisabled = disabled || normalizedPageCount <= 1;\n\n const changePage = (nextPage: number) => {\n const clampedPage = clampInteger(nextPage, 1, Math.max(normalizedPageCount, 1));\n if (disabled || clampedPage === currentPage) {\n return;\n }\n\n onPageChange?.(clampedPage);\n };\n\n return (\n <Stack align=\"center\" direction=\"row\" gap=\"xs\" testID={testID}>\n {showFirstLast ? (\n <Button\n disabled={navigationDisabled || currentPage === 1}\n onPress={() => changePage(1)}\n size=\"s\"\n testID={testID ? `${testID}-first` : undefined}\n variant=\"ghost\"\n >\n {firstLabel}\n </Button>\n ) : null}\n\n <Button\n disabled={navigationDisabled || !canGoPrevious}\n onPress={() => changePage(currentPage - 1)}\n size=\"s\"\n testID={testID ? `${testID}-previous` : undefined}\n variant=\"ghost\"\n >\n {previousLabel}\n </Button>\n\n {items.map((item, index) =>\n item === 'ellipsis' ? (\n <Text key={`ellipsis-${index}`} emphasis=\"muted\" variant=\"bodySmall\">\n …\n </Text>\n ) : (\n <Button\n color={item === currentPage ? 'primary' : 'neutral'}\n disabled={disabled}\n key={item}\n onPress={() => changePage(item)}\n size=\"s\"\n testID={testID ? `${testID}-page-${item}` : undefined}\n variant={item === currentPage ? 'solid' : 'ghost'}\n >\n {item}\n </Button>\n ),\n )}\n\n <Button\n disabled={navigationDisabled || !canGoNext}\n onPress={() => changePage(currentPage + 1)}\n size=\"s\"\n testID={testID ? `${testID}-next` : undefined}\n variant=\"ghost\"\n >\n {nextLabel}\n </Button>\n\n {showFirstLast ? (\n <Button\n disabled={navigationDisabled || currentPage === normalizedPageCount}\n onPress={() => changePage(normalizedPageCount)}\n size=\"s\"\n testID={testID ? `${testID}-last` : undefined}\n variant=\"ghost\"\n >\n {lastLabel}\n </Button>\n ) : null}\n </Stack>\n );\n}\n\n/***\n * Pagination control for navigating between pages of results.\n */\nexport const Pagination = withZoraThemeScope(PaginationInner);\n"]}
1
+ {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../../../src/components/pagination/Pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Stack } from '../../foundation';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Button } from '../button';\nimport { Text } from '../text';\nimport type { PaginationProps } from './types';\n\ntype PaginationItem = number | 'ellipsis';\n\nfunction clampInteger(value: number, min: number, max: number): number {\n if (!Number.isFinite(value)) {\n return min;\n }\n\n return Math.min(Math.max(Math.trunc(value), min), max);\n}\n\nfunction createRange(start: number, end: number): number[] {\n if (end < start) {\n return [];\n }\n\n return Array.from({ length: end - start + 1 }, (_, index) => start + index);\n}\n\nfunction normalizeCount(value: number | undefined, fallback: number): number {\n if (value === undefined || !Number.isFinite(value)) {\n return fallback;\n }\n\n return Math.max(0, Math.trunc(value));\n}\n\nfunction createPaginationItems({\n page,\n pageCount,\n siblingCount,\n boundaryCount,\n compact,\n}: {\n page: number;\n pageCount: number;\n siblingCount: number;\n boundaryCount: number;\n compact: boolean;\n}): readonly PaginationItem[] {\n if (pageCount <= 0) {\n return [];\n }\n\n if (compact) {\n return [page];\n }\n\n const boundaries = createRange(1, Math.min(boundaryCount, pageCount));\n const trailingBoundaries = createRange(Math.max(pageCount - boundaryCount + 1, 1), pageCount);\n const siblings = createRange(\n Math.max(page - siblingCount, 1),\n Math.min(page + siblingCount, pageCount),\n );\n const pages = [...new Set([...boundaries, ...siblings, ...trailingBoundaries])].sort(\n (left, right) => left - right,\n );\n const items: PaginationItem[] = [];\n\n pages.forEach((nextPage, index) => {\n const previousPage = pages[index - 1];\n if (previousPage !== undefined && nextPage - previousPage > 1) {\n items.push('ellipsis');\n }\n\n items.push(nextPage);\n });\n\n return items;\n}\n\nfunction PaginationInner({\n themeId: _themeId,\n mode: _mode,\n page,\n pageCount,\n onPageChange,\n disabled = false,\n siblingCount = 1,\n boundaryCount = 1,\n showFirstLast = false,\n previousLabel = 'Previous',\n nextLabel = 'Next',\n firstLabel = 'First',\n lastLabel = 'Last',\n compact = false,\n testID,\n interactionPolicy,\n}: PaginationProps) {\n const passive = interactionPolicy === 'passive';\n const normalizedPageCount = Math.max(0, Math.trunc(Number.isFinite(pageCount) ? pageCount : 0));\n const currentPage = clampInteger(page, 1, Math.max(normalizedPageCount, 1));\n const safeSiblingCount = normalizeCount(siblingCount, 1);\n const safeBoundaryCount = normalizeCount(boundaryCount, 1);\n const items = createPaginationItems({\n boundaryCount: safeBoundaryCount,\n compact,\n page: currentPage,\n pageCount: normalizedPageCount,\n siblingCount: safeSiblingCount,\n });\n const canGoPrevious = currentPage > 1;\n const canGoNext = currentPage < normalizedPageCount;\n const navigationDisabled = disabled || normalizedPageCount <= 1;\n\n const changePage = (nextPage: number) => {\n const clampedPage = clampInteger(nextPage, 1, Math.max(normalizedPageCount, 1));\n if (passive || disabled || clampedPage === currentPage) {\n return;\n }\n\n onPageChange?.(clampedPage);\n };\n\n return (\n <Stack align=\"center\" direction=\"row\" gap=\"xs\" testID={testID}>\n {showFirstLast ? (\n <Button\n disabled={navigationDisabled || currentPage === 1}\n interactionPolicy={interactionPolicy}\n onPress={() => changePage(1)}\n size=\"s\"\n testID={testID ? `${testID}-first` : undefined}\n variant=\"ghost\"\n >\n {firstLabel}\n </Button>\n ) : null}\n\n <Button\n disabled={navigationDisabled || !canGoPrevious}\n interactionPolicy={interactionPolicy}\n onPress={() => changePage(currentPage - 1)}\n size=\"s\"\n testID={testID ? `${testID}-previous` : undefined}\n variant=\"ghost\"\n >\n {previousLabel}\n </Button>\n\n {items.map((item, index) =>\n item === 'ellipsis' ? (\n <Text key={`ellipsis-${index}`} emphasis=\"muted\" variant=\"bodySmall\">\n …\n </Text>\n ) : (\n <Button\n color={item === currentPage ? 'primary' : 'neutral'}\n disabled={disabled}\n interactionPolicy={interactionPolicy}\n key={item}\n onPress={() => changePage(item)}\n size=\"s\"\n testID={testID ? `${testID}-page-${item}` : undefined}\n variant={item === currentPage ? 'solid' : 'ghost'}\n >\n {item}\n </Button>\n ),\n )}\n\n <Button\n disabled={navigationDisabled || !canGoNext}\n interactionPolicy={interactionPolicy}\n onPress={() => changePage(currentPage + 1)}\n size=\"s\"\n testID={testID ? `${testID}-next` : undefined}\n variant=\"ghost\"\n >\n {nextLabel}\n </Button>\n\n {showFirstLast ? (\n <Button\n disabled={navigationDisabled || currentPage === normalizedPageCount}\n interactionPolicy={interactionPolicy}\n onPress={() => changePage(normalizedPageCount)}\n size=\"s\"\n testID={testID ? `${testID}-last` : undefined}\n variant=\"ghost\"\n >\n {lastLabel}\n </Button>\n ) : null}\n </Stack>\n );\n}\n\n/***\n * Pagination control for navigating between pages of results.\n */\nexport const Pagination = withZoraThemeScope(PaginationInner);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../../src/components/progress/Progress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,SAAS,CAAC;AA2ClE;;GAEG;AACH,eAAO,MAAM,QAAQ,qDAAoC,CAAC"}
1
+ {"version":3,"file":"Progress.d.ts","sourceRoot":"","sources":["../../../src/components/progress/Progress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,SAAS,CAAC;AA4ClE;;GAEG;AACH,eAAO,MAAM,QAAQ,qDAAoC,CAAC"}
@@ -15,7 +15,7 @@ function resolveProgressHeight(size) {
15
15
  return 8;
16
16
  }
17
17
  }
18
- function ProgressInner({ themeId: _themeId, mode: _mode, testID, value, max = 100, color = 'primary', size = 'm', }) {
18
+ function ProgressInner({ themeId: _themeId, mode: _mode, interactionPolicy: _interactionPolicy, testID, value, max = 100, color = 'primary', size = 'm', }) {
19
19
  const { theme } = useZoraTheme();
20
20
  const fraction = resolveProgressFraction({ value, max });
21
21
  const height = resolveProgressHeight(size);
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.js","sourceRoot":"","sources":["../../../src/components/progress/Progress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAsB,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAElE,SAAS,qBAAqB,CAAC,IAAwC;IACrE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,CAAC,CAAC;QACX,KAAK,GAAG;YACN,OAAO,CAAC,CAAC;QACX,KAAK,GAAG,CAAC;QACT;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,MAAM,EACN,KAAK,EACL,GAAG,GAAG,GAAG,EACT,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,GAAG,GACI;IACd,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE/C,OAAO,CACL,CAAC,GAAG,CACF,iBAAiB,CAAC,aAAa,CAC/B,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CACpC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAC7C,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,MAAM,CAAC,MAAM,CACb,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAEtC;MAAA,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC,EAC7E;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { Box } from '../../foundation';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { resolveProgressFraction } from './resolveProgressFraction';\nimport { type ProgressProps, resolveProgressRole } from './types';\n\nfunction resolveProgressHeight(size: NonNullable<ProgressProps['size']>): number {\n switch (size) {\n case 's':\n return 4;\n case 'm':\n return 6;\n case 'l':\n default:\n return 8;\n }\n}\n\nfunction ProgressInner({\n themeId: _themeId,\n mode: _mode,\n testID,\n value,\n max = 100,\n color = 'primary',\n size = 'm',\n}: ProgressProps) {\n const { theme } = useZoraTheme();\n const fraction = resolveProgressFraction({ value, max });\n const height = resolveProgressHeight(size);\n const role = resolveProgressRole(theme, color);\n\n return (\n <Box\n accessibilityRole=\"progressbar\"\n bg={theme.semantics.neutral.surface}\n borderColor={theme.semantics.neutral.divider}\n borderWidth={1}\n radius=\"full\"\n testID={testID}\n style={{ height, overflow: 'hidden' }}\n >\n <Box bg={role.base} style={{ height: '100%', width: `${fraction * 100}%` }} />\n </Box>\n );\n}\n\n/***\n * Progress indicator for determinate and indeterminate loading states.\n */\nexport const Progress = withZoraThemeScope(ProgressInner);\n"]}
1
+ {"version":3,"file":"Progress.js","sourceRoot":"","sources":["../../../src/components/progress/Progress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAsB,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAElE,SAAS,qBAAqB,CAAC,IAAwC;IACrE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,CAAC,CAAC;QACX,KAAK,GAAG;YACN,OAAO,CAAC,CAAC;QACX,KAAK,GAAG,CAAC;QACT;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,MAAM,EACN,KAAK,EACL,GAAG,GAAG,GAAG,EACT,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,GAAG,GACI;IACd,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE/C,OAAO,CACL,CAAC,GAAG,CACF,iBAAiB,CAAC,aAAa,CAC/B,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CACpC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAC7C,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,MAAM,CAAC,MAAM,CACb,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAEtC;MAAA,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC,EAC7E;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { Box } from '../../foundation';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { resolveProgressFraction } from './resolveProgressFraction';\nimport { type ProgressProps, resolveProgressRole } from './types';\n\nfunction resolveProgressHeight(size: NonNullable<ProgressProps['size']>): number {\n switch (size) {\n case 's':\n return 4;\n case 'm':\n return 6;\n case 'l':\n default:\n return 8;\n }\n}\n\nfunction ProgressInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy: _interactionPolicy,\n testID,\n value,\n max = 100,\n color = 'primary',\n size = 'm',\n}: ProgressProps) {\n const { theme } = useZoraTheme();\n const fraction = resolveProgressFraction({ value, max });\n const height = resolveProgressHeight(size);\n const role = resolveProgressRole(theme, color);\n\n return (\n <Box\n accessibilityRole=\"progressbar\"\n bg={theme.semantics.neutral.surface}\n borderColor={theme.semantics.neutral.divider}\n borderWidth={1}\n radius=\"full\"\n testID={testID}\n style={{ height, overflow: 'hidden' }}\n >\n <Box bg={role.base} style={{ height: '100%', width: `${fraction * 100}%` }} />\n </Box>\n );\n}\n\n/***\n * Progress indicator for determinate and indeterminate loading states.\n */\nexport const Progress = withZoraThemeScope(ProgressInner);\n"]}
@@ -1,8 +1,8 @@
1
1
  import { Radio as SurfaceRadio } from '@ankhorage/surface';
2
2
  import React from 'react';
3
3
  import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
4
- function RadioInner({ themeId: _themeId, mode: _mode, ...props }) {
5
- return <SurfaceRadio {...props}/>;
4
+ function RadioInner({ themeId: _themeId, mode: _mode, interactionPolicy, ...props }) {
5
+ return <SurfaceRadio {...props} interactionPolicy={interactionPolicy}/>;
6
6
  }
7
7
  /***
8
8
  * Single-choice selection control used within a radio group.
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","sourceRoot":"","sources":["../../../src/components/radio/Radio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAc;IAC1E,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC","sourcesContent":["import { Radio as SurfaceRadio } from '@ankhorage/surface';\nimport React from 'react';\n\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { RadioProps } from './types';\n\nfunction RadioInner({ themeId: _themeId, mode: _mode, ...props }: RadioProps) {\n return <SurfaceRadio {...props} />;\n}\n\n/***\n * Single-choice selection control used within a radio group.\n */\nexport const Radio = withZoraThemeScope(RadioInner);\n"]}
1
+ {"version":3,"file":"Radio.js","sourceRoot":"","sources":["../../../src/components/radio/Radio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,KAAK,EAAc;IAC7F,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,EAAG,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC","sourcesContent":["import { Radio as SurfaceRadio } from '@ankhorage/surface';\nimport React from 'react';\n\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { RadioProps } from './types';\n\nfunction RadioInner({ themeId: _themeId, mode: _mode, interactionPolicy, ...props }: RadioProps) {\n return <SurfaceRadio {...props} interactionPolicy={interactionPolicy} />;\n}\n\n/***\n * Single-choice selection control used within a radio group.\n */\nexport const Radio = withZoraThemeScope(RadioInner);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../../src/components/radio/RadioGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAC;AAmDjE;;GAEG;AACH,eAAO,MAAM,UAAU,GApDE,MAAM,SAAS,MAAM,8DAoDe,CAAC"}
1
+ {"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../../src/components/radio/RadioGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAC;AAqDjE;;GAEG;AACH,eAAO,MAAM,UAAU,GAtDE,MAAM,SAAS,MAAM,8DAsDe,CAAC"}
@@ -4,14 +4,14 @@ import { View } from 'react-native';
4
4
  import { Stack } from '../../foundation';
5
5
  import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
6
6
  import { Text } from '../text';
7
- function RadioGroupInner({ themeId: _themeId, mode: _mode, value, onValueChange, options, orientation = 'vertical', gap = 's', color = 'primary', size = 'm', invalid = false, readOnly = false, disabled = false, testID, }) {
7
+ function RadioGroupInner({ themeId: _themeId, mode: _mode, value, onValueChange, options, orientation = 'vertical', gap = 's', color = 'primary', size = 'm', invalid = false, readOnly = false, disabled = false, testID, interactionPolicy, }) {
8
8
  const isHorizontal = orientation === 'horizontal';
9
9
  return (<View testID={testID} accessibilityRole="radiogroup" style={{
10
10
  flexDirection: isHorizontal ? 'row' : 'column',
11
11
  flexWrap: isHorizontal ? 'wrap' : 'nowrap',
12
12
  }}>
13
13
  <Stack direction={isHorizontal ? 'row' : 'column'} gap={gap} wrap={isHorizontal ? 'wrap' : 'nowrap'}>
14
- {options.map((option) => (<RadioGroupItem key={option.value} option={option} checked={value === option.value} disabled={disabled || option.disabled === true} invalid={invalid} readOnly={readOnly} size={size} color={color} onSelect={onValueChange}/>))}
14
+ {options.map((option) => (<RadioGroupItem key={option.value} option={option} checked={value === option.value} disabled={disabled || option.disabled === true} invalid={invalid} readOnly={readOnly} size={size} color={color} onSelect={onValueChange} interactionPolicy={interactionPolicy}/>))}
15
15
  </Stack>
16
16
  </View>);
17
17
  }
@@ -19,8 +19,11 @@ function RadioGroupInner({ themeId: _themeId, mode: _mode, value, onValueChange,
19
19
  * Renders a group of radio options for selecting a single value.
20
20
  */
21
21
  export const RadioGroup = withZoraThemeScope(RadioGroupInner);
22
- function RadioGroupItem({ option, checked, disabled, invalid, readOnly, size, color, onSelect, }) {
23
- return (<Radio checked={checked} disabled={disabled} invalid={invalid} readOnly={readOnly} size={size} color={color} testID={option.testID} onCheckedChange={(nextChecked) => {
22
+ function RadioGroupItem({ option, checked, disabled, invalid, readOnly, size, color, onSelect, interactionPolicy, }) {
23
+ const passive = interactionPolicy === 'passive';
24
+ return (<Radio interactionPolicy={interactionPolicy} checked={checked} disabled={disabled} invalid={invalid} readOnly={readOnly} size={size} color={color} testID={option.testID} onCheckedChange={(nextChecked) => {
25
+ if (passive)
26
+ return;
24
27
  if (nextChecked)
25
28
  onSelect(option.value);
26
29
  }}>
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sourceRoot":"","sources":["../../../src/components/radio/RadioGroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Radio } from '@ankhorage/surface';\nimport React from 'react';\nimport { View } from 'react-native';\n\nimport { Stack } from '../../foundation';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Text } from '../text';\nimport type { RadioGroupOption, RadioGroupProps } from './types';\n\nfunction RadioGroupInner<TValue extends string>({\n themeId: _themeId,\n mode: _mode,\n value,\n onValueChange,\n options,\n orientation = 'vertical',\n gap = 's',\n color = 'primary',\n size = 'm',\n invalid = false,\n readOnly = false,\n disabled = false,\n testID,\n}: RadioGroupProps<TValue>) {\n const isHorizontal = orientation === 'horizontal';\n\n return (\n <View\n testID={testID}\n accessibilityRole=\"radiogroup\"\n style={{\n flexDirection: isHorizontal ? 'row' : 'column',\n flexWrap: isHorizontal ? 'wrap' : 'nowrap',\n }}\n >\n <Stack\n direction={isHorizontal ? 'row' : 'column'}\n gap={gap}\n wrap={isHorizontal ? 'wrap' : 'nowrap'}\n >\n {options.map((option) => (\n <RadioGroupItem\n key={option.value}\n option={option}\n checked={value === option.value}\n disabled={disabled || option.disabled === true}\n invalid={invalid}\n readOnly={readOnly}\n size={size}\n color={color}\n onSelect={onValueChange}\n />\n ))}\n </Stack>\n </View>\n );\n}\n\n/***\n * Renders a group of radio options for selecting a single value.\n */\nexport const RadioGroup = withZoraThemeScope(RadioGroupInner);\n\nfunction RadioGroupItem<TValue extends string>({\n option,\n checked,\n disabled,\n invalid,\n readOnly,\n size,\n color,\n onSelect,\n}: {\n option: RadioGroupOption<TValue>;\n checked: boolean;\n disabled: boolean;\n invalid: boolean;\n readOnly: boolean;\n size: NonNullable<RadioGroupProps<TValue>['size']>;\n color: NonNullable<RadioGroupProps<TValue>['color']>;\n onSelect: (value: TValue) => void;\n}) {\n return (\n <Radio\n checked={checked}\n disabled={disabled}\n invalid={invalid}\n readOnly={readOnly}\n size={size}\n color={color}\n testID={option.testID}\n onCheckedChange={(nextChecked) => {\n if (nextChecked) onSelect(option.value);\n }}\n >\n <Stack gap=\"xs\">\n <Text>{option.label}</Text>\n {option.description ? (\n <Text emphasis=\"muted\" variant=\"caption\">\n {option.description}\n </Text>\n ) : null}\n </Stack>\n </Radio>\n );\n}\n"]}
1
+ {"version":3,"file":"RadioGroup.js","sourceRoot":"","sources":["../../../src/components/radio/RadioGroup.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Radio } from '@ankhorage/surface';\nimport React from 'react';\nimport { View } from 'react-native';\n\nimport { Stack } from '../../foundation';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Text } from '../text';\nimport type { RadioGroupOption, RadioGroupProps } from './types';\n\nfunction RadioGroupInner<TValue extends string>({\n themeId: _themeId,\n mode: _mode,\n value,\n onValueChange,\n options,\n orientation = 'vertical',\n gap = 's',\n color = 'primary',\n size = 'm',\n invalid = false,\n readOnly = false,\n disabled = false,\n testID,\n interactionPolicy,\n}: RadioGroupProps<TValue>) {\n const isHorizontal = orientation === 'horizontal';\n\n return (\n <View\n testID={testID}\n accessibilityRole=\"radiogroup\"\n style={{\n flexDirection: isHorizontal ? 'row' : 'column',\n flexWrap: isHorizontal ? 'wrap' : 'nowrap',\n }}\n >\n <Stack\n direction={isHorizontal ? 'row' : 'column'}\n gap={gap}\n wrap={isHorizontal ? 'wrap' : 'nowrap'}\n >\n {options.map((option) => (\n <RadioGroupItem\n key={option.value}\n option={option}\n checked={value === option.value}\n disabled={disabled || option.disabled === true}\n invalid={invalid}\n readOnly={readOnly}\n size={size}\n color={color}\n onSelect={onValueChange}\n interactionPolicy={interactionPolicy}\n />\n ))}\n </Stack>\n </View>\n );\n}\n\n/***\n * Renders a group of radio options for selecting a single value.\n */\nexport const RadioGroup = withZoraThemeScope(RadioGroupInner);\n\nfunction RadioGroupItem<TValue extends string>({\n option,\n checked,\n disabled,\n invalid,\n readOnly,\n size,\n color,\n onSelect,\n interactionPolicy,\n}: {\n option: RadioGroupOption<TValue>;\n checked: boolean;\n disabled: boolean;\n invalid: boolean;\n readOnly: boolean;\n size: NonNullable<RadioGroupProps<TValue>['size']>;\n color: NonNullable<RadioGroupProps<TValue>['color']>;\n onSelect: (value: TValue) => void;\n interactionPolicy: RadioGroupProps<TValue>['interactionPolicy'];\n}) {\n const passive = interactionPolicy === 'passive';\n\n return (\n <Radio\n interactionPolicy={interactionPolicy}\n checked={checked}\n disabled={disabled}\n invalid={invalid}\n readOnly={readOnly}\n size={size}\n color={color}\n testID={option.testID}\n onCheckedChange={(nextChecked) => {\n if (passive) return;\n if (nextChecked) onSelect(option.value);\n }}\n >\n <Stack gap=\"xs\">\n <Text>{option.label}</Text>\n {option.description ? (\n <Text emphasis=\"muted\" variant=\"caption\">\n {option.description}\n </Text>\n ) : null}\n </Stack>\n </Radio>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Rating.d.ts","sourceRoot":"","sources":["../../../src/components/rating/Rating.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,SAAS,CAAC;AA6B9D;;GAEG;AACH,eAAO,MAAM,MAAM,mDAAkC,CAAC"}
1
+ {"version":3,"file":"Rating.d.ts","sourceRoot":"","sources":["../../../src/components/rating/Rating.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,KAAK,WAAW,EAAqB,MAAM,SAAS,CAAC;AA8B9D;;GAEG;AACH,eAAO,MAAM,MAAM,mDAAkC,CAAC"}
@@ -6,7 +6,7 @@ import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
6
6
  import { Icon } from '../icon';
7
7
  import { resolveRatingSegments } from './resolveRatingSegments';
8
8
  import { resolveRatingRole } from './types';
9
- function RatingInner({ themeId: _themeId, mode: _mode, testID, value, max = 5, color = 'warning', size = 'm', }) {
9
+ function RatingInner({ themeId: _themeId, mode: _mode, interactionPolicy: _interactionPolicy, testID, value, max = 5, color = 'warning', size = 'm', }) {
10
10
  const { theme } = useZoraTheme();
11
11
  const role = resolveRatingRole(theme, color);
12
12
  const segments = resolveRatingSegments({ value, max });
@@ -1 +1 @@
1
- {"version":3,"file":"Rating.js","sourceRoot":"","sources":["../../../src/components/rating/Rating.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAoB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE9D,SAAS,WAAW,CAAC,EACnB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,MAAM,EACN,KAAK,EACL,GAAG,GAAG,CAAC,EACP,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,GAAG,GACE;IACZ,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAEvC,OAAO,CACL,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAC5D;MAAA,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,IAAI,GACR,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;YAClF,MAAM,KAAK,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAE9E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAG,CAAC;QACxE,CAAC,CAAC,CACJ;IAAA,EAAE,MAAM,CAAC,CACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { Inline } from '../../foundation';\nimport { resolveIconSize } from '../../internal/recipes';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Icon } from '../icon';\nimport { resolveRatingSegments } from './resolveRatingSegments';\nimport { type RatingProps, resolveRatingRole } from './types';\n\nfunction RatingInner({\n themeId: _themeId,\n mode: _mode,\n testID,\n value,\n max = 5,\n color = 'warning',\n size = 'm',\n}: RatingProps) {\n const { theme } = useZoraTheme();\n const role = resolveRatingRole(theme, color);\n const segments = resolveRatingSegments({ value, max });\n const iconSize = resolveIconSize(size);\n\n return (\n <Inline align=\"center\" gap=\"xxs\" testID={testID} wrap=\"nowrap\">\n {segments.map((segment, index) => {\n const name =\n segment === 'full' ? 'star' : segment === 'half' ? 'star-half' : 'star-outline';\n const color = segment === 'empty' ? theme.semantics.content.muted : role.base;\n\n return <Icon key={index} color={color} name={name} size={iconSize} />;\n })}\n </Inline>\n );\n}\n\n/***\n * Displays a star-based rating value with optional half steps.\n */\nexport const Rating = withZoraThemeScope(RatingInner);\n"]}
1
+ {"version":3,"file":"Rating.js","sourceRoot":"","sources":["../../../src/components/rating/Rating.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAoB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE9D,SAAS,WAAW,CAAC,EACnB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,kBAAkB,EACrC,MAAM,EACN,KAAK,EACL,GAAG,GAAG,CAAC,EACP,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,GAAG,GACE;IACZ,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAEvC,OAAO,CACL,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAC5D;MAAA,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,IAAI,GACR,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;YAClF,MAAM,KAAK,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAE9E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAG,CAAC;QACxE,CAAC,CAAC,CACJ;IAAA,EAAE,MAAM,CAAC,CACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { Inline } from '../../foundation';\nimport { resolveIconSize } from '../../internal/recipes';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Icon } from '../icon';\nimport { resolveRatingSegments } from './resolveRatingSegments';\nimport { type RatingProps, resolveRatingRole } from './types';\n\nfunction RatingInner({\n themeId: _themeId,\n mode: _mode,\n interactionPolicy: _interactionPolicy,\n testID,\n value,\n max = 5,\n color = 'warning',\n size = 'm',\n}: RatingProps) {\n const { theme } = useZoraTheme();\n const role = resolveRatingRole(theme, color);\n const segments = resolveRatingSegments({ value, max });\n const iconSize = resolveIconSize(size);\n\n return (\n <Inline align=\"center\" gap=\"xxs\" testID={testID} wrap=\"nowrap\">\n {segments.map((segment, index) => {\n const name =\n segment === 'full' ? 'star' : segment === 'half' ? 'star-half' : 'star-outline';\n const color = segment === 'empty' ? theme.semantics.content.muted : role.base;\n\n return <Icon key={index} color={color} name={name} size={iconSize} />;\n })}\n </Inline>\n );\n}\n\n/***\n * Displays a star-based rating value with optional half steps.\n */\nexport const Rating = withZoraThemeScope(RatingInner);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBar.d.ts","sourceRoot":"","sources":["../../../src/components/search-bar/SearchBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA6C9C;;GAEG;AACH,eAAO,MAAM,SAAS,sDAAqC,CAAC"}
1
+ {"version":3,"file":"SearchBar.d.ts","sourceRoot":"","sources":["../../../src/components/search-bar/SearchBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmD9C;;GAEG;AACH,eAAO,MAAM,SAAS,sDAAqC,CAAC"}
@@ -1,18 +1,21 @@
1
1
  import React from 'react';
2
2
  import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
3
3
  import { Input } from '../input';
4
- function SearchBarInner({ themeId: _themeId, mode: _mode, testID, value, onValueChange, placeholder = 'Search', onSubmit, onClear, clearable = true, size = 'l', disabled, readOnly, }) {
4
+ function SearchBarInner({ themeId: _themeId, mode: _mode, testID, value, onValueChange, placeholder = 'Search', onSubmit, onClear, clearable = true, size = 'l', disabled, readOnly, interactionPolicy, }) {
5
+ const passive = interactionPolicy === 'passive';
5
6
  const trailingAction = clearable && value.length > 0
6
7
  ? {
7
8
  icon: { name: 'close-circle' },
8
9
  label: 'Clear search',
9
10
  onPress: () => {
11
+ if (passive)
12
+ return;
10
13
  onValueChange('');
11
14
  onClear?.();
12
15
  },
13
16
  }
14
17
  : undefined;
15
- return (<Input disabled={disabled} leadingIcon={{ name: 'search-outline' }} onChangeText={onValueChange} onSubmitEditing={onSubmit ? () => onSubmit(value) : undefined} placeholder={placeholder} readOnly={readOnly} returnKeyType="search" size={size} testID={testID} trailingAction={trailingAction} value={value}/>);
18
+ return (<Input disabled={disabled} interactionPolicy={interactionPolicy} leadingIcon={{ name: 'search-outline' }} onChangeText={onValueChange} onSubmitEditing={onSubmit ? (passive ? undefined : () => onSubmit(value)) : undefined} placeholder={placeholder} readOnly={readOnly} returnKeyType="search" size={size} testID={testID} trailingAction={trailingAction} value={value}/>);
16
19
  }
17
20
  /***
18
21
  * Search input with leading icon and optional trailing action.
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../../src/components/search-bar/SearchBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,KAAK,EAA4B,MAAM,UAAU,CAAC;AAG3D,SAAS,cAAc,CAAC,EACtB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,MAAM,EACN,KAAK,EACL,aAAa,EACb,WAAW,GAAG,QAAQ,EACtB,QAAQ,EACR,OAAO,EACP,SAAS,GAAG,IAAI,EAChB,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,QAAQ,GACO;IACf,MAAM,cAAc,GAClB,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAC3B,CAAC,CAAC;YACE,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;YAC9B,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,GAAG,EAAE;gBACZ,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,EAAE,EAAE,CAAC;YACd,CAAC;SACF;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,CACL,CAAC,KAAK,CACJ,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CACxC,YAAY,CAAC,CAAC,aAAa,CAAC,CAC5B,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAC9D,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,aAAa,CAAC,QAAQ,CACtB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,KAAK,CAAC,CAAC,KAAK,CAAC,EACb,CACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Input, type InputTrailingAction } from '../input';\nimport type { SearchBarProps } from './types';\n\nfunction SearchBarInner({\n themeId: _themeId,\n mode: _mode,\n testID,\n value,\n onValueChange,\n placeholder = 'Search',\n onSubmit,\n onClear,\n clearable = true,\n size = 'l',\n disabled,\n readOnly,\n}: SearchBarProps) {\n const trailingAction: InputTrailingAction | undefined =\n clearable && value.length > 0\n ? {\n icon: { name: 'close-circle' },\n label: 'Clear search',\n onPress: () => {\n onValueChange('');\n onClear?.();\n },\n }\n : undefined;\n\n return (\n <Input\n disabled={disabled}\n leadingIcon={{ name: 'search-outline' }}\n onChangeText={onValueChange}\n onSubmitEditing={onSubmit ? () => onSubmit(value) : undefined}\n placeholder={placeholder}\n readOnly={readOnly}\n returnKeyType=\"search\"\n size={size}\n testID={testID}\n trailingAction={trailingAction}\n value={value}\n />\n );\n}\n\n/***\n * Search input with leading icon and optional trailing action.\n */\nexport const SearchBar = withZoraThemeScope(SearchBarInner);\n"]}
1
+ {"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../../src/components/search-bar/SearchBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,KAAK,EAA4B,MAAM,UAAU,CAAC;AAG3D,SAAS,cAAc,CAAC,EACtB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,MAAM,EACN,KAAK,EACL,aAAa,EACb,WAAW,GAAG,QAAQ,EACtB,QAAQ,EACR,OAAO,EACP,SAAS,GAAG,IAAI,EAChB,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,QAAQ,EACR,iBAAiB,GACF;IACf,MAAM,OAAO,GAAG,iBAAiB,KAAK,SAAS,CAAC;IAEhD,MAAM,cAAc,GAClB,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAC3B,CAAC,CAAC;YACE,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;YAC9B,KAAK,EAAE,cAAc;YACrB,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,OAAO;oBAAE,OAAO;gBAEpB,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,OAAO,EAAE,EAAE,CAAC;YACd,CAAC;SACF;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,CACL,CAAC,KAAK,CACJ,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CACxC,YAAY,CAAC,CAAC,aAAa,CAAC,CAC5B,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CACtF,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,aAAa,CAAC,QAAQ,CACtB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,MAAM,CAAC,CAAC,MAAM,CAAC,CACf,cAAc,CAAC,CAAC,cAAc,CAAC,CAC/B,KAAK,CAAC,CAAC,KAAK,CAAC,EACb,CACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Input, type InputTrailingAction } from '../input';\nimport type { SearchBarProps } from './types';\n\nfunction SearchBarInner({\n themeId: _themeId,\n mode: _mode,\n testID,\n value,\n onValueChange,\n placeholder = 'Search',\n onSubmit,\n onClear,\n clearable = true,\n size = 'l',\n disabled,\n readOnly,\n interactionPolicy,\n}: SearchBarProps) {\n const passive = interactionPolicy === 'passive';\n\n const trailingAction: InputTrailingAction | undefined =\n clearable && value.length > 0\n ? {\n icon: { name: 'close-circle' },\n label: 'Clear search',\n onPress: () => {\n if (passive) return;\n\n onValueChange('');\n onClear?.();\n },\n }\n : undefined;\n\n return (\n <Input\n disabled={disabled}\n interactionPolicy={interactionPolicy}\n leadingIcon={{ name: 'search-outline' }}\n onChangeText={onValueChange}\n onSubmitEditing={onSubmit ? (passive ? undefined : () => onSubmit(value)) : undefined}\n placeholder={placeholder}\n readOnly={readOnly}\n returnKeyType=\"search\"\n size={size}\n testID={testID}\n trailingAction={trailingAction}\n value={value}\n />\n );\n}\n\n/***\n * Search input with leading icon and optional trailing action.\n */\nexport const SearchBar = withZoraThemeScope(SearchBarInner);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/select/Select.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAgD3C;;GAEG;AACH,eAAO,MAAM,MAAM,GAjDE,MAAM,SAAS,MAAM,mEAiDW,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/select/Select.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAwD3C;;GAEG;AACH,eAAO,MAAM,MAAM,GAzDE,MAAM,SAAS,MAAM,mEAyDW,CAAC"}
@@ -1,20 +1,28 @@
1
1
  import { Picker } from '@react-native-picker/picker';
2
2
  import React from 'react';
3
+ import { View } from 'react-native';
3
4
  import { Box } from '../../foundation';
4
5
  import { useZoraTheme } from '../../theme/useZoraTheme';
5
6
  import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
6
- function SelectInner({ themeId: _themeId, mode: _mode, value, options, onValueChange, disabled, invalid, testID, }) {
7
+ function SelectInner({ themeId: _themeId, mode: _mode, value, options, onValueChange, disabled, invalid, testID, interactionPolicy, }) {
7
8
  const { theme } = useZoraTheme();
9
+ const passive = interactionPolicy === 'passive';
8
10
  return (<Box bg="surface" borderColor={invalid ? theme.colors.error : theme.colors.border} borderWidth={1} opacity={disabled ? 0.5 : 1} radius="m" testID={testID}>
9
- <Picker enabled={!disabled} onValueChange={(itemValue) => onValueChange(itemValue)} selectedValue={value} style={{
11
+ <View pointerEvents={passive ? 'none' : 'auto'}>
12
+ <Picker enabled={!disabled} onValueChange={(itemValue) => {
13
+ if (!passive) {
14
+ onValueChange(itemValue);
15
+ }
16
+ }} selectedValue={value} style={{
10
17
  height: 44,
11
18
  width: '100%',
12
19
  backgroundColor: 'transparent',
13
20
  color: theme.colors.text,
14
21
  borderWidth: 0,
15
22
  }}>
16
- {options.map((option) => (<Picker.Item key={option.value} enabled={!option.disabled} label={option.label} value={option.value}/>))}
17
- </Picker>
23
+ {options.map((option) => (<Picker.Item key={option.value} enabled={!option.disabled} label={option.label} value={option.value}/>))}
24
+ </Picker>
25
+ </View>
18
26
  </Box>);
19
27
  }
20
28
  /***
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,WAAW,CAAiC,EACnD,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,GACc;IACpB,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IAEjC,OAAO,CACL,CAAC,GAAG,CACF,EAAE,CAAC,SAAS,CACZ,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAChE,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5B,MAAM,CAAC,GAAG,CACV,MAAM,CAAC,CAAC,MAAM,CAAC,CAEf;MAAA,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CACnB,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CACvD,aAAa,CAAC,CAAC,KAAK,CAAC,CACrB,KAAK,CAAC,CAAC;YACL,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,MAAM;YACb,eAAe,EAAE,aAAa;YAC9B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;YACxB,WAAW,EAAE,CAAC;SACf,CAAC,CAEF;QAAA,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,CAAC,MAAM,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAClB,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC1B,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACpB,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACpB,CACH,CAAC,CACJ;MAAA,EAAE,MAAM,CACV;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC","sourcesContent":["import { Picker } from '@react-native-picker/picker';\nimport React from 'react';\n\nimport { Box } from '../../foundation';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { SelectProps } from './types';\n\nfunction SelectInner<TValue extends string = string>({\n themeId: _themeId,\n mode: _mode,\n value,\n options,\n onValueChange,\n disabled,\n invalid,\n testID,\n}: SelectProps<TValue>) {\n const { theme } = useZoraTheme();\n\n return (\n <Box\n bg=\"surface\"\n borderColor={invalid ? theme.colors.error : theme.colors.border}\n borderWidth={1}\n opacity={disabled ? 0.5 : 1}\n radius=\"m\"\n testID={testID}\n >\n <Picker\n enabled={!disabled}\n onValueChange={(itemValue) => onValueChange(itemValue)}\n selectedValue={value}\n style={{\n height: 44,\n width: '100%',\n backgroundColor: 'transparent',\n color: theme.colors.text,\n borderWidth: 0,\n }}\n >\n {options.map((option) => (\n <Picker.Item\n key={option.value}\n enabled={!option.disabled}\n label={option.label}\n value={option.value}\n />\n ))}\n </Picker>\n </Box>\n );\n}\n\n/***\n * Select control for choosing a value from a list of options.\n */\nexport const Select = withZoraThemeScope(SelectInner);\n"]}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,WAAW,CAAiC,EACnD,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,iBAAiB,GACG;IACpB,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,iBAAiB,KAAK,SAAS,CAAC;IAEhD,OAAO,CACL,CAAC,GAAG,CACF,EAAE,CAAC,SAAS,CACZ,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAChE,WAAW,CAAC,CAAC,CAAC,CAAC,CACf,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5B,MAAM,CAAC,GAAG,CACV,MAAM,CAAC,CAAC,MAAM,CAAC,CAEf;MAAA,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAC7C;QAAA,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CACnB,aAAa,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,aAAa,CAAC,SAAS,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CACF,aAAa,CAAC,CAAC,KAAK,CAAC,CACrB,KAAK,CAAC,CAAC;YACL,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,MAAM;YACb,eAAe,EAAE,aAAa;YAC9B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI;YACxB,WAAW,EAAE,CAAC;SACf,CAAC,CAEF;UAAA,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,CAAC,MAAM,CAAC,IAAI,CACV,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAClB,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC1B,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACpB,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACpB,CACH,CAAC,CACJ;QAAA,EAAE,MAAM,CACV;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC","sourcesContent":["import { Picker } from '@react-native-picker/picker';\nimport React from 'react';\nimport { View } from 'react-native';\n\nimport { Box } from '../../foundation';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { SelectProps } from './types';\n\nfunction SelectInner<TValue extends string = string>({\n themeId: _themeId,\n mode: _mode,\n value,\n options,\n onValueChange,\n disabled,\n invalid,\n testID,\n interactionPolicy,\n}: SelectProps<TValue>) {\n const { theme } = useZoraTheme();\n const passive = interactionPolicy === 'passive';\n\n return (\n <Box\n bg=\"surface\"\n borderColor={invalid ? theme.colors.error : theme.colors.border}\n borderWidth={1}\n opacity={disabled ? 0.5 : 1}\n radius=\"m\"\n testID={testID}\n >\n <View pointerEvents={passive ? 'none' : 'auto'}>\n <Picker\n enabled={!disabled}\n onValueChange={(itemValue) => {\n if (!passive) {\n onValueChange(itemValue);\n }\n }}\n selectedValue={value}\n style={{\n height: 44,\n width: '100%',\n backgroundColor: 'transparent',\n color: theme.colors.text,\n borderWidth: 0,\n }}\n >\n {options.map((option) => (\n <Picker.Item\n key={option.value}\n enabled={!option.disabled}\n label={option.label}\n value={option.value}\n />\n ))}\n </Picker>\n </View>\n </Box>\n );\n}\n\n/***\n * Select control for choosing a value from a list of options.\n */\nexport const Select = withZoraThemeScope(SelectInner);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,KAAK,EAAW,SAAS,EAAE,MAAM,SAAS,CAAC;AAsGlD;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAzGE,MAAM,SAAS,MAAM,iEAyGS,CAAC"}
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,KAAK,EAAW,SAAS,EAAE,MAAM,SAAS,CAAC;AAoHlD;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAvHE,MAAM,SAAS,MAAM,iEAuHS,CAAC"}
@@ -4,19 +4,28 @@ import { useZoraTheme } from '../../theme/useZoraTheme';
4
4
  import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
5
5
  import { Button } from '../button';
6
6
  import { Text } from '../text';
7
- function TabsInner({ themeId: _themeId, mode: _mode, value, items, onValueChange, variant = 'underline', size = 'm', disabled: tabsDisabled, testID, }) {
7
+ function TabsInner({ themeId: _themeId, mode: _mode, value, items, onValueChange, variant = 'underline', size = 'm', disabled: tabsDisabled, testID, interactionPolicy, }) {
8
8
  const { theme } = useZoraTheme();
9
+ const passive = interactionPolicy === 'passive';
9
10
  const renderTab = (item) => {
10
11
  const isActive = item.value === value;
11
12
  const isDisabled = tabsDisabled ?? item.disabled;
12
13
  if (variant === 'segmented') {
13
- return (<Button key={item.value} variant={isActive ? 'solid' : 'ghost'} color="neutral" size={size} disabled={isDisabled} onPress={() => onValueChange(item.value)} leadingIcon={item.icon} testID={item.testID}>
14
+ return (<Button key={item.value} variant={isActive ? 'solid' : 'ghost'} color="neutral" size={size} disabled={isDisabled} onPress={() => {
15
+ if (!passive) {
16
+ onValueChange(item.value);
17
+ }
18
+ }} leadingIcon={item.icon} testID={item.testID}>
14
19
  {item.label}
15
20
  {item.badge}
16
21
  </Button>);
17
22
  }
18
23
  if (variant === 'pill') {
19
- return (<Button key={item.value} variant={isActive ? 'soft' : 'ghost'} color={isActive ? 'primary' : 'neutral'} size={size} disabled={isDisabled} onPress={() => onValueChange(item.value)} leadingIcon={item.icon} testID={item.testID}>
24
+ return (<Button key={item.value} variant={isActive ? 'soft' : 'ghost'} color={isActive ? 'primary' : 'neutral'} size={size} disabled={isDisabled} onPress={() => {
25
+ if (!passive) {
26
+ onValueChange(item.value);
27
+ }
28
+ }} leadingIcon={item.icon} testID={item.testID}>
20
29
  {item.label}
21
30
  {item.badge}
22
31
  </Button>);
@@ -25,7 +34,11 @@ function TabsInner({ themeId: _themeId, mode: _mode, value, items, onValueChange
25
34
  return (<Box key={item.value} borderColor={isActive ? theme.colors.primary : 'transparent'} pb="xs" style={{
26
35
  borderBottomWidth: 2,
27
36
  }}>
28
- <Button variant="ghost" color="neutral" size={size} disabled={isDisabled} onPress={() => onValueChange(item.value)} leadingIcon={item.icon} testID={item.testID}>
37
+ <Button variant="ghost" color="neutral" size={size} disabled={isDisabled} onPress={() => {
38
+ if (!passive) {
39
+ onValueChange(item.value);
40
+ }
41
+ }} leadingIcon={item.icon} testID={item.testID}>
29
42
  <Text color={isActive ? 'primary' : undefined} emphasis={isActive ? 'default' : 'muted'} weight={isActive ? 'semiBold' : 'regular'}>
30
43
  {item.label}
31
44
  </Text>
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Box, Stack } from '../../foundation';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Button } from '../button';\nimport { Text } from '../text';\nimport type { TabItem, TabsProps } from './types';\n\nfunction TabsInner<TValue extends string = string>({\n themeId: _themeId,\n mode: _mode,\n value,\n items,\n onValueChange,\n variant = 'underline',\n size = 'm',\n disabled: tabsDisabled,\n testID,\n}: TabsProps<TValue>) {\n const { theme } = useZoraTheme();\n\n const renderTab = (item: TabItem<TValue>) => {\n const isActive = item.value === value;\n const isDisabled = tabsDisabled ?? item.disabled;\n\n if (variant === 'segmented') {\n return (\n <Button\n key={item.value}\n variant={isActive ? 'solid' : 'ghost'}\n color=\"neutral\"\n size={size}\n disabled={isDisabled}\n onPress={() => onValueChange(item.value)}\n leadingIcon={item.icon}\n testID={item.testID}\n >\n {item.label}\n {item.badge}\n </Button>\n );\n }\n\n if (variant === 'pill') {\n return (\n <Button\n key={item.value}\n variant={isActive ? 'soft' : 'ghost'}\n color={isActive ? 'primary' : 'neutral'}\n size={size}\n disabled={isDisabled}\n onPress={() => onValueChange(item.value)}\n leadingIcon={item.icon}\n testID={item.testID}\n >\n {item.label}\n {item.badge}\n </Button>\n );\n }\n\n // Default: 'underline'\n return (\n <Box\n key={item.value}\n borderColor={isActive ? theme.colors.primary : 'transparent'}\n pb=\"xs\"\n style={{\n borderBottomWidth: 2,\n }}\n >\n <Button\n variant=\"ghost\"\n color=\"neutral\"\n size={size}\n disabled={isDisabled}\n onPress={() => onValueChange(item.value)}\n leadingIcon={item.icon}\n testID={item.testID}\n >\n <Text\n color={isActive ? 'primary' : undefined}\n emphasis={isActive ? 'default' : 'muted'}\n weight={isActive ? 'semiBold' : 'regular'}\n >\n {item.label}\n </Text>\n {item.badge}\n </Button>\n </Box>\n );\n };\n\n return (\n <Stack\n direction=\"row\"\n gap={variant === 'segmented' ? 'none' : 'm'}\n align=\"center\"\n testID={testID}\n p={variant === 'segmented' ? 'xxs' : 'none'}\n bg={variant === 'segmented' ? 'subtle' : 'transparent'}\n radius={variant === 'segmented' ? 'm' : 'none'}\n >\n {items.map(renderTab)}\n </Stack>\n );\n}\n\n/***\n * Tab navigation for switching between views or content sections.\n *\n \n */\nexport const Tabs = withZoraThemeScope(TabsInner);\n"]}
1
+ {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Box, Stack } from '../../foundation';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { Button } from '../button';\nimport { Text } from '../text';\nimport type { TabItem, TabsProps } from './types';\n\nfunction TabsInner<TValue extends string = string>({\n themeId: _themeId,\n mode: _mode,\n value,\n items,\n onValueChange,\n variant = 'underline',\n size = 'm',\n disabled: tabsDisabled,\n testID,\n interactionPolicy,\n}: TabsProps<TValue>) {\n const { theme } = useZoraTheme();\n const passive = interactionPolicy === 'passive';\n\n const renderTab = (item: TabItem<TValue>) => {\n const isActive = item.value === value;\n const isDisabled = tabsDisabled ?? item.disabled;\n\n if (variant === 'segmented') {\n return (\n <Button\n key={item.value}\n variant={isActive ? 'solid' : 'ghost'}\n color=\"neutral\"\n size={size}\n disabled={isDisabled}\n onPress={() => {\n if (!passive) {\n onValueChange(item.value);\n }\n }}\n leadingIcon={item.icon}\n testID={item.testID}\n >\n {item.label}\n {item.badge}\n </Button>\n );\n }\n\n if (variant === 'pill') {\n return (\n <Button\n key={item.value}\n variant={isActive ? 'soft' : 'ghost'}\n color={isActive ? 'primary' : 'neutral'}\n size={size}\n disabled={isDisabled}\n onPress={() => {\n if (!passive) {\n onValueChange(item.value);\n }\n }}\n leadingIcon={item.icon}\n testID={item.testID}\n >\n {item.label}\n {item.badge}\n </Button>\n );\n }\n\n // Default: 'underline'\n return (\n <Box\n key={item.value}\n borderColor={isActive ? theme.colors.primary : 'transparent'}\n pb=\"xs\"\n style={{\n borderBottomWidth: 2,\n }}\n >\n <Button\n variant=\"ghost\"\n color=\"neutral\"\n size={size}\n disabled={isDisabled}\n onPress={() => {\n if (!passive) {\n onValueChange(item.value);\n }\n }}\n leadingIcon={item.icon}\n testID={item.testID}\n >\n <Text\n color={isActive ? 'primary' : undefined}\n emphasis={isActive ? 'default' : 'muted'}\n weight={isActive ? 'semiBold' : 'regular'}\n >\n {item.label}\n </Text>\n {item.badge}\n </Button>\n </Box>\n );\n };\n\n return (\n <Stack\n direction=\"row\"\n gap={variant === 'segmented' ? 'none' : 'm'}\n align=\"center\"\n testID={testID}\n p={variant === 'segmented' ? 'xxs' : 'none'}\n bg={variant === 'segmented' ? 'subtle' : 'transparent'}\n radius={variant === 'segmented' ? 'm' : 'none'}\n >\n {items.map(renderTab)}\n </Stack>\n );\n}\n\n/***\n * Tab navigation for switching between views or content sections.\n *\n \n */\nexport const Tabs = withZoraThemeScope(TabsInner);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/components/text/Text.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAiGzC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,iDAAgC,CAAC"}
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/components/text/Text.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAkGzC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,iDAAgC,CAAC"}
@@ -28,7 +28,7 @@ function resolveTextContent({ children, text, i18nKey, }) {
28
28
  }
29
29
  return i18nKey;
30
30
  }
31
- function TextInner({ themeId: _themeId, mode: _mode, children, text, i18nKey, variant = 'body', color, emphasis = 'default', align, weight, italic = false, numberOfLines, ellipsizeMode, selectable, style, accessibilityLabel, accessibilityHint, accessibilityRole, nativeID, testID, }) {
31
+ function TextInner({ themeId: _themeId, mode: _mode, children, text, i18nKey, variant = 'body', color, emphasis = 'default', align, weight, italic = false, numberOfLines, ellipsizeMode, selectable, style, accessibilityLabel, accessibilityHint, accessibilityRole, nativeID, testID, interactionPolicy: _interactionPolicy, }) {
32
32
  const { theme } = useZoraTheme();
33
33
  const { breakpoint } = useResponsiveRuntime();
34
34
  const content = resolveTextContent({ children, text, i18nKey });
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../src/components/text/Text.tsx"],"names":[],"mappings":"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","sourcesContent":["import { resolveResponsive, useResponsiveRuntime } from '@ankhorage/surface';\nimport React from 'react';\nimport { Platform, Text as ReactNativeText, type TextStyle } from 'react-native';\n\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { resolveTextStyle } from './resolveTextRecipe';\nimport type { TextProps } from './types';\n\nconst textLayoutStyle = {\n flexShrink: 1,\n maxWidth: '100%',\n minWidth: 0,\n ...(Platform.OS === 'web'\n ? {\n overflowWrap: 'break-word',\n whiteSpace: 'normal',\n wordBreak: 'normal',\n }\n : null),\n} as unknown as TextStyle;\n\nfunction resolveTextContent({\n children,\n text,\n i18nKey,\n}: {\n children: TextProps['children'];\n text: TextProps['text'];\n i18nKey: TextProps['i18nKey'];\n}): React.ReactNode {\n if (children !== undefined) {\n return children;\n }\n\n if (text !== undefined) {\n return text;\n }\n\n if (!i18nKey) {\n return null;\n }\n\n return i18nKey;\n}\n\nfunction TextInner({\n themeId: _themeId,\n mode: _mode,\n children,\n text,\n i18nKey,\n variant = 'body',\n color,\n emphasis = 'default',\n align,\n weight,\n italic = false,\n numberOfLines,\n ellipsizeMode,\n selectable,\n style,\n accessibilityLabel,\n accessibilityHint,\n accessibilityRole,\n nativeID,\n testID,\n}: TextProps) {\n const { theme } = useZoraTheme();\n const { breakpoint } = useResponsiveRuntime();\n const content = resolveTextContent({ children, text, i18nKey });\n const resolvedVariant = resolveResponsive(variant, breakpoint) ?? 'body';\n const resolvedStyle = resolveTextStyle({\n theme,\n breakpoint,\n variant: resolvedVariant,\n color,\n emphasis,\n align,\n weight,\n italic,\n });\n\n if (content === null || content === undefined) {\n return null;\n }\n\n return (\n <ReactNativeText\n accessibilityHint={accessibilityHint}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole={accessibilityRole}\n ellipsizeMode={ellipsizeMode}\n nativeID={nativeID}\n numberOfLines={numberOfLines}\n selectable={selectable}\n testID={testID}\n style={[textLayoutStyle, resolvedStyle, style]}\n >\n {content}\n </ReactNativeText>\n );\n}\n\n/***\n * Structured copy primitive for theme-aware app text.\n *\n * `Text` owns normal body, caption, label, code, and supporting-copy variants so\n * consumers do not need to import lower-level Surface typography directly.\n *\n\n * @example Muted supporting copy\n * ```tsx\n * <Text variant=\"bodySmall\" emphasis=\"muted\">Updated just now</Text>\n * ```\n */\nexport const Text = withZoraThemeScope(TextInner);\n"]}
1
+ {"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../src/components/text/Text.tsx"],"names":[],"mappings":"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","sourcesContent":["import { resolveResponsive, useResponsiveRuntime } from '@ankhorage/surface';\nimport React from 'react';\nimport { Platform, Text as ReactNativeText, type TextStyle } from 'react-native';\n\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport { resolveTextStyle } from './resolveTextRecipe';\nimport type { TextProps } from './types';\n\nconst textLayoutStyle = {\n flexShrink: 1,\n maxWidth: '100%',\n minWidth: 0,\n ...(Platform.OS === 'web'\n ? {\n overflowWrap: 'break-word',\n whiteSpace: 'normal',\n wordBreak: 'normal',\n }\n : null),\n} as unknown as TextStyle;\n\nfunction resolveTextContent({\n children,\n text,\n i18nKey,\n}: {\n children: TextProps['children'];\n text: TextProps['text'];\n i18nKey: TextProps['i18nKey'];\n}): React.ReactNode {\n if (children !== undefined) {\n return children;\n }\n\n if (text !== undefined) {\n return text;\n }\n\n if (!i18nKey) {\n return null;\n }\n\n return i18nKey;\n}\n\nfunction TextInner({\n themeId: _themeId,\n mode: _mode,\n children,\n text,\n i18nKey,\n variant = 'body',\n color,\n emphasis = 'default',\n align,\n weight,\n italic = false,\n numberOfLines,\n ellipsizeMode,\n selectable,\n style,\n accessibilityLabel,\n accessibilityHint,\n accessibilityRole,\n nativeID,\n testID,\n interactionPolicy: _interactionPolicy,\n}: TextProps) {\n const { theme } = useZoraTheme();\n const { breakpoint } = useResponsiveRuntime();\n const content = resolveTextContent({ children, text, i18nKey });\n const resolvedVariant = resolveResponsive(variant, breakpoint) ?? 'body';\n const resolvedStyle = resolveTextStyle({\n theme,\n breakpoint,\n variant: resolvedVariant,\n color,\n emphasis,\n align,\n weight,\n italic,\n });\n\n if (content === null || content === undefined) {\n return null;\n }\n\n return (\n <ReactNativeText\n accessibilityHint={accessibilityHint}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole={accessibilityRole}\n ellipsizeMode={ellipsizeMode}\n nativeID={nativeID}\n numberOfLines={numberOfLines}\n selectable={selectable}\n testID={testID}\n style={[textLayoutStyle, resolvedStyle, style]}\n >\n {content}\n </ReactNativeText>\n );\n}\n\n/***\n * Structured copy primitive for theme-aware app text.\n *\n * `Text` owns normal body, caption, label, code, and supporting-copy variants so\n * consumers do not need to import lower-level Surface typography directly.\n *\n\n * @example Muted supporting copy\n * ```tsx\n * <Text variant=\"bodySmall\" emphasis=\"muted\">Updated just now</Text>\n * ```\n */\nexport const Text = withZoraThemeScope(TextInner);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/textarea/Textarea.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA0C7C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,qDAAoC,CAAC"}
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/textarea/Textarea.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA4C7C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,qDAAoC,CAAC"}
@@ -3,11 +3,11 @@ import React from 'react';
3
3
  import { resolveIconSize } from '../../internal/recipes';
4
4
  import { useZoraTheme } from '../../theme/useZoraTheme';
5
5
  import { withZoraThemeScope } from '../../theme/withZoraThemeScope';
6
- function TextareaInner({ themeId: _themeId, mode: _mode, size = 'l', leadingIcon, trailingIcon, ...props }) {
6
+ function TextareaInner({ themeId: _themeId, mode: _mode, size = 'l', leadingIcon, trailingIcon, interactionPolicy, ...props }) {
7
7
  const { theme } = useZoraTheme();
8
8
  const iconSize = resolveIconSize(size);
9
9
  const iconColor = theme.semantics.content.muted;
10
- return (<Surface.Textarea {...props} leadingAccessory={leadingIcon ? (<Surface.Icon color={iconColor} name={leadingIcon.name} provider={leadingIcon.provider} size={iconSize}/>) : undefined} size={size} trailingAccessory={trailingIcon ? (<Surface.Icon color={iconColor} name={trailingIcon.name} provider={trailingIcon.provider} size={iconSize}/>) : undefined}/>);
10
+ return (<Surface.Textarea {...props} interactionPolicy={interactionPolicy} leadingAccessory={leadingIcon ? (<Surface.Icon color={iconColor} name={leadingIcon.name} provider={leadingIcon.provider} size={iconSize}/>) : undefined} size={size} trailingAccessory={trailingIcon ? (<Surface.Icon color={iconColor} name={trailingIcon.name} provider={trailingIcon.provider} size={iconSize}/>) : undefined}/>);
11
11
  }
12
12
  /***
13
13
  * Multi-line text input with consistent ZORA field styling.
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../../src/components/textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,aAAa,CAAC,EACrB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,IAAI,GAAG,GAAG,EACV,WAAW,EACX,YAAY,EACZ,GAAG,KAAK,EACM;IACd,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;IAEhD,OAAO,CACL,CAAC,OAAO,CAAC,QAAQ,CACf,IAAI,KAAK,CAAC,CACV,gBAAgB,CAAC,CACf,WAAW,CAAC,CAAC,CAAC,CACZ,CAAC,OAAO,CAAC,IAAI,CACX,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CACvB,QAAQ,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAC/B,IAAI,CAAC,CAAC,QAAQ,CAAC,EACf,CACH,CAAC,CAAC,CAAC,SACN,CAAC,CACD,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,iBAAiB,CAAC,CAChB,YAAY,CAAC,CAAC,CAAC,CACb,CAAC,OAAO,CAAC,IAAI,CACX,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CACxB,QAAQ,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAChC,IAAI,CAAC,CAAC,QAAQ,CAAC,EACf,CACH,CAAC,CAAC,CAAC,SACN,CAAC,EACD,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import * as Surface from '@ankhorage/surface';\nimport React from 'react';\n\nimport { resolveIconSize } from '../../internal/recipes';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { TextareaProps } from './types';\n\nfunction TextareaInner({\n themeId: _themeId,\n mode: _mode,\n size = 'l',\n leadingIcon,\n trailingIcon,\n ...props\n}: TextareaProps) {\n const { theme } = useZoraTheme();\n const iconSize = resolveIconSize(size);\n const iconColor = theme.semantics.content.muted;\n\n return (\n <Surface.Textarea\n {...props}\n leadingAccessory={\n leadingIcon ? (\n <Surface.Icon\n color={iconColor}\n name={leadingIcon.name}\n provider={leadingIcon.provider}\n size={iconSize}\n />\n ) : undefined\n }\n size={size}\n trailingAccessory={\n trailingIcon ? (\n <Surface.Icon\n color={iconColor}\n name={trailingIcon.name}\n provider={trailingIcon.provider}\n size={iconSize}\n />\n ) : undefined\n }\n />\n );\n}\n\n/***\n * Multi-line text input with consistent ZORA field styling.\n *\n \n */\nexport const Textarea = withZoraThemeScope(TextareaInner);\n"]}
1
+ {"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../../src/components/textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,SAAS,aAAa,CAAC,EACrB,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,IAAI,GAAG,GAAG,EACV,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,GAAG,KAAK,EACM;IACd,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;IAEhD,OAAO,CACL,CAAC,OAAO,CAAC,QAAQ,CACf,IAAI,KAAK,CAAC,CACV,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CACrC,gBAAgB,CAAC,CACf,WAAW,CAAC,CAAC,CAAC,CACZ,CAAC,OAAO,CAAC,IAAI,CACX,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CACvB,QAAQ,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAC/B,IAAI,CAAC,CAAC,QAAQ,CAAC,EACf,CACH,CAAC,CAAC,CAAC,SACN,CAAC,CACD,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,iBAAiB,CAAC,CAChB,YAAY,CAAC,CAAC,CAAC,CACb,CAAC,OAAO,CAAC,IAAI,CACX,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CACxB,QAAQ,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAChC,IAAI,CAAC,CAAC,QAAQ,CAAC,EACf,CACH,CAAC,CAAC,CAAC,SACN,CAAC,EACD,CACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC","sourcesContent":["import * as Surface from '@ankhorage/surface';\nimport React from 'react';\n\nimport { resolveIconSize } from '../../internal/recipes';\nimport { useZoraTheme } from '../../theme/useZoraTheme';\nimport { withZoraThemeScope } from '../../theme/withZoraThemeScope';\nimport type { TextareaProps } from './types';\n\nfunction TextareaInner({\n themeId: _themeId,\n mode: _mode,\n size = 'l',\n leadingIcon,\n trailingIcon,\n interactionPolicy,\n ...props\n}: TextareaProps) {\n const { theme } = useZoraTheme();\n const iconSize = resolveIconSize(size);\n const iconColor = theme.semantics.content.muted;\n\n return (\n <Surface.Textarea\n {...props}\n interactionPolicy={interactionPolicy}\n leadingAccessory={\n leadingIcon ? (\n <Surface.Icon\n color={iconColor}\n name={leadingIcon.name}\n provider={leadingIcon.provider}\n size={iconSize}\n />\n ) : undefined\n }\n size={size}\n trailingAccessory={\n trailingIcon ? (\n <Surface.Icon\n color={iconColor}\n name={trailingIcon.name}\n provider={trailingIcon.provider}\n size={iconSize}\n />\n ) : undefined\n }\n />\n );\n}\n\n/***\n * Multi-line text input with consistent ZORA field styling.\n *\n \n */\nexport const Textarea = withZoraThemeScope(TextareaInner);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../src/components/time-picker/TimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA8I/C;;;;GAIG;AACH,eAAO,MAAM,UAAU,uDAAsC,CAAC"}
1
+ {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../../src/components/time-picker/TimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA+J/C;;;;GAIG;AACH,eAAO,MAAM,UAAU,uDAAsC,CAAC"}