@multiplatform.one/frappe-ui 7.65.2 → 7.67.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 (290) hide show
  1. package/dist/cjs/FormSidebar.cjs +95 -194
  2. package/dist/cjs/FormSidebar.native.js +107 -217
  3. package/dist/cjs/FormSidebar.native.js.map +1 -1
  4. package/dist/cjs/FrappeConnectionIndicator.cjs +5 -24
  5. package/dist/cjs/FrappeConnectionIndicator.native.js +5 -24
  6. package/dist/cjs/FrappeConnectionIndicator.native.js.map +1 -1
  7. package/dist/cjs/FrappeImageView.cjs +46 -65
  8. package/dist/cjs/FrappeImageView.native.js +46 -68
  9. package/dist/cjs/FrappeImageView.native.js.map +1 -1
  10. package/dist/cjs/FrappeListView.cjs +24 -67
  11. package/dist/cjs/FrappeListView.native.js +25 -71
  12. package/dist/cjs/FrappeListView.native.js.map +1 -1
  13. package/dist/cjs/FrappeRecordView.cjs +4 -0
  14. package/dist/cjs/FrappeRecordView.native.js +4 -0
  15. package/dist/cjs/FrappeRecordView.native.js.map +1 -1
  16. package/dist/cjs/FrappeReportBuilder.cjs +21 -18
  17. package/dist/cjs/FrappeReportBuilder.native.js +21 -18
  18. package/dist/cjs/FrappeReportBuilder.native.js.map +1 -1
  19. package/dist/cjs/SyncErrorNotice.cjs +8 -36
  20. package/dist/cjs/SyncErrorNotice.native.js +8 -36
  21. package/dist/cjs/SyncErrorNotice.native.js.map +1 -1
  22. package/dist/cjs/desk/DeskFormSidebar.cjs +1 -6
  23. package/dist/cjs/desk/DeskFormSidebar.native.js +1 -6
  24. package/dist/cjs/desk/DeskFormSidebar.native.js.map +1 -1
  25. package/dist/cjs/desk/DeskShell.native.js.map +1 -1
  26. package/dist/cjs/fields/Date/catalog.native.js +0 -1
  27. package/dist/cjs/fields/Date/catalog.native.js.map +1 -1
  28. package/dist/cjs/fields/Date/index.native.js +4 -363
  29. package/dist/cjs/fields/Date/index.native.js.map +1 -1
  30. package/dist/cjs/insights/InsightsFacetTags.cjs +16 -92
  31. package/dist/cjs/insights/InsightsFacetTags.native.js +15 -97
  32. package/dist/cjs/insights/InsightsFacetTags.native.js.map +1 -1
  33. package/dist/cjs/list/FacetBadge.cjs +4 -28
  34. package/dist/cjs/list/FacetBadge.native.js +4 -28
  35. package/dist/cjs/list/FacetBadge.native.js.map +1 -1
  36. package/dist/cjs/list/FacetRail.cjs +37 -128
  37. package/dist/cjs/list/FacetRail.native.js +32 -130
  38. package/dist/cjs/list/FacetRail.native.js.map +1 -1
  39. package/dist/cjs/list/RecordCard.cjs +107 -127
  40. package/dist/cjs/list/RecordCard.native.js +86 -96
  41. package/dist/cjs/list/RecordCard.native.js.map +1 -1
  42. package/dist/cjs/list/ShufflePanel.cjs +57 -36
  43. package/dist/cjs/list/ShufflePanel.native.js +64 -39
  44. package/dist/cjs/list/ShufflePanel.native.js.map +1 -1
  45. package/dist/cjs/record/RecordHero.cjs +7 -85
  46. package/dist/cjs/record/RecordHero.native.js +7 -85
  47. package/dist/cjs/record/RecordHero.native.js.map +1 -1
  48. package/dist/cjs/record/RecordPage.cjs +1 -0
  49. package/dist/cjs/record/RecordPage.native.js +1 -0
  50. package/dist/cjs/record/RecordPage.native.js.map +1 -1
  51. package/dist/cjs/report/ReportViewToolbar.cjs +70 -39
  52. package/dist/cjs/report/ReportViewToolbar.native.js +73 -40
  53. package/dist/cjs/report/ReportViewToolbar.native.js.map +1 -1
  54. package/dist/esm/FormSidebar.mjs +98 -197
  55. package/dist/esm/FormSidebar.mjs.map +1 -1
  56. package/dist/esm/FormSidebar.native.js +110 -220
  57. package/dist/esm/FormSidebar.native.js.map +1 -1
  58. package/dist/esm/FrappeConnectionIndicator.mjs +7 -26
  59. package/dist/esm/FrappeConnectionIndicator.mjs.map +1 -1
  60. package/dist/esm/FrappeConnectionIndicator.native.js +7 -26
  61. package/dist/esm/FrappeConnectionIndicator.native.js.map +1 -1
  62. package/dist/esm/FrappeImageView.mjs +48 -67
  63. package/dist/esm/FrappeImageView.mjs.map +1 -1
  64. package/dist/esm/FrappeImageView.native.js +48 -70
  65. package/dist/esm/FrappeImageView.native.js.map +1 -1
  66. package/dist/esm/FrappeListView.mjs +25 -68
  67. package/dist/esm/FrappeListView.mjs.map +1 -1
  68. package/dist/esm/FrappeListView.native.js +26 -72
  69. package/dist/esm/FrappeListView.native.js.map +1 -1
  70. package/dist/esm/FrappeRecordView.mjs +4 -0
  71. package/dist/esm/FrappeRecordView.mjs.map +1 -1
  72. package/dist/esm/FrappeRecordView.native.js +4 -0
  73. package/dist/esm/FrappeRecordView.native.js.map +1 -1
  74. package/dist/esm/FrappeReportBuilder.mjs +21 -18
  75. package/dist/esm/FrappeReportBuilder.mjs.map +1 -1
  76. package/dist/esm/FrappeReportBuilder.native.js +21 -18
  77. package/dist/esm/FrappeReportBuilder.native.js.map +1 -1
  78. package/dist/esm/SyncErrorNotice.mjs +10 -38
  79. package/dist/esm/SyncErrorNotice.mjs.map +1 -1
  80. package/dist/esm/SyncErrorNotice.native.js +10 -38
  81. package/dist/esm/SyncErrorNotice.native.js.map +1 -1
  82. package/dist/esm/desk/DeskFormSidebar.mjs +1 -6
  83. package/dist/esm/desk/DeskFormSidebar.mjs.map +1 -1
  84. package/dist/esm/desk/DeskFormSidebar.native.js +1 -6
  85. package/dist/esm/desk/DeskFormSidebar.native.js.map +1 -1
  86. package/dist/esm/desk/DeskShell.mjs.map +1 -1
  87. package/dist/esm/desk/DeskShell.native.js.map +1 -1
  88. package/dist/esm/fields/Date/catalog.mjs.map +1 -1
  89. package/dist/esm/fields/Date/catalog.native.js +0 -1
  90. package/dist/esm/fields/Date/catalog.native.js.map +1 -1
  91. package/dist/esm/fields/Date/index.native.js +2 -361
  92. package/dist/esm/fields/Date/index.native.js.map +1 -1
  93. package/dist/esm/insights/InsightsFacetTags.mjs +18 -94
  94. package/dist/esm/insights/InsightsFacetTags.mjs.map +1 -1
  95. package/dist/esm/insights/InsightsFacetTags.native.js +17 -99
  96. package/dist/esm/insights/InsightsFacetTags.native.js.map +1 -1
  97. package/dist/esm/list/FacetBadge.mjs +5 -29
  98. package/dist/esm/list/FacetBadge.mjs.map +1 -1
  99. package/dist/esm/list/FacetBadge.native.js +5 -29
  100. package/dist/esm/list/FacetBadge.native.js.map +1 -1
  101. package/dist/esm/list/FacetRail.mjs +40 -131
  102. package/dist/esm/list/FacetRail.mjs.map +1 -1
  103. package/dist/esm/list/FacetRail.native.js +35 -133
  104. package/dist/esm/list/FacetRail.native.js.map +1 -1
  105. package/dist/esm/list/RecordCard.mjs +107 -127
  106. package/dist/esm/list/RecordCard.mjs.map +1 -1
  107. package/dist/esm/list/RecordCard.native.js +86 -96
  108. package/dist/esm/list/RecordCard.native.js.map +1 -1
  109. package/dist/esm/list/ShufflePanel.mjs +59 -38
  110. package/dist/esm/list/ShufflePanel.mjs.map +1 -1
  111. package/dist/esm/list/ShufflePanel.native.js +66 -41
  112. package/dist/esm/list/ShufflePanel.native.js.map +1 -1
  113. package/dist/esm/record/RecordHero.mjs +8 -86
  114. package/dist/esm/record/RecordHero.mjs.map +1 -1
  115. package/dist/esm/record/RecordHero.native.js +8 -86
  116. package/dist/esm/record/RecordHero.native.js.map +1 -1
  117. package/dist/esm/record/RecordPage.mjs +2 -1
  118. package/dist/esm/record/RecordPage.mjs.map +1 -1
  119. package/dist/esm/record/RecordPage.native.js +2 -1
  120. package/dist/esm/record/RecordPage.native.js.map +1 -1
  121. package/dist/esm/report/ReportViewToolbar.mjs +72 -41
  122. package/dist/esm/report/ReportViewToolbar.mjs.map +1 -1
  123. package/dist/esm/report/ReportViewToolbar.native.js +75 -42
  124. package/dist/esm/report/ReportViewToolbar.native.js.map +1 -1
  125. package/dist/jsx/FormSidebar.mjs +98 -197
  126. package/dist/jsx/FormSidebar.mjs.map +1 -1
  127. package/dist/jsx/FormSidebar.native.js +107 -217
  128. package/dist/jsx/FormSidebar.native.js.map +1 -1
  129. package/dist/jsx/FrappeConnectionIndicator.mjs +7 -26
  130. package/dist/jsx/FrappeConnectionIndicator.mjs.map +1 -1
  131. package/dist/jsx/FrappeConnectionIndicator.native.js +5 -24
  132. package/dist/jsx/FrappeConnectionIndicator.native.js.map +1 -1
  133. package/dist/jsx/FrappeImageView.mjs +48 -67
  134. package/dist/jsx/FrappeImageView.mjs.map +1 -1
  135. package/dist/jsx/FrappeImageView.native.js +46 -68
  136. package/dist/jsx/FrappeImageView.native.js.map +1 -1
  137. package/dist/jsx/FrappeListView.mjs +25 -68
  138. package/dist/jsx/FrappeListView.mjs.map +1 -1
  139. package/dist/jsx/FrappeListView.native.js +25 -71
  140. package/dist/jsx/FrappeListView.native.js.map +1 -1
  141. package/dist/jsx/FrappeRecordView.mjs +4 -0
  142. package/dist/jsx/FrappeRecordView.mjs.map +1 -1
  143. package/dist/jsx/FrappeRecordView.native.js +4 -0
  144. package/dist/jsx/FrappeRecordView.native.js.map +1 -1
  145. package/dist/jsx/FrappeReportBuilder.mjs +21 -18
  146. package/dist/jsx/FrappeReportBuilder.mjs.map +1 -1
  147. package/dist/jsx/FrappeReportBuilder.native.js +21 -18
  148. package/dist/jsx/FrappeReportBuilder.native.js.map +1 -1
  149. package/dist/jsx/SyncErrorNotice.mjs +10 -38
  150. package/dist/jsx/SyncErrorNotice.mjs.map +1 -1
  151. package/dist/jsx/SyncErrorNotice.native.js +8 -36
  152. package/dist/jsx/SyncErrorNotice.native.js.map +1 -1
  153. package/dist/jsx/desk/DeskFormSidebar.mjs +1 -6
  154. package/dist/jsx/desk/DeskFormSidebar.mjs.map +1 -1
  155. package/dist/jsx/desk/DeskFormSidebar.native.js +1 -6
  156. package/dist/jsx/desk/DeskFormSidebar.native.js.map +1 -1
  157. package/dist/jsx/desk/DeskShell.mjs.map +1 -1
  158. package/dist/jsx/desk/DeskShell.native.js.map +1 -1
  159. package/dist/jsx/fields/Date/catalog.mjs.map +1 -1
  160. package/dist/jsx/fields/Date/catalog.native.js +0 -1
  161. package/dist/jsx/fields/Date/catalog.native.js.map +1 -1
  162. package/dist/jsx/fields/Date/index.native.js +4 -363
  163. package/dist/jsx/fields/Date/index.native.js.map +1 -1
  164. package/dist/jsx/insights/InsightsFacetTags.mjs +18 -94
  165. package/dist/jsx/insights/InsightsFacetTags.mjs.map +1 -1
  166. package/dist/jsx/insights/InsightsFacetTags.native.js +15 -97
  167. package/dist/jsx/insights/InsightsFacetTags.native.js.map +1 -1
  168. package/dist/jsx/list/FacetBadge.mjs +5 -29
  169. package/dist/jsx/list/FacetBadge.mjs.map +1 -1
  170. package/dist/jsx/list/FacetBadge.native.js +4 -28
  171. package/dist/jsx/list/FacetBadge.native.js.map +1 -1
  172. package/dist/jsx/list/FacetRail.mjs +40 -131
  173. package/dist/jsx/list/FacetRail.mjs.map +1 -1
  174. package/dist/jsx/list/FacetRail.native.js +32 -130
  175. package/dist/jsx/list/FacetRail.native.js.map +1 -1
  176. package/dist/jsx/list/RecordCard.mjs +107 -127
  177. package/dist/jsx/list/RecordCard.mjs.map +1 -1
  178. package/dist/jsx/list/RecordCard.native.js +86 -96
  179. package/dist/jsx/list/RecordCard.native.js.map +1 -1
  180. package/dist/jsx/list/ShufflePanel.mjs +59 -38
  181. package/dist/jsx/list/ShufflePanel.mjs.map +1 -1
  182. package/dist/jsx/list/ShufflePanel.native.js +64 -39
  183. package/dist/jsx/list/ShufflePanel.native.js.map +1 -1
  184. package/dist/jsx/record/RecordHero.mjs +8 -86
  185. package/dist/jsx/record/RecordHero.mjs.map +1 -1
  186. package/dist/jsx/record/RecordHero.native.js +7 -85
  187. package/dist/jsx/record/RecordHero.native.js.map +1 -1
  188. package/dist/jsx/record/RecordPage.mjs +2 -1
  189. package/dist/jsx/record/RecordPage.mjs.map +1 -1
  190. package/dist/jsx/record/RecordPage.native.js +1 -0
  191. package/dist/jsx/record/RecordPage.native.js.map +1 -1
  192. package/dist/jsx/report/ReportViewToolbar.mjs +72 -41
  193. package/dist/jsx/report/ReportViewToolbar.mjs.map +1 -1
  194. package/dist/jsx/report/ReportViewToolbar.native.js +73 -40
  195. package/dist/jsx/report/ReportViewToolbar.native.js.map +1 -1
  196. package/package.json +16 -16
  197. package/src/FormSidebar.stories.tsx +1 -1
  198. package/src/FormSidebar.tsx +128 -253
  199. package/src/FrappeConnectionIndicator.tsx +6 -28
  200. package/src/FrappeImageView.stories.tsx +1 -6
  201. package/src/FrappeImageView.tsx +52 -66
  202. package/src/FrappeListView.controls.spec.tsx +3 -2
  203. package/src/FrappeListView.tsx +23 -55
  204. package/src/FrappeRecordView.tsx +16 -3
  205. package/src/FrappeReportBuilder.tsx +21 -19
  206. package/src/SyncErrorNotice.spec.tsx +7 -12
  207. package/src/SyncErrorNotice.stories.tsx +2 -4
  208. package/src/SyncErrorNotice.tsx +13 -41
  209. package/src/desk/DeskFormSidebar.tsx +1 -2
  210. package/src/desk/DeskShell.tsx +1 -0
  211. package/src/fields/Date/catalog.tsx +6 -7
  212. package/src/fields/Date/nativeIsCatalog.spec.tsx +26 -0
  213. package/src/fields/Date/typeParity.spec.tsx +20 -98
  214. package/src/frappeRemainder.designLaw.spec.ts +8 -7
  215. package/src/insights/InsightsFacetTags.tsx +21 -102
  216. package/src/list/FacetBadge.tsx +7 -29
  217. package/src/list/FacetRail.spec.tsx +11 -10
  218. package/src/list/FacetRail.tsx +49 -161
  219. package/src/list/RecordCard.native.tsx +63 -64
  220. package/src/list/RecordCard.spec.tsx +8 -5
  221. package/src/list/RecordCard.tsx +116 -129
  222. package/src/list/ShufflePanel.tsx +65 -38
  223. package/src/record/RecordHero.tsx +11 -51
  224. package/src/record/RecordPage.tsx +6 -1
  225. package/src/report/ReportViewToolbar.spec.tsx +45 -3
  226. package/src/report/ReportViewToolbar.tsx +109 -56
  227. package/types/FormSidebar.d.ts +13 -3
  228. package/types/FormSidebar.d.ts.map +1 -1
  229. package/types/FrappeConnectionIndicator.d.ts +2 -1
  230. package/types/FrappeConnectionIndicator.d.ts.map +1 -1
  231. package/types/FrappeImageView.d.ts.map +1 -1
  232. package/types/FrappeListView.d.ts.map +1 -1
  233. package/types/FrappeRecordView.d.ts.map +1 -1
  234. package/types/FrappeReportBuilder.d.ts.map +1 -1
  235. package/types/SyncErrorNotice.d.ts +4 -6
  236. package/types/SyncErrorNotice.d.ts.map +1 -1
  237. package/types/desk/DeskFormSidebar.d.ts.map +1 -1
  238. package/types/desk/DeskShell.d.ts.map +1 -1
  239. package/types/fields/Date/catalog.d.ts +5 -4
  240. package/types/fields/Date/catalog.d.ts.map +1 -1
  241. package/types/insights/InsightsFacetTags.d.ts +4 -1
  242. package/types/insights/InsightsFacetTags.d.ts.map +1 -1
  243. package/types/list/FacetBadge.d.ts +3 -3
  244. package/types/list/FacetBadge.d.ts.map +1 -1
  245. package/types/list/FacetRail.d.ts +7 -5
  246. package/types/list/FacetRail.d.ts.map +1 -1
  247. package/types/list/RecordCard.d.ts +6 -6
  248. package/types/list/RecordCard.d.ts.map +1 -1
  249. package/types/list/RecordCard.native.d.ts +4 -3
  250. package/types/list/RecordCard.native.d.ts.map +1 -1
  251. package/types/list/ShufflePanel.d.ts +8 -3
  252. package/types/list/ShufflePanel.d.ts.map +1 -1
  253. package/types/record/RecordHero.d.ts +5 -1
  254. package/types/record/RecordHero.d.ts.map +1 -1
  255. package/types/record/RecordPage.d.ts.map +1 -1
  256. package/types/report/ReportViewToolbar.d.ts.map +1 -1
  257. package/dist/cjs/fields/Date/dateTimePickerLoader.cjs +0 -38
  258. package/dist/cjs/fields/Date/dateTimePickerLoader.native.js +0 -42
  259. package/dist/cjs/fields/Date/dateTimePickerLoader.native.js.map +0 -1
  260. package/dist/cjs/fields/Date/sheetKeyboard.cjs +0 -54
  261. package/dist/cjs/fields/Date/sheetKeyboard.native.js +0 -57
  262. package/dist/cjs/fields/Date/sheetKeyboard.native.js.map +0 -1
  263. package/dist/esm/fields/Date/dateTimePickerLoader.mjs +0 -13
  264. package/dist/esm/fields/Date/dateTimePickerLoader.mjs.map +0 -1
  265. package/dist/esm/fields/Date/dateTimePickerLoader.native.js +0 -14
  266. package/dist/esm/fields/Date/dateTimePickerLoader.native.js.map +0 -1
  267. package/dist/esm/fields/Date/sheetKeyboard.mjs +0 -21
  268. package/dist/esm/fields/Date/sheetKeyboard.mjs.map +0 -1
  269. package/dist/esm/fields/Date/sheetKeyboard.native.js +0 -21
  270. package/dist/esm/fields/Date/sheetKeyboard.native.js.map +0 -1
  271. package/dist/jsx/fields/Date/dateTimePickerLoader.mjs +0 -13
  272. package/dist/jsx/fields/Date/dateTimePickerLoader.mjs.map +0 -1
  273. package/dist/jsx/fields/Date/dateTimePickerLoader.native.js +0 -42
  274. package/dist/jsx/fields/Date/dateTimePickerLoader.native.js.map +0 -1
  275. package/dist/jsx/fields/Date/sheetKeyboard.mjs +0 -21
  276. package/dist/jsx/fields/Date/sheetKeyboard.mjs.map +0 -1
  277. package/dist/jsx/fields/Date/sheetKeyboard.native.js +0 -57
  278. package/dist/jsx/fields/Date/sheetKeyboard.native.js.map +0 -1
  279. package/src/fields/Date/dateTimePickerLoader.ts +0 -25
  280. package/src/fields/Date/index.native.tsx +0 -445
  281. package/src/fields/Date/nativeFallback.spec.tsx +0 -21
  282. package/src/fields/Date/nativePresentation.spec.tsx +0 -278
  283. package/src/fields/Date/sheetKeyboard.spec.ts +0 -60
  284. package/src/fields/Date/sheetKeyboard.ts +0 -45
  285. package/types/fields/Date/dateTimePickerLoader.d.ts +0 -11
  286. package/types/fields/Date/dateTimePickerLoader.d.ts.map +0 -1
  287. package/types/fields/Date/index.native.d.ts +0 -14
  288. package/types/fields/Date/index.native.d.ts.map +0 -1
  289. package/types/fields/Date/sheetKeyboard.d.ts +0 -20
  290. package/types/fields/Date/sheetKeyboard.d.ts.map +0 -1
@@ -81,39 +81,71 @@ function RecordCard({
81
81
  press?.nativeEvent?.stopPropagation?.();
82
82
  favorite?.toggle();
83
83
  };
84
- const passThrough = href ? "box-none" : void 0;
85
- const inert = href ? "none" : void 0;
84
+ const heart = favorite ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
85
+ position: "absolute",
86
+ top: "$1",
87
+ right: "$1",
88
+ zIndex: 2,
89
+ ...(import_components.isWeb ? {
90
+ onClickCapture: event => {
91
+ event.preventDefault();
92
+ }
93
+ } : void 0),
94
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
95
+ circular: true,
96
+ chromeless: true,
97
+ minWidth: knobProps.sizeToken,
98
+ minHeight: knobProps.sizeToken,
99
+ ...(0, import_theme.transitionProps)(knobProps.motion.control),
100
+ backgroundColor: "$background08",
101
+ hoverStyle: {
102
+ backgroundColor: "$background",
103
+ scale: 1.08
104
+ },
105
+ pressStyle: {
106
+ backgroundColor: "$background",
107
+ scale: 0.92
108
+ },
109
+ onPress: handleToggleFavorite,
110
+ render: "button",
111
+ type: "button",
112
+ col: favorite.active ? "$red9" : "$color11",
113
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.HeartIcon, {
114
+ size: 20,
115
+ weight: favorite.active ? "fill" : "regular"
116
+ }),
117
+ "aria-label": favorite.active ? t("Remove {{name}} from favorites", {
118
+ name: title
119
+ }) : t("Add {{name}} to favorites", {
120
+ name: title
121
+ }),
122
+ "aria-pressed": favorite.active,
123
+ testID: favoriteTestID
124
+ })
125
+ }) : null;
86
126
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.Card, {
87
127
  testID,
88
- position: "relative",
89
- ...knobProps.cardSurface,
90
- padding: 0,
91
- gap: 0,
92
- overflow: "hidden",
93
- "data-record-card-bleed": "",
94
- elevation: knobProps.elevation,
95
- cursor: "pointer",
96
- ...(0, import_theme.transitionProps)(knobProps.motion.control, ["boxShadow", "shadowColor", "shadowOffset", "shadowOpacity", "shadowRadius", "elevation"]),
97
- hoverStyle: {
98
- ...elevationState.hoverKnobProps
99
- },
100
- pressStyle: {
101
- ...elevationState.pressKnobProps
102
- },
103
- ...(href ? anchorKeyboardFocus ? import_theme.keyboardFocusRingProps : null : {
104
- role: "button",
105
- "aria-label": title,
106
- onPress: handlePress,
107
- focusVisibleStyle: focusRing
128
+ media: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
129
+ position: "relative",
130
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ImageWell.ImageWell, {
131
+ sources: images,
132
+ alt: title,
133
+ tint,
134
+ inset: 0.04,
135
+ borderRadius: 0,
136
+ lazy,
137
+ ...{
138
+ "data-record-card-media": ""
139
+ }
140
+ }), heart]
108
141
  }),
109
- children: [href ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Anchor, {
142
+ overlay: href ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Anchor, {
110
143
  href,
111
144
  position: "absolute",
112
145
  top: 0,
113
146
  left: 0,
114
147
  right: 0,
115
148
  bottom: 0,
116
- zIndex: 0,
117
149
  textDecorationLine: "none",
118
150
  outlineWidth: 0,
119
151
  "aria-label": title,
@@ -124,108 +156,56 @@ function RecordCard({
124
156
  },
125
157
  onBlur: () => setAnchorKeyboardFocus(false)
126
158
  } : void 0)
127
- }) : null, /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
128
- gap: 0,
129
- zIndex: 1,
130
- pointerEvents: passThrough,
131
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
132
- position: "relative",
133
- pointerEvents: passThrough,
134
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ImageWell.ImageWell, {
135
- sources: images,
136
- alt: title,
137
- tint,
138
- inset: 0.04,
139
- borderRadius: 0,
140
- lazy,
141
- pointerEvents: inert,
142
- ...{
143
- "data-record-card-media": ""
144
- }
145
- }), favorite ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
146
- position: "absolute",
147
- top: "$1",
148
- right: "$1",
149
- zIndex: 2,
150
- pointerEvents: "auto",
151
- ...(import_components.isWeb ? {
152
- onClickCapture: event => {
153
- event.preventDefault();
154
- }
155
- } : void 0),
156
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
157
- circular: true,
158
- chromeless: true,
159
- minWidth: knobProps.sizeToken,
160
- minHeight: knobProps.sizeToken,
161
- ...(0, import_theme.transitionProps)(knobProps.motion.control),
162
- backgroundColor: "$background08",
163
- hoverStyle: {
164
- backgroundColor: "$background",
165
- scale: 1.08
166
- },
167
- pressStyle: {
168
- backgroundColor: "$background",
169
- scale: 0.92
170
- },
171
- onPress: handleToggleFavorite,
172
- render: "button",
173
- type: "button",
174
- col: favorite.active ? "$red9" : "$color11",
175
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.HeartIcon, {
176
- size: 20,
177
- weight: favorite.active ? "fill" : "regular"
178
- }),
179
- "aria-label": favorite.active ? t("Remove {{name}} from favorites", {
180
- name: title
181
- }) : t("Add {{name}} to favorites", {
182
- name: title
183
- }),
184
- "aria-pressed": favorite.active,
185
- testID: favoriteTestID
186
- })
187
- }) : null]
188
- }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
189
- ...knobProps.panelPadding,
190
- gap: "$1.5",
191
- pointerEvents: inert,
192
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
193
- gap: "$2",
194
- alignItems: "baseline",
195
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
196
- ...knobProps.heading,
197
- fontWeight: "700",
198
- fontSize: "$4",
199
- numberOfLines: 1,
200
- color: "$color12",
201
- flexShrink: 1,
202
- children: title
203
- }), code ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
204
- fontSize: "$2",
205
- fontWeight: "700",
206
- color: "$color10",
207
- flexShrink: 0,
208
- ...{
209
- "data-record-card-code": ""
210
- },
211
- children: code
212
- }) : null]
213
- }), subtitle ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
214
- ...knobProps.body,
215
- fontSize: "$2",
216
- color: "$color10",
217
- numberOfLines: 1,
218
- children: subtitle
219
- }) : null, badges.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
220
- gap: "$1.5",
221
- flexWrap: "wrap",
222
- children: badges.map(badge => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_FacetBadge.FacetBadge, {
223
- label: badge.label,
224
- tint: badge.tint,
225
- size: "$3"
226
- }, badge.value))
227
- }) : null]
228
- })]
229
- })]
159
+ }) : void 0,
160
+ cursor: "pointer",
161
+ ...(0, import_theme.transitionProps)(knobProps.motion.control, ["boxShadow", "shadowColor", "shadowOffset", "shadowOpacity", "shadowRadius", "elevation"]),
162
+ hoverStyle: {
163
+ ...elevationState.hoverKnobProps
164
+ },
165
+ pressStyle: {
166
+ ...elevationState.pressKnobProps
167
+ },
168
+ ...(href ? anchorKeyboardFocus ? import_theme.keyboardFocusRingProps : null : {
169
+ role: "button",
170
+ "aria-label": title,
171
+ onPress: handlePress,
172
+ focusVisibleStyle: focusRing
173
+ }),
174
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
175
+ gap: "$2",
176
+ alignItems: "baseline",
177
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
178
+ ...knobProps.heading,
179
+ fontWeight: "700",
180
+ fontSize: "$4",
181
+ numberOfLines: 1,
182
+ color: "$color12",
183
+ flexShrink: 1,
184
+ children: title
185
+ }), code ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
186
+ fontSize: "$2",
187
+ fontWeight: "700",
188
+ color: "$color10",
189
+ flexShrink: 0,
190
+ ...{
191
+ "data-record-card-code": ""
192
+ },
193
+ children: code
194
+ }) : null]
195
+ }), subtitle ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
196
+ ...knobProps.body,
197
+ fontSize: "$2",
198
+ color: "$color10",
199
+ numberOfLines: 1,
200
+ children: subtitle
201
+ }) : null, badges.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
202
+ gap: "$1.5",
203
+ flexWrap: "wrap",
204
+ children: badges.map(badge => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_FacetBadge.FacetBadge, {
205
+ label: badge.label,
206
+ tint: badge.tint,
207
+ size: "$3"
208
+ }, badge.value))
209
+ }) : null]
230
210
  });
231
211
  }
@@ -33,6 +33,7 @@ var import_forms = require("@multiplatform.one/forms");
33
33
  var import_theme = require("@multiplatform.one/theme");
34
34
  var import_react = require("@phosphor-icons/react");
35
35
  var import_react_i18next = require("react-i18next");
36
+ var import_tamagui = require("tamagui");
36
37
  var import_FacetBadge = require("./FacetBadge.native.js");
37
38
  var import_ImageWell = require("./ImageWell.native.js");
38
39
  function RecordCard(param) {
@@ -48,6 +49,7 @@ function RecordCard(param) {
48
49
  testID,
49
50
  favoriteTestID
50
51
  } = param;
52
+ var _this;
51
53
  var {
52
54
  t
53
55
  } = (0, import_react_i18next.useTranslation)();
@@ -57,21 +59,58 @@ function RecordCard(param) {
57
59
  } = (0, import_theme.useResolvedKnobs)({
58
60
  component: "Card"
59
61
  });
62
+ var theme = (0, import_tamagui.useTheme)();
60
63
  var handleToggleFavorite = function handleToggleFavorite2(event) {
61
64
  var _event_stopPropagation;
62
65
  event === null || event === void 0 ? void 0 : (_event_stopPropagation = event.stopPropagation) === null || _event_stopPropagation === void 0 ? void 0 : _event_stopPropagation.call(event);
63
66
  favorite === null || favorite === void 0 ? void 0 : favorite.toggle();
64
67
  };
65
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Card, {
68
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.Card, {
66
69
  testID,
67
- ...knobProps.cardSurface,
68
- // Full-bleed media: the card has no inset of its own and its radius
69
- // clips the image well; the body below carries the inset.
70
- padding: 0,
71
- gap: 0,
72
- overflow: "hidden",
73
- "data-record-card-bleed": "",
74
- elevation: knobProps.elevation,
70
+ media: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
71
+ position: "relative",
72
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ImageWell.ImageWell, {
73
+ sources: images,
74
+ alt: title,
75
+ tint,
76
+ inset: 0.04,
77
+ borderRadius: 0,
78
+ ...{
79
+ "data-record-card-media": ""
80
+ }
81
+ }), favorite ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
82
+ position: "absolute",
83
+ top: "$1",
84
+ right: "$1",
85
+ zIndex: 2,
86
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
87
+ circular: true,
88
+ chromeless: true,
89
+ minWidth: knobProps.sizeToken,
90
+ minHeight: knobProps.sizeToken,
91
+ ...(0, import_theme.transitionProps)(knobProps.motion.control),
92
+ backgroundColor: "$background08",
93
+ pressStyle: {
94
+ backgroundColor: "$background",
95
+ scale: 0.92
96
+ },
97
+ onPress: handleToggleFavorite,
98
+ col: favorite.active ? "$red9" : "$color11",
99
+ icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.HeartIcon, {
100
+ size: 20,
101
+ weight: favorite.active ? "fill" : "regular",
102
+ color: (_this = favorite.active ? theme.red9 : theme.color11) === null || _this === void 0 ? void 0 : _this.val
103
+ }),
104
+ "aria-label": favorite.active ? t("Remove {{name}} from favorites", {
105
+ name: title
106
+ }) : t("Add {{name}} to favorites", {
107
+ name: title
108
+ }),
109
+ "aria-pressed": favorite.active,
110
+ testID: favoriteTestID
111
+ })
112
+ }) : null]
113
+ }),
75
114
  ...(0, import_theme.transitionProps)(knobProps.motion.control, ["boxShadow", "shadowColor", "shadowOffset", "shadowOpacity", "shadowRadius", "elevation"]),
76
115
  pressStyle: {
77
116
  scale: 0.98,
@@ -82,93 +121,44 @@ function RecordCard(param) {
82
121
  onPress: function onPress1() {
83
122
  return onPress === null || onPress === void 0 ? void 0 : onPress();
84
123
  },
85
- children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
86
- gap: 0,
87
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
88
- position: "relative",
89
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ImageWell.ImageWell, {
90
- sources: images,
91
- alt: title,
92
- tint,
93
- inset: 0.04,
94
- borderRadius: 0,
95
- ...{
96
- "data-record-card-media": ""
97
- }
98
- }), favorite ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
99
- position: "absolute",
100
- top: "$1",
101
- right: "$1",
102
- zIndex: 2,
103
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Button, {
104
- circular: true,
105
- chromeless: true,
106
- minWidth: knobProps.sizeToken,
107
- minHeight: knobProps.sizeToken,
108
- ...(0, import_theme.transitionProps)(knobProps.motion.control),
109
- backgroundColor: "$background08",
110
- pressStyle: {
111
- backgroundColor: "$background",
112
- scale: 0.92
113
- },
114
- onPress: handleToggleFavorite,
115
- col: favorite.active ? "$red9" : "$color11",
116
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.HeartIcon, {
117
- size: 20,
118
- weight: favorite.active ? "fill" : "regular"
119
- }),
120
- "aria-label": favorite.active ? t("Remove {{name}} from favorites", {
121
- name: title
122
- }) : t("Add {{name}} to favorites", {
123
- name: title
124
- }),
125
- "aria-pressed": favorite.active,
126
- testID: favoriteTestID
127
- })
128
- }) : null]
129
- }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
130
- ...knobProps.panelPadding,
131
- gap: "$1.5",
132
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
133
- gap: "$2",
134
- alignItems: "baseline",
135
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
136
- ...knobProps.heading,
137
- fontWeight: "700",
138
- fontSize: "$4",
139
- numberOfLines: 1,
140
- color: "$color12",
141
- flexShrink: 1,
142
- children: title
143
- }), code ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
144
- fontSize: "$2",
145
- fontWeight: "700",
146
- color: "$color10",
147
- flexShrink: 0,
148
- ...{
149
- "data-record-card-code": ""
150
- },
151
- children: code
152
- }) : null]
153
- }), subtitle ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
154
- ...knobProps.body,
155
- fontSize: "$2",
156
- color: "$color10",
157
- numberOfLines: 1,
158
- children: subtitle
159
- }) : null, badges.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
160
- gap: "$1.5",
161
- flexWrap: "wrap",
162
- children: badges.map(function (badge) {
163
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_FacetBadge.FacetBadge, {
164
- label: badge.label,
165
- tint: badge.tint,
166
- size: "$3"
167
- }, badge.value);
168
- })
169
- }) : null]
170
- })]
171
- })
124
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
125
+ gap: "$2",
126
+ alignItems: "baseline",
127
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
128
+ ...knobProps.heading,
129
+ fontWeight: "700",
130
+ fontSize: "$4",
131
+ numberOfLines: 1,
132
+ color: "$color12",
133
+ flexShrink: 1,
134
+ children: title
135
+ }), code ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
136
+ fontSize: "$2",
137
+ fontWeight: "700",
138
+ color: "$color10",
139
+ flexShrink: 0,
140
+ ...{
141
+ "data-record-card-code": ""
142
+ },
143
+ children: code
144
+ }) : null]
145
+ }), subtitle ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
146
+ ...knobProps.body,
147
+ fontSize: "$2",
148
+ color: "$color10",
149
+ numberOfLines: 1,
150
+ children: subtitle
151
+ }) : null, badges.length > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.XStack, {
152
+ gap: "$1.5",
153
+ flexWrap: "wrap",
154
+ children: badges.map(function (badge) {
155
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_FacetBadge.FacetBadge, {
156
+ label: badge.label,
157
+ tint: badge.tint,
158
+ size: "$3"
159
+ }, badge.value);
160
+ })
161
+ }) : null]
172
162
  });
173
163
  }
174
164
  //# sourceMappingURL=RecordCard.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RecordCard_native_exports","__export","RecordCard","module","exports","__toCommonJS","import_jsx_runtime","require","import_components","import_forms","import_theme","import_react","import_react_i18next","import_FacetBadge","import_ImageWell","param","title","subtitle","code","images","tint","badges","onPress","favorite","testID","favoriteTestID","t","useTranslation","knobProps","elevation","elevationState","useResolvedKnobs","component","handleToggleFavorite","handleToggleFavorite2","event","_event_stopPropagation","stopPropagation","call","toggle","jsx","Card","cardSurface","padding","gap","overflow","transitionProps","motion","control","pressStyle","scale","pressKnobProps","role","onPress1","children","jsxs","YStack","position","ImageWell","sources","alt","inset","borderRadius","XStack","top","right","zIndex","Button","circular","chromeless","minWidth","sizeToken","minHeight","backgroundColor","col","active","icon","HeartIcon","size","weight","name","panelPadding","alignItems","Text","heading","fontWeight","fontSize","numberOfLines","color","flexShrink","body","length","flexWrap","map","badge","FacetBadge","label","value"],"sources":["../../../src/list/RecordCard.native.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["RecordCard_native_exports","__export","RecordCard","module","exports","__toCommonJS","import_jsx_runtime","require","import_components","import_forms","import_theme","import_react","import_react_i18next","import_tamagui","import_FacetBadge","import_ImageWell","param","title","subtitle","code","images","tint","badges","onPress","favorite","testID","favoriteTestID","_this","t","useTranslation","knobProps","elevation","elevationState","useResolvedKnobs","component","theme","useTheme","handleToggleFavorite","handleToggleFavorite2","event","_event_stopPropagation","stopPropagation","call","toggle","jsxs","Card","media","YStack","position","children","jsx","ImageWell","sources","alt","inset","borderRadius","XStack","top","right","zIndex","Button","circular","chromeless","minWidth","sizeToken","minHeight","transitionProps","motion","control","backgroundColor","pressStyle","scale","col","active","icon","HeartIcon","size","weight","color","red9","color11","val","name","pressKnobProps","role","onPress1","gap","alignItems","Text","heading","fontWeight","fontSize","numberOfLines","flexShrink","body","length","flexWrap","map","badge","FacetBadge","label","value"],"sources":["../../../src/list/RecordCard.native.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -31,7 +31,6 @@ var import_react = require("@phosphor-icons/react");
31
31
  var import_react2 = require("react");
32
32
  var import_react_i18next = require("react-i18next");
33
33
  var import_jsx_runtime = require("react/jsx-runtime");
34
- const pickWidth = "$12";
35
34
  function randomOtherIndex(current, length) {
36
35
  if (length < 2) return Math.max(0, current);
37
36
  const offset = 1 + Math.floor(Math.random() * (length - 1));
@@ -44,6 +43,7 @@ function ShufflePanel({
44
43
  itemLabel,
45
44
  renderPick,
46
45
  onGo,
46
+ grid,
47
47
  testID
48
48
  }) {
49
49
  const {
@@ -52,6 +52,10 @@ function ShufflePanel({
52
52
  const {
53
53
  knobProps
54
54
  } = (0, import_theme.useResolvedKnobs)();
55
+ const {
56
+ columns,
57
+ gutter
58
+ } = (0, import_components.useImageGridGeometry)(grid);
55
59
  const named = (0, import_react2.useMemo)(() => rows.filter(row => row.name), [rows]);
56
60
  const items = (0, import_react2.useMemo)(() => named.map(row => ({
57
61
  value: row.name,
@@ -64,49 +68,66 @@ function ShufflePanel({
64
68
  const current = named.findIndex(row => row.name === pick.name);
65
69
  setSelected(named[randomOtherIndex(current, named.length)]?.name ?? "");
66
70
  };
71
+ const pickLabel = itemLabel(pick);
72
+ const tracks = Math.max(2, columns);
67
73
  return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
68
74
  id,
69
75
  role: "region",
70
76
  "aria-label": label,
71
- ...knobProps.surface,
72
- ...knobProps.borderRadius,
73
- ...knobProps.panelPadding,
74
- ...knobProps.gap,
77
+ gap: gutter,
75
78
  alignItems: "center",
76
- flexWrap: "wrap",
77
79
  testID,
78
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Wheel, {
79
- items,
80
- value: pick.name,
81
- onChange: next => setSelected(String(next)),
82
- visibleItems: 3,
83
- loop: true,
84
- "aria-label": label
85
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
86
- width: pickWidth,
87
- flexShrink: 0,
88
- children: renderPick(pick)
89
- }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
90
- ...knobProps.gap,
80
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.YStack, {
81
+ flexGrow: tracks - 1,
82
+ flexShrink: 1,
83
+ flexBasis: gutter * (tracks - 2),
84
+ minWidth: 0,
91
85
  alignItems: "center",
92
- flexShrink: 0,
93
- children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Button, {
94
- outlined: true,
95
- onPress: spin,
96
- icon: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ArrowCounterClockwiseIcon, {
97
- size: 16
98
- }),
99
- testID: testID ? `${testID}-spin` : void 0,
100
- children: t("Spin")
101
- }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Button, {
102
- theme: "accent",
103
- onPress: () => onGo(pick),
104
- iconAfter: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.ArrowRightIcon, {
105
- size: 16
106
- }),
107
- testID: testID ? `${testID}-go` : void 0,
108
- children: t("Go")
86
+ ...knobProps.gap,
87
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Wheel, {
88
+ items,
89
+ value: pick.name,
90
+ onChange: next => setSelected(String(next)),
91
+ visibleItems: 3,
92
+ loop: true,
93
+ "aria-label": label
94
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
95
+ alignItems: "center",
96
+ gap: "$2",
97
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Tooltip, {
98
+ content: t("Shuffle"),
99
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Button, {
100
+ chromeless: true,
101
+ accentInk: true,
102
+ circular: true,
103
+ icon: import_react.ShuffleIcon,
104
+ "aria-label": t("Shuffle"),
105
+ onPress: spin,
106
+ testID: testID ? `${testID}-spin` : void 0
107
+ })
108
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Tooltip, {
109
+ content: t("Open {{name}}", {
110
+ name: pickLabel
111
+ }),
112
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Button, {
113
+ chromeless: true,
114
+ accentInk: true,
115
+ circular: true,
116
+ icon: import_react.ArrowRightIcon,
117
+ "aria-label": t("Open {{name}}", {
118
+ name: pickLabel
119
+ }),
120
+ onPress: () => onGo(pick),
121
+ testID: testID ? `${testID}-go` : void 0
122
+ })
123
+ })]
109
124
  })]
125
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.YStack, {
126
+ flexGrow: 1,
127
+ flexShrink: 1,
128
+ flexBasis: 0,
129
+ minWidth: 0,
130
+ children: renderPick(pick)
110
131
  })]
111
132
  });
112
133
  }